DE2106314C3 - 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
DE2106314C3
DE2106314C3 DE2106314A DE2106314A DE2106314C3 DE 2106314 C3 DE2106314 C3 DE 2106314C3 DE 2106314 A DE2106314 A DE 2106314A DE 2106314 A DE2106314 A DE 2106314A DE 2106314 C3 DE2106314 C3 DE 2106314C3
Authority
DE
Germany
Prior art keywords
data
bits
bytes
byte
syndrome
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
Application number
DE2106314A
Other languages
English (en)
Other versions
DE2106314A1 (de
DE2106314B2 (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

C1 = /D1 + ID3 + ...+ IDK C2 = A1D, + A2D2 + ... + AKDK
ableitet, in denen /das Einselement und A\, A2 ... Ak unterschiedliche und von Null verschiedene Elemente des Galois-Feldes (26) sind und die Additionen und Multiplikationen die für die Galois-Felder definierten Operationen bedeuten und b eine ganze Zahl > 1 und K eine aanze Zahl 2<K<2b ist, und daß eine Dccodicrschaltung (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 Syndromreehner (14, 16; Fig. 2) enthält zur gleichzeitigen Errechnung zweier Syndrombytes 51 und 52 mit je b Bits gemäß Hen Beziehungen
51 = ID1- + ID2' + ... + IDk' + IC.
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 modulo-2-Addierwerken (52; Fig. 5a), deren Ausgänge an ein ODER-Glied (54) angeschlossen sind, aufgebauter Kriterienrechner (22; Fig.2) verbunden ist, der Korrektur-Kriterien gemäß der Beziehung B1 = A,S\ + IS2 errechnet, wobei ein Ausgangssignal B1 = 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 Si zum/ Byte korrigiert.
5. Anordnung nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß die Fehlerkorrekturschaltung (18: Fig. 2) für jedes empfangene Bit d,.,, (wobei mit djp das p. Bit des / Bytes bezeichnet ist), drei UND-Gliedei'(61 f 62* 63; F i g. 6) enthält, deren erstem die Eingajigssignale dj.p und Si.,, zugeführt Werden (wobei S\.P das invertierte p. Bit des I. Syndroms bezeichnet), deren zweiten_die Eingangssignale d,.p zugeleitet werden (wobei ß/das invertier
te Korrektur-Kriterium bezeichnet), und deren drittem die Eingangssignale B1, d1P und S,,, zugeführt werden, und daß die Ausgange der UND-Glieder an ein ODER-Glied (64) angeschlossen sind, an dessem Ausgang das korrigierte Bit d,.P" erscheint.
Die Erfindung bezieht sich auf eine Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden, parallel zu übertragenden Datenblocks.
Ihr liegt die Aufgabe zugrunde, eine Anordnung zur Korrektur mehrfacher Fehler in einem aus mehreren P)its 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 Bits bestehenden Byte eines K Datenbyles enthaltenden, parallel zu übertragenden Datenblocks ist dadurch gekcnnzeichnet, daß eine Codierschaltung vorgesehen ist, die aus den K Datenbytes D1. D2... Dk zwei je b Bits enthaltende Prüfbytes C1 und C> gemäß den Beziehungen
und
Ci = ID1 + ID2 + ... + IDk C2 = .4,D, + A1D2 + ... + AkDk
ableitet, in denen /das Einselement und A\, A2. .Ak unterschiedliche und von Null verschiedene Elemente des Galois-Feldes (2*) sind und d'c Additionen und Multiplikationen die für Galois-Felder definierten Operationen bedeuten und b eine ganze Zahl > I und K eine ganze Zahl 2<K<2h 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 erfindungsgcmäßen Codierers,
F i g. 4 die Organisation des Syndromrechners.
f i g. 5a und 1Jb die Organisation des Kritcricniechners,
F i g. 6 die Organisation des Korrekturrechners,
F i g. 7 die Codiermatrix und
P i g. 8 die Decodiermatrix.
Gemäß Fig. 1 werden Daten über einen Kanal 2 einem Codierer 1 zugeführt. Der Codierer 1 liefert 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
spater als empfangene Nachricht wiedqr abgibt, die über den Kanal 5 dem Decodierer 6 zugeführt wird, der die empfangene Nachricht decadiert und die wiedergewonnenen Daten abgibt, die über den Kanal 7 einer weiteren Verwendung zugeführt werden. Die Arbeitsweise der Verarbeitungseinheil 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 arbeiten zusammen, um die wiedergewonnenen Daten dem Kanal 7 mit weniger Fehlern zuzuführen, als durch die Verarbeitungseinheil verursacht wurden.
Die Erfindung kann bei informationsverarbeitenden Systemen mit unterschiedlichen Kapaziiä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 Daten durch das System blockweise verarbeitet. Ein Datenbluck besteht aus K Bytes, wobei jedes Byte aus b Datenbits besteht. (Hier und im folgenden bezeichnet b eine ganze Zahl > 1 und K eine ganze Zahl 2< K<2h. Die We;.e von b und K sind für ein bestimmtes Ausführungsbeisoiel als Invariant zu betrachten, werden jedoch für Ausführungsformen verschiedener Kapazitäten verschieden gewählt). Ein Datenblock wird demgemäß bezeichnet mit Di. Dj... £\. wobei Di das erste Byte des Datenblocks darstellt. D; das zweite Byte usw. bis Df.. das das K-le 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, (mil G und G> bezeichnet), 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. 2h verschiedene Bytes möglich sind und jedes mögliche Byte als ein Element eines Galois-Feldes von 2h Elementen zu betrachten (das kurz als GF[2h) bezeichnet ist). Die Existenz eines CF[2h) für jeden Wert von b ist durch allgemeine Lehrsätze der Algebra sichergestellt. (Vergleiche z.B. W. Wesley Peterson: Prüfbare und korngierbate Codes. R. Oldenbourg \ erlag [1967]). Das Cialois-Feld setzt zwei Operationen voraus, die gewöhnlich als »Addition« mit dem entsprechenden Nullelement 8 und als »Multiplikation« mit dem entsprechenden Einsclemint I bezeichnet werden. Die Ausdrücke »Addition« und »Multiplikation« und die damit zusarinienhängender. 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\2h) von möglichen Bytes isomorph ist mit dem Gf{2h) von Polynomen mit Koeffizienten im OH.2) modulo einem irrcduziblen 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\2b) wird daher ausgeführt durch Addition der entsprechenden Bits. (Die Addition ist die für das CF[2) und ist daher äquivalent der Addition niodulö 2.) Multiplikation im GF(2b) 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
/ I ) !0\ - 'Q) Ό *
O 1 0 0
O O 1 0
O O 0 0
ο ,0, \ J
(worin 0 und 1 binäre Symbole sind) oder kurzer ausgedrückt :
ei" \ab ' ... cij
worin <i ein primitives Element des GF[2")isl(Das heißt, jedes von 0 verschiedene Element des Feldes kann dadurch erhalten werden, daß α zu in'-ndeiner Potenz erhoben wird) Die Tran>.fnrma!ionsTa!rix. die der Multiplikation mit dem Element Q entspricht, wird
2't erhalten durch Aneinanderreihen der Spaltenvektoren
Qahi.Qbb 2 ... Qa. Ql.
wodurch man erhält
,TQ = Qa"
2 ...QaQf.
Multiplikation des Elementes R mit dem Element Q im GF[2b) ist daher äquivalent der Multiplikation des Vektors R mit der Matrix 7y, 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 ... + WK . (4)
C2 = AxDx + A2D2 ... + AKDK, (5)
worin Au Ai... Ak von 0 verschiedene Elemente des GF[2h) sind. Da es 2fl-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 G und Ci errechnet werden, durch eine Codiermatrix der Koeffizienten auszudrücken
H1 »
A1 A2 ■■ ■ AK
und die beim Codipren durchgeführte Berechnung der Prüfbytes kann symbolisch geschrieben werden als
C =
Unter Benutzung der oben entwickelten Beziehungen kann die Cödiermal":*. in binärer Form ausgedrückt werden, indem jedes Element des GH2h). das in der
Codiermatrix erseheint, durch die entsprechende binäre Mulliplikationsmalrix ersetzt wird. Die resultierende Form der Codiermalrix gibt explizit die Operationen an. die ein binär arbeitender Computer durchführen muß. um die Prüfbyles 7\\ berechnen.
Dem Decodierer 6 wird die empfangene Nachricht Di'. Di'... DK\ Cx. C2', die aus K + 2 Bytes besieht, zugeführt und der Decodierer errechnet ein aus zwei Bytes bestehendes Syndrom (S\, S2) gemäß den Beziehungen.
51 = IDi + /D2' . ·. + ID'k + ICi, (8)
52 = AxDi + /I2D2' ... + AKD'K + ICi · (9)
Diese Beziehungen können durch eine Dccodiermatrix mit K + 2 Spalten und zwei Zeilen beschrieben werden:
ti ο =
ι ι ... ι 1 π
AxA1... ΑΚΘ 1
(10)
In ihr ist Θ das Nullelement im GF[2b). Die Berechnung des Syndroms kann symbolisch angegeben werden durch
S =
(ID
B1 = AiSx + /S2
(12) 16 errechnet und gibt bei 21 dicSyndromkorhporiehlc S2 ab, die dem Krilerienrcchner 22 zugeführt wird. Der Kriiericnrcchncr 22 errechnet Kriterien U1 für jedes Dalenbit D1' und gibt die Kriterien bei 24 ab. von wo sie
ί der FchlcfkoffekUifsehaltung 18 zugeleitet werden. Die Fehlerkorrekturschaluing 18 errechnet die wiedergewonnenen Daten D," und gibt sie bei 26 ab.
Fig. 3 z.cigi die Organisation des Codicrcrs. Die Daten werden bei 30 angeliefert und acht Addierwerken 31-I bis 32-8 zugeführt, die das Prüfbyie Ci errechnen. Ferner werden sie acht Addierwerken 34-1 bis 34-8 zugeleitet, die das Prilfbytc C2 errechnen. Das Ausgangssignal jedes Addierwerkes ist die Summe seiner Eingangssignale, wobei die Addition die für das CF[2)
Vi 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 f/,.,)dasp. Bit des/ Bytes bezeichnet.
Das Zuordnungsschema entspricht den allgemeinen Prinzipien, die oben beschrieben wurden. Fur das bevorzugte Ausführiingsbeispicl werden die acht Spaltenvcktorcn des Gf\2) gewählt als
25
Die Decodicrmairix Hn kann natürlich explizit in binärer Form ausgedrückt werden, indem die binären Multiplikati0nsmalri7.cn eingesetzt werden.
Die Bedeutung der Syndrome (Sx, S2) 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 Si = Θ, S2 = Θ, dann liegt kein Fehler in der empfangenen Nachricht vor. Wenn Si = Θ. S2 ^ Θ. dann liegt ein Fehler in C2' vor. Wenn S2 = AjSi ^ Θ. -to dann liegt ein Fehler von Si in D2' vor.
Der Decodierer erzeugt für jedes Byte ein Kriterium nach der Gleichung
,«' = (0) . «2 = (0\ , o3 = (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
Vi I oj
(15)
, κ5 = 0 Μ . a1 = 0
0 1 1 0
0 0 0 0
1 0 0 0
0 0 0 0
0 0 0 0
0 l°] 0
W
43
und erzeugt die wiedergewonnenen Daten D]' entsprechend
und die Multiplikationsmatrizen basieren auf dem irrcduziblen Polynom Xs + X4 + Λ"3 + X2 + l,was crcibt
D]' = D] (Bj /fl), (13)
D'{ = D] + Sx(Bj = 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 Ausführungsbeispiels zur Verarbeitung eines Datenblocks 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 Fehlerkorrekturschaltung 18 und dem Kriterienrechner 22 zugeführt wird. Der Rechner T, =
60
Tj =
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
0 10 0 0 0 0 0
0 0 10 0 0 0 0
0 0 0 10 0 0 0 10 0 0 10 0 0 10 0 0 0 10 0
1 0 0 0 0 0 I 0 0 0 0 0 0 0 0 1 10 0 0 0 0 0 0
(16)
Τ,,ι =
τ, =
t.,4 =
0 0 10 0 0 0 0
0 0 0 10 0 0 0
1 0 0 0 ! 0 0 0
ι i ο ο ο ι ο ο
1 1 0 0 0 0 1 0
0 I 0 0 ö 0 0 i
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
O O 0 I O 0 O ü
1 0 0 0 I 0 0 0
1 1 0 0 0 I 0 0
1 1 1 0 0 0 I 0
0 1 I 0 0 0 0 1
1 0 i ö 0 ö 0 0
0 1 0 0 0 0 0 0
0 0 10 0 0 0 0
1 0 0 0 1 0 0 0
1 1 0 0 0 1 0 0
1 1 1 0 0 0 1 0
0 1 1 1 0 0 0 1
1 0 1 1 0 0 0 0
0 1 0 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 1 1 0 0 0 1 0
0 1 1 1 0 0 0 1
0 0 1 1 1 0 0 0
1 1 0 1 1 0 0 0
1 0 1 0 1 0 0 0
0 0 0 1 0 ö 0 0
1 0 0 0 1 0 0 0
1110 0 0 10 OiIlOOOl 0 0 1 1 10 0 0 0 0 0 1110 0 0 110 110 0 ι ι ο i ο ι ο ο 10 0 0 10 0 0 110 0 0 10 0
0 1 1 1 0 0 0 1
0 0 1 1 1 0 0 0
0 0 0 1 1 1 0 O
1 0 0 0 1 1 1 0
0 0 1 1 0 1 1 0
0 1 1 0 1 0 I 0
1 1 0 0 O I 0 0
1 1 1 0 0 O 1 O
10
15
30
35
45
50
65
OOÖÖÖOOO
00000000
00000000
00000000
0000 0 000
00000000
00000000
00000000
Die erhaltene Codiermalrix ist in binarer Form in Fig. 7 dargestellt.
Die Biteingangsleitungcn 36 des Addierwerks 32-1, eins das erste Bit des Prüfbytes G errechnet, sind vollständig in der Fig. 3 dargestellt. Diese Eingangslciluiigen entsprechen der ersten Zeile der Codiermatrix Ht. In gleicher Weise sind die F.ingangsleilungen 38 des Addierwerkes 34-2. das das /weite Bit des zweiten FMifbytes errechnet, gezeigt. Diese F.ingangslciuingen entsprechen der zehnten /.eile der Codiermatrix Hi. Die anderen nicht im einzelnen dargestellten F.ingangslei-Hingen können durch Bezugnahme aiii die Codiermalrix Hi erhalten werden.
F i g. 4 zeigt die Organisation der Syndromrechner 14 und 16 des Decodieren 6. Die empfangene Nachricht wird bei 12 zugeführt und den Addierwerken 42-1 bis 42-8 zugeleitet, die die Bits der ersten Syndromkomponente Si errechnen, und den Addierwerken 44-1 bis 44-8, die die Bits der zweiten Syndromkoniponcnte S_> entsprechend der in binärer Form ausgedrückten Decodiermatrix errechnen, wie sie in Fig. 8 dargestellt ist. Die einzelnen Eingangslcilungcn sind für das Addierwerk 42-1 dargestellt und die Eingangsleitungeii für die anderen (nicht im einzelnen in der Fig. 3 dargestellten) Addierwerke können aus der Decodiermatrix Ho erhalten werden. Die oberen acht Zeilen der Matrix Hn 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 Syndromkomponente ist beispielsweise mit S2.1 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 B\ erzeugt. Die Ausgangssignale B2, Bi... Bs werden von anderen Schaltungen erzeugt. Die Syndrombits, die jedem Addierwerk zugefügt werden, sind in den F i g. 5a und 5b angegeben.
Ein typischer Teil der Fehlerkorrekturschaltung 18 ist in der F i g. 6 dargestellt, nämlich Schaltungen, die das p. Bit des j. 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 Eingangssignale das_empfangene Datenbit dj.p' und das Syndrombit Si.p zugeführt (wobei der Querstrich das invertierte Signal kennzeichnet). Dem UND-Glied 62 werden als Eingangssignale das empfangene Datenbit dj.p und eines der Korrekturkriterien Bj zugeführt. Dem UND-Glied 63 werden als Eingangssignale das Korrekturkriterium Bj, das empfangene invertierte Datenbit dj.p und das Syndrombit Si.p zugeführt. Das ODER-Glied 64 liefert das wiedergewonnene Datenbit d,_p". Eine gleiche Gruppe von Schaltungen ist für jedes Datenbit vorgesehen, so daß insgesamt im allgemeinen b ■ K Gruppen (insgesamt 64 in dem bevorzugten Ausführungsbeispiel) von Schaltungen, wie sie hier beschrieben wurden, in der Fehlerkorrekturschaltung 18 vorhanden sind.
Hierzu 7 Blatt Zeichnungen 809 643/130

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, Fi g. 1) vorgesehen ist, die aus den K Datenbytes Du D2 ■ ■ ■ Dk zwei je b Bits enthaltende Prüfbytes Ci und Ca 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 DE2106314B2 (de) 1978-03-16
DE2106314C3 true 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
US4979173A (en) * 1987-09-21 1990-12-18 Cirrus Logic, Inc. Burst mode error detection and definition
US5140595A (en) * 1987-09-21 1992-08-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
JP2013523043A (ja) 2010-03-22 2013-06-13 エルアールディシー システムズ、エルエルシー ソースデータセットの完全性を識別及び保護する方法
WO2016014423A1 (en) 2014-07-21 2016-01-28 Kandou Labs S.A. Multidrop data transfer
WO2018191749A1 (en) 2017-04-14 2018-10-18 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
DE2106314A1 (de) 1971-08-19
CA932466A (en) 1973-08-21
NL174418C (nl) 1984-06-01
JPS5240545B1 (de) 1977-10-13
FR2080403A5 (de) 1971-11-12
DE2106314B2 (de) 1978-03-16
GB1279793A (en) 1972-06-28
NL174418B (nl) 1984-01-02
US3629824A (en) 1971-12-21
NL7101866A (de) 1971-08-16

