On-the-fly evaluation of the number of errors corrected in iterative ECC decoding
AssigneeApple Inc.
InventorsYonathan Tate, Asaf Landau, Micha Anholt
Life of this patent
Estimating the term…
Abstract
A decoder includes an interface and circuitry. The interface is configured to receive a code word that was encoded using a Quasi-Cyclic Low Density Parity Check (QC-LDPC) Error Correcting Code (ECC) represented by multiple check equations that are defined over multiple variables. The circuitry is configured to decode the code word by iteratively processing multiple layers that each includes a respective subset of the variables of the code word, and producing per each layer one or more count updates, and to generate a total number of errors corrected over the entire code word by accumulating the count updates.
Claims16
A storage system, comprising:
- a memory, configured to store a code word that was encoded using a Quasi-Cyclic (QC) Low Density Parity Check (QC-LDPC) Error Correcting Code (ECC) represented by multiple check equations that are defined over multiple variables;
- and
- a hardware-implemented decoder, configured to:
- receive the code word that was read from the memory, wherein the code word contains one or more errors caused by impairments in the memory;
- decode the code word by iteratively processing multiple layers that each comprises a respective subset of the variables of the code word, and producing, per each layer, one or more count updates;
- generate a total number of errors corrected over the entire code word by accumulating the count updates;
- and
- output at least one of the decoded code word and the total number of errors corrected.
A method for data storage, comprising:
- in a storage system comprising a memory and a hardware-implemented decoder coupled to the memory, reading from the memory a code word that was encoded using a Quasi-Cyclic Low Density Parity Check (QC-LDPC) Error Correcting Code (ECC) represented by multiple check equations that are defined over multiple variables, wherein the code word contains one or more errors caused by impairments in the memory;
- decoding the code word, by the decoder, by iteratively processing multiple layers that each comprises a respective subset of the variables of the code word, and producing, per each layer, one or more count updates;
- generating a total number of errors corrected over the entire code word by accumulating the count updates;
- and
- outputting, by the decoder, at least one of the decoded code word and the total number of errors corrected.
A receiver in a communication system, the receiver comprising:
- an interface, configured to receive a code word that was encoded, in a transmitter of the communication system, using a Quasi-Cyclic (QC) Low Density Parity Check (QC-LDPC) Error Correcting Code (ECC) represented by multiple check equations that are defined over multiple variables, wherein the code word contains one or more errors caused by a communication channel between the transmitter and the receiver;
- and
- a hardware-implemented decoder, configured to:
- decode the received code word by iteratively processing multiple layers that each comprises a respective subset of the variables of the code word, and producing, per each layer, one or more count updates;
- generate a total number of errors corrected over the entire code word by accumulating the count updates;
- and
- output at least one of the decoded code word and the total number of errors corrected.
A method for communication, comprising:
- in a receiver of a communication system, receiving a code word that was encoded in a transmitter of the communication system, using a Quasi-Cyclic (QC) Low Density Parity Check (QC-LDPC) Error Correcting Code (ECC) represented by multiple check equations that are defined over multiple variables, wherein the code word contains one or more errors caused by a communication channel between the transmitter and the receiver;
- decoding the received code word, by a hardware-implemented decoder of the receiver, by
- iteratively processing multiple layers that each comprises a respective subset of the variables of the code word, and producing, per each layer, one or more count updates;
- generating a total number of errors corrected over the entire code word by accumulating the count updates;
- and
- outputting at least one of the decoded code word and the total number of errors corrected.
Dependencies are inferred from the claim text.