Patent ID: 8291297

Claim:
A method, comprising: determining that binary data read from a specified range of sequential memory locations in a charge-based non-volatile (NV) memory contains errors that were uncorrected by an error correcting code (ECC) unit associated with the NV memory; identifying which memory cells in the specified range produced data that is likely to be in error, said identifying to include incrementing a read reference voltage through a range of voltage values, reading, for each increment, binary data from within the specified range of sequential memory locations, identifying which memory cells produce different binary data in a current increment than for a previous increment to determine analog charge values for the memory cells that produced different binary data, and restoring the incremented read reference voltage and comparing the restored incremented read reference voltage to the analog charge values for the memory cells that produced different binary data to identify which memory cells in the specified range produced data that is likely to be in error; changing the data for at least some of the memory cells whose data was determined to likely be in error; and verifying whether the changed data is sufficiently correct for the ECC unit to provide correct data for the specified range.