IP Library Granted Patent US 8,484,544
Granted Patent B2
US 8,484,544 · App. 13/590,565 · Granted Jul 9, 2013

High-performance ECC decoder

Inventors: Micha Anholt (Tel Aviv, IL); Naftali Sommer (Rishon le-Zion, IL); Gil Semo (Tel Aviv, IL); Tal Inbar (Hod-Hasharon, IL)
Assignee: Apple Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,484,544
App. No.
13/590,565
Granted
Jul 9, 2013
Kind
B2
Abstract

Methods for Error Correction Code (ECC) decoding include producing syndromes from a set of bits, which represent data that has been encoded with the ECC. An Error Locator Polynomial (ELP) is generated based on the syndromes. At least some of the ELP roots are identified, and the errors indicated by these roots are corrected. Each syndrome may be produced by applying to the bits vector operations in a vector space. Each syndrome is produced by applying vector operations using a different basis of the vector space. The ELP may be evaluated on a given field element by operating on ELP coefficients using serial multipliers, wherein each serial multiplier performs a sequence of multiplication cycles and produces an interim result in each cycle. Responsively to detecting at least one interim result indicating that the given element is not an ELP root, the multiplication cycles are terminated before completion of the sequence.

Claims (12)

1. A method for decoding an Error Correction Code (ECC), comprising:

using hardware-implemented logic, producing from a set of bits, which represent data that has been encoded with the ECC, multiple syndromes by applying to the bits vector operations in a vector space, wherein each syndrome is produced by applying the vector operations to the set of bits using a respective, different basis of the vector space;

generating, based on the multiple syndromes, an Error Locator Polynomial (ELP) whose roots are indicative of locations of respective errors in the set of bits; and

identifying at least some of the roots of the ELP and correcting the errors indicated by the identified roots.

2. The method according to claim 1 , wherein producing the syndromes comprises selecting each basis such that the vector operations used for producing the respective syndrome comprise a multiplication of a sparse matrix.

3. The method according to claim 1 , and comprising, after producing the syndromes, transforming the syndromes to a common basis of the vector space.

4. An Error Correction Code (ECC) decoder, comprising:

a syndrome calculation unit, which is coupled to produce from a set of bits, which represent data that has been encoded with the ECC, multiple syndromes by applying to the bits vector operations in a vector space, wherein each syndrome is produced by applying the vector operations to the set of bits using a respective, different basis of the vector space;

an Error Locator Polynomial (ELP) computation unit, which is configured to generate, based on the multiple syndromes, an ELP whose roots are indicative of locations of respective errors in the set of bits; and

a root search unit, which is coupled to identify at least some of the roots of the ELP so as to correct the errors indicated by the identified roots.

5. The decoder according to claim 4 , wherein the syndrome calculation unit is coupled to select each basis such that the vector operations used for producing the respective syndrome comprise a multiplication of a sparse matrix.

6. The decoder according to claim 4 , wherein the syndrome calculation unit is coupled to transform the syndromes to a common basis of the vector space after producing the syndromes.

Continuity (6)
Continuation 12419304 · Apr 7, 2009
Provisional Application 61043734 · Apr 10, 2008
Provisional Application 61043736 · Apr 10, 2008
Provisional Application 61061685 · Jun 16, 2008
Provisional Application 61105454 · Oct 15, 2008
Related Publication 20120317457A1 · Dec 13, 2012