Memory mapping restore and garbage collection operations
First Claim
Patent Images
1. A method comprising:
- identifying blocks of non-volatile memory that are not free;
reconstructing at least a portion of an index table by performing the following for each of the identified blocks;
determining if a block table of contents (TOC) exists in a page of the identified block of non-volatile memory, wherein the block TOC includes information mapping logical sectors to pages in the identified block;
if the block TOC does not exist,reading the entire block to identify logical sectors that correspond to the pages of the identified block;
updating the index table in volatile memory using information obtained from reading the entire block, the index table for storing page addresses for mapping logical sectors of a read or write request to pages of the identified block;
if the block TOC exists,updating the index table using the information contained in the block TOC that maps logical sectors to the pages in the identified block;
after reconstructing the at least a portion of the index table;
writing the index table to non-volatile memory; and
generating an index TOC in volatile memory from the index table.
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.
72 Citations
12 Claims
-
1. A method comprising:
-
identifying blocks of non-volatile memory that are not free; reconstructing at least a portion of an index table by performing the following for each of the identified blocks; determining if a block table of contents (TOC) exists in a page of the identified block of non-volatile memory, wherein the block TOC includes information mapping logical sectors to pages in the identified block; if the block TOC does not exist, reading the entire block to identify logical sectors that correspond to the pages of the identified block; updating the index table in volatile memory using information obtained from reading the entire block, the index table for storing page addresses for mapping logical sectors of a read or write request to pages of the identified block; if the block TOC exists, updating the index table using the information contained in the block TOC that maps logical sectors to the pages in the identified block; after reconstructing the at least a portion of the index table; writing the index table to non-volatile memory; and generating an index TOC in volatile memory from the index table. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
non-volatile memory; a controller coupled to identify blocks of the non-volatile memory that are not free, and operable to reconstruct at least a portion of an index table by performing the following for each of the identified blocks; determining if a block table of contents (TOC) exists in a page of the identified block of non-volatile memory, wherein the block TOC includes information mapping logical sectors to pages in the identified block; if the block TOC does not exist, reading the entire block to identify logical sectors that correspond to the pages of the identified block; updating the index table in volatile memory using information obtained from reading the entire block, the index table for storing page addresses for mapping logical sectors of a read or write request to pages of the identified block; if the block TOC exists, updating the index table using the information contained in the block TOC that maps logical sectors to the pages in the identified block; wherein the controller is further configured to perform the following after reconstructing the at least a portion of the index table; writing the index table to non-volatile memory; and generating an index TOC in volatile memory from the index table. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification