Patent ID: 7954037

Claim:
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.