DE4241903C2 - Euklidische wechselseitige Divisionsschaltung - Google Patents
Euklidische wechselseitige DivisionsschaltungInfo
- Publication number
- DE4241903C2 DE4241903C2 DE4241903A DE4241903A DE4241903C2 DE 4241903 C2 DE4241903 C2 DE 4241903C2 DE 4241903 A DE4241903 A DE 4241903A DE 4241903 A DE4241903 A DE 4241903A DE 4241903 C2 DE4241903 C2 DE 4241903C2
- Authority
- DE
- Germany
- Prior art keywords
- registers
- division
- calculations
- coefficients
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/726—Inversion; Reciprocal calculation; Division of elements of a finite field
-
- 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)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
Es soll eine aufwandsarme euklidische wechselseitig arbeitende Divisionsschaltung geschaffen werden. DOLLAR A Es sind (2t + 1) Recheneinheiten und (2t + 3) Register vorgesehen für die Durchführung von euklidischen wechselseitigen Divisionen. Register auf einer A-Seite werden gemeinsam genutzt zur Speicherung von Q¶i¶(X), lambda¶i¶(X), und Register einer B-Seite werden gemeinsam genutzt zur Speicherung von R¶i¶(X), mu¶i¶(X). Eine Divisionseinheit dividiert einen von einer End-Recheneinheit abgegebenen Wert und das Divisionsergebnis wird jeder der Recheneinheiten wieder zugeführt. Die Divisionseinheit und die Recheneinheit werden durch eine Steuereinheit veranlaßt, entweder eine Normalverbindungs-Division, eine Kreuzverbindungs-Division oder eine Verschiebeverbindungs-Division zur Durchführung der euklidischen wechselseitigen Divisionen auszuführen. DOLLAR A Euklidische wechselseitige Divisionsschaltung mit vermindertem Schaltungsaufwand für einen schnellen Betrieb bei erhöhtem Durchsatz.
Description
Die Erfindung bezieht sich auf eine Rechenschaltung zur
Fehlerkorrektur und insbesondere auf eine Mehrfach-Divi
sionsschaltung zur Ausführung einer Euklidischen, wechsel
seitigen Division.
Bei der Implementierung eines Fehlerkorrektursystems unter
Verwendung eines fehlerkorrigierenden Codes, wie er durch
den Bose-Chaundhuri-Hocquenghem(BCH)-Code oder einen Reed-
Solomon-Code repräsentiert ist, spielt eine Einrichtung
zur Bestimmung eines Fehleranzeigepolynoms aus einem Syn
drom, welches aus einem empfangenen Signal erzeugt worden
ist, die wesentlichste Rolle (siehe "7R-C601-018(4740)
Hardwareimplementierung einer schnellen, mehrfachen, fehler
korrigierenden Schaltung unter Verwendung des Reed-Solomon-
Codes (1)").
Ein bekanntes Verfahren zur Bestimmung eines derartigen
Fehleranzeigepolynoms verwendet einen Euklidischen, wechsel
seitigen Divisionsalgorithmus (siehe "7R-C601-020(4788)
Hardwareimplementierung einer den Reed-Solomon-Code (2)
verwendenden, schnellen, mehrfachen, fehlerkorrigierenden
Schaltung").
Das Euklidische, wechselseitig arbeitende Divisionsverfahren
ist generell als ein Algorithmus bekannt zur Erzielung des
größten gemeinsamen Teilers zweier Polynome. Beim fehler
korrigierenden Code kann ein Fehleranzeigepolynom aus einem
Syndrom durch sinnvolle Anwendung einer Rechenprozedur
berechnet werden, die beim Prozeß des Euklidischen, wechsel
seitigen Divisionsverfahrens angewandt wird.
Der Rechenprozeß des Euklidischen, wechselseitigen Divisions
verfahrens ist insofern von Vorteil, als er aus einer systo
lischen Reihenarchitektur aufgebaut werden kann, die durch
Kaskadierung einer Vielzahl von relativ einfacheren Rechen
einheiten realisiert werden kann (nachstehend als "wechsel
seitig arbeitende Divisionseinheiten" bezeichnet).
Von Howard M. Shao und anderen ist ein Beispiel vorgeschla
gen worden, gemäß dem der Euklidische, wechselseitige Divi
sionsalgorithmus durch eine systolische Reihenarchitektur
implementiert wird (siehe Howard M. Shao und andere in
"A VSLI Design of a Pipeline Reed-Solomon-Decoder" IEEE
Trans. on Computers Vol. C-34, Mai 1985). Dieses Verfahren
wird nachstehend als "Verfahren A" bezeichnet. Das Verfah
ren A ist jedoch insofern von Nachteil, als sein Algorith
mus nicht perfekt ist und als jede Einheit Multiplizierer
für ein endliches Feld aufweist. Wenn ein System, welches
eine schnelle Echtzeitverarbeitung benötigt, auf der Basis
dieses Verfahrens A aufzubauen ist, ist somit dessen Schal
tungsumfang erhöht.
Es ist bereits ein Verfahren zur Verbesserung des Verfah
rens A vorgschlagen worden (siehe US-Patentanmeldung, Serial
No. 07/623 235 vom 6.12.1990). Dieses vorgeschlagene Verfah
ren wird nachstehend als "Verfahren B" bezeichnet. Beim
Verfahren B wird ein revidiertes, Euklidisches, wechselseiti
ges Divisionsverfahren (2) angewandt, wie es im obigen
Artikel von Howard M. Shao und anderen angegeben worden
ist, wobei zwei endliche bzw. finite Feld-Multiplizierein
richtungen in der wechselseitig arbeitenden Divisionsein
heit durch eine Multipliziereinrichtung für ein endliches
Feld und eine Dividiereinrichtung für ein endliches Feld
ersetzt sind. Darüber hinaus werden beim Verfahren B die
endlichen Feld-Teiler, die in einer Vielzahl von kaskadier
ten, wechselseitig arbeitenden Divisionseinheiten verwendet
sind, von einem einzigen Teiler je endliches Feld geteilt.
Die zur Implementierung des Verfahrens B angewandte Schaltungsanordnung
ist daher vom Schaltungsaufwand her redu
ziert.
Es ist ferner ein Verfahren vorgschlagen worden (nach
stehend als "Verfahren C" bezeichnet), welches völlig ver
schieden ist vom Verfahren B und bei dem lediglich eine
zulässige Schaltung eingesetzt wird zur gemeinsamen Nutzung
des Teilers und lediglich einer Steuerschaltung ersten
Grades, wie dies in der japanischen Patentanmeldung Nr.
3-254 183 vom 6.09.1991 angegeben worden ist. Gemäß dem
Verfahren C sind eine Schaltung zur gemeinsamen Nutzung
des Teilers und eine Steuerschaltung für die betreffende
Schaltung nicht erforderlich, da zu dividierende Daten
stets aus einer Stelle extrahiert werden können. Darüber
hinaus werden eine Schaltung zur Entscheidung der Operation
aus dem Grad des Polynoms und eine Steuerschaltung durch
einfache Schaltungen realisiert. Demgemäß kann das Verfah
ren C durch eine Schaltungsanordnung mit vermindertem Schal
tungsaufwand implementiert werden.
Nachstehend wird die Ausführung lediglich einer Rechnung
durch eine Recheneinheit in einem Schritt in Übereinstimmung
mit dem korrigierten bzw. revidierten, Euklidischen, wechsel
seitigen Divisionsverfahren (2) betrachtet werden. Dies
bedeutet, daß die Anzahl der Recheneinheiten nachstehend
betrachtet werden wird, die notwendigerweise erforderlich
sind, allerdings mit der Ausnahme, daß zwei oder mehr Rech
nungen durch eine Recheneinheit ausgeführt werden, und
zwar im Multiplexbetrieb, wie im Zeitmultiplexbetrieb.
Die Anzahl der Recheneinheiten, die durch die Verfahren A,
B, C benötigt werden, sind 8t, 4t bzw. 4t - 1. Die Anzahl
der Recheneinheiten, die nach den Verfahren B, C benötigt
werden, sind auf die Hälfte der Anzahl der Recheneinheiten
herabgesetzt, die nach dem Verfahren A erforderlich sind.
Der Grund hierfür liegt darin, daß ein Teiler anstelle
von zwei Multipliziereinrichtungen gemeinsam in bezug auf
alle Einheiten verwendet wird, wodurch die Anzahl der Multi
pliziereinrichtungen, die durch die Recheneinheiten be
nötigt werden, auf 1 vermindert ist.
Während die Anzahl der Berechnungen (Multiplikationen),
die vom Algorithmus selbst beim revidierten, Euklidischen,
wechselseitigen Divisionsverfahren (2) benötigt werden,
lediglich 2t je Schritt beträgt, benötigt die Schaltungs
anordnung, welche die Verfahren B, C implementiert, jedoch
die zweifache Zahl an Recheneinheiten, wie sie durch den
Algorithmus notwendigerweise benötigt wird, was somit ver
schwenderisch ist. In ähnlicher Weise beträgt die Anzahl
der Register, die erforderlich sind für die Speicherung
der Koeffizienten der Polynome, etwas das Zweifache der
Anzahl, die durch den Algorithmus notwendigerweise ge
braucht wird.
Nachstehend wird eine fehlerkorrigierende Prozedur beschrie
ben.
Es wird ein fehlerkorrigierendes System mit einer Code
länge n betrachtet, die eine Fehlerkorrektur von t Symbolen
unter Verwendung eines finiten Feldes GF(2m) vornehmen
kann. Es sei angenommen, daß eine j-te Fehlerstelle vom
Anfangspunkt des Codes aus gezählt ist, was als 0-te Posi
tion gewählt ist; diese Fehlerstelle ist mit αj darge
stellt. Falls der Code insgesamt m Fehler enthält, können
die gesamten Fehler des Codes durch eine Fehlerangabe Xi
(i = i, . . . . m) und durch ein Fehlermuster Yi (i = i, . . . m)
beschrieben werden. Falls m (m ≦ 2t) Fehler insgesamt
vorhanden sind, sind somit m Sätze von (Xi, Yi) erforder
lich.
Ein als Fehleranzeigepolynom σ(X) bekanntes Polynom wird
unter Verwendung der Fehlerstelle Xi (i = i, . . . m) bestimmt.
Das Fehleranzeigepolynom σ(X) wird 0, falls die Fehlerposition
X = Xi-1 (i = i . . . . m) gegeben ist. Das Fehleran
zeigepolynom σ(X) wird durch folgende Gleichung (1) aus
gedrückt:
Die Koeffizienten des Fehleranzeigepolynoms σ(X) werden
wie folgt angegeben:
σ(X) = 1 + σ1X + σ1X2 + . . . + σmXm (2).
Unter Heranziehung des Fehleranzeigepolynoms σ(X) und
eines Syndrom-Polynoms S(X) ist ein Fehlerbewertungs-Poly
nom ω(X) wie folgt definiert:
ω(X) = S(X)σ(X)(mod X2t) (3).
Der fehlerkorrigierende Prozeß wird nachstehend sukzessiv
unter Bezugnahme auf die einzelnen Schritte beschrieben.
2t Syndrome S, durch folgende Gleichung (4) ausgedrückt:
S = [S1, S2, . . ., S2t]T (4)
werden als Produkt eines empfangenen Signals r und einer
Paritätsprüfmatrix H bestimmt; sie sind wie folgt gegeben:
X = Hr (5).
Sodann wird ein als Syndrom-Polynom S(X) benanntes Polynom
mit den so bestimmten Syndromen S als Polynom-Koeffizienten
wie folgt festgelegt:
Ein Fehleranzeigepolynom σ(X) und ein Fehlerbewertungs-
Polynom ω(X) werden aus dem Syndrom-Polynom S(X) unter
Heranziehung des Algorithmus des Euklidischen, wechselseiti
gen Divisionsverfahrens bestimmt.
Die Fehlerstelle X = Xi -1 (i = 1 . . . m) wird gesucht. Unter
Heranziehung der Koeffizienten des Fehleranzeige-Polynoms
σ(X), welches beim Schritt 2 bestimmt worden ist, werden
sämtliche Elemente X = α0 . . . αn-1, die in dem endlichen
Feld GF(2m) enthalten sind, in dem Fehleranzeige-Polynom
σ(X) substituiert, und die Stelle, an der σ(X) = 0 ist,
wird als Fehlerstelle Xi (i = 1 . . . . m) bestimmt.
Nachdem die Fehlerstelle Xi (i = 1 . . . m) bestimmt ist,
wird das Fehlermuster Yi (i = 1 . . . m) unter Heranziehung
des Fehlerbewertungs-Polynoms ω(X) wie folgt berechnet:
Das empfangene Signal wird unter Heranziehung der Fehler
stelle Xi (i = 1 . . . . m) und des Fehlermasters Yi (i = 1
. . . m) korrigiert.
Die Fehlerkorrektur wird in den oben beschriebenen Schrit
ten 1 bis 5 ausgeführt. Bezüglich weiterer Einzelheiten
sie auf den Artikel "7R-C601-018(4740) Hardware implemen
tation of a high-speed multiple error-correcting circuit
using the Reed-Solomon code (1)", auf den Artikel "7R-
C601-020(4788) Hardware implementation of a high-speed
multiple error-correcting circuit using the Reed-Solomon
code (2)" und auf den Artikel "7R-C601-021(4817) Hardware
implementation of a high-speed multiple error-correcting
circuit using the Reed-Solomon code (3)" Bezug genommen.
Nachstehend wird ein Prozeß zur Ableitung eines Fehleran
zeigepolynoms beschrieben. Dieser Prozeß entspricht dem
Schritt 2 beim obigen Fehlerkorrekturprozeß. Ein Verfahren
zur Bestimmung des Fehleranzeigepolynoms σ(X) aus dem
Syndrompolynom S(X) unter Heranziehung des Algorithmus
des Euklidischen, wechselseitig arbeitenden Divisionsver
fahrens ist wie folgt bekannt:
Es sei angenommen, daß r-1(X) = X2t und r0(X) = S(X) ge
geben sind. Da der Grad von S(X) mit 2t - 1 gegeben ist,
ist deg(r0(X)) < deg(r-1(X)). Unter Heranziehung von
r-1(X) und r0(X) wird eine Division zur Bestimmung eines
Quotienten wiederholt, der ein Polynom qi(X) ist. Die
Division stellt dieselbe Berechnung dar, wie das Euklidische,
wechselseitige Divisionsverfahren; sie wird gestoppt, wenn
die folgende Bedingung erfüllt ist:
r - 1 = qi(X)r0(X) + r1(X), deg(r1(X)) < deg(r0(X)),
r0 = q2(X)r1(X) + r2(X), deg(r2(X)) < deg(r1(X)),
.
.
rj-2 = qj(X)rj-1(X) + rj(X), deg(rj(X)) < deg(rj-1(X)),
.
.
.
Hierbei gilt deg(rj(X)) ≦ t - 1. Zu diesem Zeitpunkt kann
rj(X) entsprechend der nachstehend angegebenen Gleichung
ausgedrückt werden, indem die anfänglich definierten Glei
chungen r-1(X) = X2t und r0(X) = S(X) aufeinanderfolgend
in die Gleichungen r1(X), r2(X) . . . . rj-1(X) von unten sub
stituiert werden, die im obigen Divisionsprozeß erhalten
worden sind:
rj(X) = S(X)A(X) + X2tB(X).
rj(X) und A(X), die zu diesem Zeitpunkt erhalten worden
sind, werden zu ω(X) bzw. σ(X).
Um den obigen Prozeß durch Hardware auszuführen, ist es
wichtig, zu berücksichtigen, wie Divisionen aufeinander
folgend ausgeführt werden, um qj(X), rj(X) zu bestimmen,
und außerdem ist es wichtig, zu berücksichtigen, wie ein
Prozeß der inversen Durchführung aufeinanderfolgender Sub
stitutionen ausgeführt wird, um σ(X) aus den Gleichungen
r1(X), r2(X) . . . rj-1(X) zu bestimmen, die erhalten worden
sind.
Bei dem Euklidischen, wechselseitig arbeitenden Divisions
verfahren kann der Grund eines Restes als Ergebnis einer
Division zuweilen zweimal oder mehr abnehmen. Jegliche
Hardware-Anordnung zur Ausführung des Euklidischen, wechsel
seitigen Divisionsverfahrens muß in einem derartigen Fall
ohne Ausfall arbeiten.
Die obige Prozedur kann unter Verwendung eines systemati
schen Algorithmus, wie er nachstehend angegeben wird, durch
geführt werden, indem der obige, normale, Euklidische, wechsel
seitige Divisionsalgorithmus derart neu bzw. umgeschrieben
wird, daß der Grad jeweils um 1 zu 1 reduziert ist. Der
systematische Algorithmus ist eine Modifikation, die vom
Anmelder bezüglich des Algorithmus vorgenommen worden ist,
der in der Literatur von Howard M. Shao und anderen unter
der Bezeichnung "A VSLI Design of a Pipeline Reed-Solomon-
Decoder" in der Zeitschrift IEEE Trans. on Computers Vol.
C-34, Mai 1985 vorgeschlagen worden ist und der einer
geringen Verbesserung des revidierten, Euklidischen,
wechselseitigen Divisionsverfahrens (2) entspricht, wie
er im Artikel "7R-C601-020(4788) Hardware implementation
of a high-speed multiple error-correcting circuit using
the Reed-Solomon code (2)" beschrieben worden ist.
R0
(X) = S(X), Q0
(X) = X2t
,
λ0(X) = 1, µ0(X) = 0,
dR0 = 2t - 1, dQ0 = 2t (10).
Bei einem i-ten Schritt gilt:
1i-1(X) = dRi-1 - DQi-1.
Der Koeffizient des Maßes bzw. Grades dRi-1 von Ri-1(X)
ist ai-1, und der (dQi-1)-te Koeffizient von Qi-1(X) ist
bi-1 (11).
- 1. Im Falle 1i-1 = 0 (Normalbetrieb) gilt:
Ri(X) = Ri-1(X) + (ai-1/bi-1)Qi-1(X).Xli-1,
λi(X) = λi-1(X) + (ai-1/bi-1)µi-1(X) . Xli-1,
Qi(X) = Qi-1(X),
µi(X) = µi-1(X),
dRi = dRi-1 - 1,
dQi = dQi-1 (12). - 2. Im Falle 1i-1 < 0, ai-1 ≠ 0 (Kreuzungsbetrieb) gilt:
Ri(X) = Qi-1(X) + (ai-1/bi-1)Ri-1(X).X-li-1,
λi(X) = µi-1(X) + (ai-1/bi-1)λi-1(X).X-li-1,
Qi(X) = Ri-1(X),
µi(X) = λi-1(X),
dRi = dQi-1 - 1,
dQi = dRi-1 (13). - 3. Im Falle 1i-1 < 0, ai-1 = 0 (Schiebebetrieb) gilt:
Ri(X) = Ri-1(X),
λi(X) = λi-1(X),
Qi = Qi-1(X),
µi(X) = µi-1(X),
dRi = dRi-1 - 1,
dQi = dQi-1 (14).
Der Prozeß wird stillgesetzt, wenn er 2t mal wiederholt
ist.
i = 2t (15).
σ(X) = λ2t
(X),
ω(X) = R2t(X) (16).
Falls die Berechnung notwendigerweise um 2t Schritte als
Stopbedingung wiederholt ist, wird schließlich dR2t als
kennzeichnend für das Maß bzw. den Grad von ω(X) erhalten.
Natürlich ist das Maß bzw. der Grad von σ(X) gegeben
mit R2t(X) + 1. Gemäß diesem Algorithmus können σ(X)
und ω(X) nach den Rechnungen in den 2t-Schritten bestimmt
werden.
Wie in dem Artikel "7R-C601-020(4788) Hardware implementa
tion of a high-speed multiple error-correcting circuit
using the Reed-Solomon code (2)" beschrieben, stellt dR2t
schließlich den Grad bzw. das Maß von R2t(X), das heißt
w(X) dar. Wenn Rechnungen im Normalbetrieb und im Kreu
zungsbetrieb ausgeführt werden, sind dRi und dQi im Berech
nungsprozeß kennzeichnend für das Maß bzw. den Grad von
Ri(X) bzw. Qi(X). Die betreffenden Größen stellen jedoch
nicht das Maß bzw. den Grad im Verschiebebetrieb dar, bei
dem der Koeffizient höherer Ordnung von Ri(X) mit 0 gegeben
ist. Dies hat seine Ursache durch die Tatsache, daß sogar
dann, wenn das Maß bzw. der Grad eines Restes einer Divi
sion zwei oder mehrmals beim Euklidischen, wechselseitigen
Divisionsverfahren weggelassen wird, die Größe dRi ent
sprechend dem Algorithmus des revidierten, Euklidischen,
wechselseitigen Divisionsverfahrens (2) nacheinander um
1 vermindert wird. Bezüglich eines detaillierten Bei
spiels sei Bezug genommen auf den Artikel "7R-C601-
020(4788) Hardware implementation of a high-speed multiple
error-correcting circuit using the Reed-Solomon code (2)".
Ein Beispiel, gemäß dem der Algorithmus des Euklidischen,
wechselseitigen Divisionsverfahrens in Hardware unter Ver
wendung einer systolischen Reihenstruktur implementiert
ist, ist in der Literatur von Howard M. Shao und anderen
unter der Bezeichnungh "A VSLI Design of a Pipeline
Reed-Solomon Decoder" in der Zeitschrift IEEE Trans. on
Computers, Vol. C-34, Mai 1985 (Verfahren A) angegeben
worden.
Die angegebene Hardware ist jedoch der Verminderung des
Grades bzw. Maßes eines Restes bei der Division entsprechend
dem Euklidischen, wechselseitigen Divisionsverfahren um
zwei oder mehr nicht gewachsen und erfüllt daher nicht
vollständig die Realisierung des Euklidischen, wechselsei
tigen Divisionsalgorithmus.
Das Verfahren A benötigt je Einheit zwei endliche Feld-
Multipliziereinrichtungen und führt damit zu einem großen
Schaltungsumfang, wenn ein System aufzubauen ist, welches
imstande ist, eine schnelle Echtzeitverarbeitung durchzu
führen.
Das oben beschriebene Verfahren B ist vom Erfinder als
eine Verbesserung des Verfahrens A vorgeschlagen worden.
Gemäß dem Verfahren B werden zwei endliche Feld-Multipli
ziereinrichtungen in einer wechselseitig arbeitenden Divi
sionseinheit durch eine Multipliziereinrichtung für ein
endliches Feld und eine Dividiereinrichtung für ein end
liches Feld ersetzt, und die Dividiereinrichtungen des
endlichen Feldes werden in einer Vielzahl von kaskadierten
wechselseitigen Divisionseinheiten von einem Teiler je
finites bzw. endliches Feld gemeinsam genutzt. Auf diese
Weise ist der Schaltungsaufwand einer Schaltungsanordnung
zur Durchführung des Verfahrens B vermindert.
Das Verfahren B verwendet eine Recheneinheit (als "wechsel
seitige Divisionseinheit" bezeichnet) 101, wie dies in
Fig. 23 veranschaulicht ist. Die wechselseitig arbeitende
Divisionseinheit 101 führt einen Schritt des oben beschrie
benen, revidierten, Euklidischen, wechselseitigen Divisionsver
fahrens (2) aus. Die vier Polynome Ri-1(X), Qi-1(X),
λi-1(X) und µi-1(X) als Eingangsgrößen bei den Schritten
des Euklidischen, wechselseitigen Divisionsverfahrens werden
aufeinanderfolgend vom Koeffizienten des Maßes bzw. Grades
dQi-1 ausgehend eingegeben. Mit SF ist ein Kennzeichen
bzw. Flag dargestellt, welches kennzeichnend ist für den
ersten Koeffizienten. Zur gleichen Zeit werden dRi-1 und
dQi-1 in die wechselseitig arbeitende Divisionseinheit 101
eingegeben.
Die wechselseitig arbeitende Divisionseinheit 101 umfaßt
Datenwegschalter, die durch gestrichelte Linien angedeutet
sind. Wenn Berechnungen im Kreuzungsbetrieb ausgeführt
werden, wählen die Datenwegschalter gekreuzte Daten aus.
In den anderen Betriebsarten wählen die Datenwegschalter
Daten aus, die nicht gekreuzt verlaufen. Wenn der Koeffi
zient des Maßes bzw. Grades dRi-1 eingegeben wird, das
heißt, wenn das SF-Flag eingegeben wird, dann wird im be
sonderen bestimmt, ob der Koeffizient ai-1 des Maßes
dRi-1(X) eine 0 ist oder nicht; lediglich dann, wenn
ai-1 ≠ 0, dRi-1 < dQi-1 vorliegen, werden die Daten durch
die Datenwegschalter gekreuzt.
Infolgedessen werden im Kreuzungsbetrieb ai-1/bi-1 in einem
Register 102 festgehalten, und in den anderen Betriebsarten
wird bi-1/ai-1 im Register 102 festgehalten, wobei die
Berechnungen bezüglich sämtlicher Koeffizienten der Poly
nome bewirkt werden. Jedesmal gelangen Eingangsdaten einmal
durch die wechselseitig arbeitende Divisionseinheit, die
einen Schritt des revidierten, Euklidischen, wechselseitigen
Divisionsverfahrens (2) ausführt. In dem Fall, daß 2t
wechselseitig arbeitende Divisionseinheiten in Kaskade
geschaltet sind, und die Eingangsgrößen:
R0(X) = S(X), Q0(X) = X2t,
λ0(X) = 1, µ0(X) = 0,
dR0 = 2t - 1, dQ0 = 2t (17)
zugeführt werden, wie dies in Fig. 24 veranschaulicht ist,
erzeugt die (2t)te wechselseitig arbeitende Divisionsein
heit 101 Ausgangsgrößen σ(X), ω(X).
Unter Heranziehung eines Beispiels, wie es in dem Artikel
"7R-C601-020(4788) Hardware implementation of a high-speed
multiple error-correcting circuit using the Reed-Solomon
code (2)" veranschaulicht ist, wird nunmehr unter Bezugnah
me auf Fig. 25 bis 28 die Arbeitsweise beschrieben. Die
Berechnungen werden im Kreuzungsbetrieb gemäß Fig. 25 und 27
und im Normalbetrieb gemäß Fig. 26 und 28 ausgeführt. Wie
aus Fig. 28 ersichtlich ist, werden σ(X), ω(X) als
Ergebnis des viermaligen Durchgangs von Daten durch die
wechselseitig arbeitende Divisionseinheit 101 bestimmt.
Wie aus dem Algorithmus ersichtlich ist, werden in dem
Fall, daß die Anzahl der Fehler, die tatsächlich auftre
ten, kleiner ist als t, sodann die beiden Polynome σ(X),
ω(X) zu den Stellen höherer Ordnung hin verschoben und
so ausgegeben, als seien sie Polynome des 2t-Grades nach
Berechnungen in 2t-Schritten. Demgemäß können die Grade
dadurch in Übereinstimmung gebracht werden, daß der Wert
dR2t beobachtet wird, oder die Stopbedingung beim revidier
ten euklidischen wechselseitigen Divisionsverfahren (2)
kann zu dRi < t hin geändert werden. Die Fig. 25 bis 28
veranschaulichen Prinzipien allein der wechselseitig arbei
tenden Divisionseinheit ohne Berücksichtigung bezüglich
der Zeitverzögerung von Komponenten, etc. Bezüglich der
detaillierten Ausführung sei auf den Artikel "7R-
C601-021(4817) Hardware implementation of a high-speed
multiple error-correcting circuit using the Reed-Solomon
code (3)" Bezug genommen.
Entsprechend dem Verfahren B sind mit Rücksicht darauf,
daß es nicht notwendig ist, für die einem endlichen Feld
zugehörigen Teiler 103 der entsprechenden, wechselseitig
arbeitenden Divisionseinheiten 101, zur gleichen Zeit zu
arbeiten, die wechselseitig arbeitenden Divisionseinheiten
101a, die dieselben Einheiten sind, wie die wechselseitig
arbeitenden Divisionseinheiten 101, allerdings mit der
Ausnahme, daß der für das finite Feld vorgesehene Multi
plizierer 103 weggelassen ist, in Kaskade geschaltet, wie
dies in Fig. 29 veranschaulicht ist. Dabei werden Ri-1(X),
Qi-1(X) von jeder der wechselseitig arbeitenden Divisions
einheiten 101a aufeinanderfolgend durch den Auswahlschal
ter 105 ausgewählt und durch einen für ein finites Feld
vorgesehenen Teiler 106 geteilt, wobei die Quotienten zu
den entsprechenden, wechselseitigen Divisionseinheiten 101a
zurückgeführt sind. Der einzelne, für ein finites Feld vorgesehene
Teiler 106 wird somit gemeinsam von den wechsel
seitigen Divisionseinheiten 101a auf einer Zeitmultiplex
basis genutzt, was zur Herabsetzung des gesamten Ver
knüpfungsschaltungsaufwands führt.
Da der Teiler 106 für ein endliches Feld gemeinsam von
den wechselseitigen Divisionseinheiten 101a genutzt wird,
ist jedoch eine Steuerschaltung erforderlich, die im Auf
bau kompliziert ist und deren Arbeitsgeschwindigkeit nicht
hoch ist.
Während der für ein finites Bild vorgesehene Teiler 106
gemeinsam genutzt wird, benötigt jede der wechselseitigen
Divisionseinheiten 101a eine Schaltung zur Ermittlung des
Grades der Polynome und außerdem zur Feststellung, wann
der Koeffizient des Grades dRi-1 von Ri-1(X) 0 ist. Außerdem
ist eine Steuerschaltung, wie ein Datenumschalter oder
dergleichen, erforderlich. Demgemäß ist der Schaltungsumfang
relativ groß.
Bei der in Fig. 29 dargestellten Schaltungsanordnung ist
es notwendig, Syndrome S2t, S2t-1, . . . . S1 einzugeben,
die die Koeffizienten der Syndrompolynome S(X) sind, und
zwar aufeinanderfolgend vom Koeffizienten hoher Ordnung.
Da die Syndrome S2t, S2t-1, . . . . S1 jedoch gleichzeitig
bestimmt werden, ist eine Umsetzschaltung für die Eingabe
der gleichzeitig bestimmten Syndrome erforderlich, und
zwar aufeinanderfolgend vom Koeffizienten hoher Ordnung.
Um die obigen Probleme zu lösen, ist ein neues Verfahren,
als Verfahren C bezeichnet, in der Literatur von Howard M.
Shao und anderen unter der Bezeichnung "A VSLI Design of
a Pipeline Reed-Solomon Decoder" in der Zeitschrift IEEE
Trans. on Computers, Vol. C-34, Mai 1985 vorgeschlagen
worden.
Gemäß dem Verfahren C sind eine Schaltung zur gemeinsamen
Nutzung bzw. Aufteilung des für ein infintes Feld vorge
sehenen Teilers 106 und eine Steuerschaltung für diesen
Teiler nicht erforderlich, da die zu teilenden Daten von
einer Stelle aus stets extrahiert werden können, und zwar
ungleich der konventionellen Verfahren. Darüber hinaus
werden eine Schaltung zur Entscheidung der Operation aus
dem Grad eines Polynoms und eine Steuerschaltung durch
einfache Schaltungen realisiert. Damit kann das Verfahren C
durch eine Schaltungsanordnung mit vermindertem Schaltungs
aufwand durchgeführt werden.
Die Schaltungsanordnung, welche das Verfahren C durchführt
bzw. implementiert, ist in Fig. 30 veranschaulicht. Wie
in Fig. 30 dargestellt, umfaßt die Schaltungsanordnung
einen Block (A) 111, eine Vielzahl von Blöcken (B) 112
und einen Verbindungs-Schaltbestimmungsblock 113. Der
Block (A) 111 umfaßt eine einzelne Einheit, und zwar
unabhängig von der Anzahl t von Fehlern. Im Falle eines
t-Symbol-Fehlerkorrektursystems sind (2t - 1) Blöcke (B)
112 erforderlich.
Der Block (A) 111 und die Blöcke (B) 112 umfassen vertikale,
gesonderte Gruppen von Registern für die Speicherung der
Koeffizienten von Ri(X), Qi(X), λi(X) bzw. µi(X). Die
Koeffizienten werden in den Gruppen der Registern aufeinan
derfolgend vom Koeffizienten hoher Ordnung, ausgehend ent
sprechend dem durch dRi, dQi bezeichneten Grad gespeichert.
Als Ausgangswerte werden die Koeffizienten von R0(X) = S(X)
aufeinanderfolgend in Registern RR2t-1, . . . . RR0 ge
speichert. In entsprechender Weise werden die Koeffizienten
von Q0(X) = X2t aufeinanderfolgend vom Koeffizienten hoher
Ordnung, ausgehend in Registern RQ2t-1, . . . RQ0 gespeichert.
Die Register Rλ2t, . . . Rµ0 speichern 0. In bezug auf die
Register Rµ2t-1, . . . . Rµ0 speichert das Register Rµ0 nie
derer Ordnung eine 1, und die anderen Register speichern 0.
Eine 0 wird zu allen Zeiten vom Block niederer Ordnung
des letzten Blocks (B) 112 dem Eingangsanschluß eingangs
seitig zugeführt.
Ob der Koeffizient, der in dem Register RR2t-1 für die
Speicherung des Koeffizienten gespeichert ist, vom Grad
dRi von Ri(X) im Block (A) 111 ist, wird durch eine 0-Er
fassungsschaltung 115 in der Verbindungs-Schaltbestimmungs
schaltung 113 bestimmt.
Die Verbindungs-Schaltbestimmungsschaltung 113 weist Regi
ster DR, DQ für die Speicherung von dRi bzw. dQi auf. Die
Register DR, DQ speichern als Ausgangswerte 2t - 1 bzw. 2t.
Zusätzlich zu der in Fig. 30 dargestellten Schaltungsan
ordnung ist eine Schaltung zur Festlegung bzw. Einstellung
von Ausgangswerten erforderlich. Eine derartige Schaltungs
anordnung ist aus der Darstellung jedoch weggelassen worden,
da sie nicht notwendig und eine einfache Schaltung ist.
Nachstehend wird die Arbeitsweise der in Fig. 30 dargestell
ten Schaltungsanordnung erläutert.
Die in den Registern DR, DQ gespeicherten Ausgangswerte
werden mittels eines Komparators 116 verglichen. Falls
DR < DQ gilt und falls das Register RR2t-1 ≠ 0 vorliegt,
wie dies durch die 0-Detektor- bzw. -Erfassungsschal
tung 115 ermittelt wird, sind die Datenwegschalter, wie
durch die gestrichelten Linien angedeutet, in Betrieb,
um gekreuzte Daten auszuwählen. Ansonsten wählen die Daten
wegschalter Daten aus, die nicht gekreuzt sind. Sämtliche
Datenwegschalter in der Schaltungsanordnung werden in
ähnlicher Weise veranlaßt, Daten auszuwählen.
Nachdem die Umschaltung der Datenwegschalter erfolgt ist,
werden die Koeffizienten des Grades dRi-1 von Ri-1(X) und
des Grades dQi-1 von Qi-1(X) über den Datenwegschalter
an den für ein finites Feld vorgesehenen Teiler 117 einge
geben. Der betreffende Teiler 117 bewirkt eine Division
E/F bezüglich seiner Eingangssignale E, F und gibt als
Ergebnis S ab.
Unter Heranziehung des Ergebnisses S von dem für ein fini
tes Feld vorgesehenen Teiler 117 führen die Multiplizierein
richtungen 119, 120 und die Addierer 121, 122 im Block (A)
111 und den Blöcken (B) 112 Berechnungen durch. Die Koeffi
zienten vom Grad dRi bis zum Grad 0 eines Polynoms Ri(X)
werden in den Registern RR2t-1 bis RR0 aufeinanderfolgend
vom Koeffizienten hoher Ordnung ausgehend gespeichert. In
entsprechender Weise werden die Koeffizienten vom Grad
dQi bis zum Grad 0 eines Polynoms Qi(X) in den Registern
RQ2t bis RW0 aufeinanderfolgend gespeichert. Die Koeffi
zienten der Polynome λi(X), µi(X) werden in den Registern
Rλ2t bis Rλ0 und in den Registern Rµ2t-1 bis Rµ0 auf
einanderfolgend vom Koeffizienten hoher Ordnung ausgehend
gespeichert.
In Übereinstimmung mit dem obigen Prozeß wird die Berech
nung eines Schritts des revidierten, Euklidischen, wechsel
seitigen Divisionsverfahrens (2) ausgeführt. Durch 2t-mali
ges Wiederholen des obigen Prozesses werden die Polynome
σ(X), ω(X) wie im Falle des Verfahrens B bestimmt.
Die tatsächliche Arbeitsweise ist beispielsweise in Fig. 31
bis 35 veranschaulicht. Die Register DR, DQ, RR2t-1 bis
RR0, RQ2t bis RQ0, Rλ2t bis Rλ0 und Rµ2t-1 bis Rµ0
sind in Fig. 31 alle auf Anfangs- bzw. Ausgangswerte ge
setzt. Da dR0 = 3, dQ0 = 4 ist, und da der Zustand zur
Kreuzung des Koeffizienten des Grades dR0 eines Polynoms
R0(X) und α8 gemäß Fig. 31 erfüllt sind, sind sämtliche
Datenwegschalter so geschaltet, daß gekreuzte Daten aus
gewählt werden. Der für ein endliches Feld vorgesehene
Teiler 117 führt eine Berechnung von 1/α8 aus, und ein
Ergebnis α7 wird eingangsseitig der Multipliziereinrichtungen
119, 120 im Block (A) 111 und den Blöcken (B) 112
zugeführt.
Die Ergebnisse der im Block (A) 111 und in den Blöcken (B)
112 durchgeführten Berechnungen werden in einem nächsten
Schritt in Registern höherer Ordnung gespeichert, was zur
Datenspeicherung führt, wie dies in Fig. 32 veranschaulicht
ist. Das in Fig. 32 dargestellte Ergebnis ist dasselbe
Ergebnis, wie es gemäß dem oben unter Bezugnahme auf Fig. 25
beschriebenen Verfahren B erzielt worden ist.
Die ersten und dritten Schritte werden im gekreuzten Betrieb
bewirkt, und die zweiten und vierten Schritte werden im
Normalbetrieb ausgeführt, wie dies in Fig. 31 bis 34 veran
schaulicht ist, bis schließlich die Polynome σ(X), ω(X)
erhalten sind, wie dies in Fig. 35 veranschaulicht ist.
Wie oben beschrieben, unterscheidet sich das wesentliche
Konzept des Verfahrens C vom Verfahren B. Gemäß dem Verfah
ren B werden im Speziellen die Koeffizienten der Polynome
eingangsseitig seriell aufeinanderfolgend vom Koeffizienten
hoher Ordnung ausgehend der wechselseitig arbeitenden Divi
sionseinheit 101 zugeführt. Gemäß dem Verfahren C werden
jedoch sämtliche Koeffizienten in den Registern DR, DQ,
RR2t-1 bis RR0, RQ2t bis RQ0, Rλ2t bis Rλ0 und Rµ2t-1
bis Rµ0 gespeichert. Während sämtliche Koeffizienten der
Polynome seriell in einer wechselseitigen Divisionseinheit
101 in einem Schritt des revidierten, Euklidischen, wechsel
seitigen Divisionsverfahrens (2) entsprechend dem Verfahren
B berechnet werden, wird infolgedessen jeder Koeffizient
in sämtlichen Recheneinheiten im Block (A) 111 und den
Blöcken (B) 112 in einem Schritt des revidierten, Euklidi
schen, wechselseitigen Divisionsverfahrens (2) gemäß dem
Verfahren C berechnet. Demgemäß ist das Verfahren C stark
vereinfacht, obwohl der Umfang der notwendigen Berechnungen
unverändert bleibt.
Wie oben unter Bezugnahme auf Fig. 30 beschrieben, werden
der Koeffizient des Grades dRi von Ri(X) und der Koeffizient
des Grades dQi von Qi(X), die dem für das finite Feld vorge
sehenen Teiler 117 eingangsseitig zugeführt werden, in
den Registern RR2t-1, RQ2t-1 im Block (A) 111 gespeichert.
Demgemäß werden die Eingangsgrößen für den für das finite
Feld vorgesehenen Teiler 117 stets direkt hinter dem Daten
wegumschalter für Ri(X), Qi(X) im Block (A) 111 zugeführt.
Da es möglich ist, Daten von derselben Stelle zu allen
Zeiten den für das finite Feld vorgesehenen Teiler 117
entsprechend dem Verfahren B eingangsseitig zuzuführen,
ist irgendeine zusätzliche Schaltungsanordnung zur gemein
samen Nutzung des für ein finites Feld vorgesehenen Tei
lers 117 nicht erforderlich, was zur Herabsetzung des
Gesamtschaltungsaufwands führt.
Gemäß dem Verfahren B sind Divisionseinheiten 101 erforder
lich, die unabhängig voneinander Schaltungen aufweisen
zur Bestimmung der Größen von dRi, dQi und zur Feststel
lung, ob der Koeffizient des Grades dRi von Ri(X) 0 ist
oder nicht, um die entsprechenden Datenwegschalter zu
steuern. Gemäß dem Verfahren C wird ein derartiger Prozeß
jedoch lediglich durch den Verbindungs-Schaltbestimmungs
block 103 ausgeführt. Damit kann der Schaltungsaufwand
reduziert werden.
Obwohl in jeder wechselseitig arbeitenden Divisionsein
heit 101 zwei Multipliziereinrichtungen und damit insgesamt
4t Multipliziereinrichtungen erforderlich sind, falls die
Anzahl korrigierbarer Symbole t beträgt, und zwar ent
sprechend dem Verfahren B, ist die Anzahl der benötigten
Multipliziereinrichtungen entsprechend dem Verfahren C
auf 4t - 1 vermindert.
Beim Festlegen von Ausgangswerten ist es erforderlich,
daß die Koeffizienten S1, S2, . . . . St des Eingangssignals
R0(X), das heißt das Syndrompolynom, seriell aufeinanderfolgend
vom Koeffizienten hoher Ordnung ausgehend ent
sprechend dem Verfahren B eingangsseitig zugeführt werden.
Entsprechend dem Verfahren C werden jedoch 2t Koeffizienten
des Syndrompolynoms gleichzeitig zur Initialisierung einge
geben.
Syndrome können im wesentlichen gleichzeitig bestimmt wer
den, da sie als Ergebnisse von Matrizenberechnungen erhal
ten werden. Gemäß dem Verfahren B ist es notwendig, die
gleichzeitig bestimmten Syndrome in serielle Daten umzu
setzen und diese einzugeben. Entsprechend dem Verfahren C
ist mit Rücksicht darauf, daß die gleichzeitig bestimmten
Koeffizienten eines Syndrompolynoms direkt eingegeben werden
können, jegliche Schaltung zur Umsetzung der betreffenden
Polynome in serielle Daten entbehrlich. Darüber hinaus
ist die Verlängerung einer Zeitspanne vermieden, die be
reitgestellt wird, bis ein Ergebnis durch die serielle
Datenumsetzung erhalten wird (Durchsatzzeiten).
Entsprechend dem Verfahren C gibt es verschiedene Methoden
zur Initialisierung der Register DR, DQ, RR2t-1 bis RR0,
RQ2t bis RQ0, Rλ2t bis Rλ0 und Rµ2t-1 bis Rµ0. Falls
Wähler mit den Eingangsanschlüssen der Register DR, DRQ,
RR2t-1 bis RR0, RQ2t bis RQ0, Rλ2t bis Rλ0 und Rµ2t-1
bis Rµ0 verbunden sind, ist es sodann möglich, sämtliche
Register gleichzeitig zu initialisieren. Alternativ dazu
können die Register aufeinanderfolgend dadurch initiali
siert werden, daß seriell Initialisierungswerte der ent
sprechenden Polynome als Eingangssignale den Registern
niederer Ordnung für die betreffenden Polynome eingangs
seitig zugeführt werden.
Nunmehr wird die Ausführung lediglich einer Berechnung
durch eine Recheneinheit in einem Schritt entsprechend
dem revidierten, Euklidischen, wechselseitigen Divisions
verfahren (2) betrachtet. Dies bedeutet, daß nachstehend
die Anzahl der Recheneinheiten betrachtet wird, die notwendigerweise
benötigt werden, allerdings mit der Ausnahme,
daß zwei oder mehr Berechnungen durch eine Recheneinheit
im Multiplexbetrieb, wie im Zeitmultiplexbetrieb, ausge
führt werden.
Die nach den Verfahren A, B, C benötigten Zahlen von Rechen
einheiten sind 8t, 4t bzw. 4t - 1, wobei t die Anzahl korri
gierbarer Symbole ist. Die Anzahl der nach den Verfahren B,
C benötigten Recheneinheiten ist auf die Hälfte der Anzahl
der Recheneinheiten reduziert, die nach dem Verfahren A
benötigt werden. Ein Grund hierfür liegt in einem für ein
finites Feld vorgesehenen Teiler und in einer Multiplizier
einrichtung anstatt in der Verwendung von zwei Multiplizier
einrichtungen, und ferner darin, daß lediglich ein für
ein finites Feld vorgesehener Teiler gemeinsam durch die
Recheneinheiten benutzt wird, wodurch die Anzahl der Multi
pliziereinrichtungen, die von den entsprechenden Rechenein
heiten benötigt werden, auf 1 reduziert ist.
Die Anzahl der Berechnungen (Multiplikationen), die vom
Logarithmus selbst nach dem revidierten, Euklidischen,
wechselseitigen Divisionsverfahren (2) benötigt werden,
wird nachstehend unter Heranziehung des Beispiels betrach
tet werden, wie es im Artikel "7R-C601-020(4788) Hardware
implementation of a high-speed multiple error-correcting
circuit using the Reed-Solomon code (2)" veranschaulicht
worden ist.
Bei diesem Beispiel werden t = 2 Symbole fehlerkorrigiert,
indem ein finites Feld GF(24) benutzt wird, welches defi
niert ist als Verwendung eines nichtreduzierbaren Polynoms
g(X) = X4 + X + 1. Das Syndrompolynom S(X) ist wie folgt
definiert:
S(X) = α8X3 + α10X2 + α5X + α12 (18).
Unter Heranziehung des revidierten, Euklidischen, wechselseitigen
Divisionsverfahrens (2) wird aus dem Syndrompoly
nom S(X) ein Fehleranzeigepolynom σ(X) wie folgt abge
leitet:
R0
(X) = S(X), Q0
(X) = X4
,
dR0 = 3, dR0 = 4,
λ0(X) = 1, µ0(X) = 0 (19).
dR0
- dQ0
= 3 - 4 = -1 0,
der Koeffizient α8 des Grades dR0 von R0(X) ist
α8 ≠ 0 → Kreuzungsbetrieb (20).
In diesem Fall gilt daher:
R1(X) = Q0(X) + (1/α8)R0(X)X
= X4 + α7(α8X3 + α10X2 + α5X + α12)X
= α2X3 + α12X2 + α4X,
λ1(X) = µ0(X) +(1/α8)λ0(X)X
= 0 + α7.1.X
= α7X,
Q1(X) = R0(X)
= α8X3 + α10X2 + α5X + α12,
µ1(X) = λ0(X)
= 1,
dRi = dQ0 - 1 = 4 - 1 = 3,
dQ1 = dR0 = 3 (21).
dR1
- dQ1
= 3 - 3 = 0 ≧ 0 → Normalbetrieb (22).
In diesem Fall gilt daher:
R2(X) = R1(X) + (α2/α8)Q1(X)
= α2X3 + α12X2 + α4X + α9(α8X3 + α10X2 + α5X
+ α12)
= α6X2 + α9X + α6,
λ2(X) = λ1(X) + (α2/α8)µ1(X)
= α7X + α9.1
= α7X + α9,
Q2(X) = Q1(X)
= α8X3 + α10X2 + α5X + α12,
µ2(X) = µ1(X)
= 1,
dR2 = dR1 - 1 = 3 - 1 = 2,
dQ2 = dQ1 = 3 (23).
dR2
- dQ2
= 2 - 3 = - 1 < 0,
der Koeffizient α6 des Grades dR2 von R2(X)
ist α6 ≠ 0 → Kreuzungsbetrieb (24).
In diesem Falle gilt:
R3(X) = Q2(X) + (α8/α6)R2(X)X
= α8X3 + α10X2 + α5X + α12 + α2(α6X2 + α9X
+ α6)X
= α14X2 + α4X + α12,
λ3(X) = µ2(X) + (α8/α6)λ2(X)X
= 1 + α2(α7X + α9)X
= α9X2 + α11X + 1,
Q3(X) = R2(X) = α6X2 + α9X + α6,
Q3(X) = R2(X) = α6X2 + α9X + α6,
µ3(X) = λ2(X)
= α7X + α9,
dR3 = dQ2 - 1 = 3 - 1 = 2,
dQ3 = dR2 = 2 (25).
dR3
- dQ3
= 2 - 2 = 0 ≧ 0 → Normalbetrieb (26).
In diesem Falle gilt:
R4(X) = R3(X) + (α14/α6)Q3(X)
= α14X2 + α4X + α8(α6X2 + α9X + α6)
= α10X + α5,
λ4(X) = λ3(X) + (α14/α6)µ3(X)
= α9X2 + α11X + 1 + α8(α7X + α9)
= α9X2 + α12X + α8,
Q4(X) = Q3(X)
= α6X2 + α9X + α6,
µ4(X) = µ3(X)
= α7X + α9,
dR4 = dQ3 - 1 = 2 - 1 = 1,
dQ4 = dQ3 = 2 (27).
Die Berechnungen in diesen Schritten werden, wie dies in
Fig. 25 bis 28 veranschaulicht ist, gemäß dem Verfahren B
durchgeführt, und sie werden, wie dies in Fig. 31 bis 35
veranschaulicht ist, gemäß dem Verfahren C durchgeführt.
Multiplikationen sind hinsichtlich der Bestimmung von Ri(X),
λi(X) erforderlich. Bezogen auf die Anzahl der Multiplika
tionen bei jedem der Schritte wird die Berechnung entspre
chend:
Ri(X) = Q0(X) + (1/α8)R0(X).X (28)
durchgeführt, um Ri(X) beim Schritt 1 zu bestimmen.
Tatsächlich werden die Koeffizienten von R0(X) und das
Ergebnis α7 der Division multipliziert. Das Polynom R0(X)
weist 4 Koeffizienten auf, da es ein Polynom des dritten
Grades ist. Da der Koeffizient des höchsten Grades für
die Division herangezogen wird, ist es nicht erforderlich,
ihn zu berechnen. Infolgedessen werden die drei folgenden
Rechnungen ausgeführt:
α7.α10, α7.α5, α7.α12 (29).
In Bezug auf λ0(X) wird die Berechnung entsprechend
dem Ausdruck:
λ1(X) = µ0(X) + (1/α8)λ0(X).X (30)
ausgeführt. Da λ0(X) ein Polynom des Grades 0 ist,
wird lediglich ein Koeffizient wie folgt berechnet:
α7.1 (31).
Damit dürfte ersichtlich sein, daß insgesamt 4
Berechnungen im Schritt 1 ausgeführt werden.
In Bezug auf die Anzahl der Berechnungen beim Schritt 2
werden die folgenden 3 Multiplikationen ausgeführt,
um R2(X) unter Heranziehung des Ergebnisses α9 der Divi
sion auszuführen:
α9.α10, α9.α5, α9.α12 (32).
Um λ2(X) zu berechnen, wird die folgende eine Berechnung
durchgeführt:
α9.1 (33).
Damit werden beim Schritt 2 insgesamt 4 Berechnungen
ebenfalls ausgeführt.
Beim Schritt 3 werden 2 Multiplikationen, wie sie gegeben
sind durch:
α2.α9, α2.α6 (34)
ausgeführt, um R3(X) zu berechnen. In der Recheneinheit
für λ3(X) werden die folgenden 2 Berechnungen aus
geführt:
α2.α7, α2.α9 (35).
Damit werden auch beim Schritt 3 insgesamt 4 Berechnungen
durchgeführt.
Beim letzten Schritt 3 werden 2 Multiplikationen, wie
sie gegeben sind durch:
α8.α9, α8.α6 (36)
ausgeführt, um R4(X) zu berechnen. In der Recheneinheit
für λ4(X) werden die folgenden 2 Berechnungen durch
geführt:
α8.α7, α8.α9 (37).
Damit werden auch beim Schritt 4 insgesamt 4 Berechnungen
durchgeführt.
Demgemäß beträgt die Gesamtanzahl der Berechnungen, die
tatsächlich bei jedem der Schritte benötigt werden, stets 4.
Dies tritt natürlich mit Rücksicht darauf auf, daß das
Euklidische, wechselseitige Divisionsverfahren weiterläuft,
wobei die Grade von Ri(X), Qi(X) abnehmen und die Grade
von λi(X), µi(X) zunehmen.
Wenn Ri(X) im i-ten Schritt nach dem revidierten, Euklidi
schen, wechselseitigen Divisionsverfahren berechnet wird,
ist es generell erforderlich, die Koeffizienten mit Ausnahme
des höherwertigen Koeffizienten von Ri-1(X) im Kreuzungs
betrieb und Qi-1(X) im Normalbetrieb zu multiplizieren.
Wenn Berechnungen durchgeführt werden, stellen dRi-1, dQi-1
die Grade von Ri-1(X) bzw. von Qi-1(X) dar. Da Berechnungen
im Kreuzungsbetrieb durchgeführt werden, wenn dRi-1 < dQi-1
gilt, und im Normalbetrieb erfolgen, wenn dRi-1 ≧ dQi-1
gilt, ist der Grad eines Polynoms, das multipliziert werden
muß, um Ri(X) zu berechnen, der kleinere von dRi-1, dQi-1,
das heißt min (dRi-1, dQi-1). Zu diesem Zeitpunkt ist die
Anzahl der Koeffizienten des Polynoms selbst um 1 größer
als der Grad. Der Koeffizient hoher Ordnung muß nicht be
rechnet werden, da er für die Division benutzt wird. Dem
gemäß sind min (dRi-1, dQi-1) Berechnungen erforderlich,
um Ri(X) zu berechnen.
Die Berechnungen für λi(X) werden durch λi-1(X),
µi-1(X) ausgeführt. Um λi(X) zu berechnen, müssen
sämtliche Koeffizienten von λi-1(X) im Kreuzungsbetrieb
multipliziert werden, und sämtliche Koeffizienten von
µi-1(X) müssen im Normalbetrieb multipliziert werden.
Im Normalbetrieb und im Kreuzungsbetrieb werden Berechnungen
tatsächlich anders ausgeführt, als im Verschiebebetrieb,
wenn folgende Bedingungen erfüllt sind:
dλi + dQi = 2t,
dµi < dλi,
dRi-1 < dQi-1 (38).
Hierin bedeutet dλi den Grad von λi(X), und dµi ist
der Grad von µi(X) in den Berechnungen beim i-ten Schritt,
wobei die Berechnungen stets im Kreuzungsbetrieb ausgeführt
werden. Die vom Koeffizienten hoher Ordnung verschiedener
Koeffizienten (des Grades dRi-1) eines Polynoms Ri-1(X)
des Grades dRi-1 werden für die Berechnungen von Ri(X)
multipliziert. Demgemäß sind dRi-1 Berechnungen notwendig.
Für die Berechnung von λi(X) müssen alle (dλi-1 + 1)-
Koeffizienten von λi-1(X) multipliziert werden.
Demgemäß ist die Anzahl Ncross sämtlicher Mulitiplikationen
im Kreuzungsbetrieb gegeben durch:
Ncross = dRi-1 + dλi-1 + 1
< dQi-1 + dλi-1 + 1
= 2t + 1 (39).
Infolgedessen ist die Anzahl Ncross sämtlicher Multipli
kationen im Kreuzungsbetrieb gegeben mit 2t oder kleiner.
Wenn im Normalbetrieb dRi-1 ≧ dQi-1 gegeben ist, müssen
die vom Koeffizienten hoher Ordnung verschiedenen Koeffi
zienten (des Grades dQi-1) eines Polynoms Qi-1(X) des Gra
des dQi-1 für die Berechnung von Ri(X) multipliziert wer
den, und es sind dQi-1 Multiplikationen erforderlich. In
entsprechender Weise müssen zur Berechnung von λi(X) sämt
liche (dµi-1 + 1)-Koeffizienten von µi-1(X) multipliziert
werden.
Damit ist die Anzahl Nnormal sämtlicher Multiplikationen
im Normalbetrieb wie folgt ausgedrückt:
Nnormal = dQi-1 + dµi-1 + 1
< dQi-1 + dλi-1 + 1
= 2t + 1 (40).
Infolgedessen ist die Anzahl Ncross der gesamten Multi
plikationen im Normalbetrieb ebenfalls 2t oder kleiner.
Wie oben beschrieben, beträgt die Gesamtzahl der Multipli
kationen in jedem Schritt, der durch den Algorithmus selbst
benötigt wird, stets 2t oder weniger. Somit beträgt die
Anzahl der Recheneinheiten, die notwendigerweise gefordert
werden, lediglich 2t.
Beim obigen Beispiel sollte die Anzahl der Recheneinheiten
daher 4 betragen. Tatsächliche Systeme, welche die Ver
fahren A, B, C ausführen, benötigen jedoch eine Anzahl
von Recheneinheiten, die mehr als das Zweifache von 2t
ist, womit eine sehr verschwenderische Schaltungsdanord
nung verbunden ist.
Die Anzahl der Koeffizienten, die für die Berechnungen
bereitgehalten werden müssen, wird nachstehend betrachtet.
dRi, dQi, dλi, dµi stellen die entsprechenden Grade von
Ri(X), Qi(X), λi(X) bzw. µi(X) in den tatsächlichen
Rechenschritten bei den Normal- und Kreuzungsbetrieben
dar. Diese Grade weisen die folgende Beziehung auf:
dRi + dµi < dQi + dλi = 2t (41).
Aus Vorstehendem kann ersehen werden, daß die Summe der
Grade von Qi(X), λi(X) stets 2t beträgt und daß die
Summe der Grade von Ri(X), µi(X) 2t - 1 oder weniger beträgt.
Demgemäß kann die Anzahl der Register, die erforderlich
sind für die Speicherung der Koeffizienten von Qi(X),
λi(X), 2t + 2 betragen, und die Anzahl der Register, die
erforderlich sind für die Speicherung der Koeffizienten
von Ri(X), µi(X) kann 2t + 1 betragen. Die Gesamtzahl
der benötigten Register kann somit 4t + 3 betragen.
Das System, welches das Verfahren C ausführt, verwendet
indessen (8t + 1) Register und stellt damit eine in hohem
Maße verschwenderische Anordnung dar.
Wie oben beschrieben, beträgt bei jenem der Verfahren A,
B, C die Anzahl der Multiplikationen pro Schritt und die
Anzahl der Register mehr als das Zweifache der Zahlen,
die durch den Algorithmus gefordert sind. Die Systeme,
die die Verfahren A, B, C ausführen, sind eine in hohem
Maße verschwenderische Schaltungsanordnung.
Die Berechnungen bei dem obigen Beispiel werden einmal
mehr zur Erzielung eines leichteren Verständnisses be
schrieben. Gemäß dem Verfahren C ergeben sich die Berech
nungen, die gemäß Fig. 31 bis 35 ausgeführt werden, aus
den folgenden Tabellen:
Wie aus den obigen Tabellen hervorgeht, werden in Überein
stimmung mit dem Verfahren C lediglich 4 Multiplikationen
je Schritt ausgeführt, und die übrigen Recheneinheiten
sind nicht in Betrieb. Die Stellen, an denen λi(X), µi(X)
gespeichert sind, sind offensichtlich zu Stellen höherer
Ordnung hin verschoben, wenn die Berechnungen fortschreiten,
und damit ändern sich die Stellen, an denen die Rechenein
heiten verwendet werden, bei jedem Schritt. Damit kann
die Anzahl der Recheneinheiten entsprechend dem Verfahren C
nicht reduziert werden.
Die Berechnung von einem multiplikativen, invertierenden
Element von einem Eingangsvektor in einem endlichen Haupt-
Galoisfeld ist beschrieben in US 4 989 171 A. Aus der
US 4 574 361 A und der US 4 975 867 A sind Vorrichtungen zur
Teilung der Elemente eines Galoisfeldes bekannt, die effektiv
zum Decodieren von CD-Fehlerkorrekturcodes benutzt werden
können.
Der Erfindung liegt die Aufgabe zugrunde, eine Euklidische,
wechselseitige Divisionsschaltung bereitzustellen mit 2t + 1
Recheneinheiten, deren Anzahl um 1 höher ist, als die minimale
Anzahl 2t von Rechnungen pro Schritt des Euklidischen,
wechselseitigen Divisionsverfahrens, wobei eine minimale
Anzahl von 4t + 3 Registern vorgesehen sein soll für die
Durchführung eines Algorithmus, derart, daß ein
Schaltungsaufwand stark vermindert ist und daß mit hoher
Geschwindigkeit für einen erhöhten Durchsatz gearbeitet wird
bzw. werden kann.
Insbesondere soll eine Euklidische, wechselseitige Divi
sionsschaltung mit weniger Recheneinheiten als (2t + 1)
bereitgestellt werden, die in einem Zeitmultiplexbetrieb
genutzt werden, um (2t + 1) Berechnungen pro Schritt aus
zuführen, welche entsprechend dem Euklidischen, wechselseitigen
Divisionsverfahren gefordert werden.
Diese Aufgabe wird gemäß den Merkmalen des Patentanspruchs 1
bzw. 2 gelöst. Die Erfindung wird durch die Merkmale der
abhängigen Ansprüche weitergebildet.
Anhand von Zeichnungen wird die Erfindung nachstehend an
Ausführungsbeispielen näher erläutert, in denen entsprechende
Bezugszeichen gleiche oder ähnliche Elemente bezeichnen.
Fig. 1 zeigt in einem Blockdiagramm eine Euklidische,
wechselseitige Divisionsschaltung gemäß einer ersten
Ausführungsform der vorliegenden Erfindung.
Fig. 2 zeigt ein detailliertes Schaltungsdiagramm der
jeweiligen Recheneinheit in der Euklidischen,
wechselseitig arbeitenden Divisionsschaltung gemäß
Fig. 1.
Fig. 3 veranschaulicht in einem Blockdiagramm die Art und
Weise, in der die in Fig. 1 dargestellte Euklidische,
wechselseitig arbeitende Divisionsschaltung arbeitet.
Fig. 4 veranschaulicht in einem Blockdiagramm die Art und
Weise, in der die in Fig. 1 dargestellte Euklidische,
wechselseitig arbeitende Divisionsschaltung arbeitet.
Fig. 5 zeigt in einem Blockdiagramm die Art und Weise,
in der die in Fig. 1 dargestellte Euklidische,
wechselseitig arbeitende Divisionsschaltung arbeitet.
Fig. 6 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 1 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 7 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 1 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 8 zeigt ein Blockdiagramm einer Euklidischen, wechsel
seitig arbeitenden Divisionsschaltung gemäß einer
zweiten Ausführungsform der vorliegenden Erfindung.
Fig. 9 zeigt ein detailliertes Schaltungsdiagramm der je
weiligen Recheneinheit in der Euklidischen, wechsel
seitig arbeitenden Divisionsschaltung gemäß Fig. 8.
Fig. 10 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 11 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 12 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 13 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 14 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 15 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 16 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 17 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 18 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 19 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 20 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 21 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 22 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 8 dargestellte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 23 veranschaulicht in einem Blockdiagramm eine
wechselseitig arbeitende Divisionseinheit für
die Verwendung in einer konventionellen, Euklidi
schen, wechselseitigen Divisionsschaltung.
Fig. 24 zeigt in einem Blockdiagramm eine konventionelle,
Euklidische, wechselseitig arbeitende Divisions
schaltung.
Fig. 25 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 24 gezeigte Eukli
dische, wechselseitig arbeitende Divisions
schaltung arbeitet.
Fig. 26 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 24 gezeigte Eukli
dische, wechselseitig arbeitende Divisionsschal
tung arbeitet.
Fig. 27 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 24 gezeigte Eukli
dische, wechselseitig arbeitende Divisionsschaltung
arbeitet.
Fig. 28 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 24 gezeigte Eukli
dische, wechselseitig arbeitende Divisionsschal
tung arbeitet.
Fig. 29 zeigt in einem Blockdiagramm eine weitere kon
ventionelle, Euklidische, wechselseitig arbeitende
Divisionsschaltung.
Fig. 30 veranschaulicht in einem Blockdiagramm eine noch
weitere konventionelle, Euklidische, wechselseitig
arbeitende Divisionsschaltung.
Fig. 31 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 30 dargestellte
Euklidische, wechselseitig arbeitende Divisions
schaltung arbeitet.
Fig. 32 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 30 dargestellte
Euklidische, wechselseitig arbeitende Divisions
schaltung arbeitet.
Fig. 33 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 30 dargestellte
Euklidische, wechselseitig arbeitende Divisions
schaltung arbeitet.
Fig. 34 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 30 dargestellte
Euklidische, wechselseitig arbeitende Divisions
schaltung arbeitet.
Fig. 35 veranschaulicht in einem Blockdiagramm die Art
und Weise, in der die in Fig. 30 dargestellte
Euklidische, wechselseitig arbeitende Divisions
schaltung arbeitet.
Im folgenden werden die bevorzugten Ausführungsformen
detailliert beschrieben.
Ein nachstehend als "Verfahren D" bezeichnetes Verfahren
gemäß einer ersten Ausführungsform der vorliegenden Erfin
dung wird vorgeschlagen, welches einen Algorithmus mit
(2t + 1) Recheneinheiten ausführen kann, wobei die Anzahl
der betreffenden Recheneinheiten um 1 größer ist, als die
minimale Anzahl von 2t der Berechnungen pro Schritt nach
dem Euklidischen, wechselseitigen Divisionsverfahren. Ferner
ist eine minimale Anzahl (4t + 3) Registern vorgesehen.
Das Verfahren D ist von großem Vorteil, da es den Euklidi
schen, wechselseitigen Divisionsalgorithmus mit wesentlich
weniger Recheneinheiten ausführen kann, als nach den kon
ventionell vorgeschlagenen Verfahren A, B, C benötigt
werden.
Eine Euklidische, wechselseitig arbeitende Divisionsschal
tung zur Ausführung des Verfahrens D ist schematisch in
Fig. 1 dargestellt. Wie in Fig. 1 gezeigt, umfaßt die Eukli
dische, wechselseitig arbeitende Divisionsschaltung grund
sätzlich einen DIV-Block 131 und einen MLT-Block 132.
Der DIV-Block 131 umfaßt eine einzelne Divisionseinheit 133
für einen Koeffizienten hoher Ordnung; die Divisionsein
heit 133 weist einen für ein endliches Feld vorgesehenen
Teiler 146 und eine Steuereinheit 134 für die Ermittlung
der Größen von dRi, dQi und außerdem für die Feststellung
auf, ob der Koeffizient des Grades dRi von Ri(X) vorliegt,
um ein Signal zur Steuerung von Datenwegschaltern im DIV-
Block 131 und im MLT-Block 132 zu erzeugen.
Falls die Recheneinheiten nicht in einer Multiplexweise
verwendet werden, um Berechnungen hinsichtlich einer Viel
zahl von Koeffizienten vorzunehmen, benötigt der MLT-Block
132 sodann (2t + 1) Recheneinheiten 135 1 bis 135 2t+1, wenn
er als ein System ausgeführt ist, welches eine Fehler
korrektur von t Symbolen vorzunehmen imstande ist.
Wie in Fig. 2 veranschaulicht, umfaßt jede der Rechen
einheiten 135 1 bis 135 2t+1 drei Datenwegschalter 136, 137
138, eine Multipliziereinrichtung 139 und einen Addierer
140 zur Berechnung eines vorgegebenen, endlichen Feldes.
Der DIV-Block 131 und der MLT-Block 132 weisen eine linke
Gruppe von Registern 141 0 bis 141 2t auf, die als Register
der A-Seite bezeichnet werden, und eine rechte Gruppe von
Registern 142 0 bis 142 2t+1 auf, die als Register der B-Seite
bezeichnet werden. Die Register 141 0 bis 141 2t der A-Seite
im DIV-Block 131 und MLT-Block 132 sind auf (2t + 1)
Register vermindert, und die Register 142 0 bis 142 2t+1
der B-Seite im DIV-Block 131 und im MLT-Block 132 sind
auf (2t + 2) Register reduziert, womit die Gesamtzahl der
Register somit auf 4t + 3 vermindert ist. Die Anzahl der
Recheneinheiten 135 1 bis 135 2t+1 ist auf 2t + 1 vermindert.
Der DIV-Block 131 weist ein Register 143 für DR und ein
Register 144 für DQ auf, wobei die Register 143, 144 kenn
zeichnend sind für die Grade der Koeffizienten, die im
Register 141 0 für A0 und im Register 142 0 für B0 gespei
chert sind. Wenn tatsächliche Berechnungen im Kreuzungs
betrieb und im Normalbetrieb (weiter unten beschrieben)
ausgeführt werden, geben die Register 143, 144 die Grade
von Ri(X), Qi(X) an.
Die Steuereinheit 134 im DIV-Block 131 weist eine Betriebs
artbestimmungs- und Steuerschaltung 145 auf für die Fest
legung einer Betriebsart aus den Ergebnissen des Vergleichs
von DR, DQ, die in den Registern 143, 144 gespeichert sind,
und dem Ergebnis der Ermittlung, ob A0 gegeben ist durch 0,
aus dem Register 141 0. Auf der Grundlage des Bestimmungs-
Betriebs und des Wertes von DR werden die Recheneinheiten
135 1 bis 135 2t+1 im MLT-Block 132 unabhängig voneinander
gesteuert. Kein Register auf der A-Seite ist auf der Ein
gangsseite der End-Recheneinheit 135 2t+1 erforderlich.
Die in Fig. 6 dargestellte Schaltungsanordnung ist kon
zeptionell, wobei das Register auf der A-Seite, welches
auf der Eingangsseite jeder der Recheneinheiten 135 1 bis
135 2t gezeigt ist, aus der End-Recheneinheit 135 2t+1 weg
gelassen ist. Die End-Recheneinheit 135 2t+1 kann im Schal
tungsaufbau einfacher ausgelegt sein, da das der A-Seite
zugeführte Eingangssignal stets 0 ist.
Nachstehend wird ein Prozeß zum Speichern von Koeffizien
ten des jeweiligen zu berechnenden Polynoms beschrieben.
Gemäß dem Verfahren D werden Speicherplätze für die Ko
effizienten von Qi(X), λi(X) und Speicherplätze für die
Koeffizienten von Ri(X), µi(X) gemeinsam verwendet.
Bei der Berechnung im jeweiligen Schritt des Euklidischen,
wechselseitigen Divisionsverfahrens ist die durch den Aus
druck:
dRi + dµi < dQi + dλi = 2t (42)
gegebene Beziehung erfüllt. Diese Beziehung zeigt an,
daß die Summe der Grade von Qi(X), λi(X) stets 2t ist.
Damit beträgt sogar in dem Fall, daß der Grad von λi(X)
zunimmt, wenn der Grad von Qi(X) abnimmt, die Summe der
Anzahl von Registern für die Speicherung von Koeffizien
ten der Polynome stets 2t + 2. Da die Summe der Grade von
Ri(X), µi(X) 2t - 1 beträgt oder kleiner ist, kann in
entsprechender Weise die Summe der Anzahl von Registern
zur Speicherung der Koeffizienten höchstens 2t + 1 be
tragen.
Die Register 141 0 bis 141 2t, die in Fig. 1 dargestellt
sind, sind Register zur Speicherung der Koeffizienten
Ri(X), µi(X).
Im jeweiligen Rechenschritt werden die Koeffizienten des
Polynoms Ri(X) des Grades dRi in den Registern 141 0 bis
141 2t der A-Seite aufeinanderfolgend vom Koeffizienten
hoher Ordnung (des Grades dRi) ausgehend gespeichert.
Auf den Koeffizienten des Grades 0 von Ri(X) folgend wer
den die Koeffiziennten µi(X) aufeinanderfolgend gespei
chert, und zwar vom Koeffizienten niederer Ordnung (des
Grades 0) ausgehend. Demgemäß werden die Koeffizienten
von Ri(X) aufeinanderfolgend vom Koeffizienten hoher Ord
nung in den Registern 141 0 bis 141 2t der A-Seite aufeinan
derfolgend vom Register 145 0 hoher Ordnung ausgehend ge
speichert, und sodann werden die Koeffizienten von µi(X)
aufeinanderfolgend von den Koeffizienten niederer Ordnung
in den Registern 141 0 bis 141 2t der A-Seite gespeichert.
Die Register 142 0 bis 142 2t+1, die in Fig. 1 veranschau
licht sind, sind Register für die Speicherung der Koeffi
zienten von Qi(X), λi(X).
Beim jeweiligen Rechenschritt werden die Koeffizienten
des Polynoms Qi(X) des Grades dQi in den Registern 142 0
bis 142 2t+1 aufeinanderfolgend vom Koeffizienten hoher
Ordnung (des Grades dQi) ausgehend gespeichert. Von den
Koeffizienten des Grades 0 von Qi(X) ausgehend werden die
Koeffizienten λi(X) aufeinanderfolgend vom Koeffizienten
niederer Ordnung (des Grades 0) gespeichert.
Insofern, als dQi + dλi = 2t und die Summe der Grade stets
konstant sind, werden die Koeffizienten von Qi(X) in den
Registern 142 0 bis 142 2t+1 der B-Seite aufeinanderfolgend
vom Register 142 0 der hohen Ordnung ausgehend gespeichert,
und sodann werden die Koeffizienten λi(X) in den Registern
142 0 bis 142 2t+1 der B-Seite aufeinanderfolgend vom Register
142 2t+1 ausgehend gespeichert.
Wie oben beschrieben, kann als Koeffizientenspeicherregister
141 0 bis 141 2t, 142 0 bis 142 2t gemeinsam die gesamte Schaltung
aus (4t + 3) Registern aufgebaut sein.
Bezüglich der Festlegung der Ausgangswerte werden die Aus
gangswerte für dR0, dQ0, dλ0, dµ0, die die entsprechen
den Grade von R0(X), Q0(X), λ0(X) und µ0(X) angeben,
mit 2t - 1, 2t, 0 bzw. -1 berücksichtigt. Der Ausgangswert
für den Grad dµ0 von µ0(X) zur Erleichterung des Algo
rithmus sei mit -1 angenommen.
Demgemäß werden 2t Koeffizienten (Syndrome) von R0(X) = S(X)
in den Registern 141 0 bis 141 2t gespeichert. Da der Grad
von µ0(X) mit -1 zur Erleichterung des Algorithmus ange
nommen ist, ist die Anzahl der Koeffizienten von µ0(X)
mit 0 gegeben, was bedeutet, daß kein entsprechendes Re
gister vorgesehen ist, so daß das Register 141 2t auf 0
gesetzt ist.
Im Hinblick auf Ausgangswerte für die Register 142 0 bis
142 2t wird, da Q0(X) = X2t vorliegt, eine 1 in dem Register
142 0 gespeichert, und eine 0 wird in den Registern 142 1
bis 142 2t gespeichert. Da λ0(X) = 1 vorliegt, wird eine 1
im Register 141 2t+1 gespeichert.
Die Werte 2t - 1, 2t werden in den Registern 143, 144 ge
speichert, welche DR bzw. DQ speichern. Eine Schaltung
zur Festlegung der Ausgangswerte ist zusätzlich zu der
Schaltungsanordnung erforderlich, die in Fig. 1 gezeigt
ist. Eine derartige Schaltung ist jedoch aus der Dar
stellung weggelassen worden, da sie nicht wesentlich ist
und da sie eine einfache Schaltung darstellt.
Nachstehend wird die Arbeitsweise der in Fig. 1 darge
stellten Schaltungsanordnung beschrieben.
Nachdem die Register auf die Ausgangswerte eingestellt
worden sind, wird das Euklidische, wechselseitige Divi
sionsverfahren mit einem Schritt pro Taktimpuls ausgeführt.
Die Register 141 0, 141 1, 141 2, . . . . 142 0, . . . . . 142 2t+1 hal
ten die Rechenergebnisse in jeder Taktperiode fest.
Die Berechnungen in einem i-ten Schritt werden unten be
trachtet. Die Werte von DRi-1, DQ1-1, die in den Registern
143, 144 gespeichert sind, werden durch die Operationsbe
triebs-Bestimmungs- und Steuerschaltung 145 verglichen.
Falls DRi-1 < DQ1-1 erfüllt ist und durch eine 0-Detektor
schaltung 147 angezeigt wird, daß das Register 141 0, welches
den Koeffizienten hoher Ordnung von Ri-1(X) speichert,
eine 0 festhält, dann erkennt die Operationsbetriebsbe
stimmungs- und Steuerschaltung 145 den Kreuzungsbetrieb.
Ansonsten erkennt die betreffende Operationsbetriebsbe
stimmungs-Steuerschaltung 145 den Normalbetrieb.
Wenn die Arbeitsweise bestimmt ist, schalten die Datenweg
schalter 148, 149 im DIV-Block 131 so durch, daß gekreuzte
Daten oder normale Daten ausgewählt werden, und zwar in
Abhängigkeit von dem bestimmten Operationsbetrieb. Der
Wert des Registers 141 0, das heißt der Koeffizient hoher
Ordnung (des Grades dRi-1) von Ri-1(X) und der Wert des
Registers 142 0, das heißt der Koeffizient hoher Ordnung
(des Grades dQi-1) von Qi-1(X) gelangen über den Datenweg
schalter 148 zu dem für ein finites Feld vorgesehenen Tei
ler 146 hin. Dieser Teiler 146 bewirkt eine Division F/G
auf seine Eingangssignale F, G hin und gibt ein Ergebnis
signal S ab.
Jede der Recheneinheiten 135 1 bis 135 2t+1 im MLT-Block 132
führt Berechnungen aus, und zwar in Abhängigkeit von der
Betriebsart, die durch den DIV-Block 131 bestimmt ist.
Eine Recheneinheit mit einer Anzahl j bewirkt Berechnungen
entsprechend der folgenden Tabellen in bezug auf ein Re
gister mit einer Registerzahl (Suffix) j unter den Re
gistern 141 1 bis 141 2t, 142 1 bis 142 2t+1, welche zu berech
nende Koeffizienten speichern.
Die berechneten Werte A', B' werden in den nächsten
Registern gespeichert, wobei die Berechnungen in einem
Schritt des revidierten, Euklidischen, wechselseitigen Divi
sionsverfahrens abgeschlossen werden. Der obige Rechenprozeß
wird 2t-mal wiederholt, um ein Fehleranzeigepolynom
σ(X) und ein Fehlerbewertungspolynom ω(X) zu bestimmen.
Üblicherweise werden entsprechend dem Algorithmus des revi
dierten, Euklidischen, wechselseitigen Divisionsverfahrens
dieselben Berechnungen wie jene, die auf den Satz der Poly
nome Ri-1(X), Qi-1(X) hin ausgeführt worden sind, auf den
Satz der Polynome λi-1(X), µi-1(X) hin bewirkt. Gemäß
dem Verfahren D werden die Polynome Ri-1(X), Qi-1(X) in
den Registern 141 0 bis 141 2t auf der A-Seite und in den
Registern 142 0 bis 142 2t+1 auf der B-Seite gespeichert,
und die Polynome λi-1(X), µi-1(X) werden umgekehrt
darin gespeichert.
Um dieselben Berechnungen bezüglich Ri-1(X), λi-1(X)
auszuführen, können die umgekehrt gespeicherten Koeffizien
ten von λi-1(X) invertiert und berechnet werden, und
das Ergebnis kann wieder umgekehrt gespeichert werden.
Demgemäß können die Polynome Ri-1(X), Qi-1(X) in einer
Häufigkeit berechnet werden, die der Anzahl der Koeffizien
ten des Polynoms entspricht, dessen Grad kleiner ist, und
zwar entweder im Kreuzungsbetrieb oder im Normalbetrieb.
Dabei sind keinerlei Berechnungen für jene Register erfor
derlich, welche Koeffizienten speichern, die nicht neben
einander liegen von Ri-1(X), Qi-1(X). Dies trifft auch
zu für λi-1(X), µi-1(X).
Da im Kreuzungsbetrieb beispielsweise dRi-1 < dQi-1 vor
liegt, werden die Polynome Ri-1(X), Qi-1(X) lediglich dann
berechnet, wenn die Registerzahl j im Bereich von 0 < j ≦
dRi-1 liegt.
Wenn die Registerzahl j im Bereich von dRi-1 < j ≦ dQi-1
liegt, werden die Koeffizienten von Ri-1(X) in den Re
gistern 141 0 bis 141 2t auf der A-Seite gespeichert, und
die Koeffizienten von λi-1(X) werden in den Registern
142 0 bis 142 2t+1 auf der B-Seite gespeichert. In diesem
Falle sind keinerlei Berechnungen bezüglich der Koeffi
zienten notwendig, die in den Registern gespeichert sind,
sondern die gespeicherten Koeffizienten können lediglich
umgeschaltet werden.
Von den Registern 141 0 bis 141 2t, 142 0 bis 142 2t+1 speichern
jene Register der A-Seite, deren Registerzahl im Bereich
von dQi-1 < j liegt, µi-1(X), und jene Register der B-Seite,
deren Registerzahl im selben Bereich liegt, speichern
λi-1(X). Die Werte in den Registern der A-Seite und der
B-Seite können vertauscht sein, und es können dieselben
Berechnungen wie jene bezüglich dRi-1(X), dQi-1(X) dies
bezüglich ausgeführt werden, und die Ergebnisse können
wieder umgekehrt gespeichert werden.
Demgemäß beträgt die Anzahl der Berechnungen pro Schritt
stets 2t, und die Berechnungen können durch (2t + 1) Rechen
einheiten gemäß dem Verfahren D ausgeführt werden.
Während keinerlei Berechnungen im Verschiebebetrieb ausge
führt zu werden brauchen, kann der Verschiebebetrieb in
derselben Weise bewirkt werden wie der Normalbetrieb, bei
dem das Ausgangssignal S von dem für ein finites Feld vor
gesehenen Teiler 146 mit 0 gegeben ist.
So ist es beispielsweise möglich, Berechnungen entsprechend
den folgenden Tabellen vorzunehmen:
Die Recheneinheiten 135 1 bis 135 2t+1 können irgendeine
spezifische Anordnung insofern aufweisen, als diese zu
mindest 6 Berechnungen ausführen kann, die in den Ta
bellen 3-1, 3-2 oben bezeichnet sind.
So kann beispielsweise jede der Recheneinheiten 135 1 bis
135 2t+1 eine Schaltungsanordnung sein, wie sie in Fig. 2
veranschaulicht ist. Die in Fig. 2 dargestellte Schaltungs
anordnung umfaßt 3 Datenwegschalter 136, 137, 138, eine
Multipliziereinrichtung 139 und einen Addierer 140. Die
notwendigen Berechnungen können dadurch ausgeführt werden,
daß die Datenwegschalter 136, 137, 138 entsprechend der
nachstehend angegebenen Tabelle gesteuert werden. Dieselben
Berechnungen können auch durch einen Steuerprozeß ausgeführt
werden, der von dem in der Tabelle angegebenen Schal
tersteuerprozeß verschieden ist.
In der obigen Tabelle bezeichnet der Begriff "normal" für
die Datenwegschalter 137, 136 die Umschaltung zu den An
schlüssen I-I', und die Bezeichnung "gekreuzt" für die
Datenwegschalter 135, 136 bezeichnet das Durchschalten zu
den Anschlüssen H-H'. Mit der Bezeichnung "durchgehend"
für die Datenwegschalter 138 ist die Durchschaltung zu
einem Anschluß I hin bezeichnet. Mit der Bezeichnung "ge
löscht" für den Datenwegschalter 138 ist das Durchschalten
eines Anschlusses H zu dem Eingang bzw. Eingangssignal 0
bezeichnet.
Die Arbeitsweise der in Fig. 1 dargestellten Euklidischen,
wechselseitigen Divisionsschaltung, die aus den in Fig. 2
dargestellten Recheneinheiten 135 1 bis 135 2t+1 aufgebaut
ist, ist beispielsweise in Fig. 3 bis 7 veranschaulicht.
Das dargestellte Beispiel ist dasselbe Beispiel, wie es
oben beschrieben worden ist, gemäß dem t = 2 Symbole fehler
korrigiert sind bzw. werden, indem ein finites Feld GF(24)
benutzt wird, welches unter Verwendung eines nicht reduzierbaren
Polynoms g(X) = x4 + X + 1 definiert ist. Es
sei angenommen, daß sämtliche Register 141 0 bis 141 4, 142 0
bis 142 5, 143, 144 initialisiert worden sind.
Bei einem ersten, in Fig. 3 veranschaulichten Schritt ist
mit Rücksicht darauf, daß der im Register 143 gespeicherte
Wert (dR0) von DR gegeben ist mit 3 und daß der im Register
144 gespeicherte Wert (dQ0) von DQ gegeben ist mit 4, die
Bedingung DR < DQ erfüllt, und der im Register 141 0 gespei
cherte Koeffizient des Grades dR0 von R0(X) beträgt α8,
was von 0 verschieden ist. Demgemäß ist der Arbeitsbetrieb
als Kreuzungsbetrieb festgelegt. Der Datenwegschalter 148
auf der Eingangsseite des für ein endliches bzw. finites
Feld vorgesehenen Teilers 146 ist in den Kreuzungsbetrieb
geschaltet, und der für das endliche bzw. finite Feld vor
gesehene Teiler 146 führt eine Berechnung 1/α8 aus. Das
Ergebnis S = α7 der Division wird an die Recheneinheiten
135 1 bis 135 5 abgegeben.
In Fig. 3 wird daher die Kreuzungsarbeitsweise ausgeführt.
Demgemäß führen die Recheneinheiten 135 1 bis 135 5 im MLT-
Block 132 Rechnungen auf der Grundlage der Rechentabelle 2-1
im Kreuzungsbetrieb aus.
Gemäß der Tabelle 2-1 werden die in den Registern 141 j,
142 j, deren Registerzahl j beträgt, gespeicherten Daten
in einer von drei verschiedenen Berechnungsarten berechnet,
und zwar in Abhängigkeit davon, ob die Registerzahl j im
Bereich von 0 < j ≦ dRi-1, dRi-1 < j ≦ dQi-1 oder dQi-1 < j
liegt.
So führen beispielsweise beim ersten in Fig. 3 veranschau
lichten Schritt mit Rücksicht darauf, daß dR0 = 3, dQ0 = 4
gegeben ist, die Recheneinheiten 135 1 bis 135 3 entsprechend
den Registerzahlen 1 bis 3 Berechnungen durch, die durch
A' = x S + B und B' = A bezeichnet sind. Bezüglich derartiger
Berechnungen befindet sich der Datenwegschalter 137
im Kreuzungszustand, und der Datenwegschalter 138 befindet
sich im Durchgangszustand; der Datenwegschalter 136 befindet
sich im normalen Zustand.
Die Recheneinheit 135 4, die einer Registerzahl 4 entspricht,
führt Berechnungen aus, welche durch A' = B und B' = A
bezeichnet sind. Bezüglich derartiger Berechnungen befindet
sich der Datenwegschalter 137 im Kreuzungszustand, und der
Datenwegschalter 138 befindet sich im gelöschten Zustand;
der Datenwegschalter 136 befindet sich im normalen Zustand.
Die Recheneinheiten 135 5, 135 6 entsprechend den Registerzah
len 5, 6 führen Berechnungen aus, die durch A' = B und
B' = B × S + A bezeichnet sind. Bezüglich derartiger Be
rechnungen befindet sich der Datenwegschalter 137 im Nor
malzustand; der Datenwegschalter 138 befindet sich im Durch-
Schaltezustand, und der Datenwegschalter 136 befindet sich
im Kreuzungszustand.
Im ersten Schritt arbeiten die Datenwegschalter 136, 137,
138 in den Recheneinheiten 135 1 bis 135 5 so, wie dies in
Fig. 3 veranschaulicht 72754 00070 552 001000280000000200012000285917264300040 0002004241903 00004 72635ist. Die berechneten Ergebnisse
werden in den Registern 141 0 bis 141 4, 142 0 bis 142 5 im
nächsten Taktzyklus gespeichert, wie dies in Fig. 4 veran
schaulicht ist.
Ein Vergleich zwischen Fig. 32, in der die Ergebnisse ent
sprechend dem Verfahren C veranschaulicht sind, und Fig. 4,
in welchem die Ergebnisse entsprechend dem Verfahren D
veranschaulicht sind, zeigt folgendes an: während die Ko
effizienten von λ1(X), µ1(X) hinter Ri(X), Qi(X) auf
einanderfolgend vom Koeffizienten hoher Ordnung, ausgehend
in Fig. 32, gespeichert sind, sind die Koeffizienten λ1(X),
µ1(X) in umgekehrten Stellen, das heißt vom Koeffizienten
niederer Ordnung ausgehend aufeinanderfolgend gemäß Fig. 4
gespeichert. Gemäß Fig. 4 werden daher mit Rücksicht darauf,
daß die Koeffizienten, deren Wert 0 ist, im wesentlichen
unnötig zu speichern sind, keinerlei nutzlose Berechnungen
ausgeführt, und infolgedessen ist die Anzahl der Rechenein
heiten stark vermindert.
In einem zweiten, in Fig. 4 veranschaulichten Schritt ist
mit Rücksicht darauf, daß der im Register 143 gespeicherte
Wert (dRi) von DR gegeben ist mit 3 und daß der im Register
144 gespeicherte Wert (dQi) von DQ gegeben ist mit 3 die
Bedingung DR ≧ DQ erfüllt. Demgemäß ist die Arbeitsweise
als Normalbetrieb bestimmt. Der Datenwegschalter 148 auf
der Eingangsseite des für ein finites Feld vorgesehenen
Teilers 146 ist in den Normalzustand geschaltet, und der
für ein finites Feld vorgesehene Teiler 146 führt eine Be
rechnung α2/α8 aus. Das Ergebnis S = α9 der Division
wird an die Recheneinheiten 135 1 bis 135 5 abgegeben.
Gemäß Fig. 4 wird daher die Kreuzungsbetriebsart ausgeführt.
Demgemäß führen die Recheneinheiten 135 1 bis 135 5 im MLT-
Block 132 Berechnungen auf der Grundlage der Rechentabel
le 2-2 im Normalbetrieb aus.
Beim zweiten, in Fig. 4 veranschaulichten Schritt führen
die Recheneinheiten 135 1 bis 135 3 entsprechend der Register
zahlen 1 bis 3 Berechnungen durch, die durch A' = B × S und
A + B' = B bezeichnet sind. Bezüglich derartiger Berech
nungen befindet sich der Datenwegschalter 137 im Normalzu
stand, und der Datenwegschalter 138 befindet sich im
Durchgangszustand. Der Datenwegschalter 136 befindet sich
im Normalzustand.
Die Recheneinheiten 135 4, 135 5, die den Registern 141 4,
142 4, 142 5 mit den Registerzahlen 4, 5 entsprechen, führen
Rechnungen durch, die durch A' = A und B' = A × S + B be
zeichnet sind. Bezüglich derartiger Berechnungen befindet
sich der Datenwegschalter 137 im Kreuzungszustand; der
Datenwegschalter 138 befindet sich im Durchgangszustand,
und der Datenwegschalter 136 befindet sich im Kreuzungs
zustand.
Beim zweiten Schritt arbeiten die Datenwegschalter 136,
137, 138 in den Recheneinheiten 135 1 bis 135 5 so, wie dies
in Fig. 4 veranschaulicht ist. Die berechneten Ergebnisse
werden in den Registern 141 0 bis 141 4, 142 0 bis 142 5 beim
nächsten Taktzyklus gespeichert, wie dies in Fig. 5 veran
schaulicht ist.
Die ersten und dritten Schritte werden im Kreuzungsbetrieb
ausgeführt, und die zweiten und vierten Schritte werden
im Normalbetrieb ausgeführt, wie dies in Fig. 3 bis 6 ver
anschaulicht ist, bis schließlich die Polynome σ(X),
ω(X) erhalten werden, wie dies in Fig. 7 veranschaulicht
ist. Es sei darauf hingewiesen, daß die Stellen und die
Sequenz der erhaltenen Koeffizienten von σ(X) in umge
kehrter Beziehung zu jenen der Koeffizienten sind, die
entsprechend dem Verfahren C erhalten werden, wie dies
in Fig. 35 veranschaulicht ist.
Die den in Fig. 3 bis 7 veranschaulichten Operationen
entsprechenden Berechnungen sind in den folgenden Tabellen
zusammengefaßt.
Wie oben beschrieben, werden, obwohl das Verfahren D in
den Schritten dieselben Berechnungen ausführt wie das
Verfahren C, die Koeffizienten der Polynome gespeichert,
und die Recheneinheiten 135 1 bis 135 2t+1 sind speziell
entsprechend dem Verfahren D so angeordnet, daß die Anzahl
der Register zur Speicherung der Polynomkoeffizienten und
die Anzahl der Berechnungen im jeweiligen Schritt auf die
Hälfte jener Schritte beim Verfahren C herabgesetzt ist.
Entsprechend dem Verfahren D kann ferner der Algorithmus
durch die (2t + 1) Recheneinheiten 135 1 bis 135 2t+1 durch
geführt werden, deren Anzahl um 1 größer ist,, als die mini
male Anzahl 2t von Berechnungen (Multiplikationen), die
im Prinzip im jeweiligen Schritt des Euklidischen, wechsel
seitigen Divisionsverfahrens erforderlich sind, und zwar
insofern, als die Recheneinheiten 135 1 bis 135 2t+1 jeweils
lediglich einmal bei den Berechnungen in einem Schritt
des Euklidischen, wechselseitigen Divisionsverfahrens be
nutzt sind.
Die Anzahl an Registern zur Speicherung der Koeffizienten
von Polynomen, die während der Berechnung benötigt werden,
beträgt im Prinzip minimal 4t + 3. Der Grund hierfür liegt
darin, daß der Prozeß der Speicherung der Polynomkoeffi
zienten gemäß dem Verfahren D gänzlich verschieden ist
vom Prozeß der Speicherung der Polynomkoeffizienten gemäß
dem oben beschriebenen Verfahren C.
Das Verfahren C erfordert im speziellen Register zur unab
hängigen Speicherung der Koeffizienten der Polynome. Des
halb ist es notwendig, über (8t + 1) Register zu verfügen,
die genügen, um die Koeffizienten sogar in dem Fall zu
speichern, daß jedes der Polynome vom höchsten Grad ist.
Die hohe Zahl von Registern führt zu einer Vergrößerung
der Anzahl der Recheneinheiten.
Entsprechend dem Verfahren D, wie es in Fig. 1 veran
schaulicht ist, werden die Register 141 0 bis 141 2t auf
der A-Seite dazu herangezogen, die Koeffizienten von Ri(X)
und µi(X) zu speichern. Bei jedem der Rechenschritte wird
der Koeffizient hoher Ordnung (des Grades dRi) des Polynoms
Ri(X) des Grades dRi im Register 141 0 gespeichert, und
die aufeinanderfolgenden Koeffizienten dieser Ordnung von
Ri(X) werden in aufeinanderfolgenden Registern gespeichert.
Auf den Koeffizienten des Grades 0 von Ri(X) folgend wird
der Koeffizient niederer Ordnung (des Grades 0) des Poly
noms µi(X) in einem entsprechenden Register gespeichert,
und die aufeinanderfolgenden Koeffizienten hoher Ordnung
von µi(X) werden in aufeinanderfolgenden Registern ge
speichert. Demgemäß speichern die Register 141 0 bis 141 2t
auf der A-Seite aufeinanderfolgend vom Register 141 0 die
Koeffizienten von Ri(X), und zwar aufeinanderfolgend von
deren Koeffizienten hoher Ordnung ausgehen und dann die
Koeffizienten von µi(X) aufeinanderfolgend, von deren Ko
effizienten niederer Ordnung ausgehend.
Die Register 142 0 bis 142 2t+1 auf der B-Seite werden dazu
herangezogen, die Koeffizienten von Qi(X), λi(X) zu spei
chern. Bei jedem der Rechenschritte wird der Koeffizient
hoher Ordnung (des Grades dQi) des Polynoms Qi(X) des Grades
dQi im Register 142 0 gespeichert, und die aufeinanderfolgen
den Koeffizienten niederer Ordnung von Qi(X) werden in
aufeinanderfolgenden Registern gespeichert. Auf den Koeffi
zienten des Grades 0 von Qi(X) folgend wird der Koeffizient
niederer Ordnung (des Grades 0) des Polynoms λi(X) in
einem entsprechenden Register gespeichert, und die auf
einanderfolgenden Koeffizienten hoher Ordnung von λi(X)
werden entsprechend den aufeinanderfolgenden Registern
gespeichert.
Zu diesem Zeitpunkt erfüllen die Grade der Polynome die
folgende Beziehung:
dRi + dµi < dQi + dλi = 2t (43).
Da die Summe von dQi, dλi stets 2t beträgt, kann somit
die Anzahl der Register 142 0 bis 142 2t+1 auf der B-Seite
2t + 2 betragen, und die Anzahl der Register 141 0 bis 141 2t
auf der A-Seite kann 2t + 1 betragen, was um 1 kleiner ist,
als die Anzahl der Register auf der B-Seite.
Gemäß dem in Fig. 1 veranschaulichten Verfahren wird das
Polynom Ri(X) zur Position hoher Ordnung hin verschoben
(das heißt mit X multipliziert), und zwar jedesmal dann,
wenn Rechnungen in einem Schritt des Euklidischen, wechsel
seitigen Divisionsverfahrens ausgeführt werden.
Wenn die Polynome λi(X), µi(X) umgekehrt entsprechend
dem Verfahren D gespeichert werden, da die Koeffizienten
dieser Polynome aufeinanderfolgend vom Koeffizienten nie
derer Ordnung ausgehend gespeichert sind, wird das Poly
nom µi(X) zur Stelle niederer Ordnung hin im Vergleich
zu dem Polynom λi(X) hin verschoben, was zum selben Er
gebnis führt wie in dem Fall, daß das Polynom λi(X) zur
Stelle niederer Ordnung hin verschoben wird im Vergleich
zu dem Polynom µi(X). Zu diesem Zeitpunkt sind die
Recheneinheiten so angeordnet, daß notwendige Berechnungen
bezüglich der Polynome Ri(X), λi(X) ausgeführt werden.
Jede der in Fig. 2 dargestellten Recheneinheiten 135 1 bis
135 2t+1 ist etwas komplizierter im Aufbau als jene, die
nach dem Verfahren C benötigt werden, da die Datenwegschal
ter 136, 138 hinzugefügt sind. Eine derartige Hinzufügung
stellt jedoch einen geringen Aufwand dar, wobei der Gesamt
schaltungsaufwand erheblich reduziert werden kann, da die
Anzahl der Recheneinheiten und die Anzahl der Koeffizienten
speichernden Register auf die Hälfte reduziert ist.
Die Recheneinheiten 135 1 bis 135 2t+1 können von irgendeiner
speziellen Anordnung insofern sein, als sie die in den
obigen Tabellen 2-1, 2-2, 2-3 bezeichneten Berechnungen
ausführen.
Demgemäß können viele verschiedene, andere Anordnungen als
die in Fig. 2 dargestellte Anordnung vorgesehen sein für
die Durchführung derselben Berechnungen. Es ist möglich,
eine Schaltungsanordnung anzuwenden, die komplizierter
ist als die in Fig. 2 dargestellte Schaltungsanordnung,
um bei höherer Geschwindigkeit zu arbeiten.
Gemäß dem Verfahren D gibt es verschiedene Methoden zur
Initialisierung der Register 141 0 bis 141 2t, 142 0 bis
142 2t+1, 143, 144. Falls Wähler mit den Eingangsanschlüs
sen der Register 141 0 bis 141 2t, 142 0 bis 142 2t+1, 143,
144 verbunden sind, ist es sodann möglich, sämtliche Re
gister gleichzeitig dadurch zu initialisieren, daß die
Wähler zu den Ausgangswert-Einstelleinheiten hin verscho
ben werden und daß die Werte (Ausgangswerte), die durch
die Ausgangswert-Einstelleinheiten festgelegt sind, in
die Register 141 0 bis 141 2t, 142 0 bis 142 2t, 143, 144 ein
gegeben werden.
Alternativ dazu können die Register aufeinanderfolgend
dadurch initialisiert werden, daß in serieller Weise Ausgangswerte
der betreffenden Polynome als Eingangssignale
an die Wähler angelegt werden, die mit den Eingangsan
schlüssen allein der niederwertigen Register 141 2t, 142 2t+1
für die betreffenden Polynome verbunden sind.
Generell ändert sich die geforderte Arbeitsgeschwindigkeit
einer fehlerkorrigierenden Schaltung in Abhängigkeit von
der Anwendung, in der sie benutzt wird. Bei einer Anwendung
als Mikroprozessor-Peripherieeinrichtung, die eine geringe
Arbeitsgeschwindigkeit fordert, ist eine fehlerkorrigieren
de Schaltung erforderlich, die einen minimalen Schaltungs
aufwand hat, der eine gewisse Arbeitsgeschwindigkeit auf
recht erhält. Bei Anwendung in einer schnellen Videosignal
verarbeitungseinrichtung ist eine fehlerkorrigierende Schal
tung erforderlich, um Daten zu verarbeiten, die kontinuier
lich eingegeben werden.
Der größte Schaltungsumfang sämtlicher, fehlerkorrigierender
Schaltungsanordnungen ist erforderlich, um einen Prozeß
auszuführen zur Bestimmung eines Fehleranzeigepolynoms
aus Syndromen. Dabei verwendet eines der Verfahren A oder B
oder C oder D das Euklidische, wechselseitige Divisionsver
fahren, um einen derartigen Prozeß auszuführen. Das Verfah
ren D entsprechend der ersten Ausführungsform, welches
im Prinzip bessser ist als die Verfahren A, B, C, liefert
den Algorithmus mit (2t + 1) Recheneinheiten, deren Anzahl
um 1 größer ist als die minimale Anzahl 2t von Berechnungen,
die im Prinzip im jeweiligen Schritt des revidierten Eukli
dischen, wechselseitigen Divisionsverfahrens (2) benötigt
werden.
Gemäß dem Verfahren D werden die Berechnungen in einem
Schritt in einem Taktzyklus abgeschlossen. Somit werden
die gewünschten Größen σ(X), ω(X) nach 2t Taktzyklen
erhalten.
Bei der Verarbeitung von Daten, die kontinuierlich eingegeben
werden, das heißt bei der schnellsten Verarbeitung,
kann der Prozeß zur Bestimmung eines Fehleranzeigepolynoms
aus Syndromen während einer Zeitspanne vorgenommen werden,
innerhalb der Daten mit einer Codelänge eingegeben werden.
Üblicherweise ist eine Codelänge hinreichend lang im
Vergleich zu 2t. Falls die Schaltungsanordnung gemäß dem
Verfahren D angewandt wird in bezug auf ein fehlerkorri
gierendes System für eine hinreichend lange Codelänge,
wird daher die Schaltungsanordnung zur Ausführung des Eukli
dischen, wechselseitigen Divisionsverfahrens während (n - 2t)
Taktzyklen leerlaufen, und damit ist die Schaltungsanord
nung von redundantem Aufbau.
Bei der Verarbeitung von Daten, die nicht kontinuierlich
eingegeben werden, ist die Schaltungsanordnung gemäß dem
Verfahren D nicht erforderlich, um eine Antwort in 2t Takt
zyklen zu erzielen, obwohl die Verarbeitung innerhalb einer
bestimmten Zeitspanne abgeschlossen werden kann.
Mit Rücksicht auf die obigen Probleme ist es notwendig,
den Schaltungsaufwand dadurch zu reduzieren, daß wieder
holt eine geringe Anzahl von Recheneinheiten innerhalb
einer geforderten Zeitspanne genutzt wird.
Es ist besonders erwünscht, eine derartige Anforderung
dadurch zu erfüllen, daß das Verfahren D verbessert wird,
welches im Prinzip den geringsten Schaltungsaufwand be
nötigt.
Gemäß einer zweiten Ausführungsform der vorliegenden Er
findung weist eine Euklidische, wechselseitig arbeitende
Divisionsschaltung eine verminderte Anzahl von Rechenein
heiten bei einem gesteigerten Multiplexgrad auf, was zu
einer stärkeren Verminderung im Schaltungsaufwand und zu
einer schnellen Betriebsweise für einen stark gesteigerten
Durchsatz führt.
Bei der zweiten Ausführungsform ist das oben in Überein
stimmung mit der ersten Ausführungsform beschriebene Ver
fahren D verbessert hinsichtlich der effizienten, wieder
holten Nutzung einer verminderten Anzahl von Rechenein
heiten.
Wie oben beschrieben, werden 2t Berechnungen (Multiplika
tionen) bezüglich der Koeffizienten der Polynome Ri-1(X),
Qi-1(X), µi-1(X), λi-1(X) in einem Schritt nach dem revi
dierten Euklidischen, wechselseitigen Divisionsverfahren (2)
ausgeführt.
Entsprechend dem Verfahren D werden 2t Berechnungen durch
(2t + 1) Recheneinheiten ausgeführt, so daß die Berechnungen
in einem Schritt in einem Taktzyklus beendet sind. Somit
führen die (2t + 1) Recheneinheiten lediglich eine Berechnung
in bezug auf die Berechnungen in einem Schritt des revidier
ten Euklidischen, wechselseitigen Divisionsverfahrens (2)
aus.
Es sei angenommen, daß t = 2 Symbole fehlerkorrigiert sind,
indem ein finites Feld GF(24) benutzt wird, welches fest
gelegt ist durch Verwendung eines nicht reduzierbaren Poly
noms g(X) = X4 + X + 1. Das Syndrom-Polynom S(X) ist wie
folgt definiert:
S(X) = α8X3 + α10X2 + α5X + α12 (44).
Dieses Beispiel ist dasselbe, wie das oben verwendete
Beispiel.
Es ist gezeigt worden, daß dann, wenn der Prozeß der
Gewinnung bzw. Ableitung eines Fehleranzeigepolynoms
σ(X) aus dem Syndrompolynom S(X) unter Heranziehung des
revidierten und Euklidischen, wechselseitigen Divisions
verfahrens (2) entsprechend dem in Fig. 1 veranschaulich
ten Verfahren D ausgeführt wird, die Schaltung so arbeitet,
wie dies Fig. 3 bis 7 veranschaulicht ist. Die den in Fig. 3
bis 7 veranschaulichten Schritten entsprechenden Berech
nungen, die bezüglich der Koeffizientendaten ausgeführt
werden, welche in einem Register mit einer Registerzahl i
gespeichert sind, sind in den nachstehenden Tabellen 5-1
bis 5-4 zusammengefaßt.
Wie aus den Tabellen 5-1 bis 5-4 klar hervorgeht, werden
entsprechend dem Verfahren D die Koeffizienten, welche
in den Registern gespeichert sind, deren Registerzahl i
von 1 bis 2t + 1 reicht, das heißt, daß die Koeffizienten
sich von 1 bis 5 bewegen, in fünf Recheneinheiten 135 1
bis 135 5 berechnet.
Bei dem Verfahren gemäß der zweiten Ausführungsform wird
eine Recheneinheit in einer Zeitmultiplexweise benutzt,
um Berechnungen in einem Schritt des revidierten Euklidi
schen, wechselseitigen Divionsverfahren (2) auszuführen,
wodurch die Anzahl der benötigten Recheneinheiten reduziert
ist.
Der Multiplexgrad kann frei gewählt werden, und zwar in
Abhängigkeit von der Geschwindigkeit, die von einem fehler
korrigierenden System und vom Durchsatz gefordert ist,
wodurch es möglich ist, eine Schaltung bereitzustellen,
welche Schaltungsanforderungen erfüllt und welche eine
minimale Anzahl von Recheneinheiten aufweist.
Das Verfahren gemäß der zweiten Ausführungsform basiert
grundsätzlich auf dem oben beschriebenen Verfahren D. So
werden speziell (2t + 1) Berechnungen, deren Anzahl um 1
größer ist als die minimale Anzahl von 2t der Berechnungen,
bezüglich Koeffizienten pro Schritt des Euklidischen,
wechselseitigen Divisionsverfahrens ausgeführt.
Während eine Berechnung pro Recheneinheit in bezug auf
(2t + 1) Berechnungen pro Schritt entsprechend dem Ver
fahren D ausgeführt wird, wird jede Recheneinheit in einer
Zeitmultiplex-Art benutzt, um Lopt Berechnungen pro Rechen
einheit in einem Zeitmultiplexbetrieb entsprechend der
zweiten Ausführungsform auszuführen.
Da die Anzahl der pro Schritt benötigten Berechnungen mit
2t + 1 gegeben ist, falls der Multiplexgrad mit Lopt ge
geben ist, wird die Anzahl kopt der benötigten Rechenein
heiten durch kopt = (2t/Lopt) + 1 ausgedrückt, wobei (X)
eine X nicht übersteigende, maximale, ganze Zahl ist.
Wenn der Multiplexgrad Lopt groß gewählt ist, ist die An
zahl der durch jede Recheneinheit pro Schritt behandelten
Berechnungen erhöht, und damit ist die Anzahl kopt der
benötigten Recheneinheiten vermindert.
Obwohl die Anzahl der Rechentaktzyklen erhöht ist, ist
es infolgedessen möglich, die Anzahl der Recheneinheiten
und den Gesamtschaltungsaufwand zu reduzieren.
Der Multiplexgrad Lopt pro Recheneinheit kann irgendeine
Zahl sein, die von 1 bis 2t reicht. Falls Lopt = 1 ist,
dann ist die Anzahl der benötigten Recheneinheiten die
selbe Zahl wie die Zahl der Recheneinheiten, entsprechend
dem Verfahren D. Nachstehend wird eine Schaltungsanordnung
betrachtet werden, bei der der Multiplexgrad 2 oder höher
ist, das heißt daß Lopt ≧ 2 erfüllt ist.
Eine Euklidische,wechselseitige Divisionsschaltung gemäß
der zweiten Ausführungsform ist schematisch in Fig. 8 ver
anschaulicht.
Im Hinblick auf das Verfahren D umfaßt die Euklidische,
wechselseitige Divisionsschaltung grundsätzlich einen
DIV-Block 1 und einen MLT-Block 2. Der DIV-Block 1 umfaßt
eine einzelne Divisionseinheit 3 für einen höherwertigen
Koeffizienten sowie eine Bestimmungs- und Steuereinheit 4
zur Bestimmung der Größen von dRi, dQi und außerdem zur
Bestimmung, ob der Koeffizient des Grades 0 von Ri(X) ein
Signal zur Steuerung der Steuerbetriebsarten der Rechen
einheiten 9 1 bis 9 Kopt und der Datenwegschalter 17 1 bis
17 Kopt zu erzeugen.
Die in einem Register 5 für DR und in einem Register 6
für DQ im DIV-Block 1 gespeicherten Werte sind kennzeich
nend für die Grade der Koeffizienten der Polynome Ri(X),
Qi(X), die in den Registern 7 0, 8 0 auf der A- bzw. B-Seite
gespeichert sind. Wenn tatsächliche Berechnungen im Kreu
zungsbetrieb und im Normalbetrieb (weiter unten näher be
schrieben) ausgeführt werden, zeigen die gespeicherten
Werte die Grade von Ri(X), Qi(X) an.
Die Bestimmungs- und Steuereinheit 4 im DIV-Block 1 legt
eine Betriebsart aus den Ergebnissen des Vergleichs von
DR, DQ fest, die in den Registern 5, 6 gespeichert sind,
und aus dem Ergebnis der Ermittlung, ob der Wert vom Re
gister 7 0 gegeben ist mit 0. Auf der Grundlage der bestimm
ten Betriebsart und des Wertes von DR aus dem Register 5
werden die Recheneinheiten 9 1 bis 9 Kopt im MLT-Block 2
unabhängig voneinander gesteuert.
Der MLT-Block 2 besteht aus den Recheneinheiten 9 1 bis
9 Kopt, deren jede aus einer Multipliziereinrichtung, einem
Addierer und Datenwegschaltern besteht, wobei eine Vielzahl
von Datenwegschaltern 17 1 bis 17 Kopt und eine Vielzahl
von Registern 7 1 bis 7 2t, 8 1 bis 8 2t+1 zur Speicherung
von Koeffizienten vorgesehen ist. Das Gesamtsystem benutzt
Kopt Recheneinheiten.
Die Koeffizienten der zu berechnenden Polynome werden in
derselben Weise gespeichert wie beim Verfahren D. Dies
bedeutet, daß Speicherstellen für die Koeffizienten von
Qi(X), λi(X) und Speicherplätze für die Koeffizienten
von Ri(X), µi(X) gemeinsam genutzt werden.
Um ein System auszuführen, welches imstande ist, t Symbo
le entsprechend der zweiten Ausführungsform einer Fehler
korrektur zu unterziehen, sind Register erforderlich für
die Speicherung der Koeffizienten der Polynome Ri(X), Qi(X),
µi(X), λi(X).
Von den in Fig. 8 veranschaulichten Registern 7 0 bis 7 2t,
8 0 bis 8 2t werden die Register 7 0 bis 7 2t der linken Gruppe
als Register der A-Seite berücksichtigt, und die Register
8 0 bis 8 2t+1 der rechten Gruppe werden als Register der
B-Seite berücksichtigt. Im DIV-Block 1 und im MLT-Block 2
sind insgesamt (2t + 1) Register der A-Seite und insgesamt
(2t + 2) Register der B-Seite, also insgesamt 4t + 3 Re
gister vorgesehen. Demgemäß ist die Gesamtzahl der verwendeten
Register die gleiche Gesamtzahl an Registern, die
entsprechend dem Verfahren D verwendet wird.
Bei der Berechnung im jeweiligen Schritt nach dem revi
dierten, Euklidischen, wechselseitigen Divisionsverfahren
(2) ist die Beziehung entsprechend dem nachstehenden Aus
druck erfüllt:
dRi + dui < dQi + dλi = 2t (45).
Diese Beziehung zeigt an, daß die Summe des Grades von
Qi(X), λi(X) stets 2t beträgt. Somit wird sogar dann,
falls der Grad von λi(X) zunimmt, wenn der Grad von Qi(X)
abnimmt, die Summe der Anzahl der Register für die Speiche
rung der Koeffizienten der Polynome stets 2t + 2 betragen.
Da die Summe der Grade von Ri(X), µi(X) hier 2t - 1 oder
kleiner ist, kann die Summe der Anzahl der Register zur
Speicherung der Koeffizienten höchstens 2t + 1 betragen.
Die Register 7 0 bis 7 2t, die in Fig. 8 veranschaulicht
sind, stellen Register dar zur Speicherung der Koeffizien
ten von Ri(X), µi(X).
Bei jedem Rechenschritt nach dem revidierten Euklidischen,
wechselseitigen Divisionsverfahren (2) werden die Koeffi
zienten des Polynoms Ri(X) des Grades dRi in den Registern
7 0, 7 1, 7 2, . . . . vom Koeffizienten des Grades dRi ausgehend
aufeinanderfolgend gespeichert.
Auf den Koeffizienten des Grades 0 von Ri(X) folgend wer
den die Koeffizienten von µi(X) aufeinanderfolgend vom
Koeffizienten niederer Ordnung (des Grades 0) gespeichert.
Demgemäß werden die Koeffizienten von ri(X) aufeinander
folgend vom Koeffizienten hoher Ordnung ausgehend in den
Registern 7 0 bis 7 2t der A-Seite aufeinanderfolgend vom
Register hoher Ordnung ausgehend gespeichert, und sodann
werden die Koeffizienten von µi(X) aufeinanderfolgend
vom Koeffizienten niederer Ordnung in den Registern der
A-Seite gespeichert.
Die Register 8 0 bis 8 2t+1, die in Fig. 8 veranschaulicht
sind, sind Register zur Speicherung der Koeffizienten von
Qi(X), λi(X).
Bei jedem Rechenschritt werden die Koeffizienten des Poly
noms Qi(X) des Grades dQi in den Registern 8 0, 8 1, 8 2 auf
einanderfolgend vom Koeffizienten hoher Ordnung (des Gra
des dQi) ausgehend gespeichert. Auf den Koeffizienten des
Grades 0 von Qi(X) folgend werden die Koeffizienten von
λi(X) aufeinanderfolgend vom Koeffizienten niederer Ordnung
(des Grades 0) gespeichert. Insofern als dQi + dλi = 2t
ist und die Summe der Grade stets konstant ist, werden
die Koeffizienten von Qi(X) in den Registern 8 0 bis 8 2t+1
der B-Seite aufeinanderfolgend vom Register hoher Ordnung
ausgehend gespeichert, und sodann werden die Koeffizienten
von λi(X) in den Registern der B-Seite aufeinanderfolgend
vom Register niederer Ordnung ausgehend gespeichert.
Eine Gesamtzahl Kopt an Recheneinheiten 9 1 bis 9 Kopt ist
mit einem für Lopt Sätze von Registern vorgesehen. Jede
der Recheneinheiten 9 1 bis 9 Kopt führt (2t + 1) Berech
nungen Lopt-mal aus, wie sie bei jedem der in den obigen
Tabellen 5-1 bis 5-4 veranschaulichten Schritte benötigt
werden.
Die Recheneinheit 9 1 mit der Recheneinheitszahl 1 berechnet
insbesondere den Satz der Koeffizienten, die in den Regi
stern 7 1 bis 7 Lopt, 8 1 bis 8 Lopt mit den Registerzahlen 1
bis Lopt gespeichert sind, und zwar in Lopt-Taktzyklen pro
Schritt des Euklidischen, wechselseitigen Divisionsverfahrens
(2). Dies bedeutet, daß Berechnungen bezüglich des Satzes
von Koeffizienten, die in den Registern 7 1 bis 7 Lopt, 8 1
bis 8 Lopt mit den Registerzahlen 1, 2, . . . Lopt gespeichert
sind, in 1, 2, . . . Lopt Taktzyklen pro Schritt ausgeführt
werden.
In entsprechender Weise bewirkt die Recheneinheit 9 1 mit
der Recheneinheitszahl 1 Berechnungen auf die Reihe der
Koeffizienten hin, die in den Registern 7 Lopt+1, 7 2.Lopt,
8 Lopt+1 bis 8 2.Lopt mit den Registerzahlen Lopt+1, Lopt+2,
2.Lopt gespeichert sind, in 1, 2 . . . . Lopt Taktzyklen.
Die Recheneinheiten 9 1 bis 9 Kopt sind in Kombination mit
den Registern 7 0 bis 7 2t, 8 0 bis 8 2t+1 in Kaskade geschal
tet, wodurch dem Gesamtsystem ermöglicht ist, (2t + 1) Rech
nungen pro Schritt in Lopt-Taktzyklen auszuführen.
Das Gesamtsystem weist (2 - Lopt.Kopt + 1) Register 7 0
bis 7 2t, 8 0 bis 8 2t für die Speicherung von Koeffizienten
auf.
In Abhängigkeit vom ausgewählten Multiplexgrad Lopt kann
die Anzahl der Register geringfügig größer sein, als die
Anzahl 4t + 3 an Registern, die im wesentlichen notwendig
sind. In diesem Falle ist der Wert, der im Register 8 2t+1
gespeichert ist, welches von der letzten Recheneinheit 9 Kopt
verarbeitet wird, stets 0, und damit ist keinerlei Berech
nung notwendig. Durch geringfügiges Modifizieren des Ver
fahrens zur Korrektur des Registers bezüglich der letzten
Recheneinheit 9 Kopt ist es damit möglich, die Anzahl der
Register auf die minimale Registeranzahl 4t + 3 zu redu
zieren.
Nachstehend wird die Einstellung der Register auf Ausgangs-
bzw. Initialisierungswerte beschrieben. Die Initialisie
rungs- bzw. Ausgangswerte für dR0, dQ0, dλ0, dµ0, die
die entsprechenden Grade von R0(X), Q0(X), λ0(X), µ0(X)
anzeigen, werden mit 2t - 1, 2t, 0 bzw. -1 berücksichtigt.
Der Ausgangswert für den Grad dµ0 von µ0(X) ist mit -1
zur Erleichterung des Algorithmus gewählt.
Demgemäß werden 2t Koeffizienten (Syndrome) von R0(X) = S(X)
in den Registern 7 0 bis 7 2t+1 gespeichert. Da der Grad
von µ0(X) gegeben ist mit -1 zur Vereinfachung des Algo
rithmus, ist die Anzahl der Koeffizienten von µ0(X) gege
ben mit 0, was bedeutet, daß kein entsprechendes Register
vorhanden ist, so daß das Register 7 2t auf 0 gesetzt ist.
Im Hinblick auf Ausgangswerte für die Register 8 0 bis 8 2t
wird mit Rücksicht darauf, daß Q0(X) = X2t gegeben ist,
eine 1 in dem Register 8 0 und 0 in den Registern 8 1 bis
8 2t gespeichert. Da λ0(X) = 1 gegeben ist, wird eine 1
in dem Register 8 2t+1 gespeichert.
Die Größen 2t - 1, 2t, welche die Grade von Ri(X), Qi(X)
darstellen, sind in den Registern 5, 6 gespeichert, die
dRi bzw. dQi speichern. Eine Schaltung zur Festlegung der
Ausgangswerte ist zusätzlich zu der in Fig. 8 dargestell
ten Schaltungsanordnung erforderlich. Eine derartige Schal
tungsanordnung ist jedoch aus der Darstellung weggelassen
worden, da sie nicht wesentlich ist und da sie von ein
fachem Aufbau ist.
Nachstehend wird die Arbeitsweise der Euklidischen, wechsel
seitigen Divisionsschaltung gemäß der zweiten Ausführungs
form beschrieben.
Nachdem die Ausgangswerte gesetzt worden sind, werden Be
rechnungen in Taktzyklen entsprechend dem Multiplexgrad
Lopt in einem Schritt des revidierten Euklidischen, wechsel
seitigen Divisionsverfahrens (2) durchgeführt. Da Berech
nungen in insgesamt 2t Schritten ausgeführt werden, werden
sie in insgesamt 2t.Kopt Taktzyklen ausgeführt.
Der in den Registern 7 1 bis 7 Lopt, 8 1 bis 8 Lopt mit den
Registerzahlen 1 bis Lopt gespeicherte Satz von Koeffizien
ten wird in Lopt Taktzyklen durch die Recheneinheit 9 1
berechnet, deren Recheneinheitszahl gegeben ist mit 1.
In entsprechender Weise wird der Satz der Koeffizienten,
die in den Registern 7 Lopt+1 bis 7 2.Lopt, 8 Lopt+1 bis
8 2.Lopt mit den Registerzahlen Lopt+1 bis 2.Lopt
gespeichert sind, durch die Recheneinheit 9 2 berechnet,
deren Recheneinheitszahl 2 ist. Generell wird der Satz
an Koeffizienten, die in den Registern 7 (K-1).Lopt+1 bis
7 K.Lopt, 8 (K-1).Lopt+1 bis 8 K.Lopt, mit den Registerzahlen
8 (K-1).Lopt+1 bis 8 K.Lopt gespeichert sind, durch die
Recheneinheit 9 K berechnet, deren Recheneinheitszahl K
ist. Die Reihenfolge der Berechnungen im jeweiligen Schritt
ist so, daß die Koeffizienten aufeinanderfolgend von jenen
berechnet werden, die in Registern mit jüngeren Register
zahlen gespeichert sind.
Bei einem i-ten Schritt werden Berechnungen ausgeführt,
um die Koeffizienten von Ri(X), Qi(X), µi(X), λi(X) aus
den Koeffizienten von Ri-1(X), Qi-1(X), µi-1(X), λi-1(X)
zu bestimmen, die in den Registern 7 0 bis 7 2t, 8 0 bis 8 2t+1
gespeichert sind, wobei die bestimmten Koeffizienten erneut
in den Registern 7 0 bis 7 2t, 8 0 bis 8 2t+1 gespeichert wer
den.
Zu diesem Zeitpunkt werden die Werte der Register 5, 6
durch eine Betriebsartbestimmungs- und Steuerschaltung 10
verglichen. Eine 0-Detektorschaltung 11 ermittelt, ob das
Register 7 0, welches den Koeffizienten (A0) des Grades
DR von Ri-1(X) speichert, 0 ist.
Die Betriebsartbestimmungs- und Steuerschaltung 10 erkennt
einen Kreuzungsbetrieb dann, wenn DR < DQ und A0 ≠ 0 ge
geben sind, und sie erkennt einen Normalbetrieb dann, wenn
DR ≧ DQ ist. Wenn DR < DQ und A0 ≠ 0 sind, zeigt das
Register 5 nicht den Grad von Ri-1(X) an, und es werden
keinerlei Berechnungen im Kreuzngsbetrieb ausgeführt, so
daß ein Verschiebebetrieb ausgewählt wird. Die bestimmte
Betriebsart wird in den Lopt-Taktzyklen aufrecht erhalten.
Wenn die Betriebsart bestimmt ist, schalten die Datenweg
schalter 12, 13 in dem DIV-Block 1 so durch, daß in Ab
hängigkeit von der bestimmten Betriebsart gekreuzte Daten
oder normale Daten ausgewählt sind. Der Wert des Registers
7 0, das heißt der höherwertige Koeffizient (des Grades
dRi-1) von Ri-1(X) und der Wert des Register 8 0, das heißt
der höherwertige Koeffizient (des Grades dQi-1) von Ai-1(X)
gelangt über den Datenwegschalter 13 zu einem Teiler 14
hin. Der Teiler 14 bewirkt eine Division F/G bezüglich
seiner Eingangssignale F, G und gibt ein Ergebnis S ab.
Ein Register 15 hält den Wert S in den Lopt-Taktzyklen
fest, was eine Rechenzeit in einem Schritt darstellt.
Jede der Recheneinheiten 9 1 bis 9 Kopt in dem MLT-Block 2
führt Berechnungen in Abhängigkeit von der Betriebsart
durch, die durch den DIV-Block 1 bestimmt sind. Die Be
rechnungen ihrerseits sind dieselben wie jene entsprechend
dem Verfahren D. Entsprechend dem Verfahren der zweiten
Ausführungsform wird der Satz an Koeffizienten, die in
sämtlichen Registern 7 0 bis 7 2t, 8 0 bis 8 2t+1 gespeichert
sind, nicht in einer Taktperiode bzw. in einem Taktzyklus
berechnet, sondern in Lopt Taktzyklen innerhalb eines
Schrittes. Demgemäß werden dieselben Werte wie jene, die
auf die Beendigung eines Taktzyklus hin (das heißt in einem
Schritt) entsprechend dem Verfahren D erzeugt worden sind,
in den Registern 7 0 bis 7 2t, 8 0 bis 8 2t+1 für die erste
Zeit nach Verstreichen der Lopt Taktzyklen gespeichert.
Jede der Recheneinheiten 9 1 bis 9 Kopt weist Eingangsan
schlüsse A, B und Ausgangsanschlüsse A', B' auf. Bei jedem
i-ten Schritt werden die in den Registern 7 j, 8 j mit einer
Registerzahl j gespeicherten Koeffizienten berechnet, wie
dies in den nachstehenden Tabellen 6-1 bis 6-3 veranschau
licht ist. Diese Berechnungen sind identisch mit jenen
entsprechend dem Verfahren D.
In einem Schritt werden die in den obigen Tabellen 6-1
bis 6-3 bezeichneten Berechnungen in Lopt Taktzyklen unter
Heranziehung der Kopt Recheneinheiten 9 1 bis 9 Kopt ausge
führt. Die Recheneinheit K mit einer Recheneinheitszahl K
bewirkt Berechnungen bezüglich der Koeffizienten, die in
den Registern 7 (K-1).Lopt+1 bis 7 K.Lopt, 8 (K-1).Lopt+1
bis 8 K.Lopt mit den Registerzahlen (K - 1)Lopt+1 bis K.Lopt
gespeichert sind.
Die Koeffizienten werden aufeinanderfolgend aus jenen An
gaben berechnet, die in Registern mit jüngeren Register
zahlen gespeichert sind, und zwar in Lopt Taktzyklen. So
berechnet beispielsweise die Recheneinheit 9 1 die in den
Registern 7 1, 8 1 gespeicherten Koeffizienten mit einer
Registerzahl 1 in dem ersten Taktzyklus im jeweiligen
Schritt, und außerdem erfolgt die Berechnung der in den
Registern 7 2, 7 3, . . . 7 Lopt, 8 2, 8 3, . . . 8 Lopt mit den Re
gisterzahlen 2, 3 . . . Lopt gespeicherten Koeffizienten,
und zwar in zweiten, dritten, . . . . Lopt Taktzyklen.
Die in den Registern 7 0 bis 7 2t, 8 0 bis 8 2t+1 gespeicher
ten Koeffizienten werden aufeinanderfolgend zu den Re
gistern mit jüngeren Registerzahlen in aufeinanderfol
genden Taktzyklen verschoben. Berechnungen innerhalb jedes
Taktzyklus werden auf die Koeffizienten hin ausgeführt,
die in den höherwertigen Registern 7 1, . . . 7 (K-1).Lopt+1,
8 1 . . . 8 (K-1).Lopt+1 gespeichert sind, welche durch die
Recheneinheiten 9 1 bis 9 Kopt be- bzw. verarbeitet werden.
Die von den Recheneinheiten 9 1 bis 9 Kopt auf der A-Seite
abgegebenen, berechneten Ergebnisse werden in den Registern
7 0 . . . 7 (K-2).Lopt auf der A-Seite lediglich im ersten
Taktzyklus und in den Registern 7 Lopt-1, . . . . 7 (k-1).Lopt-1
in den zweiten bis Lopt-ten Taktzyklen gespeichert. Die
berechneten Ergebnisse werden aufeinanderfolgend zu dem
höherwertigen Register im jeweiligen Taktzyklus hin ver
schoben. Die Register 7 Lopt-1, . . . . 7 (K-1).Lopt-1 speichern
Daten aus den Registern 7 Lopt . . . . 7 (K-1).Lopt lediglich
im ersten Taktzyklus, und sie speichern die Ausgangssignale
von der A-Seite der Recheneinheiten 9 1 bis 9 Kopt in den
zweiten bis Lopt-ten Taktzyklen. Die Datenwegschalter 17 1
bis 17 Kopt dienen der Steuerung der Speicherung der Daten.
Die berechneten Ergebnisse, die von den Recheneinheiten 9 1
bis 9 Kopt auf der B-Seite abgegeben werden, werden in den
Registern 8 Lopt, 8 2.Lopt . . . . 8 (K-2).Lopt gespeichert und
sukzessive verschoben.
Die Register 7 0, 8 0 speichern die Ergebnisse der Berech
nungen im ersten Taktzyklus und halten die gespeicherten
Ergebnisse während der zweiten bis Lopt-ten Taktzyklen
fest.
Die Register 7 Lopt, 7 2.Lopt, 7 3.Lopt, die in die Verbin
dung zwischen die Recheneinheiten 9 1 bis 9 Kopt eingefügt
sind, speichern die Ergebnisse der Berechnungen, die von
den Recheneinheiten 9 2 bis 9 Kopt abgegeben worden sind,
und zwar lediglich im ersten Taktzyklus, und sie halten
das gespeicherte Ergebnis während der zweiten bis Lopt-ten
Taktzklen fest.
Die Recheneinheiten 9 2 bis 9 Kopt arbeiten in derselben
Weise. In jedem Taktzyklus bestimmen die Recheneinheiten 9 2
bis 9 Kopt die auszuführenden Berechnungen unter Heranziehung
der Tabellen 6-1 bis 6-3 aus Parametern, umfassend eine
Recheneinheitszahl K, eine Registerzahl L, zu berechnende
Speicherdaten, den Wert im Register DR und eine Betriebs
art.
Unter Heranziehung des obigen Rechenverfahrens und des
Prozesses zur Speicherung von Daten in den Registern 7 0
bis 7 2t, 8 0 bis 8 2t+1 sind die Werte, die nach den Lopt
Taktzyklen erhalten werden, wenn die Berechnungen in einem
Schritt abgeschlossen sind, dieselben Werte wie jene Werte,
die in den Registern gespeichert sind, wenn die Berechnungen
in einem Schritt entsprechend dem Verfahren D abgeschlossen
werden.
Durch 2t-maliges Wiederholen in den Lopt Taktzyklen der
Prozedur zur Beendigung der Berechnungen innerhalb eines
Schrittes können die gewünschten Größen σ(X), ω(X)
erhalten werden.
Die Recheneinheiten 9 1 bis 9 Kopt können von derselben An
ordnung sein, wie die Recheneinheiten, entsprechend dem Ver
fahren D. Dies bedeutet, daß jede der Recheneinheiten 9 1
bis 9 Kopt aus drei Datenwegschaltern 20 bis 22, einer Multi
pliziereinrichtung 25 und einem Addierer 26 bestehen kann,
wie dies in Fig. 9 veranschaulicht ist.
Die detaillierte Anordnung der Recheneinheiten 9 1 bis 9 Kopt,
die Berechnungen im Verschiebebetrieb und der Prozeß zur
Speicherung von Daten in den Registern können identisch
sein mit jenen, die in Verbindung mit dem Verfahren D be
schrieben worden sind.
Die Arbeitsweise der in Fig. 8 dargestellten Euklidischen,
wechselseitigen Divisionsschaltung, die aus Recheneinhei
ten 9 1 bis 9 Kopt besteht, wie sie in Fig. 9 veranschaulicht
sind, ist beispielsweise in Fig. 10 bis 22 veranschaulicht.
Das dargestellte Beispiel ist dasselbe, wie das oben be
schriebene Beispiel, bei dem t = 2 Symbole einer Fehlerkorrek
tur unterzogen sind, indem ein finites Feld GF(24) verwendet
wird, welches unter Verwendung eines nichtreduzierbaren
Polynoms g(X) = X4 + X + 1 festgelegt ist.
Bei diesem Beispiel ist der Multiplexgrad Lopt auf 3 fest
gesetzt. Demgemäß werden bei in einem Schritt in 3 Takt
zyklen ausgeführten Berechnungen die Rechnungen in 2t = 4
Schritten innerhalb von 2t - Lopt = 12 Taktzyklen beendet.
Die Anzahl Kopt an Recheneinheiten ist wie folgt gegeben:
Kopt = [2t/Kopt] + 1
= [2.2/3] + 1
= 2 (46).
Es sei angenommen, daß sämtliche Register 7 0 bis 7 5, 8 0
bis 8 6, wie in Fig. 10 veranschaulicht, initialisiert worden
sind.
Bei einem ersten Schritt, wie er in Fig. 10 bis 12 veran
schaulicht ist, ist die Bedingung DR < DQ erfüllt, und der
im Register 5 gespeicherte Wert (dR0) von DR ist gegeben
mit 3 und der im Register 6 gespeicherte Wert (dQ0) von
DQ ist mit 4 gegeben; der im Register 141 0 gespeicherte
Koeffizient des Grades dR0 von R0(X) beträgt 8, was
von 0 verschieden ist. Demgemäß ist die Arbeitsweise
als Kreuzungsbetrieb bestimmt. Der Datenwegschalter 13
auf der Eingangsseite des Teilers 14 wird in den Kreuzungs
zustand geschaltet, und der Datenwegschalter 12 auf der
Eingangsseite der Register 5, 6 ist in den Kreuzungsbetrieb
geschaltet. Der Teiler 14 führt eine Berechnung 1/α8 aus.
Das Ergebnis S = α7 der Division wird abgegeben und im
Register 15 gespeichert.
Wenn die Betriebsart im ersten Schritt als Kreuzungsbetrieb
bestimmt ist, werden die Arbeitsweise und das im Register 15
gespeicherte Ergebnis S der Division während Lopt = 3 Takt
zyklen beibehalten, in denen die Berechnungen im ersten
Schritt ausgeführt werden.
Gemäß der Tabelle 6-1 werden die in den Registern, deren
Registerzahl j beträgt, gespeicherten Daten in einer von
drei verschiedenen Rechenbetriebsarten berechnet, und zwar
in Abhängigkeit davon, ob die Registerzahl j im Bereich
0 < j ≦ dRi-1, dRi-1 < j ≦ dQi-1 oder dQi-1 < j liegt.
Bei dem in Fig. 10 bis 12 veranschaulichten, ersten Schritt
werden mit Rücksicht darauf, daß dR0 = 3, dQ0 = 4 ist,
die in den Registern 7 1 bis 7 3, 8 1 bis 8 3, deren Register
zahlen 1 bis 3 sind, gespeicherten Daten Berechnungen unter
zogen, die durch A' = A × S + B bzw. B' = A bezeichnet
sind. Für derartige Berechnungen befindet sich in der
Recheneinheit 9 1 der Datenwegschalter 20 im Kreuzungs
zustand, während sich der Datenwegschalter 21 im Normal
zustand befindet. Der Datenwegschalter 22 befindet sich
im Durchschaltezustand.
Die in den Registern 7 4, 8 4, deren Registerzahl 4 beträgt,
gespeicherten Daten werden Berechnungen unterzogen, die
durch A' = B und B' = A bezeichnet sind. Für derartige
Berechnungen befinden sich in der Recheneinheit 9 2 der
Datenwegschalter 20 im Kreuzungszustand; der Datenwegschal
ter 21 befindet sich im Normalzustand, und der Datenweg
schalter 22 befindet sich im Löschzustand.
Die in den übrigen Registern 7 5, 8 5, 8 6, deren Register
zahlen 5 bzw. 6 sind, gespeicherten Daten werden Berech
nungen unterzogen, die durch A' = B und B' = B × S + A
bezeichnet sind. Bezüglich derartiger Berechnungen in
der Recheneinheit 9 2 befindet sich der Datenwegschalter 20
im Normalzustand; der Datenwegschalter 21 befindet sich
im Kreuzungszustand, und der Datenwegschalter 22 befindet
sich im Durchgangszustand.
Beim ersten Schritt, dem in Fig. 10 veranschaulichten Takt
zyklus führen die Recheneinheiten 9 1, 9 2 Berechnungen be
züglich Koeffizienten durch, die in den Registern 7 1, 7 4,
8 1, 8 4 gespeichert sind, deren Registerzahlen 1 bzw. 4
sind. Da die Recheneinheiten 9 1 Berechnungen bewirken,
die durch A' = A × S + B, B' = A bezeichnet sind, befindet
sich der Datenwegschalter 20 im Kreuzungszustand, während
sich der Datenwegschalter 21 im Normalzustand befindet;
der Datenwegschalter 22 befindet sich im Durchgangszustand.
Da die Recheneinheit 9 2 Berechnungen durchführt, die durch
A' = B, B' = A bezeichnet sind, befindet sich der Datenweg
schalter 20 im Kreuzungszustand, während sich der Datenweg
schalter 21 im Normalzustand befindet; der Datenwegschalter
22 befindet sich im Löschzustand.
Die Datenwegschalter 17 1, 17 2 für die Recheneinheiten 9 1,
9 2 arbeiten so, wie dies in Fig. 10 veranschaulicht ist.
Da Fig. 10 den ersten Taktzyklus veranschaulicht, werden
die Datenwegschalter 17 1, 17 2 in den Schiebezustand ge
schaltet. Die Rechenergebnisse, die von den Ausgangsan
schlüssen A' der Recheneinheiten 9 1, 9 2 abgegeben werden,
werden in den Registern 7 0, 7 3 gespeichert und dadurch
für drei aufeinanderfolgende Taktzyklen festgehalten. In
entsprechender Weise speichert das Register 8 0 den Wert
des Registers 7 0 und hält den gespeicherten Wert über drei
aufeinanderfolgende Taktzyklen fest.
Die von den Ausgangsanschlüssen B' der Recheneinheiten 9 1,
9 2 abgegebenen Rechenergebnisse werden in den Registern
8 3, 8 6 gespeichert und in jedem Taktzyklus verschoben.
Die in den Registern 7 0 bis 7 5, 8 0 bis 8 6 gespeicherten
Rechenergebnisse sind in Fig. 11 veranschaulicht.
Die Zustände der in Fig. 11 dargestellten Register, welche
die in Fig. 10 veranschaulichten Rechenergebnisse reprä
sentieren, sind kennzeichnend lediglich für die abgeschlos
senen Berechnungen bezüglich der Daten, die in den Re
gistern 7 1, 8 1 mit der Registerzahl 1 und in den Registern
7 4, 8 4 mit der Registerzahl 4 im Zuge der Berechnungen
im ersten Schritt gespeichert sind.
Bei den Berechnungen, die jenen folgen, welche in Fig. 11
veranschaulicht sind, das heißt beim ersten Schritt, dem
zweiten Taktzyklus, bewirken die Recheneinheiten 9 1, 9 2
Berechnungen bezüglich der Koeffizienten, die in den Re
gistern 7 2, 8 2 mit der Registerzahl 2 und in den Registern
7 5, 8 5 mit der Registerzahl 5 gespeichert sind.
Damit die Recheneinheit 9 1 Berechnungen durchführt, die
durch A' = A × S + B, B' = A gegeben sind, und zwar wie
im ersten Taktzyklus, wird der Datenwegschalter 20 in den
Kreuzungszustand geschaltet, der Datenwegschalter 21 wird
in den Normalzustand geschaltet, und der Datenwegschal
ter 22 wird in den Durchschaltezustand geschaltet. Damit
die Recheneinheit 9 2 Berechnungen durchführt, wie sie durch
A' = B, B' = B × S + A bezeichnet sind, wird der Datenweg
schalter 20 in den Normalzustand geschaltet, der Datenweg
schalter 21 wird in den Kreuzungszustand geschaltet, und
der Datenwegschalter 22 wird in den Durchschaltezustand
geschaltet.
Da der in Fig. 11 veranschaulichte Taktzyklus nicht der
erste Taktzyklus ist, sind die Datenwegschalter 17 1, 17 2
in einen Schleifenzustand geschaltet. Die von den Ausgangs
anschlüssen A' der Recheneinheiten 9 1, 9 2 abgegebenen Re
chenergebnisse werden in den Registern 7 2, 7 5 gespeichert
und in jedem Taktzyklus verschoben.
Die von den Ausgangsanschlüssen B' der Recheneinheiten 9 1,
9 2 abgegebenen Rechenergebnisse werden in den Registern
8 3, 8 6 wie im ersten Taktzyklus gespeichert und in jedem
Taktzyklus verschoben.
Die in den Registern 7 0 bis 7 5, 8 0 bis 8 6 gespeicherten
Rechenergebnisse sind in Fig. 12 veranschaulicht.
Die in Fig. 12 veranschaulichten Zustände der Register
repräsentieren die Rechenergebnisse, die in Fig. 11 ver
anschaulicht sind; sie sind kennzeichnend für die abge
schlossenen Berechnungen bezüglich der Daten, die in den
Registern 7 1, 7 2, 7 4, 7 5, 8 1, 8 2, 8 4, 8 5 mit den Register
zahlen 1, 2, 4, 5 gespeichert sind, und zwar unter den
Berechnungen im ersten Schritt.
Die in Fig. 12 veranschaulichten Berechnungen sind jene
im ersten Schritt, dem dritten Taktzyklus.
Der dritte Taktzyklus ist der letzte Taktzyklus im ersten
Schritt. Die Recheneinheit 9 1 führt Berechnungen bezüglich
der Koeffizienten aus, die in den Registern 7 3, 8 3 ge
speichert sind, deren Registerzahl bzw. -nummer 3 beträgt.
Da die Recheneinheit 9 1 Berechnungen ausführt, die durch
A' = A × S + B, B' = A bezeichnet sind, wie in den ersten
und zweiten Taktzyklen, befindet sich der Datenwegschal
ter 20 im Kreuzungszustand, während sich der Datenwegschal
ter 21 im Normalzustand befindet, und der Datenwegschal
ter 22 befindet sich im Durchschaltezustand.
Da der in Fig. 12 veranschaulichte Taktzyklus nicht der
erste Taktzyklus ist, sind die Datenwegschalter 17 1, 17 2
in den Schleifenzustand geschaltet. Die Rechenergebnisse
sind in den Registern 7 2, 7 5 gespeichert.
Das Register 8 6, dessen Registerzahl 6 ist, speichert 0,
was bedeutet, daß keine Berechnung erforderlich ist. Dem
gemäß können die im Register 8 6 gespeicherten Daten nicht
berechnet werden. Die Recheneinheit 9 1 bewirkt einfach
Berechnungen, wie sie durch A' = A, B' = B bezeichnet sind,
und der Datenwegschalter 20 kann sich im Normalzustand
befinden; der Datenwegschalter 21 kann sich im Normalzu
stand befinden, und der Datenwegschalter 22 kann sich im
Löschzustand befinden. Die Daten 0, die im Register 8 6
gespeichert sind, welches der Bequemlichkeit halber ein
geführt ist, werden im Register 7 5 gespeichert.
Wenn die in Fig. 13 veranschaulichten Zustände der Register
7 0 bis 7 5, 8 0 bis 8 6, welche die in Fig. 12 veranschaulich
ten Rechenergebnisse anzeigen, erreicht sind, sind die
Berechnungen im ersten Schritt beendet. Ein Vergleich
zwischen Fig. 13 und Fig. 4, welche die Zustände nach Be
endigung des ersten Schritts entsprechend dem Verfahren D
veranschaulicht, zeigt an, daß die Werte der Register ge
mäß Fig. 13 und 4 dieselben sind.
Entsprechend dem Verfahren D werden die Werte in den Re
gistern 141 0 bis 141 4 auf der A-Seite zu der höherwertigen
Stelle hin einmal in jedem Taktzyklus verschoben. Ent
sprechend dem Verfahren gemäß der zweiten Ausführungsform
werden jedoch die Werte in den Registern 7 0 bis 7 5 auf
der A-Seite ein einziges Mal in Lopt = 3 Taktzyklen ver
schoben.
Die Berechnungen in den zweiten Schritten werden so durch
geführt, wie dies in Fig. 13 bis 15 veranschaulicht ist.
Beim zweiten Schritt wird mit Rücksicht darauf, daß der
Wert (dRi) in dem Register 5 gegeben ist mit 3 und daß
der Wert (dQ1) im Register 6 gegeben ist mit 6, wobei
DR ≧ DQ gilt, die Betriebsweise als Normalbetrieb erkannt.
Der Datenwegschalter 13 auf der Eingangsseite des Teilers
14 wird in den Normalzustand geschaltet, und der Teiler 14
führt eine Berechnung α2/α8 aus. Das Ergebnis S = α9
der Division wird an die Recheneinheiten 9 1, 9 2 abgegeben.
Gemäß Fig. 13 bis 15 werden die Berechnungen im Normalbe
trieb durchgeführt. Demgemäß werden die Berechnungen in
Übereinstimmung mit der Rechentabelle 6-2 im Normalbetrieb
ausgeführt.
Bei den in Fig. 13 bis 15 veranschaulichten Berechnungen
im zweiten Schritt werden die in den Registern 7 1 bis 7 3,
8 1 bis 8 3, deren Registerzahlen 1 bis 3 sind, gespeicherten
Daten Berechnungen unterzogen, die durch A' = B × S + A
und B' = B bezeichnet sind. Bezüglich derartiger Berech
nungen in der Recheneinheit 9 1 befinden sich die Datenweg
schalter 20, 21 jeweils im Normalzustand, und der Datenweg
schalter 22 befindet sich im Durchschaltezustand.
Die in den übrigen Registern 7 4, 7 5, 8 4, 8 5, 8 6, deren
Registerzahlen bzw. -nummern 4, 5 bzw. 6 sind, gespeicher
ten Daten werden Berechnungen unterzogen, die durch A' = A
und B' = A × S + B bezeichnet sind. Bezüglich derartiger
Berechnungen befindet sich der Datenwegschalter 20 im
Kreuzungszustand, der Datenwegschalter 21 befindet sich
im Kreuzungszustand, und der Datenwegschalter 22 befindet
sich im Durchschaltezustand.
Die Berechnungen bezüglich der Daten in den Registern 7 0
bis 7 5, 8 0 bis 8 6 im zweiten Schritt werden separat in
drei Taktzyklen ausgeführt. Dabei werden insbesondere die
in den Registern 7 1 bis 7 3, 8 1 bis 8 3, deren Registerzahlen
1, 2 bzw. 3 sind, gespeicherten Koeffizienten aufeinander
folgend in jedem Taktzyklus durch die Recheneinheit 9 1
berechnet, und die in den Registern 7 4 bis 7 6, 8 4 bis 8 6,
deren Registerzahlen 4, 5 bzw. 6 sind, gespeicherten Ko
effizienten werden aufeinanderfolgend in jedem Taktzyklus
durch die Recheneinheit 9 2 berechnet.
Fig. 16 veranschaulicht die Werte, die in den Registern
7 0 bis 7 5, 8 0 bis 8 6 nach Beendigung der Berechnungen im
zweiten Schritt gespeichert sind. Dabei ist ersichtlich,
daß die gespeicherten Werte dieselben sind wie jene Werte,
die in den Registern nach Beendigung des zweiten Schrittes
entsprechend dem in Fig. 5 veranschaulichten Verfahren D
gespeichert sind.
Der in Fig. 16 bis 18 veranschaulichte, dritte Schritt wird
dann im Kreuzungsbetrieb ausgeführt, und der vierte, in
Fig. 19 bis 21 dargestellte Schritt wird im Normalbetrieb
durchgeführt, bis schließlich Polynome σ(X), ω(X) er
halten werden, wie dies in Fig. 22 veranschaulicht ist.
Es sei darauf hingewiesen, daß die Koeffizienten der so
erhaltenen Polynome σ(X), ω(X) identisch sind mit
den Koeffizienten, die entsprechend den Verfahren D er
halten werden, wie dies in Fig. 7 veranschaulicht ist.
Das Verfahren entsprechend der zweiten Ausführungsform
führt exakt dieselben Berechnungen aus wie jene ent
sprechend dem Verfahren D. Durch wiederholte Anwendung
der Recheneinheiten 9 1 bis 9 Kopt in einer Zeitmultiplex
weise, und zwar mit einem Multiplexgrad Lopt bezüglich
der Berechnungen in einem Schritt, werden die Berechnungen
mit der Anzahl Kopt = (2t/Kopt) + 1 Recheneinheiten ausge
führt; diese Zahl ist geringer als die Anzahl der Rechen
einheiten entsprechend dem Verfahren D. Stattdessen nimmt
die Anzahl der Taktzyklen, die für die Berechnungen in
einem Schritt benötigt werden, auf Lopt zu.
Das Verfahren entsprechend der zweiten Ausführungsform
ist dasselbe wie das Verfahren D, und zwar insofern, als
der Algorithmus durch (2t + 1) Berechnungen erzielt wird,
deren Anzahl um 1 größer ist als die minimale Anzahl 2t
von Berechnungen (Multiplikationen), die im Prinzip pro
Schritt beim Euklidischen, wechselseitigen Divisionsverfahren
erforderlich sind. Die Berechnungen werden jedoch mit der
Anzahl Kopt = (2t/Kopt) + 1 Recheneinheiten durchgeführt,
deren Anzahl geringer ist als die Anzahl der Rechenein
heiten entsprechend dem Verfahren D, indem die Rechenein
heiten in einer Zeitmultiplexweise wiederholt genutzt
werden, wobei der Zeitmultiplexgrad Lopt in bezug auf die
Berechnungen in einem Schritt gegeben ist.
Bei der oben beschriebenen, zweiten Ausführungsform beträgt
der Multiplexgrad Lopt = 3. Falls der Multiplexgrad Lopt
zunimmt, sinkt die Anzahl Kopt an Recheneinheiten. Wenn
sich der Multiplexgrad Lopt ändert, ändert sich die Anzahl
Lopt der Recheneinheiten, wie dies in der folgenden Tabel
le 7 veranschaulicht ist.
Wie aus der Tabelle 7 ersehen werden kann, nimmt die Anzahl
Lopt an Recheneinheiten ab, wenn der Multiplexgrad Lopt
zunimmt. Da die Anzahl der Register stets 4t + 3 ist, ist
der Schaltungsaufwand der Euklidischen, wechselseitigen
Divisionsschaltung umso geringer, je höher der Multiplex
grad Lopt ist. Entsprechend dem Verfahren gemäß der zwei
ten Ausführungsform kann der Schaltungsaufwand dadurch
erheblich herabgesetzt werden, daß ein optimaler Multi
plexgrad Lopt entsprechend Spezifikationsanforderungen
an ein Fehlerkorrektursystem gewählt wird.
Die Anzahl Kopt an Recheneinheiten bleibt dieselbe, ob
der Multiplexgrad 3 oder 4 ist. Insofern, als bei geringerer
Anzahl von Berechnungstaktzyklen ein größerer Vorteil er
zielt wird, falls der Multiplexgrad Lopt kleiner ist, können
Berechnungen mit derselben Anzahl Kopt an Recheneinheiten
in einer geringeren Anzahl von Taktzyklen ausgeführt werden,
wenn der Multiplexgrad Lopt auf 3 festgelegt ist.
Gemäß der zweiten Ausführungsform ist die Anzahl der Re
gister 7 0 bis 7 5, 8 0 bis 8 6 um 2 größer als die Anzahl
(4t + 3) = 11, die notwendigerweise benötigt wird. Dies
ist indessen lediglich der Einfachheit halber so für ein
leichteres Verständnis der Berechnungen. Tatsächlich
speichert das Register 8 6, dessen Registernummer 6 ist,
eine 0, und damit ist es nicht erforderlich, die im Re
gister 8 6 gespeicherten Daten zu berechnen. Durch gering
fügiges Modifizieren des die Recheneinheit 9 2 steuernden
Prozesses ist es somit möglich, die Euklidische, wechsel
seitige Divisionsschaltung aus (4t + 3) Registern einfach
aufzubauen, deren Anzahl eine Minimalzahl ist, die auf
den Arbeitsprinzipien beruht.
Bei dem Verfahren entsprechend der zweiten Ausführungs
form gibt es verschiedene Wege der Initialisierung der
Register 7 0 bis 7 2t, 8 0 bis 8 2t+1. Im Hinblick darauf trifft
dieselbe Beschreibung zu wie zum Verfahren D. Falls Wähler
mit den Eingangsanschlüssen der Register 7 0 bis 7 2t, 8 0
bis 8 2t+1 verbunden sind, dann ist es insbesondere mög
lich, sämtliche Register gleichzeitig zu initialisieren.
Alternativ dazu können die Register aufeinanderfolgend
dadurch initialisiert werden, daß Initialisierungswerte
der betreffenden Polynome als Eingangssignale den nieder
wertigeren Registern eingangsseitig zugeführt werden, das
heißt lediglich den Registern 7 2t, 8 2t+1 für die ent
sprechenden Polynome.
Darüber hinaus speichert das Register 15 für die Speicherung
des Divisionsergebnisses vom Teiler 14 den Wert einmal
in Lopt Taktzyklen. Die durch den Teiler 14 geteilten, zu
aktualisierenden Eingangsgrößen F, G sind konstante Werte
in Lopt-1 Taktzyklen, bevor das Divisionsergebnis im Re
gister 15 gespeichert wird. So wird beispielsweise gemäß
Fig. 13 das Divisionsergebnis α9 im Normalbetrieb im
Register 15 gespeichert, und α2 und α8, was den Ein
gangsgrößen F, G entspricht, werden in den Registern 7 0,
8 0 zum Zeitpunkt gemäß Fig. 11 gespeichert, was Lopt-1 = 2
Taktzyklen zuvor ist. Deshalb kann die Betriebsart im zwei
ten Schritt bestimmt werden, und die Division kann im
zweiten Taktzyklus im ersten Schritt begonnen werden.
Generell können für den Multiplexgrad Lopt Taktzyklen
Lopt - 1 angenommen werden für die Bestimmung der Betriebs
art und für die Durchführung der Division.
Üblicherweise ist die Divisionsgeschwindigkeit wesentlich
geringer als die Multiplikations- und Additionsgeschwindig
keit. Entsprechend dem Verfahren D wird die Betriebsge
schwindigkeit durch die Divisionsgeschwindigkeit bestimmt,
und die Schaltung kann nicht bei hoher Geschwindigkeit
arbeiten.
Entsprechend dem Verfahren gemäß der zweiten Ausführungsform
können jedoch dadurch, daß der Multiplexgrad Lopt auf einen
an die Betriebsgeschwindigkeit des Teilers 14 angepaßten
geeigneten Wert festgelegt ist, die Recheneinheiten 9 1
bis 9 Kopt sodann effizient benutzt werden, und zwar sogar
dann, falls der Teiler 14 langsam ist. Deshalb kann sogar
in dem Fall, daß ein langsamer Teiler 14 benutzt wird,
das Gesamtsystem bei hoher Geschwindigkeit arbeiten.
Wie oben beschrieben, kann der Multiplexgrad gesteigert
werden, um die Anzahl der Recheneinheiten zu reduzieren,
und zwar im Hinblick auf eine starke Herabsetzung des Schal
tungsaufwands und eine schnelle Betriebsweise für einen
gesteigerten Durchsatz.
Claims (6)
1. Euklidische, wechselseitig arbeitende Divisionsschaltung,
dadurch gekennzeichnet,
daß eine Vielzahl von Recheneinrichtungen (135 1 . . 135 2t+1) vorgesehen ist, deren jede aus zwei Registern (141, 142) für die Speicherung von Koeffizienten-Daten von entsprechenden Polynomen (Ri(X)), (Qi(X)), (λi(X)), (µi(X)) nach dem Euklidischen Divisionsalgorithmus und einer Recheneinheit besteht,
daß die Recheneinrichtungen (135 1 . . 135 2t+1) in einer solchen Anzahl in Kaskade geschaltet sind, welche der Anzahl von Korrekturen zur Erzielung eines Divisionsergebnisses und eines Wertes entspricht, der von einer vorhergehenden Stufe geliefert wird,
daß die betreffenden Recheneinheiten (135 1 . . 135 2t+1) auf ein Schaltkommando (136, 137) hin entweder eine Normalverbindungs-Berechnung oder eine Kreuzverbindungs- Berechnung durchführen,
daß eine Divisionseinheit (133) vorgesehen ist, die zwei Register (141, 142) für die Speicherung von (Ri(X)), (Qi(X)), (λi(X)), (µi(X)) und einen Teiler (148) aufweist und die zur Aufnahme eines Wertes dient, der von einer Endstufe (135 1) der betreffenden Recheneinheiten (135 1 . . 135 2t+1) abgegeben worden ist, entweder eine Normalverbindungs-Division oder eine Kreuzverbindungs-Division in Abhängigkeit von dem Schaltkommando bewirkt und das Divisionsergebnis an jede der betreffenden Recheneinrichtungen abgibt, und
daß eine Steuereinheit (134) vorgesehen ist für die Erzeu gung eines Schaltkommandos, welches kennzeichnend ist entweder für eine Normalverbindung oder für eine Kreuzverbindung auf der Grundlage eines bestimmten Ausgangswertes und eines Wertes, der in einem Register (141, 142) in der Divisionseinheit (133) gespeichert ist, wobei das erzeugte Schaltkommando an die Recheneinrichtungen und die Divisionseinheit (133) abgegeben wird.
daß eine Vielzahl von Recheneinrichtungen (135 1 . . 135 2t+1) vorgesehen ist, deren jede aus zwei Registern (141, 142) für die Speicherung von Koeffizienten-Daten von entsprechenden Polynomen (Ri(X)), (Qi(X)), (λi(X)), (µi(X)) nach dem Euklidischen Divisionsalgorithmus und einer Recheneinheit besteht,
daß die Recheneinrichtungen (135 1 . . 135 2t+1) in einer solchen Anzahl in Kaskade geschaltet sind, welche der Anzahl von Korrekturen zur Erzielung eines Divisionsergebnisses und eines Wertes entspricht, der von einer vorhergehenden Stufe geliefert wird,
daß die betreffenden Recheneinheiten (135 1 . . 135 2t+1) auf ein Schaltkommando (136, 137) hin entweder eine Normalverbindungs-Berechnung oder eine Kreuzverbindungs- Berechnung durchführen,
daß eine Divisionseinheit (133) vorgesehen ist, die zwei Register (141, 142) für die Speicherung von (Ri(X)), (Qi(X)), (λi(X)), (µi(X)) und einen Teiler (148) aufweist und die zur Aufnahme eines Wertes dient, der von einer Endstufe (135 1) der betreffenden Recheneinheiten (135 1 . . 135 2t+1) abgegeben worden ist, entweder eine Normalverbindungs-Division oder eine Kreuzverbindungs-Division in Abhängigkeit von dem Schaltkommando bewirkt und das Divisionsergebnis an jede der betreffenden Recheneinrichtungen abgibt, und
daß eine Steuereinheit (134) vorgesehen ist für die Erzeu gung eines Schaltkommandos, welches kennzeichnend ist entweder für eine Normalverbindung oder für eine Kreuzverbindung auf der Grundlage eines bestimmten Ausgangswertes und eines Wertes, der in einem Register (141, 142) in der Divisionseinheit (133) gespeichert ist, wobei das erzeugte Schaltkommando an die Recheneinrichtungen und die Divisionseinheit (133) abgegeben wird.
2. Euklidische, wechselseitig arbeitende Divisionsschaltung,
dadurch gekennzeichnet,
daß ein Block (132, MLT) mit einer Gruppe von Registern (141 1 . . 141 2t) einer A-Seite vorgesehen ist, die in Abhängigkeit von einem Multiplexgrad unterteilt sind für die Speicherung von Koeffizienten von Polynomen (Ri(X)), (Qi(X)) nach dem Euklidischen Divisionsalgorithmus,
daß der betreffende Block (132, MLT) eine Gruppe von Registern (142 1 . . 142 2t+1) einer B-Seite umfaßt, die in Abhängigkeit vom Multiplexgrad unterteilt sind für die Speicherung von Koeffizienten von (λi(X)), (µi(X)),
daß so viele Recheneinheiten (135 1 . . 135 2t+1) vorgesehen sind, wie durch die vom Multiplexgrad abhängige Zahl gegeben ist,
daß der betreffende Block (132, MLT) ein Divisionsergebnis und Werte aufzunehmen imstande ist, die von den Registern (141 1 . . 141 2t, 142 1 . . 142 2t+1) der A-Seite und der B-Seite abgegeben werden, und auf ein Schaltkommando hin entweder eine Normalverbindungs-Berechnung oder eine Kreuzverbindungs- Berechnung oder eine Verschiebeverbindungs-Berechnung in jedem Taktzyklus innerhalb jedes Schrittes ausführt,
daß eine Divisionseinheit (133) mit einem Register (141) für die Speicherung von (Ri(X)), (Qi(X)), einem Register (142) für die Speicherung von (λi(X)), (µi(X)) und einem Teiler (148) vorgesehen ist für die Division von Koeffizienten, die in den Registern (141, 142) gespeichert sind,
wobei ein Wert aufgenommen wird, der von einer Endstufe (135 1) des Blocks (132, MLT) abgegeben wird,
wobei entweder eine Normalverbindungs-Division oder eine Kreuzverbindungs-Division in Abhängigkeit von dem betreffenden Schaltkommando ausgeführt wird und
wobei das Divisionsergebnis an jede der Recheneinheiten (135 1 . . 135 2t+1) bis zur Beendigung des jeweiligen Schritts abgegeben wird, und
daß eine Bestimmungs- und Steuereinheit (134) vorgesehen ist für die Erzeugung eines Schaltkommandos, welches kenn zeichnend ist entweder für eine Normalverbindung oder für eine Kreuzverbindung oder für eine Verschiebeverbindung, und zwar auf der Grundlage eines bestimmten Wertes und eines Wertes, der in einem Register in der betreffenden Divisionseinheit gespeichert ist, wobei das erzeugte Schaltkommando an den Block (132, MLT) und die Divisionseinheit (133) abgegeben wird.
daß ein Block (132, MLT) mit einer Gruppe von Registern (141 1 . . 141 2t) einer A-Seite vorgesehen ist, die in Abhängigkeit von einem Multiplexgrad unterteilt sind für die Speicherung von Koeffizienten von Polynomen (Ri(X)), (Qi(X)) nach dem Euklidischen Divisionsalgorithmus,
daß der betreffende Block (132, MLT) eine Gruppe von Registern (142 1 . . 142 2t+1) einer B-Seite umfaßt, die in Abhängigkeit vom Multiplexgrad unterteilt sind für die Speicherung von Koeffizienten von (λi(X)), (µi(X)),
daß so viele Recheneinheiten (135 1 . . 135 2t+1) vorgesehen sind, wie durch die vom Multiplexgrad abhängige Zahl gegeben ist,
daß der betreffende Block (132, MLT) ein Divisionsergebnis und Werte aufzunehmen imstande ist, die von den Registern (141 1 . . 141 2t, 142 1 . . 142 2t+1) der A-Seite und der B-Seite abgegeben werden, und auf ein Schaltkommando hin entweder eine Normalverbindungs-Berechnung oder eine Kreuzverbindungs- Berechnung oder eine Verschiebeverbindungs-Berechnung in jedem Taktzyklus innerhalb jedes Schrittes ausführt,
daß eine Divisionseinheit (133) mit einem Register (141) für die Speicherung von (Ri(X)), (Qi(X)), einem Register (142) für die Speicherung von (λi(X)), (µi(X)) und einem Teiler (148) vorgesehen ist für die Division von Koeffizienten, die in den Registern (141, 142) gespeichert sind,
wobei ein Wert aufgenommen wird, der von einer Endstufe (135 1) des Blocks (132, MLT) abgegeben wird,
wobei entweder eine Normalverbindungs-Division oder eine Kreuzverbindungs-Division in Abhängigkeit von dem betreffenden Schaltkommando ausgeführt wird und
wobei das Divisionsergebnis an jede der Recheneinheiten (135 1 . . 135 2t+1) bis zur Beendigung des jeweiligen Schritts abgegeben wird, und
daß eine Bestimmungs- und Steuereinheit (134) vorgesehen ist für die Erzeugung eines Schaltkommandos, welches kenn zeichnend ist entweder für eine Normalverbindung oder für eine Kreuzverbindung oder für eine Verschiebeverbindung, und zwar auf der Grundlage eines bestimmten Wertes und eines Wertes, der in einem Register in der betreffenden Divisionseinheit gespeichert ist, wobei das erzeugte Schaltkommando an den Block (132, MLT) und die Divisionseinheit (133) abgegeben wird.
3. Divisionsschaltung nach Anspruch 1 oder 2,
dadurch gekennzeichnet,
daß die Divisionseinheit (133) zumindest ein Paar von Registern (141, 142) der A- und B-Seite aufweist und
daß die Anordnung so ausgelegt ist, daß die Werte, welche durch Division der in den Registern (141, 142) gespeicherten Werte erzeugt werden, zu jeder der Recheneinheiten (135 1 . . 135 2t+1) zurückgeführt werden.
daß die Divisionseinheit (133) zumindest ein Paar von Registern (141, 142) der A- und B-Seite aufweist und
daß die Anordnung so ausgelegt ist, daß die Werte, welche durch Division der in den Registern (141, 142) gespeicherten Werte erzeugt werden, zu jeder der Recheneinheiten (135 1 . . 135 2t+1) zurückgeführt werden.
4. Divisionsschaltung nach Anspruch 3,
dadurch gekennzeichnet,
daß jede Divisionseinheit (133) und die Steuereinheit (134)
zumindest einen Schalter aufweisen für das Schalten von
Verbindungen in der betreffenden Divisionseinheit (133) und in
der Steuereinheit (134) auf das betreffende Schaltkommando
hin.
5. Divisionsschaltung nach Anspruch 4,
dadurch gekennzeichnet,
daß das Divisionsergebnis Werte zumindest eines
Fehleranzeigepolynoms oder eines Fehlerbewertungspolynoms
repräsentiert.
6. Divisionsschaltung nach Anspruch 5,
dadurch gekennzeichnet,
daß sie zur Fehlerkorrektur eines digitalen Signals benutzt ist,
daß die Register der A-Seite (141) zumindest 2t + 1 Register und die Register (142) der B-Seite zumindest 2t + 2 Register aufweisen und
daß insgesamt zumindest 4t + 3 Register (141, 142) vorgesehen sind, wobei (t) die Anzahl der Symbole ist, die fehlerkorrigierbar sind.
daß sie zur Fehlerkorrektur eines digitalen Signals benutzt ist,
daß die Register der A-Seite (141) zumindest 2t + 1 Register und die Register (142) der B-Seite zumindest 2t + 2 Register aufweisen und
daß insgesamt zumindest 4t + 3 Register (141, 142) vorgesehen sind, wobei (t) die Anzahl der Symbole ist, die fehlerkorrigierbar sind.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35075391A JP3252420B2 (ja) | 1991-12-12 | 1991-12-12 | ユークリッドの互除回路 |
JP35075991A JP3252421B2 (ja) | 1991-12-12 | 1991-12-12 | ユークリッドの互除回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4241903A1 DE4241903A1 (de) | 1993-09-23 |
DE4241903C2 true DE4241903C2 (de) | 2002-03-21 |
Family
ID=26579266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4241903A Expired - Lifetime DE4241903C2 (de) | 1991-12-12 | 1992-12-11 | Euklidische wechselseitige Divisionsschaltung |
Country Status (3)
Country | Link |
---|---|
US (1) | US5442578A (de) |
DE (1) | DE4241903C2 (de) |
GB (1) | GB2262371B (de) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2694792B2 (ja) * | 1993-01-27 | 1997-12-24 | 日本電気株式会社 | 誤り位置多項式演算回路 |
JP2605966B2 (ja) * | 1993-02-12 | 1997-04-30 | 日本電気株式会社 | 誤り訂正回路 |
DE69414631T2 (de) * | 1993-03-31 | 1999-04-08 | Kabushiki Kaisha Toshiba, Kawasaki, Kanagawa | Schaltung zur Durchführung des Euclidschen Algorithmus bei der Dekodierung Arithmetischer Kodes |
US5473620A (en) * | 1993-09-21 | 1995-12-05 | Cirrus Logic, Inc. | Programmable redundancy/syndrome generator |
FR2721775B1 (fr) * | 1994-06-27 | 1996-09-06 | Sgs Thomson Microelectronics | Circuit de localisation d'erreurs d'un décodeur Reed-Solomon. |
US6256313B1 (en) | 1995-01-11 | 2001-07-03 | Sony Corporation | Triplet architecture in a multi-port bridge for a local area network |
US5940597A (en) * | 1995-01-11 | 1999-08-17 | Sony Corporation | Method and apparatus for periodically updating entries in a content addressable memory |
US5884040A (en) * | 1995-01-11 | 1999-03-16 | Sony Corporation | Per-packet jamming in a multi-port bridge for a local area network |
US5857075A (en) * | 1995-01-11 | 1999-01-05 | Sony Corporation | Method and integrated circuit for high-bandwidth network server interfacing to a local area network |
US5615220A (en) * | 1995-01-31 | 1997-03-25 | Philips Electronics North America Corporation | Polynomial divider which can perform Euclid's Algorithm to produce an error locator polynomial from an error syndrome polynomial, and apparatus including the polynomial divider |
FR2743908B1 (fr) * | 1996-01-18 | 1998-02-27 | Sgs Thomson Microelectronics | Procede de production d'un parametre de correction d'erreur associe a la mise en oeuvre d'operation modulaire selon la methode de montgomery |
US5905740A (en) * | 1997-04-08 | 1999-05-18 | Seagate Technology, Inc. | Apparatus and method for error correction |
US6301256B1 (en) | 1997-09-17 | 2001-10-09 | Sony Corporation | Selection technique for preventing a source port from becoming a destination port in a multi-port bridge for a local area network |
US6363067B1 (en) | 1997-09-17 | 2002-03-26 | Sony Corporation | Staged partitioned communication bus for a multi-port bridge for a local area network |
US6308218B1 (en) | 1997-09-17 | 2001-10-23 | Sony Corporation | Address look-up mechanism in a multi-port bridge for a local area network |
US6617879B1 (en) | 1997-09-17 | 2003-09-09 | Sony Corporation | Transparently partitioned communication bus for multi-port bridge for a local area network |
US6744728B1 (en) | 1997-09-17 | 2004-06-01 | Sony Corporation & Sony Electronics, Inc. | Data pipeline timing optimization technique in a multi-port bridge for a local area network |
US6157951A (en) * | 1997-09-17 | 2000-12-05 | Sony Corporation | Dual priority chains for data-communication ports in a multi-port bridge for a local area network |
US6446173B1 (en) | 1997-09-17 | 2002-09-03 | Sony Corporation | Memory controller in a multi-port bridge for a local area network |
US5951677A (en) * | 1998-05-29 | 1999-09-14 | Texas Instruments Incorporated | Efficient hardware implementation of euclidean array processing in reed-solomon decoding |
US6615387B1 (en) | 1998-09-22 | 2003-09-02 | Seagate Technology Llc | Method and apparatus for error detection |
US6263471B1 (en) | 1999-03-05 | 2001-07-17 | Industrial Technology Research Institute | Method and apparatus for decoding an error correction code |
FR2897964B1 (fr) * | 2006-02-28 | 2017-01-13 | Atmel Corp | Procede de calcul numerique incluant la division euclidienne |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4574361A (en) * | 1982-06-15 | 1986-03-04 | Tokyo Shibaura Denki Kabushiki Kaisha | Apparatus for dividing the elements of a Galois field |
US4975867A (en) * | 1987-06-26 | 1990-12-04 | Digital Equipment Corporation | Apparatus for dividing elements of a Galois Field GF (2QM) |
US4989171A (en) * | 1988-10-18 | 1991-01-29 | U.S. Philips Corporation | Data processing method and apparatus for calculating a multiplicatively inverted element of a finite field |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4994995A (en) * | 1990-03-14 | 1991-02-19 | International Business Machines Corporation | Bit-serial division method and apparatus |
JP3232602B2 (ja) * | 1991-09-06 | 2001-11-26 | ソニー株式会社 | ユークリッドの互除回路 |
-
1992
- 1992-12-10 US US07/989,035 patent/US5442578A/en not_active Expired - Lifetime
- 1992-12-11 DE DE4241903A patent/DE4241903C2/de not_active Expired - Lifetime
- 1992-12-11 GB GB9225931A patent/GB2262371B/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4574361A (en) * | 1982-06-15 | 1986-03-04 | Tokyo Shibaura Denki Kabushiki Kaisha | Apparatus for dividing the elements of a Galois field |
US4975867A (en) * | 1987-06-26 | 1990-12-04 | Digital Equipment Corporation | Apparatus for dividing elements of a Galois Field GF (2QM) |
US4989171A (en) * | 1988-10-18 | 1991-01-29 | U.S. Philips Corporation | Data processing method and apparatus for calculating a multiplicatively inverted element of a finite field |
Non-Patent Citations (1)
Title |
---|
US-Z: "A VSLI Design of a Pipeline Read-Solomon Decoder" IEEE Trans. on Computer Vol. C-34, Mai 1985 * |
Also Published As
Publication number | Publication date |
---|---|
US5442578A (en) | 1995-08-15 |
GB2262371A (en) | 1993-06-16 |
GB2262371B (en) | 1995-07-12 |
GB9225931D0 (en) | 1993-02-03 |
DE4241903A1 (de) | 1993-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4241903C2 (de) | Euklidische wechselseitige Divisionsschaltung | |
DE69424877T2 (de) | Reed-solomon-dekoder | |
DE69834542T2 (de) | Hardwareoptimierter reed-solomon-decoder zur decodierung grosser datenblöcke | |
DE2916710C2 (de) | ||
DE69919199T2 (de) | Vorwärtsfehlerkorrektur | |
DE4229666C2 (de) | Wechselseitig arbeitende Divisionsschaltung | |
DE3784459T2 (de) | Arithmetische und logische einheit fuer elemente von galois-feldern. | |
DE69516882T2 (de) | Vielseitiges fehlerkorrektursystem | |
DE69032966T2 (de) | Verfahren und Gerät zur Ausführung von Divisionen mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE3650335T2 (de) | Rechenverfahren und -gerät für endlichfeldmultiplikation. | |
DE69414631T2 (de) | Schaltung zur Durchführung des Euclidschen Algorithmus bei der Dekodierung Arithmetischer Kodes | |
DE3852999T2 (de) | Galois-feld-recheneinheit. | |
DE69728945T2 (de) | Reed-Solomon Dekoder | |
DE19758079A1 (de) | Verfahren und Vorrichtung zur Galoisfeld-Multiplikation | |
DE69907566T2 (de) | Reed Solomon Kodierungsgerät und Reed Solomon Kodierungsverfahren | |
DE2942825A1 (de) | Verfahren und vorrichtung zur verarbeitung sequentiell uebertragender digitaler informationsworte | |
DE102011014680A1 (de) | Fehlerkorrekturmechanismen für Flash-Speicher | |
DE2803425A1 (de) | Digitaleinrichtung zur ermittlung des wertes von komplexen arithmetischen ausdruecken | |
EP0545498B1 (de) | Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen | |
DE69221840T2 (de) | Abtastratenwandlungsschaltung für Bilddaten | |
DE69732076T2 (de) | Reed-Solomon Dekodierer mit universeller Prozessoreinheit und speziellen Schaltungen | |
DE2658248A1 (de) | Mit hoher geschwindigkeit arbeitendes multiplikationssystem sowie verfahren zur durchfuehrung einer multiplikationsoperation | |
DE10105626B4 (de) | Verfahren und System zur Berechnung von zyklischem Blockprüfungscode und Verfahren zum Erkennen eines Fehlers | |
WO2004059463A1 (de) | Vorrichtung und verfahren zum berechnen einer multiplikation mit einer verschiebung des multiplikanden | |
DE3507584C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
R071 | Expiry of right | ||
R071 | Expiry of right |