Patent ID: 7975192

Claim:
A method for operating a memory, comprising: storing data, which is encoded with an Error Correction Code (ECC), in analog memory cells of the memory by writing respective analog input values selected from a set of nominal values to the analog memory cells; reading the stored data by performing multiple read operations that compare analog output values of the analog memory cells to different, respective read thresholds so as to produce multiple comparison results for each of the analog memory cells, wherein at least two of the read thresholds are positioned between a pair of the nominal values that are adjacent to one another in the set of the nominal values; computing soft metrics responsively to the multiple comparison results; decoding the ECC using the soft metrics, so as to extract the data stored in the analog memory cells; and making an initial attempt to decode the ECC using an initial set of the read thresholds, such that no more than one of the read thresholds in the initial set is positioned between each pair of the nominal values that are adjacent to one another, and comparing the analog output values to the multiple read thresholds upon a failure of the initial attempt.