DE4241903C2 - Euklidische wechselseitige Divisionsschaltung - Google Patents

Euklidische wechselseitige Divisionsschaltung

Info

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
Application number
DE4241903A
Other languages
English (en)
Other versions
DE4241903A1 (de
Inventor
Masayuki Hattori
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP35075391A external-priority patent/JP3252420B2/ja
Priority claimed from JP35075991A external-priority patent/JP3252421B2/ja
Application filed by Sony Corp filed Critical Sony Corp
Publication of DE4241903A1 publication Critical patent/DE4241903A1/de
Application granted granted Critical
Publication of DE4241903C2 publication Critical patent/DE4241903C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/726Inversion; Reciprocal calculation; Division of elements of a finite field
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes

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)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (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.
Fehlerkorrigierende Prozedur
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.
Schritt 1
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:
Schritt 2
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.
Schritt 3
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.
Schritt 4
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:
Schritt 5
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.
Ableiten eines Fehleranzeige-Polynoms unter Verwendung des Euklidischen, wechselseitig arbeitenden Divisionsver­ fahrens
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:
Verfahren zur Ableitung eines Fehleranzeigepolynoms
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.
Revidiertes, Euklidisches, wechselseitiges Divisionsverfah­ ren (2) Ausgangsbedingung
R0
(X) = S(X), Q0
(X) = X2t
,
λ0(X) = 1, µ0(X) = 0,
dR0 = 2t - 1, dQ0 = 2t (10).
Wiederholung
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-1i-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-1i-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).
Stopbedingung
Der Prozeß wird stillgesetzt, wenn er 2t mal wiederholt ist.
i = 2t (15).
Ergebnis
σ(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)".
Hardware-Implementierung des konventionellen, Euklidischen, wechselseitigen Divisionsalgorithmus
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:
Initialisierung
R0
(X) = S(X), Q0
(X) = X4
,
dR0 = 3, dR0 = 4,
λ0(X) = 1, µ0(X) = 0 (19).
Schritt 1
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 + α78X3 + α10X2 + α5X + α12)X = α2X3 + α12X2 + α4X,
λ1(X) = µ0(X) +(1/α80(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).
Schritt 2
dR1
- dQ1
= 3 - 3 = 0 ≧ 0 → Normalbetrieb (22).
In diesem Fall gilt daher:
R2(X) = R1(X) + (α28)Q1(X) = α2X3 + α12X2 + α4X + α98X3 + α10X2 + α5X + α12) = α6X2 + α9X + α6,
λ2(X) = λ1(X) + (α281(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).
Schritt 3
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) + (α86)R2(X)X = α8X3 + α10X2 + α5X + α12 + α26X2 + α9X + α6)X = α14X2 + α4X + α12,
λ3(X) = µ2(X) + (α862(X)X = 1 + α27X + α9)X = α9X2 + α11X + 1,

