DE3784459T2 - Arithmetische und logische einheit fuer elemente von galois-feldern. - Google Patents

Arithmetische und logische einheit fuer elemente von galois-feldern.

Info

Publication number
DE3784459T2
DE3784459T2 DE8787118248T DE3784459T DE3784459T2 DE 3784459 T2 DE3784459 T2 DE 3784459T2 DE 8787118248 T DE8787118248 T DE 8787118248T DE 3784459 T DE3784459 T DE 3784459T DE 3784459 T2 DE3784459 T2 DE 3784459T2
Authority
DE
Germany
Prior art keywords
error
coefficients
multipliers
error location
galois field
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
DE8787118248T
Other languages
English (en)
Other versions
DE3784459D1 (de
Inventor
Katsumi Murai
Makoto Usui
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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
Priority claimed from JP61294031A external-priority patent/JPH0828670B2/ja
Priority claimed from JP62151863A external-priority patent/JPH0834440B2/ja
Priority claimed from JP62151861A external-priority patent/JPH0834439B2/ja
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE3784459D1 publication Critical patent/DE3784459D1/de
Publication of DE3784459T2 publication Critical patent/DE3784459T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Description

    GRUNDLAGEN DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf die logische Galois-Feld-Arithmetik-Einheit einer Vorrichtung zum Erkennen und Korrigieren von Codefehlern, wie sie bei der Aufnahme und Wiedergabe von Daten auf einer optischen Platte verwendet wird.
  • Beschreibung des einschlägigen Stands der Technik
  • Vor kurzem sind bedeutende Entwicklungsfortschritte bei Datenaufnahme- und Datenwiedergabegeräten, die eine optische Platte verwenden, erzielt worden. Obwohl der optische Plattenspeicher im Vergleich zu einer magnetischen Platte normalerweise die Aufnahme einer größeren Datenmenge erlaubt, ist ein Nachteil des optischen Plattenspeichers als Aufnahmemedium, daß sich eine höhere unkorrigierte Fehlerrate ergibt.
  • Um diese Schwierigkeit zu überwinden, wird gewöhnlich eine Methode verwendet, bei der Fehlerkorrekturcodes bei der Aufnahme der Daten zu den Daten hinzugefügt werden, so daß sowohl die Daten als auch die Fehlerkorrekturcodes auf einer optischen Platte aufgezeichnet werden. Ein Fehler in den Daten wird dann durch die Verwendung der Fehlerkorrekturcodes erkannt und korrigiert, wenn die aufgenommenen Daten wieder abgespielt werden. Der Reed-Solomon-Code mit einem Hamming-Abstand d = ungefähr 17 hat als ein solcher Fehlerkorrekturcode heutzutage Aufmerksamkeit erregt.
  • Um den Reed-Solomon-Code zu dekodieren, werden zuerst die Syndrome eines empfangenen Worts berechnet, und dann gelangt man von dem Syndrom zu einem Fehlerstellenpolynom σ (x) und einem Fehlerwertpolynom Ω (x). Schließlich werden eine Fehlerstelle und ein Fehlerwert unter Verwendung dieser Polynome geschätzt, um eine Korrektur zu erreichen. Jedoch wird wegen des großen Hamming-Abstandes der Decodierungsvorgang kompliziert und nimmt deshalb viel Zeit in Anspruch. Überdies ist eine umfangreiche Schaltung nötig, um den Decodierungsvorgang in Hardware zu implementieren.
  • Weil die Berechnung des Syndroms die Decodierungsgeschwindigkeit erheblich beeinflußt, wird oftmals Hardware zur parallelen Berechnung verwendet. Falls eine schnelle Berechnung besonders benötigt wird, dann werden auch die anderen Verarbeitungsschritte zwar nicht in Form eines solchen reinen Hardwaresystems ausgeführt, aber durch eine Lösung, die Mikroprogrammierung verwendet.
  • In diesem Fall werden für die Berechnung des Fehlerstellenpolynoms und des Fehlerwertpolynoms Algorithmen wie zum Beispiel die Methode von Barlekamp und Massey oder der Euklidische Algorithmus (der wechselseitigen Teilung) verwendet. Um Fehlerstellen aus dem Fehlerstellenpolynom zu erhalten, wird der Algorithmus von Chien verwendet, in dem alle möglichen Fehlerstellen in das Fehlerstellenpolynom eingesetzt werden. Den Fehlerwert erhält man, indem man eine Differenzierungsberechnung des Fehlerstellenpolynoms und eine Berechnung und eine Division des Fehlerwertpolynoms ausführt.
  • Der Algorithmus von Chien, die Berechnung der Differenzierung des Fehlerstellenpolynoms und die Berechnung des Fehlerwertpolynoms sind alle mit Werten von Polynomen verbunden. Bisher hat man als Methode, um Werte eines Polynoms zu errechnen, das sogenannte Hornerschema benutzt, durch das die Berechnung zu einer wiederholten Berechnung von Summen von Produkten reduziert wird. (Siehe zum Beispiel "High Speed Decoding of Reed-Solomon Codes" beschrieben in U.S.P. 4.142.174 2/1979.)
  • Unter Bezugnahme auf die beiliegenden Zeichnungen wird nun eine konventionelle logische Galois-Feld-Arithmetik-Einheit beschrieben werden. Die Zeichnungen 4 und 5 zeigen Ausschnitte einer logischen Galois-Feld-Arithmetik-Einheit, die in der konventionellen Code-Korrektur-Verarbeitung verwendet wird. (Siehe zum Beispiel W. Wesley Peterson et al.: "Error-Correcting Codes", S. 180-182, The MIT Press.) In Zeichnung 4 enthält die Zusammenstellung eine 0-Element-Entscheidungsschaltung 11, Eingabe-Pipeline-Register 12, 13, 34, einen Speicher 28, einen Galois-Feld-Multiplizier-Einheit 29, eine Galois-Feld Additionsschaltung (logische Exklusiv-ODER Schaltung) 30, Schalter aus logischen Gattern 31, 32 und eine Potenzierungsschaltung, die eine Potenz eines primitiven Elements α erzeugt (Stellen- Erzeugungsschaltung) 33. Die arithmetische Operation wird in GF (2r) durchgeführt.
  • Zuerst wird das Interleaving eines empfangenen Worts rückgängig gemacht und das sich ergebende Wort in eine Codefehler-Erkennungsschaltung eingegeben, genauer gesagt in eine Syndrom-Berechnungsschaltung. Wenn alle so erhaltenen Syndrome von 0 verschieden sind, wird ein Fehler vermutet, und die Syndrome werden an die Galois-Arithmetik-Einheit weitergegeben, wo sie eine Schätzung der Anzahl der Fehler und Berechnungen der Koeffizienten des Fehlerstellenpolynoms bewirken. Basierend auf den Ergebnissen werden dadurch die Fehlerstellen berechnet.
  • Der Speicher 28 erhält die Syndrome, deren Anzahl sich als (Hamming-Abstand -1) ergibt, von der Syndrom-Berechnungsschaltung. Dann werden die Anzahl der Fehler und die t + 1 Koeffizienten der jeweiligen Grade des Fehlerstellenpolynoms berechnet und dann abgespeichert, wozu der Multiplizierer 29, der Addierer 30, eine logische Kontrollschaltung, die ein Mikroprogramm verwendet (nicht gezeigt), ein Invertierungsspeicher und dergleichen dienen. Danach wird die Wurzel des Fehlerstellenpolynoms nach der Methode von Chien berechnet, wobei man die selbe logische Galois-Arithmetik-Einheit verwendet.
  • Um die Wurzel des Fehlerstellenpolynoms zu erhalten, wobei wir der Einfachheit halber annehmen, daß zwei Fehler aufgetreten sind, wird der Schalter aus logischen Gattern 31 auf die Seite des Addierers 30 der logischen Galois-Arithmetik- Einheit umgelegt, der Schalter aus logischen Gattern 32 wird auf die Seite der Stellenwert-Erzeugungsschaltung 33 gelegt, die Koeffizienten k&sub2;, k&sub1;, k&sub0;, k&sub2;, k&sub1;, k&sub0; und so weiter werden nacheinander an Rc 34 zugewiesen, und 0, α&sup0;, α&sup0;, 0, α¹, α¹ und so weiter werden nacheinander an Ra 12 zugewiesen. Die Ausgaben des Addierers 30 nach Vollendung der Rechnung in der Pipeline werden wie folgt beschrieben:
  • k&sub2;+ *0
  • k&sub1;+(k&sub2;)*α&sup0;
  • k&sub0;+(k&sub1;+k&sub2;*α&sup0;)*α&sup0;
  • k&sub2;+ *0
  • k&sub1;+(k&sub2;)*α¹
  • k&sub0;+(k&sub1;+k&sub2;*α¹)*α¹.
  • Insbesondere sollte die Wurzel des Fehlerstellenpolynoms für jede dritte Operation beurteilt werden. Übrigens werden die obigen Ausdrücke alle in einem Galois-Feld ausgeführt, in dem die Operatoren + und * eine Addition beziehungsweise Multiplikation bezeichnen und e eine undefinierte Zahl bedeutet. Zeichnung 5 zeigt eine interne Struktur der Multiplikationsschaltung 29. Diese Anordnung enthält die Multiplizierer 1-8, die feste Koeffizienten eines Galois-Feldes multiplizieren, und UND-Schaltungen 9, welche die Ausgabe jedes Festkoeffizienten- Multiplizierers mit der 0-Quelle multiplizieren, wenn das entsprechende Bit des Pipeline-Registers 12 den Wert 0 hat; in anderen Worten sind die UND-Schaltungen 9 jeweils für jedes Bit des Ausgangs der Festkoeffizienten-Multiplizierer vorgesehen. Die Referenzziffer 10 kennzeichnet eine Paritäts-Erzeugungsschaltung, welche eine Entscheidung über die ungerade/gerade Parität für jeden Grad des binären Vektorausdrucks aller der als Ergebnis der Multiplikation erhaltenen Symbole bewirkt.
  • Jedoch werden in der obigen Vorrichtung die Grade des Fehlerstellenpolynoms beziehungsweise des Fehlerwertpolynoms größer, wenn die Anzahl der aufgetretenen Fehler zunimmt. Das führt zu dem Problem, daß die Menge der Berechnungen von Produktsummen, um die Werte der Polynome zu erhalten, sich vergrößert, und so die Decodierungszeit länger wird.
  • Betrachten wir etwa in einem Beispiel mit der Codelänge n = 130 und der Fehleranzahl t = 8 die Berechnungsschritte derjenigen Produktsummenberechnung, die zur Bestimmung der Fehlerstellen X0 bis X7 aus dem Fehlerstellenpolynom σ (X) notwendig ist.
  • Gemäß dem Algorithmus von Chien werden die möglichen Fehlerstellen der Reihe nach in das Fehlerstellenpolynom eingesetzt, um ein Ergebnis zu erhalten, für das der Wert des Polynoms 0 ist. Weil die Anzahl der Fehler t ist, ist das Polynom σ (X) ein Polynom t-ten Grades, und man braucht t + 1 Schritte, um den Wert des Ausdrucks zu berechnen, indem man eine Position xi jedes Fehlers in das Fehlerstellenpolynom einsetzt. Weiterhin muß man im schlechtesten Fall die Fehlerstellen so oft prüfen, wie es Codes gibt, also werden insgesamt (t + 1) * n = 9 * 130 = 1170 Schritte benötigt.
  • Unter der Annahme, daß das Fehlerstellenpolynom und das Fehlerwertpolynom Ω (X) beziehungsweise σ' (X) sind, kann auf ähnliche Weise der Fehlerwert ei berechnet werden aus
  • ei = -αi·Ω(αi·σ'(αi)&supmin;¹.
  • Weil Ω (αi) und σ' (αi) als Polynomberechnungen ausgewertet werden müssen, ist es jedoch offensichtlich, daß die Anzahl der Produktsummenberechnungen mit der Anzahl der aufgetretenen Fehler zunimmt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Wenn der Reed-Solomon-Code für die Aufzeichnung und Wiedergabe von Daten auf einer optischen Platte verwendet wird, muß im Normalfall die Decodierungszeit, genauer, die Menge von für die Decodierung notwendigen Berechnungen, minimiert werden, um in der Praxis Codes mit hoher Leistung zu verwenden, denn die Decodierungszeit ist wegen der Notwendigkeit der Datenübertragung in Echtzeit begrenzt. Weiterhin muß der Hardwareaufwand hinreichend in einen praktikablen Bereich reduziert werden. Die Erfindung ist in Anspruch 1 definiert. Parallelverarbeitung und eine gemeinsam verwendete Multiplizierer-Hardware werden für die arithmetischen Berechnungen eingesetzt, um die Wurzel des Fehlerstellenpolynoms zu erhalten; weiterhin wird eine gleichzeitige Berechnung für die Differenzierungsberechnung und für die Berechnung des Fehlerwertes ausgeführt.
  • Um in einem Galois-Feld GF (2r) zu multiplizieren, werden feste Koeffizienten von α&sup0; bis αr-1 mit einem gemeinsamen 1-Symbol multipliziert, so daß man Ergebniswerte erreicht, und wenn eine Komponente der Ordnung eines mit einem Multiplikandensymbol assoziierten binären Vektors 0 ist, dann wird das Ergebnis der Multiplikation mit dem der Komponente der Ordnung entsprechenden festen Multiplikator als 0 angenommen, so daß man eine Exklusiv-ODER-Operation auf den so erhaltenen Symbolen ausführt, um somit die Multiplikation in einem Galois- Feld GF (2r) zu bewerkstelligen.
  • Indem man dieselbe Festmultiplikatorschaltung verwendet, und indem man in diese die Ausgaben eines Speichers eingibt, der die Ergebnisse der Berechnungen von Koeffizientwerten vom Grad 0 bis zum Grad t des Fehlerstellenpolynoms speichert, werden feste Koeffizienten von α&sup0; bis αt mit den Ausgaben des Speichers multipliziert, und die Ergebnisse der Multiplikationen werden für jeden Grad zurückgeführt, und ein Exklusiv-ODER der t+1 Symbole, die sich aus einer Gruppe von Festkoeffizient-Multiplizierern ergeben haben, wird berechnet, wodurch man ein Ergebnis für ein Symbol erhält, was es ermöglicht, ein Berechnungsergebnis zu erhalten, in dem die Fehlerstellen in das Fehlerstellenpolynom eingesetzt sind. Die Fehlerstellenzahl ist gleich der Anzahl der Rückkopplungen. Bei dieser Operation brauchen die Multiplikanden nur auf Register gesetzt werden, so daß deren binäre Vektoren nur aus Einsen bestehen.
  • Weiter braucht man, wenn die Anzahl größer als r-1 ist, eine Gruppe von Festkoeffizient-Multiplizierern für den Grad und größere Grade nur für Symbole zur Verfügung stellen, die ausgegeben werden von einer Gruppe von Speicherelementen, die Zwischenergebnisse speichern, welche jedem Grad in der Berechnung, die in das Fehlerstellenpolynom die entsprechenden Stellen einsetzt, zugeordnet sind.
  • Überdies ist die Fehlerstelle eine Lösung des Fehlerstellenpolynoms, wenn das Ergebnis einer Berechnung, die in das Fehlerstellenpolynom die Fehlerstelle einsetzt, ein 0-Element ist. Wenn wir hier die Tatsache ausnützen, daß die Komponente jedes Grades des Fehlerstellenpolynoms vor der Berechnung der nächsten Fehlerstelle bestimmt worden ist, dann kann die Fehlerstelle in ein Differenzpolynom eingesetzt werden, das sich aus einer auf das Fehlerstellenpolynom angewandten Differenzierungsrechnung ergibt, wobei man den Wert eines Polynoms erhält. Bei der Differenzierung eines Polynoms in einem Galois-Feld ergibt ein Koeffizient eines vor der Differenzierung geraden Grades nach der Differenzierung 0, und ein Koeffizient eines vor der Differenzierung ungeraden Grades wird als Ergebnis der Differenzierung ein Koeffizient eines Terms, der den nächstniedrigeren Grad hat. Das heißt, die Differenzierung von
  • σ (X) = k&sub8;X&sup8; + k&sub7;X&sup7; + k&sub6;X&sup6; + k&sub5;X&sup5; + k&sub4;X&sup4; + k&sub3;X³ + k&sub2;X² + k&sub1;X¹ + k&sub0;
  • ergibt
  • σ' (X) = k&sub7;X&sup6; + k&sub5;X&sup4; + k&sub3;X² + k&sub1;.
  • Unter Verwendung von X·σ'(X) = k&sub7;X&sup7; + k&sub5;X&sup5; + k&sub3;X³ + k&sub1;X¹ kann X·σ'(X) mittels derselben Hardwarezusammenstellung ohne weiteres berechnet werden.
  • Anders gesagt werden die Ausgaben eines Speichers, der die Berechnungsergebnisse für die Grade 0 bis t des Fehlerstellenpolynoms speichert, jeweils mit festen Koeffizienten von α&sup0; bis αt multipliziert, und für die Ergebnisse der Multiplikationen werden die Bitkomponenten, die einer geraden Potenz von α in den Ausgaben der Gruppe der Festkoeffizienten- Multiplizierer entsprechen, auf 0 gesetzt, wenn ein Symbol als Multiplikand ausgewählt wird, so daß der binäre Vektor 0 an den geraden Stellen (relativ zur geringwertigsten Stelle) hat und 1 an den ungeraden Stellen. Dementsprechend kann man, indem man die Ergebnisse der Multiplikationen derjenigen Festkoeffizienten-Multiplizierer, die nur einer ungeraden Potenz von α zugeordnet sind, mit Exklusiv-ODER verknüpft, das Ergebnis X·σ'(X) des Vorgangs, daß die Fehlerstelle in dasjenige Polynom eingesetzt wird, das durch eine Differenzierung des Fehlerstellenpolynoms errechnet wird, einfach erreichen, ohne eine besondere Berechnung auszuführen. Weil der so erzielte Wert für das differenzierte Polynom nicht mit einer Berechnung verknüpft ist, die den Grad der Variable des Polynoms während dessen Differenzierung um eins erniedrigt, enthält der Wert im Vergleich mit dem Wert des tatsächlich differenzierten Polynoms eine überschüssige Multiplikation um einen Grad. Dies kann jedoch im Vorgang der Berechnung des Fehlerwerts bereinigt werden, zum Beispiel, indem man eine überschüssige Multiplikation der Fehlerstelle mit dem Fehlerwert ausführt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird aus der folgenden detaillierten Beschreibung zusammen mit den begleitenden Zeichnungen einleuchten, in denen:
  • Zeichnungen 1A und 1B Flußdiagramme sind, die eine erste Verkörperung gemäß der vorliegenden Erfindung illustrieren;
  • Zeichnung 1C ein Blockschaltbild ist, das eine Zusammenstellung einer logischen Galois-Feld-Arithmetik-Einheit zeigt, in der die erste Verkörperung der vorliegenden Erfindung angewandt ist;
  • Zeichnungen 2A und 2B Flußdiagramme sind, die eine zweite Verkörperung gemäß der vorliegenden Erfindung illustrieren;
  • Zeichnung 2C ein Blockschaltbild ist, das eine Zusammenstellung einer logischen Galois-Feld-Arithmetik-Einheit zeigt, in der die zweite Verkörperung der vorliegenden Erfindung angewandt ist;
  • Zeichnung 3 ein Blockschaltbild ist, das eine Zusammenstellung einer logischen Galois-Feld-Arithmetik-Einheit zeigt, in der eine dritte Verkörperung der vorliegenden Erfindung angewandt ist;
  • Zeichnung 4 ein Blockschaltbild ist, das eine Zusammenstellung einer logischen Galois-Feld-Arithmetik-Einheit eines Beispiels nach dem vorbekannten Stand der Technik zeigt;
  • Zeichnung 5 ein Blockschaltbild ist, das eine Zusammenstellung einer logischen Galois-Feld-Multiplizierschaltung eines Beispiels nach dem vorbekannten Stand der Technik zeigt.
  • BESCHREIBUNG DER BEVORZUGTEN VERKÖRPERUNGEN
  • Eine Verkörperung einer logischen Galois-Feld- Arithmetik-Einheit gemäß der vorliegenden Erfindung wird nun beschrieben werden, wobei wir auf die begleitenden Zeichnungen verweisen. Die Zeichnungen 1A, 1B und 1C zeigen
  • Flußdiagramme beziehungsweise ein Blockschaltbild einer ersten Verkörperung der logischen Galois-Feld-Arithmetik-Einheit gemäß der vorliegenden Erfindung.
  • Das Gefüge in Zeichnung 1C enthält Festkoeffizienten- Multiplizierer 1-8, UND-Schaltungen 9, Paritäts-Erzeugungsschaltungen 10 und Pipeline-Register 12, 13. Diese Komponenten sind die gleichen wie in Zeichnung 5. Weiter enthält die Zusammenstellung eine 0-Element-Entscheidungsschaltung 11, Schalter aus logischen Gattern 14, 15 und 36, und Register 16-18, um Zwischenwerte zu speichern, welche man erhält, indem man die eingegebenen Koeffizientenwerte des Fehlerstellenpolynoms mit Stellenwerten des Fehlerstellenpolynoms multipliziert. Referenznummer 35 kennzeichnet eine Schaltung zur Erzeugung eines festen 8-bit-Symbols, die eine binäre Konstante 00000010 erzeugt, während Referenznummer 37 ein Pipeline-Register kennzeichnet. Die arithmetischen Operationen werden in GF (2&sup8;) ausgeführt, und die Anzahl der Fehler wird in der ersten Verkörperung all höchstens zwei angenommen. Unter Bezugnahme auf die Zeichnungen 1A, 1B und 1C wird nun die Funktionsweise der wie in der obigen Beschreibung beschaffenen logischen Galois- Feld-Arithmetik-Einheit beschrieben werden. Wenn in einem Galois-Feld die Multiplikation, Division und Addition für ein Syndrom ausgeführt werden, um die Anzahl der Fehler und den Wert jedes Koeffizienten des Fehlerstellenpolynoms zu erhalten, dann wird die Multiplikation so ausgeführt, daß, wenn ein Symbol als Multiplikand eingegeben wird, feste Koeffizienten α&sup0; bis αr-1, die jeweils ein Potenz eines primitiven Elements α von GF (2r) und eine Potenz von (r-1) davon sind, auf übliche Weise multipliziert werden, und jedes der Ergebnisse weiterhin mit 0 multipliziert wird, wenn das entsprechende Bit r-ter Ordnung eines binären Vektors des Multiplikandensymbols 0 ist, und ein Exklusiv-ODER der Symbole der so erhaltenen Multiplikationsergebnisse wird ausgeführt, womit die Multiplikation eines Symbols abgeschlossen ist. Wenn der Schalter aus logischen Gattern 15 auf die Seite der Eingabe-Pipeline-Register 13 von Zeichnung 1C umgeschaltet wird, dann arbeitet die logische Galois-Feld-Arithmetik-Einheit dieser Verkörperung ähnlich wie die Multiplizierschaltung von Zeichnung 5. Die Division und Addition müssen bewirkt werden, indem man Funktionen anderer Einheiten mit einbezieht, die in dieser Verkörperung nicht gezeigt werden; allerdings kann eine solche Division implementiert werden, indem man ein ROM, das inverse Elemente enthält, mit der Multiplizierschaltung dieser Verkörperung kombiniert. Nach den obigen Operationen wird der Wert des für jeden Grad des Fehlerstellenpolynoms erhaltenen Koeffizienten in den Registern 16-18 gespeichert, indem man die Schalter aus logischen Gattern 14 auf die jeweilige Eingabeseite legt (nicht auf die Rückkopplungsseite) . Die Schalter aus logischen Gattern 15 wechseln jeweils zwischen den Ausgaben der Pipeline-Register 13, die das Multiplikandensymbol für die Funktion der Multiplizierschaltung speichern, und den Ausgaben der Register 16-18, die rückgekoppelte Werte derjenigen Zwischenwerte speichern, die man erhält, indem man den Stellenwert des Fehlerstellenpolynoms für jeden Grad durch eine mit den Festkoeffizienten von α&sup0; bis α² ausgeführte Multiplikation einsetzt. Indem man den Schalter aus logischen Gattern 14 auf die Rückkopplungsseite umlegt, wird der Rückkopplungsvorgang so oft wiederholt ausgeführt, wie es der Codelänge entsprechende Schritte gibt. Während dieses Vorganges wird das Eingabe-Pipeline-Register 13 mit 0 belegt, und alle Bits des Eingabe-Pipeline-Registers 12 werden auf 1 gesetzt, so daß man den Einfluß- von Termen unterdrückt, die einen Grad gleich oder größer als α³ haben. Diese Verarbeitung wird durch Parallelverarbeitung mit ziemlich hoher Geschwindigkeit ausgeführt, und die 0-Element-Entscheidungsschaltung 11 bestimmt, ob das von der Paritäts- Erzeugungsschaltung 37 ausgegebene Symbol ein 0-Element ist, wobei die Wurzel bestimmt wird, was es ermöglicht, die durch (Zahl der Rückkopplungen + 1) dargestellte Fehlerstelle als exponentiellen Ausdruck in einem Galois-Feld zu erhalten. Beiläufig bemerkt kann, wenn die Wurzel des Fehlerstellenpolynoms α&sup0; ist, die Entscheidung über die Wurzel nicht von der 0-Element-Erkennungsschaltung 11 getroffen werden, weil die 0-Element-Erkennungsschaltung 11 nach dem Festkoeffizient- Multiplizierer gelegen ist. In diesem Fall kann jedoch, weil der Umstand, daß das Exklusiv-ODER der Koeffizienten jedes Grades des Fehlerstellenpolynoms 0 ergibt, anzeigt, daß die Wurzel α&sup0; ist, die Wurzel α&sup0; bestätigt werden, indem man zum Beispiel das Exklusiv-ODER gleichzeitig mit dem Vorgang berechnet, die Koeffizientenwerte in den Registern 16-18 abzuspeichern. Wenn die Wurzel des Fehlerstellenpolynoms durch die 0-Element- Entscheidungsschaltung 11 während des Rückkopplungsschrittes bestimmt ist, wird der Schalter aus logischen Gattern 36 auf die Seite des Festmuster-Erzeugers 35 umgelegt, bevor der nächste Rückkopplungsschritt eingeleitet wird. Weil die Rückkopplungswert-Register 16-18 mit den jeweiligen Koeffizienten eines Ausdrucks geladen sind, den man erhält, indem man die Fehlerstellen in das Fehlerstellenpolynom einsetzt, und weil der Festmuster-Erzeuger 36 ein Symbol erzeugt, das den binären Wert 0000010 enthält, erhält die Paritäts-Erzeugungsschaltung 10 nur einen Term vom Grad α¹. Das Pipeline-Register 37 wird mit dem Wert eines Ausdrucks geladen, den man erhält, indem man die Fehlerstellen in ein Polynom einsetzt, das man durch die Differenzierung des Fehlerstellenpolynoms erhält. Indem man den Wert dieses Ausdrucks in einer später zu bewerkstelligenden Berechnung, um den Fehlerwert zu erhalten, benutzt, kann der Berechnungsaufwand für das Polynom in der Berechnung der Fehlerstellen vermindert werden. Um die Erklärung zu vereinfachen, sei die Anzahl der Fehler in diesem Beispiel höchstens zwei. Wenn die Anzahl der auftretenden Fehler besonders zunimmt und die Anzahl der Grade des Fehlerstellenpolynoms größer wird, wenn also für die Berechnung auf herkömmliche Weise mehr Zeit benötigt wird, wird der Effekt der Reduzierung des Berechnungsaufwandes größer. Wie oben beschrieben, werden in dieser Verkörperung die Teilprodukte α&sup0; bis αr-1, die man von den Festkoeffizient-Multiplizierschaltungen erhält, zu der Multiplizierschaltung von Zeichnung 5 zurückgekoppelt, so daß die Zwischenergebnisse für jeden Schritt in den dafür vorgesehenen Registern gespeichert werden. Ferner sind zusätzlich eingefügt eine logische Schaltung zum Erkennen des Falles, daß ein Ausgabesymbol, das einer bitweisen Parität zugeordnet ist, ein 0-Element ist, eine logische Schaltung, die ein festes Symbol erzeugt, und eine logische Schaltung, um zwischen Funktion zu wechseln, unter denen die übliche Multiplikation, die Berechnung der Wurzel des Fehlerstellenpolynoms, und die Berechnung des Wertes eines Polynoms, das sich aus der Differenzierung des Fehlerstellenpolynoms ergibt, sind, womit man gleichzeitig eine effiziente Ausnützung und eine hohe Verarbeitungsgeschwindigkeit der Hardwaremittel verwirklicht.
  • Beiläufig erwähnt, brauchen die Register 16-18 als Speicherelemente in der ersten Verkörperung der vorliegenden Erfindung nicht ausschließlich dafür verwendet werden; es können nämlich Speicher verwendet werden, die für den Vorgang benutzt werden, die Koeffizienten des Fehlerstellenpolynoms zu berechnen. Weiterhin braucht bei dem Vorgang der Berechnung der Wurzel des Fehlerstellenpolynoms der Rückkopplungswert nicht an der gleichen Stelle berechnet zu werden.
  • Als nächstes wird, unter Bezugnahme auf die Zeichnungen, eine Beschreibung der zweiten Verkörperung der vorliegenden Erfindung gegeben werden. Zeichnung 2C ist ein Blockschaltbild, das eine logische Galois-Arithmetik-Einheit als zweite Verkörperung gemäß der vorliegenden Erfindung zeigt. Das Gefüge in Zeichnung 2 enthält Festkoeffizienten-Multiplizierer 1-8, UND-Schaltungen 9, Paritäts-Erzeugungsschaltungen 10 und Pipeline-Register 12, 13. Diese Komponenten sind die gleichen wie in Zeichnung 5. Weiter enthält das System eine 0-Element- Entscheidungsschaltung 11, Schalter aus logischen Gattern 14, 15 und 36, und Register 16-18, um Zwischenwerte zu speichern, welche man erhält, indem man für die jeweiligen Grade die eingegebenen Koeffizientenwerte des Fehlerstellenpolynoms mit dessen Stellenwerten multipliziert. Diese Elemente sind die gleichen wie die von Zeichnung 1C. Die Referenznummern 19-24 sind Register, um darin Zwischenwerte zu speichern, die sich aus einer Multiplikation ergeben, die zwischen eingegebenen Koeffizientenwerten des Fehlerstellenpolynoms und dessen Stellenwerten für die jeweiligen Grade ergeben, Referenznummer 25 bezeichnet einen Festkoeffizienten-Multiplizierer, der einen festen Koeffizient von α&sup8; hat, Referenznummer 26 bezeichnet einen logischen Schalter, der zwischen den Niveaus L und H umschaltet, Referenznummer 27 bezeichnet eine UND-Schaltung. Referenznummer 35 ist eine 8-Bit Festsymbol-Erzeugungsschaltung, um eine binäre Konstante 10101010 zu erzeugen, während Referenznummer 37 ein Pipeline-Register bezeichnet. Die Berechnungen werden in GF (2&sup8;) ausgeführt. Weil die Anzahl der Fehler in der zweiten Verkörperung höchstens acht ist, wird die Anzahl der Speicherelemente vergrößert, und weil die Anzahl der Fehler r-1 übersteigt, werden Festkoeffizienten-Multiplizierer, die der Berechnung für die Grade gleich oder größer als zugeordnet sind, speziell zu diesem Zweck hinzugefügt. Unter Bezugnahme auf die Zeichnungen 2A, 2B und 2C wird eine logische Galois-Arithmetik-Einheit beschrieben werden, die wie oben beschrieben aufgebaut ist. Wenn man die Anzahl der Fehler und die Werte der Koeffizienten jedes Grades des Fehlerstellenpolynoms errechnet, wird die Multiplikation im Galois-Feld auf die gleiche Weise ausgeführt wie im Fall von Zeichnung 5; jedoch wird der logische Schalter 26 auf das Niveau L gelegt, um eine Beeinflussung durch den Term des Multiplizierers, der α&sup8; zugeordnet ist, zu beseitigen. In dieser Situation werden alle Ausgaben der UND-Schaltung 27 auf das Niveau L gesetzt, und daher beeinflußt die Ausgabe des Multiplizierers 25, der α&sup8; zugeordnet ist, das Ergebnis der Multiplikation nicht. Die Berechnung des Fehlerstellenpolynoms wird genauso vorgenommen wie für den mit den Zeichnungen 1A, 1B und 1C verbundenen Fall; jedoch wird eine Initialisierung für das Fehlerstellenpolynom abhängig von der Anzahl der Fehler höchstens bis zum achten Grad vorgenommen. Für den Fall, daß die Anzahl der Fehler höchstens sieben ist, können die Berechnung der Wurzel des Fehlerstellenpolynoms und die Berechnung des Wertes eines durch Differenzierung des Fehlerstellenpolynoms erhaltenen Polynoms ohne Schwierigkeiten durch eine Initialisierung ausgeführt werden, die das 0-Element als Inhalt des dem unbenutzten Grad zugeordneten Registers bestimmt. Nachdem die Fehlerstellen gemäß der Methode von Chien bestimmt worden sind, kann auf diese Weise der Wert eines durch Differenzierung des Fehlerstellenpolynoms erhaltenen Ausdrucks wieder unter Verwendung der Multiplizierschaltung berechnet werden.
  • Zusätzlich kann, wenn die Vorrichtung als ein gewöhnlicher Galois-Feld-Multiplizierer betrieben wird, das 0-Element dem Register 24 zugewiesen werden, was den logischen Schalter 26 ersetzt.
  • Beiläufig erwähnt, kann man gemäß der obigen Methode die Fehlerstelle α&sup0; nicht als Rückkopplungszählwert erhalten; daher müssen alle Koeffizienten der Fehlerstellengleichung mit Exklusiv-ODER verknüpft und mit 0 verglichen werden, so daß man über die Fehlerstellenzahlen entscheidet, die α&sup0; zugeordnet sind.
  • Als nächstes wird, unter Bezugnahme auf die Zeichnungen, eine Beschreibung der dritten Verkörperung der vorliegenden Erfindung gegeben werden. Zeichnung 3 ist ein Blockschaltbild, das die Zusammenstellung einer logischen Galois-Feld-Arithmetik- Einheit als dritte Verkörperung gemäß der vorliegenden Erfindung zeigt; bestehend aus Festkoeffizienten-Multiplizierern 2-8, Paritäts-Erzeugungsschaltungen 10, einer 0-Element-Entscheidungsschaltung 11, Pipeline-Registern 12 und 13, einem Schalter aus logischen Gattern 36, Registern 16-24, um die Zwischenwerte zu speichern, welche sich aus Multiplikationen ergeben, die zwischen den Koeffizienten des Fehlerstellenpolynoms und den den jeweiligen Graden entsprechenden Stellenwerten des Fehlerstellenpolynoms als Eingabewerte ausgeführt werden, einem Festkoeffizient-Multiplizierer 25 mit dem festen Koeffizienten α&sup8;, einer 8-Bit Festsymbol-Erzeugungsschaltung 35, die eine binäre Konstante 10101010 erzeugt, Pipeline-Registern 37 und 41, einem Acht-Tupel-Wähler 42 und Acht-Tupel-Exklusiv-ODER-Gattern 40. Diese Elemente sind die gleichen wie in der zweiten Verkörperung. Die Referenznummern 38 beziehungsweise 39 bezeichnen Nicht-UND-Schaltungen. Die Berechnungen werden in GF (2&sup8;) ausgeführt, und es wird in dieser Verkörperung angenommen, daß die Anzahl der Fehler höchstens acht ist.
  • In dieser Verkörperung wird der Vorgang, die Pipeline- Register 16-24 auf die Werte der Koeffizienten eines Polynoms zu setzen, in einer Weise ausgeführt, in der die Werte durch eine Rückkopplungsschleife übermittelt werden, wobei sie das Pipeline-Register 13, die Nicht-UND-Schaltungen 38, die Multiplizierer 2-8 und 25 und die Nicht-UND-Schaltungen 39 in dieser Reihenfolge durchlaufen. Durch Anwendung dieser Methode ist es möglich, die jeweils vor den Pipeline-Registern 16-24 und den Multiplizierern 2-8 befindlichen Schalter wegzulassen. In einer hochintegrierten Schaltung, insbesondere in einem Gate Array, ist die Zellenfläche einer Nicht-UND-Schaltung kleiner als die eines logischen Schalters, und daher erlaubt es die vorliegende Verkörperung, eine hochintegrierte Schaltung mit höherer Integrationsdichte zusammenzustellen.
  • Für den Betrieb als ein gewöhnlicher Galois-Feld- Multiplizierer wird die folgende Initialisierung benötigt.
  • 1) Das Pipeline-Register 12 wird zunächst gelöscht, und die Auswahllogik 26 wählt das Niveau L aus. Als Ergebnis werden alle Ausgaben der Nicht-UND-Schaltungen 39 auf das Niveau H gesetzt.
  • 2) Taktsignale werden an die Pipeline-Register 16-24 gelegt, so daß alle Ausgaben der Pipeline-Register 16-24 auf das Niveau H gesetzt werden.
  • 3) Die Pipeline-Register 12 und 13 werden beide mit einem Multiplikator beziehungsweise Multiplikand geladen.
  • 4) Man erhält das Ergebnis der Multiplikation im Pipeline- Register 37.
  • Beiläufig bemerkt, kann man in der obigen Schaltung die Fehlerstellen α&sup0; und α¹ nicht als Rückkopplungszählwerte erhalten; daher müssen die Fehlerstellen auf andere Weise bestimmt werden. Beispielsweise wird über die Fehlerstelle α¹ wie folgt entschieden. Wenn die Koeffizienten des Fehlerstellenpolynoms über die Rückkopplungsschleife, wobei sie die Multiplizierer passieren, in Speicherzellen gespeichert werden, wird durch die Auswahlschaltung 36 eine zweite Eingabe eines Eins-Symbols zur Verfügung gestellt, wobei diese Eingabe entsprechend den jeweiligen Graden Einsen enthält, und die den jeweiligen Graden zugeordnete Ausgaben der Multiplizierer werden addiert, um das Ergebnis der Addition mit 0 zu vergleichen.
  • Nehmen wir an, die Fehlerstellengleichung lautet
  • σ(X) = k&sub2;X² + k&sub1;X + k&sub0;.
  • Unter dieser Bedingung werden die Koeffizientenwerte nacheinander durch das Pipeline-Register 12 und die Rückkopplungsschleifen wie folgt abgespeichert.
  • 1) Die Pipeline-Register 12 und 41 werden zunächst gelöscht, und dann wählt die Auswahllogik 42 das Register 41 aus.
  • 2) Der k&sub0; entsprechende Koeffizient wird im Register 16 gespeichert.
  • Das Symbol α&sup0; wird in diesem Fall durch die Auswahlschaltung 36 bereitgestellt, und k&sub0; wird im Register 16 gespeichert.
  • 3) Der k&sub1; entsprechende Koeffizient wird im Register 17 gespeichert.
  • Das Symbol α¹ wird in diesem Fall durch die Auswahlschaltung 36 bereitgestellt, und der betreffende Multiplizierer gibt k&sub1;α¹ aus.
  • 4) Der k&sub2; entsprechende Koeffizient wird im Register 18 gespeichert.
  • Das Symbol α² wird in diesem Fall durch die Auswahlschaltung 36 bereitgestellt, und der betreffende Multiplizierer gibt k&sub2;α² aus.
  • Demgemäß erhält man, wenn man die von den Multiplizierern wie oben in 1), 2), 3) und 4) beschrieben ausgegebenen Ergebnisse mit den Exklusiv-ODER Gattern 40 addiert, k&sub2;α² + k&sub1;α¹ + k&sub0;; insbesondere erhält man das Ergebnis der Berechnung von σ (α¹) am Ausgang von Register 41. Wenn die Fehlerstellengleichung den Grad 8 hat, muß der Schalter 26 natürlich umgelegt werden.
  • Wie oben beschrieben, können nach der vorliegenden Erfindung viele Teile der Multiplizierer, welche die Galois- Feld-Arithmetik-Einheit der Vorrichtung zum Erkennen und Korrigieren von Codefehlern bilden, verwendet werden, um Berechnungen durchzuführen, die den Wert eines Polynoms bestimmen, das man durch eine Differenzierung des Fehlerstellenpolynoms erhält, wobei die Berechnungen mit großer Geschwindigkeit auf vereinfachte Weise ausgeführt werden. Besonders wenn die Anzahl der auftretenden Fehler größer wird und deshalb der Grad des Fehlerstellenpolynoms zunimmt, also in einem Fall, wenn für die übliche Methode, die Berechnung auszuführen, mehr Zeit benötigt wird, erhöht sich die Auswirkung des verringerten Berechnungsaufwands bemerkenswert.
  • Wie oben beschrieben, kann man, indem man die Hardwaremittel zu mehreren Zwecken nutzt, den Decodierungsvorgang mit hoher Geschwindigkeit und mit auf ein Minimum verringerter Hardware durchführen, und deshalb kann der Decodierungsvorgang in der Praxis auf einem solchen Aufnahmemedium bewerkstelligt werden, das, wie eine optische Platte, Verfahren mit hoher Geschwindigkeit und hoher Leistung benötigt.

