Reading memory cells using multiple thresholds
First Claim
1. 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 respective analog input values selected from a set of nominal values to the analog memory cells;
reading the stored data 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 at least two of the read thresholds are positioned between a pair of the nominal values that are adjacent to one another in the set of the nominal values;
computing soft metrics responsively to the multiple comparison results;
decoding the ECC using the soft metrics, so as to extract the data stored in the analog memory cells; and
making an initial attempt to decode the ECC using an initial set of the read thresholds, such that no more than one of the read thresholds in the initial set is positioned between each pair of the nominal values that are adjacent to one another, and comparing the analog output values to the multiple read thresholds upon a failure of the initial attempt.
3 Assignments
0 Petitions
Accused Products
Abstract
A method for operating a memory (28) includes storing data, which is encoded with an Error Correction Code (ECC), in analog memory cells (32) of the memory by writing respective analog input values selected from a set of nominal values to the analog memory cells. The stored data is read 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. At least two of the read thresholds are positioned between a pair of the nominal values that are adjacent to one another in the set of the nominal values. Soft metrics are computed responsively to the multiple comparison results. The ECC is decoded using the soft metrics, so as to extract the data stored in the analog memory cells.
532 Citations
26 Claims
-
1. 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 respective analog input values selected from a set of nominal values to the analog memory cells; reading the stored data 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 at least two of the read thresholds are positioned between a pair of the nominal values that are adjacent to one another in the set of the nominal values; computing soft metrics responsively to the multiple comparison results; decoding the ECC using the soft metrics, so as to extract the data stored in the analog memory cells; and making an initial attempt to decode the ECC using an initial set of the read thresholds, such that no more than one of the read thresholds in the initial set is positioned between each pair of the nominal values that are adjacent to one another, and comparing the analog output values to the multiple read thresholds upon a failure of the initial attempt. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. 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 respective analog input values selected from a set of nominal values to the analog memory cells; reading the stored data 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 at least two of the read thresholds are positioned between a pair of the nominal values that are adjacent to one another in the set of the nominal values; 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, wherein reading the data from a first group of the analog memory cells further comprises estimating interference caused to the first group by a second group of the analog memory cells and canceling the estimated interference, and wherein canceling the estimated interference comprises modifying the soft metrics associated with the first group responsively to the estimated interference.
-
-
11. 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 respective analog input values selected from a set of nominal values to the analog memory cells; reading the stored data 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 at least two of the read thresholds are positioned between a pair of the nominal values that are adjacent to one another in the set of the nominal values; 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, wherein reading the data from a first group of the analog memory cells further comprises estimating interference caused to the first group by a second group of the analog memory cells and canceling the estimated interference, and comprising, upon failing to decode the ECC in the first group, selecting whether to perform one of; re-reading the data in the second group, so as to re-estimate and cancel the interference; re-estimating the interference by reading the data in a third group of the memory cells; and adding one or more additional read thresholds and re-reading the data in the first group using the additional read thresholds.
-
-
12. 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 connected to the interface and is coupled to store data, which is encoded with an Error Correction Code (ECC), in the analog memory cells by writing respective input analog values selected from a set of nominal values to the analog memory cells, to read the stored data 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 at least two of the read thresholds are positioned between a pair of the nominal values that are adjacent to one another in the set of the nominal values, to compute soft metrics responsively to the multiple comparison results, and to decode the ECC using the soft metrics, so as to extract the data stored in the analog memory cells wherein the MSP is coupled to make an initial attempt to decode the ECC using an initial set of the read thresholds, such that no more than one of the read thresholds in the initial set is positioned between each pair of the nominal values that are adjacent to one another, and to compare the analog output values to the multiple read thresholds upon failure of the initial attempt. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. 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 connected to the interface and is coupled to store data, which is encoded with an Error Correction Code (ECC), in the analog memory cells by writing respective input analog values selected from a set of nominal values to the analog memory cells, to read the stored data 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 at least two of the read thresholds are positioned between a pair of the nominal values that are adjacent to one another in the set of the nominal values, to compute soft metrics responsively to the multiple comparison results, and to decode the ECC using the soft metrics, so as to extract the data stored in the analog memory cells, wherein the MSP is coupled to estimate interference caused to a first group of the analog memory cells by a second group of the analog memory cells, and to cancel the estimated interference, and wherein the MSP is coupled to modify the soft metrics associated with the first group responsively to the estimated interference.
-
-
22. 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 connected to the interface and is coupled to store data, which is encoded with an Error Correction Code (ECC), in the analog memory cells by writing respective input analog values selected from a set of nominal values to the analog memory cells, to read the stored data 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 at least two of the read thresholds are positioned between a pair of the nominal values that are adjacent to one another in the set of the nominal values, to compute soft metrics responsively to the multiple comparison results, and to decode the ECC using the soft metrics, so as to extract the data stored in the analog memory cells, wherein the MSP is coupled to estimate interference caused to a first group of the analog memory cells by a second group of the analog memory cells, and to cancel the estimated interference, and wherein, upon failing to decode the ECC in the first group, the MSP is coupled to select whether to perform one of; re-reading the data in the second group, so as to re-estimate and cancel the interference; re-estimating the interference by reading the data in a third group of the memory cells; and adding one or more additional read thresholds and re-reading the data in the first group using the additional read thresholds.
-
-
23. A data storage apparatus, comprising:
-
a memory device, comprising; a plurality of analog memory cells, which are configured to store data, which is encoded with an Error Correction Code (ECC) and written to the analog memory cells as respective analog input values selected from a set of nominal values; and reading circuitry, which is coupled to read the stored data by performing multiple read operations that compare output analog 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 at least two of the read thresholds are positioned between a pair of the nominal values that are adjacent to one another in the set of the nominal values, to compute soft metrics responsively to the multiple comparison results, and to output the computed soft metrics; and a Memory Signal Processor (MSP) device, which is connected to the memory device and is coupled to accept the soft metrics computed by the reading circuitry, and to decode the ECC using the soft metrics wherein the MSP is coupled to make an initial attempt to decode the ECC using an initial set of the read thresholds, such that no more than one of the read thresholds in the initial set is positioned between each pair of the nominal values that are adjacent to one another, and to cause the reading circuitry to compare the analog output values to the multiple read thresholds upon failure of the initial attempt.
-
-
24. 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 respective analog input values to the analog memory cells; reading the stored data by comparing analog output values of the analog memory cells to a set of read thresholds, so as to produce multiple comparison results for each of the analog memory cells; computing soft metrics responsively to the multiple comparison results; decoding the ECC using the soft metrics, so as to extract the data stored in the analog memory cells; and upon a failure to successfully extract the data, extending the set of the read thresholds by adding one or more new read thresholds to the set, updating the multiple comparison results based on the extended set of the read thresholds, re-computing the soft metrics and re-decoding the ECC, so as to extract the data. - View Dependent Claims (25, 26)
-
Specification