Method of error correction in MBC flash memory
First Claim
1. A method of storing data in a Multi-Bit per Cell (MBC) flash memory, comprising the steps of:
- (a) calculating error correction parity bits for a plurality of logical pages of data bits, wherein at least one of said error correction parity bits applies jointly to at least two of said logical pages; and
(b) programming the MBC flash memory with said data bits and said error correction parity bits, with at least one cell of the MBC flash memory being programmed with data bits from more than one of said at least two logical pages to which said at least one joint error correction parity bit applies.
1 Assignment
0 Petitions
Accused Products
Abstract
A plurality of logical pages is stored in a MBC flash memory along with corresponding ECC bits, with at least one of the MBC cells storing bits from more than one logical page, and with at least one of the ECC bits applying to two or more of the logical pages. When the pages are read from the memory, the data bits as read are corrected using the ECC bits as read. Alternatively, a joint, systematic or non-systematic ECC codeword is computed for two or more of the logical pages and is stored instead of those logical pages. When the joint codeword is read, the logical bits are recovered from the codeword as read. The scope of the invention also includes corresponding memory devices, the controllers of such memory devices, and also computer-readable storage media bearing computer-readable code for implementing the methods.
-
Citations
22 Claims
-
1. A method of storing data in a Multi-Bit per Cell (MBC) flash memory, comprising the steps of:
-
(a) calculating error correction parity bits for a plurality of logical pages of data bits, wherein at least one of said error correction parity bits applies jointly to at least two of said logical pages; and
(b) programming the MBC flash memory with said data bits and said error correction parity bits, with at least one cell of the MBC flash memory being programmed with data bits from more than one of said at least two logical pages to which said at least one joint error correction parity bit applies. - View Dependent Claims (2, 3, 4)
-
-
5. Given a Multi-Bit per Cell (MBC) flash memory programmed with data bits of a plurality of logical pages and with error correction parity bits calculated for the data bits, with at least one of the error correction parity bits applying jointly to at least two of the logical pages, and with at least one cell of the MBC flash memory being programmed with data bits from more than one of the at least two logical pages to which the at least one joint error correction bit applies:
-
a method of recovering the data bits, comprising the steps of;
(a) reading, from the MBC flash memory;
(i) the data bits of the at least two logical pages to which the at least one joint error correction parity bit applies, and (ii) the error correction parity bits that apply to any of the at least two logical pages to which the at least one joint error correction parity bit applies; and
(b) correcting the data bits, as read from the MBC flash memory, in accordance with the error correction parity bits, as read from the MBC flash memory.
-
- 6. A controller, for a Multi-Bit per Cell (MBC) flash memory, that is operative to store, in the MBC flash memory, data bits of a plurality of logical pages by steps including calculating error correction parity bits for the data bits, with at least one error correction parity bit applying jointly to at least two of the logical pages, and with data bits from more than one of the at least two logical pages, to which the at least one joint error correction parity bit applies, being stored together in each of at least one cell of the MBC flash memory.
-
9. A computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code for managing a Multi-Bit Per Cell (MBC) flash memory, the computer-readable code comprising:
-
(a) program code for calculating error correction parity bits for a plurality of logical pages of data bits to be stored in the MBC flash memory, wherein at least one of said error correction parity bits applies jointly to at least two of said logical pages; and
(b) program code for programming the MBC flash memory with said data bits and said error correction parity bits, with at least one cell of the MBC flash memory being programmed with data bits from more than one of said at least two logical pages to which said at least one joint error correction parity bit applies.
-
-
10. Given a Multi-Bit per Cell (MBC) flash memory programmed with data bits of a plurality of logical pages and with error correction parity bits calculated for said data bits, with at least one of the error correction parity bits applying jointly to at least two of the logical pages, and with at least one cell of the MBC flash memory being programmed with data bits from more than one of the at least two logical pages to which the at least one joint error correction bit applies:
-
a computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code comprising;
(a) program code for reading, from the MBC flash memory;
(i) the data bits of the at least two logical pages to which the at least one joint error correction parity bit applies, and (ii) the error correction parity bits that apply to any of the at least two logical pages to which the at least one joint error correction parity bit applies; and
(b) program code for correcting the data bits, as read from the MBC flash memory, in accordance with the error correction parity bits, as read from the MBC flash memory.
-
-
11. A method of storing data in a Multi-Bit per Cell (MBC) flash memory, comprising the steps of:
-
(a) computing a joint Error Correction Code (ECC) codeword for at least two of a plurality of logical pages of data bits; and
(b) programming the MBC flash memory with said joint ECC codeword. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. Given a Multi-Bit per Cell (MBC) flash memory programmed with a joint Error Correction Code (ECC) codeword computed for at least two of a plurality of logical pages of data bits:
-
a method of recovering the data bits, comprising the steps of;
(a) reading the joint ECC codeword from the flash memory; and
(b) recovering, from the joint ECC codeword as read from the flash memory, the data bits of the at least two logical pages from which the joint ECC codeword was computed.
-
- 18. A controller, for a Multi-Bit per Cell (MBC) flash memory, that is operative to store, in the MBC flash memory, data bits of a plurality of logical pages, by steps including computing a joint Error Correction Code (ECC) codeword for at least two of said logical pages.
-
21. A computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code for managing a Multi-Bit Per Cell (MBC) flash memory, the computer-readable code comprising:
-
(a) program code for computing a joint Error Correction Code (ECC) codeword for at least two of a plurality of logical pages of data bits to be stored in the MBC flash memory; and
(b) program code for programming the MBC flash memory with said joint ECC codeword.
-
-
22. Given a Multi-Bit per Cell (MBC) flash memory programmed with a joint Error Correction Code (ECC) codeword computed for at least two of a plurality of logical pages of data bits:
-
a computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code comprising;
(a) program code for reading the joint ECC codeword from the flash memory; and
(b) program code for recovering, from the joint ECC codeword as read from the flash memory, the data bits of the at least two logical pages from which the joint ECC codeword was computed.
-
Specification