READING A FLASH MEMORY BY CONSTRAINED DECODING
First Claim
1. A method of reading a plurality of memory cells that have been programmed to store a codeword of an error correction code, with each cell storing a respective plurality of bits of the codeword, comprising:
- (a) measuring a respective value of an operational parameter of each cell;
(b) assigning each bit of each cell a respective metric, based at least in part on the respective value of the operational parameter of the each cell; and
(c) decoding the metrics with reference both to the error correction code and to mutual constraints of the metrics within each cell that are independent of the error correction code.
1 Assignment
0 Petitions
Accused Products
Abstract
To read memory cells that have been programmed to store an ECC codeword, with each cell storing a respective plurality of bits of the codeword, a respective value of an operational parameter such as a threshold voltage of each cell is measured. Each bit is assigned a respective metric, such as a LLR estimate of the bit, based at least in part on the respective value of the operational parameter of the bit'"'"'s cell. The metrics are decoded with reference both to the ECC and to mutual constraints of the metrics within each cell that are independent of the ECC.
38 Citations
13 Claims
-
1. A method of reading a plurality of memory cells that have been programmed to store a codeword of an error correction code, with each cell storing a respective plurality of bits of the codeword, comprising:
-
(a) measuring a respective value of an operational parameter of each cell; (b) assigning each bit of each cell a respective metric, based at least in part on the respective value of the operational parameter of the each cell; and (c) decoding the metrics with reference both to the error correction code and to mutual constraints of the metrics within each cell that are independent of the error correction code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A memory device comprising:
-
(a) a plurality of cells for storing a codeword of an error correction code, with each cell storing a respective plurality of bits of the codeword; (b) circuitry for measuring a respective value of an operational parameter of each cell; and (c) a controller operative; (i) to instruct the circuitry to measure the values of the operational parameters, (ii) to assign each bit of each cell a respective metric, based at least in part on the respective value of the operational parameter of the each cell, and (iii) to decode the metrics with reference both to the error correction code and to mutual constraints of the metrics within each cell that are independent of the error correction code.
-
-
11. A memory controller, for a memory that includes a plurality of cells for storing a codeword of an error correction code, with each cell storing a respective plurality of bits of the codeword, the memory controller comprising:
-
(a) a measurement functional block for obtaining, from the memory, for each cell, a measurement of a respective value of an operational parameter of the cell; (b) an assignment functional block for assigning each bit of each cell a respective metric, based at least in part on the respective value of the operational parameter of the each cell; and (c) a decoder for decoding the metrics with reference both to the error correction code and to mutual constraints of the metrics within each cell that are independent of the error correction code.
-
-
12. A system for managing a first memory that includes a plurality of cells for storing a codeword of an error correction code, with each cell storing a respective plurality of bits of the codeword, the system comprising:
-
(a) a second memory for storing program code for; (i) obtaining, from the first memory, for each cell, a measurement of a respective value of an operational parameter of the cell, (ii) assigning each bit of each cell a respective metric, based at least in part on the respective value of the operational parameter of the each cell, and (iii) decoding the metrics with reference both to the error correction code and to mutual constraints of the metrics within each cell that are independent of the error correction code; and (b) a processor for executing the code.
-
-
13. 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 cells for storing a codeword of an error correction code, with each cell storing a respective plurality of bits of the codeword, the computer-readable code comprising:
-
(a) program code for obtaining from the memory, for each cell, a measurement of a respective value of an operational parameter of the cell; (b) program code for assigning each bit of each cell a respective metric, based at least in part on the respective value of the operational parameter of the each cell; and (c) program code for decoding the metrics with reference both to the error correction code and to mutual constraints of the metrics within each cell that are independent of the error correction code.
-
Specification