Emerging bad block detection
First Claim
1. A method of monitoring a block of a non-volatile integrated circuit memory device, the method comprising:
- decoding error correction codes to determine whether or not a page of data of the block of the memory device was read with at least one error;
maintaining a history of errors for the block of the memory device corresponding to the page that was read at least when the page was read with at least one error, wherein the history of errors is used to indicate whether or not to retire the block early, wherein maintaining the history further comprises;
maintaining a count, wherein the count is incremented at least partially in response to determining that the at least one error corresponds to one error; and
resetting the count upon power up of a device using the memory device;
wherein early retirement for the block is indicated in response to the count reaching a threshold value.
8 Assignments
0 Petitions
Accused Products
Abstract
Apparatus and methods, such as those that read data from non-volatile integrated circuit memory devices, such as NAND flash. For example, disclosed techniques can be embodied in a device driver of an operating system. Errors are tracked during read operations. If sufficient errors are observed during read operations, the block is then retired when it is requested to be erased or a page of the block is to be written. One embodiment is a technique to recover data from uncorrectable errors. For example, a read mode can be changed to a more reliable read mode to attempt to recover data. One embodiment further returns data from the memory device regardless of whether the data was correctable by decoding of error correction code data or not.
-
Citations
16 Claims
-
1. A method of monitoring a block of a non-volatile integrated circuit memory device, the method comprising:
-
decoding error correction codes to determine whether or not a page of data of the block of the memory device was read with at least one error; maintaining a history of errors for the block of the memory device corresponding to the page that was read at least when the page was read with at least one error, wherein the history of errors is used to indicate whether or not to retire the block early, wherein maintaining the history further comprises; maintaining a count, wherein the count is incremented at least partially in response to determining that the at least one error corresponds to one error; and resetting the count upon power up of a device using the memory device; wherein early retirement for the block is indicated in response to the count reaching a threshold value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of managing blocks for a non-volatile integrated circuit memory device, the method comprising:
-
receiving a command to erase a block of memory or write to a page of the block of memory; disabling an erase or write based at least in part on a history of errors associated with read operations for one or more pages of the block, wherein disabling further comprises exiting with an I/O error. - View Dependent Claims (11, 12, 13)
-
-
14. An apparatus for monitoring a block of a non-volatile integrated circuit memory device, the apparatus comprising:
-
a module configured to decode error correction codes to determine whether or not a page of data of the block of the memory device was read with at least one error; and a module configured to maintain a history of errors for the block of the memory device corresponding to the page that was read at least when the page was read with at least one error, wherein the history of errors is used to indicate whether or not to retire the block early, wherein the module is further configured to; maintain a count, wherein the count is incremented at least partially in response to determining that the at least one error corresponds to one error; and reset the count upon power up of a device using the memory device; wherein early retirement for the block is indicated in response to the count reaching a threshold value. - View Dependent Claims (15, 16)
-
Specification