Multi-write endurance and error control coding of non-volatile memories
First Claim
1. A computer implemented method for storing data, the method comprising:
- receiving write data comprising a plurality of bits;
receiving a write address of a memory page in a memory, the memory page associated with a plurality of memory cells having current electrical charge levels;
partitioning, at a computer, the write data into a plurality of q-bit sub-blocks, each q-bit sub-block comprising q bits of the write data;
generating, at the computer, error correction bits in response to the q-bit sub-blocks and to an error correction code (ECC);
appending at least one additional q-bit sub-block containing the error correction bits to the partitioned write data;
generating a write word, the generating a write word comprising;
performing for each of the q-bit sub-blocks including the at least one additional q-bit sub-block containing the error correction bits;
selecting a codeword such that the codeword encodes the q-bit sub-block and is consistent with the current electrical charge levels of the plurality of memory cells associated with the memory page; and
concatenating the selected codewords to form the write word; and
writing the write word to the memory page.
7 Assignments
0 Petitions
Accused Products
Abstract
Multi-write endurance and error control coding of non-volatile memories including a method for receiving write data and a write address of a memory page in a memory. The write data is partitioned into a plurality of sub-blocks, each sub-block including q bits of the write data. Error correction bits are generated at the computer in response to the sub-blocks and to an error correction code (ECC). At least one additional sub-block containing the error correction bits are appended to the partitioned write data and a write word is generated. The write word is generated by performing for each of the sub-blocks: selecting a codeword such that the codeword encodes the sub-block and is consistent with current electrical charge levels of the plurality of memory cells associated with the memory page; concatenating the selected codewords to form the write word; and writing the write word to the memory page.
-
Citations
25 Claims
-
1. A computer implemented method for storing data, the method comprising:
-
receiving write data comprising a plurality of bits; receiving a write address of a memory page in a memory, the memory page associated with a plurality of memory cells having current electrical charge levels; partitioning, at a computer, the write data into a plurality of q-bit sub-blocks, each q-bit sub-block comprising q bits of the write data; generating, at the computer, error correction bits in response to the q-bit sub-blocks and to an error correction code (ECC); appending at least one additional q-bit sub-block containing the error correction bits to the partitioned write data; generating a write word, the generating a write word comprising; performing for each of the q-bit sub-blocks including the at least one additional q-bit sub-block containing the error correction bits;
selecting a codeword such that the codeword encodes the q-bit sub-block and is consistent with the current electrical charge levels of the plurality of memory cells associated with the memory page; andconcatenating the selected codewords to form the write word; and writing the write word to the memory page. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
a receiver for receiving write data and a write address of a memory page in a memory, the memory page associated with a plurality of memory cells having current electrical charge levels; an encoder communicatively coupled to the memory, the encoder for performing a method comprising; partitioning the write data into a plurality of q-bit sub-blocks, each q-bit sub-block comprising q bits of the write data; generating error correction bits in response to the q-bit sub-blocks and to an error correction code (ECC); appending at least one additional q-bit sub-block containing the error correction bits to the partitioned write data; generating a write word, the generating a write word comprising; performing for each of the q-bit sub-blocks including the at least one additional q-bit sub-block containing the error correction bits;
selecting a codeword such that the codeword encodes the q-bit sub-block and is consistent with the current electrical charge levels of the plurality of memory cells associated with the memory page; andconcatenating the selected codewords to form the write word; and writing the write word to the memory page. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer implemented method for retrieving data from memory, the method comprising:
-
receiving a read address of a memory page in a memory; retrieving a read word from the memory page, the read word comprising a plurality of multi-write endurance (MWE) codewords including at least one MWE codeword that corresponds to error correction bits; determining, at a computer, that each of the MWE codewords is in a set of MWE codewords used to generate the read word; generating read data, at the computer, the generating read data comprising; performing for each of the MWE codewords;
selecting a sub-block comprising data that corresponds to the MWE codeword;concatenating the sub-blocks to generate the ECC codeword; performing error correction code (ECC) processing on the ECC codeword; and removing the error correction bits from the ECC codeword resulting in the read data; and outputting the read data. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A system for retrieving data comprising:
-
a receiver for receiving a read address of a memory page in a memory; a decoder communicatively coupled to the memory, the decoder for performing a method comprising; retrieving a read word from the memory page, the read word comprising a plurality of multi-write endurance (MWE) codewords including at least one MWE codeword that corresponds to error correction bits; determining, at a computer, that each of the MWE codewords is in a set of MWE codewords used to generate the read word; generating read data, at the computer, the generating read data comprising; performing for each of the MWE codewords;
selecting a sub-block comprising data that corresponds to the MWE codeword;concatenating the sub-blocks; performing error correction code (ECC) processing on the read data in response to the error correction bits and to the sub-blocks; and removing the error correction bits from the read data; and outputting the read data. - View Dependent Claims (22, 23, 24, 25)
-
Specification