Patent ID: 8595591

Claim:
A method for data storage, comprising: accepting data for storage in a memory comprising multiple analog memory cells; assigning, for each memory cell, a respective set of nominal analog values for representing data values to be stored in the memory cell, by choosing the nominal analog values for a given memory cell in a respective range that depends on interference between the given memory cell and at least one other memory cell in the memory; wherein assigning the nominal analog values comprises, for a group of N memory cells, dividing an N-dimensional space that includes a number of combinations of respective analog values of the N memory cells into a first region that includes combinations of nominal analog values that are unavailable for assignment due to the interference, and a second region that includes combinations of nominal analog values that are available for assignment, and assigning the sets of the nominal analog values to the N memory cells only within the second region; and storing the data in each memory cell using the respective selected set of the nominal analog values.