Data recovery once ECC fails to correct the data
First Claim
1. An apparatus comprising:
- a memory configured to store data, the memory comprising a plurality of memory modules each having a size less than a total size of the memory; and
a controller configured to (A) process a plurality of read/write operations and (B) salvage data stored in a failed page of the memory determined to exceed a maximum number of errors, wherein the controller (i) copies raw data stored in the failed page, (ii) identifies locations of a first type of data cells that fails erase identification, (iii) identifies locations of a second type of data cells that has program errors, (iv) flips data values in the raw data at the locations of the first type of data cells and the locations of the second type of data cells, (v) performs error correcting code decoding on the raw data having flipped data values, and (vi) salvages data stored in the failed page.
2 Assignments
0 Petitions
Accused Products
Abstract
An apparatus comprising a memory and a controller. The memory is configured to process a plurality of read/write operations. The memory comprises a plurality of memory modules each having a size less than a total size of the memory. The controller is configured to salvage data stored in a failed page of the memory determined to exceed a maximum number of errors. The controller copies raw data stored in the failed page. The controller identifies locations of a first type of data cells that fail erase identification. The controller identifies locations of a second type of data cells that have program errors. The controller flips data values in the raw data at the locations of the first type of data cells and the locations of the second type of data cells. The controller is configured to perform error correcting code decoding on the raw data having flipped data values. The controller salvages data stored in the failed page.
-
Citations
20 Claims
-
1. An apparatus comprising:
-
a memory configured to store data, the memory comprising a plurality of memory modules each having a size less than a total size of the memory; and a controller configured to (A) process a plurality of read/write operations and (B) salvage data stored in a failed page of the memory determined to exceed a maximum number of errors, wherein the controller (i) copies raw data stored in the failed page, (ii) identifies locations of a first type of data cells that fails erase identification, (iii) identifies locations of a second type of data cells that has program errors, (iv) flips data values in the raw data at the locations of the first type of data cells and the locations of the second type of data cells, (v) performs error correcting code decoding on the raw data having flipped data values, and (vi) salvages data stored in the failed page. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. An apparatus comprising:
-
an interface configured to process a plurality of read/write operations to/from a memory; and a control circuit configured to salvage data stored in a failed page of the memory determined to exceed a maximum number of errors, wherein the control circuit (i) copies raw data stored in the failed page, (ii) identifies locations of a first type of data cells that fails erase identification, (iii) identifies locations of a second type of data cells that has program errors, (iv) flips data values in the raw data at the locations of the first type of data cells and the locations of the second type of data cells, (v) performs error correcting code decoding on the raw data having flipped data values, and (vi) salvages data stored in the failed page.
-
-
20. A method for salvaging data in a flash memory, comprising:
-
copying raw data stored in a failed page of the flash memory; identifying locations of a first type of data cells, wherein the first type of data cells fails erase identification; identifying locations of a second type of data cells, wherein the second type of data cells has program errors; flipping data values in the raw data at the locations of the first type of data cells and the locations of the second type of data cells; and salvaging data stored in the failed page.
-
Specification