Claims (13)

1. Logische Galois-Feld-Arithmetik-Einheit, die umfaßt:
Eine Gruppe Speicherelemente (16-23) jeweils zum Speichern eines Koeffizientenwertes für jeden Term entsprechender Ordnung in einem Fehlerstellenpolynom mit maximaler Ordnung für Reed-Solomon-Codes, von denen jedes Codewort Elemente eines Galois-Feldes GF (2r) beinhaltet, und zum Speichern von Werten von Zwischenrechnungsergebnissen, die mindestens Symbolen für jede Ordnung zugeordnet sind, und zwar erhalten durch Substitution von Stellenwerten für das Fehlerstellenpolynom;
eine Einrichtung (14) zum Abgeben der Koeffizientenwerte für eine Chien-Fehlerstellensuch-Berechnung an die Speicherelemente;
eine Gruppe von Multiplizierern (1-8) entweder zum Multiplizieren eines ersten 1-Symbol-Eingangs (Rb) jeweils mit festen Koeffizienten α&sup0; bis αr-1, wobei α ein primitives Element des Galois-Feldes GF(2r) ist, oder zum Multiplizieren von der Gruppe Speicherelemente (16-23) abgegebener Symbole mit festen Koeffizienten α&sup0; bis αt, wobei die Zahl nicht größer als ist;
eine Einrichtung (9) zum Multiplizieren der Ausgangssignale der Gruppe Multiplizierer (1-8) jeweils mit festen Koeffizienten von 0-Elementen in dem Galois-Feld GF
(2r), wobei die Ausführung der jeweiligen Multiplikation davon abhängt, ob jedes Bit in einem Bereich von einem 0-ten Bit bis zu einem höchstwertigen (r-1)ten Bit eines zweiten 1-Symbol- Eingangs (Ra&sub1;, GEN) in einer binären Darstellung 0 oder 1 ist;
eine Gruppe gerade/ungerade-Entscheidung-Einrichtungen (10) zum Erhalten einer Exklusiv-ODER-Verknüpfung aller einander entsprechenden Bit der jeweiligen binären Vektoren, die als Ergebnis von der Einrichtung (9) zum Multiplizieren erhaltene Symbole darstellen, um ein 1-Symbol zu erhalten; und
eine Einrichtung (11) zum Feststellen, ob der Symbol- Ausgang der Gruppe ungrade/gerade-Entscheidungseinrichtungen (10) ein 0-Element ist oder nicht, dadurch gekennzeichnet, daß die Einheit aufweist:
eine Einrichtung (15) zum selektiven Zuführen der Eingänge an die Multiplizierer (1-7), wobei die Eingänge aus dem ersten Symbol (Rb) und den Ausgängen (R&sub0;-R&sub2;; R&sub0;-R&sub7;) der Gruppe Speicherelemente (16-23) ausgewählt werden; und
eine Einrichtung (14) zum Rückkoppeln der von den r Multiplizierern (1-8) erzeugten Symbole an die Gruppe Speicherelemente (16-23), um die Symbole darin zu speichern.
2. Logische Galois-Feld-Arithmetik-Einheit nach Anspruch 1, die ferner aufweist:
ein Speicherelement (24);
einen Multiplizierer (25) mit einem Koeffizienten αr; und
eine Einrichtung (27) zum Multiplizieren des Ausgangs des Multiplizierers (25) jeweils mit Koeffizienten der 0-Elemente,
wobei die Gruppe ungerade/gerade - Entscheidungseinrichtungen (10) eine Exklusiv-ODER-Verknüpfung einander entsprechender Bits jeweiliger binärer Vektoren vornehmen, die von der Einrichtung (9) zum Multiplizieren gewonnene in der Anzahl übersteigende Symbole darstellen, wobei ,größer oder gleich ist.
3. Logische Galois-Feld-Arithmetik-Einheit nach Anspruch 1 oder 2, ferner aufweisend:
eine Festkoeffizient-Erzeugungs-Schaltungseinrichtung (35) zum Erzeugen eines Symbols, bei dem ungerade Bits bezogen auf ein 0tes Bit als geringstwertiges eines GF(2r) jeweils 1 sind und gradzahlige Bits darauf bezogen jeweils 0 sind; und
eine Einrichtung (36) zum Umschalten des zweiten 1-Symbol-Eingangs auf einen Festkoeffizient-Ausgang der Festkoeffizient-Erzeugungs-Schaltungseinrichtung (35).
4. Logische Galois-Feld-Arithmetik-Einheit nach Anspruch 1, bei der
im Falle, daß ein Galois-Feld einer Multiplikation unterzogen werden soll, feste Koeffizienten α&sup0; bis αr-1h mit d ersten 1-Symbol-Eingang multipliziert werden, und dann, wenn die den Bits in einem Bereich von einem 0-ten Bit zu einem (r-1)ten Bit jeweils entsprechenden Bits in einer binären Darstellung des zweiten 1-Symbol-Eingangs 0 sind, feste Koeffizienten von α&sup0; bis αr-1 auf feste Koeffizienten eines 0-Elements in dem Galois-Feld GF (2r) für die Multiplikation umgeschalten werden, um ein Ergebnis der Multiplikation durch einen Symbolausgang der Gruppe der ungerade/ gerade-Entscheidungseinrichtungen (10) zu erhalten, und
im Falle, daß die Fehlerstellenzahlen und eine Differenzierung des Fehlerstellenpolynoms erhalten werden sollen, die Gruppe Speicherelemente (16-23) entsprechend α&sup0; bis αt der Fest-Koeffizient-Multiplizierer (1-8) jeweils mit einem Koeffizienten der t-ten Ordnung des Fehlerstellenpolynoms geladen werden, Bits in dem Bereich von einem niedrigstwertigen Bit zu mindestens einem t-ten Bit mit als dem zweiten 1-Symbol-Eingang zugeführt werden und jedes der diesen zugehörigen Speicherelemente für jeden Eingang eines jeden Multiplizierers ausgewählt wird, um Ergebnisse von Multiplikationen der Symbole mit den Multiplizierern (1-8) an die jeweiligen Speicherelemente zurückzukoppeln, und dann, wenn die Ausgänge der Gruppe ungerade/gerade-Entscheidungs- Einrichtungen (10) so werden, daß sie ein 0-Element anzeigen, die Rückkopplung zeitweise gestoppt wird, um einen Rückkopplungszählwert zu messen, wodurch die Fehlerstellenzahlen erhalten werden.
5. Logische Galois-Feld-Arithmetik-Einheit nach Anspruch 2, bei der
im Falle, daß ein Galois-Feld einer Multiplikation unterzogen werden soll, feste Koeffizienten von α&sup0; bis αr-1 mit dem ersten 1-Symbol-Eingang multipliziert werden, und dann, wenn die den Bits in einem Bereich von einem 0-ten Bit zu einem (r-1)ten Bit jeweils entsprechenden Bits in einer binären Darstellung des zweiten 1-Symbol-Eingangs 0 sind, festen Koeffizienten α&sup0; bis αr-1 der Gruppe Fest- Koeffizient-Multiplizierer (1-8) auf feste Koeffizienten eines 0-Elementes in dem Galois-Feld GF(2r) umgeschaltet werden, und zum Erhalten eines Multiplikationsergebnisses durch Ausgänge der ungerade /gerade-Entscheidungseinrichtungen eine Einrichtung (11) verwendet wird, die Ausgänge der Fest- Koeffizient-Multiplizierer mit Koeffizienten mindestens gleich αr dazu bringt, ein 0-Element an Eingänge der Gruppe ungerade/gerade-Entscheidungseinrichtungen zu geben,
im Falle, daß die Anzahl mit mindestens einer Ordnung verknüpfter Fehler erhalten werden soll, jedem Bit des zweiten 1-Symbol-Eingangs zugeführt wird und die Ausgänge der Gruppe Fest-Koeffizient-Multiplizierer (25) mit Koeffizienten mindestens gleich αr den Eingängen der Gruppe ungerade/gerade-Entscheidungseinrichtungen (10) zugeführt werden, und
im Falle, daß ein Wert einer Differenzierung des Fehlerstellenpolynoms erhalten werden soll, der Ausgang der Fest-Koeffizient-Erzeugungsschaltung (35) als der zweite 1-Symbol-Eingang abgegeben wird und ein 0-Element von den gradzahligen Fest-Koeffizient-Multiplizierern (25) bezüglich derer r-ten Multiplizierer abgegeben wird, und zwar verknüpft mit Koeffizienten mindestens gleich αr, um an die Eingänge der ungerade/gerade-Entscheidungs-Einrichtungen (10) gegeben zu werden, wodurch ein Betrieb durch ein ähnliches Verfahren erfolgt.
6. Logische Galois-Feld-Arithmetik-Einheit nach Anspruch 3, bei der
im Falle, daß ein Galois-Feld einer Multiplikation unterzogen werden soll, feste Koeffizienten α&sup0; bis αr-1 mit dem ersten 1-Symbol-Eingang multipliziert werden, und dann, wenn die den Bits in einem Bereich von einem 0-ten Bit zu einem (r-1)ten Bit jeweils entsprechenden Bits in einer binären Darstellung des zweiten 1-Symbol-Eingangs 0 sind, die festen Koeffizienten von α&sup0; bis αr-1 auf feste Koeffizienten eines 0-Elements in dem Galois-Feld GF (2r) für die Multiplikation umgeschaltet werden, um ein Ergebnis der Multiplikation durch einen Symbolausgang der Gruppe ungerade/gerade-Entscheidungs-Einrichtungen (10) zu erhalten, und
im Falle, daß die Fehlerstellenzahlen und eine Differenzierung des Fehlerstellenpolynoms erhalten werden sollen, die der Gruppe α&sup0; bis αt der Fest-Koeffizient- Multiplizierer (1-8, 25) entsprechenden Speicherelemente jeweils mit Koeffizienten des Fehlerstellenpolynoms der Ordnung geladen werden, Bits in einem Bereich von einem niedrigstwertigen Bit zu mindestens einem t-ten Bit mit 1 als den zweiten 1-Symbol-Eingang zugeführt werden und jedes diesen zugehörige Speicherelement (16-24) für jeden Eingang eines jeden Multiplizierers ausgewählt wird, um Ergebnisse von Multiplikationen der Symbole mit den Multiplizierern (1-8, 25) an die jeweiligen Speicherelemente (16-24) zurückzukoppeln, und dann, wenn die Ausgänge der Gruppe ungerade/gerade-Entscheidungs-Einrichtungen (10) so werden, daß sie ein 0-Element anzeigen, die Rückkopplung zeitweise gestoppt wird, um einen Rückkopplungszählwert zu messen, wodurch die Fehlerstellenzahlen erhalten werden, und sodann die Ausgänge der Fest-Koeffizient-Erzeugungsschaltung- Einrichtung (35) als der zweite 1-Symbol-Eingang abgegeben Fehlerstellenpolynoms für die Ausgänge der Gruppe ungerade/gerade-Entscheidungs-Einrichtungen (10) zu erhalten, und dann die Rückkopplung fortgeführt wird, so daß der obige Betrieb jeweils dann wiederholt wird, wenn ein Rückkopplungszählwert gleich (Codelänge-1) wird.
7. Logische Galois-Feld-Arithmetik-Einheit nach Anspruch 5 oder 6, mit einer Einrichtung (30), die arbeitet, wenn ein Reed-Solomon-Code mit einer Fehlerstellenzahl von α&sup0; Anwendung findet, bei der
die Koeffizienten des Fehlerstellenpolynoms den Speicherelementen (16-24) über Rückkopplungsschleifen zugeführt werden, um darin die Koeffizienten zu speichern, um die Fehlerstellenzahlen zu erhalten, und alle Koeffizienten des Fehlerstellenpolynoms addiert werden, um ein Ergebnis der Addition mit für eine Entscheidung betreffend die Fehlerstellenzahlen von α&sup0; zu vergleichen, und dann, wenn ein Fehler bei der Stelle α&sup0; gefunden wird, Koeffizienten des Fehlerstellenpolynoms ungerader Ordnung addiert werden, um ein Ergebnis einer Differenzierungsberechnung zu erhalten.
8. Logische Galois-Feld-Arithmetik-Einheit nach Anspruch 4, 5 oder 6, die anstelle der Einrichtung (15) zum selektiven Abgeben der Eingänge an die Multiplizierer ein ODER-Gatter (38) zur ODER-Verknüpfung des ersten Symbols und der Ausgänge der Gruppe Speicherelemente (16-24) aufweist, wobei
im Fall einer Multiplikation eines Galois-Feldes 0 in jedes Speicherelement geladen wird, wobei Rückkopplungsschleifen nicht unterbrochen werden, um ein neues Ergebnis einer Multiplikation an die Speicherelemente (16-24) zu geben, um die Inhalte auf zu halten, und
im Falle des Gewinnens der Fehlerstellenzahlen die Speicherelemente (16-24) durch die Rückkopplungsschleife über Multiplizierer (1-8, 25) mit einem Takt versorgt werden, um darin die Koeffizienten des Fehlerstellenpolynoms zu speichern, und als erstes Symbol zum Bewirken einer Rückkopplung eingegeben wird, um die Fehlerstellenzahlen zu erhalten.
9. Logische Galois-Feld-Arithmetik-Einheit nach Anspruch 7 oder 8, mit einer Einrichtung (40), die in einem Fall arbeitet, wo ein Reed-Solomon-Code mit einer Fehlerstellenzahl α¹ Anwendung findet, bei der
durch Rückkopplungsschleifen die Koeffizienten des Fehlerstellenpolynoms an die Speicherelemente (16-24) gegeben werden, um die Koeffizienten darin zu speichern, um die Fehlerstellenzahlen zu erhalten,
wenn die Speicherelemente (16-24) durch die Rückkopplungsschleifen über die Multiplizierer (1-8, 25) mit den Koeffizienten des Fehlerstellenpolynoms geladen werden, die Umschalteinrichtung (36) nur in Bits des zweiten 1-Symbol-Eingangs entsprechend den jeweiligen Ordnungen setzt und alle von den Multiplizierern (16-24) für die entsprechenden Ordnungen abgegebenen Ergebnisse addiert, um ein Additionsergebnis mit für eine Entscheidung zu vergleichen, ob an der Stelle α¹ ein Fehler existiert, und dann, wenn ein Fehler an der Stelle α¹ gefunden wird, Inhalte ungerader Ordnungen der Speicherelemente (16-24) gelöscht werden, wobei die Einrichtung (36) dann wieder die Koeffizienten der ungeraden Ordnungen des Fehlerstellenpolynoms in den Speicherelementen (16-24) durch die Rückkopplungsschleifen über die Multiplizierer (1-8, 25) speichert, nur in die den jeweiligen Ordnungen der ungeraden Ordnungen entsprechenden Bits als den zweiten 1-Symbol-Eingang setzt und von den den jeweiligen Ordnungen zugehörigen Multiplizierern (1-8, 25) ausgegebene Ergebnisse addiert, um ein Ergebnis einer Differenzierungsberechnung des Fehlerstellenpolynoms zu erhalten, dem α¹ zugeordnet ist.
10. Logische Galois-Feld-Arithmetik-Einheit nach Anspruch 2, ferner aufweisend eine Einrichtung (35, 36, 39) zum Multiplizieren des Ausgangs eines jeden der Fest-Koeffizient- Multiplizierer (2-8, 25) mit festen Koeffizienten des 0-Elements im Falle, daß der Ausgang einem ungeraden Koeffizienten des Fehlerstellenpolynoms entspricht.
11. Logische Galois-Feld-Arithmetik-Einheit nach Anspruch 10, beinhaltend eine Einrichtung (30), die arbeitet, wenn ein Reed-Solomon-Code mit einer Fehlerstellenzahl α&sup0; verwendet wird, bei der
die Koeffizienten des Fehlerstellenpolynoms durch Rückkopplungsschleifen an die Speicherelemente (16-24) gegeben werden, um die Koeffizienten darin zu speichern, um die Fehlerstellenzahlen zu erhalten, und alle Koeffizienten des Fehlerstellenpolynoms addiert werden, um ein Additionsergebnis im Hinblick auf zu prüfen, und zwar für eine Entscheidung, ob an der Stelle α&sup0; ein Fehler auftritt, und dann, wenn ein Fehler an der Stelle α&sup0; gefunden wird, Koeffizienten ungerader Ordnungen des Fehlerstellenpolynoms addiert werden, um ein Ergebnis einer Differenzierungsrechnung zu erhalten.
12. Logische Galois-Feld-Arithmetik-Einheit nach Anspruch 10, die anstelle der Einrichtung (15) zu selektiven Ansteuern der Eingänge der Multiplizierer ein ODER-Gatter (38) für eine ODER-Verknüpfung des ersten Symbols und der Ausgänge der Gruppe Speicherelemente (16-24) aufweist und bei der im Falle des Erhaltens der Fehlerstellenzahlen durch die Rückkopplungsschleife über die Multiplizierer (2-8) ein Takt an die Speicherelemente (16-24) gegeben wird, um darin die Koeffizienten des Fehlerstellenpolynoms zu speichern, und als erstes Symbol eingegeben wird, um eine Rückkopplung zu bewirken, um die Fehlerstellenzahlen zu erhalten.
13. Logische Galois-Feld-Arithmetik-Einheit nach Anspruch 10, mit einer Einrichtung (40), die arbeitet, wenn ein Reed- Solomon-Code mit einer Fehlerstellenzahl α¹ verwendet wird, und bei der
die Koeffizienten des Fehlerstellenpolynoms durch Rückkopplungsschleifen an die Speicherelemente (16-24) gegeben werden, um die Koeffizienten darin zu speichern, um die Fehlerstellenzahlen zu erhalten,
wenn die Speicherelemente mit den Koeffizienten des Fehlerstellenpolynoms durch die Rückkopplungsschleife über die Multiplizierer (2-8, 25) geladen werden, die Einrichtung (36) nur in diejenigen Bits des zweiten 1-Symbol-Eingangs setzt, die den jeweiligen Ordnungen entsprechen, und alle von den Multiplizierern (2-8) für die entsprechenden Ordnungen abgegebenen Ergebnisse addiert, um ein Ergebnis der Addition mit für eine Entscheidung zu vergleichen, ob ein Fehler an der Stelle α¹ existiert; und wenn ein Fehler an der Stelle α¹ gefunden wird, die Inhalte ungerader Ordnung der Speicherelemente (16-24) gelöscht werden, wobei die Einrichtung (36) dann erneut die Koeffizienten ungerader Ordnungen des Fehlerstellenpolynoms durch die Rückkopplungsschleife über die Multiplizierer (2-8, 25) in den Speicherelementen (16-24) speichert, nur in diejenigen Bits setzt, die den jeweiligen Ordnungen der ungeraden Ordnungen entsprechen, und zwar als zweiter 1-Symbol-Eingang, und die von den den jeweiligen Ordnungen zugehörigen Multiplizierern (1-8, 25) abgegebenen Ergebnisse addiert, um ein Ergebnis einer Differenzierungsberechnung des Fehlerstellenpolynoms zu erhalten, dem α¹ zugeordnet ist.
DE8787118248T 1986-12-10 1987-12-09 Arithmetische und logische einheit fuer elemente von galois-feldern. Expired - Lifetime DE3784459T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP61294031A JPH0828670B2 (ja) 1986-12-10 1986-12-10 ガロア体演算装置
JP62151863A JPH0834440B2 (ja) 1987-06-18 1987-06-18 ガロア体演算方法
JP62151861A JPH0834439B2 (ja) 1987-06-18 1987-06-18 ガロア体演算装置

