DE3702697A1 - Paritaetserzeugungsschaltung - Google Patents
ParitaetserzeugungsschaltungInfo
- Publication number
- DE3702697A1 DE3702697A1 DE19873702697 DE3702697A DE3702697A1 DE 3702697 A1 DE3702697 A1 DE 3702697A1 DE 19873702697 DE19873702697 DE 19873702697 DE 3702697 A DE3702697 A DE 3702697A DE 3702697 A1 DE3702697 A1 DE 3702697A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- output signal
- adder
- switching state
- multiplier
- 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.)
- Granted
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 die 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 übertragenen 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 1
bis C n Daten oder Paritäten sind und wenigstens ein
Datum und eine Parität vorhanden sind:
W = [C 1, C 2, . . . , C n ] (1)
Weiterhin sind C 1 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 0
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)
dargestelltes Syndrom S als eine Spaltenmatrix mit
(n-k) Nullvektoren beschrieben werden kann, wobei
T in Gleichung (4) eine transponierte Matrix
bezeichnet.
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 1 bis D k
Daten bezeichnen und P k+1 bis P n Paritäten bezeichnen:
W = [D 1, D 2, . . . , D k , P k+1, P k+2, . . . , P n ] (5)
G(x) = (x-1) · (x-α) · (x-α 2) · . . . · (x-α n-k-1) (6)
Die folgende Gleichung (7) gewinnt man durch Erweiterung
der Gleichung (6), wobei a 1 bis a n-k Koeffizienten
sind, die durch das primitive Element α
beschrieben sein können:
G(x) = x n-k + a 1·x n-k-1 + a 2·x n-k-2 + . . . + a n-k-1· x + a n-k (7)
Benutzt man die Daten [D 1, D 2, . . . , 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 1·x n-1 + D 2· x n-2 + . . . + D k ·x n-k (8)
R(x) = R 1·x n-k-1 + R 2· x n-k-2 + . . . + R n-k-2·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 1·x n-1 + D 2·x n-2 + . . . + D k ·x n-k + R 1· x n-k-1 + R 2·x n-k-2 + . . . + R n-k-1·x + R n-k (10)
= D 1·x n-1 + D 2·x n-2 + . . . + D k ·x n-k + R 1· x n-k-1 + R 2·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-Code 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 0
aus Paritäten P i+1 bis P j-1 und Daten D 0 bis D i sowie
Daten D j bis D n mit den Elementen des 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 0, bei dem sich die Paritäten P i+1 bis
P j-1 zwischen den Daten D 1 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 0 = [D 1, D 2, . . . , 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 0 durch
die Gleichung (12) beschrieben ist und die Paritäten
P i+1 bis P j-1 zwischen den Daten D 1 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
keine Regularität hat, und daß
jede Koeffizientenmultipliziereinrichtung der dritten
erdachten Schaltung derart konstruiert sein muß, daß
es möglich ist, die Multiplikation mit irgendeiner Art
von Koeffizient auszuführen, weil sich die Koeffizienten
vom ROM in Abhängigkeit von den Eingabedaten
aufeinanderfolgend ändern. Die Folge davon ist, daß
die Skalierung 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 j-1 es erforderlich ist, eine außerordentlich hohe
Anzahl von Operationsschritten vorzunehmen, und zwar
beispielsweise unter Verwendung einer arithmetischen
Logikeinheit (ALU).
Aufgabe der Erfindung ist es daher, eine neuartige
und nützliche Paritätserzeugungsschaltung zu schaffen,
bei der die oben angegebenen Probleme vermieden sind.
Eine Paritätserzeugungsschaltung zum Erzeugen von
Paritäten P i+1, . . . , P j-1 eines Reed-Solomon-Code, der
durch eine Zeilenmatrix W 0 = [D 1, D 2, . . . , D i , P i+1,
. . . , P j-1, D j , . . . , D n ] beschrieben ist, in welcher
D 1 bis D i sowie D j bis D n k m-Bit-Daten und P i+1 bis
P j-1 (n-k) m-Bit-Paritäten darstellen, wobei n-k =
j-i-1, 2 m -1 n und n ≦λτ j ≦λτi ist, enthält nach
der Erfindung eine erste Dividiereinrichtung, der aufeinanderfolgend
Elemente D 1, D 2, . . . , D n einer Zeilenmatrix
W 0′ in dieser Reihenfolge zugeführt werden zum
Ausführen von n Dividierschritten durch ein Paritätserzeugungspolynom
G(x), wobei die Zeilenmatrix W 0′
gleich der Zeilenmatrix W 0 mit auf Nullvektoren gesetzten
Paritäten P i+1 bis P j-1 ist, so daß W 0′ =
[D 1, D 2, . . . , D i , 0, . . . , 0, D j , . . . , D n ], ferner
das Paritätserzeugungspolynom G(x) beschrieben ist
durch
G(x)= (x-1) · (x-α) · . . . · (x-α n-k-1)
= x n-k + a 1·x n-k-1 + a 2· x n-k-2 + . . . + a n-k-1·x + a n-k′ ,
= x n-k + a 1·x n-k-1 + a 2· x n-k-2 + . . . + a n-k-1·x + a n-k′ ,
α ein primitives Element im Galois-Feld GF(2 m ) ist
und a 1 bis a n-k Konstanten sind, eine zweite Dividiereinrichtung
zum Ausführen von (n-j+1) Dividierschritten
durch ein reziprokes Polynom G*(x) des
Paritätserzeugungspolynoms G(x) unter Verwendung von
in der ersten Dividiereinrichtung erhaltenen Divisionsergebnissen
(Reste) als Anfangswerte und mit auf
Null gesetzten Eingangselementen, 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 1· x+1,
und eine Ausgangseinrichtung zum Ausgeben von in der
zweiten Dividiereinrichtung erhaltenen (n-k) Divisionsergebnissen
(Resten) als die Paritäten P i+1 bis
P j-1. Wenn bei der erfindungsgemäßen Paritätserzeugungsschaltung
die Paritäten eines (n, k)-Reed-
Solomon-Code erzeugt werden, brauchen die Multipliziereinrichtungen
der Paritätserzeugungsschaltung
nur konstante Multiplikationskoeffizienten zu multiplizieren,
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, die
beispielsweise bei 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.
Eine Paritätserzeugungsschaltung zum Erzeugen
von Paritäten P i+1, . . . , P j-1 eines Reed-Solomon-Code,
der durch eine Zeilenmatrix W 0 = [D 1, D 2, . . . , D i ,
P i+1, . . . , P j-1, D j , . . . , D n ] beschrieben ist, bei der
D 1 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 darstellen, wobei n-k =
j-i-1, 2 m -1 n und n ≦λτ j ≦λτi ist, enthält nach
der Erfindung eine erste Dividiereinrichtung, der
Elemente D n , . . . , D j , 0, . . . , 0, D i , . . . , D 2, D 1 einer
Zeilenmatrix W 0′ in dieser Reihenfolge aufeinanderfolgend
zugeführt werden zum Ausführen von n Dividierschritten
durch ein reziprokes Polynom G*(x) eines
Paritätserzeugungspolynoms G(x), wobei die Zeilenmatrix
W 0′ gleich der Zeilenmatrix W 0 mit den auf Nullvektoren
gesetzten Paritäten P i+1 bis P j-1 ist, so daß W 0′ =
[D 1, D 2, . . . , D i , 0, . . . , 0, D j , . . . , D n ], wobei
ferner das Paritätserzeugungspolynom G(x) beschrieben
ist durch
G(x)= (x-1) · (x-α) · . . . · (x-α n-k-1)
= x n-k + a 1·x n-k-1 + a 2· x n-k-2 + . . . + a n-k-1·x + a n-k′
= x n-k + a 1·x n-k-1 + a 2· x n-k-2 + . . . + a n-k-1·x + a n-k′
worin α ein primitives Element im Galois-Feld GF(2 m )
und a 1 bis a n-k Konstanten sind, und 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 1· x+1,
eine zweite Dividiereinrichtung zum Ausführen von i
Dividierschritten durch das Paritätserzeugungspolynom
G(x) unter Verwendung von in der ersten Dividiereinrichtung
erhaltenen Divisionsergebnissen (Resten) als
Anfangswerte und mit auf Null gesetzten Eingangselementen,
und mit einer Ausgangseinrichtung zum Ausgeben
von in der zweiten Dividiereinrichtung erhaltenen
(n-k) Divisionsergebnissen (Resten) als die Paritäten
P i+1 bis P j-1. Wenn bei dieser erfindungsgemäßen Paritätserzeugungsschaltung
die Paritäten eines (n, k)-
Reed-Solomon-Code erzeugt werden, brauchen die Multipliziereinrichtungen
der Paritätserzeugungseinrichtung
lediglich konstante Multiplikationskoeffizienten zu
multiplizieren, 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 unter Ausführung von Operationsschritten
zu erzeugen, deren Anzahl wesentlich geringer als die
Anzahl der Operationsschritte ist, die beispielsweise
bei Verwendung einer arithmetischen Logikeinheit (ALU)
vorzunehmen sind. Das Ergebnis davon ist, daß die erfindungsgemäße
Paritätserzeugungsschaltung einen einfacheren
Schaltungsaufbau hat und kostengünstiger herzustellen
ist.
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 Blockschaltbilds 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 1 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 1, D 2, D 3, . . . , 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, das Register 13 n-k-1, . . . , und das Register 13 1
in dieser Reihenfolge transferiert.
Ein Ausgangssignal des Registers 13 1 in der
letzten Stufe wird Koeffizientenmultipliziergliedern
14 1, 14 2, . . . , 14 n-k-1 und 14 n-k zur Multiplikation
der jeweiligen Koeffizienten a 1, a 2, . . . , a n-k-1 und
a n-k der Gleichung (7) zugeführt. Ausgangssignale der
Multiplizierglieder 14 1 bis 14 n-k werden unabhängig
den entsprechenden Addierern oder Addiergliedern 12 1
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 1 bis 14 n-k
sind folglich Multiplizierglieder im GF(2 m ), und die
Addierglieder 12 1 bis 12 n-k sind Modulo-2-Addierglieder
zum Ausführen einer Modulo-2-Addition der
m-Bit-Signale (Vektoren) von den Multipliziergliedern
14 1 bis 14 n-k und der m-Bit-Signale (Vektoren) von
den Registern 13 2 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 1, . . . , R n-k-1 und R n-k des durch die Gleichung
(10) beschriebenen Restpolynoms R(x) in den jeweiligen
(n-k) Registern 13 1, . . . , 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 1 bis 13 n-k aufeinanderfolgend ausgelesen werden.
Bei der zweiten denkbaren Paritätserzeugungsschaltung
nach Fig. 2 werden andererseits, nachdem
Register 18 1 bis 18 n-k alle gelöscht sind, lediglich
die Daten [D 1, D 2, . . . , D k ] seriell an einen Eingangsanschluß
15 gelegt und über einen Addierer oder ein
Addierglied 16 1 (n-k) Koeffizientenmultipliziergliedern
17 1, . . . , 17 n-k-1 und 17 n-k zugeführt. Die
Multiplizierglieder 17 1, . . . , 17 n-k-1 und 17 n-k multiplizieren
zu dem Ausgangssignal des Addierglieds 16 1
jeweils die Koeffizienten a 1, . . . , a n-k-1 und a n-k
der Gleichung (7). Ausgangssignale der Multiplizierglieder
17 1 bis 17 n-k-1 werden unabhängig entsprechenden
Addiergliedern 16 2 bis 16 n-k zugeführt, die in den
Eingangsstufen der Register 18 1 bis 18 n-k-1 vorgesehen
sind. Ein Ausgangssignal des Multiplizierglieds 17 n-k
gelangt zum Register 18 n-k . Ausgangssignale der Register
18 2 bis 18 n-k werden den entsprechenden Addiergliedern
16 2 bis 16 n-k zugeführt, und ein Ausgangssignal
des Addierglieds 16 2 wird dem Register 18 1
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 1, die Multiplizierglieder 17 1
bis 17 n-k und die Addierglieder 16 2 bis 16 n-k in die
Register 18 1 bis 18 n-k eingegeben worden ist, können
die Paritäten dadurch erzeugt werden, daß die gespeicherten
Werte (Registerwerte) aus den Registern 18 1
bis 18 n-k ausgelesen werden. Weil lediglich die Daten
D 1 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 0 aus Paritäten
P i+1 bis P j-1 und Daten D 0 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 j-1 für ein Codewort W 0
nicht erzeugt werden können, wenn sich die Paritäten
P i+1 bis P j-1 zwischen den Daten D 1 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 selbst wenn das Codewort W 0 durch die Gleichung
(12) beschrieben ist und die Paritäten P i+1
bis P j-1 zwischen den Daten D 1 bis D i und den Daten
D j bis D n liegen.
Zuerst soll die dritte Paritätserzeugungsschaltung
beschrieben werden. Durch Transformation der oben
beschriebenen Prüfmatrix H 0 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 0 und durch mehrmaliges Ausführen einer solchen
Addition (Matrixtransformation) werden eine (i+1)te
Spalte bis zu einer (j-1)ten Spalte in eine Einheitsmatrix
transformiert. Eine durch eine solche Matrixtransformation
gewonnene Matrix H 0′ 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 0′ ist ebenfalls eine Prüfmatrix
und genügt der folgenden Gleichung (14), wenn dort
(n-k) Nullen vorhanden sind:
H 0′·W = [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 i+1 bis P j-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 1 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 1 das Paritätserzeugungspolynom
ist:
P = H 1·D (17)
Fig. 3 zeigt die dritte Paritätserzeugungsschaltung,
die von der Paritätserzeugungsmatrix H 1 Gebrauch
macht. Einem Eingangsanschluß 20 werden lediglich die
Daten D 1 bis D i und D j bis D n des durch die Gleichung
(12) beschriebenen Codewortes W 0 zugeführt. Die Eingangsdaten
gelangen zu (n-k) Koeffizientenmultipliziergliedern
21 1 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 1
vorgespeichert sind. Ausgangssignale der Multiplizierglieder
21 1 bis 21 n-k werden an entsprechende Addierglieder
23 1 bis 23 n-k weitergeleitet und gelangen zu
entsprechenden Registern 24 1 bis 24 n-k zur dortigen
Zwischenspeicherung. Im einzelnen wird beispielsweise
das erste Eingangsdatum D 1 in den Multipliziergliedern
21 1 bis 21 n-k mit den aus dem ROM 22 ausgelesenen (n-k)
Koeffizienten a 1,1 bis a n-k,1 der ersten Spalte der
Paritätserzeugungsmatrix H 1 multipliziert. Das nächste
Eingangsdatum D 2 wird dann in den jeweiligen Multipliziergliedern
21 1 bis 21 n-k mit den aus dem ROM 22 ausgelesenen
Koeffizienten a 1,2 bis a n-k,2 der zweiten
Spalte der Paritätserzeugungsmatrix H 1 multipliziert,
und die Ausgangssignale der Multiplizierglieder 21 1 bis
21 n-k werden in den jeweiligen Addiergliedern 23 1 bis
23 n-k mit den entsprechenden vorausgegangenen Multiplikationsergebnissen
addiert, die man aus den Registern
24 1 bis 24 n-k erhält, und die Additionsergebnisse werden
dann wieder in den Registern 24 1 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 1, 24 2, . . . ,
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 0·W durch die folgende Gleichung (18) beschrieben,
wobei S 0 bis S n-k-1 Elemente vom GF(2 m ) sind, erhält
man die folgende Gleichung (19):
S = [S 0, S 1, . . . , S n-k-1] T (18)
S = H 0·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 0 Nullvektoren
sind, mit W 0′, kann man ein Syndrom S′ bezüglich des
in der folgenden Gleichung (21) beschriebenen Codewortes
W 0′ durch die folgende Gleichung (22) darstellen,
wobei S 0′ bis S n-k-1′ Elemente vom GF(2 m ) sind:
W 0′ = [D 1, D 2, . . . , D i , 0, 0, . . . , 0, D j , . . . , D n ] (21)
S′ = [S 0′, S 1′, . . . , S n-k-1′] T
= H 0·W′ T (22)
= H 0·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 0′, 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 1 bis 27 n-k
zugeführt. Ausgangssignale der Addierglieder 27 1 bis
27 n-k werden unabhängig entsprechenden Registern 28 1
bis 28 n-k zugeführt. Das Ausgangssignal des Registers
28 1 gelangt direkt zum Addierglied 27 1 (oder über ein
Koeffizientenmultiplizierglied zur Multiplikation mit
einem Koeffizienten "1"), und die Ausgangssignale der
Register 28 2 bis 28 n-k werden durch jeweilige Koeffizientenmultiplizierglieder
29 2 bis 29 n-k zur Multiplikation
mit Koeffizienten α bis α n-k-1 geleitet und
gelangen dann zu den jeweils zugeordneten Addiergliedern
27 2 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) beschriebenen Syndrome S 0′, S 1′, . . . , S n-k-1′ parallel
an den Registern 28 1, 28 2, . . . , 28 n-k erhält.
Werden diese Syndrome S 0′, S 1′, . . . , 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 0
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 1 verwendet werden muß,
weil die Paritätserzeugungsmatrix H 1 keine Regularität
hat, und jedes der Koeffizientenmultiplizierglieder 21 1
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 2 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 2 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 0′ 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 Operationsschritten 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 Operationsprinzips der nach der Erfindung
ausgebildeten Paritätserzeugungsschaltung. Bei der Schaltung
nach Fig. 5 wird jedes Element der durch die Gleichung
(21) beschriebenen Zeilenmatrix W 0′, in der die
(n-k) Paritäten P i+1 bis P j-1 der durch die Gleichung
(12) beschriebenen Zeilenmatrix W 0 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 1·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 0′ wird zur Definition eines Polynoms F D (x)′ verwendet,
wie es in der folgenden Gleichung (25) angegeben ist:
F D (x)′ = D 1·x n-1 + D 2· x n-2 + . . . + D i ·x n-i + D j · 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 0 entspricht, mit F 0(x), kann man dieses Polynom F 0(x)
durch die folgende Gleichung (27) darstellen:
F 0(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 1′·x n-k-1 + R 2′· 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 1″·x n-k-1 + R 2″· x n-k-2 + . . . + R n-k-1″·x + R n-k ″ (29)
Die nachfolgende Gleichung (30) gilt, weil die Paritäten
derart erzeugt werden, daß das Polynom F 0(x) durch
das Paritätserzeugungspolynom G(x) teilbar ist:
F 0(x) : G(x) = h 1(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 2(x) Rest 0 (31)
[F D (x)′ + R(x)′] : G(x) = h 3(x) Rest 0 (32)
[F p (x) + R(x)″] : G(x) = h 4(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 1·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 1· 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 1 bis y n-k die Registerwerte der (n-k)
Register vor der Ausführung des Dividierschritts bezeichnet
sind und mit y 1′ 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 1 bis z n-k die Registerwerte vor der Ausführung
des Dividierschritts und mit z 1′ 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 1′ 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 1, C 2, . . . , 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 1 bis C n des Codeworts W existieren:
F C (x) = C 1·x n-1 + C 2· 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 0·W T = [0, . . . , 0] T genügt:
Als nächstes wird ein Codewort W* = [C n , C n-1,
. . . , C 1] 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-1· x n-2 + . . . + C 2·x + C 1 (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 2·x -(n-2) + C 1·x -(n-1)]
= x n-1·F C (x -1) (48)
= 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/α) · . . . · (x 1/α n-k-1) (50)
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/α 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 0*, in welchem die (n-k) Paritäten P j-1,
. . . , P i+1 Nullvektoren sind, wird zur Definition der
folgenden Gleichung (52) verwendet:
W 0* = [D n , . . . , D j , P j-1, . . . , P i+1, D i , . . . , D 1] (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 2·x + D 1 (52)
Die Paritäten P j-1, . . . , P i+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 man erhält bei der Division
von F D *(x) durch das Erzeugungspolynom G*(x) bezüglich
des Codewortes W 0*, und ein Restpolynom, das man erhält
bei der Division von F p *(x) durch das Erzeugungspolynom
G*(x) bezüglich des Codewortes W 0*, sind einander gleich.
Diese Restpolynome werden mit R*(x) bezeichnet und durch
die folgende Gleichung (54) beschrieben:
R*(x) = R n-k *·x n-k-1 + R n-k-1*·x -n-k-2 + . . . + R 2*·x + R 1 (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 0*) 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 0* 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 0*) 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 sollen 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 1 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 0 handelt, gelangen seriell zu
einem Addierglied 38 n-k , und zwar in der Reihenfolge
D 1, D 2, . . . , 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 1 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 1 bis
47 m zu den jeweils zugeordneten UND-Schaltungen 49 1 bis
49 m . Über einen Eingangsanschluß 48 wird ein Steuersignal
an jede der UND-Schaltungen 49 1 bis 49 m gelegt,
so daß in Abhängigkeit von dem Steuersignal Ausgangsanschlüssen
50 1 bis 50 m entweder das an den Eingangsanschlüssen
47 1 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 1 bis 38 n-k-1 liefern ihre Ausgangssignale
an erste Eingangsanschlüsse A von jeweils zugeordneten
(n-k) Datenselektoren 39 1 bis 39 n-k .
Signale, die an Ausgangsanschlüssen Y der Datenselektoren
39 1 bis 39 n-k auftreten, werden unabhängig voneinander
jeweils zugeordneten (n-k) m-Bit-Registern
40 1 bis 40 n-k zugeführt.
Die Ausgangssignale der Addierglieder 38 1 bis
38 n-k-1 gelangen jeweils zu zweiten Eingangsanschlüssen
B der Datenselektoren 39 2 bis 39 n-k . Ein am Ausgang
der Torschaltung 44 auftretendes Ausgangssignal wird
einem zweiten Eingangsanschluß B des Datenselektors 39 1
zugeführt. Ausgangssignale der Register 40 1 bis 40 n-k-1
werden jeweils zugeordneten zweiten Eingangsanschlüssen B
von Datenselektoren 42 1 bis 42 n-k-1 zugeführt, und die
Ausgangssignale der Register 40 2 bis 40 n-k gelangen zu
jeweiligen ersten Eingangsanschlüssen A der Datenselektoren
42 1 bis 42 n-k-1. Das Ausgangssignal des Registers
40 1 wird einem ersten Eingangsanschluß eines Datenselektors
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 1,
. . . , 41 n-k-1, 41 n-k zur jeweiligen Multiplikation mit
Koeffizienten a 1, . . . , a n-k-1, a n-k auf. Ausgangssignale
der Multiplizierglieder 41 1, . . . , 41 n-k-1, 41 n-k
gelangen zu den jeweiligen Addiergliedern 38 1, . . . ,
38 n-k-1, 38 n-k .
Bevor das erste Datum D 1 zum Addierglied 38 n-k
gelangt, werden die Register 40 1 bis 40 n-k gelöscht.
Weiterhin werden die Datenselektoren 39 1 bis 39 n-k ,
42 1 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 1 bis
13 n-k durch die Register 40 1 bis 40 n-k , die Addierglieder
12 1 bis 12 n-k durch die Addierglieder 38 1 bis
38 n-k und die Multiplizierglieder 14 1 bis 14 n-k durch
die Multiplizierglieder 41 1 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 1 bis 39 n-k ,
42 1 bis 42 n-k-1 und 43 an ihren 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
Registerwerden beschrieben werden durch den folgenden
Satz von Gleichungen (57), worin mit r 1, . . . , r n-k-1,
r n-k die Registerwerte der Register 40 1, . . . , 40 n-k-1,
40 n-k , mit C x die Eingabedaten und mit a 1, . . . , a n-k-1,
a n-k die Multiplikationskoeffizienten (Konstanten) der
Multiplizierglieder 41 1, . . . , 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 0 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 1′, . . . , R n-k-1′, R n-k ′, die man bei der
Division mit dem Paritätserzeugungspolynom G4104 00070 552 001000280000000200012000285911399300040 0002003702697 00004 13985<(x) erhält,
in den jeweiligen Registern 40 1, . . . , 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 1 bis 39 n-k , 42 1 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 1 bis
40 n-k verbliebenen Divisionsergebnisse (Reste) R 1′
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 (gespeicherten Werte) in
den Registern 40 1 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 1, . . . , a n-k-1 jeweils die Multiplizierkoeffizienten
der Multiplizierglieder 41 1, . . . , 41 n-k-1 und mit
r 1, . . . , r n-k-1, r n-k jeweils die Registerwerte in den
Registern 40 1, . . . , 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 Registerwerte in den
Registern 40 1, . . . , 40 n-k-1, 40 n-k .
Als nächstes werden alle Datenselektoren 39 1 bis
39 n-k , 42 1 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 1
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 1, . . . , 40 n-k-1, 40 n-k gespeicherten Paritäten P i+1,
. . . , P jn2, O j-1 seriell dem Ausgangsanschluß 46 zuzuführen.
Bei dem betrachteten Ausführungsbeispiel der Erfindung
führen alle Multiplizierglieder 41 1 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 1 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 1 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 0* 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 2, D 1.
Nachdem die Register 40 1 bis 40 n-k gelöscht sind,
werden alle Datenselektoren 39 1 bis 39 n-k , 42 1 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. 4 an, wobei jedoch das Addierglied 54
zusätzlich auf der Eingangsseite des Registers 40 1 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 1*, . . . , R n-k-1*, R n-k *
der Gleichung (54) verbleiben jeweils in den Registern
40 1, . . . , 40 n-k-1, 40 n-k .
Als nächstes werden alle Datenselektoren 39 1 bis
39 n-k , 42 1 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 sind, verbleiben die Paritäten
P i+1, . . . , P j-1 jeweils in den Registern 40 1, . . . ,
30 n-k .
Als nächstes werden alle Datenselektoren 39 1 bis
39 n-k , 42 1 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 Registerwerte, die in den Registern 40 1 bis
40 n-k gespeichert sind, werden aufeinanderfolgend aus
den Registern 40 1, 40 2, . . . , 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 1 bis 39 n-k ,
42 1 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 1 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ängigkeit
davon erzeugt werden können, ob der Eingang
des Codewortes vom Datum D 1 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.
Die Erfindung ist nicht auf die betrachteten Ausführungsbeispiele
beschränkt. Verschiedenartige Abweichungen
und Modifikationen sind im Rahmen der erfindungsgemäßen
Lehre denkbar.
Claims (8)
1. Paritätserzeugungsschaltung zum Erzeugen von
Paritäten P i+1, . . . , P j-1 eines Reed-Solomon-Code,
der beschrieben ist durch eine Zeilenmatrix W 0 =
[D 1, D 2, . . . , D i , P i+1, . . . , P j-1, D j , . . . , D n ],
worin mit D 1 bis D i und D j bis D n k m-Bit-Daten und
mit P i+1 bis P j-1 (n-k) m-Bit-Paritäten bezeichnet
sind und n-k = j-i-1, 2 m -1 n und n ≦λτ j ≦λτ i
sind,
dadurch gekennzeichnet,
daß die Paritätserzeugungsschaltung enthält: eine erste
Dividiereinrichtung (32), der aufeinanderfolgend Elemente
D 1, D 2, . . . , D n einer Zeilenmatrix W 0′, in dieser
Reihenfolge zur Durchführung von n Dividierschritten
durch ein Paritätserzeugungspolynom G(x) zugeführt
werden, wobei die Zeilenmatrix W 0′, gleich der Zeilenmatrix
W 0 mit auf Nullvektoren gesetzten Paritäten
P i+1 bis P j-1 ist, so daß W 0′ = [D 1, D 2, . . . , D i , 0,
. . . , 0, D j , . . . , D n ], und wobei das Paritätserzeugungspolynom
G(x) beschrieben ist durch
G(x)= (x-1) · (x-α) · . . . · (x-α n-k-1)
= x n-k + a 1·x n-k-1 + a 2· x n-k-2 + . . . + a n-k-1·x+a n-k′ ,worin α ein primitives Element vom Galois-Feld GF(2 m ) und a 1 bis a n-k Konstanten sind; eine zweite Dividiereinrichtung (33) zum Ausführen von (n-j+1) Dividierschritten durch ein reziprokes Polynom G*(x) des Paritätserzeugungspolynoms G(x) unter Verwendung der in der ersten Dividiereinrichtung erhaltenen Divisionsergebnisse als Anfangswerte und mit auf Null gesetzten Eingangselementen der Einrichtung, 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 1· x+1;und eine Ausgangseinrichtung (34) zum Ausgeben von in der zweiten Dividiereinrichtung erhaltenen (n-k) Divisionsergebnissen als die Paritäten P i+1 bis P j-1.
= x n-k + a 1·x n-k-1 + a 2· x n-k-2 + . . . + a n-k-1·x+a n-k′ ,worin α ein primitives Element vom Galois-Feld GF(2 m ) und a 1 bis a n-k Konstanten sind; eine zweite Dividiereinrichtung (33) zum Ausführen von (n-j+1) Dividierschritten durch ein reziprokes Polynom G*(x) des Paritätserzeugungspolynoms G(x) unter Verwendung der in der ersten Dividiereinrichtung erhaltenen Divisionsergebnisse als Anfangswerte und mit auf Null gesetzten Eingangselementen der Einrichtung, 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 1· x+1;und eine Ausgangseinrichtung (34) zum Ausgeben von in der zweiten Dividiereinrichtung erhaltenen (n-k) Divisionsergebnissen als die Paritäten P i+1 bis P j-1.
2. Paritätserzeugungsschaltung nach Anspruch 1,
dadurch gekennzeichnet,
daß ein Schaltungsteil (Fig. 6) für die erste und für
die zweite Dividiereinrichtung gemeinsam benutzt wird,
daß das Schaltungsteil enthält erste bis (n-k)te
Register (40 n-k , 40 n-k-1, . . . , 40 1), erste bis (n-k)te
Addierglieder (38 n-k , 38 n-k , . . . , 38 1), erste bis
n-k-1)te Multiplizierglieder (41 n-k-1, 41 n-k-2, . . -. ,
41 1), 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 1, 42 n-k-1,
42 n-k-2, . . . , 42 1) zum Schalten von Eingangs- und Ausgangssignalen
der Register derart, daß das Schaltungsteil
in einem ersten Schaltzustand als die erste Dividiereinrichtung
und in einem zweiten Schaltzustand als
die zweite Dividiereinrichtung betrieben wird, daß die
Schalteinrichtung in dem ersten Schaltzustand ein Ausgangssignal
des (n-k)ten Registers (40 1) an jedes der
zweiten bis (n-k)ten Addierglieder (38 n-k-1, . . . , 38 1)
über entsprechende der ersten bis (n-k-1)ten Multiplizierglieder
(41 n-k-1, . . . , 41 n ) liefert, so daß die
zweiten bis (n-k)ten Addierglieder Ausgangssignale der
ersten bis (n-k-1)ten Register (40 n-k , . . . , 40 2) und
Ausgangssignale der genannten entsprechenden ersten bis
(n-k-1)ten Multiplizierglieder jeweils addieren,
und ein Ausgangssignal des (n-k)ten Registers (40 1)
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 0′ und ein Ausgangssignal des (n-k)ten
Multiplizierglieds (41 n-k ) addiert und ein Additionssignal
an das erste Register (40 n-k ) liefert, daß die Schalteinrichtung
im 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 1) ü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 1) addiert und
Additionssignale der ersten bis (n-k)ten Addierglieder
den ersten bis (n-k-1)ten Registern (40 n-k , . . . , 40 2)
zugeführt werden, und daß die Ausgangseinrichtung von
dem (n-k)ten Register (40 1) erhaltene Ausgangssignale
als die Paritäten P i+1 bis P j+1 ausgibt.
3. Paritätserzeugungsschaltung nach Anspruch 2,
dadurch gekennzeichnet,
daß die ersten bis (n-k-1)ten Multiplizierglieder
(41 n-k-1, . . . , 41 1) jeweils die Koeffizienten a 1 bis
a n-k-1 multiplizieren, daß das (n-k)te Multiplizierglied
(41 n-k ) den Koeffizienten a n-k multipliziert und
daß das (n-k+1)te Multiplizierglied (45) einen
Koeffizienten 1/a n-k multipliziert.
4. Paritätserzeugungsschaltung nach Anspruch 3,
dadurch gekennzeichnet,
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 1), 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, wobei L = 1, 2, . . . ,
(n-k-1), und ein (n-k)ter zweiter Datenselektor
(39 1) 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 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,
wobei M = 1, 2, . . . , (n-k-1).
5. Paritätserzeugungsschaltung zum Erzeugen von Paritäten
P i+1, . . . , P j-1 eines Reed-Solomon-Code, der
durch eine Zeilenmatrix W 0 = [D 1, D 2, . . . , D i , P i+1,
. . . , P j-1, D j , . . . , D n ] beschrieben ist, worin mit
D 1 bis D i und D j bis D n k m-Bit-Daten und mit P i+1 bis P j-1 (n-k) m-Bit-Paritäten bezeichnet sind, und
n-k = j-i-1, 2 m -1 n und n ≦λτ j ≦λτ i sind,
dadurch gekennzeichnet,
daß die Paritätserzeugungsschaltung enthält: eine
erste Dividiereinrichtung (32), der aufeinanderfolgend
Elemente D n , . . . , D j , 0, . . . , 0, D i , . . . , D 2, D 1 einer
Zeilenmatrix W 0′, in dieser Reihenfolge zum Ausführen
von n Dividierschritten durch ein reziprokes Polynom
G*(x) eines Paritätserzeugungspolynoms G(x) zugeführt
werden, wobei die Zeilenmatrix W 0′ gleich der Zeilenmatrix
W 0 mit auf Nullvektoren gesetzten Paritäten
P i+1 bis P j-1 ist, so daß W 0′ = [D 1, D 2, . . . , D i , 0,
. . . , 0, D j , . . . , D n ], und das Paritätserzeugungspolynom
G(x) beschrieben ist durch
G(x)= (x-1) · (x-α) · . . . · (x-α n-k-1)
= x n-k + a 1·x n-k-1 + a 2·x n-k-2 + . . . + a n-k-1·x + a n-k′,worin α ein primitives Element vom Galois-Feld GF(2 m ) und a 1 bis a n-k Konstanten sind, und 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 1· x+1;eine zweite Dividiereinrichtung (33) zum Ausführen von i Dividierschritten durch das Paritätserzeugungspolynom G(x) unter Verwendung der in der ersten Dividiereinrichtung erhaltenen Divisionsergebnisse als Anfangswerte und mit auf Null gesetzten Eingangselementen; und eine Ausgangseinrichtung (34) zum Ausgeben von in der zweiten Dividiereinrichtung erhaltenen (n-k) Divisionsergebnissen als die Paritäten P i+1 bis P j-1.
= x n-k + a 1·x n-k-1 + a 2·x n-k-2 + . . . + a n-k-1·x + a n-k′,worin α ein primitives Element vom Galois-Feld GF(2 m ) und a 1 bis a n-k Konstanten sind, und 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 1· x+1;eine zweite Dividiereinrichtung (33) zum Ausführen von i Dividierschritten durch das Paritätserzeugungspolynom G(x) unter Verwendung der in der ersten Dividiereinrichtung erhaltenen Divisionsergebnisse als Anfangswerte und mit auf Null gesetzten Eingangselementen; und eine Ausgangseinrichtung (34) zum Ausgeben von in der zweiten Dividiereinrichtung erhaltenen (n-k) Divisionsergebnissen als die Paritäten P i+1 bis P j-1.
6. Paritätserzeugungsschaltung nach Anspruch 5,
dadurch gekennzeichnet,
daß ein Schaltungsteil (Fig. 10) gemeinsam für die
erste und die zweite Dividiereinrichtung benutzt wird,
daß das Schaltungsteil enthält: erste bis (n-k)te
Register (40 1, . . . , 40 n-k ), erste bis (n-k)te Addierglieder
(54, 38 1, . . . , 38 n-k-1), erste bis (n-k-1)te
Multiplizierglieder (41 1, . . . , 41 n-k-1), ein (n-k)tes
Multiplizierglied (41 n-k ), ein (n-k+1)tes Multiplizierglied
(45) und eine Schalteinrichtung (43, 39 1,
. . . , 39 n-k , 42 1, . . . , 42 n-k-1) zum Schalten von Eingangs-
und Ausgangssignalen der Register derart, daß
das Schaltungsteil als die erste Dividiereinrichtung in
einem ersten Schaltzustand und als die zweite Dividiereinrichtung
in einem zweiten Schaltzustand arbeitet, daß
die Schalteinrichtung im ersten Schaltzustand ein Ausgangssignal
des (n-k)ten Registers (40 n-k ) an jedes
der zweiten bis (n-k)ten Addierglieder (38 1, . . .
38 n-k-1) über das (n-k+1)te Multiplizierglied (45)
und entsprechende der ersten bis (n-k-1)ten Multiplizierglieder
(41 1, . . . , 41 n-k-1) liefert, so daß die
zweiten bis (n-k)ten Addierglieder Ausgangssignale
der ersten bis (n-k-1)ten Register (40 1, . . . ,
40 n-k-1) und Ausgangssignale der genannten 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) liefern, so daß
das erste Addierglied ein Ausgangssignal enthaltend die
Elemente der Zeilenmatrix W 0′ und ein Ausgangssignal des
(n-k+1)ten Multiplizierglieds addiert und ein Additionssignal
an das erste Register (40 1) liefert, daß die
Schalteinrichtung im zweiten Schaltzustand das Ausgangssignal
des ersten Registers (40 1) an jedes der ersten
bis (n-k-1)ten Multiplizierglieder (41 1, . . . , 41 n-k-1)
liefert, so daß die zweiten bis (n-k)ten Addierglieder
(38 1, . . . , 38 n-k-1) 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 Ausgangssignal des (n-k)ten Multiplizierglieds
(41 n-k ) an das (n-k)te Register (40 n-k ) geliefert
wird, und daß die Ausgangseinrichtung von dem ersten
Register erhaltene Ausgangssignale als die Paritäten
P i+1 bis P j-1 ausgibt.
7. Paritätserzeugungsschaltung nach Anspruch 6,
dadurch gekennzeichnet,
daß die ersten bis (n-k)ten Multiplizierglieder (41 1,
. . . , 41 n-k-1) jeweils die Koeffizienten a 1 bis a n-k-1
multiplizieren, daß das (n-k)te Multiplizierglied
(41 n-k ) den Koeffizienten a n-k multipliziert und daß
das (n-k+1)te Multiplizierglied (45) einen Koeffizienten
1/a n-k multipliziert.
8. Paritätserzeugungsschaltung nach Anspruch 7,
dadurch gekennzeichnet,
daß die Schalteinrichtung enthält: einen ersten Datenselektor
(43) zum wahlweisen Zuführen zu den ersten bis
(n-k)ten Multipliziergliedern (41 1, . . . , 41 n-k ) das
Ausgangssignal des (n-k+1)ten Multiplizierglieds
(45) im ersten Schaltzustand und das Ausgangssignal des
ersten Registers (40 1) im zweiten Schaltzustand, (n-k)
zweite Datenselektoren (39 1, . . . , 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 (41 1, . . . , 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 true DE3702697A1 (de) | 1987-09-10 |
DE3702697C2 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0551646A2 (de) * | 1991-12-25 | 1993-07-21 | Matsushita Electric Industrial Co., Ltd. | Kodierer und Dekodierer mit verketteter Block- und Konvolutionalkodierung |
EP0996231A1 (de) * | 1998-10-20 | 2000-04-26 | 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 |
Families Citing this family (6)
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 |
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 |
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 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0551646A2 (de) * | 1991-12-25 | 1993-07-21 | Matsushita Electric Industrial Co., Ltd. | Kodierer und Dekodierer mit verketteter Block- und Konvolutionalkodierung |
EP0551646A3 (en) * | 1991-12-25 | 1993-08-11 | Matsushita Electric Industrial Co., Ltd | Concatenated block and convolution encoder-decoder |
EP0996231A1 (de) * | 1998-10-20 | 2000-04-26 | 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 |
WO2000024130A1 (de) * | 1998-10-20 | 2000-04-27 | 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 |
Also Published As
Publication number | Publication date |
---|---|
JPH0476540B2 (de) | 1992-12-03 |
JPS62180617A (ja) | 1987-08-07 |
DE3702697C2 (de) | 1989-04-06 |
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 | |
DE3852423T2 (de) | Kodierverfahren und Kodierer mit Reed-Solomon Fehlerkorrekturcode. | |
DE2916710C2 (de) | ||
DE69919199T2 (de) | Vorwärtsfehlerkorrektur | |
DE3650335T2 (de) | Rechenverfahren und -gerät für endlichfeldmultiplikation. | |
DE19758079A1 (de) | Verfahren und Vorrichtung zur Galoisfeld-Multiplikation | |
DE4229666C2 (de) | Wechselseitig arbeitende Divisionsschaltung | |
DE4241903C2 (de) | Euklidische wechselseitige Divisionsschaltung | |
DE1905138A1 (de) | Fehlerbuendei korrigierende Entschluesselungseinrichtung | |
DE2625973B2 (de) | Verfahren und Anordnung zur redundanzvermindernden Transformation von Bildern | |
DE2628473B2 (de) | Digitales Faltungsfilter | |
DE69020951T2 (de) | Kodiereinrichtung für einen Fehlerprüfungs- und Fehlerkorrekturkode. | |
DE102017125617B4 (de) | Bestimmung und Verwendung von Bytefehlerpostionssignalen | |
DE10105626B4 (de) | Verfahren und System zur Berechnung von zyklischem Blockprüfungscode und Verfahren zum Erkennen eines Fehlers | |
DE3506440C2 (de) | ||
DE2606931A1 (de) | Verfahren zur erzeugung von werten mathematischer funktionen | |
DE3404417A1 (de) | Codierer-pruefschaltungsanordnung | |
DE3702697C2 (de) | ||
DE69429525T2 (de) | Programmierbarer redundanz/syndromgenerator | |
DE69837784T2 (de) | Verbessertes fünf-fehler-korrektursystem | |
EP1999571B1 (de) | Verfahren und vorrichtung zur reduktion eines polynoms in einem binären finiten feld, insbesondere im rahmen einer kryptographischen anwendung | |
DE4117726C2 (de) | Fehlerkorrekturverfahren und Einrichtung zu dessen Durchführung | |
DE102021123727B4 (de) | Bytefehlerkorrektur | |
EP1495552B1 (de) | Verfahren und vorrichtung zur berechnung eines iterierten zustands einer rueckgekoppelten schieberegisteranordnung |
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 |