System and method for mitigating effect of erase cells on adjacent cells
Methods and systems for increasing reliability of a data storage device are disclosed. During fabrication runs of a non-volatile memory (NVM) die, such as a NAND, there may be a number of memory cells designated as erase cells. When one or more erase cells are physically adjacent to programmed memory cell, electrical effects of the erase cell may cause a bit to flip in the adjacent good memory cell. To mitigate this effect, an LDPC engine is used to generate additional parity bits for the erased bit/cells. When a host requests data from the NVM, the parity bits may be used to correct additional errors because of the erased state to programmed state bit flips.
1. A data storage device, comprising:
a non-volatile memory (NVM) comprising a block of memory cells used to store data, wherein the block of memory cells comprises erase cells and programmable cells;
a low-density parity check (LDPC) engine; and
a controller configured to perform a method for error correction, the method comprising:
identifying a subset of the block of memory cells as erase cells, and wherein data is programmed to the erase cells;
receiving the identities of the erase cells at the LDPC engine;
generating error correction code (ECC) bits for the erase cells;
detecting a bit flip in a programmable cell; and
using the ECC bits for the erase cells to correct the bit flip using the LDPC engine.
2. The data storage device of claim 1 , the method further comprising receiving host data from a host and storing the host data in the block based on the identities of the erase cells.
3. The data storage device of claim 2 , the method further comprising using the generated ECC bits to generate data parity bits based for the host data.
4. The data storage device of claim 3 , the method further comprising receiving a request for the host data and identifying a bit of the host data that has flipped to an incorrect value.
5. The data storage device of claim 4 , the method further comprising correcting the flipped bit using the data parity bits, and providing the corrected bit to the host.
6. The data storage device of claim 5 , wherein identifying a memory cell as an erase cell comprises obtaining a binary value as a result of a predefined logical operation on multiple pages/bits of the memory cell.
7. The data storage device of claim 6 , wherein storing host data in the block comprises masking out erase cells.
8. A controller for a data storage device, comprising:
an I/O to one or more memories comprising a plurality of memory cells, wherein the plurality of memory cells comprise erase cells and programmable cells; and
a processor configured to perform a method to identify erase cells and correct reading of data stored in the plurality of memory cells, the method comprising:
identifying fewer than all of the plurality of memory cells as erase cells, and wherein data is programmed to the erase cells;
generating an ECC code for the plurality of memory cells not identified as erase cells;
generating a data ECC code for host data received from a host;
detecting a bit flip in the programmable cells; and
using the ECC code for the erase cells to correct the bit flip using a LDPC engine.
9. The controller of claim 8 , wherein the each of the plurality of memory cells are configured to store multiple memory pages.
10. The controller of claim 9 , wherein the identifying further comprises, for each cell of the plurality of memory cells, combining multiple pages of the cell using a logical AND operation, resulting in a Boolean TRUE value.
11. The controller of claim 9 , wherein the multiple pages of the memory cell comprises three pages.
12. The controller of claim 8 , the method further comprising storing the host data in the one or more memories based on the identified erase cells.
13. The controller of claim 12 , the method further comprising receiving a read data request from the host, reading the host data from the one or more memories and identifying an error in the host data.
14. The controller of claim 13 , the method further comprising correcting the error using the data ECC code.
15. The controller of claim 13 , the method further comprising detecting an additional error in the host data, and correcting the additional error with an error correction algorithm.
16. A system for storing data, comprising:
a memory means comprising a plurality of memory cell means, a portion of the memory cell means comprising erase cells and programmable cells, and wherein data is programmed to the erase cells; and
a controller means configured to perform a method for mitigating an effect of the erase cells on adjacent memory cell means, the method comprising:
identifying one or more errors in host data stored in the plurality of memory cell means;
correcting the one or more errors with an ECC code generated based on the erase cells;
detecting a bit flip in the programmable cells; and
using the ECC code for the erase cells to correct the bit flip using an LDPC means.
17. The system of claim 16 , wherein the method further comprises determining the erase cells by combining pages within each of the memory cell means using a logical AND function.
18. The system of claim 17 , wherein the method further comprises writing host data to the plurality of memory cell means based on the erase cells.
19. The system of claim 18 , further comprising generating the ECC code using the LDPC means and storing the ECC code in the memory means.
20. The system of claim 19 , wherein the method further comprises identifying a second error in the host data, and correcting the second error with a second error correction algorithm.