Publications (2)

Publication Number Publication Date
DE3784459D1 DE3784459D1 (de) 1993-04-08
DE3784459T2 true DE3784459T2 (de) 1993-08-26

Family

ID=27320177

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8787118248T Expired - Lifetime DE3784459T2 (de) 1986-12-10 1987-12-09 Arithmetische und logische einheit fuer elemente von galois-feldern.

Country Status (5)

Country Link
US (1) US4875211A (de)
EP (1) EP0271082B1 (de)
KR (1) KR920000828B1 (de)
CA (1) CA1276043C (de)
DE (1) DE3784459T2 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5020060A (en) * 1987-06-30 1991-05-28 Matsushita Electric Industrial Co., Ltd. Error code correction device having a galois arithmetic unit
EP0431629A3 (en) * 1989-12-08 1993-07-21 Sony Corporation Mutual division circuit
US5107506A (en) * 1990-01-25 1992-04-21 Digital Equipment Corporation Error trapping decoding method and apparatus
KR940001147B1 (ko) * 1991-03-20 1994-02-14 삼성전자 주식회사 부분체 GF(2^m/2)을 이용한 GF(2^m)상의 연산방법 및 장치
US5446745A (en) * 1992-10-05 1995-08-29 Mitsubishi Semiconductor America, Inc. Apparatus for correcting errors in optical disks
KR950002304B1 (ko) * 1992-10-07 1995-03-16 삼성전자주식회사 다중 오류정정 방법
US5463642A (en) * 1993-06-29 1995-10-31 Mitsubishi Semiconductor America, Inc. Method and apparatus for determining error location
FR2743909B1 (fr) * 1996-01-24 1998-04-10 Matra Communication Circuit multiplieur sur un corps de galois et applications d'un tel circuit dans un decodeur correcteur d'erreurs
US5751732A (en) * 1996-02-28 1998-05-12 Daewoo Electronics Co., Ltd. Polynomial evaluator for use in a reed-solomon decoder
US5768168A (en) * 1996-05-30 1998-06-16 Lg Semicon Co., Ltd. Universal galois field multiplier
JP3850511B2 (ja) * 1997-05-07 2006-11-29 日本テキサス・インスツルメンツ株式会社 リードソロモン復号装置
US6252958B1 (en) * 1997-09-22 2001-06-26 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
US6510228B2 (en) * 1997-09-22 2003-01-21 Qualcomm, Incorporated Method and apparatus for generating encryption stream ciphers
US6560338B1 (en) 1998-08-28 2003-05-06 Qualcomm Incorporated Limiting delays associated with the generation of encryption stream ciphers
US6490357B1 (en) 1998-08-28 2002-12-03 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
US6175941B1 (en) * 1998-12-08 2001-01-16 Lsi Logic Corporation Error correction apparatus and associated method utilizing parellel processing
US7458007B2 (en) * 2000-02-18 2008-11-25 Texas Instruments Incorporated Error correction structures and methods
US6671850B1 (en) 2000-05-01 2003-12-30 International Business Machines Corporation On-the-fly algebraic error correction system and method for reducing error location search
JP2002057586A (ja) * 2000-08-11 2002-02-22 Alps Electric Co Ltd 演算処理装置
US6792569B2 (en) 2001-04-24 2004-09-14 International Business Machines Corporation Root solver and associated method for solving finite field polynomial equations
US7020826B2 (en) * 2002-01-23 2006-03-28 Thomson Licensing Intra-decoder component block messaging
US6920600B2 (en) * 2002-01-23 2005-07-19 Thomson Licensing S.A. Dual chien search blocks in an error-correcting decoder
US7724898B2 (en) * 2002-10-17 2010-05-25 Telefonaktiebolaget L M Ericsson (Publ) Cryptography using finite fields of odd characteristic on binary hardware
US7197527B2 (en) * 2002-10-17 2007-03-27 Telefonaktiebolaget Lm Ericsson (Publ) Efficient arithmetic in finite fields of odd characteristic on binary hardware
FR2853424B1 (fr) * 2003-04-04 2005-10-21 Atmel Corp Architecture de multiplicateurs polynomial et naturel combines
US20080240168A1 (en) * 2007-03-31 2008-10-02 Hoffman Jeffrey D Processing wireless and broadband signals using resource sharing
KR100875928B1 (ko) * 2007-05-09 2008-12-26 한국전자통신연구원 고속 리드-솔로몬 복호기의 수정 유클리드 알고리즘 연산회로 및 그 방법
KR101678917B1 (ko) * 2010-09-16 2016-11-24 삼성전자주식회사 디코더, 이의 동작방법, 및 이를 포함하는 장치들
US8875001B1 (en) * 2011-09-08 2014-10-28 Xilinx, Inc. Circuitry for parallel decoding of data blocks

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4142174A (en) * 1977-08-15 1979-02-27 International Business Machines Corporation High speed decoding of Reed-Solomon codes
US4567594A (en) * 1983-06-07 1986-01-28 Burroughs Corporation Reed-Solomon error detecting and correcting system employing pipelined processors
US4584686A (en) * 1983-12-22 1986-04-22 Optical Storage International Reed-Solomon error correction apparatus
US4665523A (en) * 1984-02-15 1987-05-12 Stanford University Method and means for error detection and correction in high speed data transmission codes
JPS6162234A (ja) * 1984-09-04 1986-03-31 Kokusai Denshin Denwa Co Ltd <Kdd> 誤り訂正符号復号方式
JPH0728227B2 (ja) * 1985-06-07 1995-03-29 ソニー株式会社 Bch符号の復号装置
US4763332A (en) * 1987-03-02 1988-08-09 Data Systems Technology Corp. Shared circuitry for the encoding and syndrome generation functions of a Reed-Solomon code

