DE69732076T2 - Reed-Solomon Dekodierer mit universeller Prozessoreinheit und speziellen Schaltungen - Google Patents

Reed-Solomon Dekodierer mit universeller Prozessoreinheit und speziellen Schaltungen Download PDF

Info

Publication number
DE69732076T2
DE69732076T2 DE69732076T DE69732076T DE69732076T2 DE 69732076 T2 DE69732076 T2 DE 69732076T2 DE 69732076 T DE69732076 T DE 69732076T DE 69732076 T DE69732076 T DE 69732076T DE 69732076 T2 DE69732076 T2 DE 69732076T2
Authority
DE
Germany
Prior art keywords
circuit
polynomial
galois field
error
chien search
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
DE69732076T
Other languages
English (en)
Other versions
DE69732076D1 (de
Inventor
Tetsuya Ohta-ku Shimizu
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Application granted granted Critical
Publication of DE69732076D1 publication Critical patent/DE69732076D1/de
Publication of DE69732076T2 publication Critical patent/DE69732076T2/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

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf eine Fehlerkorrekturdekodiervorrichtung zum Korrigieren eines Codefehlers in gesendeten Codedaten.
  • Verwandter Stand der Technik
  • Seit kurzem erhöht sich die Dichte einer digitalen Aufzeichnung ständig, und dementsprechend wird eine Fehlerkorrekturkodier/-dekodiervorrichtung gefordert, die mit hoher Geschwindigkeit arbeiten kann und eine hohe Korrekturleistung hat.
  • Ein Reed-Solomon-Code ist eine Art BCH-Code und weist eine hohe Korrekturleistung auf, da er in Byteeinheiten korrigiert werden kann. Dementsprechend wird der Reed-Solomon-Code auf einer Vielzahl von Gebieten wie optischen Platten und digitaler Videoaufzeichnung extensiv verwendet.
  • Nachstehend wird das Prinzip eines repräsentativen Dekodierverfahrens für einen Reed-Solomon-Code kurz beschrieben.
  • Ein q-Element-Reed-Solomon-Code mit α als primitivem Element von GF(q) und 1, α, α2, ..., αd–2 als Wurzel eines Generatorpolynoms G(x) wird als Beispiel verwendet. Die Codelänge ist n = q – 1, die Informationssymbolanzahl ist k = q – d und die minimale Distanz ist dmin = d.
  • Zuerst wird ein Syndrom Si aus einem empfangenen Polynom Y(x) anhand der nachstehenden Gleichung (1) berechnet. Si = Y(αi) = E(αi) (i = 0, 1, ..., d – 2) (1)wobei E(x) ein ein Fehlermuster darstellendes Polynom ist.
  • Es wird angenommen, dass ein Fehler an einer Position j1, j2, ..., jl auftritt. Es gilt n – 1 ≥ j1 > j2 > > jl ≥ 0 (2) 1 ≤ t = ⌈(d – 1)/2⌋ (3)wobei ⌈x⌋ eine maximale ganze Zahl kleiner als x ist, und t die Fehlerkorrekturleistung angibt.
  • Dann ist ein Fehlermusterpolynom E(x) wie folgt dargestellt E(x) = E1xj1 + E2xj2 + + E1xjl (4)Ei (i = 1,..., l) ist der Wert eines Fehlers an einer Position ji und des Elements von GF(q). Das Syndrom Si wird anhand Gleichung (1) wie folgt geschrieben. Si = E1xi 1 + E2xi 2 + + E1xi l (5) für xi = αji (i = 1, ..., l) (6)
  • Ein Reed-Solomon-Code wird durch Berechnung der Fehlerpositionen j1, j2, ..., jl und der Fehlerwerte E1, E2, ..., El aus dem Syndrom Si dekodiert. Zu diesem Zweck werden zwei Polynome σ(z) = σlzl + ... + σ1z + σ0 (7)
    Figure 00030001
    über GF(q) berechnet. Diese Polynome haben α–j1, α–j2, ..., α–jl als Wurzel. σ(z) wird Fehlerpositionspolynom genannt, und η(z) ist ein Polynom, das zur Berechnung des Fehlerwerts erforderlich ist, und wird Fehlerauswertungspolynom genannt.
  • Folgendes Polynom mit dem Syndrom als Koeffizienten wird betrachtet. S(z) = Sd2zd–2 + ... + S1z + S0 (9)
  • Die Beziehung zwischen dem Syndrompolynom, σ(z) und η(z) kann wie folgt geschrieben werden. σ(z)S(z) = η(z)modzd–1 (10)
  • Dies ist eine grundlegende Gleichung, aus der σ(z) und η(z) berechnet werden können.
  • Ist die Fehlerkorrekturleistung t 4 bis 5, kann ein Verfahren beruhend auf einem Euklidischen Verfahren wechselseitiger Teilung als Verfahren zum effektiven Berechnen von σ(z) und η(z) verwendet werden. Dieses Verfahren wird nachstehend als Euklidischer Algorithmus bezeichnet. Gleichung (10) kann unter Verwendung eines geeigneten Polynoms A(z) wie folgt umgeschrieben werden. A(z)zd–1 + σ(z)S(z) = η(z) (11)
  • Da angenommen wird, dass die Fehlerzahl l t oder kleiner ist, muss folgende Gleichung erfüllt sein. degη(z) < degσ(z) ≤ t (12)wobei deg der Grad eines Polynoms ist.
  • Wie es aus den Gleichungen (8) und (7) ersichtlich ist, haben σ(z) und η(z) keinen gemeinsamen Faktor. Es ist bewiesen, dass σ(z) und η(z), die die Gleichung (12) erfüllen, eindeutig bestimmt werden können. Es ist auch bekannt, dass σ(z) und η(z) durch den Euklidischen Algorithmus zum Berechnen des größten gemeinsamen Teilerpolynoms von zd–1 und S(z) berechnet werden können. 1 zeigt ein allgemeines Verfahren des euklidischen Algorithmus.
  • Als Verfahren zum Erhalten der Wurzel von σ(z), die durch den Euklidischen Algorithmus berechnet wird, wird im Allgemeinen eine Chien-Suche verwendet. Die Chien-Suche ist ein Verfahren, durch das die Potenz α1 (i = 0, 1, ..., n – 1) von α sequenziell in σ(z) eingesetzt wird, und überprüft wird, ob σ(α1) gleich 0 ist.
  • Fehlerwerte e1, e2, ..., el können wie folgt berechnet werden. e1 = –η(α–ji)/σ(α–ji) (i = 1, ..., 1) (13)wobei σ(z)' eine hergeleitete Funktion von σ(z) ist und durch formelles Ableiten in σ(z) berechnet wird.
  • Herkömmlicherweise sind die einzelnen Schritte der vorstehenden Korrekturverarbeitung im Allgemeinen als Pipeline ausgebildet und werden durch Hardware gebildet.
  • 2 zeigt ein Beispiel der Anordnung einer herkömmlichen Reed-Solomon-Codefehlerkorrekturdekodiervorrichtung. Gemäß 2 werden Eingangsdaten von einem Eingansanschluss 600, die einen Fehlerkorrektur-kodierten Fehler enthalten, um eine Verarbeitungszeit (die nachstehend beschrieben ist) durch eine Datenverzögerungsschaltung 601 verzögert. Gleichzeitig berechnet eine Syndromoperationsschaltung 602 das Syndrom Si entsprechend Gleichung (1). Dieses Syndrom Si wird als durch in Gleichung (2) dargestelltes Syndrompolynom einer Galois-Feldpolynomoperationsschaltung 603 zugeführt.
  • Die Galois-Feldpolynomoperationsschaltung 603 berechnet das Fehlerpositionspolynom σ(z) und das Fehlerwertpolynom η(z) unter Verwendung des in 1 gezeigten Euklidischen Algorithmus. Bei diesem Euklidischen Algorithmus werden primär ein Quotientenpolynom und ein Restpolynom eines Galois-Feldpolynoms wiederholt berechnet. Das eine Vergleichsbedingung degR(z) ≤ t – 1 in der Galois-Feldpolynomoperationsschaltung 603 erfüllende Fehlerpositionspolynom σ(z) wird einer Chien- Suchschaltung 604 zugeführt.
  • Die Chien-Suchschaltung 604 ersetzt sequenziell Elemente eines Galois-Feldes GF(2m) und überprüft, ob der jeweils resultierende Wert gleich 0 ist, wodurch eine Wurzel berechnet wird. Die Chien-Suchschaltung 604 führt dann Fehlerpositionsinformationen i, den Wert von η(z) und den Wert σ(z)', der durch formelle Ableitung der Fehlerposition berechnet wird, einer Fehlerwertberechnungsschaltung 605 zu. Die Fehlerwertberechnungsschaltung 605 berechnet den Fehlerwert ei aus den Fehlerpositionsinformationen i, die durch die Chien-Suchschaltung 604 berechnet werden, und Gleichung (13).
  • Die so berechnete Fehlerposition und der Fehlerwert werden einer Korrekturschaltung 606 zugeführt. Die Korrekturschaltung 606 führt eine Korrekturverarbeitung durch Berechnung einer Exklusiv-Oder-Verknüpfung der Fehlerposition in der durch die Datenverzögerungsschaltung 601 verzögerten Datenfolge und des berechneten Fehlerwerts durch. Die Korrekturschaltung 606 gibt das Ergebnis aus einem Ausgangsanschluss 607 aus.
  • Bei der vorstehenden herkömmlichen Anordnung erhöht sich allerdings der Schaltungsumfang zwangsläufig, indem alle Blöcke durch Hardware ausgebildet werden, obwohl eine Hochgeschwindigkeitsverarbeitung bewirkt werden kann. Außerdem muss der Hardwareaufbau des Steuerblocks immer dann verändert werden, wenn der Algorithmus verändert wird, um beispielsweise eine komplizierte wiederholte Dekodierung mit einer Löschkorrektur produktmodulierter Daten auszuführen.
  • Aus der US-A-4,899,341 ist eine BCH-Fehlerkorrekturschaltung bekannt, bei der eine Vielzahl von Galois-Operationsschaltungen parallel betrieben werden.
  • Aus der US-A-5,535,225 ist ferner bekannt, drei parallele Galois-Feldprozessoren in einem BCH-Dekodierer bereit zu stellen, der verschiedene Werte einer Codewortlänge und Anzahl von Informationssymbolen verarbeiten kann.
  • Aus 8049e IEE Proceedings on E. Computers and digital techniques, 1. Mai 1990, Nr. 3, Band 137, Teil E, Seiten 197–201, Stevenage (GB), M. Hahn, ist ferner bekannt, einen universellen Fehlerkorrekturkodierer-Dekodierer bereitzustellen, der einen Prozessor, FIFO und eine Reihe universeller Registerschaltungen (URC) verwendet. Der Prozessor berechnet ein Fehlerortpolynom und überträgt es über den FIFO zu einer URC zur Fehlerortberechnung. Durch den Prozessor berechnete Fehlerort- und Fehlerwertpolynome werden dann zu einer anderen URC zur Berechnung von Fehlerwerten übertragen.
  • Unter den vorstehend beschriebenen Umständen besteht die Aufgabe der Erfindung darin, eine Fehlerkorrekturdekodiervorrichtung auszubilden, die eine Hochgeschwindigkeitsverarbeitung mit kleinem Schaltungsumfang durchführen kann und eine hohe Einsatzflexibilität aufweist, sowie ein Verfahren für die Vorrichtung auszubilden.
  • Ausgestaltungen der Erfindung sind in den beigefügten unabhängigen Patentansprüchen dargelegt.
  • Gemäß einem bevorzugten Ausführungsbeispiel der Erfindung ist zur Lösung der vorstehenden Aufgabe eine Fehlerkorrekturdekodiervorrichtung ausgestaltet, mit einer ersten Operationseinrichtung mit einer Galois-Feldpolynomoperationsschaltung zum Erhalten eines Galois-Feldpolynoms, einer zweiten Operationseinrichtung mit einer Galois-Feldoperationsschaltung zur Durchführung einer Operation unter Verwendung des Galois-Feldpolynoms und einer Programmerzeugungseinrichtung zur Erzeugung eines Steuerprogramms für die erste und die zweite Operationseinrichtung, wobei die erste und die zweite Operationseinrichtung parallel zu einander vorgesehen sind.
  • Gemäß einem weiteren bevorzugten Ausführungsbeispiel der Erfindung ist ferner eine Fehlerkorrekturdekodiereinrichtung ausgebildet, mit einer ersten Operationseinrichtung mit einer Galois-Feldpolynomoperationsschaltung zum Erhalten eines Galois-Feldpolynoms und einer Registerschaltung, die verwendet wird, wenn die Galois-Feldpolynomoperationsschaltung eine Operation durchführt, einer zweiten Operationseinrichtung mit einer Galois-Feldoperationsschaltung zum Durchführen einer Operation unter Verwendung des Galois-Feldpolynoms und einer Universal-Operationsschaltung, einer Registereinrichtung, die verwendet wird, wenn die erste und die zweite Operationseinrichtung Operationen durchführen, und einer Programmerzeugungseinrichtung zur Erzeugung eines Steuerprogramms für die erste und die zweite Operationseinrichtung, wobei die erste und die zweite Operationseinrichtung und die Registereinrichtung parallel zu einander vorgesehen sind.
  • Weitere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden Beschreibung in Verbindung mit der beiliegenden Zeichnung ersichtlich.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • 1 zeigt ein Ablaufdiagramm eines allgemeinen Euklidischen Algorithmus,
  • 2 zeigt ein Blockschaltbild der Anordnung einer herkömmlichen Fehlerkorrekturdekodiervorrichtung,
  • 3 zeigt ein Blockschaltbild eines Ausführungsbeispiels einer erfindungsgemäßen Fehlerkorrekturdekodiervorrichtung,
  • 4 zeigt ein Ablaufdiagramm eines bei diesem Ausführungsbeispiel verwendeten Euklidischen Algorithmus,
  • 5 zeigt ein Blockschaltbild einer praktischen Konfiguration einer Galois-Feldpolynomoperationsschaltung in 3 und
  • 6 zeigt ein Blockschaltbild einer praktischen Konfiguration eines Polynomkoeffizientenregisters in 3.
  • AUSFÜHRLICHE BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
  • Nachstehend wird ein Ausführungsbeispiel der Erfindung unter Bezugnahme auf die beiliegende Zeichnung beschrieben.
  • 3 zeigt ein Blockschaltbild eines Ausführungsbeispiels einer erfindungsgemäßen Fehlerkorrekturdekodiervorrichtung.
  • Gemäß 3 umfasst eine Polynomeinheit (erste Operationseinrichtung) 123, die das charakteristischste Merkmal dieses Ausführungsbeispiels darstellt, eine Galois-Feldpolynomoperationsschaltung 113 und eine Polynomkoeffizientenregisterschaltung 107 mit einer Chien-Suchschaltung. Diese Polynomeinheit 123 ist mit einem Datenbus parallel zu einer Skalaroperationsschaltung (zweite Operationseinrichtung) 124 verbunden, die eine Skalarregisterschaltung (Registereinrichtung) 114, eine Universaloperationsschaltung (ALU-Schaltung 116) und eine Galois-Feldoperationsschaltung (GLU-Schaltung) 118 umfasst.
  • Das heißt, die Polynomeinheit 123 ist mit Ausgabebussen (einem A-Bus 108 und einem B-Bus 109) der Skalarregisterschaltung 114 als Eingangsanschluss für Koeffizientendaten und mit einem Eingabebus (F-Bus) 104 der Skalarregisterschaltung 114 als Eingangs/Ausgangsanschluss für Polynomdaten verbunden. Es wird angenommen, dass ein Galois-Feld GF(28) verwendet wird, und jeder Datenbus ein 8-Bit-Bus ist.
  • Wie vorstehend beschrieben ist, die Skalarregisterschaltung 114 ein Speicher mit drei Anschlüssen, mit dem der A-Bus 108, der B-Bus 109 und der F-Bus 106 verbunden sind, und der einen Schreibvorgang und zwei Lesevorgänge unabhängig voneinander ausführen kann.
  • Auch die ALU-Schaltung 116 und die GLU-Schaltung 118 in der Skalaroperationsschaltung 124 können Operationen unter Verwendung von Direkteingaben von einem Direktbus (I-Bus) 112 zusätzlich zu Ausgabewerten von der Skalarregisterschaltung 114 durchführen. Das heißt, Auswahlschaltungen 115 und 117 wählen den A-Bus 108 oder den I-Bus 112 aus, und für den ausgewählten Wert und den Wert des B-Bus 109 wird eine Operation durchgeführt und das Operationsergebnis wird zu dem F-Bus 104 ausgegeben.
  • Daraufhin wird dieses Operationsergebnis in das Skalarregister 114 geschrieben, in die Polynomkoeffizientenregisterschaltung 107 über eine Auswahlschaltung 106 oder eine Syndromspeicherschaltung 102 über eine Speicher-IF-Schaltung 103 geschrieben oder zu einer externen Einrichtung (beispielsweise einer Verbindungsschaltung) über eine externe IF-Schaltung 121 ausgegeben.
  • Nachstehend wird eine Operation anhand eines Beispiels einer C1-Syndrom-Dekodierung für C1 (80, 72) und C2 (90, 82) Reed-Solomon-Codes als Beispiel beschrieben.
  • Eingangsdaten von einem Eingangsanschluss 100 werden in Einheiten von Kodierblöcken (80 × 90 Bytes) eingegeben. Eine durch eine Galois-Feldadditionsschaltung und eine Galois-Feldkoeffizientenschaltung gebildete Syndromoperationsschaltung 101 berechnet ein C1-Syndrom und ein C2-Syndrom parallel zu einander und schreibt die Berechnungsergebnisse in den Syndromspeicher 102.
  • Der Syndromspeicher 102 hat eine Kapazität zur Speicherung von Syndromen von zwei Blöcken. Werden Syndrome eines Blocks geschrieben, liest gleichzeitig ein Prozessor (der beispielsweise durch die Polynomeinheit 123, das Skalarregister 114 und die Skalaroperationsschaltung 124 wie vorstehend beschrieben gebildet ist) in den unmittelbar vorhergehenden Block geschriebene Syndrome über die Speicher-IF-Schaltung 103 aus. Auf diese Weise kann eine Fehlerkorrekturdekodierverarbeitung durchgeführt werden.
  • Der Prozessor führt die Fehlerkorrekturverarbeitung entsprechend einem Anweisungscode durch, der durch eine Steuerschaltung 119 aus einer Programmspeicherschaltung 120 gelesen wird. Dieser Anweisungscode enthält eine Skalaranweisung und eine Vektoranweisung. Ein Polynomspeicherzugriff und Operationen von Polynomen können durch eine Vektoranweisung durchgeführt werden. Durch Änderung des zu dem Prozessors zuzuführenden Programms kann der Fehlerkorrekturalgorithmus ohne Änderungen von Hardware geändert werden.
  • Bei der durch den Prozessor durchgeführten Fehlerkorrekturdekodierverarbeitung werden zuerst ein Fehlerpositionspolynom und ein Fehlerwertpolynom aus einem Syndrompolynom durch einen Euklidischen Algorithmus berechnet. Das heißt, das in die Syndromspeicherschaltung 102 geschriebene C1-Syndrom wird als Syndrompolynom siebten Grades zu der Polynomkoeffizientenregisterschaltung 107 durch die Vektoranweisung übertragen. Auf der Grundlage eines in
  • 4 gezeigten Euklidischen Algorithmus führen die Galois-Feldpolynomoperationsschaltung 113 und die Polynomkoeffizientenregisterschaltung 107 Operationen zum Erhalten des Fehlerpositionspolynoms und des Fehlerwertpolynoms durch.
  • In 4 sind A, B, L und M Galois-Feldpolynome, α und β sind Koeffizienten der Galois-Feldpolynome A und B höchsten Grades, t ist die Fehlerkorrekturleistung, S(z) ist ein Syndrompolynom, σ(z) ist ein Fehlerpositionspolynom und η(z) ist ein Fehlerwertpolynom.
  • 5 zeigt ein ausführliches Blockschaltbild der Galois-Feldpolynomoperationsschaltung 113. In der in 5 gezeigten Konfiguration können bei dem Euklidischen Algorithmus gemäß 5 verwendete Operationen der folgenden Ausdrücke durch eine einzige Anweisung durchgeführt werden. In den unten stehenden Ausdrücken (14) und (15) sind α und β Galois-Feldelemente und X(z) und Y(z) sind Galois-Feldpolynome. αX(Z) + βY(Z) (14) αX(Z) + βY(Z)Z (15)
  • Wird beispielsweise eine Vektoranweisung entsprechend Ausdruck (14) ausgegeben, werden die Koeffizienten α und β von den Eingangsanschlüssen 200 und 204 eingegeben, die jeweils mit dem A-Bus 108 und dem B-Bus 109 in 3 verbunden sind, und werden in Koeffizientenregistern 201 und 205 eingestellt. Ferner werden die Galois- Feldpolynome X(Z) und Y(Z) von Eingangsanschlüssen 202 und 206 eingegeben, die mit den Ausgabebussen (einem PA-Bus 110 und einem PB-Bus 111) des Polynomkoeffizientenregisters 107 verbunden sind.
  • Galois-Feldmultiplikationsschaltungen 203 und 208 multiplizieren die eingegebenen Galois-Feldpolynome X(Z) und Y(Z) mit den Koeffizienten α und β, die jeweils in den Koeffizientenregistern 201 und 205 eingestellt sind. Die jeweiligen Produkte werden durch eine Galois-Feldadditionsschaltung 209 addiert und einem Ausgangsanschluss 210 zugeführt.
  • Wird andererseits eine Vektoranweisung entsprechend Ausdruck (15) ausgegeben, wird der Grad des vom Eingangsanschluss 206 eingegebenen Polynoms Y(Z) durch eine Gradverschiebungsschaltung 207 um einen Grad verschoben. Danach wird die gleiche Operation wie bei der Vektoranweisung entsprechend dem Ausdruck (14) ausgeführt, und das Operationsergebnis wird dem Ausgangsanschluss 210 zugeführt. Die Ausgangsdaten aus dem Ausgangsanschluss 210 werden in das Polynomkoeffizientenregister 107 über einen Bus 105 und die Auswahlschaltung 106 in 3 geschrieben.
  • Bei dem vorstehenden Euklidischen Algorithmus werden die Verarbeitungsschritte wie der Vergleich der Grade und die Erzeugung von Registeradressen, die von Polynomoperationen verschieden sind, parallel zu den Polynomoperationen unter Verwendung der Skalarregistervorrichtung 114 und der Skalaroperationsschaltung 204 durchgeführt.
  • Ist die Verarbeitung unter Verwendung des in 4 gezeigten Euklidischen Algorithmus abgeschlossen, werden das erhaltene Fehlerpositionspolynom σ(Z) und das erhaltene Fehlerwertpolynom η(Z) an bestimmte Adressen der Polynomkoeffizientenregisterschaltung 107 geschrieben, und die Chien-Suchschaltung berechnet die Wurzel.
  • 6 zeigt ein ausführliches Blockschaltbild der Polynomkoeffizientenregisterschaltung 107. Diese Polynomkoeffizientenregisterschaltung 107 ist ein Speicher mit drei Anschlüssen ähnlich der Kanalregisterschaltung und kann einen Schreibvorgang von einem Eingangsanschluss 300 über eine Auswahlschaltung 301 und zwei Lesevorgänge für Ausgangsanschlüsse 308 und 309 über eine Auswahlschaltung 307 unabhängig durchführen.
  • Adressen zum Auswählen von Registern in dem Polynomkoeffizientenregister 107 umfassen eine obere Adresse zum Auswählen eines Vektors und eine untere Adresse zum Auswählen eines Koeffizienten im Vektor. Diese Adressen werden von einem Eingangsanschluss 306 in eine Steuerschaltung 305 eingegeben. Die Steuerschaltung 305 dekodiert die eingegebenen Adressen und wählt Schreib- und Leseregister durch Steuerung der Auswahlschaltungen 301 und 307 aus.
  • Als Beispiel wird angenommen, dass nachstehend gezeigte eingegebene Adressen zum Auswählen einer Universalregisterschaltung 302 oder einer Chien-Suchregisterschaltung 303 oder einer Steuerregisterschaltung 304 und zur Auswahl interner Register der Schaltung verwendet werden.
  • Figure 00160001
  • Der höchste Grad des in der Fehlerkorrekturverarbeitung verwendeten Polynoms ist Z8. Dementsprechend kann in der Universalregisterschaltung 302 auf Register für fünf Vektoren beliebig zugegriffen werden unter der Annahme, dass ein 9-Byte-Koeeffizient einen Vektor bildet, d. h. auf 9 × 5 Byte-Register 3100 bis 3148. Bei dieser Konfiguration sind die Register 3100 bis 3118 an oberen Adressen 0 und 1 als Register zugeordnet, die bei Polynomoperationen verwendet werden, die durch den Euklidischen Algorithmus durchgeführt werden. Die Register 3120 bis 3148 an oberen Adressen 2 bis 4 sind als Register zur Speicherung der Ergebnisse der Chien-Suche zugewiesen.
  • Auch in der Chien-Suchschaltung 303 kann auf 8 × 2 Byte-Register 3200 bis 3207 und 3240 bis 3247 beliebig zugegriffen werden. Diese Register sind mit Koeffizienteneinheiten 3210 bis 3217 und 3250 bis 3257 zum Multiplizieren von Galois-Feldkoeffizienten α259 bis α247 verbunden.
  • Ausgaben aus den Galois-Feldkoeffizienteneinheiten 3210 bis 3217 werden einer Galois-Feldadditionsschaltung 3230 zugeführt, wo eine Galois-Feldaddition für alle Koeffizienten durchgeführt wird. Die Summe kann über die Auswahlschaltung 301 in ein anderes Register geschrieben werden. Ferner werden Ausgaben aus den Galois-Feldkoeffizienteneinheiten 3250 bis 3257 einer Galois-Feldadditionsschaltung 3260 zugeführt, wo eine Galois-Feldaddition für alle Koeffizienten durchgeführt wird, und die Summe wird zu der Auswahlschaltung 301 ausgegeben. Des Weiteren werden Ausgaben hinsichtlich geradzahliger Grade aus den Galois-Feldkoeffizienteneinheiten 3250 bis 3257 einer Galois-Feldadditionsschaltung 3260 zugeführt, wo eine Galois-Feldaddition für diese Koeffizienten geradzahligen Grades durchgeführt wird, und die Summe wird zu der Auswahlschaltung 301 ausgegeben. Des Weiteren werden Ausgaben hinsichtlich geradzahliger Grade aus den Galois-Feldkoeffizienteneinheiten 3250 bis 3257 einer Galois-Feldadditionsschaltung 3 zugeführt, wo eine Galois-Feldaddition für diese Koeffizienten geradzahligen Grades durchgeführt wird, und die Summe wird zu der Auswahlschaltung 301 ausgegeben.
  • Die Ausgabe aus der Galois-Feldadditionsschaltung 3260 wird auch einer Nullerfassungsschaltung 3261 zugeführt. Die Nullerfassungsschaltung 3261 überprüft, ob der Ausgabewert aus der Galois-Feldadditionsschaltung 3260 „0" ist. Ist der ausgegebene Wert „0", führt die Nullerfassungsschaltung 3261 der Steuerschaltung 305 und einer Fehleradressenzählschaltung 3262 ein Steuersignal zu. Entsprechend dem Steuersignal von der Nullerfassungsschaltung 3261 gibt die Fehleradressenzählschaltung 3262 eine Fehleradresse zu der Auswahlschaltung 301 aus.
  • Der Betrieb der Polynomkoeffizientenregisterschaltung 107 mit dem in 6 gezeigten Aufbau wird nachstehend beschrieben. Zuerst werden das Fehlerwertpolynom η(Z) und das Fehlerpositionspolynom σ(Z), die durch die Galois- Feldpolynomoperationsschaltung 113 in 3 unter Verwendung des Euklidischen Algorithmus in 4 berechnet werden, jeweils in die Chien-Suchregister 320 bis 3207 und 3240 bis 3247 an oberen Adressen 5 und 6 geschrieben. Nachdem das Fehlerpositionspolynom σ(Z) und das Fehlerwertpolynom η(Z) so in diesen Registern eingestellt wurden, wird ein Steuerregister 330 an der oberen Adresse 7 zum Einstellen einer Codelänge (hier 80) ausgewählt. Gleichzeitig wird ein Flag eines Chien-Suchstarts gesetzt.
  • Ist das Chien-Suchstartflag gesetzt, gibt die Steuerschaltung 305 die I/O-Anschlüsse der Chien-Suchregister 3200 bis 3207 und 3240 bis 3247 durch Steuern der Auswahlschaltungen 301 und 307 frei, und steuert diese Register zum sequentiellen Einsetzen der Potenzen von α in das Fehlerwertpolynom η(Z) und das Fehlerpositionspolynom σ(Z), bis die Codelänge erreicht ist. Gleichzeitig führt die Steuerschaltung 305 die Ausgabe aus der Galois-Feldadditionsschaltung 3260 der Nullerfassungsschaltung 3261 zu, die überprüft, ob σ(α1) = 0 ist.
  • Erfasst die Nullerfassungsschaltung 3261, dass σ(α1) = 0 ist, schreibt die Steuerschaltung 305 über die Auswahlschaltung 301 die Ausgabe aus der Galois-Feldadditionsschaltung 3260 als η(α1) in das Register an der oberen Adresse 2, die Ausgabe aus der Galois-Feldadditionsschaltung 3263 als formelle Ableitung σ'(α1) von σ(α1) in das Register an der oberen Adresse 3, und die Ausgabe aus dem Fehleradressenzähler 3262 als Fehleradresse i in das Register an der oberen Adresse 4.
  • Danach ist die Chien-Suche abgeschlossen, wenn die Potenzen von α 80-Mal entsprechend der Codelänge eingesetzt wurden. Ist die Chien-Suche abgeschlossen, schreibt die Steuerschaltung 305 ein Chien-Suche-Ende-Flag in das Steuerregister 3300. Das Ende der Chien-Suche kann durch Auslesen des Flags aus dem Steuerregister 3300 durch das Programm erkannt werden.
  • Während die Chien-Suchschaltung in der Polynomkoeffizientenregisterschaltung 107 die Chien-Suchverarbeitung durchführt, kann die Galois-Feldpolynomoperationsschaltung 113 gleichzeitig den Euklidischen Algorithmus für den nächsten Code unter Verwendung der Register an oberen Adressen 0 und 1 ausführen; es ist nicht erforderlich, die Verarbeitung zur Durchführung der Chien-Suche anzuhalten. Dementsprechend kann die Fehlerkorrekturverarbeitung mit hoher Geschwindigkeit durchgeführt werden.
  • Ist die Chien-Suchverarbeitung abgeschlossen, kann auch ein Fehlerwert ei durch Ausführen von unten stehender Gleichung (16) unter Verwendung der GLU-Schaltung 118 in der Skalaroperationsschaltung 124 berechnet werden.
  • Figure 00190001
  • Die durch die Chien-Suchschaltung in der Polynomkoeffizientenregisterschaltung 107 berechnete Fehleradresse i und der durch die GLU-Schaltung 118 berechnete Fehlerwert ei werden einer Korrekturschaltung (nicht gezeigt) von einem Ausgangsanschluss 122 über die Speicher-IF-Schaltung 103 und die externe IF-Schaltung 121 zugeführt, und eine Fehlerkorrektur wird durchgeführt. Außerdem wird das C2-Syndrom in der Syndromschaltung 102 neu geschrieben. Die C1- Korrekturverarbeitung kann durch Wiederholen der vorstehenden Prozedur mit hoher Geschwindigkeit ausgeführt werden.
  • Eine Löschungskorrektur kann durch die Durchführung einer Fehlerkorrekturverarbeitung unter der Annahme realisiert werden, dass die Fehlerposition bereits gefunden ist.
  • Eine Codierverarbeitung wird auch durch die Durchführung einer Löschungskorrektur für die Paritätsposition bewirkt.
  • Wie vorstehend beschrieben weist die Fehlerkorrekturdekodiervorrichtung dieses Ausführungsbeispiels eine Prozessorkonfiguration auf, bei der eine erste und eine zweite Operationseinrichtung parallel zueinander vorgesehen sind, und entsprechend durch eine Programmerzeugungseinrichtung erzeugte Programme gesteuert werden. Daher können alle Änderungen im Algorithmus zur Durchführung einer Fehlerkorrektur mittels Software realisiert werden, wodurch ein äußerst flexibles System mit geringem Schaltungsumfang realisiert werden kann. Obwohl in der zweiten Operationseinrichtung eine Galois-Feldoperationsschaltung eine Operation durchführt, kann eine Galois-Feldpolynomoperationsschaltung in der zu der zweiten Operationseinrichtung parallel vorgesehenen ersten Operationseinrichtung ein Galois-Feldpolynom für die nächsten codierten Daten berechnen. Dementsprechend kann die Verarbeitungsgeschwindigkeit erhöht werden.
  • Ferner sind Galois-Feldkoeffizienteneinheiten und Galois-Feldadditionsschaltungen zu einigen eine Registerschaltung bildenden Registern hinzugefügt, und Wurzeln werden durch eine Chien-Suche für in diese Register geschriebene Galois-Feldpolynome berechnet. Da somit eine Chien-Suchfunktion für einen Teil der Registerschaltung vorgesehen ist, können durch eine Galois-Feldpolynomoperationsschaltung durchgeführte Operationen für Galois-Feldpolynome und Berechnungen von Fehlerpositionen durch eine Chien-Suche parallel zueinander durch die Steuerung von Programmen ausgeführt werden. Dies erhöht weiter die Verarbeitungseffizienz und realisiert eine Fehlerkorrekturverarbeitung mit hoher Geschwindigkeit.
  • Die vorstehende Beschreibung dient also lediglich der Veranschaulichung der Erfindung und soll keine Einschränkung darstellen.
  • Der Schutzbereich der Erfindung ist daher lediglich durch die beiliegenden Patentansprüche bestimmt.

Claims (6)

  1. Fehlerkorrekturvorrichtung mit einer Galois-Feld-Polynomerzeugungsschaltung (113) zur Erzeugung eines Fehlerpositionspolynoms und eines Fehlerwertpolynoms, einer Chien-Suchschaltung (107) zur Durchführung einer Chien-Suche, einer Berechnungsschaltung (118) zur Berechnung von Fehlerwerten und einer Steuerschaltung (119) zur Steuerung der Galois-Feld-Polynomerzeugungsschaltung, der Chien-Suchschaltung und der Berechnungsschaltung, wobei die Galois-Feld-Polynomerzeugungsschaltung und die Chien-Suchschaltung in einer ersten Operationsschaltung (123) integriert vorgesehen sind, wobei die erste Operationsschaltung derart eingerichtet ist, dass die Galois-Feld-Polynomerzeugungsschaltung zur Durchführung eines nächsten Prozesses eingerichtet ist, während die Chien-Suchschaltung die Chien-Suche durchführt, wobei die Berechnungsschaltung in einer zweiten Operationsschaltung (124) vorgesehen ist, die parallel zu der ersten Operationsschaltung vorgesehen ist, und wobei die Steuerschaltung zur Steuerung der ersten und zweiten Operationsschaltung unter Verwendung eines in einem Speicher (120) gespeicherten Steuerprogramms eingerichtet ist.
  2. Vorrichtung nach Anspruch 1, wobei die Galois-Feld-Polynomerzeugungsschaltung zur Erzeugung des Fehlerposi tionspolynoms und des Fehlerwertpolynoms unter Verwendung eines euklidischen Algorithmus eingerichtet ist.
  3. Vorrichtung nach Anspruch 1 oder 2, wobei die Galois-Feld-Polynomerzeugungsschaltung zur Durchführung einer durch die folgenden Ausdrücke definierten Operation eingerichtet ist: aX(Z) + βY(Z) aX(Z) + βY(Z)Ζwobei α und β Galois-Feld-Elemente und X(Z) und Y(Z) Galois-Feld-Polynome sind.
  4. Verfahren zum Betreiben einer Fehlerkorrekturvorrichtung, mit Betreiben einer Galois-Feld-Polynomerzeugungsschaltung (113) zur Erzeugung eines Fehlerpositionspolynoms und eines Fehlerwertpolynoms, Betreiben einer Chien-Suchschaltung (107) zur Durchführung einer Chien-Suche, Betreiben einer Berechnungsschaltung (124) zur Berechnung von Fehlerwerten und Betreiben einer Steuerschaltung (119) zur Steuerung der Galois-Feld-Polynomerzeugungsschaltung, der Chien-Suchschaltung und der Berechnungsschaltung, wobei die Galois-Feld-Polynomerzeugungsschaltung und die Chien-Suchschaltung in einer ersten Operationsschaltung (123) integriert vorgesehen sind, die erste Operationsschaltung derart eingerichtet ist, dass die Galois-Feld-Polynomerzeugungsschaltung zur Durchführung eines nächsten Prozesses betreibbar ist, während die Chien-Suchschaltung die Chien-Suche durchführt, wobei die Berechnungsschaltung in einer zweiten Operationsschaltung (124) vorgesehen ist, die parallel zur ersten Operationsschaltung vorgesehen ist, und wobei die Steuerschaltung zur Steuerung der ersten und zweiten Operationsschaltung unter Verwendung eines in einem Speicher (120) gespeicherten Steuerprogramms betreibbar ist.
  5. Verfahren nach Anspruch 4, wobei die Galois-Feld-Polynomerzeugungsschaltung zur Erzeugung des Fehlerpositionspolynoms und des Fehlerwertpolynoms unter Verwendung eines euklidischen Algorithmus betreibbar ist.
  6. Verfahren nach Anspruch 4 oder 5, wobei die Galois-Feld-Polynomerzeugungsschaltung zur Durchführung einer durch die folgenden Ausdrücke definierten Operation betreibbar ist: aX(Z) + βY(Z) aX(Z) + βY(Z)Zwobei α und β Galois-Feld-Elemente und X(Z) und Y(Z) Galois-Feld-Polynome sind.
DE69732076T 1996-10-08 1997-10-03 Reed-Solomon Dekodierer mit universeller Prozessoreinheit und speziellen Schaltungen Expired - Lifetime DE69732076T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP26711796 1996-10-08
JP8267117A JPH10112659A (ja) 1996-10-08 1996-10-08 誤り訂正復号装置

Publications (2)

Publication Number Publication Date
DE69732076D1 DE69732076D1 (de) 2005-02-03
DE69732076T2 true DE69732076T2 (de) 2005-12-08

Family

ID=17440311

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69732076T Expired - Lifetime DE69732076T2 (de) 1996-10-08 1997-10-03 Reed-Solomon Dekodierer mit universeller Prozessoreinheit und speziellen Schaltungen

Country Status (4)

Country Link
US (1) US5983389A (de)
EP (1) EP0836285B1 (de)
JP (1) JPH10112659A (de)
DE (1) DE69732076T2 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100260415B1 (ko) * 1997-08-13 2000-07-01 윤종용 고속시리얼에러위치다항식계산회로
US6209114B1 (en) * 1998-05-29 2001-03-27 Texas Instruments Incorporated Efficient hardware implementation of chien search polynomial reduction in reed-solomon decoding
US6412090B1 (en) * 1998-06-18 2002-06-25 Globespanvirata, Inc. Galois field computation system and method
US6637002B1 (en) 1998-10-21 2003-10-21 Maxtor Corporation Decoder for error correcting block codes
JP2000172520A (ja) * 1998-12-04 2000-06-23 Fujitsu Ltd ガロア体演算プロセッサ
US6175941B1 (en) * 1998-12-08 2001-01-16 Lsi Logic Corporation Error correction apparatus and associated method utilizing parellel processing
US7890846B2 (en) * 2000-01-06 2011-02-15 Supertalent Electronics, Inc. Electronic data flash card with Reed Solomon error detection and correction capability
US7962836B1 (en) * 2000-01-06 2011-06-14 Supertalent Electronics, Inc. Electronic data flash card with bose, ray-chaudhuri, hocquenghem (BCH) error detection/correction
US6772385B2 (en) * 2000-01-31 2004-08-03 Sanyo Electric Co., Ltd. Error-correcting device and decoder enabling fast error correction with reduced circuit scale
US8688369B2 (en) 2008-05-30 2014-04-01 Navteq B.V. Data mining in a digital map database to identify blind intersections along roads and enabling precautionary actions in a vehicle
US9182241B2 (en) 2008-05-30 2015-11-10 Here Global B.V. Data mining in a digital map database to identify unusually narrow lanes or roads and enabling precautionary actions in a vehicle
US8698649B2 (en) * 2008-05-30 2014-04-15 Navteq B.V. Data mining in a digital map database to identify decreasing radius of curvature along roads and enabling precautionary actions in a vehicle
US9121716B2 (en) * 2008-05-30 2015-09-01 Here Global B.V. Data mining in a digital map database to identify insufficient superelevation along roads and enabling precautionary actions in a vehicle
US10648817B2 (en) 2008-05-30 2020-05-12 Here Global B.V. Data mining in a digital map database to identify speed changes on upcoming curves along roads and enabling precautionary actions in a vehicle
US8775073B2 (en) 2008-05-30 2014-07-08 Navteq B.V. Data mining in a digital map database to identify insufficient merge lanes along roads and enabling precautionary actions in a vehicle
US9413391B2 (en) * 2014-04-18 2016-08-09 Kabushiki Kaisha Toshiba Chien search device, storage device, and chien search method
CN112468160B (zh) * 2020-12-01 2023-12-29 西安邮电大学 一种基于钱搜索算法和福尼算法的并行电路

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4567594A (en) * 1983-06-07 1986-01-28 Burroughs Corporation Reed-Solomon error detecting and correcting system employing pipelined processors
US4841300A (en) * 1986-06-18 1989-06-20 Mitsubishi Denki K.K. Error correction encoder/decoder
US5325373A (en) * 1986-12-22 1994-06-28 Canon Kabushiki Kaisha Apparatus for encoding and decoding reed-solomon code
JPS63186338A (ja) * 1987-01-28 1988-08-01 Nec Corp 誤り訂正回路
US5212695A (en) * 1989-04-28 1993-05-18 Canon Kabushiki Kaisha Error check or erro correction code coding device
US5170399A (en) * 1989-08-30 1992-12-08 Idaho Research Foundation, Inc. Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack
JPH0458619A (ja) * 1990-06-28 1992-02-25 Canon Inc 誤り訂正システム
DE4140018A1 (de) * 1991-12-04 1993-06-09 Bts Broadcast Television Systems Gmbh, 6100 Darmstadt, De Verfahren und schaltungsanordnung zum decodieren von rs-codierten datensignalen
US5535225A (en) * 1993-10-12 1996-07-09 Hughes Aircraft Company Time domain algebraic encoder/decoder
JP3328093B2 (ja) * 1994-07-12 2002-09-24 三菱電機株式会社 エラー訂正装置
US5689727A (en) * 1994-09-08 1997-11-18 Western Digital Corporation Disk drive with pipelined embedded ECC/EDC controller which provides parallel operand fetching and instruction execution

Also Published As

Publication number Publication date
EP0836285B1 (de) 2004-12-29
DE69732076D1 (de) 2005-02-03
EP0836285A3 (de) 1999-09-15
US5983389A (en) 1999-11-09
EP0836285A2 (de) 1998-04-15
JPH10112659A (ja) 1998-04-28

Similar Documents

Publication Publication Date Title
DE69732076T2 (de) Reed-Solomon Dekodierer mit universeller Prozessoreinheit und speziellen Schaltungen
DE69919199T2 (de) Vorwärtsfehlerkorrektur
DE69834542T2 (de) Hardwareoptimierter reed-solomon-decoder zur decodierung grosser datenblöcke
DE69907566T2 (de) Reed Solomon Kodierungsgerät und Reed Solomon Kodierungsverfahren
DE69728945T2 (de) Reed-Solomon Dekoder
DE4241903C2 (de) Euklidische wechselseitige Divisionsschaltung
DE19747774B4 (de) Reed-Solomon-Decoder zur Verwendung beim verbesserten Fernsehen (ATV)
DE4229666C2 (de) Wechselseitig arbeitende Divisionsschaltung
DE10133595A1 (de) Pufferschaltung, Speicherzugriffsverfahren, Speicherbauelement und Reed-Solomon-Decoder
DE2106314B2 (de) Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks
EP0545498B1 (de) Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen
DE102007038114A1 (de) Fehlerkorrekturschaltung, Halbleiterspeicherelement und Fehlerkorrekturverfahren
DE102009036946A1 (de) Programmierbare Fehlerkorrekturfähigkeit für BCH-Codes
DE102012208711B4 (de) Vorrichtung zum Erzeugen einer Prüfsumme
DE3422461A1 (de) Decoder zum decodieren von codewoertern, die blockweise mittels eines reed-solomon-codes gegen mehrere symbolfehler je block geschuetzt sind, und leseanordnung mit einem derartigen decoder fuer optisch lesbare speicherkoerper
DE10105626B4 (de) Verfahren und System zur Berechnung von zyklischem Blockprüfungscode und Verfahren zum Erkennen eines Fehlers
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
DE3404417A1 (de) Codierer-pruefschaltungsanordnung
DE60309857T2 (de) Methode zur dekodierung von reed-solomon kodes mittels feinentscheidung
DE60311764T2 (de) Verfahren und Vorrichtung zur Dekodierung von Reed-Solomon Kodes
DE2217935B2 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht
DE3138698C2 (de)
DE602004008150T2 (de) Datenfehlerkorrektur mittels Redundanzblöcke
EP1252734A1 (de) Verfahren und vorrichtung zur erzeugung von ovsf-codeworten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition