DE69919199T2 - Vorwärtsfehlerkorrektur - Google Patents

Vorwärtsfehlerkorrektur Download PDF

Info

Publication number
DE69919199T2
DE69919199T2 DE69919199T DE69919199T DE69919199T2 DE 69919199 T2 DE69919199 T2 DE 69919199T2 DE 69919199 T DE69919199 T DE 69919199T DE 69919199 T DE69919199 T DE 69919199T DE 69919199 T2 DE69919199 T2 DE 69919199T2
Authority
DE
Germany
Prior art keywords
polynomial
message
control variable
berlekamp
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69919199T
Other languages
English (en)
Other versions
DE69919199D1 (de
Inventor
B. Kelly CAMERON
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Broadcom Corp
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Broadcom Corp filed Critical Broadcom Corp
Publication of DE69919199D1 publication Critical patent/DE69919199D1/de
Application granted granted Critical
Publication of DE69919199T2 publication Critical patent/DE69919199T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1525Determination and particular use of error location polynomials
    • H03M13/153Determination and particular use of error location polynomials using the Berlekamp-Massey algorithm
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1525Determination and particular use of error location polynomials
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Vorrichtung zum Korrigieren von in gespeicherten oder übertragenen Daten vorhandenen Fehlern und insbesondere eine Vorrichtung zum Auswerten eines Fehlerauswerter-Polynoms, eines Fehlerlokalisierer-Polynoms und eines Differentialpolynoms, die bei der Korrektur von Fehlern in den durch Verwendung eines algebraischen Codes, wie z.B. eines Read-Solomon-Codes, codierten Daten verwendet werden.
  • 2. Beschreibung der zugehörigen Technik
  • Während eines Prozesses des Übertragens, Speicherns oder Abrufens von Daten auftretendes Rauschen kann wiederum Fehler in den übertragenen, gespeicherten oder abgerufenen Daten verursachen. Entsprechend sind verschiedene Codierungstechniken, die die Fähigkeit haben, solche Fehler zu beheben, zum Codieren von zu übertragenden oder zu speichernden Daten entwickelt worden.
  • Bei solchen Codierungstechniken wird ein Satz Prüfbits an eine Gruppe von Nachrichten- oder Informationsbits angehängt, um ein Codewort zu bilden. Die durch einen Codierer bestimmten Prüfbits werden zum Erkennen und Korrigieren der Fehler verwendet. In dieser Hinsicht, behandelt der Codierer die die Nachrichtbits bildenden Bits im Wesentlichen als Koeffizienten eines binären Nachrichten-Polynoms und gewinnt die Prüfbits durch Multiplizieren des Nachrichten-Polynoms R(x) mit einem Codegenerator-Polynom G(x) oder Dividieren von R(x) durch G(x), um dadurch ein Codewort-Polynom C(x) bereitzustellen. Das Codegenerator-Polynom wird gewählt, um einem Codewort gewünschte Eigenschaften zu verleihen, worauf es so wirkt, dass das Codewort zu einer bestimmten Klasse von fehlerkorrigierenden Binärgruppencodes gehört (siehe z.B. S. Lin et al., "Error Control Coding: Fundamentals and Applications", Prentice-Hall, 1983).
  • Eine Klasse von fehlerkorrigierenden Codes sind die hinreichend bekannten BCH- (Bose-Chaudhuri-Hocquenghen-) Codes, zu denen der Reed-Solomon-("RS-") Code gehört. Die mathematische Grundlage des RS-Codes ist z.B. in der oben erwähnten Veröffentlichung von Lin at al. und auch in Berlekamp, "Algebraic Coding Theory", McGraw-Hill, 1968, auf das ferner in U.S. Pat. Nr. 4,162,480 von Berlekamp verwiesen wird, erklärt.
  • Blahut E.R.: "Theory and Practice of Error Control Codes", 1984, Addison-Wesley Publishing Company, London, XP002131806, beschreibt auf den Seiten 176 bis 193 allgemein die Verwendung des traditionellen Berlekamp-Massey-Algorithmus zum Decodieren von Bose-Chaudhuri-Hocquenghen-Codes.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung stellt ein Verfahren, eine Vorrichtung und ein auf einem computerlesbaren Medium gespeichertes Computer-Programmprodukt zum Decodieren einer algebraisch codierten Nachricht bereit. Das Verfahren umfasst die Schritte des Bestimmens eines ersten Diskrepanz-Anzeigers, wobei sich die Diskrepanz zwischen einem berechneten und einem vorhergesagten Wert befindet; Bestimmens eines Fehlerlokalisierer-Polynoms unter Verwendung des ersten Diskrepanz-Anzeigers und eines zweiten Diskrepanz-Anzeigers gemäß einem Algorithmus aus einer ausgewählten Klasse iterativer Berlekamp-Massey-Decodierungsalgorithmen, wobei eine nicht korrigierbare Nachricht erkannt wird und der iterative Berlekamp-Massey-Decodierungsalgorithmus ein inversionsloser iterativer Berlekamp-Massey-Decodierungsalgorithmus oder ein iterativer Berlekamp-Massey-Decodierungsalgorithmus mit einem nicht normierten Polynom-Verschiebungsterm ist; Auswertens einer Zustandssteuervariable und des ersten Diskrepanz-Anzeigers; selektiven Aktualisierens eines Hilfspolynoms und des zweiten, auf die Zustandssteuervariable ansprechenden Diskrepanz-Anzeigers und des ersten Diskrepanz-Anzeigers; Auswertens der Zustandssteuervariable und des ersten Diskrepanzanzeigers auf Vorhanden sein der nicht korrigierbaren Nachricht hin; selektiven Aktualisierens dieser auf die Zustandssteuervariable ansprechenden Zustandssteuervariable und des ersten Diskrepanz-Anzeigers; und falls Vorhandensein der nicht korrigierbaren Nachricht erkannt wird, Erzeugen einer wahrnehmbaren Anzeige der erkannten nicht korrigierbaren Nachricht.
  • Die Vorrichtung umfasst eine Mehrzahl von Speichergeräten, wobei ausgewählte Speichergeräte von den Speichergeräten Umlaufspeichergeräte sind, ausgewählte andere eine Statussteuervariable, einen Diskrepanz-Anzeiger und ein Nachricht-Polynom zu speichern vermögen; eine Mehrzahl arithmetischer Komponenten, die mit der Mehrzahl von Speicherstellen wirksam verbunden sind, wobei die arithmetischen Komponenten in einem Galois-Feld wirksam sind; und einen inversionslosen Detektor zum Erkennen einer nicht korrigierbaren Nachricht, der mit den Speichergeräten und den arithmetischen Komponenten wirksam verbunden ist, wobei der Detektor mit ausgewählten arithmetischen Komponenten und ausgewählten Umlaufspeichergeräten kommuniziert, um das Nachricht-Polynom auszuwerten und dadurch die Zustandssteuervariable und den Diskrepanz-Anzeiger zu bestimmen, wobei der Detektor die Zustandssteuervariable und den Diskrepanz-Anzeiger auf Vorhandensein einer nicht korrigierbaren Nachricht hin auswertet.
  • Das Computerprogramm umfasst einen computerlesbaren Programmcode, der einen Diskrepanz-Anzeiger bestimmt; computerlesbaren Programmcode, der ein Fehlerlokalisierer-Polynom gemäß einem inversionslosen Berlekamp-Massey-Decodierungsalgorithmus bestimmt; computerlesbaren Programmcode, der eine vorgebebene Zustandssteuervariable und den Diskrepanz-Anzeiger auswertet; computerlesbaren Programmcode, der ein auf die vorgegebenen Zustandssteuervariable und den Diskrepanz-Anzeiger ansprechendes Hilfspolynom selektiv aktualisiert; computerlesbaren Programmcode, der die vorgegebene Zustandssteuervariable und den Diskrepanz-Anzeiger auf das Vorhandensein einer nicht korrigierbaren Nachricht nach einer Itereration auswertet; computerlesbaren Programmcode, der die vorgegebene auf einen Wert der vorgegebenen Zustandssteuervariable und den Diskrepanzanzeiger ansprechende Zustandssteuervariable aktualisiert; und computerlesbaren Programmcode, der das Vorhandensein der nicht korrigierbaren Nachricht ohne Wiederberechnen eines Syndrom-Polynoms verifiziert, falls das Vorhandensein der nicht korrigierbaren Nachricht erkannt wird.
  • Bevorzugte Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen angegeben.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist eine Veranschaulichung eines algebraischen Decodierers gemäß der vorliegenden Erfindung;
  • 2 ist ein Flussdiagramm eines modifizierten Berlekamp-Massey-Algorithmus gemäß der vorliegenden Erfindung;
  • 3 ist ein Blockdiagramm zur Veranschaulichung einer beispielhaften Ausführungsform der vorliegenden Erfindung;
  • 4 ist ein Blockdiagramm zur Veranschaulichung eines zirkularen Syndromgenerators gemäß der vorliegenden Erfindung; und
  • 5 ist ein Logik-Blockdiagramm eines Logikregisters, das in dem in 4 veranschaulichten zirkularen Syndromgenerator verwendet werden kann.
  • Beispielhafte Ausführungsformen der Erfindung
  • Die vorliegende Erfindung stellt eine Vorrichtung und ein Verfahren zum Decodieren algebraischer Codes einschließlich BCH-Codes und insbesondere Reed-Solomon-Codes bereit, so dass nicht korrigierbare Nachrichten oder Anteile empfangener codierter Daten erkannt werden. Ferner sieht die vorliegende Erfindung eine flächeneffizientere Geräteimplementierung des oben erwähnten Verfahrens vor. Zu Veranschaulichungszwecken wird die vorliegende Erfindung in Bezug auf eine Untermenge der BCH-Codes, nämlich der Reed-Solomon- (RS-) Codes beschrieben.
  • Die Reed-Solomon- (RS-) Codierungstechnik hängt an jeden Block von k Benutzerdatensymbolen 2t Redundanzsymbole an, um einen codierten Nachrichtenblock zu schaffen (wobei t die ausgelegte Symbolfehlerkorrekturkapazität des Codes darstellt). Diese 2t Symbole, oder Elemente, werden aus dem Galois-Feld als die Wurzeln des Generator-Polynoms gewählt. Deshalb gibt es k+2t Symbole in einem RS-codierten Nachrichtenblock. Der gesamte Nachrichtenblock wird als Polynom angesehen und bei irgendeinem Galois-Feld-Element als Polynom ausgewertet. Das Galois-Feld-Element, bei dem das Polynom ausgewertet wird, wird sich an den/einer Wurzel/n des Generator-Polynoms befindet, die zur Schaffung des RS-Codes verwendet werden. Der RS-Code betrachtet die n-Bit-Symbole als Elemente eines Galois-Felds (GF(2n)). Ein Galois-Feld ist ein endliches Feld, dessen Elemente als Polynome in a dargestellt werden können, wobei a eine Wurzel eines irreduziblen Polynoms des Grads n ist. Das RS-Codewort besteht aus einem Block von n-Bit-Symbolen. Typischerweise werden n = 8 und die 8-Bit-Symbole als Bytes bezeichnet. Zur Konstruktion des Galois-Felds GF(2n) ist ein definierendes Polynom F(x) vom Grad n erforderlich. Außerdem wird ein primitives Element β so gewählt, dass jedes Nichtnull-Element von GF(2n) eine Potenz von β ist. Dieses Element β ist nicht unbedingt eine Wurzel von F(x).
  • ARS-Codewort C wird als ein Polynom C(x) angesehen, und die Redundanzsymbole werden so gewählt, dass die Wurzeln von C(x) die Wurzeln eines Generator-Polynoms G(x), dessen Wurzeln 2t aufeinanderfolgende Potenzen von β sind, enthalten. Die k Benutzerdatensymbole werden als die Koeffizienten hoher Ordnung eines Polynoms vom Grad k+2t-1 angesehen, und die Redundanzsymbole sind die Koeffizienten des Rests, wenn dieses Polynom durch G(x) dividiert wird.
  • Der Vorgang des Korrumpierens des ursprünglichen Codeblocks C(x) mit Fehlern kann als Hinzufügen eines Fehlerpolynoms E(x) zu C(x) angesehen werden. Das resultierende korrumpierte Polynom ist als das empfangene Polynom R(x) bekannt, wobei R(x)=C(x)+E(x). Die v Nichtnull-Glieder des Fehlerpolynoms enthalten die erforderlichen Informationen zur vollständigen Rekonstruktion der ursprünglichen Daten C(x), weil jedes Glied einer Symbolfehlerposition und -größe entspricht.
  • RS-Decodierung ist typischerweise eine dreiteilig Analyse: (1) Syndromberechnung; (2) Lösung der Fehlergröße und Lokalisierer-Polynome; und (3) Fehlerpositions- und -größenschätzung durch jeweilige Implementierungen von beispielsweise eines Chien-Such- und des Forney-Algorithmus. Die Syndrome enthalten Fehlerinformationen getrennt von den eigentlichen Informationen, die zur Analyse auf Fehler hin vorgesehen sind. Das Fehlerlokalisierer-Polynom liefert Informationen bezüglich der Position eines Fehlers im empfangenen Signal, und die Größe des Fehlers kann durch Verwendung der Größe und der Lokalisierer-Polynome bestimmt werden.
  • Der Vorstoß des RS-Fehlerkorrekturverfahrens besteht in der Rekonstruktion des Fehlerpolynoms E(x). Drei Polynome werden zum Korrigieren eines empfangenen Polynoms R(x) verwendet: S(x), ein Syndrom-Polynom; A(x), ein Fehlerlokalisierer- (oder Fehlerpositions-) Polynom; und M(x), ein Fehlergrößen-Polynom. Die Syndrome werden durch Auswerten des Polynoms R(x) an den Wurzeln von G(x) berechnet. Diese Werte werden als Syndrome bezeichnet, und das Syndrom-Polynom S(x) hat diese Werte als Koeffizienten. Das Syndrom-Polynom S(x) wird zur Bestimmung des Vorhandenseins von Fehlern verwendet. Das Fehlerlokalisierer-Polynom A(x) und das Fehlergrößen-Polynom M(x) werden durch einen Schlüsselgleichungslöser aus S(x) berechnet. Die Wurzeln des Fehlerlokalisierer-Polynoms A(x) geben Positionen in den Daten an, die fehlerhaft sind, und das Fehlerlokalisierer-Polynom A(x) und das Fehlergrößen-Polynom M(x) werden zum Bestimmen der wahren Werte der fehlerhaften Daten verwendet.
  • Zwei häufig verwendete RS-Fehlerkorrektur-Algorithmen sind der Berlekamp-Massey- und der Euclid-Algorithmus. Die vorliegende Erfindung gestaltet den Berlekamp-Massey-Algorithmus so um, dass der typischerweise mit dem traditionellen Berlekamp-Massey(tBM-) Algorithmus verbundene Inversionsprozess eliminiert wird. Dies ist wichtig, weil der Inversionsprozess das Bestimmen des Reziproken bestimmter Galois-Feld-Elemente mittels Division beinhaltet. Division ist eine zeitraubende arithmetische Operation, deren Implementierung benötigte Komponentenfläche in einer Geräteausführung besetzten kann. Deshalb kann die vorliegende Erfindung besonders vorteilhaft sein, wo eine flächeneffiziente Anordnung eines Decodierergeräts wünschenswert ist.
  • Für die weitere Darlegung des Decodierungsprozesses über Galois-Felder, einschließlich tBM, Chien-Suchen und Forney-Algorithmus, siehe Theory and Practice of Error Control Codes von Richard E. Blahut (Addison-Wesley, 1983).
  • 1 veranschaulicht eine Implementierung dieses Algorithmus, bei der ein empfangenes Rohsignal 1 an die RS-Decodierereinheit 2 gerichtet wird, die zum Bestimmen der Fehlerpositionen und Fehlerwerte verwendet wird. Signal 1 wird an den Syndromgenerator 3 und die Verzögerungseinheit 4 geliefert. Im Syndromgenerator 3 werden die mehreren mit der gewählten Codierung verbundenen Syndrome 6 abgeleitet und an den Polynomlöser 5 übertragen. Der Syndromgenerator 3 berechnet ein Syndrom für jede der 2t Wurzeln von G(x). Polynomlöser 6 verwendet die Syndrome zum Bestimmen der Koeffizienten des Fehlerpositions-Polynoms Λ(x) 7 und der Koeffizienten des Fehlergrößen-Polynoms M(x) 8, die wiederum an den Fehlerschätzer 9 übertragen werden. Schätzer 9 berechnet ein Fehlersignal 10, das in Summierer 11 mit dem empfangenen verzögerten Roheingang 12 kombiniert wird, um korrigierte Daten 13 bereitzustellen. Schätzer 9 kann eine Chien-Sucheinheit 14 enthalten, die das Fehlerpositions-Polynom Λ(x) zum Suchen der Wurzeln des Fehlerlokalisierer-Polynoms, r1, ..., rv, verwendet. Die Chien-Sucheinheit 14 nutzt typischerweise eine Wurzelfindungstechnik, bei der das Fehlerlokalisierer-Polynom bei allen Elementen im Feld GF(2n) ausgewertet wird. Die Wurzeln des Fehlerlokalisierer-Polynoms r1, ..., rv bestimmen die Fehlerpositionen. Die Fehlerwerte werden dann unter Verwendung der Forney-Algorithmuseinheit 15 bestimmt. Dann wird der verzögerte empfangene Roheingang 12 unter Verwendung des Ausgangs der Forney-Algorithmuseinheit 15 und des von der Verzögerungseinheit 4 übertragenen empfangenen Roheingangs korrigiert.
  • Traditionell kann der gewöhnlich im Polynomlöser 6 verwirklichte Berlekamp-Massey-(tBM-) Algorithmus beschrieben werden durch:
    Figure 00070001
    r=1,..., 2t, wobei δr = 1, falls Δr ≠ 0 und 2Lr-1 ≤ r-1, und andernfalls δr = 0. Dann ist Λ(2t)(x) das kleinstgradige Polynom mit den Eigenschaften, dass Λ0 (2t)=1 und
    Figure 00070002
    wobei die Anfangsbedingungen Λ(0)(x) = 1, B(0)(x) = 1 und L0 = 0 sind.
  • Es ist offensichtlich, dass die in Gleichung 3 angegebene Inversion eine Divisionsoperation erforderlich macht.
  • Der tBM-Algorithmus vermag Nachrichten, die ordnungsgemäß decodiert werden können, ordnungsgemäß zu decodieren, in einem nicht korrigierbaren Fall jedoch, der als nicht korrigierbar erkennbar ist, kann der nicht korrigierbare Fehler unerkannt bleiben und die Nachricht decodiert werden, als ob sie einen korrigierbaren Fehler enthielte. Oft kann diese nicht ordnungsgemäß decodierte Nachricht zusätzliche Schwierigkeiten schaffen, weil sich der Fehler durch andere Prozesse in dem tBM verwendenden System fortpflanzen kann.
  • Gemäß der vorliegenden Erfindung kann der modifizierte Berlekamp-Massey (mBM) durch folgende Gleichungen beschrieben werden:
    Figure 00080001
    wobei: Λ ≠ 0
    B0=1
    Δ–1=1
  • Die Verwendung von mBM für RS-Decodierung kann vorteilhaft sein, weil: (1) die Inversion eliminiert wird; (2) die mit dem mBM-Algorithmus verbundene Steuerstruktur gegenüber der des tBM vereinfacht wird; und (3) die Beendigungsbedingungen von tBM so modifiziert werden, dass – falls der Code korrigierbar ist – andernfalls nicht durch tBM erkannte Fehler erkannt und als solche gekennzeichnet werden.
  • Eine Implementierung des mBM-Algorithmus lautet im Pascal-Code dargestellt wie folgt:
    Figure 00090001
  • Wenn ein vorwärts gerichteter Fehlerkorrektor einen nicht korrigierbaren Fehler ordnungsgemäß erkennt, wird das Vorhandensein eines solchen Fehlers in der Regel oft in einem Prozess verifiziert, durch den die Syndrompolynome neu berechnet werden. Dieser Ansatz kann einen beträchtlichen Nachteil bezüglich der Prozesseffizienz mit sich bringen. Stattdessen verifiziert eine Ausführungsform der vorliegenden Erfindung, die eine verbesserte Steuerstruktur aufweist, das Vorhandensein eines nicht korrigierbaren Fehlers durch Kontrollieren des Zustands des Polynomlösers 6 am Ende des Polynomlösungsprozesses.
  • 2 ist ein Beispiel für eine Ausführungsform des Prozesses 20, der die obenerwähnte verbesserte Steuerstruktur im Kontext des in den Gleichungen 4, 5 und 6(a)–(b) dargestellten mBM-Algorithmus implementiert. Obwohl die hierin beschriebenen Implementierungen für RS-Standardcodes mit einer Blocklänge von beispielsweise 255 Elementen ausgelegt sind, können solche Implementierungen auch im Kontext von erweiterten Reed-Solomon-Codes verwendet werden, die in dem hierin aufgeführten Beispiel 256 Elemente im Nachrichtenblock, d.h. 256 Elemente im zugeordneten Galois-Feld haben würden. Es ist wünschenswert, dass bei Schritt 21 die Steuervariablen DEG, PWR und STATE sowie Fehlerlokalisierervariablen initialisiert werden. Es ist ferner wünschenswert, durch Schritte 23, 24, 25 und 26 2t-mal zu iterieren, wobei 2t die Anzahl auszuwertender Syndrom-Polynome und t die Fehlerkorrekturfähigkeit des vorgewählten Codes ist. Daher wird bei Schritt 30 ein Zähler benutzt, der die Anzahl ausgeführter Interationen verfolgt. Bei der Implementierung der Steuervariablen sind keine Additionen oder Subtraktionen erforderlich, und es werden nur Aufwärts- oder Abwärtszählfunktionen verwendet. Schritt 23 implementiert im Wesentlichen Gleichung 4, bei der der einer bestimmten Interation zugeordnete Diskrepanzwert DEL bestimmt wird. Ähnlich implementiert Schritt 24 Gleichung 5, bei der das Fehlerlokalisierer-Polynom aktualisiert wird. Bei Schritt 25 wird das Hilfspolynom Bi gemäß Gleichung 6a in Unterschritt 27 oder Gleichung 6b in Unterschritt 28 auf der Basis der durch die Logik 26 bestimmten Bedingungen aktualisiert. Für Logik 29 ist wünschenswert, für STATE = ALPHA und DEL < > null den Datenfluss über eine Implementierung der Gleichung 6a in Unterschritt 27 zu leiten; andernfalls wird Unterschritt 28 verwendet, wobei Gleichung 6b implementiert wird. Im Gegensatz zum tBM-Algorithmus, bei dem der Polynom-Verschiebungsterm (1 – δr) x in Gleichung 3 normiert worden ist, macht der mBM-Algorithmus keine Normierung erforderlich, wobei eine Inversions/Divisionsoperation vermieden wird. Nachdem das Hilfspolynom bei Schritt 25 aktualisiert ist, wird der Steuerungszustand bei Schritt 26 aktualisiert.
  • Im Allgemeinen wird der Grad des Fehlerlokalisierer-Polynoms durch DEG verfolgt, die ein Aufwärtszähler ist und den wahren Grad des Fehlerlokalisierer-Polynoms und folglich die Anzahl der Fehler im Nachrichtenblock beschreibt. Es ist auch wünschenswert, ein Fehlerlokalisierer-Polynom zu konstruieren, dessen Wurzeln den Positionen eines Fehlers gleich sind. Prozess 20 versucht im Wesentlichen, ein lineares Feedback-Schieberegister (lienar feedback shift register = LFSR) aufzubauen, das die Werte des Syndrom-Polynoms vorhersagt. Ein solches LFSR kann zum Finden der Fehlerpositionen brauchbar sein. Dann gibt der Diskrepanzwert eine Diskrepanz zwischen dem vorhergesagten Wert des Syndrom-Polynoms und dem Wert des aktuellen Syndrom-Polynoms preis und fordert zu weiterer Verarbeitung auf, um die Position der Fehler zu entdecken. PWR ist ein Zähler, der verfolgt, wie oft die Steuerung vorher in STATE = ALPHA blieb. Es ist wünschenswert, STATE so oft im Steuerzustand BETA bleiben zu lassen, wie STATE vorher in Steuerzustand ALPHA blieb.
  • Zu den Zwecken der vorliegenden Erfindung kann STATE verwendet werden, um (1) zu bestimmen, ob die Fehlerkorrekturanalyse dem Fluss von Gleichung 6a oder 6b folgen sollte; (2) die Bestimmung zu unterstützen, ob der Grad des Fehlerlokalisierer-Polynoms erhöht werden sollte; und (3) ob ein nicht korrigierbarer Fehler vorhanden ist. Am Ende von 2t Iterationen wird der Wert von STATE noch einmal bei Schritt 35 bestimmt. Ist das Ergebnis STATE = ALPHA, ist der Code potentiell gültig, wenn andererseits STATE = BETA, wird der Fehler als nicht korrigierbar gekennzeichnet. Potentiell gültige Codes, bei denen bei Schritt 35 STATE = ALPHA ist, können auch einer zusätzlichen Validierung unterzogen werden, bevor sie anschließend decodiert werden. Tatsächlich wird in einer nachfolgenden Operation die Anzahl der Nullen des Fehlerlokalisierer-Polynoms mit der Wert von DEG verglichen. Eine Diskrepanz zwischen diesen zwei Werten weist auch auf einen nicht korrigierbaren Fehler hin.
  • 3 ist eine beispielhafte Ausführungsform eines Polynomlösers, der den mBM-Algorithmus verwendet. Löser 50 kann ein Syndromgenerator-Register 51, Umlaufsyndromregister 52, erstes Verzögerungsregister 53, Lokalisierer-Polynom- (Λi) Register 54, Hilfspolynom- (Bi) Register 55, zweites Verzögerungsregister 56, einen ersten Multiplizierer 57, zweiten Multiplizierer 58, Addierer 59, ein Δ-Register 60, und Δ_-Register 61 aufweisen. Bei einer anderen Ausführungsform kann der Syndromgenerator vom Löser 50 getrennt sein. Es ist wünschenswert, dass die Multiplizierer 57, 58 und der Addierer 59 auf Calais-Feld-Elemente wirken. Es ist auch wünschenswert, dass das Register 51 logisch als zirkulares Register oder eine Schleife angeordnet ist, so dass bestimmte Registerwerte in einer vordefinierten Sequenz verwendet werden können. Ferner ist es wünschenswert, dass die Register 52, 54 und 55 logisch als Kellerstapel oder FIFOs angeordnet sind, und auch dass die darin enthaltenen Werte synchron rotieren. Das Fehlerlokalisierer-Polynom Λi ist im Register 54 so angeordnet, dass der niederwertigste Koeffizient oben ist und der Stapel "nach unten wächst", während nachfolgende Werte bestimmt werden. Es ist wünschenswert, dass das Umlaufsyndromregister 52 so wirkt, dass der niederwertigste Koeffizient nach dem unteren Ende des Registers und das höchstwertigste nach dem oberen Ende ausgerichtet ist.
  • Bei dem Beispiel von 3 ist die Fehlerkorrekturfähigkeit t so gewählt, dass sie 5 Elemente beträgt, und demgemäss ist das Syndromregister 51 so ausgelegt, das es 2t, oder 10, einzelne Elemente nutzt. Außerdem ist das Register 52 zur Verwendung von t Elementen gewählt, Register 54 ist zur Nutzung von t+1 Elementen gewählt, und Register 55 soll mit t Elementen wirken.
  • Anfänglich wird das Umlaufsyndromregister 52 mit Nullen vorgeladen. Wie im oben erwähnten Algorithmus ausgedrückt, umfasst ein anfänglicher Schritt Berechnen des Diskrepanzwerts DEL, der im Register 60 gespeichert werden kann. Ein vorheriger Wert für DEL, DEL0, wird im Register 61 bereitgestellt. Zur Berechnung des Anfangswerts für DEL wird ein erster Syndromwert S0 in das Register 52 geschoben, welcher Wert zusammen mit dem Anfangswert von DEL, nämlich DEL0, und dem t-ten Wert im Lokalisierer-Polynomregister 54 im ersten Multiplizierer 57 empfangen wird. Nach der angegebenen Multiplikation und Erstellung eines DEL-Werts werden die Werte in den Registern 52, 54 und 55 um ein Element nach unten geschoben. Zuerst sind die Werte im Register 52 null, mit nachfolgender Taktung treten jedoch aufeinander folgende Werte von Si in das Register 52 ein und werden dort für Taktzyklen, die i = 0 bis 2t-1 entsprechen, hindurchzirkuliert. Während S0 aus dem Register 52 in den ersten Multiplizierer 57 austritt, werden auch entsprechende Werte von Λ0 an den ersten Multiplizierer 57 übertragen, so dass der Wert S0Λ0 bestimmt wird.
  • Gleichzeitig mit dieser Berechnung wird der Wert B0 aus dem Register 55 mit dem dann vorhandenen Wert für DEL im zweiten Multiplizierer 58 multipliziert und das Ergebnis wird im Addierer 59 mit S0A0 summiert, um den nächsten Wert für DEL zu erzeugen. Dieser Wert von DEL wird zur Erzeugung des nächsten Werts für das Fehlerlokalisierer-Polynoms, nämlich Λ1, verwendet. Nach dieser Berechnung läuft der Wert So so um, dass er das erste Verzögerungsregister 53 umgeht und während des nächsten Taktzyklus wieder oben auf dem Stapel in das Umlaufregister 52 eintritt. Während dieses nächsten Taktzyklus wird der Syndromwert S1 ausgerichtet und mit Λ0 multipliziert und So wird ausgerichtet und mit Λ1 multipliziert. Dieser Vorgang wird wiederholt, so dass jeder Syndromwert in der Auswertung des Lokalisiererpolynoms ordnungsgemäß durchiteriert.
  • Mit den oben aufgeführten Informationen vermag ein Fachmann die Weise zu verstehen, auf die die Werte für das Fehlerlokalisierer-Polynom Λi und das Hilfspolynom Bi bestimmt werden. Falls gewünscht ist, die Werte von Bi durch das Register 55 zu rotieren, wird ein zweites Verzögerungsregister 56 umgangen. Falls andererseits die Verwendung eines vorher berechneten Werts von Bi wünschenswert ist, wie im oben erwähnten Algorithmus angegeben, wird der Wert von Bi in das zweite Verzögerungsregister 56 geleitet.
  • Bei 3 fortfahrend wird die Berechnung des Größenpolynoms beschrieben. Bei Beendigung von 2t Iterationen, wie oben beschrieben, enthält das Register 52 Werte S4-S8. Im Wesentlichen kann die Bestimmung des Größenpolynoms als M(x) = Λ(x) S(x) mod x2t modelliert werden, wobei die Multiplikation nach dem 2t-Term abgeschnitten wird. Tatsächlich müssen unter der Annahme, dass kein nicht korrigierbarer Fehler vorgefunden wurde, nur t Terme bestimmt werden. Während der letzten Iterationen der Berechnung des Fehlerlokalisierer-Polynoms wird das Register 52 mit Nullen geladen, so dass bei Beendigung von 2t Iterationen alle Speicherstellen im Register 52 einen Nullwert enthalten. Nach 2t Iterationen werden die Werte im Register 51 an ihre ursprüngliche Position zurückgebracht, Register 52 enthält alle Nullwerte und Register 54 enthält das Fehlerlokalisierer-Polynom, Λi. Auf eine der Berechnung der Lokalisiererpolynom-Koeffizienten ähnliche Weise werden die Fehlergrößenkoeffizienten iterativ berechnet. Nach t Iterationen ist S0 am logischen unteren Ende des Registers 52 und Λ0 am logischen unteren Ende des Registers 54. Bei Beendigung von t+1 Iterationen ist das Produkt des Multiplizierers 57 S0Λ0, der erste Term des Fehlergrößenpolynoms. Der Ausgang des Addierers 59 wird zum logischen oberen Ende des Registers 55 geleitet, das jetzt zum Aufbau des Größenpolynoms verwendet wird. Nach Iteration t+2 wird der Syndromwert So nach dem Lokalisiererwert Λ1 ausgerichtet, was das Produkt S0Λ1 ergibt; der Syndromwert S1 wird nach Λ0 ausgerichtet, was das Produkt S1Λ0 ergibt; wobei dessen Summierung S0Λ1 + S1Λ0 ergibt, was der zweite Term des Fehlergrößenpolynoms ist. Dieser Prozess geht weiter, bis alle Werte von M(x) so bestimmt sind. Bei Iteration 2t sind alle Koeffizienten für das Fehlergrößenpolynom berechnet worden. In diesem Augenblick kann der Datenfluss des Fehlerlokalisierer-Polynoms im Register 54 und des Fehlergrößenpolynoms im Register 55 aus dem Löser 50 gelenkt werden.
  • 4 veranschaulicht eine Ausführungsform eines zirkularen Syndromgenerators 70, der in 3 als Register 51 – zur Unterbringung einer Fehlerkorrekturfähigkeit von t=8 modifiziert – verwendet werden kann. 5 ist eine Ausführungsform 72 eines der einzelnen Register 71 im zirkularen Syndromgenerator 70 in 4. Obwohl ein zirkularer Syndromgenerator gezeigt ist, ist er keinesfalls die einzige Syndromgeneratorart, die als Register 51 verwendet werden kann.

Claims (11)

  1. Verfahren zum Decodieren einer algebraisch codierten Nachricht, gekennzeichnet durch: a. Bestimmen (23) eines ersten Diskrepanz-Anzeigers (DEL); b. Bestimmen (24) eines Fehlerlokalisierer-Polynoms (Λ(x)) unter Verwendung des ersten Diskrepanz-Anzeigers (DEL) und eines zweiten Diskrepanz-Anzeigers gemäß einem Algorithmus aus einer ausgewählten Klasse iterativer Berlekamp-Massey-Decodierungsalgorithmen, wobei eine nicht korrigierbare Nachricht erkannt wird und der iterative Berlekamp-Massey-Decodierungsalgorithmus entweder ein inversionsloser iterativer Berlekamp-Massey-Decodierungsalgorithmus oder ein iterativer Berlekamp-Massey-Decodierungsalgorithmus mit einem nicht normierten Polynom-Verschiebungsterm ist; c. Auswerten einer Zustandssteuervariable (STATE) und des ersten Diskrepanz-Anzeigers (DEL); d. selektives Aktualisieren (25) eines Hilfspolynoms und des zweiten, auf die Zustandssteuervariable (STATE) ansprechenden Diskrepanz-Anzeigers und des ersten Diskrepanz-Anzeigers (DEL); e. Auswerten der Zustandssteuervariable (STATE) und des ersten Diskrepanz-Anzeigers (DEL) auf Vorhandensein der nicht korrigierbaren Nachricht hin; f. selektives Aktualisieren (26) der auf die Zustandssteuervariable (STATE) ansprechenden Zustandssteuervariable (STATE) und des ersten Diskrepanz-Anzeigers (DEL) und; g. falls Vorhandensein der nicht korrigierbaren Nachricht erkannt wird, Erzeugen einer wahrnehmbaren Anzeige (35) der erkannten nicht korrigierbaren Nachricht.
  2. Verfahren nach Anspruch 1, bei dem der iterative Algorithmus ferner Auswerten des Fehlerlokalisierer-Polynoms auf das Vorhandensein einer nicht korrigierbaren Nachricht hin nach einer Iteration umfasst.
  3. Verfahren nach Anspruch 2, bei dem ein Syndrom-Polynom nicht wieder berechnet wird, um die Erkennung der nicht korrigierbaren Nachricht zu verifizieren.
  4. Verfahren nach Anspruch 1, bei dem der Berlekamp-Massey-Algorithmus darin eine vorgegebene Steuervariable nutzt, die einen Grad eines Fehlerlokalisierer-Polynoms oder das Vorhandeinsein einer nicht korrigierbaren Nachricht repräsentiert, und die vorgegebene Steuervariable mittels einer Aufwärtszählfunktion oder einer Abwärtszählfunktion implementiert wird.
  5. Vorrichtung zum Decodieren einer algebraisch codierten Nachricht, die Folgendes umfasst: erste Einrichtung zum Bestimmen (23) eines ersten Diskrepanz-Anzeigers (DEL); eine zweite Einrichtung zum Erkennen einer nicht korrigierbaren Nachricht durch Bestimmen (24) eines Fehlerlokalisierer-Polynoms (Λ(x)) unter Verwendung des ersten Diskrepanz-Anzeigers (DEL) und eines zweiten Diskrepanz-Anzeigers gemaß einem Algorithmus aus einer ausgewählten Klasse iterativer Berlekamp-Massey-Decodierungsalgorithmen, wobei der iterative Berlekamp-Massey-Decodierungsalgorithmus ein inversionsloser iterativer Berlekamp-Massey-Decodierungsalgorithmus oder ein iterativer Berlekamp-Massey-Decodierungsalgorithmus mit einem nicht normierten Polynom-Verschiebungsterm ist; dritte Einrichtung zum Auswerten einer Zustandssteuervariable (STATE) und des ersten Diskrepanz-Anzeigers (DEL); vierte Einrichtung zum selektiven Aktualisieren (25) eines Hilfspolynoms und des zweiten, auf die Zustandssteuervariable (STATE) ansprechenden Diskrepanz-Anzeigers und des ersten Diskrepanz-Anzeigers (DEL); fünfte Einrichtung zum Auswerten einer Zustandssteuervariable (STATE) und des ersten Diskrepanz-Anzeigers (DEL) auf Vorhandensein der nicht korrigierbaren Nachricht hin; sechste Einrichtung zum selektiven Aktualisieren (26) der auf die Zustandssteuervariable (STATE) ansprechenden Zustandssteuervariable und des ersten Diskrepanz-Anzeigers (DEL) und; siebte Einrichtung zum Erzeugen einer wahrnehmbaren Anzeige (35) der erkannten nicht korrigierbaren Nachricht, falls Vorhandensein der nicht korrigierbaren Nachricht erkannt wird.
  6. Vorrichtung nach Anspruch 5, die ferner umfasst: eine Mehrzahl von Speichergeräten (52, 54, 55, 60, 61), wobei ausgewählte Speichergeräte von den Speichergeräten (52) Umlaufspeichergeräte sind, ausgewählte andere (54, 55, 60, 61) die Statussteuervariable, den Diskrepanz-Anzeiger und ein Nachricht-Polynom zu speichern vermögen; eine Mehrzahl arithmetischer Komponenten (57, 58, 59), die mit der Mehrzahl von Speicherstellen wirksam verbunden sind, wobei die arithmetischen Komponenten in einem Galois-Feld wirksam sind; und bei der die weite Einrichtung zum Erkennen einer nicht korrigierbaren Nachricht inversionslos ist und mit den Speichergeräten (52, 54, 55, 60, 61) und den arithmetischen Komponenten (57, 58, 59) wirksam verbunden ist, wobei der Detektor mit ausgewählten arithmetischen Komponenten und ausgewählten Umlaufspeichergeräten kommuniziert.
  7. Vorrichtung nach Anspruch 6, bei der eines der Umlaufspeichergeräte (52) ein Syndrom-Polynom-Umlaufspeichergerät, ein Fehlerpositions-Polynom-Umlaufspeichergerät oder ein Hilfskoeffizientenspeichergerät ist.
  8. Vorrichtung nach Anspruch 6, die ferner einen zirkularen Umlaufsyndromgenerator (51) umfasst, der mit ausgewählten Umlaufspeichergeräten der Umlaufspeichergeräte (52) wirksam verbunden ist.
  9. Auf einem computerlesbaren Medium aufgezeichnetes Computer-Programmprodukt zum Ausführen des Verfahrens nach Anspruch 1, wenn es in ein Computersystem geladen wird.
  10. Computer-Programmprodukt nach Anspruch 9, bei dem ein computerlesbarer Programmcode, der den inversionslosen Berlekamp-Massey-Decodierungsalgorithmus aufweist, einen iterativen inversionslosen Berlekamp-Massey-Decodierungsalgorithmus oder einen inversionslosen Berlekamp-Massey-Decodierungsalgorithmus mit einem nicht normierten Polynom-Verschiebungsterm enthält.
  11. Computer-Programmprodukt nach Anspruch 10, bei dem der computerlesbare Programmcode ferner einen eine vorgegebene Steuervariable repräsentierenden Zähler aufweist, wobei die Steuervariable einen Grad eines Fehlerlokalisierer-Polynoms oder das Vorhandensein einer nicht korrigierbaren Nachricht repräsentiert.
DE69919199T 1998-11-09 1999-11-09 Vorwärtsfehlerkorrektur Expired - Lifetime DE69919199T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10787998P 1998-11-09 1998-11-09
US107879P 1998-11-09
PCT/US1999/026554 WO2000028668A1 (en) 1998-11-09 1999-11-09 Forward error corrector

Publications (2)

Publication Number Publication Date
DE69919199D1 DE69919199D1 (de) 2004-09-09
DE69919199T2 true DE69919199T2 (de) 2005-09-15

Family

ID=22318952

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69919199T Expired - Lifetime DE69919199T2 (de) 1998-11-09 1999-11-09 Vorwärtsfehlerkorrektur

Country Status (6)

Country Link
US (4) US6317858B1 (de)
EP (1) EP1131893B1 (de)
AT (1) ATE272914T1 (de)
AU (1) AU1615100A (de)
DE (1) DE69919199T2 (de)
WO (1) WO2000028668A1 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449746B1 (en) * 1998-08-17 2002-09-10 T. K. Truong Decoding method for correcting both erasures and errors of reed-solomon codes
ATE272914T1 (de) 1998-11-09 2004-08-15 Broadcom Corp Vorwärtsfehlerkorrektur
KR100493014B1 (ko) * 1999-03-24 2005-06-07 삼성전자주식회사 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서
US6560747B1 (en) * 1999-11-10 2003-05-06 Maxtor Corporation Error counting mechanism
US6934387B1 (en) 1999-12-17 2005-08-23 Marvell International Ltd. Method and apparatus for digital near-end echo/near-end crosstalk cancellation with adaptive correlation
US6816505B1 (en) 2000-02-09 2004-11-09 Marvell International Ltd. Chip-to-chip interface for 1000 BASE T gigabit physical layer device
US6631172B1 (en) * 2000-05-01 2003-10-07 Lucent Technologies Inc. Efficient list decoding of Reed-Solomon codes for message recovery in the presence of high noise levels
USRE41831E1 (en) 2000-05-23 2010-10-19 Marvell International Ltd. Class B driver
US7606547B1 (en) 2000-07-31 2009-10-20 Marvell International Ltd. Active resistance summer for a transformer hybrid
US7570657B1 (en) 2000-12-15 2009-08-04 Marvell International Ltd. Autonegotiation between 1000Base-X and 1000Base-T
JP3606569B2 (ja) * 2001-03-09 2005-01-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 復号回路、該復号回路を用いる復号装置、復号方法および半導体デバイス
US7124064B1 (en) 2001-03-30 2006-10-17 Cisco Technology, Inc. Automatic generation of hardware description language code for complex polynomial functions
US7003715B1 (en) * 2001-03-30 2006-02-21 Cisco Technology, Inc. Galois field multiply accumulator
US7447982B1 (en) 2001-03-30 2008-11-04 Cisco Technology, Inc. BCH forward error correction decoder
US6983414B1 (en) 2001-03-30 2006-01-03 Cisco Technology, Inc. Error insertion circuit for SONET forward error correction
US20030192007A1 (en) * 2001-04-19 2003-10-09 Miller David H. Code-programmable field-programmable architecturally-systolic Reed-Solomon BCH error correction decoder integrated circuit and error correction decoding method
TW566008B (en) * 2001-11-28 2003-12-11 Univ Nat Chiao Tung Apparatus for solving key equation polynomials in decoding error correction codes
FR2834146A1 (fr) * 2001-12-20 2003-06-27 St Microelectronics Sa Turbo-decodeur compact a haute efficacite
US7051267B1 (en) 2002-04-08 2006-05-23 Marvell International Ltd. Efficient high-speed Reed-Solomon decoder
US7010739B1 (en) * 2002-04-11 2006-03-07 Marvell International Ltd. Error evaluator for inversionless Berlekamp-Massey algorithm in Reed-Solomon decoders
US7032162B1 (en) * 2002-04-25 2006-04-18 Lattice Semiconductor Corporation Polynomial expander for generating coefficients of a polynomial from roots of the polynomial
JP2003346432A (ja) * 2002-05-22 2003-12-05 Internatl Business Mach Corp <Ibm> データ記憶装置およびデータ処理方法
WO2004093325A1 (en) * 2003-04-16 2004-10-28 Optix Networks, Ltd. An enhanced circuit for performing error correction and detection of bch codewords
US7693927B2 (en) 2003-08-25 2010-04-06 Jennic Limited Data processing system and method
US8645803B2 (en) 2010-05-10 2014-02-04 Ternarylogic Llc Methods and systems for rapid error correction by forward and reverse determination of coding states
US7644338B2 (en) 2005-09-13 2010-01-05 Samsung Electronics Co., Ltd. Method of detecting and correcting a prescribed set of error events based on error detecting code
US7613988B1 (en) * 2005-10-18 2009-11-03 Link—A—Media Devices Corporation Degree limited polynomial in Reed-Solomon decoding
US7716562B1 (en) * 2005-10-18 2010-05-11 Link—A—Media Devices Corporation Reduced processing in high-speed reed-solomon decoding
US9203438B2 (en) * 2006-07-12 2015-12-01 Ternarylogic Llc Error correction by symbol reconstruction in binary and multi-valued cyclic codes
TWI326988B (en) * 2007-03-28 2010-07-01 Ind Tech Res Inst Rs decoder and ibma method and parallel-to-serial conversion method thereof
US8201060B2 (en) * 2007-07-11 2012-06-12 Ternarylocig LLC Methods and systems for rapid error correction of Reed-Solomon codes
KR101493999B1 (ko) * 2007-09-06 2015-02-17 삼성전자주식회사 선형 부호 생성 장치 및 방법
JP5264913B2 (ja) * 2007-09-11 2013-08-14 ヴォイスエイジ・コーポレーション 話声およびオーディオの符号化における、代数符号帳の高速検索のための方法および装置
JP4672743B2 (ja) * 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US8627169B2 (en) * 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
US8156411B2 (en) * 2008-11-06 2012-04-10 Freescale Semiconductor, Inc. Error correction of an encoded message
US20100174970A1 (en) * 2009-01-05 2010-07-08 Horizon Semiconductors Ltd. Efficient implementation of a key-equation solver for bch codes
US8296634B2 (en) * 2010-02-27 2012-10-23 I Shou University Error correction decoder, error correction value generator, and error correction system
US8433985B2 (en) * 2010-03-29 2013-04-30 Intel Corporation Error correction mechanisms for flash memories
KR101678917B1 (ko) * 2010-09-16 2016-11-24 삼성전자주식회사 디코더, 이의 동작방법, 및 이를 포함하는 장치들
US8612834B2 (en) * 2011-03-08 2013-12-17 Intel Corporation Apparatus, system, and method for decoding linear block codes in a memory controller
WO2013053341A1 (de) * 2011-10-13 2013-04-18 Hyperstone Gmbh Hybride dekodierung von bch kodes für nichtflüchtige speicher

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170399A (en) 1989-08-30 1992-12-08 Idaho Research Foundation, Inc. Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack
US5099482A (en) 1989-08-30 1992-03-24 Idaho Research Foundation, Inc. Apparatus for detecting uncorrectable error patterns when using Euclid's algorithm to decode Reed-Solomon (BCH) codes
US5239995A (en) * 1989-09-22 1993-08-31 Respironics, Inc. Sleep apnea treatment apparatus
WO1995012850A1 (en) * 1993-11-04 1995-05-11 Cirrus Logic, Inc. Reed-solomon decoder
US5592404A (en) 1993-11-04 1997-01-07 Cirrus Logic, Inc. Versatile error correction system
US5649547A (en) 1994-03-24 1997-07-22 Biopsys Medical, Inc. Methods and devices for automated biopsy and collection of soft tissue
US5689452A (en) 1994-10-31 1997-11-18 University Of New Mexico Method and apparatus for performing arithmetic in large galois field GF(2n)
US5640286A (en) * 1995-05-08 1997-06-17 Western Digital Corporation Disk drive with error code embedded sector identification
US5727003A (en) 1995-07-03 1998-03-10 Cirrus Logic, Inc. Method and apparatus for flash burst error correction
FR2743912B1 (fr) 1996-01-24 1998-04-10 Matra Communication Circuit de resolution d'equation-cle et decodeur reed-solomon incorporant un tel circuit
US5971607A (en) 1996-05-10 1999-10-26 Daewoo Electronics Co., Ltd. Polynomial evaluator for use in a Reed-Solomon decoder
KR100192795B1 (ko) * 1996-05-14 1999-06-15 전주범 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치
KR100195739B1 (ko) 1996-07-01 1999-06-15 전주범 리드솔로몬 복호기의 에러 위치 다항식 평가 장치
US5844919A (en) * 1996-09-16 1998-12-01 Cirrus Logic, Inc. Sector and track level error correction system for disc storage systems
KR100213254B1 (ko) 1996-10-18 1999-08-02 윤종용 에러 정정 방법 및 장치
US5970075A (en) 1997-06-18 1999-10-19 Uniden San Diego Research And Development Center Inc. Method and apparatus for generating an error location polynomial table
US6209115B1 (en) * 1997-08-13 2001-03-27 T. K. Truong Reed-Solomon decoder and VLSI implementation thereof
US6119262A (en) * 1997-08-19 2000-09-12 Chuen-Shen Bernard Shung Method and apparatus for solving key equation polynomials in decoding error correction codes
US5974582A (en) 1997-10-14 1999-10-26 Lsi Logic Corporation High-speed chien search logic
US5978956A (en) 1997-12-03 1999-11-02 Quantum Corporation Five-error correction system
US5964826A (en) 1998-01-13 1999-10-12 National Science Council Division circuits based on power-sum circuit for finite field GF(2m)
US6092233A (en) * 1998-03-20 2000-07-18 Adaptec, Inc. Pipelined Berlekamp-Massey error locator polynomial generating apparatus and method
ATE272914T1 (de) * 1998-11-09 2004-08-15 Broadcom Corp Vorwärtsfehlerkorrektur

Also Published As

Publication number Publication date
US6684364B2 (en) 2004-01-27
US20040123225A1 (en) 2004-06-24
US20030145271A1 (en) 2003-07-31
US6317858B1 (en) 2001-11-13
WO2000028668A1 (en) 2000-05-18
US7080310B2 (en) 2006-07-18
DE69919199D1 (de) 2004-09-09
EP1131893A1 (de) 2001-09-12
ATE272914T1 (de) 2004-08-15
US6539516B2 (en) 2003-03-25
EP1131893B1 (de) 2004-08-04
US20020056067A1 (en) 2002-05-09
AU1615100A (en) 2000-05-29

Similar Documents

Publication Publication Date Title
DE69919199T2 (de) Vorwärtsfehlerkorrektur
DE69834542T2 (de) Hardwareoptimierter reed-solomon-decoder zur decodierung grosser datenblöcke
DE19747774B4 (de) Reed-Solomon-Decoder zur Verwendung beim verbesserten Fernsehen (ATV)
DE102009036946A1 (de) Programmierbare Fehlerkorrekturfähigkeit für BCH-Codes
DE2162833C3 (de) Einrichtung zum Codieren und Decodieren eines aus k Bytes mit je b Bits bestehenden Datenblocks und Korrektur zweier fehlerhafter Bits
DE4241903C2 (de) Euklidische wechselseitige Divisionsschaltung
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE4140018A1 (de) Verfahren und schaltungsanordnung zum decodieren von rs-codierten datensignalen
DE2106314B2 (de) Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks
DE69907566T2 (de) Reed Solomon Kodierungsgerät und Reed Solomon Kodierungsverfahren
DE69732076T2 (de) Reed-Solomon Dekodierer mit universeller Prozessoreinheit und speziellen Schaltungen
DE602005000251T2 (de) Dekoder zur Fehlerkorrektur mit einem Reed-Solomon Dekoder zur Erasure-Korrektur und einem CRC Dekoder
DE4105860A1 (de) Schaltungsanordnung zum erkennen und korrigieren von fehlern in datenworten
DE102014215252B9 (de) Wirksame fehlerkorrektur von mehrbitfehlern
DE3404417A1 (de) Codierer-pruefschaltungsanordnung
DE10105626A1 (de) Berechnung von M CRC-Bits zu einem zeitpunktfür Daten mit einer Bitlänge, die kein Vielfaches von M beträgt
DE69837784T2 (de) Verbessertes fünf-fehler-korrektursystem
DE602004008150T2 (de) Datenfehlerkorrektur mittels Redundanzblöcke
DE3702697C2 (de)
EP0159403A2 (de) Anordnung zur Korrektur von Bündelfehlern in verkürzten zyklischen Blockcodes
DE4117726C2 (de) Fehlerkorrekturverfahren und Einrichtung zu dessen Durchführung
DE69332937T2 (de) Korrekturverfahren für verlorengegangene Daten und Schaltung dafür
DE102021109391B3 (de) Multibytefehler-Erkennung
DE102015118668B4 (de) Fehlerkorrektur
DE102021123727B4 (de) Bytefehlerkorrektur

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M