DE2060643B2 - Schaltungsanordnung zur Korrektur von Einzelfehlern - Google Patents

Schaltungsanordnung zur Korrektur von Einzelfehlern

Info

Publication number
DE2060643B2
DE2060643B2 DE2060643A DE2060643A DE2060643B2 DE 2060643 B2 DE2060643 B2 DE 2060643B2 DE 2060643 A DE2060643 A DE 2060643A DE 2060643 A DE2060643 A DE 2060643A DE 2060643 B2 DE2060643 B2 DE 2060643B2
Authority
DE
Germany
Prior art keywords
bits
error
bit
information
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE2060643A
Other languages
English (en)
Other versions
DE2060643C3 (de
DE2060643A1 (de
Inventor
Mu-Yue Poughkeepsie Hsiao
Eugene Pleasant Valley N.Y. Kolankowsky (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 DE2060643A1 publication Critical patent/DE2060643A1/de
Publication of DE2060643B2 publication Critical patent/DE2060643B2/de
Application granted granted Critical
Publication of DE2060643C3 publication Critical patent/DE2060643C3/de
Expired legal-status Critical Current

Links

Classifications

    • 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)
  • 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 VV. Wesley Peterson (The MJT. Press 1961). Charakteristisch fbr 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 nus sev.its 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 C3 Werte besitzen, die eine Funktion der drei Informationsbits DO, Dl und D2 sind.
Tabelle I
ν» (Stand der Technik)
Hamming EFK/EFE (6, 3)-Code
k Informalioüsbits
do r>\ οι
in-k) Prüfbits
Cl Cl C3
I 0 0
0 1 0
0 0 I
52
53
Die Gesamtzahl der Bits in dem Codewort ist n,
h-, davon sind Ar Informationsbits und n—k (auch als r bezeichnet) Prüfbits. Der Code wird als (n, £)-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 (6, 3)-Code
OO
Ol
Dl
C\
Cl
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 von Informationsbits und Prüfbits enthalten muß. Alle Codegruppen sind also untereinander verschieden, d. h. es wird niemals die gleiche Auswahl von Informationsbits tür Erzeugung von mehreren Prüfbits verwendet. Diese Beziehungen schreiben Antivalenz-Funktionen vor. Jedes Informationsbit, das in der Matrix durch eine 1 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 D2 den Wert 1 besitzt. Das Prüfbit Cl besitzt den Wert 0. wenn entweder beide Informationsbits DQ und D 2 den Wert I besitzen oder diese beiden Informationsbits den Wert 0 aufweisen. Die Wahl einer ungeraden Parität würde die entgegengesetzten Werte für das Prüfbit Cl liefern. Anders ausgedrückt ist der Wert des Prüfbits C1 gleich der Antivalenzfunktion der Informationsbits DO und D2 bei gerader Parität. In ähnlicher Weise ist das Prüfbit C2 gleich der Antivaleiizfunktion der Informationsbits DO, Dl und D2.
Wenn bei der Übertragung der Informaiion, die in dem Codewort aus den Bits DO, D I, 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.
Tabelle III
(Stand der Techni1!)
Beispielsweise liefert ein Fehler im Informationsbit DO ein Syndrom Sl, 52 und SJ (Paritätsfehler in den Codegrup^en Sl und S2). Da das Informationsbit Dk das einzige Bit ist, das den Codegruppen S1 und 52 und
■*> nicht S3 angehört, ist es das fehlerhafte Bit,
Während bisher von einem Code zur Korrektur von Einzeifehlern und zur Erkennung von Einzelfehlern ausgegangen wurde, ist die Erkennung von Doppelfehlern wünschenswert. Nach dem Stand der Technik kann
hi 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.
Tabelle IV
(Stund der Technik)
Hamming EFK/DFE (7, 3)-Code
DO DX Dl CI C2 C 3 Syndrom
s\ 1 0 I 1 0 0 I
52 I I I 0 1 0 1
53 0 1 1 0 0 1 0
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 I anzeigt, daß die Parität der Codegruppe falsch ist.
D!) D\ Dl CI C 2 C ■3 CT
! 0 1 ! IJ 0 η
51 1 1 I 0 I 0 Ü
52 0 1 1 0 0 1 0
1
1 1 1 1 1 I
53
57"
Ohne das zusätzliche Bit CTwürde durch zwei Fehler in einer Codegruppe (z. B. durch einen Fehler in den Bits 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) 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 I einen Eingang eines Antivalenz-Gliedes dar und die Schaltung zur Fehlerlokalisation 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ß 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ärk'r komplizierend wirkender Faktor, da die ihm entsprechende Zeile in der Tabelle IV lauter Einsen enthält. Dies bedeu.et viele Eingänge und eiren langen Signalpfad.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Schaltungsanordnung zur Einzelfehlerkorrektur 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.
Die Erfindung erzielt sehr wirksam die Vorteile der Schaltungen nach dem Stand der Technik mit wesenilich 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 Informationsbils (beispielsweise die Informationsbits DO und D! 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.
Tabelle V
EFK/DFE (7, 3)-Code
D η υ \
Dl (I
ei
Ci (4
0 0
0 0
1 0 0 I
Durch Überwachen aller vier Codegruppen .S' 1 bis S 4 auf gerade Parität zeigt das resultierende Syndrom.
Tabelle Vl
(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 Einzelfehlet durch Decodieren der Syndrome gemäß der in ihner gemeinsamen Bits leicht lokalisiert werden. Da eir Fehler beispielsweise in dem Informationsbit DO eir Syndrom .91. .S"2. S3. .S'4 (ungerade Paritäten wcrdcr für die Codegruppen .SI. .S'2 und .S'4 festgestellt erzeugt, kann ein UND-Glied durch Signale durchgeschaltet werden, die ungerade Paritäten für die Codegruppen .S'1..S'2 und .S'4 (und. wenn das erwünschl ist, eine gerade Parität für .S' 3) anzeigen, um das Bit DC als dasjenige zu identifizieren, das korrigiert werder muß.
Üie genaue Wahl der iiitzuordnung ist wichtig. Uit Tabelle Vl zeigt Zuordnungen, wie sie für einen (22 16)-EFK/DFD-Code gewählt werden können.
/)0 D\ 1)1 Di 1)4 1)5 Db Dl DH 1)9 D U) /) 11 />I2 DM DU D 15 (I Cl Ci C4 CS Cd
.Sl I
.S'2 1
V 3 I
.S'4 I
.V 5 1
.S'6 0
1 1
1 (I
0 0
0 0
0 I
1 I
0 0
I I 0 0 0 I 0 1 0 (I 0 0 0 9
0 (I I (I 0 0 (I 1 0 0 0 (I 9
I 0 0 0 1 I I (I 0 1 0 (I (I 9
1 1 (I 1 1 1 0 (I (I 1 (I 0 Kl
1 1 1 1 0 0 0 0 (I 0 1 0 Kl
I 0 1 1 (I (I 1 (I 0 0 0 (I 1 9
Während einige wesentliche 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 DO fünf Codegruppen zugeordnet ist. obwohl nur 15 der verfügbaren 20 Kombinationer von drei Codegruppen benutzt wurden. Die Schaltung, die durch die Matrix der Tabelle Vl charakterisiert ist, kann (zur Verringerung der Anzahl von Eingängen um 2) optimiert werden, indem die .bpaite 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 mit 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 Permutationer. 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 iuit drei Eingängen erfordert und nur Kombinationen von drei Codegruppen benutzt werden.
Tabelle DO VlI Dl D3 D4 05 Dd Dl D8 D9 DlO DIl D12 D13 D 14 D 15 Cl Cl C3 C4 C5 Cd 9
1 Dl 1 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 9
51 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 9
52 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 9
53 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 1 0 0 9
54 0 0 r\
U
i
U
0 0 1 0 1 1 1 1 1 0 0 0 0 0 ο 1 0 9
55 0 J 1 1 1 I 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1
56 0
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. Dab^i können die nach dem Stand der Technik notwendigen Maßnahmen zur Erkennung eines Doppelfehlers, nach denen die Gesamtanzahl aller Eingangssignale einer I.ogikanordnung 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 Spezialprüfbits ein den anderen gleichwertiges Prüfbit vorgesehen, dessen Berechnung sich also nur aus einer begrenzten Anzahl von Informationsbits ergibt. Hierdurch wird die Prüfbiter /eugung vereinfacht und die Zeit /ur Erzeugung der Prüfbits kürzer, da weniger logische Stufen durchlaufen werden müssen.
Das Merkmal, daß alle Prüfbiterzciigungs-Logikanordnungen mit einer im wesentlichen gleichen Anzahl von Eingangsleitungen verbunden sind, führt zu einer Vereinheitlichung der Logikanordnungen, welche die bekannten Vorteile bei der Erzeugung und Wartung ergibt.
Eine vorteilhafte Weiterbildung der Erfindung ist dadurch gekennzeichnet, daß die Logikanordnungen auch zur Erzeugung der Syndrombits verwendet weisen 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, 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:
Fig. I 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 F i g. 1 vorgesehenen Verbindungen veranschaulicht.
Fig. 3 ein Schaltbild des Fehlerdetektors und eines Prüfbitgenerators,
F i g. 4 ein Schaltbild des Fehlerlokalisators.
F i g. 1 zeigt, daß die auf der Eingangssammelleitung 1 vorhandenen 64 Informationsbits DO bis D63 einem Prüfbitgenerator 2 zugeführt werden, der 8 Prüfbits Cl 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 ungeradzahiige 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 10 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 Il verbunden, der Fehleranzeigen DO' bis D 63' und CV bis CS' den 72 Fehleranzeigeleitungen 12 zuführt, die mit einem Fehlerkorrektor 13 verbunden sind. Der Fchlerkorrektor 13 kombiniert einander entsprechende Fchleranzeigen und Codewortpositiionen, um korrigierte Informationsbits 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 Pruibitgenerator 2, den Prufdetektor 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 C8, und ferner aufgeteilt in 9 gleiche Abschnitte (Bytes) mit der Benennung B 1 bis »PRÜF«, wobei jeder Abschnitt (aus Gründen des Aufbaus, die später besprochen werder) 8 Bits umfaßt. Jedes der Prüfbits Cl bis C8 gehört zu einer jeweils anderen von 8 Codegruppen S 1 bis S8, die in der Matrix als Zeilen S 1 bis 58 bezeichnet sind. )edes 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 Cl die Antivalenzfunktion der Informationsbits DO bis D7, 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, D20 usw. und des Prüfbits Cl durchgeführt. Das der Prüfbitgenerator 2 die Prüfbits CI 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 ungeradzthlige 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 Syndrom-Untermengen unterschieden werden können.
Da die Fins-Bits in der Matrix der F i g. 2 die Schaltungen zur Durchführung der i'rü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 Antivjlenzgliedern, die bestimmt ist durch die Anzahl der für jede Schaltung vorhandenen Eingänge. Wenn beispielsweise jedes Antivalenz-Glied drei hingänge hat, kann die maximale Anzahl von durch das Syndromsignal 5 I durchlaufenen Stufen als drei berechnet werden, gemäß der Beziehung: Anzahl der Stufen = log, ίΛ wobei ν die Anzahl der Eingänge zu jedem Antivalenz-Glied und /, die Gesamtanzahl von Eingängen für jenes Syndrom ist. (Im Falle eines 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 verwendete 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 Iiitbrmations- 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 /7) zusammengefaßt werden, v/ic folgt ist:
I)
Für ni = 3 müssen sechsundfünfzig lnformationsbits drei Codegruppen zugeordnet werden, bevor irgendweiche fünf Codegruppen zugeordnet werden. Die letzte Zuordnung nähert sich, wird aber nicht gleich!' I. Die Matrix der F i g. 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 öl, ß2 usw. bis »PRÜF« gründet. Die Unterteilungen in Bytes erleichtern die arithmetischen und logischen Operationen in Datenverarbeitungssystemen, welche Teile von Codc'vorten 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 B I dadurch gezeigt ist, daß in der Codegruppe 51 acht Eins-Bits vorgesehen sind, für das Byte Ö2 dadurch, daß acht Bits in der Codegruppe 52 vorgesehen sind usw. Nachdem diese acht Bits wie in Fig. 2 dargestellt vorgesehen sind, werden die obigen Kriterien zu dem Zweck angewendet, eine optimale Struktur hinsichtlich der Bauteile zu erhalte ι.
Wenn auch die Fig. 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)-EFK/DFE Code sind in den Tabellen VIII und IX gezeigt.
Tabelle VIII
Byte 1
Bit
0 12 3 4 5 6
9 10 11 12 13 14
16 17 18 1<> 20 21 22 23
25 26 27 28 2« 30 31
33 34 35 36 37 38 39
51 1 I I 1 1 1
52 111
53 111
54 1
55 1
56 1 1
57 1 ι
58 1 I
Tabelle VIII (Fortsetzung)
1 1 I
1 1 I I I
I 1 I
1 I ι
1 1 1 I I
1 I
1
1 1
11111111 I 1
1 1
1 I
I 1 I
Byte 6
Bit
40 41 42 43 44 45 46
51
52 1
53 1 1
54 I 1 I
55 I 1 I
56 1 I I 1 I I 1 I
57 III
58 III
4H 4«> 50 51 52 53 54
I 1 i
I 1 I
1 I I
1 I I
I 1 I I 1 I I i I I 5(i 57 58 5l) W) 61 62 6.1
I I
I 1
1
I I
I I
1 1 i I I 1
!•RUF
'Ί C C1 C1 Cj C6 C- Cs
27 21 27 27 27 27 27 27
Tabelle IX
Byte I
Bit
12 3 4 5
8 9 10 H 12 13 14
16 17 18 19 20 21 22 23
24 25 2(i 27 28 29 30 31
32 33 34 35 36 37 38
Sl 1111 1 1
S2 1111 1 1
S3 1 I I 1
S4
55
S6
Sl
1 1
1111
11111 1111
1111 1 I 1111
1111
1111 1 1
1 1 1 1 I 1
11111111
1111
Tabelle IX (Fortsetzung)
Byte 6
Bit
40 41 42 43 44 45 46
48 49 50 51 52 53 54 56 57 58 59 60 61 62 63
PRÜF C| C
C1 C4 C5 C„ C7
S2 S3 S4 S5 S6 Sl SS
1111
1
1
1 11111
1 1
1 1
20 60
15
643 16 CD 1
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 ί
angewendet werden. Die Tabelle X veranschaulicht die
Gesamtzahl von Eins-Bits in der Matrix (Spalte B) und
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! ,!,(sind in der Spalte
A angegeben. Die Spalte D zeigt die Mindestanzahl von
Stufen.
DurchschnitU /,,. (S /r.) ύ
Anzahl v. 1-Bits §
in H (Zeilen) |
Tabelle X 4 [lo* 4] I
η k r A B 6.4 [log, 7] I
Korrektur von H
(D (D (;)■■■
Gesamtzahl der
1-Bits in H
7 [log, 7] §
12 8 4 (D + (D 16 8 [logv 8] %
14 9 5 (D + 9/(*)*) 32 ''?·'
ψ
15 IO 5 (D + (D 35 9 [Iogv 9] ΐ
16 II 5 (D+ (D+ (D 40 11 (log. Π]
22 16 6 (?) + 16/(5) 54
26 20 6 (?) + (J) 66
30 24
39 32 7 (])
36
40
(D + (D + 9/(0
55 48 7 Q) + (D
64 8
72
103
117
157
177
216
256
14.3
14.7
16.7
22.4
25.3
[log,. 151
[log, 15]
[log, 17]
[log,. 23]
[log,. 26]
[log, 27]
Tine
Fortsetzung 17 H 20 ) 60 643 18 D
U1 <S Ir1)
η k r 24/(» B
Gesamtzahl der
I-Bits in H
C
Durchschnitt!
Anzahl v. I-Bits
in //(Zeilen)
[log,, 37] I
88 80 8 A
Korrektur von
(;) (5)
296 37
(?) + (5) +
96
104
88
96
(Ϊ) +(S)+ 32/(J)
40/(J)
112 104 8 (*) + (I) + 48/(*)
120 112 8 (?) + (?)+ (S)
130 121 9 Q) -< (I) + 37/(9 5)
137 128 9 (?) + (D + 44/(S)
etc.
*) Die Schreibweise j/(') besagt, daß J Kombinationen aus allen möglichen Kombinationen (') verwendet werden.
336
376
416
456
512
446
481
42 47 52 57
64 51.7
53.4
Dog, 42]
Dog, 47]
Dog, 52]
[log, 57]
[log, 64]
Dog, 52]
[Iogv 54]
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 5 bezeichnet werden. Der Prüfbitgenerator 2 überwacht die Informationsbits DO bis D 63 zur Erzeugung von Prüfbits CX bis C 8. Antivalenz-Glieder-Vl bis-^55 bilden eine erste Stufe, die Antivalenz-Glieder ¥56 bis ¥79 eine zweite Stufe, und die Antivalenz-Glieder ¥80 bis -V87 eine dritte Stufe. Die Gesamtanzahl der vorgesehenen Antivalenz-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 -YX die drei Informationsbiteingänge DO, Di, D2 entsprechend den ersten drei Bits DO, DX, D2 in der Zeile 51 der Matrix in Fig.2 auf. Das Ausgangssignal des Antivalenz-Gliedes V-i wird dem Antivalenz-Glied ¥56 zugeführt, welches auch ein Signal vom Antivalenz-
« Glied ¥2 erhält (dem die Bits D3, D4 und D5 zugeführt werden), sowie von dem Antivalenz-Glied "V4 (dem die Bits D6 und D7 zugeleitet werden). Schließlich liefert das Antivalenz-Glied -V80 ein Prüfsignal Cl als Funktion aller Informationsbits, die
M) 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-Glie der erforderlich. Einige Eingänge zu den Antivalenz- Gliedern, z. B. Eingänge zu den Antivalenz-Gliedern -K4 und -V* 12, werden in dem Prüfbitgenerator 2 nicht verwendet.
Der Fehlerdetektor 5 ähnelt in seiner Konstruktion dem Prüfbitgenerbtor 2, mit der Ausnahme, daß er sowohl die Informationsbits DO bis D63 als auch die Prüfbits Cl bis C8 empfängt und feststellt, ob die gerade Parität mit Bezug auf jede Codegruppe c, 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 -VM bis -YS7 sind m ähnlicher Weise wie in dem Früfbiigenerator 2 verbunden, mit der Ausnahme, daß die Eingänge der Antivalenz-Glieder, die in jener Schaltung nicht gebraucht werden, mit den Eingängen Cl bis C8 dps Fehlerdetektors 5 verbunden sind. Diese Verbindungen werden durch die Eins-Bits in den Prüfbitteilen Ci bis Ct der Matrix von Fig.2 is 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 durch Eins-Bits anzeigen, ob die entsprechend^ Codegruppe ungerade
Tabelle XI
Parität hat Der Fehlerlokalisator 11 gibt ein Signal auf eine der »3it fehlerhaftw-Leitungen DO' bis D63' sowie CY bis CS', um anzuzeigen, daß das dieser Leitung entsprechende Informations- oder Prüfbit unrichtig ist und korrigiert werden muß. Der Fehlerlokalisator 11 umfaßt zweiundsiebzig UND-Glieder Ai bis Λ 72, entsprechend den zweiundsiebzig Spalten der Matrix in F i g. 2. Beispielsweise empfängt das UND-Glied A 1 Eingangssignale von den Leitungen 51, 52 und 54 sowie »Einzelfehler«, um ein Signal auf die DO'-Leifjng 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 '«ird nun mit Bezug auf die Figuren und die folgende Tabelle jeschrieben.
I OO D\ Dl O3 34 DS Dh 07 .. . Ο63
II DV DY DV D3' O 4' OS' 0 6' DT .. . 0 63'
HI
I Sammelleitung 1 1 0 I 0
I Sammelleitung 3 0 0 0 0
I Sammelleitung 4 0*) 0 1 0
III Sammelleitung 6 0 0 0 0
II Sammelleitung 12 10 0 0
I Sammelleitung 14 10 10
I Sammelleitung 15 0 0 0 0
■) Gesendet als eine »1« und falsch empfangen als eine »0«. Tabelle XI (Fortsetzung) 0 0 0 0 0 0 0
0 0 0 0 0 0 0
I CI Cl C3 CA CS C6 Cl CS
II er CV C3- CA' CS1 C 6' CT CS'
IH 51 Sl 53 SA SS 56 57 58
I Sammelleitung 1 0 0
I Sammelleitung 3 0 0
I Sammelleitung 4 0 0
HI Sammelleitung 6 I I
II Sammelleitung 12 0 0
I Sammelleitung 14 0 0
I Sammelleitung 15 0 0
Summarisch betrachtet veranschaulicht die Tabelle Xl den Empfang von vierundsechzig Informationsbits DO bis D 63 auf der Sammelleitung 1, und die Erzeugung von acht Prüfbits Cl bis C8 auf der Sammelleitung 3 durch den Prüfbitgenerator 2. Die beiden Teile werden dem Übertragungsweg 4 als ein 72-Bit-Codewort ^u^efUhrt 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
0 0 0 0 0 0 0
Wl 0 0 0
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 ϊΐ 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 Sienale auf der Sammellei-
tung t Eingangssignale für die folgenden Antivalenz-Glieder im Prüfbitgenerator 2: Vl bis -V8, VlO, V15, -V22 und -V-33 in der ersten Stufe; -V56 bis V61, ^63, V65, -V67 und V78 in der zweiten Stufe; und alle wobei Glieder -V80 bis -V87 in der dritten Stufe. Als Ergebnis i erscheinen Prüfbitsignale auf den Ausgangsleitungen K1 — C% und CS. 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 VX und V 33 in der ersten Stufe, V56, Vfß und ^78 in der zweiten Stufe und -V80 und V%\ und V83 in der dritten Stufe festgestellt, so daß Syndromsignale auf den Leitungen 51. 52 und 54 erscheinen. In Fig. I stellt das ODER-Glied 7 einen Fehler fest und das Antivalenz-Glied 8 erkennt aus der ungeraden Anzahl von Syndromsignalen auf der Sammelleitung b das Vorliegen eines h'inzelfehlers. Nach F i g. 4 empfängt der Fehlerlokalisator 11 Eingangssignale auf den Leitungen 5 1, 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 Fehlerk jrrektor invertiert die Position D 0. gibt aber im übrigen das ihm von der Sammelleitung 4 zugeführte jo 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 π haben, ist 4 die Minimal-Gewiuhtungsanforderung, was bedeutet, daß drei oder weniger Spalten der Matrix linear unabhängig sind, hün Weg, um diese Bedingungen zu erfüllen, ist der, daß man die Spalten der Matrix die folgenden Beschränkungen erfüllen läßt: -i»
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 ungerad- >o zahligem Gewicht niemals gleich 0 ist. Im allgemeinen wird die Module 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 w) Prüfbit oder das Syndrom dieser Zeile zu erzeugen. Es sei ti die Gesamtanzahl der Eins-Bits in der /-ten Zeile, und C/und 5, seien das Prüfbit und das Syndrombit, wie es durch die Ate Zeile der Matrix vorgeschrieben ist. Dann gilt:
',, = I log,, i, J,
Anzahl der logischen Stufen, die zur Erzeugunj von Cj erforderlich sind, wenn ein Modulo 2-Addierer mit nur ν Eingängen verwendet wird Anzahl der logischen Stufen, die zur Erzcugunj von S, erforderlich sind, wenn nur ein Modulo 2-Addierer mit ν Eingängen verwendet wird
[X] ist die kleinste ganze Zahl, die größer als odei gleich X ist. In praktischen Anwendungen wird ν für eine gegebene Schaltungsfamilie festgelegt. Infolgedes sen ist zur Minimisierung von /,, das Minimum ι erwünscht. Wenn alle t, (/= 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 t, auch weniger Bauteile für die Implementierung Infolgedessen ist die minimale Zahl von /, für sämtliche , 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.
Dnr Entwurf des Codes wird am besten mit Hilfe einer Paritäts-Prüfmatrix beschrieben. Die Wahl der Spalttii der Matrix für einen gegebenen (n, /i)-Codc 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 Wgeteilt durch die Anzahl der Zeilen; so nahe wie möglich kommen.
Wenn r Paritätsprüfbits für * Datenbits verwendet werden, muß die folgende Gleichung gelten:
Σ O > r + k
ι= I
ί = ungerade
Es läßt sich zeigen, daß dieser Code die pleiche Anzahl von Prüfbits verwendet, wie der EFK/'DFE-Hamming-Code. Für einen ungekürzten EFK/DFE-Hamming-Code gilt:
U) = 2
1=0
<r <r
»ι» /j
L = [1OgnIf1.-I)]
(I)
/ = gerade ι = ungerade
daher gilt:
ι = ungerade
(7)
Vergleich der Gleichung (4) und (7) bemerkt man, 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 I \) kleiner als k ist, werden alle möglichen! !!Spalten gewählt. Die übrigbleibenden Spalten werden dann aus allen möglichen! \ I, usw. herausgenommen; der Prozeß wird fortgesetzt, bis alle k Spalten ausgefüllt sind.
Wenn die Codewort-Länge H= k + /genau gleich ist den Ausdrücken
1. Diel I !Spalten werden jeweils für die r Prüfbit-Posi- ,· = ungerade tionen verwendet.
2. Sodann wühle man wenn I ί !gleich oder größer als k ι ~. für ein ungerades /< r, dann hat jede Matrix genau
/ = ungerade
r
r ι 3
r\r - ι )(> -1I
= [I +(','I I- ■■■{', I)] = ganze Zahl </.
q Anzahl von Einsen. Wenn für ein gewissesydas η nicht genau gleich ( list, so muß die willkürliche Wahl der ι'(Fälle 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 Überprü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- (ungeradzahüger) 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, folg! 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ß
/, < [A] für alle/,
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)

Patentansprüche:
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 Informaüonsbits,
dadurch gekennzeichnet, daß jede der den Informationsbits 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 Informations-Eingangsleitungen verbunden sind.
2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß jeweils einer ungeraden Anzahl von Logikanordnungen eingangsseitig auch die Prüfbits (Ci-CS) zugeführt werden können (F i g. 3, iuks unten), so daß ausgangsseitig die Syndrornbits (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 i'm) der Informationsbitleitungen (/n=3, r= Anzahl der Prüfbits, r> /n) an jeweils m der r Logikanordnungen, jede der üb 'gen Informationsbitleitungen bzw. jede von(m r»:lvon ihnen an m + 2 der r Logikanordnungen, jede eier eventuell noch verbleibenden Informationsbitleitungei; bzw. jede voD'm' 4)von ihnen an je /n+ 4 der r Logikanordnungei. 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 (51—58) sowie der Ausgang des UND-Gliedes (9) mit den Eingängen einer Fehlerlokalisierungsschaltung (U) verbunden sind.
7. Schaltungsanordnung nach Anspruch ö, 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.
DE2060643A 1969-12-24 1970-12-09 Schaltungsanordnung zur Korrektur von Einzelfehlern Expired DE2060643C3 (de)

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 true DE2060643B2 (de) 1979-03-22
DE2060643C3 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0073979A1 (de) * 1981-09-03 1983-03-16 TELEFUNKEN Fernseh und Rundfunk GmbH System zur Übertragung digitaler Informationssignale

Families Citing this family (35)

* Cited by examiner, † Cited by third party
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
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
US4862463A (en) * 1987-07-20 1989-08-29 International Business Machines Corp. Error correcting code for 8-bit-per-chip memory with reduced redundancy
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
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
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
US9450613B2 (en) 2010-11-10 2016-09-20 Infineon Technologies Ag Apparatus and method for error correction and error detection
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL296163A (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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0073979A1 (de) * 1981-09-03 1983-03-16 TELEFUNKEN Fernseh und Rundfunk GmbH System zur Übertragung digitaler Informationssignale

Also Published As

Publication number Publication date
FR2074917A5 (de) 1971-10-08
DE2060643C3 (de) 1979-11-15
CA935931A (en) 1973-10-23
US3623155A (en) 1971-11-23
GB1315340A (en) 1973-05-02
JPS5144767B1 (de) 1976-11-30
DE2060643A1 (de) 1971-07-01

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
DE2425823A1 (de) Einrichtung zur fehlererkennung und fehlerkorrektur
DE3125048C2 (de)
DE2456709C2 (de) Schaltungsanordnung zur Fehlererkennung und -korrektur
DE102006005817B4 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE102005022107B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE2217935C3 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht
DE102017103347A1 (de) Verarbeitung von daten in speicherzellen eines speichers
DE102011087634B9 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE2916619A1 (de) System zum uebertragen binaerer daten ueber eine anzahl von kanaelen
EP0400179A1 (de) Verfahren und Vorrichtung zum internen Paralleltest von Halbleiterspeichern
DE2053836C3 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen
DE2047868A1 (de) Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
EP0159403A2 (de) Anordnung zur Korrektur von Bündelfehlern in verkürzten zyklischen Blockcodes
DE69924012T2 (de) Verfahren und vorrichtung für speicherdata-fehlerdetektion und speichermodul-fehlerdetektion
DE102021109391B3 (de) Multibytefehler-Erkennung
DE102019113970B4 (de) Erkennung von adressfehlern
DE102013112020B4 (de) Verfahren und Vorrichtung zum Erkennen von Bitfehlern
DE4300025C1 (de) Verfahren und Einrichtung zur fehlercodierenden Datenübertragung
DE102015118668B4 (de) Fehlerkorrektur
DE102022111624B4 (de) Fehlerkorrektur mit schneller Syndromberechnung
DE19937456C2 (de) Rechner zur Datenverarbeitung und Verfahren zur Datenverarbeitung in einem Rechner
EP0012828A1 (de) Schaltungsanordnung zur Korrektur von bytestrukturierten Fehlern

Legal Events

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