摘要 |
Methods and apparatus 3 are provided for encoding data for storage in multilevel memory cells 2 having q cell-levels. Input data words are encoded into respective codewords, each having N symbols with one of q symbol-values, via an encoding scheme adapted such that the q symbol-values have unequal multiplicities within at least some codewords, and the multiplicity of each of the q symbol-values in every codeword is no less than μ, where μ≧2 and more preferably ≧3. A first type of encoding scheme uses recursive symbol-flipping to enforce the μ-constraint, adding indicator symbols to indicate the flipped symbols. A second type of encoding scheme maps data words to codewords of a union of permutation codes, the initial vectors for these permutation codes being selected to enforce the μ-constraint. The N qary symbols of each codeword are supplied for storage in respective cells of the multilevel memory 2. |