Codes for limited magnitude asymmetric errors in flash memories
AssigneeCalifornia Institute of Technology
InventorsYuval Cassuto, Jehoshua Bruck, Moshe Schwartz, Vasken Bohossian
Life of this patent
Estimating the term…
Abstract
Error correction is tailored for the use of an ECC for correcting asymmetric errors with low magnitude in a data device, with minimal modifications to the conventional data device architecture. The technique permits error correction and data recovery to be performed with reduced-size error correcting code alphabets. For particular cases, the technique can reduce the problem of constructing codes for correcting limited magnitude asymmetric errors to the problem of constructing codes for symmetric errors over small alphabets. Also described are speed up techniques for reaching target data levels more quickly, using more aggressive memory programming operations.
Claims59
A method of processing an encoded data value comprising a codeword received over an information channel, the method comprising:
- receiving a channel output y comprising symbols defined over an alphabet Q of size q;
- performing symbol recovery of the channel output y to obtain a word of symbols ψ over an alphabet Q′ of size q′ wherein q>q′ for an error correcting code Σ defined over Q′ and adapted to correct for up to t asymmetric l-limited magnitude errors;
- decoding the word of symbols ψ with the error correcting code Σ and obtaining a decoded estimate {circumflex over (χ)} and an error-word estimate comprising a word of symbols {circumflex over (∈)} over Q′ such that ψ={circumflex over (χ)}+{circumflex over (∈)} mod q′;
- and
- combining the channel output y with the error-word estimate {circumflex over (∈)} and thereby producing the estimated codeword of the data value over the alphabet Q.
A data device that stores data for retrieval, the data device comprising:
- a host interface that provides communications between the data device and a host device;
- a memory interface that provides communications between memory cells and the data device;
- a microcontroller that manages communications for data transfer between the host interface and the memory interface, comprising an information channel, wherein the microcontroller processes an encoded data value comprising a codeword and performs operations such that the microcontroller
- receives a channel output y comprising symbols defined over an alphabet Q of size q;
- performs symbol recovery of the channel output y to obtain a word of symbols ψ over an alphabet Q′ of size q′ wherein q>q′ for an error correcting code Σ defined over Q′ and adapted to correct for up to t asymmetric l-limited magnitude errors;
- decodes the word of symbols ψ with the error correcting code Σ and obtains a decoded estimate {circumflex over (χ)} and an error-word estimate comprising a word of symbols {circumflex over (∈)} over Q′ such that ψ={circumflex over (χ)}+{circumflex over (∈)} mod q′;
- and
- combines the channel output y with the error-word estimate {circumflex over (∈)} and thereby produces the estimated codeword of the data value over the alphabet Q.
A method for run time programming of a data device to reach a target level of a physical quantity in memory cells of the data device, the method comprising:
- establishing an initial level and the target level of the physical quantity, wherein the target level corresponds to a codeword of an error correcting code;
- providing a programming pulse sequence comprising at least one pulse, wherein a first pulse increases the physical quantity from the initial level to a next level which is closer to the target level than the initial level, and subsequent pulses adjust the physical quantity toward the target level;
- terminating the programming pulse sequence at a terminating level when pulse sequence parameters are satisfied;
- applying error correction and adjusting the physical quantity from the terminating level to the target level for the codeword;
- wherein providing a programming pulse sequence comprises applying a predetermined number of pulses at the conclusion of which the terminating level is reached;
- and
- wherein the predetermined number of pulses is selected in accordance with a desired number N, given by
- N
- =
- log
-
- (
- I
- F
- -
- I
- 0
- )
- -
- log
-
- (
- Δ
- )
- -
- log
-
- (
- 1
- -
- K
- ∈
- )
- ,
- where the initial physical quantity level is given by Ii and the target level is given by IF and Δ corresponds to a desired error margin and K∈Δ−1/ln(∈).
A computer implemented method for error correction code design, the method comprising:
- receiving input parameters at a computer from a computer user for the error correction code design, the input parameters including values t and l, wherein l specifies a maximum magnitude of asymmetric errors in a codeword to be corrected by the error correction code and t specifies a maximum number of the l-limited magnitude asymmetric errors in a codeword;
- accessing, at the computer, an error correction code database containing error correction codes, and determining error correction codes that satisfy the input parameters;
- and
- retrieving, at the computer, database information that identifies the determined error correction codes that satisfy the input parameters and providing the information to the user;
- wherein the designed error correction code is sufficient for processing an encoded data value comprising a codeword received over an information channel, the codeword processing with the code comprising:
- receiving a channel output y comprising symbols defined over an alphabet Q of size q;
- performing symbol recovery of the channel output y to obtain a word of symbols ψ over an alphabet Q′ of size q′ wherein q>q′ for an error correcting code Σ defined over Q′ and adapted to correct for up to t asymmetric l-limited magnitude errors;
- decoding the word of symbols ψ with the error correcting code Σ and obtaining a decoded estimate {circumflex over (χ)} and an error-word estimate comprising a word of symbols {circumflex over (∈)} over Q′ such that ψ={circumflex over (χ)}+{circumflex over (∈)} mod q′;
- and
- combining the channel output y with the error-word estimate {circumflex over (∈)} and thereby producing the estimated codeword of the data value over the alphabet Q.
A method of encoding a data value comprising user information for transmission over an information channel, the method comprising:
- providing the data value to an encoder utilizing an error correcting code defined over a code alphabet and producing an encoder output X value;
- combining the X value and the data value and producing the encoded data value comprising a codeword of a code C over an alphabet larger than the Σ alphabet;
- wherein the encoded data value further comprises a symbol defined over an alphabet Q of size q, such that the symbol can be recovered by performing symbol recovery of the channel output y to obtain a word of symbols ψ over an alphabet Q′ of size q′ wherein q>q′ for an error correcting code Σ defined over Q′ and adapted to correct for up to t asymmetric l-limited magnitude errors, followed by decoding the word of symbols ψ with the error correcting code Σ and obtaining a decoded estimate {circumflex over (χ)} and an error-word estimate comprising a word of symbols {circumflex over (∈)} over Q′ such that ψ={circumflex over (χ)}+{circumflex over (∈)} mod q′;
- and combining the channel output y with the error-word estimate {circumflex over (∈)} and thereby producing the estimated codeword of the data value over the alphabet Q.
An encoder for encoding a data value comprising user information for transmission over an information channel, the encoder comprising:
- a Σ encoder utilizing a code defined over a code alphabet, wherein the encoder produces an encoder output X value;
- a combiner that combines the X value and the data value and produces the encoded data value comprising a codeword of a code C over an alphabet larger than the Σ alphabet;
- wherein the encoded data value further comprises a symbol defined over an alphabet Q of size q, such that the symbol can be recovered by performing symbol recovery of the channel output y to obtain a word of symbols ψ over an alphabet Q′ of size q′ wherein q>q′ for an error correcting code Σ defined over Q′ and adapted to correct for up to t asymmetric l-limited magnitude errors, followed by decoding the word of symbols ψ with the error correcting code Σ and obtaining a decoded estimate {circumflex over (χ)} and an error-word estimate comprising a word of symbols {circumflex over (∈)} over Q′ such that ψ={circumflex over (χ)}+{circumflex over (∈)} mod q′;
- and combining the channel output y with the error-word estimate {circumflex over (∈)} and thereby producing the estimated codeword of the data value over the alphabet Q.
Dependencies are inferred from the claim text.