Probabilistic error correction in multi-bit-per-cell flash memory
First Claim
1. A method of reading a plurality of data bits that are stored in a memory that includes a plurality of multi-bit cells, the storing being effected by computing a plurality of parity bits that correspond to the data bits and then storing the data bits and the parity bits as stored bits in the cells of the memory, with a respective plurality of the stored bits being stored in each of the cells, the method comprising the steps of:
- (a) reading the cells, thereby obtaining, for each cell, a respective plurality of read bits; and
(b) correcting said read bits that correspond to the data bits in accordance with said read bits that correspond to the parity bits, wherein said correcting is effected at least in part in accordance with a priori estimates of respective probabilities of at least two of said read bits being erroneous, wherein at least one said estimate is different from at least one other said estimate.
1 Assignment
0 Petitions
Accused Products
Abstract
Data that are stored in cells of a multi-bit-per cell memory, according to a systematic or non-systematic ECC, are read and corrected (systematic ECC) or recovered (non-systematic ECC) in accordance with estimated probabilities that one or more of the read bits are erroneous. In one method of the present invention, the estimates are a priori. In another method of the present invention, the estimates are based only on aspects of the read bits that include significances or bit pages of the read bits. In a third method of the present invention, the estimates are based only on values of the read bits. Not all the estimates are equal.
-
Citations
40 Claims
-
1. A method of reading a plurality of data bits that are stored in a memory that includes a plurality of multi-bit cells, the storing being effected by computing a plurality of parity bits that correspond to the data bits and then storing the data bits and the parity bits as stored bits in the cells of the memory, with a respective plurality of the stored bits being stored in each of the cells, the method comprising the steps of:
-
(a) reading the cells, thereby obtaining, for each cell, a respective plurality of read bits; and
(b) correcting said read bits that correspond to the data bits in accordance with said read bits that correspond to the parity bits, wherein said correcting is effected at least in part in accordance with a priori estimates of respective probabilities of at least two of said read bits being erroneous, wherein at least one said estimate is different from at least one other said estimate. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code for managing a memory that includes a plurality of multi-bit cells and wherein are stored a plurality of data bits, the data bits being stored by computing a plurality of parity bits that correspond to the data bits and then storing the data bits and the parity bits as stored bits in the cells of the memory, with a respective plurality of the stored bits being stored in each of the cells, the computer-readable code comprising:
-
(a) program code for reading the cells, thereby obtaining, for each cell, a respective plurality of read bits; and
(b) program code for correcting said read bits that correspond to the data bits in accordance with said read bits that correspond to the parity bits, wherein said correcting is effected at least in part in accordance with a priori estimates of respective probabilities of at least two of said read bit being erroneous, wherein at least one said estimate is different from at least one other said estimate.
-
-
9. A method of reading a plurality of data bits that are stored in a memory that includes a plurality of multi-bit cells, the storing being effected by computing a plurality of protected bits that correspond to the data bits and then storing the protected bits in the cells of the memory, with a respective plurality of the protected bits being stored in each of the cells, the method comprising the steps of:
-
(a) reading the cells, thereby obtaining, for each cell, a respective plurality of read protected bits; and
(b) recovering the data bits from the read protected bits, wherein said recovering is effected at least in part in accordance with a priori estimates of respective probabilities of at least two of said read protected bits being erroneous, wherein at least one said estimate is different from at least one other said estimate. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code for managing a memory that includes a plurality of multi-bit cells and wherein are stored a plurality of data bits, the data bits being stored by computing a plurality of protected bits that correspond to the data bits and then storing the protected bits in the cells of the memory, with a respective plurality of the protected bits being stored in each of the cells, the computer-readable code comprising:
-
(a) program code for reading the cells, thereby obtaining, for each cell, a respective plurality of read bits; and
(b) program code for recovering the data bits from the read protected bits, wherein said recovering is effected at least in part in accordance with a priori estimates of respective probabilities of at least two of said read protected bits being erroneous, wherein at least one said estimate is different from at least one other said estimate.
-
-
17. A method of reading a plurality of data bits that are stored in a memory that includes a plurality of multi-bit cells, the storing being effected by computing a plurality of parity bits that correspond to the data bits and then storing the data bits and the parity bits as stored bits in the cells of the memory, with a respective plurality of the stored bits being stored in each of the cells, the method comprising the steps of:
-
(a) reading the cells, thereby obtaining, for each cell, a respective plurality of read bits; and
(b) correcting said read bits that correspond to the data bits in accordance with said read bits that correspond to the parity bits, wherein said correcting is effected in accordance with respective probabilities, of at least two of said read bits being erroneous, that are based only on at least one aspect of said read bits, said at least one aspect including an aspect selected from the group consisting of respective significances of said read bits and respective bit pages of said read bits, wherein at least one said probability is different from at least one other said probability. - View Dependent Claims (18, 19)
-
-
20. A computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code for managing a memory that includes a plurality of multi-bit cells and wherein are stored a plurality of data bits, the data bits being stored by computing a plurality of parity bits that correspond to the data bits and then storing the data bits and the parity bits as stored bits in the cells of the memory, with a respective plurality of the stored bits being stored in each of the cells, the computer-readable code comprising:
-
(a) program code for reading the cells, thereby obtaining, for each cell, a respective plurality of read bits; and
(b) program code for correcting said read bits that correspond to the data bits in accordance with said read bits that correspond to the parity bits, wherein said correcting is effected in accordance with respective probabilities, of at least two of said read bits being erroneous, that are based only on at least one aspect of said read bits, said at least one aspect including an aspect selected from the group consisting of respective significances of said read bits and respective bit pages of said read bits, wherein at least one said probability is different from at least one other said probability.
-
-
21. A method of reading a plurality of data bits that are stored in a memory that includes a plurality of multi-bit cells, the storing being effected by computing a plurality of protected bits that correspond to the data bits and then storing the protected bits in the cells of the memory, with a respective plurality of the protected bits being stored in each of the cells, the method comprising the steps of:
-
(a) reading the cells, thereby obtaining, for each cell, a respective plurality of read protected bits; and
(b) recovering the data bits from the read protected bits, wherein said recovering is effected in accordance with respective probabilities, of at least two of said read protected bits being erroneous, that are based only on at least one aspect of said read protected bits, said at least one aspect including an aspect selected from the group consisting of respective significances of said read protected bits and respective bit pages of said read protected bits, wherein at least one said probability is different from at least one other said probability. - View Dependent Claims (22, 23)
-
-
24. A computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code for managing a memory that includes a plurality of multi-bit cells and wherein are stored a plurality of data bits, the data bits being stored by computing a plurality of protected bits that correspond to the data bits and then storing the protected bits in the cells of the memory, with a respective plurality of the protected bits being stored in each of the cells, the computer-readable code comprising:
-
(a) program code for reading the cells, thereby obtaining, for each cell, a respective plurality of read protected bits; and
(d) program code for recovering the data bits from said read protected bits, wherein said recovering is effected in accordance with respective probabilities, of at least two of said read protected bits being erroneous, that are based only on at least one aspect of said read protected bits, said at least one aspect including an aspect selected from the group consisting of respective significances of said read protected bits and respective bit pages of said read protected bits, wherein at least one said probability is different from at least one other said probability.
-
-
25. A method of reading a plurality of data bits that are stored in a memory that includes a plurality of multi-bit cells, the storing being effected by computing a plurality of parity bits that correspond to the data bits and then storing the data bits and the parity bits as stored bits in the cells of the memory, with a respective plurality of the stored bits being stored in each of the cells, the method comprising the steps of:
-
(a) reading the cells, thereby obtaining, for each cell, a respective plurality of read bits; and
(b) correcting said read bits that correspond to the data bits in accordance with said read bits that correspond to the parity bits, wherein said correcting is effected in accordance with respective probabilities, of at least two of said read bits being erroneous, that are based only on respective values of said read bits, wherein at least one said probability is different from at least one other said probability. - View Dependent Claims (26, 27)
-
-
28. A computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code for managing a memory that includes a plurality of multi-bit cells and wherein are stored a plurality of data bits, the data bits being stored by computing a plurality of parity bits that correspond to the data bits and then storing the data bits and the parity bits as stored bits in the cells of the memory, with a respective plurality of the stored bits being stored in each of the cells, the computer-readable code comprising:
-
(a) program code for reading the cells, thereby obtaining, for each cell, a respective plurality of read bits; and
(b) program code for correcting said read bits that correspond to the data bits in accordance with said read bits that correspond to the parity bits, wherein said correcting is effected in accordance with respective probabilities, of at least two of said read bits being erroneous, that are based only on respective values of said read bits, wherein at least one said probability is different from at least one other said probability.
-
-
29. A method of reading a plurality of data bits that are stored in a memory that includes a plurality of multi-bit cells, the storing being effected by computing a plurality of protected bits that correspond to the data bits and then storing the protected bits in the cells of the memory, with a respective plurality of the protected bits being stored in each of the cells, the method comprising the steps of:
-
(a) reading the cells, thereby obtaining, for each cell, a respective plurality of read protected bits; and
(b) recovering the data bits from the read protected bits, wherein said recovering is effected in accordance with respective probabilities, of at least two of said read protected bits being erroneous, that are based only on respective values of said read protected bits, wherein at least one said probability is different from at least one other said probability. - View Dependent Claims (30, 31)
-
-
32. A computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code for managing a memory that includes a plurality of multi-bit cells and wherein are stored a plurality of data bits, the data bits being stored by computing a plurality of protected bits that correspond to the data bits and then storing the protected bits in the cells of the memory, with a respective plurality of the protected bits being stored in each of the cells, the computer-readable code comprising:
-
(a) program code for reading the cells, thereby obtaining, for each cell, a respective plurality of read protected bits; and
(d) program code for recovering the data bits from said read protected bits, wherein said recovering is effected in accordance with respective probabilities, of at least two of said read protected bits being erroneous, that are based only on respective values of said read protected bits, wherein at least one said probability is different from at least one other said probability.
-
-
33. A method of reading a plurality of data bits that are stored in a memory that includes a plurality of multi-bit cells, the storing being effected by computing a plurality of parity bits that correspond to the data bits and then storing the data bits and the parity bits as stored bits in the cells of the memory, with a respective plurality of the stored bits being stored in each of the cells, the method comprising the steps of:
-
(a) reading the cells, thereby obtaining, for each cell, a respective plurality of read bits; and
(b) correcting said read bits that correspond to the data bits in accordance with said read bits that correspond to the parity bits, wherein said correcting is effected in accordance with respective probabilities, of at least two of said read bits being erroneous, that are based at least in part on information obtained as a result of said reading, said information being confined to respective values of said read bits, wherein at least one said probability is different from at least one other said probability. - View Dependent Claims (34, 35)
-
-
36. A computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code for managing a memory that includes a plurality of multi-bit cells and wherein are stored a plurality of data bits, the data bits being stored by computing a plurality of parity bits that correspond to the data bits and then storing the data bits and the parity bits as stored bits in the cells of the memory, with a respective plurality of the stored bits being stored in each of the cells, the computer-readable code comprising:
-
(a) program code for reading the cells, thereby obtaining, for each cell, a respective plurality of read bits; and
(b) program code for correcting said read bits that correspond to the data bits in accordance with said read bits that correspond to the parity bits, wherein said correcting is effected in accordance with respective probabilities, of at least two of said read bits being erroneous, that are based at least in part on information obtained as a result of said reading, said information being confined to respective values of said read bits, wherein at least one said probability is different from at least one other said probability.
-
-
37. A method of reading a plurality of data bits that are stored in a memory that includes a plurality of multi-bit cells, the storing being effected by computing a plurality of protected bits that correspond to the data bits and then storing the protected bits in the cells of the memory, with a respective plurality of the protected bits being stored in each of the cells, the method comprising the steps of:
-
(a) reading the cells, thereby obtaining, for each cell, a respective plurality of read protected bits; and
(b) recovering the data bits from the read protected bits, wherein said recovering is effected in accordance with respective probabilities, of at least two of said read protected bits being erroneous, that are based at least in part on information obtained as a result of said reading, said information being confined to respective values of said read protected bits, wherein at least one said probability is different from at least one other said probability. - View Dependent Claims (38, 39)
-
-
40. A computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code for managing a memory that includes a plurality of multi-bit cells and wherein are stored a plurality of data bits, the data bits being stored by computing a plurality, of protected bits that correspond to the data bits and then storing the protected bits in the cells of the memory, with a respective plurality of the protected bits being stored in each of the cells, the computer-readable code comprising:
-
(a) program code for reading the cells, thereby obtaining, for each cell, a respective plurality of read protected bits; and
(d) program code for recovering the data bits from said read protected bits, wherein said recovering is effected in accordance with respective probabilities, of at least two of said read protected bits being erroneous, that are based at least in part on information obtained as a result of said reading, said information being confined to respective values of said read protected bits, wherein at least one said probability is different from at least one other said probability.
-
Specification