Distortion estimation and cancellation in memory devices
First Claim
1. A method for operating a memory, comprising:
- accepting data for storage in the memory;
determining respective first voltage levels for programming a group of analog memory cells of the memory so as to cause the analog memory cells to store respective values of a physical quantity that represent the data;
calculating an error correction code (ECC) for the accepted data dependent upon the determination of the respective first voltage levels;
encoding the accepted data dependent upon the ECC;
programming the group of analog memory cells with the encoded data dependent upon the determined first voltage levels;
reading second voltage levels from the respective programmed analog memory cells; and
reconstructing the data from the second voltage levels, wherein reconstructing the data comprises decoding the data dependent upon the ECC;
wherein determining the first voltage levels comprises estimating distortion caused to a value of the physical quantity stored in a target analog memory cell by the values of the physical quantities stored in one or more other analog memory cells when storing the data in the target analog memory cell, and pre-correcting a first voltage level used for programming the target analog memory cell responsively to the estimated distortion.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for operating a memory (28) includes storing data in a group of analog memory cells (32) of the memory as respective first voltage levels. After storing the data, second voltage levels are read from the respective analog memory cells. The second voltage levels are affected by cross-coupling interference causing the second voltage levels to differ from the respective first voltage levels. Cross-coupling coefficients, which quantify the cross-coupling interference among the analog memory cells, are estimated by processing the second voltage levels. The data stored in the group of analog memory cells is reconstructed from the read second voltage levels using the estimated cross-coupling coefficients.
-
Citations
17 Claims
-
1. A method for operating a memory, comprising:
-
accepting data for storage in the memory; determining respective first voltage levels for programming a group of analog memory cells of the memory so as to cause the analog memory cells to store respective values of a physical quantity that represent the data; calculating an error correction code (ECC) for the accepted data dependent upon the determination of the respective first voltage levels; encoding the accepted data dependent upon the ECC; programming the group of analog memory cells with the encoded data dependent upon the determined first voltage levels; reading second voltage levels from the respective programmed analog memory cells; and reconstructing the data from the second voltage levels, wherein reconstructing the data comprises decoding the data dependent upon the ECC; wherein determining the first voltage levels comprises estimating distortion caused to a value of the physical quantity stored in a target analog memory cell by the values of the physical quantities stored in one or more other analog memory cells when storing the data in the target analog memory cell, and pre-correcting a first voltage level used for programming the target analog memory cell responsively to the estimated distortion. - View Dependent Claims (2, 3, 4, 10)
-
-
5. A data storage apparatus, comprising:
-
an interface, which is operative to communicate with a memory that includes a plurality of analog memory cells; and a memory signal processor (MSP), which is coupled to the interface and is arranged to accept data for storage in the memory, to determine respective first voltage levels for programming a group of the analog memory cells so as to cause the analog memory cells to store respective values of a physical quantity that represent the data, to calculate an error correction code (ECC) for the accepted data dependent upon the respective first voltage levels, to encode the accepted data dependent upon the ECC, to program the analog memory cells in the group using the first voltage levels, to read, after programming the analog memory cells, second voltage levels from the respective analog memory cells, and to reconstruct the data from the second voltage levels, wherein to reconstruct the data comprises decoding the data dependent upon the ECC; wherein the MSP is arranged to estimate distortion caused to a value of the physical quantity stored in a target analog memory cell by the values of the physical quantities stored in one or more other analog memory cells when storing the data in the target analog memory cell, and to pre-correct a first voltage level used for programming the target analog memory cell responsively to the estimated distortion. - View Dependent Claims (6, 7, 8, 11)
-
-
9. A data storage apparatus, comprising:
-
a memory, which comprises a plurality of analog memory cells; and a memory signal processor (MSP), which is coupled to the memory and is arranged to accept data for storage in the memory, to determine respective first voltage levels for programming a group of the analog memory cells so as to cause the analog memory cells to store respective values of a physical quantity that represent the data, to calculate an error correction code (ECC) for the accepted data dependent upon the respective first voltage levels, to encode the accepted data dependent upon the ECC, to program the analog memory cells in the group using the first voltage levels, to read, after programming the analog memory cells, second voltage levels from the respective analog memory cells, and to reconstruct the data from the second voltage levels, wherein to reconstruct the data comprises decoding the data dependent upon the ECC; wherein the MSP is arranged to estimate distortion caused to a value of the physical quantity stored in a target analog memory cell by the values of the physical quantities stored In one or more other analog memory cells when storing the data in the target analog memory cell, and to pre-correct a first voltage level used for programming the target analog memory cell responsively to the estimated distortion. - View Dependent Claims (12)
-
-
13. A non-transitory computer accessible storage medium having program instructions stored therein that, in response to execution by a computer system, causes the computer system to perform operations including:
-
estimating distortion of respective physical values stored in a plurality of analog memory cells included in a memory; accepting data for storage in the memory; calculating an error correction code (ECC) dependent upon the estimated distortion; encoding the data accepted for storage in the memory dependent upon the calculated ECC; programming the plurality of analog memory cells with the encoded data accepted for storage dependent upon the estimated distortion; reading soft data from the plurality of analog memory cells; reconstructing the data accepted for storage dependent upon the read soft data. - View Dependent Claims (14, 15, 16, 17)
-
Specification