Q3(X) = R2(X) = α6X2 + α9X + α6,
µ3(X) = λ2(X) = α7X + α9,
dR3 = dQ2 - 1 = 3 - 1 = 2,
dQ3 = dR2 = 2 (25).
Schritt 4
dR3
- dQ3
= 2 - 2 = 0 ≧ 0 → Normalbetrieb (26).
In diesem Falle gilt:
R4(X) = R3(X) + (α146)Q3(X) = α14X2 + α4X + α86X2 + α9X + α6) = α10X + α5,
λ4(X) = λ3(X) + (α1463(X) = α9X2 + α11X + 1 + α87X + α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:
α710, α75, α712 (29).
In Bezug auf λ0(X) wird die Berechnung entsprechend dem Ausdruck:
λ1(X) = µ0(X) + (1/α80(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:
α910, α95, α912 (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:
α29, α26 (34)
ausgeführt, um R3(X) zu berechnen. In der Recheneinheit für λ3(X) werden die folgenden 2 Berechnungen aus­ geführt:
α27, α29 (35).
Damit werden auch beim Schritt 3 insgesamt 4 Berechnungen durchgeführt.
Beim letzten Schritt 3 werden 2 Multiplikationen, wie sie gegeben sind durch:
α89, α86 (36)
ausgeführt, um R4(X) zu berechnen. In der Recheneinheit für λ4(X) werden die folgenden 2 Berechnungen durch­ geführt:
α87, α89 (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:
i + dQi = 2t,
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:
Schritt 1
Tabelle 1-1
Kreuzungsbetrieb dR = 3, dQ = 4
Schritt 2
Tabelle 1-2
Normalbetrieb dR = 3, dQ = 3
Schritt 3
Tabelle 1-3
Kreuzungsbetrieb dR = 2, dQ = 3
Schritt 4
Tabelle 1-4
Normalbetrieb dR = 2, dQ = 2
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.
Tabelle 2-1
Berechnungstabelle im Kreuzungsbetrieb
Tabelle 2-2
Berechnungstabelle im Normalbetrieb
Tabelle 2-3
Berechnungstabelle im Verschiebebetrieb
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:
Tabelle 3-1
Rechentabelle im Kreuzungsbetrieb
Tabelle 3-2
Rechentabelle Normalbetrieb und im Schiebebetrieb
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.
Tabelle 4
Steuerung der Datenwegschalter
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 α28 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.
Schritt 1
Kreuzungsbetrieb dR = 3, dQ = 4
Schritt 2
Normalbetrieb dR = 3, dQ = 3
Schritt 3
Kreuzungsbetrieb dR = 2, dQ = 3
Schritt 4
Normalbetrieb dR = 2, dQ = 2
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.
Schritt 1
Tabelle 5-1
Kreuzungsbetrieb dR = 3, dQ = 4
Schritt 2
Tabelle 5-2
Normalbetrieb dR = 3, dQ = 3
Schritt 3
Tabelle 5-3
Kreuzungsbetrieb dR = 2, dQ = 3
Schritt 4
Tabelle 5-4
Normalbetrieb dR = 2, dQ = 2
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.
Grundprinzipien
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.
Initialisierung
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.
Arbeitsweise
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.
Tabelle 6-1
Berechnungstabelle im Kreuzungsbetrieb
Tabelle 6-2
Berechnungstabelle im Normalbetrieb
Tabelle 6-3
Berechnungstabelle im Verschiebebetrieb
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 α28 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.
Tabelle 7
Multiplexgrad und Anzahl an Recheneinheiten
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.
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.
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.
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.
DE4241903A 1991-12-12 1992-12-11 Euklidische wechselseitige Divisionsschaltung Expired - Lifetime DE4241903C2 (de)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2694792B2 (ja) * 1993-01-27 1997-12-24 日本電気株式会社 誤り位置多項式演算回路
JP2605966B2 (ja) * 1993-02-12 1997-04-30 日本電気株式会社 誤り訂正回路
EP0620654B1 (de) * 1993-03-31 1998-11-18 Kabushiki Kaisha Toshiba 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.
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
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
US6256313B1 (en) 1995-01-11 2001-07-03 Sony Corporation Triplet architecture in a multi-port bridge for 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
US6617879B1 (en) 1997-09-17 2003-09-09 Sony Corporation Transparently partitioned communication bus for 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
US6738384B1 (en) 1997-09-17 2004-05-18 Sony Corporation Technique for optimizing cut-through for broadcast and multi-cast packets in a multi-port bridge for a local area network
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
US6308218B1 (en) 1997-09-17 2001-10-23 Sony Corporation Address look-up mechanism 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
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 ソニー株式会社 ユークリッドの互除回路

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
GB2262371A (en) 1993-06-16
US5442578A (en) 1995-08-15
GB2262371B (en) 1995-07-12
DE4241903A1 (de) 1993-09-23
GB9225931D0 (en) 1993-02-03

Similar Documents

Publication Publication Date Title
DE4241903C2 (de) Euklidische wechselseitige Divisionsschaltung
DE69834542T2 (de) Hardwareoptimierter reed-solomon-decoder zur decodierung grosser datenblöcke
DE69919199T2 (de) Vorwärtsfehlerkorrektur
DE4229666C2 (de) Wechselseitig arbeitende Divisionsschaltung
DE3784459T2 (de) Arithmetische und logische einheit fuer elemente von galois-feldern.
DE3650335T2 (de) Rechenverfahren und -gerät für endlichfeldmultiplikation.
DE3852999T2 (de) Galois-feld-recheneinheit.
DE69728945T2 (de) Reed-Solomon Dekoder
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
EP0123921B1 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
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
EP0545498B1 (de) Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen
DE69732076T2 (de) Reed-Solomon Dekodierer mit universeller Prozessoreinheit und speziellen Schaltungen
DE2658248A1 (de) Mit hoher geschwindigkeit arbeitendes multiplikationssystem sowie verfahren zur durchfuehrung einer multiplikationsoperation
EP1543408B1 (de) Vorrichtung und verfahren zum berechnen einer multiplikation mit einer verschiebung des multiplikanden
DE10105626B4 (de) Verfahren und System zur Berechnung von zyklischem Blockprüfungscode und Verfahren zum Erkennen eines Fehlers
DE3507584C2 (de)
DE4105860C2 (de) Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten
DE102007056104A1 (de) Verfahren und Vorrichtung zur Multiplikation von Binäroperanden
EP1576463B1 (de) Modulare multiplikation mit paralleler berechnung der vorausschau-parameter
DE3447634C2 (de)
EP1499954A2 (de) Berechnung eines ergebnisses einer modularen multiplikation
DE3702697C2 (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