Patent ID: 8151166

Claim:
A method for operating a memory that includes multiple analog memory cells, the method comprising: storing data in the memory by writing first storage values to the cells, so as to cause the cells to hold respective electrical charge levels; after storing the data, reading second storage values from at least some of the cells, including at least one interfered cell that belongs to a group of cells; detecting and canceling a Back Pattern Dependency (BPD) distortion caused by the electrical charge levels of one or more interfering cells in the group to at least one of the second storage values read from the at least one interfered cell; and processing the second storage values, including the at least one of the second storage values in which the BPD distortion was canceled, so as to reconstruct the data, wherein detecting and canceling the BPD distortion comprise recursively estimating a part of the BPD distortion in a given cell in the group based on one or more other parts of the BPD distortion in respective one or more cells in the group that were programmed earlier than the given cell, and on the second storage values that were read from the one or more cells, and wherein estimating the part of the BPD distortion comprises measuring a total BPD distortion that is caused by the cells in the group, and estimating the part of the BPD distortion based on the total BPD distortion.