IP Library Granted Patent US 7,954,037
Granted Patent B2
US 7,954,037 · App. 11/397,609 · Granted May 31, 2011

Method for recovering from errors in flash memory

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,954,037
App. No.
11/397,609
Granted
May 31, 2011
Kind
B2
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.

Claims (37)

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;

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

f) subsequent to said retrieving, reading the data bits from the plurality of flash memory cells using said retrieved at least one read reference voltage,

wherein said reading is performed without resulting in re-writing said data bits to the memory cells.

2. The method of claim 1 wherein at least one said read reference voltage is stored in volatile memory.

3. The method of claim 1 wherein at least one said read reference voltage is stored in non-volatile memory.

4. The method of claim 1 wherein at least one said read reference voltage is stored in one or more of the flash memory cells.

5. The method of claim 1 wherein said read data bits are read using a flash controller, and at least one said read reference voltage is stored in said flash controller.

6. The method of claim 1 wherein an initial said reading before said storing is in response to a first read request, and a subsequent reading using said retrieved at least one read reference voltage is in response to a subsequent read request.

7. 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,

wherein said reading is performed without resulting in re-writing said data bits to the memory cells.

8. The device of claim 7 wherein said controller is operative to store at least one said read reference voltage in volatile memory.

9. The device of claim 7 wherein said controller is operative to store at least one said read reference voltage in non-volatile memory.

10. The device of claim 7 wherein said controller is operative to store at least one said read reference voltage in one or more said flash memory cells.

11. The device of claim 7 wherein said controller is operative to store at least one said read reference voltage in said controller.

12. 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

f) subsequent to said retrieving, read the data bits from the plurality of flash memory cells using said retrieved at least one read reference voltage,

wherein said reading is performed without resulting in re-writing said data bits to the memory cells.

Assignments (5)
CHANGE OF NAME Recorded Jun 10, 2025
From: WESTERN DIGITAL ISRAEL LTD.
To: SANDISK ISRAEL LTD.
Reel/Frame 071587/0836 →
CHANGE OF NAME Recorded Aug 21, 2020
From: SANDISK IL LTD
To: WESTERN DIGITAL ISRAEL LTD
Reel/Frame 053574/0513 →
CHANGE OF NAME Recorded Oct 14, 2008
From: M-SYSTEMS FLASH DISK PIONEERS LTD.
To: MSYSTEMS LTD.
Reel/Frame 021679/0121 →
CHANGE OF NAME Recorded Oct 14, 2008
From: MSYSTEMS LTD
To: SANDISK IL LTD
Reel/Frame 021679/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2006
From: LASSER, MENAHEM; MURIN, MARK
To: M-SYSTEMS FLASH DISK PIONEERS LTD.
Reel/Frame 017722/0160 →