Similar Documents

Publication Publication Date Title
DE2106314C3 (de) Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks
DE60001370T2 (de) Verfahren und vorrichtung zur erkennung von doppelbitfehlern und korrektur von fehlern durch bauelementfehler verursacht
DE2162833C3 (de) Einrichtung zum Codieren und Decodieren eines aus k Bytes mit je b Bits bestehenden Datenblocks und Korrektur zweier fehlerhafter Bits
DE2357004C3 (de) Verfahren und Einrichtung zur Fehlerkorrektur für Daten
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE2916710C2 (de)
DE69121307T2 (de) Mehrfachpegel-Fehlerkorrektursystem
DE3854393T2 (de) Verfahren und gerät zur fehlerkorrektur mit mehrfachdurchlauf für produktkode.
DE3789929T2 (de) Verfahren und Gerät zur Fehlerkorrektur in einem aus parallelem Prozessor bestehenden Datenverarbeitungssystem.
DE60220341T2 (de) Verfahren zum Erzeugen eines Burstfehlermusters sowie Burst- und Bytefehlerermittlungs- und-korrekturvorrichtung
DE2260850A1 (de) Fehlerkorrektursystem
DE2159108A1 (de) Anordnung zur Erzeugung zyklischer Redundanzprüfzeichen
DE3882223T2 (de) Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden.
DE2914515A1 (de) Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem
DE3231956A1 (de) Anordnung zum uebertragen von binaerdaten ueber eine vielzahl von kanaelen mit hilfe eines faltungscodes
DE2262070A1 (de) Mit schieberegistern arbeitendes fehlerkorrektursystem
DE3750526T2 (de) Dekodierer.
DE2659031B2 (de) Fehlerkorrektur- und -Steuersystem
DE2941868A1 (de) Anordnung zur vornahme einer fehlerkorrektur und fehlerermittelung bei binaerwoertern
DE69904618T2 (de) Detektionstechnik von speicherabschnittfehlern und einzel-, doppel und triplebitfehlern
DE2704627B2 (de) Anordnung zur Fehlerkorrektur von binärer Information
DE69317766T2 (de) Fehlerkorrekturgerät für digitale Daten zur Korrektur von Einfachfehlern (sec), von Doppelfehlern (ded) und Vielfacheinzelbytefehlern (sbd) und zur Korrektur von Einzelbytefehlern ungerader Anzahl (odd sbc)
DE3882175T2 (de) Fehlerkorrektur-Kode für einen B-bit-pro-Chip-Speicher mit verminderten Redundanz.
DE2217935A1 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern
DE2053836C3 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen

Legal Events

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