DE3702697C2 - - Google Patents
Info
- Publication number
- DE3702697C2 DE3702697C2 DE3702697A DE3702697A DE3702697C2 DE 3702697 C2 DE3702697 C2 DE 3702697C2 DE 3702697 A DE3702697 A DE 3702697A DE 3702697 A DE3702697 A DE 3702697A DE 3702697 C2 DE3702697 C2 DE 3702697C2
- Authority
- DE
- Germany
- Prior art keywords
- register
- adder
- multiplier
- output signal
- multipliers
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Description
Die Erfindung befaßt sich mit einer Paritätserzeugungsschaltung
und betrifft insbesondere eine
Paritätserzeugungsschaltung zum Erzeugen von Paritäten
eines Reed-Solomon-Code.
Bei Datenübertragungen, wie beispielsweise in
Datenkommunikationsanlagen, in PCM-Aufzeichnungs- und
Wiedergabegeräten, bei digitalen Audioplatten und dergleichen
wird üblicherweise eine Fehlerkorrektur vorgenommen,
die die Wiederherstellung möglicherweise
fehlerhaft übertragener Daten bezweckt. Damit eine
solche Fehlerkorrektur möglich ist, werden den zu
übertragenden Daten Paritäten (Prüfvektoren) hinzugefügt,
die gemäß einer vorbestimmten Methode erzeugt
werden, wobei Blöcke gebildet werden, und die Signalübertragung
oder Signalaufzeichnung erfolgt in solchen
Blöcken. Ein in den empfangenen oder wiedergegebenen
Blöcken auftretender Codefehler wird unter Verwendung
der Paritäten korrigiert.
Es sind verschiedene Arten von Fehlerkorrekturcodes
bekannt, die die Paritäten und die Daten umfassen,
die zu übertragen sind und die auch Erzeugungselemente
der Paritäten sind. Unter den bekannten
Fehlerkorrekturcodes findet der Reed-Solomon-Code
eine weitverbreitete Anwendung, und zwar wegen seiner
überragenden Fehlerkorrekturfähigkeit und der Redundanz
der übertragenden Information (das ist das Verhältnis
zwischen den Paritäten und den Daten im Block).
Zunächst soll das allgemeine Prinzip der Generierung
oder Erzeugung des Reed-Solomon-Code beschrieben
werden. Ein Reed-Solomon-Code, der ein
Codewort (Block) mit einer Wortlänge n, k Daten
(Datenvektoren), die zu übertragen sind, und (n-k)
Paritäten (Prüfvektoren) hat, wird oft als (n-k)-
Reed-Solomon-Code bezeichnet, wobei n und k natürliche
Zahlen sind. Das Codewort dieses (n-k)-Reed-Solomon-Code
kann durch die folgende Zeilenmatrix W
nach der Gleichung (1) beschrieben werden, wobei C₁
bis C n Daten oder Paritäten sind und wenigstens ein
Datum und eine Parität vorhanden sind:
W = [C₁, C₂, . . ., C n] (1)
Weiterhin sind C₁ bis C n jeweils m-Bit-Vektoren,
und sie sind Elemente in einem Galois-Feld GF (2 m) in
dem im GF (2 m) definierten Reed-Solomon-Code. Zwischen
m und n muß bekanntlich die folgende Bedingung (2)
erfüllt sein:
2 m 1-n (2)
Unter der Voraussetzung, daß eine Prüfmatrix H₀
eine (n-k) Zeilen x n Spalten-Matrix ist, die durch
die folgende Gleichung (3) beschrieben ist, wobei α
ein primitives Element vom GF (2 m) bezeichnet, werden
die Paritäten in einer solchen Weise generiert oder
erzeugt, daß ein durch die folgende Gleichung (4)
dargestellten Syndrom S als eine Spaltenmatrix mit
(n-k) Nullvektoren beschrieben werden kann, wobei
T in Gleichung (4) eine transponierte Matrix
bezeichnet.
S = H₀ · W T = [0, 0, . . ., 0] T (4)
Ein Paritätsgenerierungs- oder Paritätserzeugungspolynom
G(x) des (n-k)-Reed-Solomon-Code des
durch die folgende Gleichung (5) beschriebenen Codewortes
W kann durch die folgende Gleichung (6) beschrieben
sein, wobei in der Gleichung (5) D₁ bis D k
Daten bezeichnen und P k+1 bis P n Paritäten bezeichnen:
W = [D₁, D₂, . . ., D k, P k+1, P k+2, . . ., P n] (5)
G(x) = (x-1) · (x-α) · (x-a²) · . . . · (x-α n-
Die folgende Gleichung (7) gewinnt man durch
Ausmultiplizieren der Gleichung (6), wobei a₁ bis a n-k Koeffizienten
sind, die durch das primitive Element α
beschrieben sein können:
G(x) = x n-k + a₁ · x n-k-1 + a₂ · x n-k-2 + . . . + a n-k-1 · x + a n-k (7)
Benutzt man die Daten [D₁, D₂, . . ., D k] innerhalb
des Codewortes W zur Definition eines Polynoms F D(x),
das durch die folgende Gleichung (8) beschrieben ist,
kann man durch die nachfolgende Gleichung (9) ein
Restpolynom R(x) beschreiben, welches man erhält,
wenn das Polynom F D(x) dividiert wird durch das
Paritätserzeugungspolynom G(x):
F D(x) = D₁ · x n-1 + D₂ · x n-2 + . . . + D k · x n-k (8)
R(x) = R₁ · x n-k-1 + R₂ · x n-k-2+ . . .
R n-k-1 · x + R n-k (9)
Ein Produkt F(x) des in diesem Fall auftretenden Quotienten
und des Paritätserzeugungspolynoms G(x) kann
beschrieben werden durch F(x) = F D(x)-R(x). Dies
ist aber eine Modulo-2-Subtraktion, die dasselbe ist
wie eine Modulo-2-Addition. Folglich kann das Produkt
F(x) beschrieben werden durch F(x) = F D(x)+R(x).
Das durch die folgende Gleichung (10) beschriebene
Produkt F(x) ist durch das Paritätserzeugungspolynom
G(x) teilbar:
F(x) = F D(x)+R(x)
= D₁ · x n-1 + D₂ · x n-2 + . . .
+ D k · x -k + R₁ · x n-k-1 + R₂ · x n-k-2 + . . . + R n-k-1 · x + R n-k (10)
= D₁ · x n-1 + D₂ · x n-2 + . . .
+ D k · x -k + R₁ · x n-k-1 + R₂ · x n-k-2 + . . . + R n-k-1 · x + R n-k (10)
Demnach kann man aus der Gleichung (10) ersehen,
daß die Paritäten P k+1 und P k+2, . . ., P n in dem durch
Gleichung (5) dargestellten Reed-Solomon-Codewort durch
den folgenden Satz von Gleichungen (11) beschrieben
werden können:
Es gibt herkömmliche Schaltungen zum Generieren
oder Erzeugen der Paritäten des Reed-Solomon-Code
gemäß dem oben beschriebenen Generierungs- oder Erzeugungsprinzip.
Besteht bei einer ersten und einer
zweiten denkbaren Schaltung, die später an Hand von
Zeichnungen noch beschrieben werden, das Codewort W₀
aus Paritäten P i+1 bis P j-1 und Daten D₀ bis D i sowie
Daten D j bis D n mit den Elementen GF (2 m) wie beschrieben
durch die folgende Gleichung (12), tritt
das Problem auf, daß die Paritäten P i+1 bis P j-1 für
ein Codewort W₀, bei dem sich die Paritäten P i+1 bis
P j-1 zwischen den Daten D₁ bis D i und den Daten D j
bis D n befinden , nicht erzeugt werden können. In der
nachfolgenden Gleichung (12) gilt: n-k = j-i-1
und n< j< i:
W₀ = [D₁, D₂, . . ., D i, P i+1, . . ., P j-1, D j, . . ., D n] (12)
Wie es später an Hand der Zeichnungen beschrieben
wird, sind eine dritte Schaltung zum Erzeugen der Paritäten
unter Verwendung einer Paritätserzeugungsmatrix
und eine vierte Schaltung zum Erzeugen der Paritäten
unter Verwendung simultaner Gleichungen denkbar, und
zwar selbst für den Fall, daß das Codewort W₀ durch
die Gleichung (12) beschrieben ist und die Paritäten
P i+1 bis P j-1 zwischen den Daten D₁ bis D i und den
Daten D j bis D n liegen.
Bei der dritten denkbaren Schaltung tritt aber
das Problem auf, daß ein Festwertspeicher (ROM) benutzt
werden muß, der zur Speicherung jedes Elements
des Paritätserzeugungspolynoms dient, weil die Paritätserzeugungsmatrix
nicht regulär ist (d. h., z. B. nicht in eine arithmetische oder geometrische
jede Koeffizientenmultipliziereinrichtung der dritten
Reihe entwickelt werden kann, und daß
erdachten Schaltung derart konstruiert sein muß, daß
es möglich ist, die Multiplikation mit irgendeiner Art
von Koeffizient auszuführen, weil sich die Koeffzienten
vom ROM in Abhängigkeit von den Eingabedaten
aufeinanderfolgend ändern. Die Folge davon ist, daß
das schaltungstechnische Ausmaß der denkbaren dritten Schaltung als
Ganzes groß sein muß, so daß die Schaltung insgesamt
einen hohen Aufwand bedingt.
Im Gegensatz dazu ist es bei der denkbaren vierten
Schaltung so, daß jede Koeffizientenmultipliziereinrichtung
stets einen konstanten Koeffizienten mit einem
Eingangssignal multipliziert. Deswegen kann die Koeffizientenmultipliziereinrichtung
im Vergleich zu derjenigen
nach der denkbaren dritten Schaltung vereinfacht
sein. Allerdings tritt das Problem auf, daß bei der
Durchführung von Substitutionen in die simultanen
Gleichungen zwecks Erzeugung der Paritäten P i+1 bis
P i-1 es erforderlich ist, eine außerordentlich hohe
Anzahl von Operationsschritten vorzunehmen, und zwar
beispielsweise unter Verwendung einer arithmetischen
Logikeinheit (ALU).
Im übrigen wird zum Stand der Technik verwiesen
auf: W. Wesley Peterson, E. J. Weldon, Jr. "Error-Corecting
Codes" 2nd Edition, The MIT PRESS, 1972,
Seiten 170 bis 189, 276, 277, 308 und 309, und Richard
E. Blahut "Theory and Practice of Error Control Codes",
Addison-Wesley Publishing Company, 1983, Seiten 96 bis
101.
Aufgabe der Erfindung ist es, für einen spezielen
nichtsystematischen Code eine Paritätserzeugungsschaltung
zu schaffen.
Diese Aufgabe wird durch den Gegenstand des Patentanspruchs
1 bzw. des Patentanspruchs 3 gelöst. Wenn bei
der erfindungsgemäßen Paritätserzeugungsschaltung die
Paritäten eines (n, k) Reed-Solomon-Code, bei dem die
Paritätsbits als ein Block zwischen den Daten angeordnet
sind, erzeugt werden, brauchen die Multiplizierglieder der
Paritätserzeugungsschaltung nur konstante Multiplikationskoeffizienten
zu verarbeiten, so daß es nicht erforderlich
ist, einen Speicher zum Speichern einer großen Anzahl von
Multiplikationskoeffizienten vorzusehen, und es ist möglich,
die Paritäten durch Ausführung einer Anzahl von Operationsschritten
zu erzeugen, die beträchtlich geringer als
die Anzahl der Operationsschritte ist, beispielsweise
bei der Verwendung einer arithmetischen Logikeinheit (ALU) ausgeführt
werden müssen. Im Ergebnis ist daher die erfindungsgemäße
Paritätserzeugungsschaltung bezüglich ihres Schaltungsaufbaus
wesentlich einfacher und im Hinblick auf die Kosten
wesentlich günstiger.
Bevorzugte Weiterbildungen sind in Unteransprüchen
gekennzeichnet.
Im folgenden wird die Erfindung beispielshalber
an Hand von Zeichnungen erläutert. Es zeigen:
Fig. 1 bis 4 Blockschaltbilder von vier Ausführungsformen
einer erdachten Paritätserzeugungsschaltung,
Fig. 5 ein Blockschaltbild zur Erläuterung
des Arbeitsprinzips einer nach der Erfindung ausgebildeten
Paritätserzeugungsschaltung,
Fig. 6 ein Systemblockschaltbild eines ersten
Ausführungsbeispiels der Paritätserzeugungsschaltung
nach der Erfindung,
Fig. 7 ein Schaltbild einer Ausführungsform
einer Torschaltung des Blockschaltbildes nach Fig. 6,
Fig. 8 und 9 zwei Ersatzschaltbilder des
Blockschaltbilds nach Fig. 6 bei voneinander unterschiedlichen
Betriebszuständen, und
Fig. 10 ein Systemblockschaltbild eines zweiten
Ausführungsbeispiels der Paritätserzeugungsschaltung
nach der Erfindung.
Zunächst werden ein erstes bis viertes Beispiel
der bereits erwähnten erdachten Paritätserzeugungsschaltungen
beschrieben. Diese Beschreibung soll das
Verständnis der Erfindung erleichtern.
Fig. 1 und 2 zeigen die erste und zweite denkbare
Paritätserzeugungsschaltung, die die Paritäten
(Prüfvektoren) gemäß dem Erzeugungsprinzip erzeugt,
das bereits oben bis hin zur Gleichung (11) erläutert
worden ist. Nachdem bei der ersten Paritätserzeugungsschaltung
nach Fig. 1 Register 13₁ bis 13 n-k
zunächst gelöscht worden sind, wird ein Codewort, in
welchem (n-k) Paritäten P k+1 bis P n des durch die
Gleichung (5) beschriebenen Codewortes W Nullvektoren
sind, seriell an einen Eingangsanschluß 11 in einer
Reihenfolge aus den Daten D₁, D₂, D₃, . . ., D k gelegt,
und anschließend werden die (n-k) Nullvektoren aufeinanderfolgend
dem Eingangsanschluß 11 zugeführt.
Die Eingangsvektoren werden seriell durch einen Addierer
12 n-k , das Register 13 n-k , einen Addierer
12 n-k-1, . . ., und das Register 13₁
in dieser Reihenfolge transferiert.
Ein Ausgangssignal des Registers 13₁ in der
letzten Stufe wird Koeffizientenmultipliziergliedern
14₁, 14₂, . . ., 14 n-k-1 und 14 n-k zur Multiplikation
der jeweiligen Koeffizienten a₁, a₂, . . ., a n-k-1 und
a n-k der Gleichung (7) zugeführt. Ausgangssignale der
Multiplizierglieder 14₁ bis 14 n-k werden unabhängig
den entsprechenden Addierern oder Addiergliedern 12₁
bis 12 n-k zugeführt.
Die Eingangsvektoren sind m-Bit-Vektoren und
sind Elemente vom GF (2 m), was bedeutet, daß die Eingangsvektoren
ebenfalls m-dimensionale Vektoren im
GF (2 m) sind. Die Multiplizierglieder 14₁ bis 14 n-k
sind folglich Multiplizierglieder im GF (2 m), und die
Addierglieder 12₁ bis 12 n-k sind Modulo-2-Addierglieder
zum Ausführen einer Modulo-2-Addition der
m-Bit-Signale (Vektoren) von den Multipliziergliedern
14₁ bis 14 n-k und der m-Bit-Signale (Vektoren) von
den Registern 13₂ bis 13 n-k sowie dem Eingangsanschluß
11 für jedes entsprechende Bit.
Zu einem Zeitpunkt, nachdem k Daten und (n-k)
Paritäten (Nullvektoren in diesem Fall) seriell dem
Eingangsanschluß 11 zugeführt worden sind, sind die
Terme R₁, . . ., R n-k-1 und R n-k des durch die Gleichung
(10) beschriebenen Restpolynoms R(x) in den jeweiligen
(n-k) Registern 13₁, . . ., 13 n-k-1 und 13 n-k gespeichert
und dort verblieben. Die Paritäten können folglich
dadurch erzeugt werden, daß die Werte der Register
13₁ bis 13 n-k aufeinanderfolgend ausgelesen werden.
Bei der zweiten denkbaren Paritätserzeugungsschaltung
nach Fig. 2 werden andererseits, nachdem
Register 18₁ bis 18 n-k alle gelöscht sind, lediglich
die Daten [D₁, D₂, . . ., D k] seriell an einen Eingangsanschluß
15 gelegt und über einen Addierer oder ein
Addierglied 16₁ (n-k) Koeffizientenmultipliziergliedern
17₁, . . ., 17 n-k-1 und 17 n-k zugeführt. Die
Multiplizierglieder 17₁, . . ., 17 n-k-1 und 17 n-k multiplizieren
zu dem Ausgangsmaterial des Addiergliedes 16₁
jeweils die Koeffizienten a₁, . . ., a n-k-1 und a n-k
der Gleichung (7). Ausgangssignale der Multiplizierglieder
17₁ bis 17 n-k-1 werden unabhängig entsprechenden
Addiergliedern 16₂ bis 16 n-k zugeführt, die in den
Eingangsstufen der Register 18₁ bis 18 n-k-1 vorgesehen
sind. Ein Ausgangssignal des Multiplizierglieds 17 n-k
gelangt zum Register 18 n-k . Ausgangssignale der Register
18₂ bis 18 n-k werden den entsprechenden Addiergliedern
16₂ bis 16 n-k zugeführt, und ein Ausgangssignal
des Addierglieds 16₂ wird dem Register 18₁
zugeführt.
Wenn das letzte Datum D k an den Eingangsanschluß
15 angelegt worden ist und nachdem das letzte Datum D k
über das Addierglied 16₁, die Multiplizierglieder 17₁
bis 17 n-k und die Addierglieder 16₂ bis 16 n-k in die
Register 18₁ bis 18 n-k eingegeben worden ist, können
die Paritäten dadurch erzeugt werden, daß die gespeicherten
Werte (Registerwerte) aus den Registern 18₁
bis 18 n-k ausgelesen werden. Weil lediglich die Daten
D₁ bis D k an den Eingangsanschluß 15 gelegt werden müssen,
ist lediglich eine k-malige Division erforderlich,
und die Paritäten können im Vergleich zu der ersten
Paritätserzeugungsschaltung nach Fig. 1, die n Divisionen
erfordert, innerhalb einer kürzeren Zeit erzeugt
werden.
Wie jedoch bereits eingangs beschrieben, tritt
bei der ersten und der zweiten denkbaren Paritätserzeugungsschaltung,
wenn das Codewort W₀ aus Paritäten
P i+1 bis P i-1 und Daten D₀ bis D i sowie Daten D j bis
D n mit den Elementen vom GF (2 m) besteht, wie es durch
die Gleichung (12) beschrieben ist, das Problem auf,
daß die Paritäten P i+1 bis P i-1 für ein Codewort W₀
nicht erzeugt werden können, wenn sich die Paritäten
P i+1 bis P i-1 zwischen den Daten D₁ bis D i einerseits
und den Daten D j bis D n andererseits befinden.
Die dritte denkbare Paritätserzeugungsschaltung
macht zum Erzeugen der Paritäten von einer Paritätserzeugungsmatrix
Gebrauch, und die vierte denkbare
Paritätserzeugungsschaltung macht zum Erzeugen der
Paritäten von simultanen Gleichungen Gebrauch, und
zwar auch dann, wenn das Codewort W₀ durch die Gleichung
(12) beschrieben ist und die Paritäten P i+1
bis P j-1 zwischen den Daten D₁ bis D i und den Daten
D j bis D n liegen.
Zuerst soll die dritte Paritätserzeugungsschaltung
beschrieben werden. Durch Transformation der oben
beschriebnene Prüfmatrix H₀ kann man ein Paritätserzeugungspolynom
erhalten. Durch Hinzufügen eines
gewissen Zeilenvektors zu einem anderen Zeilenvektor
in der durch die Gleichung (3) beschriebenen Prüfmatrix
H₀ und durch mehrmaliges Ausführen einer solchen
Addition (Matrixtransformation) werden eine (i+1)te
Spalte bis zu einer (j-1)te Spalte in eine Einheitsmatrix
transformiert. Eine durch eine solche Matrixtransformation
gewonnene Matrix H₀′ kann durch die
folgende Gleichung (13) beschrieben werden, wobei a 1,1
bis a n-k,n Elemente der Matrix sind und durch ein
primitives Element α beschrieben werden können:
Die Matrix H₀′ ist ebenfalls eine Prüfmatrix
und genügt der folgenden Gleichung (14), wenn dort
(n-k) Nullen vorhanden sind:
H₀′ · W₀ T = [0, 0, . . ., 0] T (14)
Die Gleichung (14) kann man durch den folgenden
Satz von Gleichungen (15) darstellen:
Löst man den Satz von Gleichungen (15) für
P j+1 bis P i-1 auf, erhält man die folgende in
Matrixform dargestellte Gleichung:
Bezeichnet man den linken Term der Gleichung (16)
mit P und stellt man die rechten Terme der Gleichung
(16) durch eine Matrix H₁ sowie eine Spaltenmatrix D
dar, kann die Gleichung (16) durch die folgende Gleichung
(17) wiedergegeben werden, wobei die (n-k)
Zeilen x k Spalten-Matrix H₁ das Paritätserzeugungspolynom
ist:
P = H₁ · D (17)
Fig. 3 zeigt die dritte Paritätserzeugungsschaltung,
die von der Paritätserzeugungsmatrix H₁ Gebrauch
macht. Einem Eingangsanschluß 20 werden lediglich die
Daten D₁ bis D i und D j bis D n des durch die Gleichung
(12) beschriebenen Codewortes W₀ zugeführt. Die Eingangsdaten
gelangen zu (n, k) Koeffizientenmultipliziergliedern
21₁ bis 21 n-k und werden dort mit vorbestimmten
Koeffizienten multipliziert, die aus einem Festwertspeicher
(ROM) 22 ausgelesen werden, in welchem (n-k)
x k Koeffizienten des Paritätserzeugungspolynoms H₁
vorgespeichert sind. Ausgangssignale der Multiplizierglieder
21₁ bis 21 n-k werden an entsprechende Addierglieder
23₁ bis 23 n-k weitergeleitet und gelangen zu
entsprechenden Registern 24₁ bis 24 n-k zur dortigen
Zwischenspeicherung. Im einzelnen wird beispielsweise
das erste Eingangsdatum D₁ in den Multipliziergliedern
21₁ bis 21 n-k mit den aus dem ROM 22 ausgelesen (n-k)
Koeffizienten a 1,1 bis a n-k,1 der ersten Spalte der
Paritätserzeugungsmatrix H₁ multipliziert. Das nächste
Eingangsdatum D₂ wird dann in den jeweiligen Multipliziergliedern
21₁ bis 21 n-k mit den aus dem ROM 22 ausgelesenen
Koeffzienten a 1,2 bis a n-k,2 der zweiten
Spalte der Paritätserzeugungsmatrix H₁ multipliziert,
und die Ausgangssignale der Multiplizierglieder 21₁ bis
21 n-k werden in den jeweiligen Addiergliedern 23₁ bis
23 n-k mit den entsprechenden vorausgegangenen Multiplikationsergebnissen
addiert, die man aus den Registern
24₁ bis 24 n-k erhält, und die Additionsergebnisse werden
dann wieder in den Registern 24₁ bis 24 n-k abgespeichert.
Danach werden dann in ähnlicher Weise die weiteren Multiplikationen
und Additionen aufeinanderfolgend ausgeführt,
und die gemäß der Operation nach der Gleichung
(16) erzeugten Paritäten P i+1, P i+2, . . ., P j-1 werden
gleichzeitig parallel an den Registern 24₁, 24₂, . . .,
24 n-k erhalten.
Als nächstes soll die vierte Paritätserzeugungsschaltung
beschrieben werden, die zum Erzeugen der
Paritäten von simultanen Gleichungen Gebrauch macht.
Ist ein resultierendes Syndrom S der Prüfoperation
H₀ · W₀ T durch die folgende Gleichung (18) beschrieben,
wobei S₀ bis S n-k-1 Elemente vom GF (2 m) sind, erhält
man die folgende Gleichung (19):
S = [S₀, S₁, . . ., S n-k-1] T (18)
S = H₀ · W T (19)
Die Gleichung (19) kann durch den folgenden
Satz von Gleichungen (20) dargestellt werden:
Bezeichnet man ein Codewort, in welchem die
(n-k) Paritäten P i+1 bis P j-1 des durch die Gleichung
(12) beschriebenen Codewortes W₀ Nullvektoren
sind, mit W₀′, kann man ein Syndrom S′ bezüglich des
in der folgenden Gleichung (21) beschriebenen Codewortes
W₀′ durch die folgende Gleichung (22) darstellen,
wobei S₀′ bis S n-k-1′ Elemente vom GF (2 m) sind:
W₀′ = [D₁, D₂, . . ., D i, 0, 0, . . ., 0, D j, . . ., D n] (21)
S′ = [S₀′, S₁′, . . ., S n-k-1′] T = H₀ · W′ T (22)
Somit kann das Syndrom S′ durch den folgenden
Satz von Gleichungen (23) dargestellt werden:
Demzufolge kann man aus den Gleichungen (23)
und (20) den folgenden Satz von Gleichungen (24)
erhalten:
Die Gleichungen (24) sind (n-k)-Element-Simultan-Gleichungen
für die Paritäten P i+1 bis
P j-1. Folglich kann man die Paritäten P i+1 bis
P j-1 durch Lösen der simultanen Gleichungen erhalten.
Die in Fig. 4 dargestellte denkbare vierte
Paritätserzeugungsschaltung erzeugt die Paritäten
durch Lösen der simultanen Gleichungen wie oben
beschrieben. Das durch die Gleichung (21) dargestellte
Codewort W₀′, das Nullvektoren für die Paritäten P i+1
bis P j-1 hat, wird seriell an einen Eingangsanschluß 26
gelegt und wird (n-k) Addiergliedern 27₁ bis 27 n-k
zugeführt. Ausgangssignale der Addierglieder 27₁ bis
27 n-k werden unabhängig entsprechenden Registern 28₁
bis 28 n-k zugeführt. Das Ausgangssignal des Registers
28₁ gelangt direkt zum Addierglied 27₁ (oder über ein
Koeffizientenmultiplizierglied zum Multiplikation mit
einem Koeffizienten "1"), und die Ausgangssignale der
Register 28₂ bis 28 n-k werden durch jeweilige Koeffi
zientenmultiplizierglieder 29₂ bis 29 n-k zur Multiplikation
mit Koeffizienten α bis α n-k-1 geleitet und
gelangen dann zu den jeweils zugeordneten Addiergliedern
27₂ bis 27 n-k und werden dort mit den Eingangsdaten
addiert.
Die oben beschriebene Operation wird wiederholt,
bis man schließlich die durch den Satz von Gleichungen
(23) beschriebene Syndrome S₀′, S₁′, . . ., S n-k-1′ parallel
an den Registern 28₁, 28₂, . . ., 28 n-k erhält.
Werden diese Syndrome S₀′, S₁′, . . ., S n-k-1′ in die
simultanen Gleichungen (24) substituiert und unter Verwendung
einer arithmetischen Logikeinheit ALU (nicht
gezeigt) oder dergleichen gelöst, ist es möglich, die
Paritäten P i+1 bis P j-1 zu erzeugen.
Bei der Erzeugung der Paritäten des beispielsweise
durch die Gleichung (12) beschriebenen Codewortes W₀
mittels der in Fig. 3 dargestellten dritten Paritätserzeugungsschaltung
treten allerdings Probleme dergestalt
auf, daß der ROM 22 zur Speicherung jedes Elements
des Paritätserzeugungspolynoms H₁ verwendet werden muß,
weil die Paritätserzeugungsmatrix H₁ keine Regularität
hat, und jedes der Koeffizientenmultiplizierglieder 21₁
bis 21 n-1 muß derart aufgebaut sein, daß es möglich
ist, mit irgendeiner Art von Koeffizient zu multiplizieren,
weil die Koeffizienten vom ROM 22 sich aufeinanderfolgend
ändern in Abhängigkeit von den Eingangsdaten.
Das Ergebnis davon ist, daß die Skalierung der
dritten Paritätserzeugungsschaltung insgesamt sehr umfangreich
und groß sein muß, so daß die Schaltung einen
hohen Kostenaufwand bedingt.
Demgegenüber multipliziert jedes der Koeffizientenmultiplizierglieder
29₂ bis 29 n-k der vierten Paritätserzeugungsschaltung
nach Fig. 4 stets einen konstanten
Koeffizienten mit einem Eingangssignal, so daß der Aufbau
der Koeffizientenmultiplizierglieder 29₂ bis 29 n-k im
Vergleich zu demjenigen der dritten Paritätserzeugungsschaltung
nach Fig. 3 einfach ist. Jedoch tritt hier das
Problem auf, daß bei der Substitution der mit der Schaltung
nach Fig. 4 erhaltenen Syndrome S₀′ bis S n-k-1′ in
die simultanen Gleichungen (24) zwecks Erzeugung der
Paritäten P i+1 bis P j-1 die Notwendigkeit auftritt, eine
außerordentlich hohe Anzahl von Operationschritten unter
Verwendung der als Beispiel angegebenen arithmetischen
Logikeinheit (ALU) auszuführen.
Die nach der Erfindung ausgebildete Paritätserzeugungsschaltung
vermeidet die Probleme, die oben in Verbindung
mit der erdachten ersten bis vierten Paritätserzeugungsschaltung
aufgezeigt worden sind, und zwar im
wesentlichen durch aufeinanderfolgende Ausführung einer
Division auf der Grundlage eines Paritätserzeugungspolynoms
und einer Division auf der Grundlage eines reziproken
Polynoms.
Fig. 5 zeigt ein Blockdiagramm zur Erläuterung des
Arbeits- oder Opertionsprinzips der nach der Erfindung
ausgebildeten Paritätserzeugungsschaltung. Bei der Schaltung
nach Fig. 5 wird jedes Element der durch die Gleichung
(21) beschriebenen Zeilenmatrix W₀′, in der die
(n-k) Paritäten P i+1 bis P j-1 der durch die Gleichung
(12) beschriebenen Zeilenmatrix W₀ Nullvektoren sind,
an einen Eingangsanschluß 31 gelegt und einer ersten
Dividiereinrichtung 32 zugeführt, in welcher eine Division
ausgeführt wird. Eine zweite Dividiereinrichtung 33
benutzt Divisionsergebnisse (Reste) der ersten Dividiereinrichtung
32 als Anfangswerte und führt eine Division
mit zu Null gemachten Eingangselementen aus. Eine Ausgangseinrichtung
34 gibt (n-k) Divisionsergebnisse
(Reste) von der zweiten Dividiereinrichtung 33 als die
Paritäten P i+1 bis P j-1 aus.
Gemäß einem ersten Ausführungsbeispiel der Erfindung
führt die erste Dividiereinrichtung 32 n Divisionen
oder Dividierschritte durch das in den Gleichungen (6)
und (7) beschriebene Paritätserzeugungspolynom G(x)
durch, und die zweite Dividiereinrichtung 33 führt
(n-j+1) Divisionen oder Dividierschritte durch ein
reziprokes Polynom G*(x) des Paritätserzeugungspolynoms
G(x) aus, wobei das reziproke Polynom G*(x) beschrieben
ist durch
G(x)* = a n-k · x n-k + a n-k-1 · x n-k-1 + . . . + a₁ · x- + 1.
Gemäß einem zweiten Ausführungsbeispiel der Erfindung
führt die erste Dividiereinrichtung 32
n Divisionen oder Dividierschritte durch das oben
angegebene reziproke Polynom G*(x) aus, und die
zweite Dividiereinrichtung 33 führt i Divisionen
oder Dividierschritte durch das Paritätserzeugungspolynom
G(x) aus.
Zunächst soll das Arbeitsprinzip des ersten Ausführungsbeispiels
beschrieben werden. Die durch die
Gleichung (21) beschriebene Zeilenmatrix (Codewort)
W₀′ wird zur Definition eines Polynoms F D(x)′ verwendet,
wie es in der folgenden Gleichung (25) angegeben ist:
F D(x)′ = D₁ · x n-1 + D₂ · x n-2 + . . . + D i · x n-i + D j · x n-j + . . . + D n (25)
In ähnlicher Weise werden die zu erzeugenden
(n-k) Paritäten P i+1 bis P j-1 zur Definition der folgenden
Gleichung (26) verwendet, wobei n-k=
j-i-1, 2 m-1 n und n< j< i ist:
F P(x) = P i+1 · x n-i-1 + P i+2 · x n-i-2 + . . . + P j-1 · x -n-j+1 (26)
Bezeichnet man ein Polynom, das dem durch die
Gleichung (12) beschriebenen, ursprünglichen Codewort
W₀ entspricht, mit F₀(x), kann man dieses Polynom F₀(x)
durch die folgende Gleichung (27) darstellen:
F₀(x) = F D(x)′ + F P(x) (27)
Zunächst kann ein Restpolynom R(x)′, das man bei
der Division des Polynoms F D(x)′ durch das Paritätserzeugungspolynom
G(x) erhält, durch die folgende
Gleichung (28) darstellen:
R(x)′ = R₁′ · x n-k-1 + R₂′ · x n-k-2 + . . . + R n-k-1′ · x + R n-k′ (28)
In ähnlicher Weise kann man ein Restpolynom R(x)″, das
man bei der Division des Polynoms F P(x) durch das Paritätserzeugungspolynom
G(x) erhält, durch die folgende
Gleichung (29) darstellen:
R(x)′′ = R₁″ · x n-k-1 + R₂″ · x n-k-2 + . . .
+ R n-k-l′′ · x + R n-k′′ (29)
derart erzeugt werden, daß das Polynom F₀(x) durch
das Paritätserzeugungspolynom G(x) teilbar ist:
F₀(x) : G(x) = h₁(x) Rest 0 (30)
Die nachstehende Gleichung (31) erhält man, wenn die
Gleichung (27) in die Gleichung (30) substituiert
wird, und es ergeben sich dann auch die nachfolgenden
Gleichungen (32) und (33):
[F D(x)′ + F P(x)] : G(x) = h₂(x) Rest 0 (31)
[F D(x)′ + R(x)′] : G(x) = h₃(x) Rest 0 (32)
[F P(x) + R(x)″] : G(x) = h₄(x) Rest 0 (33)
Aus einem Vergleich zwischen den Gleichungen (28) und
(29) ergibt sich der folgende Satz von Gleichungen (34):
Aus der nachfolgenden Gleichung (35) kann man ersehen,
daß das reziproke Polynom G*(x) des Paritätserzeugungspolynoms
G(x) durch die folgende Gleichung
(36) dargestellt werden kann:
G(x -1) = x -n+k + a₁ · x -n+k+1 + . . . + a n-k-1 · x -1 + a n-k (35)
G*(x) = a n-k · x n-k + a n-k-1 · x n-k-1 + . . . + a₁ · -x + 1 (36)
Den nachfolgenden Satz von Gleichungen (37) erhält
man aus der Schaltung nach Fig. 1, nachdem eine Division
oder ein Dividierschritt durch das Paritätserzeugungspolynom G(x)
ausgeführt worden ist, wenn der Eingang "0"
ist, wobei mit y₁ bis y n-k die Registerwerte der (n-k)
Register vor der Ausführung des Dividierschritts bezeichnet
sind und mit y₁′ bis y n-k ′ die Registerwerte der
(n-k) Register nach der Ausführung des Dividierschritts bezeichnet sind:
Die Gleichung (37) kann in eine Matrixform gebracht
und durch die folgende Gleichung (38) dargestellt
werden:
Die Gleichung (38) kann in die folgende Gleichung (39)
umgeschrieben werden:
y′ = T · y (39)
Gleichermaßen kann die erste Division oder der
erste Dividierschritt durch das reziproke Polynom G*(x),
wobei der Eingang "0" ist, in Matrixform wie durch die
nachfolgende Gleichung (40) dargestellt werden, wobei
mit z₁ bis z n-k die Registerwerte vor der Ausführung
des Dividierschritts und mit z₁′ bis z n-k ′ die Registerwerte
nach der Ausführung des Dividierschritts
bezeichnet sind:
Bezeichnet man den linken Term der Gleichung (40)
als Spaltenvektor z′ und die rechten Terme der Gleichung
(40) als Matrix T* und Spaltenvektor z, erhält
man die folgende Gleichung (41):
z′ = T* · z (41)
Die nachfolgende Gleichung (42) berechnet T · T*,
wobei I eine Einheitsmatrix bezeichnet:
Somit ergeben sich die folgenden Gleichungen:
Die Beziehungen zwischen den Polynomen F P(x) und
R(x)′ (= R(x)″) kann man durch die folgende Gleichung (43)
unter Verwendung der Matrix T wie folgt darstellen:
Unter Verwendung der Gleichung (43) können somit die
Paritäten P i+1 bis P j-1 durch die nachfolgende Gleichung
(44) dargestellt werden:
Demzufolge kann man beim ersten Ausführungsbeispiel
der Erfindung die Gleichung (28) dadurch realisieren,
daß in der ersten Dividiereinrichtung 32 n Dividierschritte
durch das Paritätserzeugungspolynom G(x) ausgeführt
werden, und die Gleichung (44) dadurch realisieren,
daß danach in der zweiten Dividiereinrichtung 33
(n-j+1) Dividierschritte durch das reziproke Polynom
G*(x) mit den in der ersten Dividiereinrichtung 32 erhaltenen
Divisionsergebnissen (Resten) R₁′ bis R n-k ′ als
die Anfangswerte ausgeführt werden. Die Gleichung (44)
zeigt dann auf, daß die (n-k) Paritäten P i+1 bis P j-1
durch Realisierung der Gleichung (44) generiert oder
erzeugt werden können.
Als nächstes soll das Arbeitsprinzip des zweiten
Ausführungsbeispiels der Erfindung beschrieben werden.
Zunächst wird das Codewort W = [C₁, C₂, . . ., C n] des
(n-k)-Reed-Solomon-Code benutzt, um ein durch die folgende
Gleichung (45) definiertes Polynom F C(x) zu definieren,
wobei unterstellt wird, daß (n-k) Paritäten in den
Elementen C₁ bis C n des Codewortes W existieren:
F C(x) = C₁ · x n-1 + C₂ · x n-2 + . . . + C n-1 · x + C n (45)
Es gilt der nachfolgende Satz von Gleichungen (46),
weil dieses Codewort W der durch die Gleichung (4) beschriebenen
Prüfoperation H₀ · W T = [0, . . ., 0] T genügt:
Als nächstes wird ein Codewort W* = [C n, C n-1,
. . ., C₁] betrachtet, das den in umgekehrter Reihenfolge
angeordneten Inhalt des Codewortes W zum Inhalt hat.
Dieses Codewort W* wird zur Definition eines durch die
folgende Gleichung (47) beschriebenen Polynoms F C*(x)
benutzt.
F C*(x) = C n · x n-1 + C n-l · x n-2 + . . . + C₂ · x + C₁ (47)
Die nachfolgende Gleichung (48) kann man durch Transformation
der Gleichung (47) gewinnen:
F C*(x) = x n-1 · [C n + C n-1 · x -1 + . . . + C₂ · x -(n-2) + C₁ -· x -(n-1)]
= x n-1 · F C(x-1) (48)
Aus der Gleichung (46) ergibt sich der nachstehende
Satz von Gleichungen (49):
Folglich kann angenommen werden, daß das Erzeugungspolynom
G(x)′ bezüglich des Codewortes W* durch die
folgende Gleichung (50) beschrieben werden kann:
G(x)′ = (x - 1) · (x - 1/a) · . . . · (x - 1/α n -
Während das Paritätserzeugungspolynom G(x) Wurzeln
von 1, α, . . ., α n - k - 1 hat, weist das durch die Gleichung
(50) beschriebene Erzeugungspolynom G(x)′ Wurzeln
von 1, 1/α, . . ., 1/a n - k - 1 auf, d. h. Wurzeln, bei
denen es sich um die inversen Zahlen der Wurzeln des
Paritätserzeugungspolynoms G(x) handelt. Aus diesem
Grunde ist das Erzeugungspolynom G(x)′ das reziproke
Polynom G*(x) des Paritätserzeugungspolynoms G(x).
Gleichermaßen kann ein Erzeugungspolynom bezüglich des
Codewortes W* behandelt werden wie G*(x) wie im Falle
des Codewortes W, und ein reziprokes Polynom des Polynoms
G*(x) kann behandelt werden wie G(x).
Ein durch die folgende Gleichung (51) beschriebenes
Codewort W₀*, in welchem die (n - k) Paritäten P j - 1,
. . ., P i + 1 Nullvektoren sind, wird zur Definition der
folgenden Gleichung (2) verwendet:
W₀* = [D n , . . ., D j , P j - 1, . . ., P i + 1, D i , . . ., D₁] -(51)
F D *(x) = D n · x n - 1 + D n - 1 · x n - 2 + . . . + D j · -x j - 1 + D i · x i - 1 + . . . + D₂ · x + D₁ (52)
Die Paritäten P j - 1, . . ., P j + 1 kann man in ähnlicher
Weise verwenden, um die folgende Gleichung (53) zu
definieren:
F P *(x) = P j - 1 · x j - 2 + P j - 2 · x j - 3 + . . . + P i- + 1 · x i (53)
Ein Restpolynom, das an erhält bei der Division
von F D *(x) durch das Erzeugungspolynom G*(x) bezüglich
des Codewortes W₀*, und ein Restpolynom, das man erhält
bei der Division von F P *(x) durch das Erzeugungspolynom
G*(x) bezüglich des Codewortes W₀*, sind einander gleich.
Diese Restpolynome werden mit R*(x) bezeichnet und durch
die folgende Gleichung (54) beschrieben:
R*(x) = R n - 1* · x n - k - 1 × R n - k -1* · x n - k - 2 + . . -. + R₂* · x + R₁* (54)
Die Beziehung zwischen F P *(x) und R*(x) kann man
durch die folgende Gleichung (55) unter Verwendung der
Matrix T* wie folgt darstellen:
Folglich können die Paritäten P i + 1 bis P j - 1 beschrieben
werden durch die folgende Gleichung (56) unter Verwendung
der Gleichung (55):
Folglich erhält man beim zweiten Ausführungsbeispiel
der Erfindung die Divisionsergebnisse (Reste) der
Gleichung (54) dadurch, daß in der ersten Dividiereinrichtung
32 n Divisionen oder Dividierschritte durch
das reziproke Polynom G*(x) des Paritätserzeugungspolynoms
G(x) (d. h. durch das Erzeugungspolynom G*(x) bezüglich
des Codewortes W₀*) am Codewort ausgeführt werden,
in welchem die (n - k) Paritäten P i + 1 bis P j - 1 des in
Gleichung (51) dargestellten Codewortes W₀* Nullvektoren
sind, und danach werden die (n - k) Paritäten P i + 1 bis
P j - 1 dadurch gewonnen, daß in der zweiten Dividiereinrichtung
33, die "0"-Eingänge hat, i Divisionen oder
Dividierschritte der Gleichung (56) durch das Paritätserzeugungspolynom
G(x) (d. h. durch das reziproke Polynom
G*(x) bezüglich des Codewortes W₀*) mit den in der
ersten Dividiereinrichtung 32 erhaltenen Divisionsergebnissen
(Resten) als die Anfangswerte ausgeführt
werden.
In dieser Beschreibung bedeutet "ein Dividierschritt",
daß der Grad in dem der Division ausgesetzten
Polynom um eins inkrementiert wird, daß also in dem der
Division ausgesetzten Polynom der maximale Grad von N
auf N - 1 geändert wird.
Als nächstes sollten Blockschaltbilder der Ausführungsbeispiele
nach der Erfindung beschrieben werden.
Fig. 6 zeigt ein Blockschaltbild des ersten Ausführungsbeispiels
der Erfindung. Nach Fig. 6 gelangt ein an
einen Eingangsanschluß 36 gelegtes Eingangssignal zu
einer Gatter- oder Torschaltung 37, und eine Gesamtheit
von k m-Bit-Daten D₁ bis D i sowie D j bis D n und eine
Gesamtheit von (n - k) m-Bit-Nullvektoren, bei denen
es sich um Elemente der in der Gleichung (21) beschriebenen
Zeilenmatrix W₀ handelt, gelangen seriell zu
einem Addierglied 38 n -k′ und zwar in der Reihenfolge
D₁, D₂, . . ., D i , 0, . . ., 0, D j . . ., D n . Die Torschaltung
37 und eine Gatter- oder Torschaltung 44, auf die
auch noch später eingegangen wird, enthalten m UND-Schaltungen
49₁ bis 49 m , die parallel zueinander geschaltet
sind, wie es aus Fig. 7 ersichtlich ist. Jedes
Bit des an den Eingangsanschluß 36 gelegten m-Bit-Eingangssignals
gelangt über Eingangsanschlüsse 47₁ bis
47 m zu den jeweils zugeordneten UND-Schaltungen 49₁ bis
49 m . Über einen Eingangsanschluß 48 wird ein Steuersignal
an jede der UND-Schaltungen 49₁ bis 49 m gelegt,
so daß in Abhängigkeit von dem Steuersignal Ausgangsanschlüssen
50₁ bis 50 m entweder das an den Eingangsanschlüssen
47₁ bis 47 m anliegende Eingangssignal unverändert
zugeführt wird oder ein Signal, bei dem alle
Bits Null sind. Bei der Eingabe der Daten kann man die
Nullvektoren unter Verwendung dieser Torschaltung 37
eingeben.
Das Addierglied 38 n - k und weitere (n - k - 1)
Addierglieder 38₁ bis 38 n - k - 1 liefern ihre Ausgangssignale
an erste Eingangsanschlüsse A von jeweils zugeordneten
(n - k) Datenselektoren 39₁ bis 39 n - k .
Signale, die an Ausgangsanschlüssen Y der Datenselektoren
39₁ bis 39 n - k auftreten, werden unabhängig voneinander
jeweils zugeordneten (n - k) m-Bit-Registern
40₁ bis 40 n - k zugeführt.
Die Ausgangssignale der Addierglieder 38₁ bis
38 n - k - 1 gelangen jeweils zu zweiten Eingangsanschlüssen
B der Datenselektoren 39₂ bis 39 n - k . Ein am Ausgang
der Torschaltung 44 auftretendes Ausgangssignal wird
einem zweiten Eingangssignal B des Datenselektors 39₁
zugeführt. Ausgangssignale der Register 40₁ bis 40 n - k - 1
werden jeweils zugeordneten zweiten Eingangsanschlüssen B
von Datenselektoren 42₁ bis 42 n - k - 1 zugeführt, und die
Ausgangssignale der Register 40₂ bis 40 n - k gelangen zu
jeweiligen ersten Eingangsanschlüssen A der Datenselektoren
42₁ bis 42 n - k - 1. Das Ausgangssignal des Registers
40₁ wird einem ersten Eingangsanschluß eines Datenselek
tors 43 zugeführt. Ein Ausgangssignal des Registers 40 n - k
wird einem zweiten Eingangsanschluß B des Datenselektors
43 über ein Koeffizientenmultiplizierglied 45 zur Multiplikation
mit einem Koeffizienten 1/a n - k zugeführt. Ein
Ausgangssignal von einem Ausgangsanschluß Y des Datenselektors
43 gelangt durch die Torschaltung 44 und tritt
gleichzeitig an Koeffizientenmultipliziergliedern 41₁,
. . ., 41 n - k - 1, 41 n - k zur jeweiligen Multiplikation mit
Koeffizienten a₁, . . ., a n - k - 1, a n - k auf. Ausgangssignale
der Multiplizierglieder 41₁, . . ., 41 n - k - 1, 41 n - k
gelangen zu den jeweiligen Addiergliedern 38₁, . . .,
38 n - k - 1, 38 n - k .
Bevor das erste Datum D₁ zum Addierglied 38 n - k
gelangt, werden die Register 40₁ bis 40 n - k gelöscht.
Weiterhin werden die Datenselektoren 39₁ bis 39 n - k ,
42₁ bis 42 n - k - 1 und 43 alle so gesteuert, daß sie die
ihrem ersten Eingangsanschluß A zugeführten Signale an
ihren Ausgangsanschlüssen Y abgeben. Die Torschaltung 44
wird so gesteuert, daß sie die ihr zugeführten Daten
passieren läßt. Die Paritätserzeugungsschaltung nach
Fig. 6 hat demzufolge jetzt einen Schaltungsaufbau, der
demjenigen der Schaltung nach Fig. 1 ähnlich ist, und
sie bildet die erste Dividiereinrichtung 32. Ersetzt
man in der Schaltung nach Fig. 1 die Register 13₁ bis
13 n - k durch die Register 40₁ bis 40 n - k , die Addierglieder
12₁ bis 12 n - k durch die Addierglieder 38₁ bis
38 n - k und die Multiplizierglieder 14₁ bis 14 n - k durch
die Multiplizierglieder 41₁ bis 41 n - k erhält man eine
Schaltung, die der Schaltung nach Fig. 6 für den Fall
entspricht, daß dort die Datenselektoren 39₁ bis 39 n - k ,
42₁ bis 42 n - k - 1 und 43 an ihren ersten Ausgängen diejenigen
Signale abgeben, die ihren ersten Eingangsanschlüssen A
zugeführt werden.
Wenn sich die dem Addierglied 38 n - k über die Torschaltung
37 zugeführten Daten von einem gewissen Datum
zu einem nächsten Datum ändern, kann die Änderung in den
Registerwerten beschrieben werden durch den folgenden
Satz von Gleichungen (57), worin mit r₁, . . ., r n - k - 1,
r n - k die Registerwerte der Register 40₁, . . ., 40 n - k - 1,
40 n - k , mit C X die Eingabedaten und mit a₁, . . ., a n - k - 1,
a n - k die Multiplikationskoeffizienten (Konstanten) der
Multiplizierglieder 41₁, . . ., 41 n - k - 1, 41 n - k bezeichnet
sind:
Folglich wird ein Dividierschritt jedesmal ausgeführt,
wenn eines der n Elemente der durch die Gleichung
(21) beschriebenen Zeilenmatrix W₀ dem Addierglied
38 n - k zugeführt und in das Register 40 n - k eingegeben
wird. Es werden n Dividierschritte ausgeführt,
wenn alle Elemente der n-Elemente in ähnlicher Weise
eingegeben werden. Als Ergebnis verbleiben daher, wie
bereits oben beschrieben, die Divisionsergebnisse
(Reste) R₁, . . ., R n - k - 1′, R n - k ′, die man bei der
Division mit dem Paritätserzeugungspolynom G(x) erhält,
in den jeweiligen Registern 40₁, . . ., 40 n - k - 1, 40 n - k .
Als nächstes werden Nullvektoren mittels der Torschaltung
37 eingegeben, wobei die Torschaltung 37 so
gesteuert wird, daß sie ihren Eingang weiterleitet,
und alle Datenselektoren 39₁ bis 39 n - k , 42₁ bis
42 n - k - 1 und 43 werden umgeschaltet und so gesteuert,
daß an ihren Ausgangsanschlüssen die ihren zweiten
Eingangsanschlüssen B zugeführten Eingangssignale auftreten.
Folglich wird die in Fig. 6 dargestellte
Schaltung zu einer Dividierschaltung des reziproken
Polynoms G*(x), in der die in den Registern 40₁ bis
40 n - k verbliebenen Divisionsergebnisse (Reste) R₁′
bis R n - k ′ als Anfangswerte benutzt werden und die Eingangselemente
dadurch zu "0" gemacht werden, daß der
Eingangsanschluß 36 von der Schaltung abgetrennt wird.
Die Schaltungsanordnung nach Fig. 6 nimmt dann ein in
Fig. 8 dargestelltes Ersatzschaltbild an.
In Fig. 8 sind diejenigen Teile, die Teilen nach
Fig. 6 entsprechen, mit denselben Bezugszeichen versehen.
Bei jeder einmaligen Eingabe des Taktimpulses
ändern sich die Registerwerte (gespeisten Werte) in
den Registern 40₁ bis 40 n - k dieser zweiten Dividierschaltung
nach Fig. 8, wie es durch den folgenden Satz
von Gleichungen (58) beschrieben ist, wobei mit 1/a n - k
der Multiplikationskoeffizient des Multiplizierglieds 45,
mit a₁, . . ., a n - k - 1 jeweils die Multiplizierkoeffizienten
der Multiplizierglieder 41₁, . . ., 41 n - k - 1 und mit
r₁, r n - k - 1, r n - k jeweils die Registerwerte in den
Registern 40₁, . . ., 40 n - k - 1, 40 n - k bezeichnet sind:
Wenn demzufolge der Taktimpuls insgesamt (n - j + 1)
mal eingegeben worden ist und (n - j + 1) Divisionen oder
Dividierschritte ausgeführt worden sind, ist es möglich,
die zweite Dividiereinrichtung 33 in der zuvor beschriebenen
Weise zu realisieren. Als Ergebnis verbleiben
folglich, wie es in der Gleichung (44) dargestellt ist,
die Paritäten P i + 1, P j - 2, P j - 1 als Registerwerke in den
Registern 40₁, . . ., 40 n - k - 1, 40 n - k .
Als nächstes werden alle Datenselektoren 39₁ bis
39 n - k , 42₁ bis 42 n - k - 1 und 33 umgeschaltet und so gesteuert,
daß an ihren Ausgangsanschlüssen jeweils die
ihren Eingangsanschlüssen A zugeführten Eingangssignale
auftreten. Weiterhin werden die Torschaltungen 37 und
44 so gesteuert, daß sie fortwährend Nullvektoren ausgeben.
Die in Fig. 6 dargestellte Schaltungsanordnung
nimmt daher ein Ersatzschaltbild nach Fig. 9 an. Auf
diese Weise ist es möglich, die bereits beschriebene
Ausgangseinrichtung 34 zu realisieren.
In Fig. 9 sind diejenigen Teile, die Teilen nach
Fig. 6 entsprechen, mit denselben Bezugszeichen versehen.
Die Ausgangssignale der Multiplizierglieder 41₁
bis 41 n - k werden zu Nullvektoren, und zwar infolge der
von der Torschaltung 44 ausgegebenen Nullvektoren, und
es ist auf diese Weise möglich, die in den Registern
40₁, . . ., 40 n - k - 1, 40 n - k gespeicherten Paritäten P i + 1,
. . ., P jn 2, 0 j -1 seriell dem Ausgangsanschluß 46 zuzuführen.
Bei dem betrachteten Ausführungsbeispiel der Erfindung
führen alle Multiplizierglieder 41₁ bis 41 n - k und
45 eine Multiplikation mit einem konstanten Multiplikationskoeffizienten
aus und haben demzufolge einen einfachen
Schaltungsaufbau. Es ist nicht erforderlich, eine
arithmetische Logikeinheit (ALU) oder dergleichen zu
verwenden. Weiterhin ist es möglich, die Schaltungsanordnung
äußerst einfach und kostengünstig auszubilden,
und zwar dadurch, daß die Register 40₁ bis 40 n - k für
die Divisionen in beiden Stufen gemeinsam genutzt werden.
Als nächstes wird das zweite Ausführungsbeispiel der
erfindungsgemäßen Paritätserzeugungsschaltung näher betrachtet.
Das zweite Ausführungsbeispiel der Erfindung
ist in Fig. 10 dargestellt, in der diejenigen Teile, die
Teilen nach Fig. 6 entsprechen, mit denselben Bezugszeichen
versehen sind. Eine Einzelbeschreibung dieser Teile
entfällt. Bei dem zweiten Ausführungsbeispiel sind ein
Eingangsanschluß 52, eine Gatter- oder Torschaltung 53
und ein Addierglied 54 im Vergleich zum ersten Ausführungsbeispiel
hinzugefügt worden, wohingegen der Eingangsanschluß
36, die Torschaltung 37 und das Addierglied
38 n - k entfallen. Die an den Eingangsanschluß 52
gelegten k Daten D n bis D j und D i bis D₁ werden durch
die Torschaltung 53 weitergeleitet, und die Paritäten
P i + 1 bis P j - 1 in dem durch die Gleichung (51) beschriebenen
Codewort W₀* werden von der Torschaltung 53 zu
Null gemacht. Folglich gelangen insgesamt n Elemente
zum Addierglied 54 und zwar in der Reihenfolge der Daten
D n , D n - 1, . . . , D₂, D₁.
Nachdem die Register 40₁ bis 40 n - k gelöscht sind,
werden alle Datenselektoren 39₁ bis 39 n - k , 42₁ bis 42 n - k - 1
und 43 so gesteuert, daß sie an ihren Ausgangsanschlüssen
diejenigen Eingangssignale abgeben, die den zweiten Eingangsanschlüssen
B zugeführt werden. Die Torschaltung 44
läßt das Ausgangssignal des Datenselektors 43 passieren.
Folglich nimmt die Schaltungsanordnung nach Fig. 10 das
Schaltbild nach Fig. 8 an, wobei jedoch das Addierglied 54
zusätzlich auf der Eingangsseite des Registers 40₁ zwecks
Addition des Ausgangssignals des Multiplizierglieds 45
und des Signals von der Torschaltung 53 vorgesehen ist.
Eine auf solche Weise gebildete Dividierschaltung führt n
Dividierschritte oder Divisionen durch das reziproke
Polynom G*(x) bezüglich der Eingangsvektoren durch, und
die mittels der ersten Dividiereinrichtung 32 gewonnenen
Divisionsergebnisse (Reste) R₁*, . . ., R n - k - 1*, R n - k *
der Gleichung (54) verbleiben jeweils in den Registern
40₁, 40 n - k - 1, 40 n - k .
Als nächstes werden alle Datenselektoren 39₁ bis
39 n - k , 42₁ bis 42 n - k - 1 und 43 umgeschaltet und so gesteuert,
daß an ihren Ausgangsanschlüssen die Eingangssignale
von ihren ersten Eingangsanschlüssen A anliegen.
Die Torschaltung 44 läßt das Ausgangssignal des Datenselektors
43 passieren. Die Schaltungsanordnung nach
Fig. 10 nimmt daher jetzt eine der Schaltung nach
Fig. 1 äquivalente Schaltung an, wobei jedoch ein dem
Addierglied 12 n - k entsprechendes Addierglied nicht vorhanden
ist, so daß das Signal vom Multiplizierglied 41 n - k
(Multiplizierglied 14 n - k in Fig. 1) zur Multiplikation
des Koeffizienten a n - k direkt zum Register 40 n - k gelangt.
Folglich werden Eingangsdaten vom Eingangsanschluß
52 nicht zugeführt, und die den oben beschriebenen Aufbau
annehmende Schaltung führt i Dividierschritte aus, und
zwar unter Verwendung der Divisionsergebnisse der ersten
Dividiereinrichtung 32 als Anfangswerte und mit zu "0"
gemachten Eingangselementen. Wenn die durch die Gleichung
(56) beschriebenen i Dividierschritte durch das Paritätserzeugungspolynom
G(x) beendet wird, verbleiben die Paritäten
P i + 1, . . ., P j - 1 jeweils in den Registern 40₁, . . .,
40 n - k .
Als nächstes werden alle Datenselektoren 39₁ bis
39 n - k , 42₁ bis 42 n - k - 1 und 43 so gesteuert, daß sie fortfahren,
an ihren Ausgangsanschlüssen diejenigen Eingangssignale
abzugeben, die an ihren ersten Eingangsanschlüssen
A anliegen. Die Torschaltungen 44 und 53 werden so
gesteuert, daß sie Nullvektoren ausgeben. Die unter diesen
Bedingungen mittels der zweiten Dividiereinrichtung
33 erzeugten Registerwerke, die in den Registern 40₁ bis
40 n - k gespeichert sind, werden aufeinanderfolgend aus
den Registern 40₁, 40₂, . . ., 40 n - k - 1, 40 n - k in dieser
genannten Reihenfolge als die Paritäten P i + 1, P i + 2,
. . ., P j - 2, P j - 1 ausgelesen und treten dementsprechend
am Ausgangsanschluß 46 auf.
Bei beiden Ausführungsbeispielen nach Fig. 6 und
10 ist es möglich, alle Datenselektoren 39₁ bis 39 n - k ,
42₁ bis 42 n - k - 1 und 43 so zu schalten und zu steuern,
daß sie an ihren Ausgängen die ihren zweiten Eingangsanschlüssen
B zugeführten Eingangssignale abgeben, wenn
die Registerwerte aus den Registern 40₁ bis 40 n - k ausgelesen
werden. In diesem Fall werden die Paritäten
P j - 1, P j - 2. . . . , P i + 1 aufeinanderfolgend über das
Register 40 n - k in dieser Reihenfolge erhalten.
Weiterhin kann man die Ausführungsbeispiele nach
Fig. 6 und 10 kombinieren, so daß zwei Eingangsanschlüsse
vorhanden sind und die Paritäten wahlweise in Abhängigk 00781 00070 552 001000280000000200012000285910067000040 0002003702697 00004 00662eit
davon erzeugt werden können, ob der Eingang
des Codewortes vom Datum D₁ aus oder vom Datum D n aus
gemacht wird. In diesem Fall sind Maßnahmen vorgesehen,
die dafür sorgen, daß von dem nicht benutzten Eingangsanschluß
fortwährend Nullvektoren ausgegeben werden.
Bei den betrachteten Ausführungsbeispielen der Erfindung
werden die Register und Multiplizierglieder für
die Zwecke der ersten und der zweiten Dividiereinrichtung
gemeinsam genutzt. Nach der Erfindung können aber
auch die erste und die zweite Dividiereinrichtung durch
voneinander unabhängige Schaltungen realisiert sein.
Claims (4)
1. Paritätserzeugungsschaltung zum Erzeugen von Paritäten
eines Reed-Solomon-Code, der definiert ist durch ein Paritätsgeneratorpolynom
G(x), welches beschrieben ist durch:
G(x) = (x-1) · (x-α) · . . . · (x-α n-k-1)
= x n-k + a₁ · x n-k-1 + a₂ · x n-k-2 + . . . + a n-k-1 · x + a n--k′worin α ein primitives Element vom Galois-Feld GF (2 m) und
a₁ bis a n-k Konstanten sind und 2 m-1 n< k, enthaltend Addierglieder,
Register und Multiplizierglieder, die eine Rückführschleife
bilden,
dadurch gekennzeichnet,
daß das Reed-Solomon-Codewort dargestellt ist durch eine Reihenmatrix W₀ = [D₁, D₂, . . ., D i, P i+1, . . ., P j-1, D j, . . ., D n], worin D₁ bis D i und D j bis D n k m-Bit-Daten und P i+1 bis P j-1 (n-k) m-Bit-Paritäten bezeichnen sowie n-k=j-i-1 und n< j< i ist,
daß einem Addierglied (38 n-k ) der Addierglieder (38₁-38 n-k ) die Elemente D₁, D₂, . . ., D i , 0, . . ., D j , . . ., D n aufeinanderfolgend zugeführt werden, so daß die Addierglieder (38₁ bis 38 n-k ), die Register (40₁ bis 40 n-k ) und die Multiplizierglieder (41₁ bis 41 n-k , 45) jedesmal, wenn eines der Elemente D₁, D₂, . . ., D i , 0, . . ., 0, D j , . . ., D n dem einen Addierglied zugeführt wird, einen Dividierschritt durch das Paritätsgeneratorpolynom G(x) ausführen, wobei das Divisionsergebnis des Dividierschritts durch das Paritätsgeneratorpolynom G(x) in Form von Werten in den Registern gewonnen wird, und
daß nach n-maliger Ausführung des Dividierschritts durch das Paritätsgeneratorpolynom G(x) die Addierglieder, Register und Multiplizierglieder bezüglich der Werte in den Registern einen Dividierschritt durch ein reziprokes Polynom G*(x) des Paritätsgeneratorpolynoms G(x) ausführen, wobei das reziproke Polynom G*(x) beschrieben ist durchG*(x) = a n-k · x n-k + a n-k-1 · x n-k-1 + . . . + a₁ · x + 1,
-das Divisionsergebnis des Dividierschritts durch das reziproke Polynom G*(x) in Form von neuen Werten in den Registern gewonnen wird und nach (n-j+1)-maliger Ausführung des Dividierschritts durch das reziproke Polynom G*(x) in den Registern die Paritäten P i+1, . . ., P j-1 enthalten sind.
daß das Reed-Solomon-Codewort dargestellt ist durch eine Reihenmatrix W₀ = [D₁, D₂, . . ., D i, P i+1, . . ., P j-1, D j, . . ., D n], worin D₁ bis D i und D j bis D n k m-Bit-Daten und P i+1 bis P j-1 (n-k) m-Bit-Paritäten bezeichnen sowie n-k=j-i-1 und n< j< i ist,
daß einem Addierglied (38 n-k ) der Addierglieder (38₁-38 n-k ) die Elemente D₁, D₂, . . ., D i , 0, . . ., D j , . . ., D n aufeinanderfolgend zugeführt werden, so daß die Addierglieder (38₁ bis 38 n-k ), die Register (40₁ bis 40 n-k ) und die Multiplizierglieder (41₁ bis 41 n-k , 45) jedesmal, wenn eines der Elemente D₁, D₂, . . ., D i , 0, . . ., 0, D j , . . ., D n dem einen Addierglied zugeführt wird, einen Dividierschritt durch das Paritätsgeneratorpolynom G(x) ausführen, wobei das Divisionsergebnis des Dividierschritts durch das Paritätsgeneratorpolynom G(x) in Form von Werten in den Registern gewonnen wird, und
daß nach n-maliger Ausführung des Dividierschritts durch das Paritätsgeneratorpolynom G(x) die Addierglieder, Register und Multiplizierglieder bezüglich der Werte in den Registern einen Dividierschritt durch ein reziprokes Polynom G*(x) des Paritätsgeneratorpolynoms G(x) ausführen, wobei das reziproke Polynom G*(x) beschrieben ist durchG*(x) = a n-k · x n-k + a n-k-1 · x n-k-1 + . . . + a₁ · x + 1,
-das Divisionsergebnis des Dividierschritts durch das reziproke Polynom G*(x) in Form von neuen Werten in den Registern gewonnen wird und nach (n-j+1)-maliger Ausführung des Dividierschritts durch das reziproke Polynom G*(x) in den Registern die Paritäten P i+1, . . ., P j-1 enthalten sind.
2. Paritätserzeugungsschaltung nach Anspruch 1,
dadurch gekennzeichnet,
daß die Paritätserzeugungsschaltung erste bis (n-k) te Register (40 n-k , 40 n-k-1, . . ., 40₁), erste bis (n-k) te Addierglieder (38 n-k , 38 n-k-1, . . ., 38₁), erste bis n-k-1)te Multiplizierglieder (41 n-k-1, 42 n-k-2, . . ., 41₁), ein (n-k) tes Multiplizierglied (41 n-k ), ein (n-k+1)tes Multiplizierglied (45) und eine Schalteinrichtung (43, 39 n-k , 39 n-k-1, . . ., 39₁, 42 n-k-1, 42 n-k-2, . . ., 42₁) zum Schalten von Eingangs- und Ausgangssignalen der Register enthält,
daß die Schalteinrichtung in einem ersten Schaltzustand ein Ausgangssignal des (n-k) ten Registers (40₁) an jedes der zweiten bis (n-k) ten Addierglieder (38 n-k-1, . . ., 38₁) über entsprechende der ersten bis (n-k-1)ten Multiplizierglieder (41 n-k-1, . . ., 41₁) liefert, so daß die zweiten bis (n-k) ten Addierglieder Ausgangssignale der ersten bis (n-k-1)ten Register (40 n-k , . . ., 40₂) und Ausgangssignale von entsprechenden der ersten bis (n-k-1)ten Multiplizierglieder jeweils addieren, und ein Ausgangssignal des (n-k) ten Registers (40₁) an das erste Addierglied (38 n-k) über das (n-k) te Multiplizierglied (41 n-k) liefert, so daß das erste Addierglied ein Eingangssignal enthaltend die Elemente der Zeilenmatrix W O und ein Ausgangssignal des (n-k) ten Multipliziergliedes (41 n-k) addiert und ein Additionssignal an das erste Register (40 n-k) liefert,
daß die Schalteinrichtung in einem zweiten Schaltzustand das Ausgangssignal des ersten Registers (40 n-k) an jedes der ersten bis (n-k-1)ten Multiplizierglieder und an das (n-k) te Register (40₁) über das (n-k+1)te Multiplizierglied (45) liefert, so daß die zweiten bis (n-k) ten Addierglieder die Ausgangssignale der ersten bis (n-k-1)ten Multiplizierglieder und der zweiten bis (n-k) ten Register (40 n-k-1, . . ., 40₁) addieren und Additionssignale der ersten bis (n-k) ten Addierglieder jeweils den ersten bis (n-k-1)ten Registern (40 n-k , . . ., 40₂) zugeführt werden,
daß die Paritäten P i+1 bis P j-1 aus dem (n-k) ten Register (40₁) geschoben werden, wenn sich die Schalteinrichtung im ersten Schaltzustand befindet, und dem ersten Addierglied (38 n-k ) sowie den ersten bis (n-k) ten Multipliziergliedern eine Null zugeführt wird,
daß die ersten bis (n-k-1)ten Multiplizierglieder (41 n-k-1, . . ., 41₁) jeweils eine Multiplikation mit den Koeffizienten a₁ bis a n-k-1 durchführen,
daß das (n-k) te Multiplizierglied (41 n-k ) eine Multiplikation mit dem Koeffizienten a n-k durchführt und daß das (n-k+1)te Multiplizierglied (45) eine Multiplikation mit dem Koeffizienten 1/a n-k durchführt, und
daß die Schalteinrichtung enthält: einen ersten Datenselektor (43) zum wahlweisen Zuführen an die ersten bis (n-k) ten Multiplizierglieder das Ausgangssignal des (n-k) ten Registers im ersten Schaltzustand und das Ausgangssignal des (n-k+1)ten Multiplizierglieds im zweiten Schaltzustand, (n-k) zweite Datenselektoren (39 n-k , . . ., 39₁), wobei ein L-ter zweiter Datenselektor an ein L-tes Register das Ausgangssignal eines L-ten Addierglieds im ersten Schaltzustand und das Ausgangssignal eines (L+1)ten Addierglieds im zweiten Schaltzustand wahlweise liefert, und zwar mit L=1, 2, . . ., (n-k-1), und wobei ein (n-k) ter zweiter Datenselektor (39₁) an das (n-k) te Register das Ausgangssignal des (n-k) ten Addierglieds im ersten Schaltzustand und das Ausgangssignal des ersten Datenselektors im zweiten Schaltzustand wahlweise liefert, und (n-k-1) dritte Datenselektoren (42 n-k-1, . . ., 42₁), wobei ein M-ter dritter Datenselektor an ein (M+1)tes Addierglied das Ausgangssignal eines M-ten Registers im ersten Schaltzustand und das Ausgangssignal eines (M+1)ten Registers im zweiten Schaltzustand wahlweise liefert, und zwar mit M=1, 2, . . ., (n-k-1).
daß die Paritätserzeugungsschaltung erste bis (n-k) te Register (40 n-k , 40 n-k-1, . . ., 40₁), erste bis (n-k) te Addierglieder (38 n-k , 38 n-k-1, . . ., 38₁), erste bis n-k-1)te Multiplizierglieder (41 n-k-1, 42 n-k-2, . . ., 41₁), ein (n-k) tes Multiplizierglied (41 n-k ), ein (n-k+1)tes Multiplizierglied (45) und eine Schalteinrichtung (43, 39 n-k , 39 n-k-1, . . ., 39₁, 42 n-k-1, 42 n-k-2, . . ., 42₁) zum Schalten von Eingangs- und Ausgangssignalen der Register enthält,
daß die Schalteinrichtung in einem ersten Schaltzustand ein Ausgangssignal des (n-k) ten Registers (40₁) an jedes der zweiten bis (n-k) ten Addierglieder (38 n-k-1, . . ., 38₁) über entsprechende der ersten bis (n-k-1)ten Multiplizierglieder (41 n-k-1, . . ., 41₁) liefert, so daß die zweiten bis (n-k) ten Addierglieder Ausgangssignale der ersten bis (n-k-1)ten Register (40 n-k , . . ., 40₂) und Ausgangssignale von entsprechenden der ersten bis (n-k-1)ten Multiplizierglieder jeweils addieren, und ein Ausgangssignal des (n-k) ten Registers (40₁) an das erste Addierglied (38 n-k) über das (n-k) te Multiplizierglied (41 n-k) liefert, so daß das erste Addierglied ein Eingangssignal enthaltend die Elemente der Zeilenmatrix W O und ein Ausgangssignal des (n-k) ten Multipliziergliedes (41 n-k) addiert und ein Additionssignal an das erste Register (40 n-k) liefert,
daß die Schalteinrichtung in einem zweiten Schaltzustand das Ausgangssignal des ersten Registers (40 n-k) an jedes der ersten bis (n-k-1)ten Multiplizierglieder und an das (n-k) te Register (40₁) über das (n-k+1)te Multiplizierglied (45) liefert, so daß die zweiten bis (n-k) ten Addierglieder die Ausgangssignale der ersten bis (n-k-1)ten Multiplizierglieder und der zweiten bis (n-k) ten Register (40 n-k-1, . . ., 40₁) addieren und Additionssignale der ersten bis (n-k) ten Addierglieder jeweils den ersten bis (n-k-1)ten Registern (40 n-k , . . ., 40₂) zugeführt werden,
daß die Paritäten P i+1 bis P j-1 aus dem (n-k) ten Register (40₁) geschoben werden, wenn sich die Schalteinrichtung im ersten Schaltzustand befindet, und dem ersten Addierglied (38 n-k ) sowie den ersten bis (n-k) ten Multipliziergliedern eine Null zugeführt wird,
daß die ersten bis (n-k-1)ten Multiplizierglieder (41 n-k-1, . . ., 41₁) jeweils eine Multiplikation mit den Koeffizienten a₁ bis a n-k-1 durchführen,
daß das (n-k) te Multiplizierglied (41 n-k ) eine Multiplikation mit dem Koeffizienten a n-k durchführt und daß das (n-k+1)te Multiplizierglied (45) eine Multiplikation mit dem Koeffizienten 1/a n-k durchführt, und
daß die Schalteinrichtung enthält: einen ersten Datenselektor (43) zum wahlweisen Zuführen an die ersten bis (n-k) ten Multiplizierglieder das Ausgangssignal des (n-k) ten Registers im ersten Schaltzustand und das Ausgangssignal des (n-k+1)ten Multiplizierglieds im zweiten Schaltzustand, (n-k) zweite Datenselektoren (39 n-k , . . ., 39₁), wobei ein L-ter zweiter Datenselektor an ein L-tes Register das Ausgangssignal eines L-ten Addierglieds im ersten Schaltzustand und das Ausgangssignal eines (L+1)ten Addierglieds im zweiten Schaltzustand wahlweise liefert, und zwar mit L=1, 2, . . ., (n-k-1), und wobei ein (n-k) ter zweiter Datenselektor (39₁) an das (n-k) te Register das Ausgangssignal des (n-k) ten Addierglieds im ersten Schaltzustand und das Ausgangssignal des ersten Datenselektors im zweiten Schaltzustand wahlweise liefert, und (n-k-1) dritte Datenselektoren (42 n-k-1, . . ., 42₁), wobei ein M-ter dritter Datenselektor an ein (M+1)tes Addierglied das Ausgangssignal eines M-ten Registers im ersten Schaltzustand und das Ausgangssignal eines (M+1)ten Registers im zweiten Schaltzustand wahlweise liefert, und zwar mit M=1, 2, . . ., (n-k-1).
3. Paritätserzeugungsschaltung zum Erzeugen von Paritäten
eines Reed-Solomon-Code, der definiert ist durch ein Paritätsgeneratorpolynom
G(x), welches beschrieben ist durch:
G(x) = (x-1) · (x-α) · . . . · (x-α n-k-1)
= x n-k + a₁ · x n-k-1 + a₂ · x n-k-2 + . . . + a n-k-1 · x + a n--k′worin α ein primitives Element vom Galois-Feld GF (2 m) und
a₁ bis a n-k Konstanten sind und 2 m-1 n< k, enthaltend Addierglieder,
Register und Multiplizierglieder, die eine Rückführschleife
bilden,
dadurch gekennzeichnet,
daß das Reed-Solomon-Codewort dargestellt ist durch eine Reihenmatrix W₀ = [D₁, D₂, . . . D i, P i+1, . . ., P j-1, D j, . . ., D n], worin D₁ bis D i und D j bis D n k m-Bit-Daten und P i+1 bis P j-1 (n-k) m-Bit-Paritäten bezeichnen sowie n-k=j-i-1 und n< j< i ist,
daß einem Addierglied (54) der Addierglieder (54, 38₁ bis 38 n-k-1) die Elemente D n , . . ., D j , 0, . . ., 0, D i , . . ., D₂, D₁ aufeinanderfolgend zugeführt werden, so daß die Addierglieder (54, 38₁ bis 38 n-k-1), Register (40₁ bis 40 n-k ) und Multiplizierglieder (41₁ bis 41 n-k , 45) jedesmal, wenn eines der Elemente D n , . . ., D j , 0, . . ., 0, D i , . . ., D₂, D₁ dem einen Addierglied zugeführt wird, einen Dividierschritt durch ein reziprokes Polynom G*(x) des Paritätsgeneratorpolynoms G(x) ausführen, wobei das reziproke Polynom G*(x) beschrieben ist durchG*(x) = a n-k · x n-k + a n-k-1 · x n-k-1 + . . . + a₁ · x + 1,
-und das Divisionsergebnis des Dividierschritts durch das reziproke Polynom G*(x) in Form von neuen Werten in den Registern gewonnen wird und
daß nach n-maliger Durchführung des Dividierschritts durch das reziproke Polynom G*(x) die Addierglieder, Register und Multiplizierglieder einen Dividierschritt durch das Paritätsgeneratorpolynoms G(x) bezüglich der Werte in den Registern vornehmen, wobei das Divisionsergebnis des Dividierschrittes durch das Paritätsgeneratorpolynoms G(x) in Form von neuen Werten in den Registern erhalten wird und, nachdem der Dividierschritt durch das Paritätsgeneratorpolynom G(x) i-mal ausgeführt worden ist, die Paritäten P i+1, . . ., P j-1 in den Registern enthalten sind.
daß das Reed-Solomon-Codewort dargestellt ist durch eine Reihenmatrix W₀ = [D₁, D₂, . . . D i, P i+1, . . ., P j-1, D j, . . ., D n], worin D₁ bis D i und D j bis D n k m-Bit-Daten und P i+1 bis P j-1 (n-k) m-Bit-Paritäten bezeichnen sowie n-k=j-i-1 und n< j< i ist,
daß einem Addierglied (54) der Addierglieder (54, 38₁ bis 38 n-k-1) die Elemente D n , . . ., D j , 0, . . ., 0, D i , . . ., D₂, D₁ aufeinanderfolgend zugeführt werden, so daß die Addierglieder (54, 38₁ bis 38 n-k-1), Register (40₁ bis 40 n-k ) und Multiplizierglieder (41₁ bis 41 n-k , 45) jedesmal, wenn eines der Elemente D n , . . ., D j , 0, . . ., 0, D i , . . ., D₂, D₁ dem einen Addierglied zugeführt wird, einen Dividierschritt durch ein reziprokes Polynom G*(x) des Paritätsgeneratorpolynoms G(x) ausführen, wobei das reziproke Polynom G*(x) beschrieben ist durchG*(x) = a n-k · x n-k + a n-k-1 · x n-k-1 + . . . + a₁ · x + 1,
-und das Divisionsergebnis des Dividierschritts durch das reziproke Polynom G*(x) in Form von neuen Werten in den Registern gewonnen wird und
daß nach n-maliger Durchführung des Dividierschritts durch das reziproke Polynom G*(x) die Addierglieder, Register und Multiplizierglieder einen Dividierschritt durch das Paritätsgeneratorpolynoms G(x) bezüglich der Werte in den Registern vornehmen, wobei das Divisionsergebnis des Dividierschrittes durch das Paritätsgeneratorpolynoms G(x) in Form von neuen Werten in den Registern erhalten wird und, nachdem der Dividierschritt durch das Paritätsgeneratorpolynom G(x) i-mal ausgeführt worden ist, die Paritäten P i+1, . . ., P j-1 in den Registern enthalten sind.
4. Paritätserzeugungsschaltung nach Anspruch 3,
dadurch gekennzeichnet,
daß die Paritätserzeugungsschaltung erste bis (n-k) te Register (40₁, . . ., 40 n-k ), erste bis (n-k) te Addierglieder (54, 38₁, . . ., 38 n-k-1), erste bis (n-k-1)te Multiplizierglieder (41₁, . . ., 41 n-k-1), ein (n-k) tes Multiplizierglied (41 n-k ), ein (n-k+1)tes Multiplizierglied (45) und eine Schalteinrichtung (43, 39₁, . . ., 39 n-k , 42₁, . . ., 42 n-k-1) zum Schalten von Eingangs- und Ausgangssignalen der Register enthält,
daß die Schalteinrichtung in einem ersten Schaltzustand ein Ausgangssignal des (n-k) ten Registers (40 n-k ) an jedes der zweiten bis (n-k) ten Addierglieder (38₁, . . ., 38 n-k-1) über das (n-k+1)te Multiplizierglied (45) und entsprechende der ersten bis (n-k-1)ten Multiplizierglieder (41₁, . . ., 41 n-k-1) liefert, so daß die zweiten bis (n-k) ten Addierglieder Ausgangssignale der ersten bis (n-k-1)ten Register (40₁, . . ., 40 n-k-1) und Ausgangssignale von entsprechenden der ersten bis (n-k-1)ten Multiplizierglieder jeweils addieren, und ein Ausgangssignal des (n-k) ten Registers (40 n-k ) an das erste Addierglied (54) über das (n-k+1)te Multiplizierglied (45) liefert, so daß das erste Addierglied ein Eingangssignal enthaltend die Elemente der Zeilenmatrix W O und ein Ausgangssignal des (n-k+1)ten Multipliziergliedes addiert und ein Additionssignal an das erste Register (40₁) liefert,
daß die Schalteinrichtung in einem zweiten Schaltzustand das Ausgangssignal des ersten Registers (40₁) an jedes der ersten bis (n-k-1)ten Multiplizierglieder (41₁, . . ., 41 n-k-1) liefert, so daß die zweiten bis (n-k) ten Addierglieder (38₁, . . ., 38 n-k ) die Ausgangssignale der ersten bis (n-k-1)ten Multiplizierglieder und der zweiten bis (n-k) ten Register addieren und Additionssignale der zweiten bis (n-k) ten Addierglieder den ersten bis (n-k-1) ten Registern jeweils zugeführt werden und das Additionssignal des (n-k) ten Multiplizierglieds (41 n-k ) an das (n-k) te Register (40 n-k ) geliefert wird,
daß die Paritäten P i+1 bis P j-1 aus dem ersten Register (40₁) geschoben werden, wenn sich die Schalteinrichtung im ersten Zustand befindet, und dem ersten Addierglied (54) sowie den ersten bis (n-k) ten Multipliziergliedern eine Null zugeführt wird,
daß die ersten bis (n-k)ten Multiplizierglieder (41₁, . . ., 41 n-k-1) jeweils eine Multiplikation mit den Koeffizienten a₁ bis a n-k-1 durchführen,
daß das (n-k) te Multiplizierglied (41 n-k ) eine Multiplikation mit dem Koeffizienten a n-k durchführt und daß das (n-k+1)te Multiplizierglied (45) eine Multiplikation mit dem Koeffizienten 1/a n-k durchführt, und
daß die Schalteinrichtung enthält: einen ersten Datenselektor (43) zum wahlweisen Zuführen zu den ersten bis (n-k) ten Multipliziergliedern (41₁, . . ., 41 n-k ) das Ausgangssignal des (n-k+1)ten Multiplizierglieds (45) im ersten Schaltzustand und das Ausgangssignal des ersten Registers (40₁) im zweiten Schaltzustand, (n-k) zweite Datenselektoren (39₁, . . ., 39 n-k ), wobei ein L-ter zweiter Datenselektor an ein L-tes Register das Ausgangssignal eines L-ten Addierers im ersten Schaltzustand und das Ausgangssignal eines (L+1)ten Addierglieds im zweiten Schaltzustand wahlweise liefert, und zwar mit L=1, 2, . . ., (n-k-1), und wobei ein (n-k) ter zweiter Datenselektor (39 n-k ) an das (n-k) te Register das Ausgangssignal des (n-k-1)ten Addierglieds (38 n-k-1) im ersten Schaltzustand und das Ausgangssignal des (n-k) ten Multiplizierglieds (41 n-k ) im zweiten Schaltzustand wahlweise liefert, und (n-k-1) dritte Datenselektoren (42₁, . . ., 42 n-k-1), wobei ein M-ter dritter Datenselektor an ein (M+1)tes Addierglied das Ausgangssignal eines M-ten Registers im ersten Schaltzustand und das Ausgangssignal eines (M+1)ten Registers im zweiten Schaltzustand wahlweise liefert, und zwar mit M=1, 2, . . ., (n-k-1).
daß die Paritätserzeugungsschaltung erste bis (n-k) te Register (40₁, . . ., 40 n-k ), erste bis (n-k) te Addierglieder (54, 38₁, . . ., 38 n-k-1), erste bis (n-k-1)te Multiplizierglieder (41₁, . . ., 41 n-k-1), ein (n-k) tes Multiplizierglied (41 n-k ), ein (n-k+1)tes Multiplizierglied (45) und eine Schalteinrichtung (43, 39₁, . . ., 39 n-k , 42₁, . . ., 42 n-k-1) zum Schalten von Eingangs- und Ausgangssignalen der Register enthält,
daß die Schalteinrichtung in einem ersten Schaltzustand ein Ausgangssignal des (n-k) ten Registers (40 n-k ) an jedes der zweiten bis (n-k) ten Addierglieder (38₁, . . ., 38 n-k-1) über das (n-k+1)te Multiplizierglied (45) und entsprechende der ersten bis (n-k-1)ten Multiplizierglieder (41₁, . . ., 41 n-k-1) liefert, so daß die zweiten bis (n-k) ten Addierglieder Ausgangssignale der ersten bis (n-k-1)ten Register (40₁, . . ., 40 n-k-1) und Ausgangssignale von entsprechenden der ersten bis (n-k-1)ten Multiplizierglieder jeweils addieren, und ein Ausgangssignal des (n-k) ten Registers (40 n-k ) an das erste Addierglied (54) über das (n-k+1)te Multiplizierglied (45) liefert, so daß das erste Addierglied ein Eingangssignal enthaltend die Elemente der Zeilenmatrix W O und ein Ausgangssignal des (n-k+1)ten Multipliziergliedes addiert und ein Additionssignal an das erste Register (40₁) liefert,
daß die Schalteinrichtung in einem zweiten Schaltzustand das Ausgangssignal des ersten Registers (40₁) an jedes der ersten bis (n-k-1)ten Multiplizierglieder (41₁, . . ., 41 n-k-1) liefert, so daß die zweiten bis (n-k) ten Addierglieder (38₁, . . ., 38 n-k ) die Ausgangssignale der ersten bis (n-k-1)ten Multiplizierglieder und der zweiten bis (n-k) ten Register addieren und Additionssignale der zweiten bis (n-k) ten Addierglieder den ersten bis (n-k-1) ten Registern jeweils zugeführt werden und das Additionssignal des (n-k) ten Multiplizierglieds (41 n-k ) an das (n-k) te Register (40 n-k ) geliefert wird,
daß die Paritäten P i+1 bis P j-1 aus dem ersten Register (40₁) geschoben werden, wenn sich die Schalteinrichtung im ersten Zustand befindet, und dem ersten Addierglied (54) sowie den ersten bis (n-k) ten Multipliziergliedern eine Null zugeführt wird,
daß die ersten bis (n-k)ten Multiplizierglieder (41₁, . . ., 41 n-k-1) jeweils eine Multiplikation mit den Koeffizienten a₁ bis a n-k-1 durchführen,
daß das (n-k) te Multiplizierglied (41 n-k ) eine Multiplikation mit dem Koeffizienten a n-k durchführt und daß das (n-k+1)te Multiplizierglied (45) eine Multiplikation mit dem Koeffizienten 1/a n-k durchführt, und
daß die Schalteinrichtung enthält: einen ersten Datenselektor (43) zum wahlweisen Zuführen zu den ersten bis (n-k) ten Multipliziergliedern (41₁, . . ., 41 n-k ) das Ausgangssignal des (n-k+1)ten Multiplizierglieds (45) im ersten Schaltzustand und das Ausgangssignal des ersten Registers (40₁) im zweiten Schaltzustand, (n-k) zweite Datenselektoren (39₁, . . ., 39 n-k ), wobei ein L-ter zweiter Datenselektor an ein L-tes Register das Ausgangssignal eines L-ten Addierers im ersten Schaltzustand und das Ausgangssignal eines (L+1)ten Addierglieds im zweiten Schaltzustand wahlweise liefert, und zwar mit L=1, 2, . . ., (n-k-1), und wobei ein (n-k) ter zweiter Datenselektor (39 n-k ) an das (n-k) te Register das Ausgangssignal des (n-k-1)ten Addierglieds (38 n-k-1) im ersten Schaltzustand und das Ausgangssignal des (n-k) ten Multiplizierglieds (41 n-k ) im zweiten Schaltzustand wahlweise liefert, und (n-k-1) dritte Datenselektoren (42₁, . . ., 42 n-k-1), wobei ein M-ter dritter Datenselektor an ein (M+1)tes Addierglied das Ausgangssignal eines M-ten Registers im ersten Schaltzustand und das Ausgangssignal eines (M+1)ten Registers im zweiten Schaltzustand wahlweise liefert, und zwar mit M=1, 2, . . ., (n-k-1).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61022616A JPS62180617A (ja) | 1986-02-04 | 1986-02-04 | パリテイ生成回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3702697A1 DE3702697A1 (de) | 1987-09-10 |
DE3702697C2 true DE3702697C2 (de) | 1989-04-06 |
Family
ID=12087771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19873702697 Granted DE3702697A1 (de) | 1986-02-04 | 1987-01-30 | Paritaetserzeugungsschaltung |
Country Status (3)
Country | Link |
---|---|
US (1) | US4809275A (de) |
JP (1) | JPS62180617A (de) |
DE (1) | DE3702697A1 (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07114374B2 (ja) * | 1986-10-03 | 1995-12-06 | 三菱電機株式会社 | 短縮巡回符号の符号化装置 |
US5115436A (en) * | 1990-05-04 | 1992-05-19 | Bell Communications Research | Forward error correction code system |
JPH05175852A (ja) * | 1991-12-25 | 1993-07-13 | Matsushita Electric Ind Co Ltd | 誤り訂正符復号装置 |
US5473620A (en) * | 1993-09-21 | 1995-12-05 | Cirrus Logic, Inc. | Programmable redundancy/syndrome generator |
US6370671B1 (en) * | 1998-06-18 | 2002-04-09 | Globespan, Inc. | Configurable decoder and method for decoding a reed-solomon codeword |
DE59800859D1 (de) * | 1998-10-20 | 2001-07-19 | Dig Microcode Gmbh | Verfahren und Anordnung zum Erzeugen von fehlergesicherten Datenblöcken durch Erzeugen von Paritätsworten und Datenträger mit gemäss dem Verfahren erzeugten Datenblöcken |
US6324638B1 (en) * | 1999-03-31 | 2001-11-27 | International Business Machines Corporation | Processor having vector processing capability and method for executing a vector instruction in a processor |
US6571368B1 (en) * | 2000-02-02 | 2003-05-27 | Macronix International Co., Ltd. | Systolic Reed-Solomon decoder |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58158566A (ja) * | 1982-03-17 | 1983-09-20 | Hitachi Ltd | 検査装置 |
US4646303A (en) * | 1983-10-05 | 1987-02-24 | Nippon Gakki Seizo Kabushiki Kaisha | Data error detection and correction circuit |
JPH0812612B2 (ja) * | 1983-10-31 | 1996-02-07 | 株式会社日立製作所 | 誤り訂正方法及び装置 |
US4627058A (en) * | 1984-01-27 | 1986-12-02 | Pioneer Electronic Corporation | Code error correction method |
JPS60178717A (ja) * | 1984-02-24 | 1985-09-12 | Victor Co Of Japan Ltd | リ−ド・ソロモン符号生成回路 |
NL8400629A (nl) * | 1984-02-29 | 1985-09-16 | Philips Nv | Snelle decodeur voor reed-solomon-codes, welke mede als encodeur te gebruiken is, alsmede opname/reproduktie-apparaat voorzien van zo een encodeur/decodeur. |
JPS6222616A (ja) * | 1985-07-22 | 1987-01-30 | 森 武志 | トイレ装置 |
-
1986
- 1986-02-04 JP JP61022616A patent/JPS62180617A/ja active Granted
-
1987
- 1987-01-21 US US07/005,744 patent/US4809275A/en not_active Expired - Lifetime
- 1987-01-30 DE DE19873702697 patent/DE3702697A1/de active Granted
Non-Patent Citations (2)
Title |
---|
R.E.BLAHUT "Theory and Practice of Error Control Codes", Addison Wesley Publ.Co. 1983, S.96-101 * |
W.W.PETERSON, E.J.WELDON jun., "Error-Correcting Codes" 2.Aufl., MIT Press 1972, S.170-189,276, 277,308,309 * |
Also Published As
Publication number | Publication date |
---|---|
JPH0476540B2 (de) | 1992-12-03 |
JPS62180617A (ja) | 1987-08-07 |
DE3702697A1 (de) | 1987-09-10 |
US4809275A (en) | 1989-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69424877T2 (de) | Reed-solomon-dekoder | |
DE69834542T2 (de) | Hardwareoptimierter reed-solomon-decoder zur decodierung grosser datenblöcke | |
DE3382661T2 (de) | Korrektur von fehlerbuendeln in datengruppen. | |
DE69919199T2 (de) | Vorwärtsfehlerkorrektur | |
DE2916710C2 (de) | ||
DE3852423T2 (de) | Kodierverfahren und Kodierer mit Reed-Solomon Fehlerkorrekturcode. | |
DE4229666C2 (de) | Wechselseitig arbeitende Divisionsschaltung | |
DE3784459T2 (de) | Arithmetische und logische einheit fuer elemente von galois-feldern. | |
DE69615475T2 (de) | Schaltungsvorrichtung mit einer permutationseinheit und verarbeitungsverfahren für einen stapel von elementen | |
DE3650335T2 (de) | Rechenverfahren und -gerät für endlichfeldmultiplikation. | |
DE69414631T2 (de) | Schaltung zur Durchführung des Euclidschen Algorithmus bei der Dekodierung Arithmetischer Kodes | |
DE4241903C2 (de) | Euklidische wechselseitige Divisionsschaltung | |
DE19758079A1 (de) | Verfahren und Vorrichtung zur Galoisfeld-Multiplikation | |
DE69728945T2 (de) | Reed-Solomon Dekoder | |
DE3787900T2 (de) | Verfahren und Gerät zur Erzeugung von Prüfungs-Byten zur Fehlerdetektion für einen Datenblock. | |
DE1905138A1 (de) | Fehlerbuendei korrigierende Entschluesselungseinrichtung | |
DE69907566T2 (de) | Reed Solomon Kodierungsgerät und Reed Solomon Kodierungsverfahren | |
EP0545498B1 (de) | Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen | |
DE19922253A1 (de) | Kodiervorrichtung für RAID-6-Systeme und Bandlaufwerke | |
DE4105860C2 (de) | Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten | |
DE10105626B4 (de) | Verfahren und System zur Berechnung von zyklischem Blockprüfungscode und Verfahren zum Erkennen eines Fehlers | |
DE69732076T2 (de) | Reed-Solomon Dekodierer mit universeller Prozessoreinheit und speziellen Schaltungen | |
DE3702697C2 (de) | ||
DE3404417A1 (de) | Codierer-pruefschaltungsanordnung | |
DE2606931A1 (de) | Verfahren zur erzeugung von werten mathematischer funktionen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8181 | Inventor (new situation) |
Free format text: INOUE, YASUO YAMADA, YASUHIRO, YOKOSUKA, KANAGAWA, JP |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Free format text: PATENTANWAELTE REICHEL UND REICHEL, 60322 FRANKFURT |
|
8339 | Ceased/non-payment of the annual fee |