Also Published As

Publication number Publication date
EP0271082B1 (de) 1993-03-03
KR880008299A (ko) 1988-08-30
EP0271082A2 (de) 1988-06-15
US4875211A (en) 1989-10-17
CA1276043C (en) 1990-11-06
EP0271082A3 (en) 1990-05-23
DE3784459D1 (de) 1993-04-08
KR920000828B1 (ko) 1992-01-30

Similar Documents

Publication Publication Date Title
DE3784459T2 (de) Arithmetische und logische einheit fuer elemente von galois-feldern.
DE69424877T2 (de) Reed-solomon-dekoder
DE69414631T2 (de) Schaltung zur Durchführung des Euclidschen Algorithmus bei der Dekodierung Arithmetischer Kodes
DE3854791T2 (de) Reed-Solomon Code verwendendes Fehler-Korrektur-Verfahren
DE3650335T2 (de) Rechenverfahren und -gerät für endlichfeldmultiplikation.
DE69919199T2 (de) Vorwärtsfehlerkorrektur
DE3486200T2 (de) Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes.
DE3854939T2 (de) Bch-fehlerkorrekturkode-dekodierungsverfahren in echtzeitbetrieb
DE3852999T2 (de) Galois-feld-recheneinheit.
DE3854393T2 (de) Verfahren und gerät zur fehlerkorrektur mit mehrfachdurchlauf für produktkode.
DE69716331T2 (de) Schaltung für Modulo-Multiplikations- und Exponentiationsarithmetik
DE2916710C2 (de)
DE4229666C2 (de) Wechselseitig arbeitende Divisionsschaltung
DE4241903C2 (de) Euklidische wechselseitige Divisionsschaltung
DE69907566T2 (de) Reed Solomon Kodierungsgerät und Reed Solomon Kodierungsverfahren
DE19747774A1 (de) Reed-Solomon-Decoder zur Verwendung beim verbesserten Fernsehen (ATV)
DE3750526T2 (de) Dekodierer.
DE69732076T2 (de) Reed-Solomon Dekodierer mit universeller Prozessoreinheit und speziellen Schaltungen
DE69117857T2 (de) Gerät und Verfahren zur Parallelgeneration von zyklischen redundanten Prüfungskoden
EP0545498B1 (de) Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen
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
DE69121733T2 (de) Technik zum eingebauten Selbsttest für Nur-Lese-Speicher
DE69522156T2 (de) Reed-Solomon Dekoder
DE69430519T2 (de) Verfahren und Gerät für einen Dekoder mit reduzierter Iteration
DE4105860A1 (de) Schaltungsanordnung zum erkennen und korrigieren von fehlern in datenworten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)