DE2060643A1 - Schaltungsanordnung zur Korrektur von Einzelfehlern - Google Patents
Schaltungsanordnung zur Korrektur von EinzelfehlernInfo
- Publication number
- DE2060643A1 DE2060643A1 DE19702060643 DE2060643A DE2060643A1 DE 2060643 A1 DE2060643 A1 DE 2060643A1 DE 19702060643 DE19702060643 DE 19702060643 DE 2060643 A DE2060643 A DE 2060643A DE 2060643 A1 DE2060643 A1 DE 2060643A1
- Authority
- DE
- Germany
- Prior art keywords
- bits
- code
- bit
- error
- check
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- 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
Böblingen, den 25. November 19
ne-ba
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
Amtliches Aktenzeichen; Neuanmeldung · Aktenzeichen der Anmelderin: Docket PO 969 012
Schaltungsanordnung zur Korrektur von Einze!fehlern
Die Erfindung bezieht sich auf eine Schaltungsanordnung zur Korrektur
von Einzel- und zur Erkennung von Doppelfehlern in Codewörtern mit r Prüfbits, bei der ein optimaler Entwurf eine starke
Vereinfachung der Schaltungen ermöglicht.
Für die Übertragung von Informationsbits (z. B. DO7 Dl und D2)
zwischen zwei Punkten sind viele Verfahren zur Erkennung und Korrektur von Fehlern in den Datenbits vorgeschlagen worden. Diese
Verfahren sind in einer Reihe von Büchern beschrieben/ z. B. in dem Buch "Error Detecting LocjLc for 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 Inforniationsbits als auch in den Prüfbits,
übertragen werden. Bei dem bekannten Hamming-Code bilden jedes
109827/1383
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 C3 Werte besitzen, die eine Funktion
der drei Informationsbits DO, Dl und D2 sind.
Sl | (Stand | der Technik) | Prüfbits ■ |
C3 | |
Hamming | S2 | EFK/EFE (6, | 3)-Code | C2 | 0 |
k | S3 | Informationsbits (n-k) | 0 | 0 | |
DO | Dl d: | 1 | 1 | ||
O | |||||
! Cl | |||||
1 | |||||
0 | |||||
O | |||||
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, k)-Code bezeichnet. In der Tabelle II bilden das
Prüfbit Cl und die Informationsbits DO und D2 die Codegruppe Sl.
Docket PO 969 012
109827/1383
- 3 TABELLE II
DO | (Stand | der Technik) | 3)-Code | C2 | C3 | |
1 | EFK/EFE | (6, | ! Cl | 0 | O | |
Hamming | 1 | Dl | D2 | 1 | 1 | 0 |
O | O | 1 | O | O | 1 | |
Sl | 1 | 1 | 0 | |||
S2 | 1 | 1 | ||||
S3 |
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 eindeutige Sätze von Informationsbits und Prtifbits
enthalten muß. Diese Beziehungen schreiben Antivalenz-Funktionen vor. Jedes Informationsbit, das in der Matrix durch eine
1 bezeichnet ist, stellt ein Eingangssignal und jedes Prüfbit, das in der Matrix durch eine 1 bezeichnet ist, ein Ausgangssignal
dar. Wenn beispielsweise eine gerade Parität angenommen wird, dann hat das Prüfbit Cl den Wert 1, wenn entweder das Informatonsbit
DO oder das Informationsbit D2 den Wert 1 besitzt. Das Prüfbit Cl besitzt den Wert O, wenn entweder beide Informationsbits
DO und D2 den Wert 1 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 Cl gleich der Antivalenzfunktion
der Informationsbits DO und D2 bei gerader Parität. In ähnlicher Weise ist das Prüfbit C2 gleich der Antivalenzfunktion
der Informationsbits DO, Dl und D2. Charakteristisch ist, daß jede Codegruppe mehr als ein Prüfbit enthält.
Wenn bei der übertragung der Information, die in dem Codewort
aus den Bits DO, Dl, D2, Cl, C2 und C3 enthalten ist, ein Einzel-
1 0 9 G 2 7 / 1 3 8 3 Docket PO 969 012
fehler auftritt, spiegelt sich dieser Fell]er 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.
TABELLJ^JIIJ
(Stand der Technik)
DO | Dl | D 2 | C] | C2 | C3 | Syndrom | |
S] | 1 | 0 | 1 | ] | 0 | 0 | 1 |
S2 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
S3 | 0 | 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 1 anzeigt, daß die Parität der Codegruppe falsch ist.
Beispielsweise liefert ein Fehler im Informationsbit DO ein Syndrom
Sl, S2 und S3 (Paritätsfehler in den Codegruppen Sl und S2).
Da das Informationsbit DO das einzige Bit ist, das den Codegruppen
Sl und S2 und nicht S3 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 eine Codewortes
überprüft, wie das in der Tabelle IV dargestellt ist.
Docket PO 969 012
1 0 9 Ü 2 7 / 1 3 8 3
TABELLE _IV
(Stand der Technik)
(Stand der Technik)
Hamming EFK/DPE (7,3)-Code
DO Dl D2
51 1 O 1
52 1 1 1
53 O 1 1
1 1
ST
Cl | C2 | C3 | CT |
1 | O | O | O |
O | 1 | O | O |
O | O | 1 | O |
1 | 1 | 1 | 1 |
Ohne das zusätzliche Bit CT wü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) Bedingung
durch die Anzeige, daß sich die Gesamtparität nicht geändert hat, obgleich eine oder mehrer 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. Im Falle der FehlerprUfschaLtuncjen stellt jede I
einen Eingang eines Antivaltmz-GLLedes dar und die Schaltuncf zur
FehlerLokalIsation erfordert noch zusätzLLche Schaltungen. SeLbst
wann man annimmt, daß Ant L να Lenz-G L Leder mit tnp.hr a Ls zwei ELngängen
verfügbar sind, Lat zu ersehen, daß eLriej große Anzahl von
SchaLLungen vorgesehen werden muH und dun außerdem eLnLye SLqnnLu
weoentLLch längere Wege zurückLöijon mthjoen aLfJ andere. DLn ArböLtsgeschwindigkeit
wird jedoch durch den Uincjsjton zurlickiSuLe ■·
cjenden Weg bestimmt. Das GesamtprUfbit CT iat οLn ütürker kompLL-
Docket PO 969 012
BAD ORIGINAL
zierend wirkender Faktor, da die ihm entsprechende Zeile in der Tabelle IV lauter Einsen enthält. Dies bedeutet viele Eingänge
und einen langen Signalpfad.
Die genannten Nachteile werden vermieden durch eine Schaltungsanordnung
zur Korrektur von Einzel- und zur Erkennung von Doppelfehlern in Codewörtern mit r Prüfbits, die dadurch gekennzeichnet
ist, daß zur Prüfbiterzeugung bzw. Fehlererkennung erfindungsgemäß
jede der den Bits eines Wortes zugeordneten Leitungen an eine ungerade Anzahl aus r sogenannten Tannenbaumschaltungen angeschlossen
ist, die in bekannter Weise aus Antivalenz-Gliedern aufgebaut sind, und daß die Anzahl der an die Eingänge jeder Tannenbaumschaltung
angeschlossenen Bitleitungen im wesentlichen gleich ist.
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 C4, dessen Stelle eindeutig festgelegt ist und das eine willkürliche Anzahl von Informationsbits (beispielsweise
die Informationsbits DO und Dl in der Codegruppe S4) ü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, | DO | 3)- | Code | D2 | Cl | C2 | C3 | C4 |
1 | Dl | 1 | 1 | 0 | 0 | 0 | ||
Sl | 1 | O | 1 | 0 | 1 | 0 | 0 | |
S2 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | |
S3 | 1 | 1 | O | 0 | 0 | O | I | |
S4 | 1 |
Docket po 969 012 109027/1383
Durch überwachen aller vier Codegruppen Sl bis S4 auf gerader Parität
zeigt das resultierende Syndroin (,das eine oder mehrere
ungerade Paritäten enthält,) einen oder mehrere Fehler an. Da jedes
Informations- und Prüfbit einer ungeraden Anzahl von Codegruppen zugeordnet ist, wird ein Einzelfehler (oder ein anderer
ungeradzahliger Mehrfachfehler) durch eine ungerade Anzahl von Paritätsanzeigen der Codegruppen 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 Sl, S2, S~3, S4 (gerade Paritäten werden für die Codegruppen
Sl, S2 und S4 festgestellt) erzeugt, kann ein UND-Glied durch Signale durchgeschaltet werden, die gerade Paritäten für die Codegruppen
Sl, S2 und S4 (und, wenn das erwünscht ist, eine ungerade Parität für S3) anzeigen, um das Bit DO als dasjenige zu
identifizieren, das korrigiert werden muß.
Die genaue Wahl der Bitzuordnung ist wichtig. Die Tabelle VI zeigt
Zuordnungen, wie sie für einen (22, 16) EFK/DFD-Code gewählt werden
können.
Docket PO 969 012 1 0 9 M ? 7 / 1 3 8 3
■—ft —
Oi O\
CS\
ι Γι H
U | O | O | ο | O | O | O |
U)
U |
O | O | O | ο | ■Η | O |
<*
U |
O | O | O | O | O | |
η
U |
ο | O | O | O | O | |
ΓΜ
U |
ο | ο | ("i | O | O | |
r-i
U |
O | O | O | O | ||
O O
O O
α ο
(Ϊ
O
CD
in
CJ
(N
r-4
O
O
O
O O
O O
.-4 O
O O
O -*
O O
-H O
Ή O O
O O
O -ι
^ O O
•HO-"·
O O r-*
O «-I Ή
O O Ή
r-4
co
•-ι η ο O O
(SJ CO Tf ΙΟ VO
CQ Ol W CQ 03
Docket PO 969 012
109 rt27/1383
— y —
Während einige wesentliche Regeln bereits Im Zusammenhang mit
dem Stand der Technik genannt v/urden, sind für einen optimalen
Schaltungsentwurf weitere UogeLn zu beachten. Die erste davon
besagt, daß jedes Informations- und jedes PrüfbLt 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 Kombinationen von drei Codegruppen benutzt wurden. Die Schaltung, die durch die Matrix der
Tabelle VII charakterisiert ist kann (2ur 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 exklusiven ODER-Glieder in Betracht gezogen werden die bei der Erzeugung einer Codegruppe und bei der Fehlererkennung durchlaufen
werden. Wünschenswert ist eine im wesentlichen gleiche Anzahl von Einsen für jede Codegruppe. Die Codegruppen S4 und
S6 enthalten IO Einsen, (drei Stufen von exklusiven ODER-Gliedern mit drei Eingängen) und die Codegruppen Sl, S2 und S5 enthalten
neun Einsen (drei 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 dLe TabeL-Ie
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. '
Docket PO 969 012 109 H 27/1383
VO U |
σ* | σ> | O | O rH |
O r-i |
H | |
in U |
O | O | O | O | O | O | |
U | O | O | O | O | rH | O | |
η U |
O | O | rH | rH | O | O | |
CM U |
O | O | O | O | O | O | |
rH U |
O | rH | O | O | O | O | |
in | i-l | O | O | O | |||
Q | rH | rH | |||||
<-* Q |
O | O | rH | rH | O | O | |
ro | i-l | O | iH | O | |||
r-i Q |
rH | O | |||||
CM | O | O | rH | f-t | |||
Q rH _J |
O | rH | |||||
H | ^^ Q |
O | rH | O | O | rH | r-i |
W | DlO | O | O | O | O | ||
Ea | σ» Q |
rH | O | O | rH | rH | O |
OO Q |
O | rH | rH | rH | i-l | ||
t*· Q |
O | ,H | rH | O | O | O | |
VO Q |
O | rH | rH | O | fi | O | |
m Q |
O | r-t | O | tH | O | l-t | |
Q | rH | O | <-\ | rH | O | r-i | |
ro Q |
rH | O | O | O | O | iH | |
CN Q |
r-i | O | O | O | r-i | rH | |
f-i Q |
- | rH | O | O | O | O | |
S | rH | rH | O | rH | O | ||
■H | rH |
cn
Ui |
rH | tr. | |||
rH CO |
CM | cn | in cn |
||||
Docket PO 969 012
109 0 27/1383
Jm folgenden wird die Erfindung in Verbindung mit den Zeichnungen
näher beschrieben, von denen ζ.«! gen:
Fig. 1 ein Blockschaltbild eines die Erfindung verkörpernden
Systems.
Fig. 2 ein Diagramm einer Matrix, welche dio innerhalb
des Prüfbitgenerators, des Feh3erdet«;]:tors und
des Fehlerlokal isatoic der Fig« I vorgesehenen
Verbindungen veranschauli cht.
Fig. 3 ein Schaltbild dor. FoJilerdetek 1 oi s und eines
Prüfbitgenerators,
Fig. 4 ein Schaltbild des Fehlorlokalisators.
Fig. 1 zeigt, daß die auf der Eingangssammolleitung 1 vorhandenen
64 Informationsbits DO bis D63 einem Prüfbitgenerator 2 zugeführt werden, der 8 Prüfbits Cl bis C8 auf dia Ausgangssamrnellfiitung 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 Sl bis S8 erzetigt, die repräsentativ für 8
Codegruppen Sl bis S8 innerhalb des 72-Bit-Codewortes sind. Die
8 Syndrom-Bits werden dazu verwendet, das Vorliegen einen 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-Glie-
DocKet PO 969 O12 109827/1383
BAD ORiQfNAt
des 10 durch vom Antivalenzglied 8 beaufschlagt, um ein Signal
auf die Doppelfehler-Ausgangsleitung zu geben. Die Syndrom-Signalleitungen Sl bis S8 sind auch mit einem Fehlerlokalisator 11
verbunden, der Fehleranzeigen DO1 bis D631 und Cl1 bis C81 den
72 Fehleranzeigeleitungen 12 zuführt, die mit einem Fehlerkorrektor 13 verbunden sind. Der Fehlerkorrektor 13 kombiniert einander
entsprechende Fehleranzeigen und Codewortpositionen, um korrigierte Informationsbits auf Sammelleitung 14 und korrigierte
Prüfbits auf Sammelleitung 15 zu liefern.
Die allgemeine Konstruktion des Systems der Fig. 1 wird mit Bezug auf die Matrix der Fig. 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 C8, und ferner aufgeteilt in 9 gleiche Abschnitte (Bytes) mit
der Benennung Bl bis "PRÜF", wobei jeder Abschnitt (aus Gründen des Aufhaus, die später besprochen werden) 8 Bits umfasst. Jedes
der Prüfbits Cl bis C8 gehört zu einer jeweils anderen von 8 Codegruppen Sl bis S8, die in der Matrix als Zeilen Sl bis S8 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 Cl die Antivalenzfunktion der In-. formationsbits DO bis D7, D20, usw. In ähnlicher Weise wird das
Prüfbit C2 durch die Antivalenzfunktion der Informationsbits DO, Dl, D2, D5 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
Sl eine Antivalenz-Verknüpfung der Informationsbits DO bis D7, D20 usw. und des Prüfbits Cl durchgeführt. Da der Prüfbitgenerator
2 die Prüfbits Cl bis C8 so erzeugt, daß ^ine geradzahlige
Anrahl von Einsen in jeder Codegruppen erzielt wird (gerad-
DocKet PO 969 012 109827/1383
BAD ORIGINAL
zahlige 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 Sl bis S8 in Fig. 1 erscheinen. Die Interpretation dieser Syndrome durch den Fehlerlokalisator
11 wird auch durch die Matrix der Fig. 2 dargestellt. Ein Fehler in einer Informationsbit- oder Prüfbitposition (Matrixspalte)
wirkt sich auf bestimmte Codegruppen (Matrixreihen) Sl bis S8 aus. Beispielsweise bewirkt ein Fehler im Informationsbit DO, daß die Codegruppen Sl, S2 und S4 eine ungeradzahlige
Parität haben, was sich in Eins-Bit-Syndromsignalen des Fehlerdetektors
5 auf den Leitungen Sl, S2 und S4 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 Fig. 2 durch die Ziffern unter der Spalte veranschaulicht. Da z. B. die Syndrome Sl, S2 und S4 durch einen Fehler im
Bit DO verursacht wurden, wird ein Ausgangssignal eines UND-Gliedes durch ein Zusammentreffen der Eingangssignale Sl, S2 und S4
und "Einzelfehler" verursacht. Ein zusätzliches Eingangssignal S5 ist vorgesehen, um richtiges Decodieren zu sichern, damit
überlappende Syndrom-Unterraengen 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 Sl bis S8 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
Sl durchlaufenen Stufen als drei berechnet werden, gemäß der Be-
Docket PO 969 012 10 9 8 2 7/1383
Ziehung: Anzahl der Stufen = logvt , wobei ν die Anzahl der Eingänge
zu jedem Antivalenz-Glied und t. 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 Informations- und Prüfbit zu einer ungeradzahligen Anzahl von
Codegruppen Sl bis S8 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 eine bestimmte Information 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 Fig. 2 geschieht die Zordnung der Prüfbits dadurch,
daß jeweils ein Prüfbit einer der acht Zeilen zugeordnet wird. Sodann werden alle Kombinationen der acht Zeilen unter Zusammen
fassung von jeweils drei Zeilen erschöpft, ehe irgendwelche Bits fünf Zeilen uew. zugeordnet werden, wobei die Anzahl der Kombinationen von r Dingen, wobei jeweils m zusammengefaßt werden, wie
folgt ist:
*><** PO 969 O12 109827/1383
BAD
/rl _ r(r-l)... (r-m+1) \mj 1 · 2...m
Für m = 3 müssen sechsundfünfzig Informationsbits drei Codegruppen
zugeordnet werden, bevor irgendwelche fünf Codegruppen zugeordnet werden. Die letzte Zuordnung nähert sich, wird aber nicht
gleich Jrj . 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 Bl, B2 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 Bl dadurch gezeigt ist, daß in der Codegruppe Sl acht Eins-Bits vorgesehen
sind, für das Byte 2 dadurch, daß acht Bits in der Codegruppe S2 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 erhalten.
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 Paritatsprüfungs-Matrizen für einen (72, 64) EFK/DFE Code
sind in den Tabellen VIII und IX gezeigt.
Docket PO 969 012 10 9 8 2 7/1 38 3
BAD
|»~ ί-.. ;— Γ-- r- N N- N-CJ Cl CJ Cl OJ DJ OJ OJ
co
ro
W ti
ti
W P3
1:1 I-
(I)
Ϊ | .in | r— | r— | Γ" | f* | ι-· | I- | r— | t - | , - | f ■ | r— | r- | Γ" | γ— | r- | ι— | ,- | Γ** | ι- · | ι · | r- | r~ | r ** | ι—* | ι— | t < λ | γ— | Γ"" | |
RUF | •0 O S1 |
f- | ι- | γ— | ι— | r- | γ- | |||||||||||||||||||||||
vi | ί - | r - | ι— | . ι— | ι- | r-- | ||||||||||||||||||||||||
υ | r— | r*· | r Ί | . — | r-f— | ... ,., | η | |||||||||||||||||||||||
ο" | ί -* *-- | γ— ι— | f* | f .-· | ||||||||||||||||||||||||||
I.) | r— ·-- | ι— | Ι— Γ·· | " | ||||||||||||||||||||||||||
™3 " | r— |
r-
r"* |
r - r~ | r- t-* | ι— | ι— ι — | ι— | |||||||||||||||||||||||
t ■■■ r~* | f..- ,.- | Γ— ί — | γ— | Γ | ||||||||||||||||||||||||||
iö | ι ■ * t— | »—· f— | Ι— | |||||||||||||||||||||||||||
O | — | r— | •r - r·- | r - r* | γ— | |||||||||||||||||||||||||
CO | S | r— | r" |
r-*
r—* |
ι~* | |||||||||||||||||||||||||
O | Γ"* | f ^ | ρ- | ι— | Γ" | |||||||||||||||||||||||||
c - | f "* | γ | ι-· | Γ— | r— | |||||||||||||||||||||||||
t-~ | r-- | ι ■ · | Γ" | |||||||||||||||||||||||||||
S | r— | ΐ· - | ||||||||||||||||||||||||||||
«1 | ' - | |||||||||||||||||||||||||||||
r— | ||||||||||||||||||||||||||||||
K | Ι"" | |||||||||||||||||||||||||||||
f- | I™ | Γ** | ||||||||||||||||||||||||||||
■/■ | ||||||||||||||||||||||||||||||
■*■ | ||||||||||||||||||||||||||||||
te | Γ" | |||||||||||||||||||||||||||||
!? | .... | |||||||||||||||||||||||||||||
ί | ||||||||||||||||||||||||||||||
Kl | Γ"" | |||||||||||||||||||||||||||||
•f | r-" | |||||||||||||||||||||||||||||
.Jf.. | r- | |||||||||||||||||||||||||||||
ίο | 1 — | t—* | ||||||||||||||||||||||||||||
ί» | ι—■ | r- | ||||||||||||||||||||||||||||
UO | η | 1« | "r· | Γ— | ||||||||||||||||||||||||||
S | I-" | f *· | Γ™* | |||||||||||||||||||||||||||
κι | f— | Γ* | ||||||||||||||||||||||||||||
A | ||||||||||||||||||||||||||||||
ιό | ||||||||||||||||||||||||||||||
a | r— | γ— | ||||||||||||||||||||||||||||
S | i— | r~" | Γ— | |||||||||||||||||||||||||||
.- | ("* | |||||||||||||||||||||||||||||
ft | r·* | (— | ||||||||||||||||||||||||||||
!C | ||||||||||||||||||||||||||||||
H | ϊ-· | |||||||||||||||||||||||||||||
■f | ||||||||||||||||||||||||||||||
t) | Γ * | |||||||||||||||||||||||||||||
M | ||||||||||||||||||||||||||||||
C-J | Γ * | |||||||||||||||||||||||||||||
IO | O | t - | ||||||||||||||||||||||||||||
•τ« | P1-* | r— | Γ | |||||||||||||||||||||||||||
Ό | Ι- | r* | ||||||||||||||||||||||||||||
ί- | Ι'- | ,—■ | γ— | |||||||||||||||||||||||||||
u» | I — | |||||||||||||||||||||||||||||
»1 | ι - | f-» | ||||||||||||||||||||||||||||
^. | I - | r- | ||||||||||||||||||||||||||||
f» | ι ■■- | l~ | ||||||||||||||||||||||||||||
Cl | t · | |||||||||||||||||||||||||||||
"; | Ι"* | |||||||||||||||||||||||||||||
O - | ||||||||||||||||||||||||||||||
f-. | /'■ | |||||||||||||||||||||||||||||
U | ι ■ | |||||||||||||||||||||||||||||
Vl | I | Γ | ||||||||||||||||||||||||||||
■t' | . - | f Γ | ||||||||||||||||||||||||||||
i — | ||||||||||||||||||||||||||||||
*Λ | ||||||||||||||||||||||||||||||
f I | ||||||||||||||||||||||||||||||
;. ι | ■· | |||||||||||||||||||||||||||||
I ' | f . | V ') | ||||||||||||||||||||||||||||
109827/ 1 383
BAD ORIGINAL
Eine Schaltung, die gemäß den Matrizen der Tabellen VII - IX konstruiert
ist, besitzt eine größere Wahrscheinlichkeit 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 i_j sind in der Spalte A angegeben.
Die Spalte D zeigt die Mindestanzahl von Stufen.
•t PO 969 φΐ2 109827/1383
At
8 | r | A | B | • | C | D | |
η | t | 4 |
Korrektur von H
<;> <;> <;>·· |
Gesamtzahl der
1 Bits in U |
Durchschnlttl. Anzahl
v.l Bits in a(Zeilen) |
VV | |
12 | 10 | 5 | <{> ♦ ψ | 16 | 4 | riogv4i | |
M | U | 5 | (|) * */(*>* | 32 | 6.4 | fiogv 7l | |
15 | 16 | 5 | iji ♦ <;> | 35 | 7 | fiogv 7] | |
16 | 20 | 6 | φ + φ ♦ (|» | 40 | * | [Togv.1 | |
22 | 24 | 6 | (') ♦ 16/(J) | 54 | |||
26 | ■■ | 6 | 66 | Il | |||
30 | 36 | 7 | U | 14.3 | F,.v,l | ||
39 | 40 | 7 | 101 | 14.7 | |||
43 | 4« | 7 | 7 7 7 | 117 | 16.7 | ||
47 | 64 | 7 | <;> * (j)»-/(ji | 157 | 22.4 | ||
55 | 72 | R | «1»..;...»,,;, | 177 | 25.3 | F'°iv "1 | |
72 | RO | 8 | ,·,.,·,♦./,:, | 216 | 27 | iiogv 271 | |
RO | ββ | S | I 1 5 | 256' | 32 | Γ.Ο..32Τ | |
88 | 96 | R | IJ 5 | 296 | 37 | ||
96 | 104 | I | (')♦(")♦ J2/(*( | 3)6 | 42 | Flogv 42] | |
104 | tu | I | ("l ♦I*» ♦ 40/(·) | 376 | 47 | ||
IU | UO | t | <;>♦<;>♦«/<',» | 416 | »2 | K>ü | |
120 | Ul | 1 | 456 | 17 | K"l | ||
12« | u« | ; | <·>♦,·,♦··.♦«·, | SU | «4 | ||
I)O | • | < | (')*(]l ♦ 17/(J) | 444 | SI.7 | K«l | |
1)7 | • | «J» mJ) **m\i | 411 | »3.4 | |||
tie· | |||||||
* 01· Sohreibwei·· j/(f) btMft, dai j Kowbinitlonen au· allen »Ö9liehen XoabinatlOMR (J) verwendet verden.
PO 969 012
109827/1383
2060B43
Unter Bezug auf Fig. 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 D und
C und die Ausgänge mit S bezeichnet werden. Der Prüfbitgenerator 2 überwacht die Informationsbits DO bis D63 zur Erzeugung von
Prüfbits Cl 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 Stufe. Die Gesamtanzahl der vorgesehenen Antivalenz-Glieder wird durch die Anzahl
der Eins-Bits in der Matrix der Fig. 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 Vl die drei Informationsbiteingänge DO, Dl, D2 entsprechend den ersten
drei Bits DO, Dl, D2 in der Zeile Sl der Matrix in Fig. 2 auf. Das Ausgangssignal des Antivalenz-Gliedes Vl wird dem Antivalenz-Glied
V56 zugeführt, welches auch ein Signal vom Antivalenz-Glied V2 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 durch
Eins-Bits in der Zeile Sl 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 V12, werden in
dem Prüfbitgenerator 2 nicht verwendet.
Der Fehlerdetektor 5 ähnelt in seiner Konstruktion dem Prüfbitgenerator
2, mit der Ausnahme, daß er sowohl die Informationsbits DO bis D63 als auch die Prüfbits Cl bis C8 empfängt und
Docket PO 969 012 10 9 8 2 7/1383
feststellt, ob die gerade Parität mit Bezug auf jede Codegruppe aufrechterhalten wurde. Syndromsignale auf den Leitungen Sl bis
S8 zeigen an, ob für die entsprechende Codegruppe eine ungerade oder gerade Parität vorliegt. Die Antivalenz-Glieder Vl 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 Cl bis C8 des Fehlerdetektors 5 verbunden sind. Diese Verbindungen
werden durch die Eins-Bits in den Prüfbitteilen Cl bis C8 der Matrix von Fig. 2 bestimmt, von denen jedes mit einem der Antivalenz-Glieder
verbunden ist.
Mit Bezug auf Fig. 4 wird nun der Fehlerlokalisator 11 beschrieben.
Der Fehlerlokalisator überwacht die Syndromsignale Sl bis S8, welche durch Eins-Bits anzeigen, ob die entsprechende Codegruppe
ungerade Parität hat. Der Fehlerlokalisator 11 gibt ein Signal auf eine der "Bit fehlerhaft"-Leitungen DO1 bis D631 sowie
Cl1 bis C81, 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
Al bis A72, entsprechend den zweiundsiebzig Spalten der Matrix in Fig. 2. Beispielsweise empfängt das UND-Glied Al Eingangssignale
von den Leitungen Sl, S2 und S4 sowie "Einzelfehler", um ein Signal auf die DO1 Leitung zu geben. Ein zusätzliches
Eingangssignal wird von der Leitung SI? geliefert, um in Abwesenheit
eines Signals einen fehlerhaften Betrieb zu verhindern. Invertierte Signale Sl bis S8~ 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 Stufen und/oder Schaltungen sind in diesem Falle vorgesehen.
Die Arbeitsweise der Erfindung wird nun mit Bezug auf die Figuren und die folgende Tabelle beschrieben.
Docket PO 969 012 109827/1383
O *■*
to
CD CO Co
I | DO | Dl | D2 | D.3 | D4 | D5 | D6 | D7 | ... D63 | Cl | C2 | C3 | C4 | C5 | C6 | C7 | C8 | |
II | DO' | Dl1. | D21 | D3· | D41 | D51 | D6' | D7" | ... D63' | Cl' | C21 | C3' | C4' | C5" | C61 | C7' | C81 | |
III | Sl | S2 | S3 | S4 | S5 | S6 | S7 | S8 | ||||||||||
I | Sananelleitung 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | ... 0 | 0 | 0 | 0 | o | 0 | 0 | 0 | 0 |
I | Sammelleitung 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
I | Sammelleitung 4 | 0* | 0 | 1 | 0 | 1 | 0 | 1 | 0 | ... 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
III | Sammelleitung 6 | 0 | 0 | 0 | 0 | 0 | O | 0 | 0 | ... 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
II | Sananelleitung 12 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
I | Sammelleitung 14 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | ... 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
I | Sammelleitung 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
* gesendet als eine "1" und falsch empfangen als eine "0"
206Ü6A3 '
Summarisch betrachtet veranschaulicht die Tabelle XI den Empfang von vierundsechzig Informationsbits DO bis D6 3 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 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 Sl bis S8 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 Sammelleitung 1 Eingangssignale für die folgenden Antivalenz-Glieder im Prüfbitgenerator
2: Vl bis V8, VlO, V15, V22 und V33 in der ersten Stufe; V56 bis V61, V63, V65, V67 und V78 in der zweiten Stufe; und alle Glieder
V80 bis V87 in der dritten Stufe. Als Ergebnis erscheinen Prüfbitsignale auf den Ausgangsleitungen C6 und C8. Während der übertragung
des Codewortes über die Sammelleitung 4 tritt ein Fehler in der 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-Detektor 5 empfangen, und der geänderte
Zustand der Informationsbits DO wird festgestellt durch die Antivalenz-Glieder Vl und V33 in der ersten Stufe, V56, V6O und
V78 in der zweiten Stufe und V80 und V81 und V83 in der dritten Stufe festgestellt, so daß Syndromsignale auf den Leitungen Sl,
S2 und S4 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 Sl, S2, S4, und die Einzel-
012 109827/1383
fehlerleitung 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 Sammmelleitung
4 zugeführte Codewort an die Sammelleitungen 14 und 15 weiter.
Es werden nun die der Erfindung zugrundeliegenden Prinzipien besprochen.
Um einen EFK/DFE Code zu haben, ist 4 die Minimal-Gewichtungsanforderung,
was bedeutet, daß drei oder weniger Spalten der Matrix linear unabhängig sind. Ein Weg, um diese Bedingung
zu erfüllen, ist der, daß man die Spalten der Matrix die
folgenden Beschränkungen erfüllen läßt:
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)
.
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 ungeradezahllgem
Gewicht niemals gleich O 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 Dop-
Docket PO 969 012 109827/1383
pelfehlern 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 Prüfbit oder das Syndrom dieser Zeile zu erzeugen. Es sei t. die Gesamtanzahl der Eins-Bits in der i-ten Zeile, und C. und
S. seien das Prüfbit und das Syndrombit, wie es durch die i-te Zeile der Matrix vorgeschrieben ist. Dann gilt:
wobei I^ = Anzahl der logischen Stufen, die zur Erzeugung von
C. erforderlich sind, wenn ein Modulo-2-Addierer mit
nur ν Eingängen verwendet wird,
1 = Anzahl der logischen Stufen, die zur Erzeugung 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 oder gleich X ist.
In praktischen Anwendungen wird ν für eine gegebene Schaltungsfamilie festgelegt. Infolgedessen ist zur Minimisierung von 1 das
i Minimum t. erwünscht. Wenn alle t (i = i, 2, ... r) minimal und
gleich sind, haben wir 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.
Infolgedesssen ist die minimale Zahl von t. für sämtliche i 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-Docket
PO 969 012 10 9 8 2 7/1383
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 H geteilt
durch die Anzahl der Zeilen; so nahe wie möglich kommen.
Wenn r Paritätsprüfbits für k Datenbits verwendet werden, muß die
folgende Gleichung gelten:
£ r
Σ (i) >
!«ungerade
Es läßt sich zeigen, daß dieser Code die gleiche Anzahl von Prüfbits
verwendet, wie der EFK/DFE-Hamming-Code. Für einen ungekürzten EFK/DFE-Hamming-Code gilt:
2v~l » k + r (4)
1 g - 2r (5)
Docket PO 969 012 109827/1383
und | £ r γ (A - 1 W i=0 |
< r I i=l |
8 |
i=gerade | i=ungerade | ||
daher gilt: |
r | ||
1J = * | 2r = | ||
!»ungerade | |||
= 2'-1 | |||
(7)
Durch Vergleich der Gleichungen (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:
1. Die if] Spalten werden jeweils für die r Prüfbit-Positionen
verwendet.
2. Sodann wähle man wenn Ifl gleich oder größer als k ist, k Spalten
von allen möglichen Lj Kombinationen. Wenn IJ kleiner als
k ist, werden alle möglichen It] Spalten gewählt. Die übrig-
bleibenden Spalten werden dann aus allen möglichen {_l , usw.
herausgenommen; der Prozeß wird fortgesetzt, bis alle k Spalten ausgefüllt sind.
Wenn die Codewort-Länge η = k + r genau gleich ist den Ausdrücken
1=1
!«ungerade
!«ungerade
Docket PO 969 012 10 9 8 2 7/1383
ι mi mr pul»■ ι ι«ρ ι
- 27 für ein ungerades j <^ r, dann hat jede Matrix genau
i = ungerade _ 1 r . _ r(r-l) (r-2) . . r(r-l) ... (r-j+l)1
— — [χ τ ύ
·+· 3 -j
r r 3i j!
= ganze Zahl q (8)
q Anzahl von Einsen. Wenn für ein gewisses j das η nicht genau
gleich t ΓJ ist, so muß die willkürliche Wahl der fr) 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
bestimmten, 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 enthal-
Docket PO 96? 012 109827/1383
tenen Einsen, die immer geringer ist als bei einer Matrix gemäß
dem Hamming-Code, überdies ist die neue Matrix so ausgelegt, daß
dem Hamming-Code, überdies ist die neue Matrix so ausgelegt, daß
t± <. IAJ für alle i,
Und das \k] (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.
Docket PO 969 012 109 H 27/1383
Claims (4)
- PATENTANSPRÜCHE(JLy Schaltungsanordnung zur Korrektur von Einzel- und zur Erkennung von Doppelfehlern in Codewörtern mit r Prüfbits, dadurch gekennzeichnet, daß zur Prüfbiterzeugung bzw. Fehlererkennung jede der den Bits eines Wortes zugeordneten Leitungen (DO bis D63, Cl bis C8; Fig. 3) an eine ungerade Anzahl aus r sogenannten Tannenbaumschaltungen angeschlossen ist, die in bekannter Weise aus Antivalenz-Gliedern (Vl bis V87) aufgebaut sind, und daß die Anzahl der an die Eingänge jeder Tannenbaumschaltung angeschlossenen Bitleitungen im wesentlichen gleich ist.
- 2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß die ungerade Anzahl von Tannenbaumschaltungen, an die die Informationsbitleitungen angeschlossen sind, gleich oder größer als drei ist, während sie für die Prüfbitleitungen eins beträgt.
- 3. Schaltungsanordnung nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß jede von Pj der Informationsbitleitungen (m "*■ 3, r β Anzahl der Prüfbits, r > m) an jeweils m der r Tannenbaumschaltungen, jede der übrigen Informationsbitleitungen bzw. jede von C+J von ihnen an m+2 der r Tannenbaumschaltungen, jede der eventuell noch verbleibenden Informationsbitleitungen bzw. jede von 1*4.4) von ihnen an je m+4 der r Tannenbaumschaltungen usw. angeschlossen ist, bis jede Informationsbitleitung mit einer ungeraden Anzahl aus den r Tannenbaumschaltungen verbunden ist.
- 4. Schaltungsanordnung nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, daß im Fehlerlokalisator (11; Fig. 4) für jedes Bit eines Codewortes ein UND-Glied (&1 bis &72) vorgesehen ist, das mindestens an die regulären Ausgänge (5)Docket PO 96? 012 1093 2 7/1383derjenigen Tannenbaumschaltungen angeschlossen ist, die mit der dem betreffenden Bit zugeordneten Bitleitung verbunden sind.Docket PO 969 012 109827/1383Leerseite
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 true DE2060643A1 (de) | 1971-07-01 |
DE2060643B2 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) |
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 |
US4862463A (en) * | 1987-07-20 | 1989-08-29 | International Business Machines Corp. | Error correcting code for 8-bit-per-chip memory with reduced redundancy |
DE3882175T2 (de) * | 1987-07-20 | 1994-01-27 | Ibm | 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 |
US5745507A (en) * | 1995-03-31 | 1998-04-28 | International Business Machines Corporation | Systematic symbol level ECC for use in digital memory systems |
US5774481A (en) * | 1995-03-31 | 1998-06-30 | International Business Machines Corporation | Reduced gate error detection and correction circuit |
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 |
---|---|
DE2060643C3 (de) | 1979-11-15 |
US3623155A (en) | 1971-11-23 |
CA935931A (en) | 1973-10-23 |
FR2074917A5 (de) | 1971-10-08 |
JPS5144767B1 (de) | 1976-11-30 |
DE2060643B2 (de) | 1979-03-22 |
GB1315340A (en) | 1973-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2060643A1 (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) | ||
DE2132565C3 (de) | Umsetzer | |
DE2425823A1 (de) | Einrichtung zur fehlererkennung und fehlerkorrektur | |
DE3123978A1 (de) | "verfahren zum decodieren einer uebertragenen digitalen information unter korrektur von fehlern" | |
DE3124425A1 (de) | Verfahren zur fehlerkorrektur | |
DE2430464A1 (de) | Einrichtung zur fehlergesicherten datenuebertragung | |
DE2942998A1 (de) | Fehler-korrektur- und -erkennungs- anordnung | |
DE102017103347B4 (de) | Verarbeitung von daten in speicherzellen eines speichers | |
DE2659031B2 (de) | Fehlerkorrektur- und -Steuersystem | |
DE2320422A1 (de) | Verfahren zur fehlererkennung | |
DE2916619A1 (de) | System zum uebertragen binaerer daten ueber eine anzahl von kanaelen | |
DE69317766T2 (de) | Fehlerkorrekturgerät für digitale Daten zur Korrektur von Einfachfehlern (sec), von Doppelfehlern (ded) und Vielfacheinzelbytefehlern (sbd) und zur Korrektur von Einzelbytefehlern ungerader Anzahl (odd sbc) | |
DE2053836C3 (de) | Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen | |
DE1250163B (de) | Einrichtung zur Paritätsprüfung von Speicherworten | |
DE1959231A1 (de) | Verfahren und Vorrichtung zur Korrektur von bis zu drei Fehlern eines aus 23 Bits bestehenden Codewortes | |
DE2047868A1 (de) | Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes | |
DE2000565A1 (de) | Fehlerkorrigierendes System zur Korrektur mehrfacher,zufaelliger Fehler | |
EP0159403A2 (de) | Anordnung zur Korrektur von Bündelfehlern in verkürzten zyklischen Blockcodes | |
DE3853708T2 (de) | Gerät zur Korrektur von einfachen Bitfehlern und zur Erkennung von doppelten Bitfehlern bei Datenübertragung. | |
DE2104132B2 (de) | Anordnung zur Mehrfachfehlererkennung und Einzelfehlerkorrektur | |
DE102019113970B4 (de) | Erkennung von adressfehlern | |
DE1774225A1 (de) | Fehlerkorrekturschaltung | |
DE2134529A1 (de) | Verfahren zur fehlererkennung und -korrektur in aus dem speicher einer programmgesteuerten datenverarbeitungsanlage ausgelesenen informationswoertern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |