Memory Mapping Restore and Garbage Collection Operations
First Claim
1. A method comprising:
- determining if a block table of contents (TOC) exists in a page of a block of non-volatile memory;
if the block TOC does not exist,reading the entire block;
updating an index table in non-volatile memory, the index table for storing page addresses for mapping logical sectors of a read or write request to pages of the block;
writing the index table to non-volatile memory;
generating an index TOC in volatile memory using the index table;
if the block TOC exists,updating the index table using the block TOC;
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.
114 Citations
20 Claims
-
1. A method comprising:
-
determining if a block table of contents (TOC) exists in a page of a block of non-volatile memory; if the block TOC does not exist, reading the entire block; updating an index table in non-volatile memory, the index table for storing page addresses for mapping logical sectors of a read or write request to pages of the block; writing the index table to non-volatile memory; generating an index TOC in volatile memory using the index table; if the block TOC exists, updating the index table using the block TOC; 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 method comprising:
-
reading a block table of contents (TOC) from a page of a candidate block to obtain information describing the candidate block; determining invalid pages in the candidate block using the information; and updating a valid page count for the candidate block, where the valid page count is used to determine a best candidate block for a subsequent garbage collection (GC) operation. - View Dependent Claims (8, 9, 10)
-
-
11. A system comprising:
-
non-volatile memory; a controller coupled to the non-volatile memory and operable for determining if a block table of contents (TOC) exists in a page of a block of non-volatile memory; if the block TOC does not exist, reading the entire block; updating an index table in non-volatile memory, the index table for storing page addresses for mapping logical sectors of a read or write request to pages of the block; writing the index table to non-volatile memory; generating an index TOC in volatile memory using the index table; if the block TOC exists, updating the index table using the block TOC; writing the index table to non-volatile memory; and generating an index TOC in volatile memory from the index table. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A system comprising:
-
non-volatile memory; and a control coupled to the non-volatile memory and operable for reading a block table of contents (TOC) from a page of a candidate block to obtain information describing the candidate block; determining invalid pages in the candidate block using the information; and updating a valid page count for the candidate block, where the valid page count is used to determine a best candidate block for a subsequent garbage collection (GC) operation. - View Dependent Claims (18, 19, 20)
-
Specification