DE2106314B2 - Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks - Google Patents

Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks

Info

Publication number
DE2106314B2
DE2106314B2 DE2106314A DE2106314A DE2106314B2 DE 2106314 B2 DE2106314 B2 DE 2106314B2 DE 2106314 A DE2106314 A DE 2106314A DE 2106314 A DE2106314 A DE 2106314A DE 2106314 B2 DE2106314 B2 DE 2106314B2
Authority
DE
Germany
Prior art keywords
data
bytes
bits
byte
correction
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
Application number
DE2106314A
Other languages
English (en)
Other versions
DE2106314C3 (de
DE2106314A1 (de
Inventor
Douglas Craig Wappingers Falls N.Y. Bossen (V.St.A.)
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2106314A1 publication Critical patent/DE2106314A1/de
Publication of DE2106314B2 publication Critical patent/DE2106314B2/de
Application granted granted Critical
Publication of DE2106314C3 publication Critical patent/DE2106314C3/de
Expired legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • 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
    • 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/134Non-binary linear block codes not provided for otherwise
    • 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
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • 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/17Burst error correction, e.g. error trapping, Fire codes
    • 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/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Description

C, = /D1 + /D2 + ... + IDK C2 = A1D, + A2D1 + ... + AkDk
51 = /D1' + ID2' + ...+ IDk' + IQ',
52 = AD1' + A2D2' + ... + AkDk + IC2,
in denen die gestrichenen Symbole die empfangenen Bytes kennzeichnen.
3. Anordnung nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß mit den Ausgängen der beiden Syndromrechner ein aus jeweils mehreren moduIo-2-Addierwerken (52; F i g. 5a), deren Ausgänge an ein ODER-Glied (54) angeschlossen sind, aufgebauter Kriterienrechner (22; F i g. 2) verbunden ist, der Korrektur-Kriterien gemäß der Beziehung Bj = AjS] + /52 errechnet, wobei ein Ausgangssignal S, = 0 eine notwendige Korrektur des/ Bytes des empfangenen Blocks anzeigt.
4. Anordnung nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, daß eine Fehlerkorrekturschaltung (18; Fig. 2) an die Ausgänge des ersten Syndromrechners (14) und des Kriterienrechners (22) angeschlossen ist, der auch der empfangene Block zugeführt wird und die, wenn der Kriterienrechner eine notwendige Korrektur des j. Bytes anzeigt, dieses durch Addition des ersten errechneten Syndroms 5| zum j. Byte korrigiert.
5. Anordnung nach den Ansprüchen I bis 4, dadurch gekennzeichnet, daß die Fehlerkorrekturschaltung (18; F i g. 2) für jedes empfangene Bit of,;,, (wobei mit dj.P das p. Bit des j. Bytes bezeichnet ist), drei UND-Glieder (61, 62, 63; F i g. 6) enthält, deren erstem die Einga_ngssignaie o1,.,, und Si.,, zugeführt werden (wobei Si.,, das invertierte p. Bit des 1. Syndroms bezeichnet), deren zweiten_die Eingangssignal (//,,zugeleitet werde (wobei ß,das invertierte Korrektur-Kriterium bezeichnet^ und deren drittem die Eingangssignale Bj, dj,p' und Si.,, zugeführt werden, und daß die Ausgänge der UND-Glieder an ein ODER-Glied (64) angeschlossen sind, an dessem Ausgang das korrigierte Bit dlp" erscheint.
15
ableitet, in denen /das Einselernent und A\, A2... Ak unterschiedliche und von Null verschiedene Elemente des Galois-Feldes (2*) sind und die Additionen und Multiplikationen die für die Galois-Felder definierten Operationen bedeuten und b eine ganze Zahl > 1 und K eine ganze Zahl 2<K<2b ist, und daß eine Decodierschaltung (6, F i g. 2) vorgesehen ist, die aus einem empfangenen fehlerhaften Block den fehlerfreien liefert, wenn nur ein Byte des Blocks fehlerhaft war, unabhängig davon, wieviel Bits dieses Bytes fehlerhaft waren.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der Decodierer zwei aus je b modulo-2-Addierwerken aufgebaute Syndromrech- jo ner (14, 16; Fig.2) enthält zur gleichzeitigen Errechnung zweier Syndrombytes S1 und S2 mit je b Bits gemäß den Beziehungen
Die Erfindung bezieht sich auf eine Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden, parallel zu übertragender. Datenblocks.
Ihr liegt die Aufgabe zugrunde, eine Anordnung zur Korrektur mehrfacher Fehler in einem aus mehreren Bits bestehenden Byte anzugeben, die einen mininalen apparativen Aufwand und nur einen Code geringerer Redundanz erfordert. In einem System, in dem beispielsweise Daten durch Stanzen von jeweils acht Bits in Lochkarten gespeichert werden, deren jede als ein Byte betrachtet wird, ermöglicht die Erfindung ein fehlerfreies Wiedergewinnen der Daten des Karten blocks, wenn verschiedene Datenbits einer einzigen Lochkarte falsch gestanzt werden.
Die erfindungsgemäße Anordnung zur Fehlererkennung und -korrektur in einem aus b BUs bestehenden Byte eines K Datenbytes enthaltenden, parallel zu übertragenden Datenblocks ist dadurch gekennzeichnet, daß eine Codierschaltung vorgesehen ist, die aus den K Datenbytes Di, D2... DK zwei je b Bits enthaltende Prüfbytes Q und C2 gemäß den Beziehungen
und
Q = /Di + ID2 + ... + IDK C2 = A1D1 + A2D2 + ... + AkDk
ableitet, in denen /das Einselement und A\, A2... Ak unterschiedliche und von Null verschiedene Elemente des Galois-Feldes (2*) sind und die Additionen und Multiplikationen die für Galois-Felder definierten Operationen bedeuten und öeine ganze Zahl > 1 und K eine ganze Zahl 2< K<2b ist, und daß eine Decodierschaltung vorgesehen ist, die aus einem empfangenen fehlerhaften Block den fehlerfreien liefert, wenn nur ein Byte des Blocks fehlerhaft war, unabhängig davon, wieviel Bits dieses Bytes fehlerhaft waren.
Nachfolgend wird ein bevorzugtes Ausführungsbeispiel der Erfindung in Verbindung mit den Zeichnungen beschrieben, von denen zeigt
Fig. 1 ein Blockschaltbild eines Datenverarbeitungssystems, das die Erfindung benutzt, F i g. 2 ein Blockschaltbild des Decodierers gemäß der Erfindung,
Fig. 3 die Organisation des erfindungsgemäßen Codierers,
F i g. 4 die Organisation des Syndromrechners, F i g. 5a und 5b die Organisation des Kriterienrechners,
F i g. 6 die Organisation des Korrekturrechners, F i g. 7 die Codiermatrix und
F i g. 8 die Decodiermatrix.
Gemäß Fig. 1 werden Daten über einen Kanal 2
to einem Codierer ί zugeführt. Der Codierer 1 iiefei i eine auszusendende Nachricht, die über den Kanal 3 zu einer Verarbeitungseinheit gelangt, die irgendeine Operation mit der Nachricht durchführt, z. B. sie speichert und
später als empfangene Nachricht wieder abgibt, die über den Kanal 5 dem Decodierer 6 zugeführt wird, der die empfangene Nachricht decodiert und die wiedergewonnenen Daten abgibt, die über den Kanal 7 einer weiteren Verwendung zugeführt werden. Die Arbeitsweise der Verarbeitungseinheit 4 kann unvollkommen sein und gelegentlich Fehler verursachen, so daß die empfangene Nachricht in dem Kanal 5 nicht notwendigerweise identisch ist mit der über den Kanal 3 ausgesendeten Nachricht. Der Codierer 1 und der Decodierer 6 iu arbeiten zusammen, um die wiedergewonnenen Daten dem Kanal 7 mit weniger Fehlern zuzuführen, als durch die Verarbeitungseinheit verursacht wurden.
Die Erfindung kann bei informationsverarbeitenden Systemen mit unterschiedlichen Kapazitäten Anwendung finden. Daher wird sie zuerst unter Verwendung algebraischer Ausdrücke beschrieben, die auf jedes System beliebiger Größe anwendbar sind. Anschließend wird dann ein spezielles System beschrieben.
Gemäß der Erfindung werden Daien durch das System blockweise verarbeitet. Ein Datenblock besteht aus K Bytes, wobei jedes Byte aus b Datenbus besteht. (Hier und im folgenden bezeichnet b eine ganze Zahl > 1 und K eine ganze Zahl 2<K<2b. Die Werte von b und K sind für ein bestimmtes Ausführungsbeispiel als Invariant zu betrachten, werden jedoch für Ausführungsformen verschiedener Kapazitäten verschieden gewählt). Ein Datenblock wird demgemäß bezeichnet mit Du D2.. . Dk, wobei D\ das erste Byte des Datenblocks darstellt, D2 das zweite Byte usw. bis Dk, das das K-te und letzte Byte darstellt. Ein Datenbyte wird mit Dj bezeichnet, wobei der Index j jeden ganzzahligen Wert zwischen 1 und K annehmen kann. Gemäß der Erfindung errechnet der Codierer für den Datenblock zwei Prüfbytes, (mit Q und C2 bezeichnet), i=> deren jedes aus b Bits besteht und die an die K Datenbytes angehängt werden, um eine auszusendende Nachricht von K + 2 Bytes zu erhalten.
Um die Berechnung der Prüfbytes zu beschreiben, ist es zweckmäßig, sich zu merken, daß als Byte, die aus b ■»< > binären Bits zusammengesetzt sind, 2b verschiedene Bytes möglich sind und jedes mögliche Byte als ein Element eines Gaiois-Feldes von 2* Elementen zu betrachten (das kurz als CF[2b) bezeichnet ist). Die Existenz eines GF[2b) für jeden Wert von b ist durch allgemeine Lehrsätze der Algebra sichergestellt. (Vergleiche z.B. W. Wesley Peterson: Prüfbare und korrigierbare Codes; R. Oldenbourg Verlag [1967]). Das Galois-Feld setzt zwei Operationen voraus, die gewöhnlich als »Addition« mit dem entsprechenden so Nullelement Θ und als »Multiplikation« mit dem entsprechenden Einselement I bezeichnet werden. Die Ausdrücke »Addition« und »Multiplikation« und die damit zusammenhängenden Ausdrücke wie z. B. »Addierer« werden in diesem Sinne im folgenden gebraucht.
Die Regeln der Addition und Multiplikation von Bytes werden dadurch aufgestellt, daß man sich die Erkenntnis zunutze macht, daß das Gf\2b) von möglichen Bytes isomorph ist mit dem GF[2b) von Polynomen mit Koeffizienten im Gf\2) modulo einem e>o irreduziblen Polynom des Grades b. (Zumindest ein irreduzibles Polynom existiert für jedes b). Das Feld solcher Polynome ist ein Vektorraum der Dimension b über dem GF[2). Addition der Elemente in dem GF[2h) wird daher ausgeführt durch Addition der entsprechenden Bits. (Die Addition ist die für das GF(2) und ist daher äquivalent der Addition modulo 2.) Multiplikation im GH2h) kann man sich vorstellen als das Definieren einer Menge linearer Transformationen in dem entsprechenden Vektorraum der Dimension b.
Der Vektorraum wird aufgespannt durch die Spaltenvektoren
O- · · O © O ■— O- · · OO — O fo
O
1
O
(O)
O
O
O
Λ
(worin O und 1 binäre Symbole sind) oder kürzer ausgedrückt:
ah~\ ah~2 ... aj
worin a ein primitives Element des GF(2b) ist.(Das heißt, jedes von O verschiedene Element des Feldes kann dadurch erhalten werden, daß a zu irgendeiner Potenz erhoben wird.) Die Transformationsmatrix, die der Multiplikation mit dem Element Q entspricht, wird erhalten durch Aneinanderreihen derSpaltenvekloren
Qab'\ Qbh
wodurch man erhält
Qa, Ql,
= Qa"-X Qah'2 ... QaQl] .
Multiplikation des Elementes R mit dem Element Q im GF{2b) ist daher äquivalent der Multiplikation des Vektors R mit der Matrix Tq, wobei der Vektor und die Matrixbestandteile dem GF[2) angehören (d. h. Binärziffern sind). Diese Operationen werden unten in Verbindung mit einem bevorzugten Ausführungsbeispiel erläutert.
Bei dem Datenverarbeitungssystem gemäß der Erfindung errechnet der Codierer die Prüfbytes gemäß der Beziehungen
C1 = ID1 + ID2... + IDK , (4)
C2 = A1D1+ A2D2 ... + AKDK, (5)
worin A\, A2 ■ ■ ■ Ak von O verschiedene Elemente des GF[2b) sind. Da es 2b- 1 solcher Elemente gibt, ist die Anzahl der Bytes in einem Block begrenzt auf K< 2b. Es ist zweckmäßig, die Beziehungen, durch die die Prüfbytes Q und C2 errechnet werden, durch eine Codiermatrix der Koeffizienten auszudrücken
Hc =
A1 A2 . .. AK j,
und die beim Codieren durchgeführte Berechnung der Prüfbytes kann symbolisch geschrieben werden als
C = HCD .
Unter Benutzung der oben entwickelten Beziehungen kann die Codiermatrix in binärer Form ausgedrückt werden, indem iedes Element des GR21'). das in der
Codiermatrix erscheint, durch die entsprechende binäre Multiplikationsmatrix ersetzt wird. Die resultierende Form der Codiermatrix gibt explizit die Operationen an, die ein binär arbeitender Computer durchführen muß. um die Prüfbytes zu berechnen.
Dem Decodierer 6 wird die empfangene Nachricht D,'. D/... Dk'. Ci', C2', die aus K + 2 Bytes besteht, zugeführt und der Decodierer errechnet ein aus zwei Bytes bestehendes Syndrom (S], S2) gemäß den
51 = /D1' + ID2' ... + ID'K + IC;, (8)
52 = /I1D1' + A2D2' ... + AKD'K + ICi ■ (9)
Diese Beziehungen können durch eine Decodicrmatrix mit K + 2 Spalten und zwei Zeilen beschrieben werden:
H0 =
I I ... I ΙΘ
A] A2 .. . AK
(10)
In ihr ist Θ das Nullelement im GF[2b). Die Berechnung des Syndroms kann symbolisch angegeben 2=> werden durch
S = Hn(D[C).
(H)
Β-,
= .4/S1
+ IS2
(12) 16 errechnet und gibt bei 21 die Syndromkomponente S; ab, die dem Kriterienrechner 22 zugeführt wird. Der Kriterienrechner 22 errechnet Kriterien B1 für jedes Datenbit Dj und gibt die Kriterien bei 24 ab. von wo sie der Fehlerkorrekturschaltung 18 zugeleitet werden. Die Fehlcrkorrekturschaltiing 18 errechnet die wiedergewonnenen Daten Dj' und gibt sie bei 26 ab.
F i g. 3 zeigt die Organisation des Codierers. Die Daten werden bei 30 angeliefert und acht Addierwerken 31-1 bis 32-8 zugeführt, die das Prüfbyte G errechnen. Ferner werden sie acht Addierwerken 34-1 bis 34-8 zugeleitet, die das Prüfbyte C: errechnen. Das Ausgangssignal jedes Addierwerkes ist die Summe seiner Eingangssignale, wobei die Addition die für das GF[2) definierte ist. In Fig. 3 sind die Daten in binärer Form dargestellt, wie sie von einer auf der Basis des Binärsystems arbeitenden Maschine verarbeitet werden, wobei dj.pdas p. Bit des/ Bytes bezeichnet.
Das Zuordnungsschema entspricht den allgemeinen Prinzipien, die oben beschrieben wurden. Für das bevorzugte Ausführungsbeispiel werden die acht SpaUcnvektoren des CF[2) gewählt als
τ __
Die Dccodicrmatrix Hd kann natürlich explizit in binärer Form ausgedrückt werden, indem die binären Multiplikationsmatrizen eingesetzt werden.
Die Bedeutung der Syndrome (S\, Si) kann aus einer Betrachtung der folgenden Operationen verstanden werden, die leicht von den Codier- und Decodierbeziehungen unter der Annahme abgeleitet werden können, daß zumindest alle Bytes bis auf eines richtig übertragen wurden. Wenn S] = Θ, 52 = θ, dann liegt kein Fehler in der empfangenen Nachricht vor. Wenn Si = θ, S2 ^ Θ. dann liegt ein Fehler in C2' vor. Wenn S2 = 4,Si ^ Θ, dann liegt ein Fehler von Si in D2' vor.
Der Decodierer erzeugt für jedes Byte ein Kriterium nach der Gleichung
und erzeugt die wiedergewonnenen Daten D)' entsprechend
D)' = D) + S] (B1 = 0). (14)
Es sei besonders erwähnt, daß das fehlerhafte Byte korrigiert wird, selbst wenn mehrere Bits innerhalb des Byte fehlerhaft sind.
Fig. 2 zeigt ein Blockschaltbild eines bevorzugten Atisführungsbcispicls zur Verarbeitung eines Datcnblocks aus 64 Bits, die zu Bytes zusammengefaßt sind. Die empfangene Nachricht wird dem Decodierer 6 bei 12 zugeführt und gelangt in parallelen Kanälen zu dem Rechner 14, der die erste Komponente des Syndroms errechnet, zu dem Rechner 16, der die zweite Komponente des Syndroms errechnet und zu der Fehlerkorrekturschaltung 18. Der Rechner 14 errechnet und gibt bei 20 die Syndromkomponente Si ab, die über parallele Kanüle der Fehlerkorrektursehallung 18 und dem KriterienrechiH·!1 22 zugeführt wird. Der Rechner
(0\ , ο2 = '0\ , a3 = (0\
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 1
0 0 1 0
0 1 0 0
U) \ J \ J
(15)
' 0I ίοϊ ah = 1 a1 = / \
1
0 0 0 0
0 1 0 0
1 0 0 9
0 0 0 0
0 0 0 0
0 0 0
v ο ( ^o i k /
und die Multiplikationsmatrizen basieren auf dem irreduziblen Polynom XH + ΧΛ + λ"3 + X1 + l.was ergibt
1 0 0 0 0 0 0 0
0 10 0 0 0 0 0
0 0 10 0 0 0 0
0 0 0 10 0 0 0
0 0 0 0 10 0 0
0 0 0 0 0 10 0
0 0 0 0 0 0 10
0 0 0 0 0 0 0 1
•r
(16)
T.,1 =
0 10 0 0 0 0 0
0 0 10 0 0 0 0
0 0 0 1 0 0 0 0
1 0 0 0 I 0 0 0 1 0 0 0 0 I 0 0 I 0 0 0 0 0 I 0
0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0
T λ =
T„« =
■r __
' .η
0 0 I 0 0 0 0 0
0 0 0 I 0 0 0 0
1 0 0 0 10 0 0 i i O 0 0 i 0 0 1 10 0 0 0 1 0
0 10 0 0 0 0 1
1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
1 0 0 0 1 0 0 0 1 1 0 0 0 I 0 0 1 1 10 0 0 10 0 1 10 0 0 0 1 10 10 0 0 0 0 0 I 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 0 0 0 1 0 0 0
1 10 0 0 10 0
1 1 10 0 0 10
0 1110 0 0 1
0 0 0 0
0 1
0 10 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0
1 1 0 0 0 1 0 0
1 I 1 0 0 0 1 0
0 1 I 1 0 0 0 1
0 0 I I I 0 0 0
1 1 0 1 1 0 0 0
1 0 I 0 1 0 0 0
0 0 0 I 0 0 0 0
I 0 0 0 I 0 0 0
I 1 1 0 0 0 1 0
0 I 1 I 0 0 0 1
0 0 I 1 I 0 0 0
0 0 0 1 1 I 0 0
0 1 I 0 I I 0 0
1 1 0 I O 1 0 0
1 0 0 0 I 0 0 0
I 10 0 0 1 0 0
0 I 1 1 0 0 0 1
0 0 1 1 I 0 0 0
0 0 0 I 1 I 0 0
1 0 0 0 1 I I 0
0 0 I 1 0 I I 0
0 1 I 0 I 0 I 0
I 1 0 0 0 I 0 0
I 1 I 0 0 0 1 0
O O O O O O O O
O O O O O O O O
O O O O O O O O
T14 ^ O O O O O O O O
O O O O O O O O
O O O O O O O O
O O O O O O O O
O O O O O O O O
Dir erhaltene Codienruiirix ist in binärer Form in l-'i g. 7 dargestellt.
Die Biteingangsieitungen 36 des Addierwerks 32-1, das das erste Bit des Prüfbytes Ci errechnet, sind vollständig in der F i g. 3 dargestellt. Diese Eingangsleituiigen entsprechen der ersten Zeile der Codiermatrix /-/<■■ In gleicher Weise sind die Eingangsleitungen 38 des Addierwerkes 34-2, das das zweite Bit des zweiten Prüfbytes errechnet, gezeigt. Diese Eingangsleitungen entsprechender zehnten Zeile der Codiermatrix /Y1. Die anderen nicht im einzelnen dargestellten Eingangslcitungcn können durch Bezugnahme auf die Codiermatrix /-/(erhalten werden.
K i g. 4 zeigt die Organisation der Syndromrechner 14 und 16 des Decodiercrs (>. Die empfangene Nachricht wird bei 12 zugeführt und den Addierwerken 42-1 bis 42-8 zugeleitet, die die Bits der ersten Syndromkomponentc .S'i errechnen, und den Addierwerken 44-1 bis 44-8, die die Bits der zweiten Syndromkomponentc S; entsprechend der in binärer Form ausgedrückten Dccodiermatrix errechnen, wie sie in Fig. 8 dargestellt ist. Die einzelnen Eingangsleitungen sind für das Addierwerk 42-1 dargestellt und die Eingangsleitungen für die anderen (nicht im einzelnen in der Fig. 3 dargestellten) Addierwerke können aus der Decodiermatrix Hp erhalten werden. Die oberen acht Zeilen der Matrix Hd werden zur Berechnung von Si benutzt und die unteren acht Zeilen zur Berechnung von S2.
Die Organisation des Kriterienrechners ist in den F i g. 5a und 5b dargestellt. Die Syndrombits (das dritte Bit der zweiten Syndromkoniponente ist beispielsweise mit S2,i bezeichnet) werden nach Gleichung (12) acht Addierwerken 52 zugeführt. Die Ausgänge der acht Addierwerke führen an ein ODER-Glied 54, das das Ausgangssignal ßi erzeugt. Die Ausgangssignale B2, Bi... Bm werden von anderen Schaltungen erzeugt. Die Syndrombits, die jedem Addierwerk zugefügt werden, sind in den F i g. 5a und 5b angegeben.
Hin typischer Teil der Fehlcrkorrekturschallung 18 ist in der Fi g. 6 dargestellt, nämlich Schaltungen, die das p. Bit des ./. Bytes verarbeiten. Die Ausgänge dreier UND-Glieder 61, 62, 63 sind mit einem ODER-Glied 64 verbunden. Drei Inverter 65, 66 und 67 sind ebenfalls vorgesehen. Dem UND-Glied 61 werden als Eingangs signale das empfangene Datenbil Jn,' und das .Syndrombit .Si.,, zugeführt (wobei der Querstrich das invertierte Signal kennzeichnet). Dem UND-Glied 62 werden als Eingangssignale das empfangene Datenbit (/,.,/ und eines der Korrekiurkriterien ß, zugeführt. Dem UND-Glied 63 werden als Hingangssignale das Korrek turkriteriuin B„ das empfangene invertierte Dalenbil (/,.,/ und das Syndrombit .S'i.,. zugeführt. Das ODER-Glied 64 liefert das wiedergewonnene Datenbil Jn,". Eine gleiche Gruppe von Schaltungen ist für jedes Dalenbit vorgesehen, so dall insgesamt im allgemeinen /' ■ K Gruppen (insgesamt 64 in dem bcvoivuglen Ausführungsbeispiel) von Schaltungen, wie sie hier beschrieben wurden, in der I ehleikoncklurscliallung 18 vorhanden sind.
809 511/113

Claims (1)

Patentansprüche:
1. Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden, parallel zu übertragenden Datenblocks, dadurch gekennzeichnet, daß eine Codierschaltung (1, Fig. 1) vorgesehen ist, die aus den K Datenbytes D\, D2... Dk zwei je b Bits enthaltende Prüfbytes Q und C2 gemäß den Beziehungen
DE2106314A 1970-02-12 1971-02-10 Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks Expired DE2106314C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US1084770A 1970-02-12 1970-02-12

Publications (3)

Publication Number Publication Date
DE2106314A1 DE2106314A1 (de) 1971-08-19
DE2106314B2 true DE2106314B2 (de) 1978-03-16
DE2106314C3 DE2106314C3 (de) 1978-10-26

Family

ID=21747711

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2106314A Expired DE2106314C3 (de) 1970-02-12 1971-02-10 Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks

Country Status (7)

Country Link
US (1) US3629824A (de)
JP (1) JPS5240545B1 (de)
CA (1) CA932466A (de)
DE (1) DE2106314C3 (de)
FR (1) FR2080403A5 (de)
GB (1) GB1279793A (de)
NL (1) NL174418C (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE28923E (en) * 1971-12-27 1976-08-03 International Business Machines Corporation Error correction for two bytes in each code word in a multi-code word system
US3774154A (en) * 1972-08-21 1973-11-20 Ibm Error control circuits and methods
USRE30187E (en) * 1972-11-15 1980-01-08 International Business Machines Corporation Plural channel error correcting apparatus and methods
US3868632A (en) * 1972-11-15 1975-02-25 Ibm Plural channel error correcting apparatus and methods
US3851306A (en) * 1972-11-24 1974-11-26 Ibm Triple track error correction
US3786439A (en) * 1972-12-26 1974-01-15 Ibm Error detection systems
US3800281A (en) * 1972-12-26 1974-03-26 Ibm Error detection and correction systems
US3859630A (en) * 1973-01-29 1975-01-07 Burroughs Corp Apparatus for detecting and correcting errors in digital information organized into a parallel format by use of cyclic polynomial error detecting and correcting codes
US3913068A (en) * 1974-07-30 1975-10-14 Ibm Error correction of serial data using a subfield code
US3893071A (en) * 1974-08-19 1975-07-01 Ibm Multi level error correction system for high density memory
GB1597218A (en) * 1976-12-11 1981-09-03 Nat Res Dev Apparatus for electronic encypherment of digital data
GB2042228B (en) * 1979-01-31 1983-09-14 Tokyo Shibaura Electric Co Data correcting system
JPS55149551A (en) * 1979-05-10 1980-11-20 Toshiba Corp Data correcting circuit
JPS56119550A (en) * 1980-02-25 1981-09-19 Sony Corp Transmission method of pcm signal
DE3028066A1 (de) 1980-07-24 1982-02-18 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Schaltungsanordnung zur korrektur gestoerter abtastwerte bei einer pcm-uebertragungseinrichtung, insbesondere einer digital-tonplatte
US4862463A (en) * 1987-07-20 1989-08-29 International Business Machines Corp. Error correcting code for 8-bit-per-chip memory with reduced redundancy
US5140595A (en) * 1987-09-21 1992-08-18 Cirrus Logic, Inc. Burst mode error detection and definition
US4979173A (en) * 1987-09-21 1990-12-18 Cirrus Logic, Inc. Burst mode error detection and definition
US5224106A (en) * 1990-05-09 1993-06-29 Digital Equipment Corporation Multi-level error correction system
US5343481A (en) * 1991-01-07 1994-08-30 Kraft Clifford H BCH error-location polynomial decoder
US5751740A (en) * 1995-12-14 1998-05-12 Gorca Memory Systems Error detection and correction system for use with address translation memory controller
US7743311B2 (en) * 2006-01-26 2010-06-22 Hitachi Global Storage Technologies Netherlands, B.V. Combined encoder/syndrome generator with reduced delay
US8769373B2 (en) 2010-03-22 2014-07-01 Cleon L. Rogers, JR. Method of identifying and protecting the integrity of a set of source data
KR102243423B1 (ko) 2014-07-21 2021-04-22 칸도우 랩스 에스에이 다분기 데이터 전송
US10666297B2 (en) * 2017-04-14 2020-05-26 Kandou Labs, S.A. Pipelined forward error correction for vector signaling code channel
US10693587B2 (en) 2017-07-10 2020-06-23 Kandou Labs, S.A. Multi-wire permuted forward error correction
US11356197B1 (en) 2021-03-19 2022-06-07 Kandou Labs SA Error-tolerant forward error correction ordered set message decoder

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL130511C (de) * 1963-10-15
US3458860A (en) * 1965-03-08 1969-07-29 Burroughs Corp Error detection by redundancy checks
US3474413A (en) * 1965-11-22 1969-10-21 Dryden Hugh L Parallel generation of the check bits of a pn sequence

Also Published As

Publication number Publication date
GB1279793A (en) 1972-06-28
NL174418B (nl) 1984-01-02
JPS5240545B1 (de) 1977-10-13
US3629824A (en) 1971-12-21
NL7101866A (de) 1971-08-16
DE2106314C3 (de) 1978-10-26
FR2080403A5 (de) 1971-11-12
NL174418C (nl) 1984-06-01
DE2106314A1 (de) 1971-08-19
CA932466A (en) 1973-08-21

Similar Documents

Publication Publication Date Title
DE2106314B2 (de) Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks
DE2162833C3 (de) Einrichtung zum Codieren und Decodieren eines aus k Bytes mit je b Bits bestehenden Datenblocks und Korrektur zweier fehlerhafter Bits
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE60015753T2 (de) System und verfahren zum schutz von daten und zur korrektur von bitfehlern folgend aus komponentenfehlern
DE60117066T2 (de) Verfahren und Vorrichtung zum Überprüfen von fehlerkorrigierenden Codes
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE2914515A1 (de) Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem
DE2260850A1 (de) Fehlerkorrektursystem
DE3231956A1 (de) Anordnung zum uebertragen von binaerdaten ueber eine vielzahl von kanaelen mit hilfe eines faltungscodes
DE2262070A1 (de) Mit schieberegistern arbeitendes fehlerkorrektursystem
DE112016003638B4 (de) Auf eine Decodierung folgende Fehlerprüfung mit Diagnose für Produktcodes
DE3750526T2 (de) Dekodierer.
DE102005022107B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE102016102590B4 (de) Datenverarbeitungseinrichtungen und verfahren zum rekonstruieren eines puf-werts
DE2704627B2 (de) Anordnung zur Fehlerkorrektur von binärer Information
DE2217935B2 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht
DE102011087634B4 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE3882175T2 (de) Fehlerkorrektur-Kode für einen B-bit-pro-Chip-Speicher mit verminderten Redundanz.
DE3752367T2 (de) Fehlerkorrekturgerät
DE4117726C2 (de) Fehlerkorrekturverfahren und Einrichtung zu dessen Durchführung
DE2000565A1 (de) Fehlerkorrigierendes System zur Korrektur mehrfacher,zufaelliger Fehler
DE102019113970B4 (de) Erkennung von adressfehlern
DE102022111624B4 (de) Fehlerkorrektur mit schneller Syndromberechnung
DE3443272A1 (de) Verfahren und anordnung zur fehlererkennung in datenverarbeitungsanlagen
DE2657408A1 (de) Fehlerkorrekturschaltung

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee