Patent ID: 8145984

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 to the analog memory cells respective analog input values that program the analog memory cells to a set of memory states; reading the stored data multiple times from each analog memory cell 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 the analog output values associated with each memory state lie in a respective analog value region, wherein analog value regions are separated by one or more boundary regions, and wherein at least two of the read thresholds are positioned in a boundary region between a pair of adjacent ones of the analog value regions; computing soft metrics responsively to the multiple comparison results; and decoding the ECC using the soft metrics, so as to extract the data stored in the analog memory cells.