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 DatenblocksInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/134—Non-binary linear block codes not provided for otherwise
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1575—Direct 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/17—Burst error correction, e.g. error trapping, Fire codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single 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,
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
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)
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
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)
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)
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 |
-
1970
- 1970-02-12 US US10847A patent/US3629824A/en not_active Expired - Lifetime
- 1970-12-23 FR FR7047667A patent/FR2080403A5/fr not_active Expired
-
1971
- 1971-01-11 GB GB0255/71A patent/GB1279793A/en not_active Expired
- 1971-01-25 CA CA103622A patent/CA932466A/en not_active Expired
- 1971-02-03 JP JP46003815A patent/JPS5240545B1/ja active Pending
- 1971-02-10 DE DE2106314A patent/DE2106314C3/de not_active Expired
- 1971-02-11 NL NLAANVRAGE7101866,A patent/NL174418C/xx not_active IP Right Cessation
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 |