MEMORY MAPPING TECHNIQUES
First Claim
1. A method comprising:
- obtaining a read request associated with one or more logical sectors corresponding to a first page address of non-volatile memory;
determining if the first page address is contained in an index table cache in volatile memory;
if the first page address is contained in the index table cache;
reading the first page address from the index table cache;
performing the read operation using the first page address;
if the first page address is not contained in the index table cache,obtaining from an index table of contents (TOC) in the volatile memory, a second page address of an index table entry in non-volatile memory storing the first page address;
reading the first page address from the index table entry; and
performing the read operation using the first page address.
1 Assignment
0 Petitions
Accused Products
Abstract
Memory mapping techniques for non-volatile memory are disclosed where logical sectors are mapped into physical pages using data structures in volatile and non-volatile memory. In some implementations, a first lookup table in non-volatile memory maps logical sectors directly into physical pages. A second lookup table in volatile memory holds the physical address of the first lookup table in non-volatile memory. In some implementations, a cache in volatile memory holds the physical addresses of the most recently written logical sectors. Also disclosed is a block TOC describing block content which can be used for garbage collection and restore operations.
-
Citations
16 Claims
-
1. A method comprising:
-
obtaining a read request associated with one or more logical sectors corresponding to a first page address of non-volatile memory; determining if the first page address is contained in an index table cache in volatile memory; if the first page address is contained in the index table cache; reading the first page address from the index table cache; performing the read operation using the first page address; if the first page address is not contained in the index table cache, obtaining from an index table of contents (TOC) in the volatile memory, a second page address of an index table entry in non-volatile memory storing the first page address; reading the first page address from the index table entry; and performing the read operation using the first page address. - View Dependent Claims (2, 3)
-
-
4. A method comprising:
-
obtaining a write request associated with one or more logical sectors; determining if a current data block is full; if a current data block is full, writing a block table of contents (TOC) to a page of the current data block; if the current data block is not full, writing one or more pages into the current data block; updating current block TOC; and updating a valid page count for the current data block. - View Dependent Claims (5, 6, 7, 8)
-
-
9. A memory system, comprising:
-
volatile memory storing an index table cache and an index table of contents; non-volatile memory storing an index table storing page addresses corresponding to logical sectors; a controller coupled to the volatile memory and non-volatile memory and operable for; obtaining a read request associated with a logical sector; determining if a first page address associated with the logical sector is stored in the index table cache; if the first page address is stored in the index table cache, reading the first page address from the index table cache; and performing the read operation using the first page address. if the first page address is not cached in the index table cache, the controller is operable for; obtaining from an index table of contents in the volatile memory, a second page address of an index table entry in non-volatile memory storing the first page address; reading the first page address from the index table entry; and storing the first page address in the index table cache. - View Dependent Claims (10, 11)
-
-
12. A memory system, comprising:
-
volatile memory storing an index table cache and an index table of contents; non-volatile memory storing an index table with entries storing page addresses corresponding to logical sectors; a controller coupled to the volatile memory and non-volatile memory and operable for; obtaining a write request associated with one or more logical sectors; determining if a current data block is full; if a current data block is full, writing a block table of contents (TOC) to a page of the current data block; if the current data block is not full, writing one or more pages into the current data block; updating current block TOC; and updating a valid page count for the current data block. - View Dependent Claims (13, 14, 15, 16)
-
Specification