Uncorrectable error handling schemes for non-volatile memories
AssigneeApple Inc.
InventorsDaniel J. Post, Vadim Khmelnitsky
Life of this patent
Estimating the term…
Abstract
Systems and methods are provided for handling uncorrectable errors in a non-volatile memory (“NVM”), such as flash memory, during a garbage collection operation.
Claims19
A method for handling an uncorrectable error during a garbage collection operation, the method comprising:
- determining that a page has an uncorrectable error during a garbage collection operation, wherein metadata associated with the page is not accessible;
- accessing a block table of contents (Block TOC) to determine if redundant metadata associated with the page is available, wherein the redundant metadata comprises a logical address of the page;
- and
- if the Block TOC has the redundant metadata, performing a recovery operation using the redundant metadata, wherein the performing the recovery operation comprises continuing to perform the garbage collection operation while informing a file system that data associated with the logical address is invalid.
A method for performing garbage collection in a non-volatile memory, the non-volatile memory comprising a plurality of pages, wherein index pages store an index table that maintains a logical-to-physical mapping of non-index pages, and wherein the non-index pages are arranged in blocks, each block having a block table of contents (Block TOC) that stores the logical address of each page in that block, the method comprising:
- initiating a garbage collection operation on a first block;
- determining that a first page in the first block has an uncorrectable error and its logical address is unknown;
- accessing a Block TOC to obtain the logical address of the first page;
- and
- if the Block TOC has the logical address,
- writing contents of the first page to a second page in a second block;
- setting a flag in metadata of the second page to indicate that data of the second page is invalid;
- and
- updating the index table to correlate the logical address to the second page.
A memory interface for accessing a non-volatile memory, the non-volatile memory comprising a plurality of pages, wherein index pages store an index table that maintains a logical-to-physical mapping of non-index pages, and wherein the non-index pages are arranged in blocks, each block having a block table of contents (Block TOC) that stores the logical address of each page in that block, the memory interface comprising:
- a bus controller for communicating with the non-volatile memory;
- and
- control circuitry operative to direct the bus controller to perform a garbage collection operation on a first block, the control circuitry further operative to:
- determine that a first page in the first block has an uncorrectable error and its logical address is unknown;
- access a Block TOC to obtain the logical address of the first page;
- and
- if the Block TOC has the logical address,
- updating an index table entry in the index table corresponding to the logical address to indicate that the first page has experienced an uncorrectable error, wherein the updating the index table entry informs a file system that data associated with the logical address is invalid.
Dependencies are inferred from the claim text.