DE3727586A1 - Datenverarbeitungsanordnung bestehend aus vier im wesentlichen gleich aufgebauten moduln - Google Patents
Datenverarbeitungsanordnung bestehend aus vier im wesentlichen gleich aufgebauten modulnInfo
- Publication number
- DE3727586A1 DE3727586A1 DE19873727586 DE3727586A DE3727586A1 DE 3727586 A1 DE3727586 A1 DE 3727586A1 DE 19873727586 DE19873727586 DE 19873727586 DE 3727586 A DE3727586 A DE 3727586A DE 3727586 A1 DE3727586 A1 DE 3727586A1
- Authority
- DE
- Germany
- Prior art keywords
- code
- bytes
- data processing
- fed
- modules
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Description
Die Erfindung betrifft eine Datenverarbeitungsanordnung,
bestehend aus vier Verarbeitungsmoduln mit im
wesentlichen gleichem Aufbau, mit Schutz sowohl gegen
Einzelbit-Koinzidenzfehler in einer Mehrzahl von Datenverarbeitungsmoduln
als auch gegen einen beliebigen Datenfehler
in einem einzigen Datenverarbeitungsmodul. Eine
Anordnung dieser Art ist aus der US-PS 45 12 020 bekannt.
Die bekannte Anordnung arbeitet auf Basis von Vierbitsymbolen,
wobei ein darin enthaltener Optimalcode in
einem sog. Normalbetrieb die Korrektur von zwei beliebigen
Einzelbitfehlern bei einem Mindest-Hamming-
Abstand von fünf erlaubt. In einer Löschbetriebsart
wird einer der Datenverarbeitungsmoduln vernachlässigt,
wobei der Code über die restlichen drei Vierbitsymbole
einen Hammingabstand von drei hat und die Korrektur eines
zusätzlichen Bitfehlers erlaubt. Wenn beliebige zwei
der Datenverarbeitungsmoduln gleichzeitig bei Bekanntheit
ihrer Identität versagen würden, könnten die beiden
restlichen Datenverarbeitungsmoduln bei Ausbleiben
weiterer Fehler trotzdem arbeiten und die richtigen
Ergebnisse erreichen. Die vorgenannte Fehlerschutzfähigkeit
lässt sich im Mindestabstandsprofil dieses
Codes bei einer Redundanz von 100% als (5, 3, 1) ausdrücken.
Die Begriffsbestimmung des Mindestabstandsprofils
wird nachstehend näher erläutert.
Die Datenverarbeitungstechnologie hat sich zu
Prozessoren mit einer vergrösserten Bitbreite entwickelt.
Der Erfindung liegt die Aufgabe zugrunde, die vorgenannte
Fehlerschutzfähigkeit bei gleichem Redundanzbetrag durch
die Verwendung von 8-Bitsymbolen zum optimalen Verwirklichen
eines Mindestabstandsprofils von (7, 4, 1) zu
vergrössern. Das bedeutet, dass in der Normalbetriebsart
der Abstand 7 beträgt und die Korrektur von drei beliebigen
Einzelbitfehlern erlaubt.
Nach dem Stand der Technik kann dieser Schutzbereich
auch zum Korrigieren von bis zu zwei beliebigen
Einzelbitfehlern und zum Detektieren von bis zu vier
beliebigen Einzelbitfehlern benutzt werden. Andere
Kompromisse zwischen Korrektur und Detektion sind bekannt.
In der Löschbetriebsart erlaubt der Mindest-Hammingabstand
von vier die Einzelbitkorrektur, Zwei-Bitfehlerdetektion
oder andererseits eine Drei-Bitfehlerdetektion.
Vernachlässigung einer Kombination von zwei Datenverarbeitungsmoduln
bei Ausbleiben weiterer Fehler ermöglicht
noch den zwei restlichen Datenverarbeitungsmoduln, richtige
Ergebnisse zu erreichen.
Zur Lösung der Aufgabe ist eine Datenverarbeitungsanordnung
erfindungsgemäss dadurch gekennzeichnet,
dass sie aus vier Datenverarbeitungsmoduln besteht, die
entsprechende Datenverarbeitungsmittel mit einer Datenwegbreite
von wenigstens 2 n Bytes, jeweilige Codermoduln
die zum byteweisen Codieren eines Verarbeitungsergebnisses
von 2 n Bytes in ein Codierungsergebnis von n
Bytes durch die zugeordneten Datenverarbeitungsmittel
gespeist werden, jeweilige Speichermoduln, die zum
Speichern des Codierungsergebnisses durch den zugeordneten
Codermodul gespeist werden, ein Verbindungsnetz, das
durch die betreffenden Datenverarbeitungsmoduln zum
Zuführen der Codierungsergebnisse nach allen Datenverarbeitungsmoduln
gespeist wird, und jeweilige Eingangsdecoder
enthalten, die durch das Verbindungsnetzwerk für
den Empfang der Codierungsergebnisse in Gruppen von vier
Bytes und zum Rekonstruieren eines Zwei-Byte-Datenworts
daraus gespeist werden, das das Verarbeitungsergebnis
zum Weiterleiten an die zugeordneten Datenverarbeitungsmittel
darstellt, wobei die Datenverarbeitungsanordnung
weiter Betriebsartregistermittel zur Steuerung der
Eingangsdecoder in jeweils einer ersten, zweiten und
dritten Betriebsart, zum Aufnehmen und Einordnen aller
Bytes einer genannten Gruppe in der ersten Betriebsart,
zum Aufnehmen und Einordnen von drei Bytes einer genannten
Gruppe, aber zum Ablehnen eines zugeordneten vierten
Bytes der betreffenden Gruppe in jeweils einer von vier
zweiten Betriebsarten, und zum Aufnehmen und Einordnen
von zwei Bytes einer genannten Gruppe, jedoch zum Ablehnen
einer zugeordneten Kombination von zwei restlichen
Bytes der betreffenden Gruppe in jeweils einer von sechs
dritten Betriebsarten enthält, und dass die Codermoduln
jedes Byte eines Datenworts mit einer regelmässigen Matrix
multiplizieren und die Multiplikationsbytes zum Erzeugen
eines Codebytes addieren, wobei die vier auf diese Weise
von den betreffenden Codermoduln erzeugten Codebytes
ein Codewort eines mit einem Mindest-Hammingabstand
von sieben über die Bits bilden, wobei die drei in
jeder der zweiten Betriebsarten aufgenommenen Codebytes
ein Teilcodewort mit einem Mindest-Hammingabstand von
vier über die Bits darstellen, wobei die zwei in jeder
der dritten Betriebsarten aufgenommenen Bytes eine Darstellung
aller Bits des zugeordneten Verarbeitungsergebnisses
der Verarbeitungsanordnung bilden.
Ein bevorzugtes Ausführungsbeispiel wird nachstehend
an Hand der Zeichnung näher erläutert. Es zeigen
Fig. 1 eine Datenverarbeitungsanordnung nach
der Erfindung,
Fig. 2 die Paritätsprüfmatrizen von neun Codes
in bezug auf die Basen B 43 und B 95 mit einem Mindestabstandsprofil
von (7, 4, 1),
Fig. 3a, 3b, 3c die Binärdarstellung der Elemente
eines speziellen Galois-Feldes Gf (28),
Fig. 3d eine sog. redundante Paritätsprüfmatrix,
Fig. 4a einen Satz von Decodierungsbegriffsbestimmungen,
Fig. 4b einen Satz von Nachrichtenschätzungen,
Fig. 5a, 5b ein Verzeichnis aller korrigierbaren
Fehlerklassen, ihre Detektion und ihre Nachrichtenschätzungswahl,
Fig. 6 die von einem Decoder zu implementierenden
Regeln,
Fig. 7 einen allgemeinen Decodierungsentwurf.
In Fig. 1 ist eine Datenverarbeitungsanordnung
nach der Erfindung dargestellt. Die Daten bestehen
aus Wörtern, wobei jedes Wort sechzehn Bits enthält und
zwei Symbole eines Galois-Feldes darstellt, das später
näher erläutert wird. die Datenwörter erscheinen auf
den Leitungen 62, 64, 66 und 68. Sie werden in den
betreffenden Prozessorelementen 12, 14, 16, 18 verarbeitet.
Darauf erzeugen die Prozessorelemente Datenergebniswörter
auf den Leitungen 90, 92, 94, 96 oder Adresswörter
auf den Leitungen 70, 72, 74 und 76. Eine bekannte Speicherverwaltungseinheit
(nicht dargestellt) kann für jeden der
Speichermoduln vorgesehen sein. Die örtlichen Speicher
28, 30, 32 und 34 werden über die Adressdecoder 27, 29,
31 und 33 adressiert. Aus jedem empfangenen 16-Bits-Datenwort
wird ein 8-Bit-Codesymbol in jedem der Codegeneratoren
20, 22, 24 oder 26 gebildet, so dass die aus
einem Datenwort gebildeten Codesymbole gleichzeitig ein
Codewort bilden. Diese Codesymbole gelangen zum Einschreiben
an die Speicher 28, 30, 32 und 34. Die Codesymbole
werden nach dem Auslesen in den Leseverstärkern
36, 38, 40 und 42 regeneriert. Die Regeneration lässt
sich auf andere Weise ohne Zwischenspeicherung in den
Speichern verwirklichen. Die Codesymbole können alle an
alle Register 46, 48, 50 und 52 gelegt werden. Diese
Register werden mit den Rekonstruktionsanordnungen oder
Decodern 54, 58 und 60 zur Rekonstruktion der
Datenwörter aus den Codewörtern zum Eingeben in die
Leitungen 62, 64, 66 und 68 verbunden. Die Kombination
von Elementen 46, 54, 12, 20, 28 und 36 wird in eines
einzigen getrennten Fehlerisolationszonu enthalten und dies
gilt in entsprechender Weise für weitere Zonen. Es sei
angenommen, dass die Fehler in zwei verschiedenen Zonen
unabhängig voneinander sind; in vielen Fällen wird diese
Anforderung für viele Fehlerarten erfüllt, wenn jede
Fehlerisolationszone beispielsweise eine getrennte
Druckplatine mit Bauteilen oder auf andere Weise eine
getrennte integrierte Schaltung umfasst. Die in der
Figur dargestellte Schaltung bildet auf diese Weise
vier jeweilige Fehlerisolationszonen. Die Synchronisation
der Operationen in den vier Fehlerisolationszonen wurde der
Einfachheit halber ausgelassen. Die Prozessoren arbeiten
mit entsprechenden Programmen. Der Aufbau der Untersysteme
in den betreffenden Fehlerisolationszonen ist mit Ausnahme
der Codegeneratoren (20, 22, 24, 26) gleich, die je
einen abweichenden Algorithmus zur Bildung der vier betreffenden
Codesymbole aus dem 16-Bit-Datenwort implementieren.
Weiter kann die Steuerung der Datenrekonstruktionsanordnungen
54, 56, 58 und 60 in Abhängigkeit vom
Steuerbetrieb des Rechnersystems abweichen. Es wurde
gefunden, dass die Normalbetriebsart, die die Korrektur
von bis drei an beliebigen Stellen erscheinenden Bit-fehlern
oder eines Einsymbolfehlers erlaubt, sich sehr wohl
für die Korrektur von im Speicher auftretenden Fehlern
eignet. Letztgenannte Fehler sind normalerweise gegenseitig
unabhängig und ausserdem oft sogenannte "weiche
Fehler". Symbolfehler, die ein vollständiges Symbol
unzuverlässig machen, werden normalerweise durch einen
fehlerhaften Prozessor verursacht. Diese können in
einer Löschbetriebsart behandelt werden, in der alle
Daten- und/oder Steuersignale aus einer wählbaren Fehlerisolationszone
oder einem Datenverarbeitungsmodul übersprungen
werden. Es wurde gefunden, dass derartige Symbolfehler
normalerweise dauerhaft sind. Jedoch brauchen sie
nicht sofort in diesem Rechnersystem ausgebessert zu
werden, weil die Decoder auf die Löschbetriebsart umschalten
können. Es zeigt sich vorteilhaft, auf die Löschbetriebsart
umzuschalten, sobald dies nötig ist. Weiter
enthält jede Fehlerisolationzone in Fig. 1 ein getrenntes
Fehlerregister (148, 150, 152, 154), das durch Ausgangssignale
aus dem betreffenden Decoder (54, 56, 58, 60) gesteuert
wird und dessen Ausgangssignale an die zentrale
Steueranordnung 44 gelegt werden. Zum Schluss werden
Rückstelleitungen für die Fehlerregister aus der zentralen
Steuereinheit 44 dargestellt. Die Mehrzahl dieser
Steuerleitungen ist nicht dargestellt. Weiter enthält
jede Fehlerisolationszone ein betreffendes 4-Bit-Betriebsartregister
140, 142, 144, 146. Die Betriebsartregister
werden durch Ausgangssignale aus den zugeordneten Decodern
(54, 56, 58, 60) gesteuert. Der Inhalt jedes Betriebsartregisters
steuert die Operation des zugeordneten
Decoders. Die Einstellung des Fehlerregisters wird vom
Inhalt des zugeordneten Betriebsartregisters mitgesteuert.
Dieser Zusammenhang wird jedesmal durch einen zusätzlichen
Pfeil angegeben. Schliesslich empfängt jedes Betriebsartregister
Steuersignale aus der zentralen Steueranordnung
44. In einer anderen Verwirklichung wird auch die zentrale
Steuerung auf die vier Datenverarbeitungsmoduln
verteilt. Das Kommunikationssystem zum Kommunizieren von
Steuernachrichten zwischen diesen verteilten Steuermoduln
(nicht dargestellt) kann entsprechend der früheren
niederländischen Patenanmeldung 84 02 472 der Anmelderin
durchgeführt werden. Der Kommunikationsplan erlaubt
beliebigen Fehlbetrieb eines Datenverarbeitungsmoduls.
In der Anordnung nach Fig. 1 wird im fehlerfreien
Zustand in allen Isolationszonen dasselbe Programm
ausgeführt. Dies gilt ebenfalls beim Normalbetrieb. Jedoch
wird beim Auftreten einer systematischen Störung
in einer gegebenen Fehlerisolationszone der daraus entstehende
Symbolfehler mit einem Bitgewicht von 8 in den
anderen Isolationszonen detektiert; diese Zonen schalten
auf den Löschbetrieb um, so dass die fehlerhafte Isolationszone
nicht länger berücksichtigt wird. In der
fehlerhaften Isolationszone selbst braucht die Signalisierung
nicht richtig zu sein; es kann sich sogar ergeben,
dass eine ganz abweichende Steuerung auftritt
(beispielsweise durch einen Fehler im Betriebsartregister).
Jedoch setzt das System als Ganzes den fehlerfreien
Betrieb durch die drei anderen Fehlerisolationszonen ununterbrochen
weiter.
In diesem Abschnitt wird der Aufbau von [4,2]-
Codes im Galois-Feld GF (28) mit einem Mindestabstandsprofil
(7, 4, 1) beschrieben.
Als Alphabet benutzen wir GF (28) = 0, 1, α,
α 2, . . . , α 254, worin α eine primitive Wurzel des primitiven
Polynoms x 8 + x 4 + x 3 + x 2 + 1 ist (für eine ausführliche
Behandlung von Galois-Feldern siehe F. J. MacWilliams and
D. J. A. Sloane "The Theory of Error-correcting Codes",
North Holland Publ. Cy., Amderdam 1977).
In bezug auf eine Basis ⟨α b(0), α b(1), . . .
α b(7)⟩ von GF (28) über GF (2) können die Elemente von
GF (28) als binäre Vektoren mit der Länge 8 dargestellt
werden. Denn γ ∈ GF (28), a 0, a 1, . . . , a 7) ist die binäre
Darstellung von γ, when
Ein [4,2]-Code über GF (28) hat eine systematische
Paritätsprüfmatrix mit filgender Form
Das Problem besteht darin, ein 8-Tupen (b(0),
b(1), . . . , b(7)) und ein 4-Tupel (p 11, p 12, p 21, p 22)
derart zu finden, dass der [4,2]-Code mit der Paritätsprüfmatrix
H ein "grosses" Mindestabstandsprofil in
bezug auf die Basis ⟨α b(0), a b(1), . . . , α b(7)⟩ hat.
Das Mindestabstandsprofil jedes [4,2]-Codes über GF (28)
kann ohne höhere Elemente als die des Profils (8, 4, 1)
nachgewiesen werden. Es existiert jedoch ein analytischer
Ausdruck für das tatsächlich erreichbare Mindestabstandsprofil.
Die Elemente des Mindestabstandsprofils bilden
eine abfallende Reihe.
Das Galois-Feld GF (28) hat eine sehr grosse
Anzahl (∼ 1012) von Basen, also ist es nicht sehr
praktisch alle auszuwerten. Weiter liefert jede abweichende
Basis eine erhebliche Anzahl verschiedener
Codes, wie aus dem nachstehend beschriebenen Ausführungsbeispiel
ableitbar ist. Andererseits ist trotz des
kleinen Bruchteils von Codes mit einem optimalen Abstandsprofil
an sich die Anzahl dieser Optimalcodes
gross. Daher wird folgende Suchstrategie vorgeschlagen.
Zunächst folgt eine Beschränkung auf die normalen Basen
von GF(8), von denen es nur 16 gibt:
B j := ⟨α j·2, i = 0, 1, 2, . . . , 7⟩
worin j = 5, 9, 11, 15, 21, 29, 39, 43, 47, 54, 55, 61, 63, 87, 91, 95.
An sich sind aus dem Stand der Technik diese normalen
Basen bekannt. In bezug auf jede dieser normalen Basen
wurden Vier-Tupel (p 11, p 12, p 21, p 22) gesucht, die "gute"
Codes geben. Diese normalen Basen, in der Kombination
mit den 2554 möglichen Vier-Tupeln, ergeben 2554 × 16 Kandidatcodes.
Diese grosse Anzahl von Codes ergeben je
ein eigenes Mindestabstandsprofil. Es ist möglich,
eine Suchoperation zum Finden von Vier-Tupeln mit guten
Codes anzunehmen. Diese Suchoperation wird nachstehend
näher erläutert. Das Ergebnis dieser Suchoperation war
alle Vier-Tupel, für die der entsprechende [4,2]-Code
ein Mondestabstandsprofil von (7, 4, 1) in bezug auf eine
gegebene normale Basis erzeugt.
In bezug auf die Basen B i ,
i = 5, 9, 15, 21, 29, 39, 53, 55, 61, 63, 87, 91 besteht darin kein
[4,2]-Code über GF (28) mit einem Mindestabstandsprofil
(7, 4, 1) oder (8, 4, 1).
In bezug auf die Basen B 11 und B 47 besteht
im wesentlichen nur ein [4,2]-Code mit einem Mindestabstandsprofil
(7, 4, 1), d. h. das ein Profil mit Paritätsprüfmatrix
worin β: = α 17 (also β ∈ GF (24) ist: β ist ein Element
eines Unterfeldes.
In bezug auf die Basen B 43 und B 95 bestehen
im wesentlichen 9 Codes mit einem Mindestabstandsprofil
(7, 4, 1), es sind diejenigen mit den Paritätsprüfmatrizen
nach Fig. 2.
Andere gleichwertige Codes können durch Permutierungsspalten
der zugeordneten Matrix H und/oder
durch Vormultiplikation dieser Matrix H mit einer regelmässigen
Matrize mit Abmessung 2 × 2 über GF (28) erhalten
werden.
In bezug auf die normalen Basen von GF (28) bestehen
keine [4,2]-Codes mit einem Mindestabstandsprofil
(8, 4, 1). Obiges ist eine beschränkte Vorführung der
Codesuchstrategie. Der Kürze halber sind keine anderen
Codes wiedergegeben. Es wird als sehr unwahrscheinlich
betrachtet, dass ein (8, 4, 1)-Code tatsächlich für eine
andere Basis bestehen wurde.
Nachstehend wird der Aufbau einer Decoderausführung
erläutert.
Es wird der [4,2]-Code C über das Galois-Feld
F:= GF (28) betrachtet mit Paritätsprüfmatrix.
Die Matrix
ist eine Generatormatrix dieses Codes mit einem Mindestabstandsprofil
(7, 4, 1) in bezug auf die Basis B 43 =
⟨α 43, α 86, α 172, a 89, α 178, α 101, α 202, α 149⟩. Hierin
sei M die 8-zu-8-Binärmatrix, deren i. Zeile die binäre
Darstellung β α 43×2 in bezug auf die Basis B 43 ist.
Die binäre Darstellung der Elemente von GF (28) = 0, 1,
α, α 2, . . . α 254, (worin eine Wurzel von
x 8 + x 4 + x 3 x 2 + 1 = 0 ist) die in bezug auf die Basis B 43 ist
in Fig. 3a, 3b, 3c, gegeben. Also sieht das binäre Bild
der Matrix G s wie folgt aus
und das binäre Bild von H s sieht wie folgt aus
Zum Decodieren wird die Redundanz der Paritätsprüfmatrix
von Fig. 3d benutzt.
Das Codewort c = c 1, c 2, c 3, c 4) des [4,2]-Codes
C über GF (28) besteht aus vier Symbolen c i , i = 1, 2, 3, 4
von je 8 Bits. Das Symdrom eines verstümmelten Codeworts
r = r 1, r 2, r 3, r 4 = c 1, c 2, c 3, c 4) + ( e 1, e 2, e 3, e 4) wird
durch folgendes bestimmt:
Für einen binären Vektor x , wird das Gewicht wt (x) von
x als die Anzahl von Komponenten in x gleich Eins definiert
(ist also abweichend von Null).
Jetzt wird eine Anzahl von Mengen bestimmt.
Die Menge (*000) wird bestimmt durch {( X , O, O, O : x ∈F,
x ≠ 0)}. Dies entspricht einem Fehlermuster, das nur
das erste Symbol des Codeworts verstümmeln würde. Auf
analoge Weise werden die Mengen (0*00), (00*0) und (000*)
bestimmt.
Die Mengen (ÿkm), i, j, k, m ∈ {0, 1, 2}
werden durch {( u , v, w, x) : u , v, w, x ∈ F, wt ( u ) = i, wt ( v ) =
j, wt ( w
= k, wt ( x ) = m} bestimmt. Diese Mengen bestimmen
Fehlermuster, die höchstens zwei Bits in einem Codesymbol
stören würden. Eine Löschung, d. h. ein bekannter Datenverarbeitungsmodul
hat bis zur Unkorrigierbarkeit versagt,
wird mit "E" bezeichnet. Die Mengen (Ejkm), j, k, m, ∈ {0, 1}
werden durch {( u , v, w, x : u , v, w, x ∈ F, wt ( v ) =j, wt ( w ) = k, wt ( x ) = m}
bestimmt.
Bei dieser Menge wird keine Beschränkung auf u
angesetzt, weil es als eine Löschung betrachtet und vollständig
vernachlässigt wird. Diese Mengen bestimmen
Fehlermuster mit höchstens einem Einbitfehler ausserhalb
des gelöschten Codesymbols. Auf analog Weise werden
(iEjK), (ÿEk) und (ÿkE) bestimmt. Die von allen vorgenannten
Vier-Tupeln bestimmten Mengen werden Fehlerklassen
genannt. Die Menge U korrigierbarer Fehlermuster
ist die Einheit der Fehlerklassen nach Fig. 5a und 5b
(erste Spalte). Darin ist ein Stern ein beliebiger Symbolfehler,
ein E ein Löschungssymbol und bezeichnen ganze
Zahlen die Anzahl von Bitfehlern im zugeordneten Symbol.
Für eine feste Fehlerklasse in der Menge U
korrigierbarer Fehlermuster haben die Syndrome ihrer
Elemente eine Eigenschaft gemeinsam. Beispielsweise haben
alle Fehlermuster e in der Fehlerklasse (*000) gemeinsam,
dass ihre Syndrome s = s 1, s 2, s 3, s 4) folgendes erfüllen
s 1 = 0, s 2 ≠ 0, s 3 ≠ 0, s 4 ≠0. Alle Fehlermuster e in der
Fehlerklasse (i0j0) haben gemeinsam, dass ihre Syndrome
s = ( s 1, s 2, s 3, s 4) folgendes erfüllen: wt ( s 1 M -6) = j und
wt ( s 3 M -6) = i. Wir werden derartige, Elementen in einer
Fehlerklasse gemeinsamen Eigenschaften im Decodiervorgang
ausnutzen. Dafür haben wir eine Menge boolescher Ausdrücke
aufgebaut, je einen für jede in der Menge U korrigierbarer
Fehlermuster erhaltene Fehlerklasse derart, dass
diese Booleschen Ausdrücke gegenseitig exklusiv sind,
und derart, dass jedes Fehlermuster in einer Fehlerklasse
von U den Booleschen Ausdruck entsprechend dieser Fehlerklasse
erfüllt. Diese Booleschen Ausdrücke werden als
Beispiel gegeben, zunächst weil sie sich auf den vorgegebenen
spezifischen Code (der einer aus vielen ist)
beziehtn, zweitens weil andere Mengen Boolescher Ausdrücke
für diesen besonderen Code gewählt werden können.
Für alle Fehlerklassen mit Elementen, von denen
wenigstens zwei Symbole richtig sind, lässt sich dies
auf einfache Weise verwirklichen. Wenn es ein in einer
derartigen Fehlerklasse vorausgesagtes Fehlermuster ist,
ist auch die Schätzung der Nachricht geradeaus, weil
wenigstens zwei Symbole (die richtigen) des gestörten
Codeworts des [4,2]-Codes die tnsprechende Nachricht
einheitlich bestimmt.
Für Fehlerklassen mit Elementen, von denen
drei Symbole das Gewicht Eins haben, müssen wir den Bitfehler
in einem der Symbole bestimmen. Hiernach verfügen wir
über zwei richtige Codewortsymbole. Daraus wird die
abgesandte Nachricht schätzungsweise bestimmt.
Zum Aufbauen der vorgenannten Booleschen
Variablen brauchen wir folgende Definitionen. Mit u j
geben wir den Binärvektor mit der Länge 8 mit einem Eins
an der j. Position und sonst Nullen an.
Fig. 4a zeigt eine Menge von Begriffsbestimmungen.
Folgende Betriebsarten des Decoders sind vorgesehen:
RM = 1 wenn und nur wenn der Decoder in der Normalbetriebsart arbeitet, d. h. alle Ausgänge der vier Datenverarbeitungsmoduln werden im Decodierungsvorgang berücksichtigt,
EM i = 1, wenn und nur wenn der Decoder in der Löschbetriebsart i arbeitet, d. h. der Modul i wird als im Fehlerbetrieb arbeitend betrachtet (erzeugt eine Löschung),
SM ÿ = 1, wenn und nur wenn der Decoder in der einfachen Betriebsart arbeitet, d. h. nur die Moduln i und j werden als in der richtigen Betriebsart arbeitend betrachtet.
RM = 1 wenn und nur wenn der Decoder in der Normalbetriebsart arbeitet, d. h. alle Ausgänge der vier Datenverarbeitungsmoduln werden im Decodierungsvorgang berücksichtigt,
EM i = 1, wenn und nur wenn der Decoder in der Löschbetriebsart i arbeitet, d. h. der Modul i wird als im Fehlerbetrieb arbeitend betrachtet (erzeugt eine Löschung),
SM ÿ = 1, wenn und nur wenn der Decoder in der einfachen Betriebsart arbeitet, d. h. nur die Moduln i und j werden als in der richtigen Betriebsart arbeitend betrachtet.
In Fig. 4b ist eine Menge von Schätzungen für
die Nachricht wiedergegeben.
In Fig. 5a und 5b ist ein Verzeichnis aller
korrigierbarer Fehlerklassen (EC), des zu verwendenden
entsprechenden Booleschen Ausdrucks (BE) und der zugeordneten
Nachrichtschätzung (ME) für alle Fehlerklassen korrigierbarer
Fehlermuster wiedergegeben. Wiederum bedeutet
ein Stern einen beliebigen Symbolfehler. Ein "E" bezeichnet
ein Löschsymbol, dessen Stelle bekannt ist. Ganze
Zahlen 0, 1, . . . bezeichnen die Anzahl von Bitfehlern im
zugeordneten Symbol (Null bezeichnet ein richtiges Symbol).
Ganze Zahlen 3, 4, . . . würden mit einem Stern dargestellt
werden. Drei oder mehr Bitfehler in einem (Nicht-Löschungs)-
Symbol in der Kombination mit Nicht-Null-Fehlermustern in
den anderen Symbolen können nicht mit 100% Wirksamkeit
korrigiert werden.
Beispielsweise erfüllt ein Fehlermuster e in
(1100) den Booleschen Ausdruck RM f 11 f 21 = 1, und die
Nachricht kann durch 34 geschätzt werden (es sei bemerkt,
dass die UND-Funktionspunkte nicht dargestellt sind).
Ein Fehlermuster e in (10E0) genügt den Booleschen Ausdruck
EM 3 h 31 = 1, und die Nachricht kann durch 24 geschätzt werden. Ein Fehlermuster e in (1101) erfüllt
den Booleschen Ausdruck RM t 4j = 1 für genau eine j in
{1, . . . 8}, und die Nachricht kann durch ein 4j
geschätzt werden.
Aus Fig. 5a und 5b ist ersichtlich, dass der
Decoder die in Fig. 6 dargestellten logischen Ausdrücke
implementieren soll. Hierin gibt der letzte Ausdruck die
Bedingung an, die für eine Detektionsmarkierung zu erfüllen
ist, die erzeugt wird, wenn das erzeugte Syndrom ein
Nicht-Null-Syndrom ist, dass nicht einem korrigierbaren
Fehlermuster entspricht.
In Fig. 7 ist ein allgemeiner Entwurf eines
Decoders dargestellt. Der Decoder enthält ein Betriebsartregister
202 mit den Werten RM, EM i und SM ÿ , wobei i, j =
1, 2, 3, 4, i ≠ j sind. Nach einem Decoderschritt wird
auch das Betriebsartregister aktualisiert. Eine der
möglichen Strategien könnte sein, von der Normalbetriebsart
auf Löschbetriebsart umzuschalten, wenn ein Einsymbolfehler
auftritt, der kein Einbitfehler ist. Andere Umschaltstrategien
würden von den Fehlerstatistiken des
ganzen Systems abhängig sein. Der Kürze halber wird darüber
keine nähere Beschreibung gegeben.
Im Decoder könnten auch andere Registerarten
implementiert werden, beispielsweise ein die Positionen
und Frequenzen von Bitfehlern speicherndes Register.
Insbesondere erscheinen in Fig. 7 an den
Eingängen 210 die vier möglicherweise gestörten Codesymbole
r 1, r 2, r 4, r 4. Im Block 200 ist eine Schaltung
für die Bestimmung der binären Megen f ÿ , g ÿ , h ÿ ,
t ÿ vorgesehen. Im Block 204 ist eine Schaltung vorgesehen,
um auf der Basis dieser 60 Werte die entscheidenden
Signale DSEL** und ISEL** zu erzeugen und auch
des Betriebsartregisters und anderer vorgenannter Register
zu aktualisieren. Zu diesem Zwek empfängt der Block 204
auch die Betriebsartsteuersignale aus dem Betriebsartregister
202. Im Block 208 werden auf der Bais der vier
Codesymbole r 1 . . . r 4 die sechs möglichen auf zwei richtigen
Symbolen basierenden Schätzungen sowie die 32 geschätzen
erzeugt, denn jedes Symbol hat eine Einbitkorrektur
an der Stelle j. Auf der Leitung 212 werden
diese 38 möglichen Schätzungen erzeugt, während die Wählsignale
auf den Leitungen 214 erscheinen. Im Block 206
ist ein Netz zum Weiterleiten der richtigen Schätzung
vorhanden, die auf der Leitung 218 erscheint (es sei
bemerkt dass diese Wahl nicht immer einheitlich sein
muss), während auch am Ausgang 216 eine Detektionsmarkierung
zum Signalisieren eines unkorrigierbaren, detektierten
Fehlers erzeugt wird (es könnte auch ein undetektierbarer
Fehler erscheinen). In obiger Beschreibung
wurde davon ausgegangen, dass ein Verarbeitungswort sechzehn
Bits enthielt (d. h. 2 Bytes) und dass ein Codewort
zweiundreissing Bits enthielt. Wenn der Datenweg im
(Mikro-)Prozessor noch breiter wäre, könnte einerseits
ein Übergang auf 16 Symbole entgegengesehen werden, der
eine noch weiter vergrösserte Fehlerschutzmöglichkeit
erlauben würde. Andererseits könnte das Gerät noch mit
Codewörtern von vier Symbolen arbeiten, wobei jedes Codewort
beispielsweise nicht auf nur eine Hälfte eines
Rechnerworts beziehen würde. Der Vorteil der letztgenannten
Methode würde im vereinfachten Verarbeiten von Acht-
Bit-Symbolen in bezug auf Sechzehn-Bit-Symbole liegen.
Nachstehend wird die Suche nach guten Codes
beschrieben. Gegeben sei eine Basis ⟨a b(0), α b(1), . . .
α b(7)⟩, der Suchalgorithmus bestimmt alle vier-Tupel
p 11, p 12, p 21, p 22
0 p 11 254
p 11 p 12 254
p 11 p 21 254
p 11 p 22 254
p 11 p 12 254
p 11 p 21 254
p 11 p 22 254
p 11 ≠ p 22 oder (p 11 = p 22 und p 12 p 21),
-so dass der [4,2]-Code mit Paritätsprüfmatrix
-so dass der [4,2]-Code mit Paritätsprüfmatrix
ein Mindestabstandsprofil von wenigstens (7, 4, 1) in
bezug auf die Basis ⟨α b(0), α b(1), . . . , α b(7)⟩ hat.
Dies kann durch Prüfung einer Anzahl von Bedingungen
an den Vier-Tupeln (p 11, p 12, p 21, p 22) erfolgen.
Dafür brauchen wir folgende Gleichungen:
V 1 := {i : wt (α i ) = 1} = {b (0), b(1), . . . , b(7)}
V 2 := { i : wt (α i ) = 2},
W 1 := {(v 1 - v 1′, mod 255 : v 1, v 1′, ∈ v 1},
W 2 := {(v 2 - v 2′) mod 255 : v 2, v 2′ ∈ V 2},
W 12 := {(v 1 - v 2) mod 255 : v 1 ∈V 1, v 2 ∈ V 2}
U {(v 2 - v 1) mod 255 : v 1 ∈ V 1, v 2 ∈ V 2}
V 2 := { i : wt (α i ) = 2},
W 1 := {(v 1 - v 1′, mod 255 : v 1, v 1′, ∈ v 1},
W 2 := {(v 2 - v 2′) mod 255 : v 2, v 2′ ∈ V 2},
W 12 := {(v 1 - v 2) mod 255 : v 1 ∈V 1, v 2 ∈ V 2}
U {(v 2 - v 1) mod 255 : v 1 ∈ V 1, v 2 ∈ V 2}
Für alle v ∈ V 2 :
X v := {(u - v) mod 255 : u ∈ V 2}
Bei einer Menge X ∈ { 0, 1, 2, . . . , 254} bezeichnet
X das Komplement von X in bezug auf {0, 1, 2, . . . , 254} : X =
{0, 1, 2, . . . , 254} X. Die Funktion Z (.) bezeichnet den
Zechschen Logarithmus, der durch folgende Gleichung definiert
wird
1 + a n = α Z(n)
für n {1,2, 3, . . . , 254}
Der [4,2]-Code mit Paritätsprüfmatrix H c hat ein Mindestabstandsprofil mdp in bezug auf die Basis ⟨α b(0),
α b(1), . . . , α b(7)⟩, die folgendes erfüllt
*mdp (3, 2, 1)
wenn und nur wenn
(A) : p 11 - p 12 ≠ p 21 - p 22;
*mdp (4, 3, 1)
wenn und nur wenn
(A)
und (B 1) :,6p 11, p 12, p 21, p 22 ∈ W 1;
und (B 2) :,6p 11 - p 12, p 1 - p 22, p 22 - p 12, p 22 - p 21 ∈ W 1;
und (B 3) :,6p 12 + Z (p 11 + p 22 - p 12 - p 21),
p 21 + Z (p 11 + p 22 - p 12 - p 21),
p 11 + Z (- p 11 - p 22 + p 12 + p 21),
p 22 + Z (- p 11 - p 22 + p 12 + p 21) ∈ W-1;
p 21 + Z (p 11 + p 22 - p 12 - p 21),
p 11 + Z (- p 11 - p 22 + p 12 + p 21),
p 22 + Z (- p 11 - p 22 + p 12 + p 21) ∈ W-1;
*mdp (5, 3, 1)
wenn und nur wenn
(A) und (B 1, B 2, B 3)
und (C) : für alle i, j ∈ V 1 × V 1:
,6i + p 11 + Z (j - i + p 12 - p 11) ∈ V-1 oder
i + p 21 + Z (j - i + p 22 - p 21) ∈ V 1;
i + p 21 + Z (j - i + p 22 - p 21) ∈ V 1;
* mdp (6, 4, 1)
wenn und nur wenn
(A) und (B 1, 2, 3) und (C)
und (D 1):,6p 11, p 12, p 21, p 22 ∈ W 12;
und (D 2):,6p 11 - p 12, p 11 - p 21, p 22 - p 12, p 22 - p 21 ∈ W 12
und (D 3):,6p 12 + Z (p 11 + p 22 - p 12 - p 21),
p 21 + Z (p 11 + p 22 - p 12-p 21),
p 11 + Z (- p 11 - p 22 + p 12 + p 21),
p 22 + Z (- p 11 - p 22 + p 12 + p 21 ∈ W-12;
p 21 + Z (p 11 + p 22 - p 12-p 21),
p 11 + Z (- p 11 - p 22 + p 12 + p 21),
p 22 + Z (- p 11 - p 22 + p 12 + p 21 ∈ W-12;
und (D 4): für alle i, j ∈ V 1 × V 1:
,6i + p 21 + Z (j - i + p 22 - p 21);
i + p 11 + Z (j - i + p 12 - p 11),
i - p 12 - Z (p 11 + p 22 - p 12 - p 21) + Z (j-- i + p 11 - p 21),
i - p 11 - Z (- p 11 - p 22 + p 12 + p 21) + Z- (j - i + p 12 - p 22) ∈ V 1
i + p 11 + Z (j - i + p 12 - p 11),
i - p 12 - Z (p 11 + p 22 - p 12 - p 21) + Z (j-- i + p 11 - p 21),
i - p 11 - Z (- p 11 - p 22 + p 12 + p 21) + Z- (j - i + p 12 - p 22) ∈ V 1
1
* mdp (7, 4, 1)
* mdp (7, 4, 1)
wenn und nur wenn
(A) und (B 1, 2, 3) und (C) und (D 1, 2, 3, 4)
und (E 1) für alle u ∈ V 2:
,6(p 11 ∈ X u oder p 21 ∈
X u )
und,6(p 12 ∈ X u oder p 22 ∈ X u )
und,6(p 12 + Z (p 11 + p 22 - p 12 - p 21) ∈ X- u oder
p 22 - p 21 X u ); und,6(p 22 + Z (- p 11 - p 22 + p 12 + p 21) ∈ -X u oder
p 12 - p 11 ∈ X u );
p 22 - p 21 X u ); und,6(p 22 + Z (- p 11 - p 22 + p 12 + p 21) ∈ -X u oder
p 12 - p 11 ∈ X u );
und (E 2) für alle (i, j) ∈ V 1 × V 1:
,6i + p 11 + Z (j - i + p 12 - p 11) ∈ V-2 oder
i + p 21 + Z (j - i + p 12 - p 21) ∈ V 2;
i + p 21 + Z (j - i + p 12 - p 21) ∈ V 2;
und (E 3) für alle (u, v) ∈ V 2 × V 2:
,6(u - v = p 12 - p 11)
oder,6(u - v = p 22 - p 21)
oder,6(u - v ≠ p 12 - p 11) und (u - v ≠ p 22 - p 21) - und
(u + p 11 + Z (v - u + p 12 - p 11) ∈ V-1 oder
u + p 21 + Z (v - u + p 22 - p 21) ∈ V -1);
(u + p 11 + Z (v - u + p 12 - p 11) ∈ V-1 oder
u + p 21 + Z (v - u + p 22 - p 21) ∈ V -1);
und (E 4) für alle ∈ V 1 und u ∈ V 2:
,6(i + p 11 + Z(u - i + p 12 - p 11 ∈ V-1 oder
i + p 21 + Z (u - i + p 22 - p 21 ∈ V -2)und,6(i + p 12 + Z (u - i + p 11 - p 12) ∈ V-1 oder
i + p 22 + Z(u - i + p 21 - p 22) ∈ V-2) und,6(i + p 21 + Z(u - i + p 22 - p 21) ∈ V-1 oder
i + p 11 + Z (u - i + p 12 - p 11) ∈ V-2) und,6(i + p 22 + Z(u - i + p 21 - p 22) ∈ V-1 oder
i + p 12 + Z (u - i + p 11 - p 12) ∈ V-2.
i + p 21 + Z (u - i + p 22 - p 21 ∈ V -2)und,6(i + p 12 + Z (u - i + p 11 - p 12) ∈ V-1 oder
i + p 22 + Z(u - i + p 21 - p 22) ∈ V-2) und,6(i + p 21 + Z(u - i + p 22 - p 21) ∈ V-1 oder
i + p 11 + Z (u - i + p 12 - p 11) ∈ V-2) und,6(i + p 22 + Z(u - i + p 21 - p 22) ∈ V-1 oder
i + p 12 + Z (u - i + p 11 - p 12) ∈ V-2.
Jetzt folgt eine genau Begriffsbestimmung des
Mindestabstandsprofils eines Codes und auch die Beschreibung
einiger seiner Eigenschaften.
Ausgegangen wird von einem linearen [n, m]-Code mit
einer Länge n und einer Abmessung m über das Feld
F := GF (2 k ) mit einem Mindest-(Symbol)-Abstand S. Die
Elemente von F sind Symbole. Jedes Symbol c kann durch
einen binären k-Vektor c dargestellt werden. Das (binäre)
Gewicht wt ( c ) eines Symbols c ∈ F in bezug auf die gewählte
Vektordarstellung wird als die Anzahl von Einsen
in der binären Vektordarstellung c von c definiert. Das
(binäre) Gewicht eines Vektors vom Symbolen wird als
die Summe der (binären) Gewichte seiner Komponenten
definiert.
Das Gewichtsprofil eines n -Vektors c = ( c 0, c 1,
. . . c n-1) von Symbolen von F mit der Bezeichnung eines
Wortes wird als der Vektor wp (c) := wp ( c 0), wp ( c 1), . . . ,
wp ( c S-1) definiert, worin die Komponente wp ( c j) definiert
wird durch
wp ( c j) := Minimum {Σ i ∈ A j wt ( c i ) :
A j ∈ {0,1 . . . , n - 1}, A j = n -- j, i = 0,1 . . . S - 1)
Also ist wp ( c j) das Minimum der Gewichte aller Vektoren
mit der Länge n - j aus c durch Löschen von j Komponenten
aus c . Beispielsweise c = (1001, 1101, 0010) hat das
Gewichtsprofil wp (c) = (6,3,1). Das Mindestabstandsprofil
d (C) des Linearcodes C wird durch d (C) := ((d (C 0),
d (C 1), , . . . , d (C S - 1) definiert, worin
d (C j) := Minimum {wp ( c j) : c ∈ C, c ≠ 0}, j = 0,1, . . . S - 1.
Wenn man n - j beliebige Komponenten eines
beliebigen Nichtnullcodeworts in C nimmt, beträgt die
Summe der Gewichte dieser n - j Komponenten wenigstens d (C j).
Es gibt auch ein Codewort in Code C mit n - j Komponenten,
deren Gewichte sich zu genau d (C j) addieren.
Ein Paar (s, t) wird eine Beschreibung eines
Worts x ∈ F n genannt, wenn es möglich ist, s Nichtnullkomponenten
aus x derart zu löschen, dass die Summe der
Gewichte der restlichen Komponenten gleich t ist. Die
Menge aller möglichen Beschreibungen von x wird die
Beschreibungsmenge von x genannt. Z. B. die Beschreibungsmenge
von (1001, 1101, 0010) ist {(0,6), (1,3), (1,4),
(1,5), (2,1), (2,2), (2,3), (3,0)} und die Beschreibungsmenge
von (0000, 1001, 1000) ist {(0,3), (1,1), (1,2), (2,0)}.
Eine endliche Menge A := {(a 1,b 1), (a 2, b 2), . . . ,
(a A , b A )} von Paaren natürlicher Zahlen wird eine
Liste von Paaren genannt, wenn alle ersten Komponenten
a 1, i = 1, . . . , A der Paare in A gegenseitig verschieden
sind. Wir sagen, dass ein Wort x in A enthalten ist,
wobei A ein Verzeichnis von Paaren ist, wenn wenigstens
eine dieser Beschreibungen (s, t) in wenigstens einem
Paar in A enthalten ist, d. h. wenn wenigstens ein Paar
(a i , b i ) von A folgender Formel entspricht:
a i s, b i t.
Seien T und U zwei Verzeichnisse von Paaren.
Es heisst dabei, dass der Code C gleichzeitig T-korrigierend
und U-detektierend ist, wenn er alle Fehler e
in T korrigiert und alle Fehler e detektiert, die in U
enthalten und nicht mit T verknüpft sind. Wenn U = 0
ist, wird C T-korrigierend genannt; wenn T = 0 ist,
wird C mit U-detektierend bezeichnet. Es ist ohne
weiteres klar, dass C gleichzeitig T-korrigierend und
U-detektierend ist, wenn und nur wenn
- 1. keiner seiner Mitmengen (cosets) mehr als ein von T betroffenes Wort enthält.
- 2. wenn eine Mitmenge ein von T betroffenes Wort enthält, enthält sie kein Wort, dass von U betroffen und von T nicht betroffen wird.
Dies ist gleichbedeutend mit der Aussage, dass kein Unterschied
zwischen zwei verschiedenen Wörtern ein Codewort
ist, von denen eines von T betroffen und das andere von
T oder U betroffen wird. Folgende Eigenschaft ist eine
direkte Folge dieser Bemerkungen.
Der Code C ist gleichzeitig T-korrigierend und
U-detektierend, wenn und nur wenn ein Paar (s, t) in T
und ein Paar (u, v) in der Kombination von T und U die
Komponente d (C s + u) von d (C) die Ungleichheit
d (C s + u) t + v + 1
erfüllt.
Wenn in einem Codewort e Komponenten, worin
e S - 1 ist, gelöscht werden, erhalten wir eine Menge
von Codewörtern eines [n - e,m]-Codes C′ über GF (2 k ) mit
dem Mindestabstandsprofil d (C′) = (d (C′ 0), . . . ,
d(C′ n - e - 1), worin d (C′ j) die Ungleichheit
d (C′ j) d(C j + e)
erfüllt.
Claims (4)
1. Datenverarbeitungsanordnung, bestehend aus
vier Datenverarbeitungsmoduln (100, 102, 104, 106), die
entsprechende Datenverarbeitungsmittel (12, 14, 16, 18) mit
einer Datenwegbreite von wenigstens 2 n Bytes, jeweilige
Codermoduln (20, 22, 24, 26), die zum byteweise
Codieren eines Verarbeitungsergebnisses von 2 n Bytes
in ein Coderergebnis von n Bytes durch die zugeordneten
Datenverarbeitungsmittel gespeist werden, jeweilige
Speichermoduln (28, 30, 32, 34), die zum Speichern
des Codierergebnisses durch den zugeordneten Codermodul
gespeist werden, ein Verbindungsnetz (82, 84, 86, 88), das
zum Zuführen von Codierungsergebnissen nach allen Datenverarbeitungsmoduln
durch die betreffenden Datenverarbeitungsmoduln
gespeist wird, und jeweilige Eingangsdecoder
(54, 56, 58, 60) enthalten, die durch das
Verbindungsnetz zum Empfangen der Codierungsergebnisse
in Gruppen von 4 Bytes gespeist werden und daraus ein
Zwei-Byte-Datenwort neubilden, das das Verarbeitungsergebnis
zum Zuführen an die zugeordneten Datenverarbeitungsmittel
darstellt, wobei die Datenverarbeitungsanordnung
weiter Betriebsartregistermittel zur Steuerung
der Eingangsdecoder in jeweils einer ersten, zweiten
bzw. dritten Betriebsart, zum Aufnehmen und Einordnen
aller Bytes einer Gruppe in der ersten Betriebsart, zum
Aufnehmen und Einordnen von drei Bytes einer Gruppe,
jedoch zum Ablehnen eines zugeordneten vierten Bytes der
betreffenden Gruppe in jeweils eines von vier zweiten
Betriebsarten, und zum Aufnehmen und Einordnen von zwei
Bytes einer Gruppe, jedoch zum Ablehnen einer zugeordneten
Kombination von zwei restlichen Bytes der betreffenden
Gruppe in jeweils einer von sechs dritten Betriebsarten
enthält, und dass die Codermoduln jedes
Bytes eines Datenworts mit einer regelmässigen Matrix
multiplizieren und die Multiplikationsbytes zum Erzeugen
eines Codebytes addieren, wobei die vier auf diese
Weise von den betreffenden Codermoduln erzeugten Codebytes
ein Codewort eines Codes mit einem Mindest-Hamming-Abstand
von sieben über die Bits bilden, wobei die drei in jeder
der zweiten Betriebsarten aufgenommenen Codebytes ein
Teilcodewort mit einem Mindest-Hamming-Abstand von vier
über die Bits bilden, wobei die zwei in jeder der dritten
Betriebsarten aufgenommenen Bytes eine Darstellung aller
Bits des zugeordneten Verarbeitungsergebnisses bilden.
2. Datenverarbeitungsanordnung nach Anspruch 1,
dadurch gekennzeichnet, dass die Codesymbole in einem
Galois-Feld mit einer normalen Basis bestimmt werden.
3. Datenverarbeitungsanordnung nach Anspruch 1
oder 2, dadurch gekennzeichnet, dass der Decoder folgende
Elemente enthält:
- - einen Eingang für den Empfang von Codebytes eines Codeworts,
- - einen ersten Decodermodul (200), der vom Eingang zur Bestimmung von Syndromsymbolen gespeist wird und mittels mehrerer Multiplikationen dieser Syndromsymbole durch Potenzen einer r2 Matrix kennzeichnende Boolesche Mengen (f ÿ , g ÿ , h ÿ , t ÿ ) erzeugt,
- - einen zweiten Decodermodul, der vom ersten Decodermodul (204) gespeist wird und in zwei Richtungen an ein Betriebsartregister (202) angeschlossen ist, um unter der Steuerung eines Betriebsartregisterinhalts und der charakterisierenden Booleschen Mengen ein Wählsignal (DSEL **, ISEL **) zu erzeugen,
- - einen dritten Decodermodul (208), der parallel zum ersten Decodermodul vom Eingang zum Emulieren von 32 Schätzungen durch Korrektur der gleichen Menge von Einzelbitfehlern gespeist wird,
- - einen Wählmodul, der vom Eingang und vom dritten Decodermodul für den Empfang aller reellen und emulierten Codesymbole eines Codeworts und ebenfalls vom zweiten Decodermodul gespeist wird, um unter der Steuerung eines einzigen "wahren" Wählsignals in einer Reihe ausschliesslich "falscher" Symbole wenigstens ein richtiges nicht emuliertes Codesymbol und ein weiteres richtiges Codesymbol auszuwählen, wobei das letzte emuliert sein kann oder nicht, und zum Ausgeben dieser beiden Codesymbole an einem Benutzerausgang (218).
4. Anordnung nach Anspruch 3, dadurch gekennzeichnet
dass das Wählmodul einen Fehlerausgang zum Ausgeben
einer Fehlerdetektionsmarkierung unter der Steuerung
ausschliesslich empfangener "falscher" Wählsignale
besitzt, während das Ausgeben eines Codesymbols abgeblockt
wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB8621469A GB2194850B (en) | 1986-09-05 | 1986-09-05 | Data processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3727586A1 true DE3727586A1 (de) | 1988-03-10 |
DE3727586C2 DE3727586C2 (de) | 1997-12-11 |
Family
ID=10603758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3727586A Expired - Lifetime DE3727586C2 (de) | 1986-09-05 | 1987-08-19 | Datenverarbeitungsanordnung bestehend aus vier im wesentlichen gleich aufgebauten Moduln |
Country Status (7)
Country | Link |
---|---|
US (1) | US4882731A (de) |
JP (1) | JP2612000B2 (de) |
CA (1) | CA1297590C (de) |
DE (1) | DE3727586C2 (de) |
FR (1) | FR2604542A1 (de) |
GB (1) | GB2194850B (de) |
SE (1) | SE466368B (de) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69033834T2 (de) * | 1989-07-13 | 2002-04-25 | Canon Kk | Für das Kopieren von Daten geeignete Kodierungs- und Dekodierungsvorrichtung |
JPH0458619A (ja) * | 1990-06-28 | 1992-02-25 | Canon Inc | 誤り訂正システム |
EP0481128B1 (de) * | 1990-10-16 | 1998-01-14 | Koninklijke Philips Electronics N.V. | Datenverarbeitungssystem basierend auf einem (N,K)-Symbolkode und mit Symbolfehler-Korrigierbarkeit und mehrfacher Fehlerreparierbarkeit |
US5339404A (en) * | 1991-05-28 | 1994-08-16 | International Business Machines Corporation | Asynchronous TMR processing system |
US5375127A (en) * | 1992-03-25 | 1994-12-20 | Ncr Corporation | Method and apparatus for generating Reed-Soloman error correcting code across multiple word boundaries |
US6367046B1 (en) * | 1992-09-23 | 2002-04-02 | International Business Machines Corporation | Multi-bit error correction system |
US5432801A (en) * | 1993-07-23 | 1995-07-11 | Commodore Electronics Limited | Method and apparatus for performing multiple simultaneous error detection on data having unknown format |
JP3412349B2 (ja) * | 1994-12-28 | 2003-06-03 | 株式会社日立製作所 | 制御装置 |
US5576197A (en) * | 1995-04-07 | 1996-11-19 | Molecular Bio-Products | Polymerase chain reaction container and methods of using the same |
US7257763B1 (en) | 2001-08-03 | 2007-08-14 | Netlogic Microsystems, Inc. | Content addressable memory with error signaling |
US7283380B1 (en) | 2001-08-03 | 2007-10-16 | Netlogic Microsystems, Inc. | Content addressable memory with selective error logging |
US7301961B1 (en) | 2001-12-27 | 2007-11-27 | Cypress Semiconductor Corportion | Method and apparatus for configuring signal lines according to idle codes |
US6971053B1 (en) | 2002-07-30 | 2005-11-29 | Cypress Semiconductor Corp. | Method for initiating internal parity operations in a CAM device |
US7304873B1 (en) | 2005-01-25 | 2007-12-04 | Netlogic Microsystems, Inc. | Method for on-the-fly error correction in a content addressable memory (CAM) and device therefor |
IE20050277A1 (en) * | 2005-05-04 | 2006-11-29 | Nat Univ Ireland | Method and apparatus for generating error-correcting and error-detecting codes using zero-divisors and units in group rings |
US8042029B2 (en) * | 2006-05-21 | 2011-10-18 | Ramot At Tel Aviv University Ltd. | Error correction decoding by trial and error |
US8990631B1 (en) | 2011-03-03 | 2015-03-24 | Netlogic Microsystems, Inc. | Packet format for error reporting in a content addressable memory |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4512020A (en) * | 1981-09-21 | 1985-04-16 | U.S. Philips Corporation | Data processing device for processing multiple-symbol data-words based on a symbol-correcting code and having multiple operating modes |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4593396A (en) * | 1982-10-08 | 1986-06-03 | August Systems | Process for a fault-tolerant data processing system with error detection and resistance to fault propagation |
US4698814A (en) * | 1984-02-06 | 1987-10-06 | U.S. Philips Corporation | Arrangement for checking the parity of parity-bits containing bit groups |
JPS60212048A (ja) * | 1984-04-06 | 1985-10-24 | Nec Corp | 符号修正型切替方式 |
US4648091A (en) * | 1984-07-02 | 1987-03-03 | General Electric Company | Apparatus and method for decoding error correction coded information |
NL8403147A (nl) * | 1984-10-16 | 1986-05-16 | Philips Nv | Dataverwerkingssysteem dat is opgebouwd uit drie dataverwerkingsmodules. |
-
1986
- 1986-09-05 GB GB8621469A patent/GB2194850B/en not_active Expired - Lifetime
-
1987
- 1987-08-19 US US07/087,185 patent/US4882731A/en not_active Expired - Lifetime
- 1987-08-19 DE DE3727586A patent/DE3727586C2/de not_active Expired - Lifetime
- 1987-09-02 SE SE8703405A patent/SE466368B/sv not_active IP Right Cessation
- 1987-09-02 CA CA000545936A patent/CA1297590C/en not_active Expired - Lifetime
- 1987-09-04 FR FR8712279A patent/FR2604542A1/fr active Granted
- 1987-09-05 JP JP62221237A patent/JP2612000B2/ja not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4512020A (en) * | 1981-09-21 | 1985-04-16 | U.S. Philips Corporation | Data processing device for processing multiple-symbol data-words based on a symbol-correcting code and having multiple operating modes |
Also Published As
Publication number | Publication date |
---|---|
JP2612000B2 (ja) | 1997-05-21 |
GB8621469D0 (en) | 1986-10-15 |
SE8703405D0 (sv) | 1987-09-02 |
DE3727586C2 (de) | 1997-12-11 |
US4882731A (en) | 1989-11-21 |
CA1297590C (en) | 1992-03-17 |
FR2604542A1 (fr) | 1988-04-01 |
GB2194850A (en) | 1988-03-16 |
SE466368B (sv) | 1992-02-03 |
SE8703405L (sv) | 1988-03-06 |
JPS6367644A (ja) | 1988-03-26 |
GB2194850B (en) | 1990-10-31 |
FR2604542B1 (de) | 1994-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3727586C2 (de) | Datenverarbeitungsanordnung bestehend aus vier im wesentlichen gleich aufgebauten Moduln | |
DE2916710C2 (de) | ||
DE2060643C3 (de) | Schaltungsanordnung zur Korrektur von Einzelfehlern | |
DE2132565C3 (de) | Umsetzer | |
DE3209679C2 (de) | ||
EP0067301B1 (de) | Einrichtung zur Erzeugung von Prüfbits zur Sicherung eines Datenwortes | |
DE102005028221B4 (de) | Vorrichtung und Verfahren zum Schutz der Integrität von Daten | |
DE3231956A1 (de) | Anordnung zum uebertragen von binaerdaten ueber eine vielzahl von kanaelen mit hilfe eines faltungscodes | |
DE2159108A1 (de) | Anordnung zur Erzeugung zyklischer Redundanzprüfzeichen | |
DE3603926A1 (de) | Halbleiter-speicherelement | |
DE3125048A1 (de) | Erzeugung von fehlerkorrekturpruefbits unter benutzung von paritaetsbits zur durchlaufkontrolle | |
DE102015113414B4 (de) | Fehlerkorrektur unter Verwendung von WOM-Codes | |
DE2425823A1 (de) | Einrichtung zur fehlererkennung und fehlerkorrektur | |
DE102019123642A1 (de) | Speicherfehlererkennung und korrektur | |
DE2941868A1 (de) | Anordnung zur vornahme einer fehlerkorrektur und fehlerermittelung bei binaerwoertern | |
DE102006005817B4 (de) | Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder | |
DE2704627B2 (de) | Anordnung zur Fehlerkorrektur von binärer Information | |
DE2217935A1 (de) | Anordnung und Verfahren zur Korrektur von Doppelfehlern | |
DE102007007546A1 (de) | Fehlerkorrekturcode-Striping | |
DE2053836C3 (de) | Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen | |
DE2538802C2 (de) | Schaltung zum Nachweis von Fehlern unter den aus Informations- und Prüfbits erzeugten, einen fehlerhaften Speicherort angebenden Bits | |
DE4117726C2 (de) | Fehlerkorrekturverfahren und Einrichtung zu dessen Durchführung | |
DE3702697C2 (de) | ||
DE1774225A1 (de) | Fehlerkorrekturschaltung | |
DE102019113970B4 (de) | Erkennung von adressfehlern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 11/16 |
|
8127 | New person/name/address of the applicant |
Owner name: PHILIPS ELECTRONICS N.V., EINDHOVEN, NL |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: KONINKLIJKE PHILIPS ELECTRONICS N.V., EINDHOVEN, N |
|
8320 | Willingness to grant licences declared (paragraph 23) |