Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
First Claim
1. A method of operating a memory system comprising:
- reading individual data storage values and error correction data from the memory system;
representing the individual read data storage values by digital data values and associated quality indications; and
applying a combination of an error correction code and the quality indications to the digital data values representing the data storage values read from the memory system.
3 Assignments
0 Petitions
Accused Products
Abstract
The quality of data stored in a memory system is assessed by different methods, and the memory system is operated according to the assessed quality. The data quality can be assessed during read operations. Subsequent use of an Error Correction Code can utilize the quality indications to detect and reconstruct the data with improved effectiveness. Alternatively, a statistics of data quality can be constructed and digital data values can be associated in a modified manner to prevent data corruption. In both cases the corrective actions can be implemented specifically on the poor quality data, according to suitably chosen schedules, and with improved effectiveness because of the knowledge provided by the quality indications. These methods can be especially useful in high-density memory systems constructed of multi-level storage memory cells.
316 Citations
38 Claims
-
1. A method of operating a memory system comprising:
-
reading individual data storage values and error correction data from the memory system;
representing the individual read data storage values by digital data values and associated quality indications; and
applying a combination of an error correction code and the quality indications to the digital data values representing the data storage values read from the memory system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
generating the digital data values according to which defined non-overlapping storage value intervals the data storage values lie within, wherein the individual storage value intervals include a central preferred range and at least one peripheral range adjacent thereto.
-
-
4. The method of claim 3, wherein representing the individual read data storage values by associated quality indications includes:
generating the associated quality indications to indicate whether the data storage values lie within the preferred or the adjacent ranges of the storage value intervals within which they lie, whereby Good Quality data are indicated when the data storage values lie within the preferred ranges, and Poor Quality data are indicated when the data storage values lie within the adjacent ranges.
-
5. The method of claim 4, wherein the individual storage value intervals include one of the preferred ranges and one of the adjacent ranges on each side of the preferred range, and further wherein generating the associated quality indications includes:
generating an indication of which of the adjacent ranges the data storage values lie within, when a Poor Quality indication was associated with the data storage values.
-
6. The method of claim 5, wherein generating an indication of which of the adjacent ranges the data storage values lie in includes:
-
indicating High Anomaly data when the data storage values lie within the adjacent range above the central preferred range; and
indicating Low Anomaly data when the data storage values lie within the adjacent range below the central preferred range.
-
-
7. The method of claim 6, wherein representing the individual read data storage values by digital data values and associated quality indications includes:
representing the individual data storage values by digital data values, by a digital representation of its associated Good Quality or Poor Quality indication, and by a digital representation of its associated Low Anomaly or High Anomaly indication.
-
8. The method of claim 7, wherein applying an error correction code to the digital data values includes:
-
reconstructing at least one corrupted digital data value by applying the error correction code when the applied error correction code is capable of reconstructing the at least one corrupted digital data value, whereby the at least one corrupted digital data value has been detected by the error correction code; and
reconstructing at least one corrupted digital data value by applying the error correction code in combination with the associated quality indications when the applied error correction code is not capable of reconstructing the at least one corrupted digital data value, whereby the at least one corrupted digital data value has been detected by the error correction code.
-
-
9. The method of claim 8, wherein reconstructing at least one corrupted digital data value includes:
modifying at least one digital data value using an associated Poor Quality indication.
-
10. The method of claim 9, wherein modifying at least one digital data value includes:
modifying at least one digital data value according to the associated quality indication of which of the adjacent ranges the at least one data storage value lies within, whereby the at least one digital data value is increased when a High Anomaly is indicated and the at least one digital data value is decreased when a Low Anomaly is indicated.
-
11. The method of claim 10, wherein applying the error correction code in combination with the associated quality indications includes:
-
modifying at least one digital data value according to the associated quality indications; and
repeating the act of modifying at least one digital data value until the error correction code is capable of correcting the digital data values.
-
-
12. A method of operating a memory system comprising:
-
reading a plurality of data storage values from the memory system;
representing the read data storage values by digital data values and associated quality indications;
constructing statistics of a plurality of quality indications associated with the plurality of data storage values; and
utilizing the statistics of associated quality indications to operate the memory system. - View Dependent Claims (13, 14, 15, 16, 17)
generating the digital data values according to which defined non-overlapping storage value intervals the data storage values lie within, wherein the storage value intervals are separated by separations points; and
generating the associated quality indications according to where the read data storage values lie within the storage value intervals.
-
-
15. The method of claim 14, wherein utilizing the statistics of a plurality of associated quality indications to operate the memory system includes:
modifying the separation points according to the statistics of the plurality of associated quality indications.
-
16. The method of claim 15, wherein constructing a statistics of a plurality of associated quality indications includes:
-
establishing a number of the read data storage values lying in individual sub-intervals of storage value intervals, wherein the storage value intervals individually include a plurality of non-overlapping sub-intervals; and
identifying separation points as the plurality of sub-intervals in which the number of data storage values is smaller than a predetermined value.
-
-
17. The method of claim 16, wherein modifying the separation points according to the statistics of the plurality of associated quality indications includes:
modifying at least one separation point to lie within a corresponding separation gap.
-
18. A method of operating a memory system comprising:
-
reading a plurality of data storage values from the memory system;
representing the data storage values by digital data values and associated quality indications;
accumulating the quality indications, classifying the accumulated quality indications; and
utilizing the classification of the accumulated quality indications to operate the memory system. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
generating the digital data values according to which defined non-overlapping storage value intervals the data storage values lie within, wherein the storage value intervals individually include a central preferred range and at least one peripheral range adjacent thereto; and
generating the associated quality indications to indicate whether the data storage values lie within the central preferred range or the at least one peripheral range of the storage value intervals in which they lie, whereby Good Quality data are indicated when the data storage values lie within the central preferred range, and Poor Quality data are indicated when the data storage values lie within the least one peripheral ranges.
-
-
21. The method of claim 20, wherein classifying the quality indications associated with a plurality of the memory cells includes:
establishing the number of Poor Quality data in at least one plurality of memory cells.
-
22. The method of claim 21, wherein utilizing the classification of the accumulated quality indications to operate the plurality of the memory cells includes:
-
managing the data storage values of the at least one plurality of memory cells according to the number of Poor Quality data of the plurality of memory cells, comprising;
leaving the data storage values unchanged when the number of Poor Quality data is less than a first predetermined value.
-
-
23. The method of claim 22, wherein utilizing the classification of the accumulated quality indications to operate the plurality of the memory cells includes one of:
-
rewriting the data storage values into the same plurality of memory cells; and
transcribing the data storage values into a different plurality of memory cells, after a time chosen according to priorities of the system, when the number of Poor Quality data is smaller than a second predetermined value, but not smaller than the first predetermined value.
-
-
24. The method of claim 23, wherein utilizing the classification of the accumulated quality indications to operate the plurality of the memory cells includes one of:
-
rewriting the data storage values into the same plurality of memory cells; and
transcribing the data storage values into a different plurality of memory cells, immediately, or after a predetermined delay, when the number of Poor Quality data is smaller than a third predetermined value, but not smaller than the second predetermined value.
-
-
25. The method of claim 24, wherein utilizing the classification of the accumulated quality indications to operate the plurality of the memory cells includes:
-
transcribing the data storage values of the at least one plurality of memory cells into a different plurality of memory cells; and
retiring the at least one plurality of memory cells, when the number of Poor Quality data is not smaller than a third predetermined value.
-
-
26. A method of operating a memory system comprising:
-
reading individual data storage values from the memory system;
representing the individual read data storage values by digital data values and associated quality indications;
applying an error correction code to determine a number of corrupted digital data values representing the data storage values of a plurality of memory cells;
reconstructing the corrupted digital data values by applying the error correction code and the quality indications in combination; and
utilizing the number of corrupted digital data values to operate the memory system. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34)
generating the digital data values according to which defined non-overlapping intervals of storage values the data storage values lie, wherein the individual storage value intervals include a central preferred range and at least one peripheral range adjacent thereto; and
generating the associated quality indications to indicate whether the data storage values lie within the central preferred range or the at least one peripheral range of the individual storage value intervals in which they lie, whereby Good Quality data are indicated when the data storage values lie within the central preferred range, and Poor Quality data are indicated when the data storage values lie within the at least one peripheral range.
-
-
28. The method of claim 27, wherein the intervals of storage values include the central preferred range and one of the at least one peripheral range, and further wherein generating the associated quality indications includes:
generating an indication of which of the peripheral ranges the data storage values lie in, when a Poor Quality indication was associated with the data storage values.
-
29. The method of claim 28, wherein generating an indication of the at least one peripheral range the data storage values lie includes:
-
indicating High Anomaly data when the data storage values lie within the at least one peripheral range above the central preferred range; and
indicating Low Anomaly data when the data storage values lie within the at least one peripheral range below the central preferred range.
-
-
30. The method of claim 29, wherein representing the read data storage values by digital data values and associated quality indications includes:
representing the read data storage values individually by the associated digital data values, by a digital representation of its associated Good Quality or Poor Quality indication, and by a digital representation of its associated Low Anomaly or High Anomaly indication.
-
31. The method of claim 30, additionally comprising utilizing the number of corrupted digital data values to operate the memory system by:
managing the data storage values of the plurality of memory cells according to the number of corrupted digital data values of the plurality of memory cells, comprising reconstructing the data storage values by the error correction code in combination with the quality indications, when the number of corrupted digital data values is less than a first predetermined value.
-
32. The method of claim 31, wherein utilizing the number of corrupted digital data values to operate the memory system additionally includes:
-
reconstructing the data storage values by the error correction code in combination with the quality indications; and
one ofrewriting the data storage values into the same plurality of memory cells;
ortranscribing the data storage values into a different plurality of memory cells, after a time chosen according to the priorities of the system when the number of corrupted digital data values is smaller than a second predetermined value, but not smaller than the first predetermined value.
-
-
33. The method of claim 31, wherein utilizing the number of corrupted digital data values to operate the memory system additionally includes:
-
reconstructing the data storage values by the error correction code in combination with the quality indications; and
one ofrewriting the data storage values into the same plurality of memory cells; and
transcribing the data storage values into a different plurality of memory cells, immediately, or after a predetermined delay, when the number of corrupted digital data values is smaller than a third predetermined value, but not smaller than the second predetermined value.
-
-
34. The method of claim 31, wherein utilizing the number of corrupted digital data values to operate the memory system additionally includes:
-
reconstructing the data storage values by the error correction code in combination with the quality indications;
transcribing the data storage values into a different plurality of memory cells; and
retiring the plurality of memory cells when the number of corrupted digital data values is not smaller than a third predetermined value.
-
-
35. A method of operating a memory system of a type that stores digital data as analog values and stores error correction codes calculated from blocks of stored digital data, comprising:
-
utilizing non-overlapping ranges of the analog values to represent specified values of the digital data, the defined ranges being separated from one another by analog value intervals, reading the analog values and converting the analog values to the digital data represented thereby, providing indications of the quality of the digital data from a relationship of the read analog values from which the digital data was converted and the defined ranges, and utilizing both the quality indications and the stored error correction codes to together correct for digital data represented by analog values read outside of the defined ranges. - View Dependent Claims (36)
-
-
37. A method of operating a memory system of a type that stores digital data as analog values, comprising:
-
utilizing non-overlapping ranges of the analog values that individually represent the states of one or more bits of digital data, the defined ranges being separated from one another by analog value intervals, reading the analog values and converting the analog values to the one or more bits of digital data represented thereby, and adding two additional bits to the converted one or more bits of digital data that provide an indication of the quality of the converted one or more bits of digital data, one of the additional bits indicating a magnitude and the other of the additional bits whether that magnitude is positive or negative relative to the defined ranges of the read analog values from which the digital data was converted. - View Dependent Claims (38)
-
Specification