DE2060643C3 - Schaltungsanordnung zur Korrektur von Einzelfehlern - Google Patents
Schaltungsanordnung zur Korrektur von EinzelfehlernInfo
- Publication number
- DE2060643C3 DE2060643C3 DE2060643A DE2060643A DE2060643C3 DE 2060643 C3 DE2060643 C3 DE 2060643C3 DE 2060643 A DE2060643 A DE 2060643A DE 2060643 A DE2060643 A DE 2060643A DE 2060643 C3 DE2060643 C3 DE 2060643C3
- Authority
- DE
- Germany
- Prior art keywords
- bits
- error
- bit
- code
- information
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- 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)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Description
Die Erfindung bezieht sich auf eine Schaltungsanordnung
zur Korrektur von Einzel- und zur Erkennung von Doppelfehlern gemäß Oberbegriff des Anspruchs 1.
Für die Übertragung von Informationsbits zwischen zwei Punkten sind viele Verfahren zur Erkennung und
Korrektur von Fehlern vorgeschlagen worden. Diese Verfahren sind in einer Reihe von Büchern beschrieben,
z. B. in dem Buch »Error Detecting Logic für Digital Computers« von Frederick F. Sellers, Jr., Mu-Yue
Hsiao und Leroy W. Bearnson (McGraw Hill
1968) und in dem Buch »Error Correcting Codes« von W. Wesley Peterson (The M.I.T. Press 1961).
Charakteristisch für diese Verfahren nach dem Stand der Technik ist, daß Prüfbits mit den Informationsbits
zur Anzeige des Vorliegens und des Ortes von Fehlern, sowohl in den Informationsbits als auch in den Prüfbits,
übertragen werden. Bei dem (z. B. aus der US-PS Re 23 601) bekannten Hamming-Code bilden jedes Prüfbit
und ausgewählte Informationsbits eine Codegruppe, wobei der Wert jedes Prüfbits durch den Wert der
Informationsbits in seiner Codegruppe bestimmt wird. Daher ist jede Änderung, die bei der Übertragung
entweder in einem Informationsbit oder einem Prüfbit auftritt, empfangsseitig identifizierbar. Die Tabelle I
zeigt einen vereinfachten aus sechs Bits bestehenden Code zur Korrektur von Einzelfehlern und zur
Erkennung von Einzelfehlern, der abgekürzt als EFK/EFE-Code bezeichnet wird, bei dem die drei
Prüfbits Cl, C2 und Ci Werte besitzen, die eine Funktion der drei Informationsbits DO, Dl und D2
sind.
(Stand der Technik)
Hamming EFK/EFE (6, 3)-Code
k Informationsbits
ÖO Ol Dl
ÖO Ol Dl
(B-A-) Prüfbits
Cl Cl Ci
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
Die Gesamtzahl der Bits in dem Codewort ist n, davon sind k Informationsbits und n—k (auch als r
bezeichnet) Prüfbits. Der Code wird als (n, A-)-Code
bezeichnet. In der Tabelle II bilden das Prüfbit Cl und die Informationsbits DO und D 2 die Codegruppe 51.
Tabelle II (Stand der Technik) Hamming EFK/EFE |
51 52 53 |
1 0 1 I 0 1 |
(6, | 3)-Code | C) | Cl | C 3 |
OO Ol | Dl | 1 0 0 |
o 1 0 |
— ο ο | |||
1 1 1 |
|||||||
Die Beziehungen zwischen den Prüfbits und den Informationsbits, die durch die Matrix dargestellt sind,
gehorchen den Regeln, daß: jede Codegruppe zumindest ein Prüfbit enthalten muß, daß jedes Informationsbit
zumindest einer Codegruppe angehören muß und daß jede Codegruppe einzigartige Sätze "on Informationsbits
und Prüfbits enthalten muß. Alle Codegruppen sind also untereinander verschieden, d. h. es wird
niemals die gleiche Auswahl von Informationsbits zur Erzeugung von mehreren Prüfbits verwendet. Diese
Beziehungen schreiben Antivalenz-Funktionen vor. Jedes Informationsbit, das in der Matrix durch eine !
bezeichnet ist, stellt ein Eingangssignal zum Prüfbitgenerator und jedes Prüfbit, das in der Matrix durch eine
1 bezeichnet ist, ein Ausgangssignal des Prüfbitgenerators dar. Wenn beispielsweise eine gerade Parität
angenommen wird, dann hat das Prüfbit Cl den Wert 1,
wenn entweder das Informationsbit DO oder das Informationsbit D 2 den Wert 1 besitzt. Das Prüfbit Cl
besitzt den Wert 0, wenn entweder beide Informationsbits DO und D2 den Wert 1 besitzen oder diese beiden
Informationsbits den Wert 0 aufweisen. Die Wahl eimr
ungeraden Parität würde die entgegengesetzten Werte für das Prüfbit Cl liefern. Anders ausgedrückt ist der
Wert des Prüfbits Cl gleich der Antivalenzfunktion der
Informationsbits DO und D2 bei gerader Parität. In ähnlicher Weise ist das Prüfbit C 2 gleich der
Antivalenzfunktion der Informationsbits DO, Dl und D 2.
Wenn bei der Übertragung der Information, die in dem Codewort aus den Bits DO, D1, D2, Cl, C2 und
C3 enthalten ist, ein Einzelfehler auftritt, spiegelt sich dieser Fehler in einem Widerspruch zwischen der
erwarteten Parität jeder Codegruppe und der Parität der empfangenen Codegruppe wieder. Dieser Widerspruch
resultiert aus einem Fehler, der in dem empfangenen Wort lokalisiert werden kann gemäß
einer Analyse der empfangenen Information, wie das in Tabelle III dargestellt ist.
(Stand der Technik)
DO Dl D2 Cl Cl C3
Sl 1 0 1 10 0
5-2111010
5-2111010
S3 0 1 1 0 0 1
Syndrom
1
1
1
0
0
Beispielsweise liefert ein Fehler im Informationsbit DO
ein Syndrom 51, S2 und 53 (Parkätsfehler in den Codegruppen 51 und 52). Da das Informationsbit DO
das einzige Bit ist, das den Codegruppen 51 und 52 und
> nicht 5 3 angehört, ist es das fehlerhafte Bit
Während bisher von einem Code zur Korrektur von Einzelfehlern und zur Erkennung von Einzelfehlern
ausgegangen wurde, ist die Erkennung von Doppelfehlern wünschenswert. Nach dem Stand der Technik kann
ίο dies durch Hinzufügen eines weiteren Prüfbits CT
erreicht werden, das die Gesamtparität aller Bits eines Codewortes überprüft, wie das in der Tabelle IV
dargestellt ist.
(Stand der Technik)
Die Analyse erfolgt durch Prüfen jeder Codegruppe auf Richtigkeit (gerade Parität) und anschließendes
Ableiten der fehlerhaften Bitstelle. Die Prüfung einer Codegruppe liefert ein »Syndrom«, wobei eine 1
anzeigt, daß die Parität der Codegruppe falsch ist.
20 | 51 | 2 J | ST | DO | EFK/DFE (7, | D2 | 3)-Code | C2 | C 3 | CT | |
Hamming | 52 | 1 | Dl | 1 | Cl | 0 | 0 | 0 | |||
53 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | ||||
0 | 1 | 1 | 0 | 0 | 1 | 0 | |||||
1 | 1 | 1 | 0 | 1 | 1 | 1 | |||||
1 | 1 | ||||||||||
Ohne das zusätzliche Bit CTwürde durch zwei Fehler
in einer Codegruppe (z. B. durch einen Fehler in den Bits
in DO und Cl) die gerade Parität dieser Codegruppe nicht
verändert werden. Dies muß jedoch nicht notwendigerweise auch für die anderen Codegruppen gelten, und
daher würde der Fehlerort falsch angezeigt werden. Das zusätzliche Bit CT identifiziert diese (unkorrigierbare)
j5 Bedingungen durch die Anzeige, daß sich die Gesamtparität
nicht geändert hat, obgleich eine oder mehrere Codegruppen eine Änderung feststellen.
Beim Aufbau der Schaltungen zur Erzeugung der Prüfbits repräsentiert jedes Informationsbit, das durch
eine 1 in der Prüfbitmatrix gekennzeichnet ist, einen Eingang, und jedes Prüfbit, das durch eine 1 gekennzeichnet
ist, den Ausgang eines exklusiven ODER-Gliedes (Antivalenz-Gliedes). Im Falle der Fehlerprüfschaltungen
stellt jede 1 einen Eingang eines Antivalenz-Gliedes dar und die Schaltung zur Fehlerlokalisavion
erfordert noch zusätzliche Schaltungen. Selbst wenn man annimmt, daß Antivalenz-Glieder mit mehr als
zwei Eingängen verfügbar sind, ist zu ersehen, daß ein große Anzahl von Schaltungen vorgesehen werden muß
so und daß außerdem einige Signale wesentlich längere
Wege zurücklegen müssen als andere. Die Arbeitsgeschwindigkeit wird jedoch durch den längsten zurückzulegenden
Weg bestimmt. Das Gesamtprüfbit CTist ein
stärker komplizierend wirkender Faktor, da die ihm entsprechende Zeile in der Tabelle IV lauter Einsen
enthält. Dies bedeutet viele Eingänge und einen langen Signalpfad.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Schaltungsanordnung zur Einzelfehler-
bo korrektur und Doppelfehlererkennung anzugeben, die
einfach und möglichst regelmäßig aufgebaut ist und rasch arbeitet.
Diese Aufgabe wird durch die im Anspruch 1 gekennzeichnete Schaltungsanordnung gelöst.
hi Die Erfindung erzielt sehr wirksam die Vorteile der
Schaltungen nach dem Stand der Technik mit wesentlich weniger Verbindungen und Schaltungen. Die
verbesserte Schaltung, zu der eine Matrix der in Tabelle
V gezeigten Art gehört, arbeitet mit einem vierten Prüfbit C 4, dessen Stelle eindeutig festgelegt ist und das
eine willkürliche Anzahl von Informationsbits (beispielsweise die Informationsbits DO und DX in der
Codegruppe 54) überwacht und so gewählt wird, daß jedes Informations- und Prüfbit einer ungeraden Anzahl
(1,3,5,7, usw.) von Codegruppen angehört.
EFK/DFE (7, 3)-Code
Dl Dl
Cl
Cl C3
C4
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0 1 0 0
Durch Überwachen aller vier Codegruppen 51 bis
54 auf gerade Parität zeigt das resultierende Syndrom,
(das eine oder mehrere ungerade Paritäten enthält) einen oder mehrere Fehler an. Da jedes Informationsund
Prüfbit einer ungeraden Anzahl von Codegruppen zugeordnet ist, wird ein Einzelfehler (oder ein anderer
ungeradzahliger Mehrfachfehler) durch eine ungerade Anzahl von Syndrom-Bits angezeigt und ein Doppelfehler
(oder ein anderer geradzahliger Mehrfachfehler) durch eine gerade Anzahl. Weiter können Einzelfehler
durch Decodieren der Syndrome gemäß der in ihnen gemeinsamen Bits leicht lokalisiert werden. Da ein
Fehler beispielsweise in dem Informationsbit DO ein Syndrom 51, 52, 53. 54 (ungerade Paritäten werden
für die Codegruppen 51, 52 und 54 festgestellt) erzeugt, kann ein UND-Glied durch Signale durchgeschaltet
werden, die ungerade Paritäten für die Codegruppen 51,52 und 54 (und, wenn das erwünscht
ist, eine gerade Parität für 53) anzeigen, um das Bit DO als dasjenige zu identifizieren, das korrigiert werden
muß.
Die genaue Wahl der Bitzuordnung ist wichtig. Die Tabelle Vl zeigt Zuordnungen, wie sie für einen (22,
16)-EFK/DFD-Code gewählt werden können.
DO Dl Dl D3 DA DS D6 Dl DS D9 DlO DIl D12 D13 D14 D15 Cl Cl C3 C4 C5 C6
5111111100001 000 10 100000
52 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 9 |
53 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 9 |
54 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 10 |
55 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 10 |
56 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1· | 9 |
Während einige we; entliche Regeln bereits im Zusammenhang mit dem Stand der Technik genannt
wurden, sind für den erfindungsgemäßen optimalen Schaltungsentwurf weitere Regeln zu beachten. Die
erste davon besagt, daß jedes Informations- und jedes Prüfbit einer ungeraden Anzahl von Codegruppen
zugeordnet werden müssen. Diese ungerade Anzahl beträgt 1 für die Prüfbits und mehr als 1 für die
Informationsbits. Sieht man von Überlegungen bezüglich des Aufbaues des Systems ab, so werden die
Informationsbits zunächst allen verfügbaren Kombinationen von drei Codegruppen zugeordnet, sodann allen
verfügbaren Kombinationen von fünf Codegruppen usw. Eine Durchbrechung dieser Regel ist der Tabelle
VII zu entnehmen, in der das Bit D 0 fünf Codegruppen zugeordnet ist, obwohl nur 15 der verfügbaren 20
Kombinationen von drei Codegruppen benutzt wurden. Die Schaltung, die durch die Matrix der Tabelle VI
charakterisiert ist, kann (zur Verringerung der Anzahl von Eingängen um 2) optimiert werden, indem die
Spalte DO der Matrix durch eine der unbenutzten Kombinationen von drei Codegruppen ersetzt wird.
Dabei muß jedoch zusätzlich die Anzahl der Stufen der exklusiven ODER-Glieder in Betracht gezogen werden,
die bei der Erzeugung einer Codegruppe und bei der Fehlererkennung durchlaufen werden. Wichtig ist eine
im wesentlcihen gleiche Anzahl von Einsen für jede Codegruppe. Die Codegruppen 54 und 55 enthalten 10
Einsen, (drei Stufen von exklusiven ODER-Gliedern mil drei Eingängen) und die Codegruppen 51, 52, 53 und
56 enthalten neun Einsen (zwei Stufen). Daher ist für einen optimalen Schaltungsentwurf sowohl das Gleichmachen
der Anzahl von Einsen in jeder Zeile als auch das Benutzen aller verfügbaren Permutationen von drei
Codegruppen erforderlich. Dies zeigt die Tabelle VII die für eine optimale Schaltung gilt, da jede Codegruppe
zwei Stufen von exklusiven ODER-Gliedern mit drei Eingängen erfordert und nur Kombinationen von drei
Codegruppen benutzt werden.
51 11111100001 0001 0 1000009
52 11100011110 0 1 000 0100009
53 1 0 0
54 0 0 0
55 0 1 0
56 0 0 1
0 10 1110 0
0 0 110 0 11 10 0 0 10 11
1110 0 10 0
0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 9 |
1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 9 |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 9 |
1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 9 |
Die Erfindung erzielt also zusammengefaßt folgende Vorteile:
Dadurch, daß jedes Informationsbit immer nur ein Signal an eine ungerade Anzahl von Logikanordnungen
zur Erzeugung der Prüfbits liefert, wird das Auftreten -> eines Einzelfehlers leicht erkennbar, da bei einem
einzigen fehlerhaften Informationsbit immer eine ungerade Anzahl von Syndrombits erzeugt werden.
Dabei können die nach dem Stand der Technik notwendigen Maßnahmen zur Erkennung eines Doppel- κι
fehlers, nach denen die Gesamtanzahl aller Eingangssignale einer Logikanordnung zugeführt werden mußten,
entfallen. Erfindungsgemäß ist also das bekannte besondere Prüfbit, welches die Gesamtanzahl aller
Eingangssignale berücksichtigte, nicht mehr notwendig π und wird anstelle dieses Spcziaiprüfbits ein den anderen
gleichwertiges Prüfbit vorgesehen, dessen Berechnung sich also nur aus einer begrenzten Anzahl von
Informationsbits ergibt. Hierdurch wird die Prüfbiterzeugung vereinfacht und die Zeit zur Erzeugung der
Prüfbits kürzer, da weniger logische Stufen durchlaufen werden müssen.
Das Merkmal, daß alle Prüfbiterzeugungs-Logikanordnungen mit einer im wesentlichen gleichen Anzahl
von Eingangsleitungen verbunden sind, führt zu einer ir>
Vereinheitlichung der Logikanordnungen, welche die bekannten Vorteile bei der Erzeugung und Wartung
ergibt.
Eine vorteilhafte Weiterbildung der Erfindung ist dadurch gekennzeichnet, daß die Logikanordnungen 3»
auch zur Erzeugung der Syndrombits verwendet werden können, wobei nach einer weiteren Fortbildung
der Erfindung die Informationsbits an drei Logikanordnungen und die Prüfbits an jeweils eine Logikanordnung
angeschlossen sind. Mit diesen Maßnahmen wird erzielt, ir>
daß der Aufwand ein Minimum erreicht.
Weitere vorteilhafte Ausbildungen der Erfindung sind den restlichen Unteransprüchen zu entnehmen.
Im folgenden wird die Erfindung in Verbindung mit den Zeichnungen näher beschrieben, von denen zeigen:
F i g. 1 ein Blockschaltbild eines die Erfindung verkörpernden Systems,
F i g. 2 ein Diagramm einer Matrix, welche die innerhalb des Prüfbitgenerators, des Fehlerdetektors
und des Fehlerlokalisators der Fig. 1 vorgesehenen Verbindungen veranschaulicht,
F i g. 3 ein Schaltbild des Fehlerdetektors und eines Prüfbitgenerators,
F i g. 4 ein Schaltbild des Fehlerlokalisators.
Fig.1 zeigt, daß die auf der Eingangssammelleitung 1
vorhandenen 64 Informationsbits DO bis D63 einem
Priifbitgenerator 2 zugeführt werden, der 8 Prüfbits Ci
bis C8 auf die Ausgangssammelleitung 3 gibt, woraufhin dann der Übertragungsweg 4 sämtliche 72 Bits als ein
Codewort überträgt. Am Empfänger werden die 72-Bit-Codeworte von dem Übertragungsweg 4 einem
Fehlerdetektor 5 zugeleitet, welcher 8 Syndrom-Bits 51
bis 58 erzeugt, die repräsentativ für 8 Codegruppen S 1 bis 58 innerhalb des 72-Bit-Codewortes sind. Die 8
Syndrom-Bits werden dazu verwendet, das Vorliegen eines Einzelfehlers oder eines Doppelfehlers festzustellen
und die Position eines Einzelfehlers zu lokalisieren. Ein oder mehrere Signale auf den 8 Syndromleitungen
veranlassen das ODER-Glied 7, ein Signal auf die Fehlerleitung zu geben. Eine ungeradzahlige Anzahl
von Signalen auf den 8 Syndromleitungen, die einen Einzelfehler (oder eine ungeradzahlige Anzahl von
Fehlern) anzeigt, wird durch ein Antivalenzglied 8 festgestellt. Dessen Ausgangssignal wird über das
UND-Glied 9 der Einzelfehler-Leitung zugeführt, wenn das ODER-Glied 7 anzeigt, daß ein Fehler auftrat. Wenn
nach Durchschalten des ODER-Gliedes 7 eine gerade Anzahl von Signalen auf den Syndromleitungen
vorhanden ist, wird der Sperr-Eingang des UND-Gliedes IO durch vom Antivalenzglied 8 beaufschlagt, um ein
Signal auf die Doppelfehler-Ausgangsleitung zu geben. Die Syndrom-Signalleitungen 51 bis 58 sind auch mit
einem Fehlerlokalisator H verbunden, der Fehleranzeigen DO' bis D63' und CV bis Ci' den 72
Fehleranzeigeleitungen 12 zuführt, die mit einem Fehlerkorrektor 13 verbunden sind. Der Fehlerkorrektor
13 kombiniert einander entsprechende Fehleranzeigen und Codewortpositiionen, um korrigierte Informationsbiis
auf Sammelleitung 14 und korrigierte Prüfbits auf Sammelleitung 15 zu liefern.
Die allgemeine Konstruktion des Systems der F i g. 1 wird mit Bezug auf die Matrix der F i g. 2 weiter erklärt,
die symbolisch den Prüfbitgenerator 2, den Prüfdetektor 5 und den Fehlerlokalisator 11 darstellt. Die Matrixspalten
zeigen das 72-Bit-Codewort aufgeteilt in 64 Informationsbits DO bis D63 und 8 Prüfbits Cl bis CS,
und ferner aufgeteilt in 9 gleiche Abschnitte (Bytes) mit der Benennung B1 bis »PRÜF«, wobei jeder Abschnitt
(aus Gründen des Aufbaus, die später besprochen werden) 8 Bits umfaßt. Jedes der Prüfbits Cl bis C8
gehört zu einer jeweils anderen von 8 Codegruppen 51
bis 58, die in der Matrix als Zeilen S 1 bis 58 bezeichnet sind. Jedes einzelne Bit in der Matrix repräsentiert eine
Schaltungsverbindung. In dem Prüfbitgenerator 2 ist jedes der Prüfbits Cl bis C8 die Antivalenzfunktion
sämtlicher Informationsbits, die durch Eins-Bits in der betreffenden Reihe von Prüfbits, angegeben sind.
Beispielsweise ist das Prüfbit C1 die Antivalenzfunktion
der Informationsbits DO bis DT, D20, usw. In ähnlicher Weise wird das Prüfbit C2 durch die
Antivalenzfunktion der Informationsbits DO, Dl, D2,
D 5 usw. gebildet. Im Fehlerdetektor 5 wird eine ähnliche Antivalenz-Verknüpfung in jeder Codegruppe
durchgeführt, jedoch einschließlich der Prüfbits. Beispielsweise wird für die Codegruppe 51 eine Antivalenz-Verknüpfung
der Informationsbits DO bis D 7, D 20 usw. und des Prüfbits C1 durchgeführt Das der
Prüfbitgenerator 2 die Prüfbits Cl bis C8 so erzeugt, daß eine geradzahlige Anzahl von Einsen in jeder
Codegruppe erzielt wird (geradzahlige Parität), erkennt der Fehlerdetektor 5, wenn kein Fehler vorliegt, daß die
geradzahlige Parität unverändert geblieben ist. Wenn jedoch ein Fehler vorliegt, haben eine oder, mehrere der
8 Codegruppen eine ungeradzahlige Parität, als deren Folge Syndromsignale auf den entsprechenden Leitungen
51 bis 58 in Fig. 1 erscheinen. Die Interpretation dieser Syndrome durch den Fehlerlokalisator 11 wird
auch durch die Matrix der F i g. 2 dargestellt. Ein Fehler in einer Informationsbit- oder Prüfbitposition (Matrixspalte)
wirkt sich auf bestimmte Codegruppen (Matrixreihen) 51 bis 58 aus. Beispielsweise bewirkt ein Fehler
im Informationsbit DO daß die Codegruppen 51, 52 und 54 eine ungeradzahlige Parität haben, was sich in
Eins-Bit-Syndromsignalen des Fehlerdetektors 5 auf den Leitungen 51, 52 und 54 wiederspiegelt Eine
Fehlerlokalisation wird erreicht, wenn ein UND-Glied für jedes Codewortbit (Matrixspalte) vorgesehen wird,
das Eingangssignale von jeder der Syndromleitungen für die Codegruppe erhält, zu welcher das Bit gehört
(Einser-Bits in ihrer Matrixspalte). Dies ist in der F i g. 2 durch die Ziffern unter der Spalte veranschaulicht Da
ζ. B. die Syndrome 51,52 und 54 durch einen Fehler im
Bit DO verursacht wurden, wird ein Ausgangssignal eines UND-Gliedes durch ein Zusammentreffen der
Eingangssignale 51, 52 und 54 und »Einzelfehler« verursacht. Ein zusätzliches Eingangssignal 55 ist >
vorgesehen, um richtiges Decodieren zu sichern, damit überlappende Syndrorn-Untermengen unterschieden
werden können.
Da die Eins-Bits in der Matrix der Fig. 2 die Schaltungen zur Durchführung der Prüfbiterzeugung
und Fehlererkennung, -lokalisierung und -korrektur bestimmen, ist der für die Konstruktion des Systems
erforderliche Schaltungsaufwand umso geringer, je weniger Eins-Bits die Matrix enthält. Optimierung
erfordert jedoch zusätzliche Erwägungen, jedes Syndromsignal
51 bis 58 wird erzeugt durch eine Anzahl von Stufen von Antivalenzgliedern, die bestimmt ist
durch die Anzahl der für jede Schaltung vorhandenen Eingänge. Wenn beispielsweise jedes Antivalenz-Glied
drei Eingänge hat, kann die maximale Anzahl von durch das Syndromsignal 51 durchlaufenen Stufen als drei
berechnet werden, gemäß der Beziehung: Anzahl der Stufen = log,/» wobei ν die Anzahl der Eingänge zu
jedem Antivalenz-Glied und i, die Gesamtanzahl von Eingängen für jenes Syndrom ist. (Im Falle eines 2r>
Bruchteiles wird die nächstgrößere ganze Zahl gewählt).
Die Arbeitsgeschwindigkeit des Checkbitgenerators 2 sowie des Fehlerdetektors 5 wird durch den längsten
Weg bestimmt, der von den Eingangssignalen durch die aufeinanderfolgenden Stufen der Antivalenz-Glieder
durchlaufen wird. Infolgedessen ist es zusätzlich zur Minimalisierung der Gesamtanzahl der Eins-Bits in der
Matrix erforderlich, die Anzahl der Eins-Bits in jeder Matrixzeile gleich zu machen.
Bei der Konstruktion der Matrix zusätzlich verwen- r> dete Kriterien beinhalten Regeln, die den EFK/DFE-Codierungen
eigentümlich sind, d. h.: jede Gruppe muß mindestens ein Prüfbit enthalten, jedes Informationsbit
muß Glied mindestens einer Codegruppe sein, und jede Codegruppe muß eindeutige Sätze von Informationsbits
und Prüfbits enthalten. Zusätzliche Kriterien sind für die hier offenbarte Erfindung wesentlich. Zunächst ist es
notwendig, daß jedes Informations- und Prüfbit zu einer ungeradzahligen Anzahl von Codegruppen 51 bis 58
gehört. Im Fall der Prüfbits muß diese Zahl Eins sein, und im Fall von Informationsbits muß sie größer als Eins
sein. Wesentlich ist auch die Art der Wahl, zu wievielen Codegruppen ein bestimmtes Informationsbit gehört.
Mit Ausnahme von Aufbauerwägungen der unten noch zu veranschaulichenden Art wird die Mitgliedschaft in
Codegruppen dadurch gewählt, daß jede ungeradzahlige Anzahl von Kombinationen von Codegruppen,
beginnend mit der kleinsten ungeraden Zahl, erschöpft wird. Für die Matrix der F i g. 2 geschieht die Zuordnung
der Prüfbits dadurch, daß jeweils ein Prüfbit einer der acht Zeilen zugeordnet wird. Sodann werden alle
Kombinationen der acht Zeilen unter Zusammenfassung von jeweils drei Zeilen erschöpft, ehe irgendwelche
Bits fünf Zeilen usw. zugeordnet werden, wobei die Anzahl der Kombination von r Dingen, wobei jeweils m
zusammengefaßt werden, wie folgt ist:
Für /7J = 3 müssen sechsundfünfzig Informationsbits drei Codegruppen zugeordnet werden, bevor irgendwelche
fünf Codegruppen zugeordnet werden. Die letzte Zuordnung nähen sich, wird aber nicht gleich! i).
Die Matrix der Fig.2 veranschaulicht eine optimale Konfiguration, welche diese drei Kriterien in Betracht
zieht, zusätzlich zu einer Aufbauerwägung, welche sich auf die Unterteilung des aus zweiundsiebzig Bits
bestehenden Codewortes in neun gleiche, jeweils 8 Bits enthaltende Bytes Bi, Bl usw. bis »PRÜF« gründet.
Die Unterteilungen in Bytes erleichtern die arithmetischen und logischen Operationen in Datenverarbeitungssystemen,
welche Teile von Codeworten verarbeiten. Derartige Systeme führen zusätzliche Paritätsprüfungen
für jedes Byte durch, was die Antivalenz-Verknüpfung aller Bits eines Bytes zur Folge hat. Es ist
deshalb zweckmäßig, die η Byte-Paritätsschaltung als Teil der Codewortschaltung zu verwenden, wie das für
das Byte B1 dadurch gezeigt ist, daß in der Codegruppe
51 acht Eins-Bits vorgesehen sind, für das Byte B 2
dadurch, daß acht Bits in der Codegruppe 52 vorgesehen sind usw. Nachdem diese acht Bits wie in
F i g. 2 dargestellt vorgesehen sind, werden die obigen Kriterien zu dem Zweck angewendet, eine optimale
Struktur hinsichtlich der Bauteile zu erhalten.
Wenn auch die F i g. 2 einen (72, 64)-Code veranschaulicht, können doch die gleichen Kriterien dazu
verwendet werden, andere Matrizen für diesen Code zu entwerfen. Zwei verschiedene Ausführungen von
Paritätsprüfungs-Matrizen für einen (72, 64)-EFK7DFE Code sind in den Tabellen VIII und IX gezeigt.
Byte 1
Bit
0 12 3 4 5 6
9 10 11 12 13 14
16 17 18 19 20 21 22 23
25 26 27 28 29 30 31
51 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 1 |
52 | 1 | 1 | 1 | 11111 | 1 | |||||
53 | 1 | 1 | 1 | 1 1 1 | 1 | |||||
54 | 1 | 1 | 1 | 1 I | ||||||
55 | 1 | 1 1 | ||||||||
56 | 1 | 1 | ||||||||
57 | 1 | 1 | 1 | |||||||
58 | 1 | 1 | 1 |
1 1
1 1 1
1 1
11111111
1 1 1
1 1
1 1
1 1 1
1
1 1
1 1
11111111
1 1
1 1
1 1
Tabelle VIII (FortseUung) 33 34 35 36 37 38 39
1111
1 1
1
1 1
Byte 6
Bit 40 41 42 43 44 45 46
48 49 50 51 52 53 54
57 58 59 60 61 62 63
PRÜF
C1 C2 C3 C4 C5 C6 C7 C8
51 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
52 | 1 | 1 | 1 | ||||
53 | 1 1 | 1 | 1 | 1 | |||
54 | 1 1 | ||||||
55 | 1 | ||||||
56 | 1 | 1 | |||||
57 | |||||||
1 1
1 1
111111 1 1
1
1 1
1
11111
27 27 27 27 27 27 27 27
Byte
Bit
0 12 3 4 5 6 7
8 9 10 11 12 13 14 15
51 | 1 | 1 1 | 1 | 1 1 1 | 1 1 | 1 | 1 1 | 1 |
52 | 1 | 1 1 | 1 1 | 1 | 1 | |||
53 | 1 | 1 1 | 1 | |||||
54 | 1 | 1 1 | ||||||
55 | ||||||||
56 | ||||||||
57 | 1 | |||||||
58 |
1111
11111111
1111
16 17 18 19 20 21 22 23
1111
11111111
1111
24 25 26 27 28 29 30 31
1 1
1111 11
1111
11111111
1
1
1 1 1
32 33 34 35 36 37 38
1 1
111111
1 1 1
1
Byte
6
6
Bit
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 57 58 59 60 6i 62 63
PRÜF
C, C2 C3 C4 C5 C6 C7 C»
51 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
52 | 1 1 | |||||||||||||||
53 | 1 | 1 1 | 1 | |||||||||||||
54 | 1 | 1 1 | 1 1 | 1 1 | 1 | |||||||||||
55 | 1 | 1 | 1 1 | 1 1 | 1 1 | |||||||||||
56 | 1 | 1 | 1 | 1 | ||||||||||||
57 | 1 | 1 | 1 | 1 | ||||||||||||
58 | 1 | 1 | ||||||||||||||
1111
1 1
1 1
1 1
1 1
1111
11111
20 60 15 Eine Schaltung, die gemäß den Matrizen der Tabellen VII —IX konstruiert ist, besitzt eine größere Wahr scheinlichkeit für das Erkennen eines Dreifachfehlers als eine gemäß dem üblichen Hamming-Code aufgebaute Schaltung. Die Kriterien können auch auf andere Codes 5 angewendet werden. Die Tabelle X veranschaulicht die Gesamtzahl von Eins-Bits in der Matrix (Spalte B) und |
8 9 |
r | A Korrektur von H (D (D (;)··· |
643 16 die durchschnittliche Anzahl von Eins-Bits in jeder Zeile (Spalte C) für einige andere Codes, welche durch die Erfindung umfaßt werden; weitere sind für den Fachmann offenbar. Die ungeradzahligen, für jeden Code verwendeten Kombinationen (i) sind in der Spalte A angegeben. Die Spalte D zeigt die Mindestanzahl von Stufen. |
C
I der Durchschnitt] Anzahl v. 1-Bits in H (Zeilen) |
[log, 4] j [log, 7] I |
Tabelle X | IO | 4 5 |
(D + (D
(D + 9/(D*) |
4 6.4 |
[log, 7] P | |
π A | 11 | 5 | (D + (D |
B
Gesamtzahl 1-Bits in H |
7 | [log, 8] 3 1 |
12 14 |
16 | 5 | (D+ (D+ (D | 16 32 |
8 | [log, 9] fs I |
15 | 20 | 6 | (D + i6/(D | 35 | 9 | [log, 11] 1 |
16 | 24 | 6 | (D+ (D | 40 | 11 | I [log, 15] i |
22 | 32 | 6 | (D+ (D+ 4/(D | 54 | 14.3 | [log, 15] |
26 | 36 | 7 | (D+ 32/(D | 66 | 14.7 | [log, 17] |
30 | 40 | 7 | (D+ (D+ 'AD | 86 | 16.7 | [log, 23] :,■ |
39 | 48 | 7 | (D + (D η 'MD | 103 | 22.4 | [log, 26] ; |
43 | 64 | 7 | (D+ (D ^ '3/(D | 117 | 25.3 | ■i [log, 27] :; |
47 | 72 | 8 | (?) + (8D + 8/(D | 157 | 27 | [log, 32] |
55 | 8 | (D + (D + 16/(5) | 177 | 32 | ||
72 | 216 | |||||
80 | 256 | |||||
Fortsct/ung | k | Γ | 17 | (!) | 20 | von H (ί)- |
60 643 | 18 | j | D |
/t | 80 | 8 | Ο | + 24/(D | B Gesamtzahl der 1-Bits in H |
C Durchschnitt] Anzahl v. I-Bits in //(Zeilen) |
[log, 37] | |||
88 | 88 | 8 | A Korrektur <;> <;) |
(!) | + »β> | 296 | 37 | [log,, 42] | ||
96 | 96 | 8 | O + | (!) | + 40/(D | 336 | 42 | [log„ 47] | ||
104 | 104 | 8 | O + | (!) | + 48/(D | 376 | 47 | [log, 52] | ||
112 | 112 | 8 | O + | (!) | + (D | 416 | 52 | [log, 57] | ||
120 | 120 | 8 | O + | C) | + (?) + (?) | 456 | 57 | [log, 64] | ||
128 | 121 | 9 | O + | C) | 512 | 64 | [log, 52] [log, 54] |
|||
130 | 128 | 9 | B) + | + 44/(D | 446 | 51.7 | ||||
I i37 | C) + | 481 | 53.4 | |||||||
C) + |
*) Die Schreibweisey/(j) besagt, daßy Kombinatioinen aus allen möglichen Kombinationen (') verwendet werden.
Unter Bezug auf F i g. 3 werden nun der Prüfbitgenerator
2 und der Fehlerdetektor 5 beschrieben. Da die beiden Vorrichtungen ähnlich sind, dient Fig.3 zur
Darstellung beider, wobei in der einen Schaltung; die Eingänge mit D und die Ausgänge mit C bezeichnet
werden, während in der anderen Schaltung die Eingänge mit Dund Cund die Ausgänge mit 5bezeichnet werden.
Der Prüfbitgenerator 2 überwacht die Informationsbits DO bis D 63 zur Erzeugung von Prüfbits Ci bis C8.
Antivalenz-Glieder Vl bis -V55 bilden eine erste Stufe,
die Antivalenz-Glieder V56 bis V79 eine zweite Stufe,
und die Antivalenz-Glieder V80 bis V87 eine dritte e>o
Stufe. Die Gesamtanzahl der vorgesehenen Antivaienz-Glieder wird durch die Anzahl der Eins-Bits in der
Matrix der F i g. 2 bestimmt. Die Tabelle X zeigt, daß für einen (72, 64)-Code 216 Eins-Bits in der Matrix
vorhanden sind, die sich in acht Zeilen mit je 27 Eins-Bits μ aufgliedern. Für Antivalenz-Glieder mit drei Eingängen
sind 87 Antivalenz-Glieder erforderlich, um alle Syndrombits in den drei Stufen zu erzeugen. Beispielsweise
weist das Antivalenz-Glied -Vi die drei Informationsbiteingänge DO, Dt, D2 entsprechend
den ersten drei Bits DO, Dl, D2 in der Zeile 51 der
Matrix in Fig.2 auf. Das Ausgangssignal des Antivalenz-Gliedes
Vi wird dem Antivalenz-Glied V56 zugeführt, welches auch ein Signal vom Antivalenz-Glied
¥2 erhält (dem die Bits D 3, D 4 und D 5 zugeführt werden), sowie von dem Antivalenz-Glied -V4
(dem die Bits D 6 und D 7 zugeleitet werden). Schließlich liefert das Antivalenz-Glied V80 ein
Prüfsignal Ci als Funktion aller Informationsbits, die durch Eins-Bits in der Zeile 51 der Matrix angezeigt
werden. Die Wahl eines Antivalenz-Gliedes mit drei Eingängen ist ganz willkürlich, und die gebräuchlicheren
Antivalenz-Glieder mit zwei Eingängen sind gleichfalls verwendbar. In diesem Fall sind mehr Antivalenz-Glieder
erforderlich. Einige Eingänge zu den Antivalenz-Gliedern, z. B. Eingänge zu den Antivalenz-Gliedern V4
und -VM2, werden in dem Prüfbilgenerator 2 nicht
verwendet.
Der Fehlerdetektor 5 ähnelt in seiner Konstruktion dem Prüfbitgenerator 2, mit der Ausnahme, daß er
sowohl die Informationsbits DO bis D 63 als auch die Prüfbits Ci bis CS empfängt und feststellt, ob die
gerade Parität mit Bezug auf jede Codegruppe -, aufrechterhalten wurde. Syndromsignale auf den Leitungen
51 bis 58 zeigen an, ob für die entsprechende
Codegruppe eine ungerade oder gerade Parität vorliegt. Die Antivalenz-Glieder -^l bis V87 sind in ähnlicher
Weise wie in dem Prüfbitgenerator 2 verbunden, mit der ι υ Ausnahme, daß die Eingänge der Antivalenz-Glieder,
die in jener Schaltung nicht gebraucht werden, mit den Eingängen Ci bis CS des Fehlerdetektor 5 verbunden
sind. Diese Verbindungen werden durch die Eins-Bits in den Prüfbitteilen Ci bis Ci der Matrix von Fig. 2 π
bestimmt, von denen jedes mit einem der Antivalenz-Glieder verbunden ist.
Mit Bezug auf F i g. 4 wird nun der Fehlerlokalisator 11 beschrieben. Der Fehlerlokalisator überwacht die
Syndromsignale Sl bis 58, welche duich Eins-Bits
anzeigen, ob die entsprechende Codegruppe ungerade
Paritat hat. Der Fehlerlokalisator 11 gibt ein Signal auf
eine der »Bit fehlerhaft«-Leitungen DO' bis D63' sowie
CV bis C8', um anzuzeigen, daß das dieser Leitung
entsprechende Informations- oder Prüfbit unrichtig ist und korrigiert werden muß. Der Fehlerlokalisator 1!
umfaßt zweiundsiebzig UND-Glieder Ai bis A 72, entsprechend den zweiundsiebzig Spalten der Matrix in
Fig.Z Beispielsweise empfängt das UND-Glied ΑΛ Eingangssignale von den Leitungen S 1, 52 und 54
sowie »Einzelfehler«, um ein Signal auf die DO'-Leitung
zu geben^Ein zusätzliches Eingangssignal wird von der Leitung 55 geliefert, um in Abwesenheit eines Signals
einen fehlerhaften Betrieb zu verhindern. Invertierte
Signale 51 bis 58 werden durch die Inverter 16 bis 23
geliefert Es ist nicht notwendig, UND-Glieder mit vielen Eingängen, wie sie in Fig.4 dargestellt sind,
vorzusehen. Beispielsweise sind UND-Glieder mit zwei Eingängen brauchbar. Zusätzliche und/oder Schaltungen
sind in diesem Falle vorgesehen.
Die Arbeitsweise der Erfindung wird nun mit Bezug auf die Figuren und die folgende Tabelle beschrieben.
1 | DO | Dl | Dl | Di | Di | DS | D6 | D7 .. | D 63 |
II | DO' | DV | DV | D3' | D\ | DS' | D 6' | DT .. | D 63' |
IU |
I | Sammelleitung 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | .. 0 |
I | Sammelleitung 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | .. 0 |
I | Sammelleitung 4 | 0*) | 0 | 1 | 0 | 1 | 0 | 1 | 0 | .. 0 |
III | Sammelleitung 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | .. 0 |
II | Sammelleitung 12 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | .. 0 |
I | Sammelleitung 14 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | .. 0 |
I | Sammelleitung IS | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | .. 0 |
*) Gesendet als eine »1« und falsch empfangen als eine »0«. Tabelle XI (Fortsetzung)
I | Cl | Cl | C 3 | C4 | CS | C6 | Cl | c& |
II | er | er | C 3' | C 4' | CS1 | C 6' | CT | C 8' |
HI | Si | Sl | S4 | SS | 56 | 57 | 58 |
I | Sammelleitung 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
I | Sammelleitung 3 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
I | Sammelleitung 4 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
IH | Sammelleitung 6 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
II | Sammelleitung 12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
I | Sammelleitung 14 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
I | Sammelleitung 15 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
Summarisch betrachtet veranschaulich; die Tabelle Xl den Empfang von vierundsechzig Informationsbits
DO bis D63 auf der Sammelleitung 1, und die Erzeugung von acht Prüfbits Ci bis CS auf der
Sammelleitung 3 durch den Prüfbitgenerator 2. Die beiden Teile werden dem Übertragungsweg 4 als ein
72-Bit-Codewort zugeführt und zu einem Empfänger übertragen, wobei ein Fehler in der Bitposition DO
auftritt. Der Fehlerdetektor 5 überprüft die auf dem Übertragungsweg 4 übertragenen zweiundsiebzig Bits
und erzeugt auf den Leitungen 51 bis 58 der Sammelleitung 6 Syndromsignale, die die Codegruppen
angeben, die von dem Fehler in der Position DO betroffen werden. Der Fehlerlokalisator 11 erzeugt als
eine Funktion der Syndromsignale und des Einzelfehlersignals ein Signal auf der 72-Bit-Sammelleitung 12 zur
Anzeige der Fehlerstelle, und der Fehlerkorrektor 13 invertiert sodann das Bit DO, um ein korrigiertes
Codewort auf die Sammelleitungen 14 und 15 zu geben.
Im einzelnen bilden die Signale auf der Sammellei-
Im einzelnen bilden die Signale auf der Sammellei-
tung 1 Eingangssignale für die folgenden Antivalenz-Glieder im Prüfbitgenerator 2: Vl bis -V8, VlO, V15,
4^22 und V33 in der ersten Stufe; -V56 bis ¥61, -V63,
V65, -V67 und V78 in der zweiten Stufe; und alle Glieder ¥80 bis ¥87 in der dritten Stufe. Als Ergebnis
erscheinen Prüfbitsignale auf den Ausgangsleitungen C6 und C8. Während der Übertragung des Codewortes
Informationsbit-Position DO auf, wodurch ihre Änderung in ein Null-Bit veranlaßt wird. Das Codewort wird
am Ende der Sammelleitung 4 durch den Fehler-Detek- in
tor 5 empfangen, und der geänderte Zustand der Informationsbits DO wird festgestellt durch die
Antivalenz-Glieder Vl und ¥33 in der ersten Stufe, ¥56, -V60 und -V78 in der zweiten Stufe und -V80 und
¥81 und ¥83 in der dritten Stufe festgestellt, so daß Syndromsignaie auf den Leitungen 51, 52 und 54
erscheinen. In Fig. 1 stellt das ODER-Glied 7 einen Fehler fest und das Antivalenz-Glied 8 erkennt aus der
ungeraden Anzahl von Syndromsignalen auf der Sammelleitung 6 das Vorliegen eines Einzelfehlers.
Nach Fig. 4 empfängt der Fehlerlokalisator 11 Eingangssignale auf den Leitungen 51, 52, 54, und die
Einzelfehlerleitung veranlaßt das UND-Glied 36 zur Lieferung eines Signals an die Leitung DO. Der
Fehlerkorrektor 13 kann 72 Antivalenz-Glieder mit zwei Eingängen umfassen, wobei jedes Glied ein
Eingangssignal von der Sammelleitung 4 und ein entsprechendes von der Sammelleitung 12 erhält. Der
Fehlerkorrektor invertiert die Position DO, gibt aber im übrigen das ihm von der Sammelleitung 4 zugeführte jn
Codewort an die Sammelleitungen 14 und 15 weiter.
Zugrundeliegende Prinzipien
Es werden nun die der Erfindung zugrundeliegenden Prinzipien besprochen. Um einen EFK/DFE-Code zu r>
haben, ist 4 die Minimal-Oewichtungsanforderung, was bedeutet, daß drei oder weniger Spalten der Matrix
linear unabhängig sind. Ein Weg, um diese Bedingungen zu erfüllen, ist der, daß man die Spalten der Matrix die
folgenden Beschränkungen erfüllen läßt: in
1. Keine Spalten mit lauter Nullen.
2. Jede Spalte ist unterschiedlich.
3. Jede Spalte enthält eine ungerade Anzahl von Eins-Bits (infolgedessen ungeradzahliges Gewicht). 4-
Die ersten beiden Beschränkungen ergeben einen Code mit der Hamming-Distanz 3. Die zusätzliche dritte
Beschränkung garantiert, daß der so erzeugte Code die Distanz 4 hat. Der Beweis zieht in Betracht, daß die
Modulo-2-Summe von irgend drei Spalten mit ungeradzahligem Gewicht niemals gleich 0 ist. Im allgemeinen
wird die Modulo-2-Vektoraddition irgendeiner geraden Anzahl von Vektoren mit ungeradzahligem Gewicht
immer einen Vektor von geradzahligem Gewicht geben, einschließlich des Vektors mit dem Gewicht 0. Diese
allgemeine Aussage wird für das Erkennen von Doppelfehlern verwendet. Sodann muß man sich
vergegenwärtigen, daß die Gesamtanzahl der Eins-Bits in jeder Zeile der Matrix in Beziehung steht zu der
Anzahl von Logikstufen, die notwendig sind, um das bo
Prüfbit oder das Syndrom dieser Zeile zu erzeugen. Es sei ti die Gesamtanzahl der Eins-Bits in der /-ten Zeile,
und d und S/ seien das Prüfbit und das Syndrombit, wie
es durch die /-te Zeile der Matrix vorgeschrieben ist. Dann gilt: b5
wobei
/ = Anzahl der logischen Stufen, die zur Erzeugung
von Ci erforderlich sind, wenn ein Modulo-2-Addierer mit nur r Eingängen verwendet wird.
/,. = Anzahl der logischen Stufen, die zur Erzeugung
von S1 erforderlich sind, wenn nur ein Modulo-2-Addicrer
mit r Eingängen verwendet wird
[X] ist die kleinste ganze Zahl, die größer als oder
gleich X ist. In praktischen Anwendungen wird ν für eine gegebene Schaltungsfamilie festgelegt. Infolgedessen
ist zur Minimisierung von /s, das Minimum t,
erwünscht. Wenn alle t,(i=i, 2,... ή minimal und gleich
sind, haben wird die schnellste Codierung und Fehlererkennung beim Decodieren. Dies sind die
kritischsten Prozesse bei den Speicheroperationen. Im allgemeinen erfordert der Fall des Codes mit minimalem
ti auch weniger Bauteile für die Implementierung.
Infolgedessen ist die minimale Zahl von /,- für sämtliche 1
sehr wichtig. Die nach diesem Verfahren entworfenen Codes haben immer eine kleinere Anzahl von Eins-Bits
in der Matrix als die Hamming-Codes für EFK/DFE.
Der Entwurf des Codes wird am besten mit Hilfe einer Paritäts-Prüfmatrix beschrieben. Die Wahl der
Spalten der Matrix für einen gegebenen (n, k)-Code gründet sich auf die folgenden drei Beschränkungen:
Jede Spalte muß eine ungerade Zahl von Eins-Bits
haben, d. h., sämtliche Spaltenvektoren haben ungeradzahliges Gewicht.
Die Gesamtzahl der Eins-Bits in der Matrix ist ein Minimum.
Die Anzahl der Eins-Bits in jeder Zeile der Matrix muß der Durchschnittszahl gleichgemacht werden
oder dieser; d. h. der Gesamtanzahl der Eins-Bits in der Matrix //geteilt durch die Anzahl der Zeilen; se
nahe wie möglich kommen.
Wenn r Paritätsprüfbits für k Datenbits verwende!
werden, muß die folgende Gleichung gelten:
Σ (?) > r 4 k
1= I
ι = ungerade
Es läßt sich zeigen, daß dieser Code die gleichi Anzahl von Priifbits verwendet, wie der EFK/DFE
Hamming-Code. Für einen ungekürzten EFK/DFE Hamming-Code gilt:
r,
Σ (H = 2'
< Γ
_ V
i=0
L =
(1)
/ = gerade / = ungerade
daher gilt:
i = ungerade
(7)
Durch Vergleich der Gleichung (4) und (7) bemerkt mian, daß für beide Codes die gleiche Anzahl von r
Prüfbits erforderlich ist. Die Matrix wird wie folgt konstruiert:
ist, k Spalten von allen möglichen (^Kombinationen.
Wenn (j) kleiner als Ar ist, werden alle möglichen! J !Spalten gewählt. Die übrigbleibenden
Spalten werden dann aus allen möglichen!5), usw. herausgenommen; der Prozeß wird fortgesetzt, bis
alle Ar Spalten ausgefüllt sind.
Wenn die Codewort-Länge n= Ar+ r genau gleich ist den Ausdrücken
ι = 1
1. Die(i)Spalten werden jeweils fürdierPrüfbit-Posi- 1 = ungerade
tionen verwendet.
2. Sodann wähle man wenn( 3 (gleich oder größer als k 15 für ein ungerades j<r, dann hat jede Matrix genau
ι = ungerade
r
r
, , r(r-l)(r-2) 3!
ganze Zahl q.
(8)
q Anzahl von Einsen. Wenn für eingewissesy'das π nicht
genau gleich ( D ist, so muß die willkürliche Wahl der
Ii)FaHe die Anzahl der Eins-Bits in jeder Zeile nahe an
die Durchschnittszahl heranführen, wie in Tabelle X gezeigt.
Das Erkennen von Doppelfehlern wird durch die Oberprüfung der Gesamtparität aller Syndrombits
erreicht. Bei einer geraden Anzahl von Syndrombits wird ein Doppelfehler oder eine gerade Anzahl von
Fehlern angenommen. Da angenommen wird, daß alle Fehler statistisch unabhängig sind, werden mehrfache
geradzahlige Fehler so behandelt, als wären sie Doppelfehler: diese Doppelfehlererkennung ist anders
als nach dem Hamming-Code. Im Falle des Hamming-Codes wird ein spezielles Bit, das durch eine Zeile mit
lauter Eins-Bits (n Eins-Bits) in der Matrix erzeugt wird, geprüft, um zu bestimmen, ob ein Einzel- (ungeradzahliger)
oder ein Doppel- (geradzahliger) Fehler auftrat. Das Eliminieren der Zeilen der Matrix, die lauter
Eins-Bits enthalten, verbessert die Geschwindigkeit der Codierung und der Decodierung zur Fehlererkennung.
Ein anderer wichtiger Faktor der Paritäts-Prüfmatrix, der die Geschwindigkeit des Codierens und Decodierens
zur Fehlerfeststellung verbessert, folgt aus der Gesamtanzahl der in der Matrix enthaltenen Einsen.'die
immer geringer ist als bei einer Matrix gemäß dem Hamming-Code. Überdies ist die neue Matrix so
ausgelegt, daß
ti < [A] für alle i,
und das [A] (die in Tabelle I angegebene durchschnittliche Zahl) immer kleiner ist als die Anzahl der Einsen in
der Zeile, die die maximale Anzahl von Einsen in der Matrix des EFK/DFE-Hamming-Codes enthält.
Hierzu 4 Blatt Zeichnungen
Claims (7)
1. Schaltungsanordnung zur Korrektur von Einzelfehlern und zur Erkennung von Doppelfehlern
mit einer Logikschaltung zur Erzeugung der einzelnen Prüfbits aus den jeweils einem Prüfbit
zugeordneten Informationsbits,
dadurch gekennzeichnet, daß jede der den Inforrnationsbits zugeordneten Leitungen (Eingangsleitungen
DO—D63) mit einer ungeraden Anzahl von jeweils ein Prüfbit (C) erzeugenden
Logikanordnungen (F i g. 3) verbunden ist,
und daß alle Logikanordnungen mit einer im wesentlichen gleichen Anzahl von Information^-Eingangsleitungen verbunden sind.
und daß alle Logikanordnungen mit einer im wesentlichen gleichen Anzahl von Information^-Eingangsleitungen verbunden sind.
2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß jeweils einer ungeraden Anzahl
von Logikanordnungen eingangsseitig auch die Prüfbits (Cl-C8) zugeführt werden können
(Fig.3, links unten), so daß ausgangsseitig die Syndrombits (51 —58) erzeugt werden.
3. Schaltungsanordnung nach Anspruch 2, dadurch gekennzeichnet, daß die ungerade Anzahl von
Logikanordnungen, an die die Informationsbitleitungen angeschlossen sind, gleich oder größer als 3 ist,
während sie für die Prüfbitleitungen 1 beträgt.
4. Schaltungsanordnung nach den Ansprüchen 1 oder 2, dadurch gekennzeichnet, daß jede von (,',) der
Informationsbitleitungen (m=3, r= Anzahl der Prüfbits,
r> m) an jeweils m der r Logikanordnungen,
jede der übrigen Informationsbitleitungen bzw. jede von(mf2)von ihnen an m+2 der r Logikanordnungen,
jede der eventuell noch verbleibenden Iriformationsbitleitungen
bzw. jede VOnU + 4)von ihnen an je
/?; + 4 der r Logikanordnungen usw. angeschlossen ist, bis jede Informationsbitleitung mit einer
ungeraden Anzahl aus den r Logikanordnungen verbunden ist.
5. Schaltungsanordnung nach Anspruch 2, dadurch gekennzeichnet, daß für einen 72/64 Code (64
Informationsbits, r=8 Prüfbits) eine dreistufige, aus Exclusiv-ODER-Gliedern mit jeweils drei Eingängen
aufgebaute Schaltung vorgesehen ist.
6. Schaltungsanordnung nach Anspruch 2, dadurch gekennzeichnet, daß die die Syndrombits abgebenden
Ausgänge der Logikanordnungen jeweils mit einem Eingang eines ODER-Gliedes (7) und mit
einem Eingang eines Exclusiv-ODER-Gliedes (8) verbunden sind, so daß der Ausgang des ODER-Gliedes
einen Fehler anzeigt,
daß die Ausgänge des ODER-Gliedes und des Exclusiv-ODER-Gliedes jeweils mit einem Eingang
eines UND-Gliedes (9) verbunden sind, dessen Ausgangssignal (unter Vernachlässigung von Mehrfachfehlern)
einen Einzelfehler anzeigt,
daß der Ausgang des ODER-Gliedes mit einem Eingang eines weiteren UND-Gliedes (10) und der Ausgang des Exclusiv-ODER-Gliedes mit einem invertierenden Eingang des weiteren UND-Gliedes verbunden sind, so daß am Ausgang des weiteren UND-Gliedes (unter Vernachlässigen von Mehrfachfehlern) ein Doppelfehler angezeigt wird,
und daß die Syndromsignale (SI —58) sowie der Ausgang des UND-Gliedes (9) mit den Eingängen einer Fehlerlokalisierungsschaltung (11) verbunden sind.
daß der Ausgang des ODER-Gliedes mit einem Eingang eines weiteren UND-Gliedes (10) und der Ausgang des Exclusiv-ODER-Gliedes mit einem invertierenden Eingang des weiteren UND-Gliedes verbunden sind, so daß am Ausgang des weiteren UND-Gliedes (unter Vernachlässigen von Mehrfachfehlern) ein Doppelfehler angezeigt wird,
und daß die Syndromsignale (SI —58) sowie der Ausgang des UND-Gliedes (9) mit den Eingängen einer Fehlerlokalisierungsschaltung (11) verbunden sind.
7. Schaltungsanordnung nach Anspruch 6, dadurch
gekennzeichnet, daß in der Fehlerlokalisierungsschaltung
(11, Fig.4) für jedes Informationsbit und
für jedes Prüfbit ein UND-Glied (&1—&72) vorgesehen ist, das von den zu dem betreffenden Bit
gehörenden Syndromsignalen und vom Einzelfehlererkennungssignal gesteuert wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US88785869A | 1969-12-24 | 1969-12-24 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2060643A1 DE2060643A1 (de) | 1971-07-01 |
DE2060643B2 DE2060643B2 (de) | 1979-03-22 |
DE2060643C3 true DE2060643C3 (de) | 1979-11-15 |
Family
ID=25392006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2060643A Expired DE2060643C3 (de) | 1969-12-24 | 1970-12-09 | Schaltungsanordnung zur Korrektur von Einzelfehlern |
Country Status (6)
Country | Link |
---|---|
US (1) | US3623155A (de) |
JP (1) | JPS5144767B1 (de) |
CA (1) | CA935931A (de) |
DE (1) | DE2060643C3 (de) |
FR (1) | FR2074917A5 (de) |
GB (1) | GB1315340A (de) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3755779A (en) * | 1971-12-14 | 1973-08-28 | Ibm | Error correction system for single-error correction, related-double-error correction and unrelated-double-error detection |
US3893070A (en) * | 1974-01-07 | 1975-07-01 | Ibm | Error correction and detection circuit with modular coding unit |
US3913068A (en) * | 1974-07-30 | 1975-10-14 | Ibm | Error correction of serial data using a subfield code |
US4005405A (en) * | 1975-05-07 | 1977-01-25 | Data General Corporation | Error detection and correction in data processing systems |
US4159468A (en) * | 1977-11-17 | 1979-06-26 | Burroughs Corporation | Communications line authentication device |
JPS5534817A (en) * | 1978-08-31 | 1980-03-11 | Tokyo Electric Power Co | Converter |
JPS55131860A (en) * | 1979-03-30 | 1980-10-14 | Matsushita Electric Ind Co Ltd | Error correction unit |
JPS57207960A (en) * | 1981-06-17 | 1982-12-20 | Toshiba Corp | Method for adding error correcting code to variable length data |
DE3134831A1 (de) * | 1981-09-03 | 1983-03-10 | Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt | System zur uebertragung digitaler informationssignale |
US4771378A (en) * | 1984-06-19 | 1988-09-13 | Cray Research, Inc. | Electrical interface system |
CA1228677A (en) * | 1984-06-21 | 1987-10-27 | Cray Research, Inc. | Peripheral interface system |
EP0186719B1 (de) * | 1984-12-28 | 1990-06-13 | International Business Machines Corporation | Gerät zum Korrigieren von Fehlern in Speichern |
EP0300139B1 (de) * | 1987-07-20 | 1993-07-07 | International Business Machines Corporation | Fehlerkorrektur-Kode für einen B-bit-pro-Chip-Speicher mit verminderten Redundanz |
US4862463A (en) * | 1987-07-20 | 1989-08-29 | International Business Machines Corp. | Error correcting code for 8-bit-per-chip memory with reduced redundancy |
US4868829A (en) * | 1987-09-29 | 1989-09-19 | Hewlett-Packard Company | Apparatus useful for correction of single bit errors in the transmission of data |
US5283791A (en) * | 1988-08-02 | 1994-02-01 | Cray Research Systems, Inc. | Error recovery method and apparatus for high performance disk drives |
US5218689A (en) * | 1988-08-16 | 1993-06-08 | Cray Research, Inc. | Single disk emulation interface for an array of asynchronously operating disk drives |
JPH02125532A (ja) * | 1988-11-04 | 1990-05-14 | Sony Corp | Bch符号の復号装置 |
GB9213818D0 (en) * | 1992-06-30 | 1992-08-12 | Inmos Ltd | Digital signal comparison circuitry |
US5491702A (en) * | 1992-07-22 | 1996-02-13 | Silicon Graphics, Inc. | Apparatus for detecting any single bit error, detecting any two bit error, and detecting any three or four bit error in a group of four bits for a 25- or 64-bit data word |
US5774481A (en) * | 1995-03-31 | 1998-06-30 | International Business Machines Corporation | Reduced gate error detection and correction circuit |
US5745507A (en) * | 1995-03-31 | 1998-04-28 | International Business Machines Corporation | Systematic symbol level ECC for use in digital memory systems |
JP3234130B2 (ja) * | 1995-05-30 | 2001-12-04 | 三菱電機株式会社 | 誤り訂正符号復号化方法およびこの方法を用いる回路 |
US5768294A (en) * | 1995-12-11 | 1998-06-16 | International Business Machines Corporation | Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address |
US5761221A (en) * | 1995-12-11 | 1998-06-02 | International Business Machines Corporation | Memory implemented error detection and correction code using memory modules |
US6003144A (en) * | 1997-06-30 | 1999-12-14 | Compaq Computer Corporation | Error detection and correction |
FR2823035B1 (fr) * | 2001-04-03 | 2003-07-11 | St Microelectronics Sa | Code de detection et/ou de correction d'erreurs a haute efficacite |
US7117420B1 (en) * | 2001-05-17 | 2006-10-03 | Lsi Logic Corporation | Construction of an optimized SEC-DED code and logic for soft errors in semiconductor memories |
FR2875352B1 (fr) * | 2004-09-10 | 2007-05-11 | St Microelectronics Sa | Procede de detection et de correction d'erreurs pour une memoire et circuit integre correspondant |
US7653862B2 (en) * | 2005-06-15 | 2010-01-26 | Hitachi Global Storage Technologies Netherlands B.V. | Error detection and correction for encoded data |
US7962837B2 (en) * | 2007-09-13 | 2011-06-14 | United Memories, Inc. | Technique for reducing parity bit-widths for check bit and syndrome generation for data blocks through the use of additional check bits to increase the number of minimum weighted codes in the hamming code H-matrix |
FR2941806A1 (fr) | 2009-02-03 | 2010-08-06 | Commissariat Energie Atomique | Procede de codage correcteur d'erreurs avec bits de parite totale et procede de detection d'erreurs multiples |
US9450613B2 (en) | 2010-11-10 | 2016-09-20 | Infineon Technologies Ag | Apparatus and method for error correction and error detection |
US8539321B2 (en) | 2010-11-10 | 2013-09-17 | Infineon Technologies Ag | Apparatus and method for correcting at least one bit error within a coded bit sequence |
US9800271B2 (en) * | 2015-09-14 | 2017-10-24 | Qualcomm Incorporated | Error correction and decoding |
JP2018074545A (ja) * | 2016-11-04 | 2018-05-10 | 富士通株式会社 | データ処理システム及びデータ処理装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL267314A (de) * | 1960-03-02 | |||
US3458860A (en) * | 1965-03-08 | 1969-07-29 | Burroughs Corp | Error detection by redundancy checks |
US3411135A (en) * | 1965-03-15 | 1968-11-12 | Bell Telephone Labor Inc | Error control decoding system |
US3416132A (en) * | 1965-04-05 | 1968-12-10 | Ibm | Group parity handling |
US3504340A (en) * | 1967-05-08 | 1970-03-31 | Ibm | Triple error correction circuit |
-
1969
- 1969-12-24 US US887858A patent/US3623155A/en not_active Expired - Lifetime
-
1970
- 1970-10-27 FR FR7040287A patent/FR2074917A5/fr not_active Expired
- 1970-11-11 JP JP45098826A patent/JPS5144767B1/ja active Pending
- 1970-11-13 GB GB4502370A patent/GB1315340A/en not_active Expired
- 1970-12-08 CA CA100056A patent/CA935931A/en not_active Expired
- 1970-12-09 DE DE2060643A patent/DE2060643C3/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE2060643B2 (de) | 1979-03-22 |
DE2060643A1 (de) | 1971-07-01 |
CA935931A (en) | 1973-10-23 |
FR2074917A5 (de) | 1971-10-08 |
US3623155A (en) | 1971-11-23 |
GB1315340A (en) | 1973-05-02 |
JPS5144767B1 (de) | 1976-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2060643C3 (de) | Schaltungsanordnung zur Korrektur von Einzelfehlern | |
DE2260850C2 (de) | Schaltungsanordnung zur Erkennung von Einzel- und Mehrfachfehlern und zur korrektur von Einzel- und bestimmten Mehrfachfehlern | |
DE3125048C2 (de) | ||
DE2425823A1 (de) | Einrichtung zur fehlererkennung und fehlerkorrektur | |
DE2132565C3 (de) | Umsetzer | |
DE2916710C2 (de) | ||
DE3882223T2 (de) | Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden. | |
DE2724409A1 (de) | Datenverarbeitungssystem | |
DE2914515A1 (de) | Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem | |
DE2456709C2 (de) | Schaltungsanordnung zur Fehlererkennung und -korrektur | |
DE2622184A1 (de) | Fehlerkorrekturverfahren | |
DE102006005817B4 (de) | Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder | |
DE2659031B2 (de) | Fehlerkorrektur- und -Steuersystem | |
DE2941868A1 (de) | Anordnung zur vornahme einer fehlerkorrektur und fehlerermittelung bei binaerwoertern | |
DE2916619A1 (de) | System zum uebertragen binaerer daten ueber eine anzahl von kanaelen | |
DE2157829C2 (de) | Anordnung zum Erkennen und Korrigieren von Fehlern in Binärdatenmustern | |
DE2405657A1 (de) | Einrichtung zur feststellung von uebertragungsfehlern fuer ein pcm-system | |
DE2053836C3 (de) | Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen | |
EP0219917A2 (de) | Vermittlungsanlage mit Fehlerkorrektur | |
DE2608435A1 (de) | Vorrichtung zur fehlererkennung und fehlerkorrektur in digitalen datenverarbeitungsanlagen | |
DE1250163B (de) | Einrichtung zur Paritätsprüfung von Speicherworten | |
DE2320354C2 (de) | Schaltungsanordnung zur Erkennung und Korrektur von Fehlern in Bitgruppen | |
DE2047868A1 (de) | Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes | |
DE3784684T2 (de) | Fehlerkorrekturdecoder fuer schnelle behandlung von pufferueberlaeufen. | |
DE2000565A1 (de) | Fehlerkorrigierendes System zur Korrektur mehrfacher,zufaelliger Fehler |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |