Method for recovering from errors in flash memory
First Claim
1. ) In a system comprising a plurality of flash memory cells and an error detection and correction module, a method of reading data, the method comprising:
- a) reading data bits from the plurality of flash memory cells;
b) attempting to correct errors of said read data bits using the error detection and correction module;
c) in the event of an error correction failure by the error detection and correction module, re-reading, at least once, said data bits from the plurality of flash memory cells using at least one modified reference voltage until the module successfully corrects said errors; and
d) repeating steps (a), (b) and (c) for said data bits without re-writing said data bits to the memory cells in the interim.
4 Assignments
0 Petitions
Accused Products
Abstract
Methods, devices and computer readable code for reading data from one or more flash memory cells, and for recovering from read errors are disclosed. In some embodiments, in the event of an error correction failure by an error detection and correction module, the flash memory cells are re-read at least once using one or more modified reference voltages, for example, until a successful error correction may be carried out. In some embodiments, after successful error correction a subsequent read request is handled without re-writing data (for example, reliable values of the read data) to the flash memory cells in the interim. In some embodiments, reference voltages associated with a reading where errors are corrected may be stored in memory, and retrieved when responding to a subsequent read request. In some embodiments, the modified reference voltages are predetermined reference voltages. Alternatively or additionally, these modified reference voltages may be determined as needed, for example, using randomly generated values or in accordance with information provided by the error detection and correction module. Methods, devices and computer readable code for reading data for situations where there is no error correction failure are also provided.
328 Citations
31 Claims
-
1. ) In a system comprising a plurality of flash memory cells and an error detection and correction module, a method of reading data, the method comprising:
-
a) reading data bits from the plurality of flash memory cells;
b) attempting to correct errors of said read data bits using the error detection and correction module;
c) in the event of an error correction failure by the error detection and correction module, re-reading, at least once, said data bits from the plurality of flash memory cells using at least one modified reference voltage until the module successfully corrects said errors; and
d) repeating steps (a), (b) and (c) for said data bits without re-writing said data bits to the memory cells in the interim. - View Dependent Claims (2)
-
-
3. ) In a system comprising a plurality of flash memory cells and an error detection and correction module, a method of reading data, the method comprising:
-
a) reading data bits from the plurality of flash memory cells;
b) attempting to correct errors of said read data bits using the error detection and correction module;
c) in the event of an error correction failure by the error detection and correction module, re-reading, at least once, said data bits from the plurality of flash memory cells using at least one modified reference voltage until the module successfully corrects said errors;
d) subsequent to said correcting, storing at least one read reference voltage for which the module successfully corrected said errors;
e) subsequent to said storing, retrieving said stored at least one read reference voltage; and
g) subsequent to said retrieving, reading the data bits from the plurality of flash memory cells using said retrieved at least one read reference voltage. - View Dependent Claims (4, 5, 6, 7, 8)
-
-
9. ) In a system comprising a plurality of flash memory cells and an error detection and correction module, a method of reading data, the method comprising:
-
a) reading data bits from the plurality of flash memory cells;
b) attempting to correct errors of said read data bits using the error detection and correction module;
c) in the event of an error correction failure by the error detection and correction module and subsequent to said reading, deriving at least one new read reference voltage; and
d) reading said data bits from the plurality of flash memory cells using said derived at least one new read reference voltage. - View Dependent Claims (10, 11)
-
-
12. ) In a system comprising a plurality of flash memory cells and an error detection and correction module, a method of reading data, the method comprising:
-
a) reading data bits from the plurality of flash memory cells;
b) correcting errors of said read data bits using the error detection and correction module; and
c) subsequent to said correcting, reading said data bits from the plurality of flash memory cells using at least one modified reference voltage. - View Dependent Claims (13, 14, 15)
-
-
16. ) A flash memory device for data storage, the device comprising:
-
a) a plurality of flash memory cells for storing data bits;
b) an error detection and correction module for detecting and correcting errors in said data bits; and
c) a controller for reading said data bits from said memory cells, wherein;
i) said controller is operative to respond to a first read request by reading data bits from said plurality of flash memory cells and, if said error detection and correction module fails to correct said data bits, re-read the data bits using at least one modified reference voltage until said module successfully corrects said errors; and
ii) said controller is further operative to repeat said response for a subsequent read request without re-writing said data bits to the memory cells in the interim.
-
-
17. ) A flash memory device for data storage, the device comprising:
-
a) a plurality of flash memory cells for storing data bits;
b) an error detection and correction module for detecting and correcting errors in said data bits; and
c) a controller for reading said data bits from said flash memory cells, wherein said controller is operative to respond to a first read request by;
i) reading data bits from the plurality of flash memory cells;
ii) attempting to correct errors of said read data bits using said error detection and correction module;
iii) in the event of an error correction failure by the error detection and correction module, re-reading, at least once, the data bits from said plurality of flash memory cells using at least one modified reference voltage until said module successfully corrects said errors; and
iv) subsequent to said correcting, storing, at least one read reference voltage for which the module successfully corrected said errors;
and, subsequent to said storing, said controller is further operative to respond to a subsequent read request by;
i) retrieving said stored at least one read reference voltage; and
ii) subsequent to said retrieving, reading the data bits from the plurality of flash memory cells using said retrieved at least one read reference voltage. - View Dependent Claims (18, 19, 20, 21)
-
-
22. ) A flash memory device for data storage, the device comprising:
-
a) a plurality of flash memory cells for storing data bits;
b) an error detection and correction module for detecting errors in said data bits; and
c) a controller for reading said data bits from said flash memory cells, wherein said controller is operative to respond to a read request by;
i) reading said data bits from the plurality of flash memory cells;
ii) attempting to correct errors of said read data bits using the error detection and correction module;
iii) in the event of an error correction failure by the error detection and correction module and subsequent to said reading, deriving at least one new read reference voltage, and iv) reading said data bits from the plurality of flash memory cells using said derived at least one new read reference voltage. - View Dependent Claims (23, 24)
-
-
25. ) A flash memory device for data storage, the device comprising:
-
a) a plurality of flash memory cells for storing data bits;
b) an error detection and correction module for detecting errors in said data bits; and
c) a controller for reading said data bits from said flash memory cells, wherein said controller is operative to respond to a first read request by;
i) reading data bits from the plurality of flash memory cells; and
ii) correcting errors of said read data bits, using said error detection and correction module, and said controller is operative to respond to a subsequent read request by;
iii) reading the data bits from the plurality of flash memory cells using at least one modified reference voltage. - View Dependent Claims (26, 27)
-
-
28. ) A computer readable storage medium having computer readable code embodied in said computer readable storage medium, said computer readable code comprising instructions for reading data in a system comprising a plurality of flash memory cells and an error detection and correction module, wherein said instructions comprise instructions to:
-
a) read data bits from said plurality of flash memory cells;
b) attempt to correct errors of said read data bits using said error detection and correction module;
c) in the event of an error correction failure by the error detection and correction module, re-read, at least once, said data bits from the plurality of flash memory cells using at least one modified reference voltage until the module successfully corrects said errors; and
d) repeat steps (a), (b) and (c) without writing re-writing said data bits to the memory cells in the interim.
-
-
29. ) A computer readable storage medium having computer readable code embodied in said computer readable storage medium, said computer readable code comprising instructions for reading data in a system comprising a plurality of flash memory cells and an error detection and correction module, wherein said instructions comprise instructions to:
-
a) read data bits from the plurality of flash memory cells;
b) attempt to correct errors of said read data bits using the error detection and correction module;
c) in the event of an error correction failure by the error detection and correction module, re-read, at least once, said data bits from the plurality of flash memory cells using at least one modified reference voltage until the module successfully corrects said errors;
d) subsequent to said correcting, store at least one read reference voltage for which the module successfully corrected said errors;
e) subsequent to said storing, retrieve said stored at least one read reference voltage; and
g) subsequent to said retrieving, read the data bits from the plurality of flash memory cells using said retrieved at least one read reference voltage.
-
-
30. ) A computer readable storage medium having computer readable code embodied in said computer readable storage medium, said computer readable code comprising instructions for reading data in a system comprising a plurality of flash memory cells and an error detection and correction module, wherein said instructions comprise instructions to:
-
a) read data bits from the plurality of flash memory cells;
b) attempt to correct errors of said read data bits using the error detection and correction module;
c) in the event of an error correction failure by the error detection and correction module and subsequent to said reading, derive at least one new read reference voltage; and
d) read said data bits from the plurality of flash memory cells using said derived at least one new read reference voltage.
-
-
31. ) A computer readable storage medium having computer readable code embodied in said computer readable storage medium, said computer readable code comprising instructions for reading data in a system comprising a plurality of flash memory cells and an error detection and correction module, wherein said instructions comprise instructions to:
-
a) read data bits from the plurality of flash memory cells;
b) correct errors of said read data bits using the error detection and correction module; and
c) subsequent to said correcting, read said data bits from the plurality of flash memory cells using at least one modified reference voltage.
-
Specification