DE2941868A1 - Anordnung zur vornahme einer fehlerkorrektur und fehlerermittelung bei binaerwoertern - Google Patents

Anordnung zur vornahme einer fehlerkorrektur und fehlerermittelung bei binaerwoertern

Info

Publication number
DE2941868A1
DE2941868A1 DE19792941868 DE2941868A DE2941868A1 DE 2941868 A1 DE2941868 A1 DE 2941868A1 DE 19792941868 DE19792941868 DE 19792941868 DE 2941868 A DE2941868 A DE 2941868A DE 2941868 A1 DE2941868 A1 DE 2941868A1
Authority
DE
Germany
Prior art keywords
matrix
syndrome
arrangement
signal
signals
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.)
Withdrawn
Application number
DE19792941868
Other languages
English (en)
Inventor
Leonard George Trubisky
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.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
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 Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2941868A1 publication Critical patent/DE2941868A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Description

DIPUINCHEINZBARDEHLE München, 1b.10.79
Aktenzeichen: Mein Zeichen: P 2926
Honeywell Information Systems Ine, 200 Smith street
Walthem, Mass. 02154
V. 3t. v. A.
Anordnung zur Vornahne einer Fehlerkorrektur und Fehlerermittelunff bei Binürvörtern
030018/0820
Beschreibung
Die Erfindung bezieht sich generell auf eine Anordnung zur Durchführung einer Elnzelfehler-Korrektur und zur Vornahme einer Doppelfehler-Ermittelung. Die Erfindung betrifft insbesondere eine integrierte Schaltung mit hoher Integration, die in einer Mehrzahl dazu herangezogen werden kann, eine Anordnung zur Einzelfehler-Korrektur und zur Doppelfehler-Ermittelung zu bilden. Dabei genügen acht derartige integrierte Schaltungen hoher Integration in Verbindung mit acht - durch integrierte Schaltungen mittleren Integrationsgrades gebildeten - 8-fiit-Parltätegeneratoren des kommerziell erhältlichen Typs für die Erzeugung, Korrektur und Ermittelung eines 80-Bit-Codeswortes (72 Datenbits + acht Prüfbite).
Es existiert ein industrieller Bedarf an einer integrierten Schaltung hohen Integrationsgrades für die Realisierung eines Verknüpfungsnetzwerkes zur Doppelfehler-Ermittelung und Einzelfehler-Korrektur (Distanz-4-Code). Von besonderer Bedeutung dabei ist eine geringe Ausbreitungsverzögerung, und zwar mit einer Zielsetzung von nicht mehr als 60 ns zuzüglich zu der Speicherzugriffezeit für die Fehlerermlttelungs- und Fehlerkorrekturfunktion. Um vertrieben werden zu können, sollte daa Netzwerk in nicht mehr als zweiteilige Typen mit nicht mehr als 40 Anschlußstiften pro Packung aufgeteilt sein. Es wird angenommen, daß eine Transistor-Transistor-Logik- (TTL ^Kompatibilität notwendig 1st, obwohl die Zwischenverbindungen zwischen den Packungen bei Bedarf auch höhere Pegel führen könnten.
050018/0820
Die Firma Motorola hat sich mit einem ähnliche Problem befaßt, indem als Teil der integrierten Schaltungsserie 10 000 mittleren Integrationsgrades integrierte Schaltungen des Typs MC10 162 und MC 10 19? entwickelt wurden, die ebenfalls eine Felflerermittelungs- und Fehlerkorrekturfunktion erfüllen. Diese Anordnung kann jedoch nicht 9-Bit-3ytes verarbeiten, und außerdem ist eine zusätzliche Schaltungsanordnung erforderlich, um das Syndrom zu decodieren, um außerdem jedes i»atenbit zu korrigieren und um eine Parität zu erzeugen.
Der Erfindung liegt demgemäß die Aufgabe zugrunde, ein üinzelfehler-Korrektur- und Doppelfehler-Ermittelungs-(Distanz-4-Code)-Verknüpfungsnetzwerk zur Ausführung in einer integrierten Schaltungsanordnung hohen Integrationsgrades zu schaffen.
ifberdie = soll das neu zu schaffende Verknüpfungsnetzwerk eine tr«rjnge Ausbreitun^sverzögerung mit sich bringen, cM ? rieht o*r »1s 60 ns zusätzlich zu der Speicherzuj-riffszeit fi'ir die Fehlerermittelungs- und Fehlerkorrekturfunktion betragen soll.
Ferner seil das neu zu schaffende Verknüpfungsnetzwerk in nicht mehr als zwei Teiltypen aufgeteilt werden.
Schließlich soll das neu zu schaffende Verknüpfungsnetzwerk mit TTL-VerknUpfungsanordnungen kompatibel sein.
Gelöst wird die vorstehend aufgezeigte Aufgabe durch die in den Patentansprüchen erfaßte Erfindung.
Gemäß einem weiten Aspekt der Erfindung ist eine Anordnung zur Durchführung einer Fehlerkorrektur und einer Fehlerermittelung bei Binärwörtern vorgesehen, wobei jeder Teil der betreffenden Anordnung ein Datenbyte
Ö3001Ö/0820
verarbeitet und wobei jeder Anordnungsteil folgende Einrichtungen umfaßtj Erste einrichtungen sind zur Aufnahme von Daten vorgesehen, zweite Einrichtungen sind mit den ersten Einrichtungen verbunden, um eine erste Vielzahl von Zwisehen-Jektormatrix-Paritatsausgangssignalen zu erzeugen, dritte Einrichtungen sind mit den zweiten Einrichtungen verbunden, um eines der ersten Vielzahl von Ausgangssignalen sowie eine zweite Vielzahl von Zwischenmatrix-Paritätsausgangssignalen von anderen Bereichen her aufzunehmen und aus diesen Signalen ein Syndromsignal zu erzeugen, vierte Einrichtungen sind mit den ersten und dritten Einrichtungen zur Aufnahme des Syndromsignals und einer Vielzahl von Syndromsignalen aus anderen Teilen bzw. Bereichen der Anordnung sowie zur Erzeugung der korrigierten Datenbits verbunden.
Anhand von Zeichnungen wird die Erfindung nachstehend beispielsweise näher erläutert.
Fig. 1 zeigt in einem Furiktionsdiagramm einen S-Schaltungsteil hohen Integrationsgrades. Fig. 2 zeigt in einem Diagramm eine Anordnung zur Lieferung einer Anzeige darüber, welches Bit korrigiert worden ist.
Fig. 3 zeigt In einem Blockdiagramm eine Anordnung, die ein Auegangesignal abzugeben vermag, welches eine Angabe darüber liefert, ob ein korrigierbarer Fehler ermittelt worden ist.
Flg. 4 zeigt in einem Blockdiagramm Eingangssignale für die und Ausgangssignale von der Fehlerermittelungs- und Fehlerkorrekturanordnung gemäß der vorliegenden Erfindung.
Flg. 5 zeigt in einem detaillierten Blockdiagramm die Anordnung gemäß Fig. 4.
Flg. 6 zeigt in einem Verknüpfungsdiagramm ein in der Anordnung gemäß Flg. 5 vorgesehenes Register.
03OO18/O82Ö
23Λ1868
Fig. 7 zeigt in einem Verknüpfungsdiagramm einen Byte-Syndromgenerator und einen Wort-Syndromgenerator der in Fig. 5 dargestellten Anordnung. Fig. 8 zeigt in einem Verknüpfungsdiagramm eine Syndrom-Decodiereinheit und Verknüpfungseinheit der Anordnung gemäß Fig. 5.
Im folgenden wird die bevorzugte Ausführungsform der Erfindung näher erläutert« Obwohl eine detaillierte Abhandlung der Fehlerermittelungs- und Fehlerkorrekturverfahren von Hamming unter der Bezeichnung "Error Detecting and Error Correcting Codes" in der Druckschrift "Bell System Technical Journal", Vol. 29, 1950, Seiten 147 bis 160, angegeben worden ist, wird die nachstehende Erläuterung als erforderlich erachtet, um ein Verständnis für die vorliegende Erfindung zu schaffen. Dabei wird eine Darstellung entsprechend der Standard-Codierungstheorie angewandt. Dies bedeutet, daß mit k die Anzahl von Datenbits in einem Codewoxt bezeichnet ist, daß mit r die Anzahl von PrUfbits in dem Codewort bezeichnet ist und daß mit η die Gesamtanzahl von Bits in einem Codewort (n«k+r) bezeichnet 1st.
Gemäß Hamming muß ein Einzelfehler-Korrekturcode (Distanz » 3) folgender Beziehung genügen:
2r£ k+r+1, (Gleichung 1)
während ein Einzelfehler-Korrekturcode mit einer Doppelfehler-Ermittelung (Distanz 4) folgender Beziehung genügen muß:
21^"1 > k+r (Gleichung 2)
Die minimale Anzahl an PrUfbits für bis zu 247 Datenbits ergibt sich aus der nachstehenden Tabelle 1 für Distanz-3- und Distanz-4-Codes.
030018/082Ö
Datenbits k
2-4
5-11 12-26 27-57 58-120 121-247
r Prüfbit» Distanz 3 Distanz 4
3 4
5 6 7 8
3 4
5 6 7 8 9
Tabelle 1
72 Datenbits erfordern somit acht PrUfbits oder ein Codewort alt insgesamt 80 Bits.
Der Wert der für eine Einzelfehlerkorrektur erforderlichen PrUfbits kann dadurch gewonnen bzw. abgeleitet werden, daß eine Haralng-Parltätematrix (Η-Matrix) gebildet wird, die aus η Spalten und r Zeilen besteht. Jede Spalte ist einem Bit des Codewortes zugehörig. Die Einträge der H-Matrix entsprechen den Koeffizienten der Codewortbits; sie sind auf einen Wert von 0 oder 1 begrenzt. Jede Zeile definiert dann eine Gleichung, die die Modulo-2-Summierung der Zeilen-Koeffizienten multipliziert mit dem zugehörigen Codewortbit ist. Der durch diese Summation gebildete resultierende Spaltenvektor wird als Syndrom bezeichnet. Wenn sämtliche Bits des Codeworts richtig sind, dann sollte das Syndrom Null sein. Wenn ein einzelnes Bit des Codeworts fehlerhaft 1st, dann wird das Syndrom gleich der Spalte von Koeffizienten in der H-Matrix entsprechend dem fehlerhaften Bit sein. In entsprechender Weise können die r-Zeilen-Grleichungen dazu herangezogen werden, den Wert der r-PrUfblte auf die Erzeugung des Code^yortes hin festzulegen.
Nach Hamming gelten folgende beiden sehr einfachen Regeln
030018/0820
zur Bildung der Werte der Η-Matrix für eine Einzelfehle rkorrektur s
1) 3s sind keine nur Nullen enthaltende Spalten vorzusehen, und Z) Jede Spalte muß von den übrigen verschieden sein.
Die Ordnung der Spalten (oder in äquivalenter Weise die Zuordnung von Codevrortblts zu den Spalten) ist vollständig beliebig, weshalb eine große Vielzahl von Matrixzuteilungen möglich ist.
Für eine Doppelfehlerermittelung sowie für eine Einzelfehler-Korrektur (d.h. bei einem Distanz-4-Code) wird ein dritter Zustand bei der Bildung der Η-Matrix festgelegt. Nach Hamming handelt es sich hierbei darum, daß eine Zeile der Η-Matrix insgesamt Einsen enthält. Dies bedeutet, daß ein Prüfbit eine Gesamt-Paritätsprüfung darzustellen hat. Es ist von anderen seit diesem Zeitpunkt gezeigt worden, daß diese Regel von Hamming durch folgende Regel ersetzt werden kann* 3) Jede Spalte der H-Matrix muß eine ungerade Anzahl von Einsen für einen Distanz-4-Code enthalten.
Der offensichtlichste Vorteil der "ungeraden Spalten-Regel" gegenüber der Hamming-Regel, wonach insgesamt nur Einsen vorhanden sind, besteht darin, daß gegenüber Hamming die Forderung nach einer Paritätspyramide bzw. nach eine« Paritätebaum vermieden ist, wobei sämtliche η Bits eines Codewortes erforderlich sind.
Unter Heranziehung der obigen drei Regeln kann eine Η-Matrix für eine Einzelfehlerkorrektur und Doppelfehlerermittelung festgelegt werden. Das Verbleibende Problem besteht dann darin, wie man eine der vielen möglichen H-Matrixanordnungen wählt, die die effizienteste
030018/0820
Hardware-Ausfuhrung liefert.
Ee 1st eine Sektor-Matrix (S-Matrix) als m Spalten und r Zellen enthaltende Matrix festgelegt worden. Auch hler legt die Grüße r die Anzahl der PrUfbits fest, während η als die nächste ganze Zahl definiert ist, die gleich oder größer ist als das Verhältnis von n/r.
Für n-80 (k-72 Datenbits + r-8 PrUfbits) hat die S-Matrix eine Größe von m»1O Spalten zu acht Zellen. Die Matrix gleicher Größe wäre erforderlich fUr eine Größe η von 79,78,77,76,75,74 oder 73.
Die Spalten der Einsen und Nullen sind der S-Matrix unter Beachtung der folgenden Regeln zugeteilt: 1) Jede Spalte der S-Matrix muß eine ungerade Anzahl von Einsen enthalten, und 2) jede Spalte der S-Matrix nuß so gewählt sein, daß die Zeilenwerte der betreffenden Spalte von 1- in (r-1)-Positionen gedreht werden können, ohne daß eine Verdoppelung irgendeines der resultierenden Spaltenmuster oder irgendeines anderen spaltenmusters auftritt.
Diese Regeln treffen ebenso zu für eine Η-Matrix zur Einzelfehlerkorrektur und Doppelfehlerermittelung, wie sie oben angegeben worden ist, wobei ein zusätzlicher Zwang bezüglich der Eindeutigkeit der Spalten auferlegt ist. Dies bedeutet, daß nicht nur jede Spalte eindeutig sein muß, sondern daß außerdem jede mögliche Drehung der Spalte eindeutig sein muß.
So könnte beispielsweise eine Spalte von 1 und nur einer "1N von der 1-Position in die (r-1) Position gedreht werden, wobei jede Drehung ein anderes Spaltenmuster hervorrufen wurde. Zwei derartige Spalten wären jedoch nicht akzeptabel. So wären beispielsweise «ine
030018/0820
29Λ1868
Spalte von 00100 und eine weitere Spalte von 10000 nicht akzeptabel, obwohl die betreffenden Spalten sich voneinander unterscheiden, da nämlich eine Drehung von 10000 in die 2-Position zur Duplizierung der 00100-Spalte führt. Ebenfalls wäre eine Spalte mit einer ungeraden Zahl von Einsen und keinen Nullen nicht akzeptabel, da Jede Drehung einer derartigen Spalte zu ihrer Duplizierung führen würde.
Bei einer acht Zeilen umfassenden S-Matrix sind die zulässigen Spaltenmuster Jene, die in der nachstehenden Tabelle 2 für jegliche Drehungen angegeben sind. Ea sei darauf hingewiesen, daß eine acht Zeilen umfassende S-Matrix nicht mehr als 16 Spalten aufweisen kann.
1 aus 8 3 aus 8 5 aus 8 7 aus
1 1 1 1 1 1 1 1 O O O Ö ό ό O O
O r-t 1 1 1 1 O O O L O O O 1 1 tH
O 1 O O O O 1 O O 1 1 1 1 3 1 1
O O 1 O O O O 1 1 O 1 1 1 1 O 1
O O O 1 O O 1 O 1 1 O iH 1 O 1 1
O O O O 1 O O O 1 1 iH O r-f 1 1 1
O O O O O 1 O 1 1 1 1 1 O 1 O 1
O O O O O O O O 1 1 -I 1 1 1 1 1
Tabelle 2
Aus Erfahrung heraus dürfte ersichtlich sein, daß bei vorgegebenen r Zeilen und einer Anzahl χ von Einsen pro Spalte der ganzzahlige Teil des Ausdrucks (r-1)!/x! (r-x)! die Anzahl von akzeptablen Spalten mit χ Einsen bezeichnet. Der Ausdruck r!/xl (r-x)! gibt die Anzahl von Kombinationen von χ Einsen in r Bits an, was auf die Teilung durch r zu dem Ausdruck (r-1)!/x!(r-x)! führt.
Die Wahl der zu verwendenden bzw. verwendeten möglichen Spaltenmuster für die Matrix ist mit Ausnahme des
030018/0820
PrUfbite willkürlich. Die S-Matrix muß eine Spalte mit einer einzigen 1 enthalten, die für das Prüfbit zu reservieren ist. Diese Regel gestattet es, dieselben Teile symmetrisch für die Erzeugung der PrUfbits sowie für die Prüfung des Codewortes auszunutzen.
Nachdem eine S-Matrix ausgewählt worden ist, kann eine Η-Matrix durch eine Horizontal-Verkettung der S-Matrix mit Jeder der r-1 vertikalen Drehungen der S-Matrix gebildet werden. Die Ordnung der Verkettung ist beliebig, was auch für die Ordnung der Spalten in der S-Matrix zutrifft. Geht man beispielsweise von der S-Matrix mit acht Zellen, R(1i8) und Jeweils 10 Bits aus, dann könnte die H-Matrix wie folgt aussehent
R2 R3 R4 R5
R6 R7 R8
R2 R3 R4 R5 R6 R7 R8
Rl
R3 R4 R5 R6 R7 R8 Rl R2
R4 R5 R6 R7 R8 Rl R2 R3
R5 R6 R7 R8 Rl R2 R3 R4
R6 R7 R8 Rl R2 R3 R4 R5
R7 R8 Rl R2 R3 R4 R5 R6
R8 Rl R2 R3 R4 R5 R6 R7
(D
Die Bedeutung der Aufstellung der S-Matrix zur Gewinnung der Η-Matrix besteht darin, daß nunmehr aus der S-Matrix eine gemeinsame integrierte Schaltung hohen Integrationsgrades festgelegt werden kann. Jeder S-TeIl wird dann einzeln angegeben, indem die Zuteilung der Paritäts-Syndromblts zu den Anschlußstiften des S-Teiles gedreht wird. Dies wird im Zusammenhang mit der Erläuterung des S-Teiles weiter unten noch näher ersichtlich werden.
Es sei darauf hingewiesen, daß die erzielte H-Matrix mehr Spalten als erforderlich aufweisen kann. So 1st beispielsweise oben ausgeführt worden, daß dieselbe
030018/0820
S-Matrix in dem Fall verwendet würde, daß die Grüße η einen Wert von 80, 79, 78, 77, 76, 75, 74 oder 73 aufweist. Bei n«73 weist somit die obige Η-Matrix sieben Extraspalten auf. Die betreffenden Extraspalten können dem Null-Operator (d.h. der Konstante n0") zugeteilt werden anstatt einem Daten- oder Prüfbit. Im allgemeinen kann irgendein kleineres Codewort einer größeren H-Matrix dadurch zugeteilt wrden, daß die .tixtraspalten genullt werden.
Es sei ferner darauf hingewiesen, daß es in gewissen Fällen möglich ist, genügend Spalten zu ermitteln, die den Regeln zur Erzeugung der S-Matrix genügen. Dies tritt in dem Fall auf, daß eine ungenügende Redundanz dafür vorhanden ist, solche Spaltencodes abzudecken, die zurückgewiesen werden, da sie auf eine Drehung hin eich selbst duplizieren.
So erfordern beispielsweise elf Datenbits fünf Prüfbits für ein Einzelfehlerkorrektur-Doppelfehlerermittelungs-Codewort. Die gesamte Anzahl der Bits beträgt 1b, weshalb n/r-16/5-31/5 ist. Die« bedeutet, daß die Anzahl der S-Matrixspalten gleich m«4 sein muß. Es sind Jedoch lediglich drei Klassen von Spaltenmustern von fünf Bits vorhanden, die den weiter oben angegebenen Regeln genügen. Hierbei handelt es sich um die folgenden Spaltenmuster oder um irgendwelche ihrer Drehungen:
1 aus 5 3 aus 5
1 1 1
0 1 1
0 1 0
0 0 1
0 0 0
030018/082Ö
Eine weitere Spalte, die sämtliche Kriterien erfüllt und die sich allerdings auf eine Drehung hin selbst dupliziert, ist die insgesamt aus Einsen bestehende Spalte 11111. Es kann jedoch festgestellt werden, daß es sich bei einer fünfmal gedrehten S-Matrix mit drei Spalten um die einzige Kurzform mit der erforderlichen Anzahl von erforderlichen Codebits handelt. Dies bedeutet, daß durch eine Verwendung einer insgesamt aus Einsen bestehenden Spalte die Forderung erfüllt werden könnte. Deshalb besteht die Lösung des Problems darin, die HinzufUgung solcher ^»palten zu der S-Matrix zu ermöglichen, die sämtliche Kriterien mit Ausnahme der Selbstdupllzierung auf Drehung hin erfüllen. Wenn diese eingeschränkte S-Matrix zur Bildung der Η-Matrix gedreht wird, dann weist die resultierende Η-Matrix eine Anzahl von Doppelspalten auf, und zwar wegen der nicht übereinstimmenden S-Matrixspalte. Lediglich eine dieser Spalten kann einem Datenbit zugeteilt werden. Den anderen Spalten muß eine O-Zutellung gegeben werden. Deshalb könnte die 5x4-S-Matrix mit der begrenzten bzw. eingeschränkten Spalte wie folgt aussehen:
Ί 1 1 i
0 111
0 10 1
0 0 11
0 0 0 1
(2)
die resultierende Η-Matrix weist folgenden Aufbau auft
_C1 di d2 Il O" C2 d3 d4 Il 0" C3 d5 d6 "0" C4 d7 d8 HQ Il C5 d9 d10 d
1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 i
O 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1
O 1 O 1 0 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1
O O 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1
O O 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1
030Ö18/082Ö
In Fig. 1 ist ein Funktionsdiagramm des in hohem Integrationsgrad ausgeführten S-Teiles veranschaulicht. Die betreffende Anordnung umfaßt einen Satz von Paritäts-Bäumen bzw. -Pyramiden 2 zur Erzeugung der Parität für jede durch die S-Matrix festgelegte Zeilen. Jeder Paritätsgenerator 2 erhält als Eingangssignale die m-Codebits (unkorrigiert) zugeführt. Die Paritätsgeneratoren führen eine Exklusiv-ODER-Punktion bezüglich jener Codebits aus, die in jeder Zeile der S-Matrix durch eine 1 markiert sind.
Ein r-Eingänge aufweisender Paritätsbaum 4 verknüpft jeweils eine anders numerierte Zeile - und zwar eine Zeile von jedem der S-Teile - um ein Syndrombit der H-Matrix auf eine PrUfoperation hin oder ein Prüfbit auf eine Erzeugungsoperation hin zu bilden. Der Paritätsbaum und der Syndromgenerator 4 sind ei-gangsseitig an den Ausgängen von Zeilen-Speisegeneratoren 2 angeschlossen.
Ein Satz von r-aus-1-Decodern 6 nimmt die r Syndrombits (gedreht) auf und überprüft den für die jeweilige Spalte der S-Matrix in Frage kommenden H-Matrix-Syndromcode. Die Syndrom-Eingangssignale müssen entsprechend der Drehung der verwendeten S-Matrix gedreht werden, um den entsprechenden Sektor der Η-Matrix zu bilden. Schließlich wählt ein Satz von Schaltern 8 einen Komplementwert oder den tatsächlichen Wert des jeweiligen Datenbits aus, und zwar in Abhängigkeit davon, ob der entsprechende Spaltencode ermittelt worden ist oder nicht. Die Schalter 8 sind eingangsseitig an den Decodern 6 angeschlossen; sie erhalten die m unkorrigierten Codebits und erzeugen an ihren Ausgängen m korrigierte Codebits· Ferner 1st ein ODER-Funktionsglied 10 eingangsseitig an den Ausgängen der m-Decoder 6 angeschlossen, um eine Korrekturanzeige zu liefern.
030018/082Ö
Ee sei darauf hingewiesen, daß In Flg. 1 lediglich ein AusfUhrungsbelsplel eines In hoher Integration ausgeführten S-Teiles veranschaulicht 1st. Ss sei Jedoch bemerkt, daß eine Anzahl von Abweichungen und Zusätzen zu dieser AusfUhrungsform welter unten noch erläutert werden wird.
Un die Paritätsbäume zur Erzeugung der Zellenpar!täten der S-Matrix zu minimieren, sollten die Spalten für die S-Matrix auf der Grundlage der minimalen Anzahl von Einsen pro Zelle ausgewählt werden. Dies bedeutet, daß sämtliche Dreier-1-Spalten aufgebraucht werden sollten, bevor Spalten mit einer größeren Anzahl von Einsen verwendet werden. Sodann soUte die Auswahl aus den verfügbaren fünf Einsen-Spalten vorgenommen werden, usw.. Eine derartige Anordnung für eine 8-zu-10-S-Matrix weist folgenden Aufbau aufι
s =
C bo bl b2 b3 b4 b5 b6 b7 b8
1 1 1 1 1 1 1 1 0 0
0 1 1 1 1 1 0 0 0 0
0 1 0 0 0 0 1 0 0 1
0 0 1 0 0 0 0 1 1 0
0 0 0 1 0 0 1 0 1 1
0 0 0 0 1 0 0 0 1 1
(3)
Bei dieser Anordnung handelt es sich um eine der vielen möglichen Anordnungen, die 32 Einsen enthalten, welche die minimal mögliche Anzahl für diese Matrix darstellen. Der nächste Schritt besteht darin, die Spalten zu drehen, um eine minimale Anzahl von Einsen pro Zelle zu erhalten. Dies sollte bei 32/8 * 4 der Fall sein. Die Spalten bQ, by, b<|, bg sind komplementär und brauchen nicht gedreht zu werden. Das Problem reduziert sich dann auf die Drehung der Spalten b2 bis bg und der PrUfbltepalte c, so daß nicht
030018/0820
mehr als zwei Zinsen in irgendeiner der verbleibenden Zeilen auftritt. Eine 10x8-S-Matrix mit einer minimalen Paritätszeile könnte folgendes Aussehen aufweisen:
110 0 10 0 10
Byteparität » = Pi©P6(+)b3
ist ein Exklusiv-ODER bezeichnet.
Mit dem Zeichen
Eine Alternative zu der S-Matrix mit minimaler Paritätszeile besteht darin, die Anzahl der Zeilen zu minimieren, bezüglich der eine Parität zu erzeugen ist. Dies bedeutet, daß es ohne weiteres einzusehen sein dürfte, daß eine insgesamt aus Nullen bestehende Zelle dadurch erhalten werden kann, daß die letzten beiden Spalten gedreht werden. Ein Vorteil dieser Maßnahme liegt darin, daß dadurch einer der Zeilenparitätsbäume eliminiert ist und daß möglicherweise - was noch weit wichtiger ist -ein Zeilenparltäts-Anschlußstift für die mit hoher Integrationsdichte ausgeführte integrierte Schaltungspackung eliminiert ist. Der zweite Vorteil der Verwendung einer lediglich Nullen enthaltenden Zeile besteht darin, daß sie bei einer sieben Zeilen umfassenden S-Matrix weggelassen werden könnte, wobei selbstverständlich einige Spalten, die nicht mehr eindeutig
030018/0820
wären, eliminiert würden. Dies würde die Verwendung des mit hoher Integrationsdichte ausgeführten integrierten Schaltungsteiles für kleinere V/ortgrößen ermöglichen, die lediglich sieben Prüfbits anstelle von acht Prüfbits erforderten, beispielsweise bei 32- oder 36-Datenwörtern.
Die eine Null-Zeile umfassende 10x8-S-Matrix kann dadurch gebildet werden, daß zunächst eine sieben Zeilen aufweisende S-Matrix gebildet wird.
11111111
01111010
01000111
00100011 ,_v
00010111
00001001
00000000
Diese S-Matrix kann dann in eine S-Matrix mit einer Minimal-Parltäts-Zeile dadurch umgewandelt werden, daß die Spalten gedreht werden:
01010100 01010001 01100110 00101011 00010111 00101011 10001011
Eine insgesamt Nullen enthaltende Zeile und zwei zusätzliche Spalten werden der 8x7-S-Matrix hinzugefügt, um die gewünschte 10x8-S-Matrix zu erhalten. Dies führt dann zu der nachstehend angegebenen S-Matrixι
030018/0820
bO bl b2 b3 b4 b5 b6 b7
1 1
O O
10 0 0
0 0
0 0
0
0
0
0 0
! ο 1
\ 1 0
' 0 0
1 0 1
1 1 0
1 ι 0
1 0 1
0 0 .
Byteparität » P1® P6
Die Syndrombits für ein 8-PrUfbit-Codewort (bis zu 72 Detenbits) sind durch die Η-Matrix ( (1) siehe oben) wie folgt gegeben:
Sl S2 S3 S4 S5 S6 S7 S8
dabei ist mit PiJ die i-te Zeilenparität des j-ten S-Tei-Ies bezeichnet. Die obigen Angaben legen die Verdrahtung zwischen den Zeilenparitäts-Ausgängen des S-Teiles und den Syndrom-Paritätsgeneratoren fest. Bei einem 7-Prüfbit-Codewort (bis zu 49 Datenbits) sind folgende Syndrome gegeben: si =
030018/0820
- 30-
Dabei müssen die Eingangsgrößen b~ und bQ für den S-Teil gleich Null gesetzt werden. Hier wird derselbe S-Teil wie für die 8-Prtlfbit-AusfUhrung verwendet, wobei der einzige Unterschied in der Verdrahtung zwischen dem S-Teil und den Syndrom-Paritötsgeneratoren besteht.
Wenn in den Daten- oder Prüfbits kein Fehler vorhanden ist, dann weist das Syndrom S einen Wert von Null auf. Wenn ein einzelnes Codewortbit fehlerhaft ist, dann wird das Syndrom oder irgendeines seiner Drehungen mit einer der Spalten der S-Matrix Übereinstimmen. Wenn der Vektor X[j] als Syndrom-Singangsgröße des J-ten S-Alles definiert wird, dann wird die Beziehung zwischen x£j] und dem H-Mafcrix-Syndrom, S, ebenfalls aus der H-Matrix (1) wie folgt abgeleitet:
X[I] = Sl, S8, S7, S6, S5, S4, S3, S2 X[2] = S2, Sl, S4, S5, S6, S7, S8, Sl X[3] = S3, S2, Sl, S6, S7, S8,_S1, S2 X[4] = S4, S3, S6, Sl, S8, Sl, S2, S3 X[5] = S5, S4, S7, S8, Sl, S2, S3, S4 X[6] = S6, S5, S8, Sl, S2, Sl, S4, S5 Xf7] = S7, S6, Sl, S2, S3, S4, Sl, S6 X[8] = S8, S7, S6, S5, S4, S3, S2, Sl
Durch die obigen Angaben ist die Verdrahtung zwischen den Syndrom-Paritätsnetzwerken und den Eingängen der Korrektur-Decodierschaltung in dem S-Teil festgelegt.
Die NXR-Vektor-Eingang8größen werden dann entsprechend den S-Matrix-Spalten decodiert. So zeigt die S-Matrlx (7) beispielsweise an, daß die Dateneingangsgröße bQ dann zu komplementieren ist, wenn die Eingangegrößen Xitj] , X2fd] und X3CJ7 Einsen und wenn die übrigen X C JJ-Eingangsgrößen Null sind. Die Korrekturschaltung nimmt somit
050018/0820
eine Exklusiv-ODER-Funktion des Datenbits mit dem Ausgangssignal der entsprechenden Decodierschaltung vor.
Wenn eine externe Anzeige darüber gewünscht wird, welches Bit korrigiert worden 1st, dann kann dies durch eine Exkusiv-ODER-Verknüpfung des Eingangscodewortes und des Ausgangs von dem S-TeIl vorgenommen werden. Alternativ dazu könnten die Ausgangssignale der Decodlerschaltungen von dem S-TeIl abgegeben werden, und zwar anstelle der korrigierten Daten, und die Korrektur könnte durch Exklusiv-ODER-Glieder durchgeführt werden, die außerhalb des S-Teiles vorgesehen sind. Der Chip kann außerdem so ausgelegt sein, daß Jede Alternative ausgenutzt werden kann.
Eine derartige Anordnung ist in Fig. 2 veranschaulicht. Dem Korrektur-Exklusiv-ODER-Glied 12 ist ein UND-Glied 14 in dem Datenweg vorgeschaltet. Der andere Eingang des UND-Gliedes 14 1st mit einer gemeinsamen Steuerleitung 16 verbunden, die ein 1-Signal dann führt, wenn das Ausgangssignal das korrigierte Datensignal sein soll. Die betreffende Steuerleitung führt ein O-Signal hingegen dann, wenn das Ausgangssignal das Korrektur-Decodierunge-Ausgangssignal sein soll. Der Ausgang des UND-Gliedes 14 ist mit dem Sxklusiv-ODER-Glied bzw. der betreffenden Verknüpfungsschaltung 12 verbunden. Das zweite Eingangssignal für die Exklusiv-ODER-Schaltung 12 stammt von der Decodierschaltung her.
Eine noch weitere AusfUhrungsform läge darin, die auf den zehn Korrektur-Decodierleitungen auftretenden Signale in einen 4-Leitungs-Bitpositionscode zu codieren, wobei eine fünfte Leitung dazu dient, den Sektor des Codewortes anzugeben, bei dem diese Korrektur stattfindet. Dies würde fünf Anschlußstifte an dem S-TeIl einsparen. Andererseits würde diese Maßnahme Jedoch die Decodier- und Korrekturschaltung als außerhalb des S-Teiles erfordern.
020018/0820
Wenn genau zwei Bite des Codeworts fehlerhaft sind, dann enthält das Syndrom eine gerade Anzahl von Einsen. Außerdem wird jedes Vielfache von zwei fehlerhaften Bits ebenfalls ein Syndrom mit einer geraden Anzahl von Einsen liefern oder ein Syndrom, das insgesamt aus Nullen besteht. Dies ist eine Eigenschaft, gemäß der stets eine ungerade Anzahl von Einsen in der H-Matrix vorhanden ist. Deshalb wird eine gerade Anzahl von Fehlern niemals eine fehlerhafte Korrektur bewirken, und sämtliche Doppelfehler werden ermittelt. Eine ungerade Anzahl von Fehlern, die größer ist als 1, kann eine fehlerhafte Korrektur hervorrufen. Dies bedeutet, daß dabei dasselbe Syndrom wie bei einem Einzelfehler hervorgerufen wird. Bei der 80xß-Blt-H-Matrix werden jedoch lediglich 80 der 120 möglichen ungeradzahligen Einser-Kombinationen von acht Bits für die Korrektur ausgenutzt, weshalb einige Vielfache ungeradzahliger Fehler ermittelt werden.
Durch odermäßiges Zusammenfassen der Syndrombits wird ein 1-Ausgangssignal dann erzeugt, wenn irgendein korrigierbarer oder nicht korrigierbarer Fehler ermittelt wird. Gemäß Fig. 3 werden jedem S-Teil 18 die Syndrombits zugeführt. Außerdem liefert jeder S-Teil ein Ausgangssignal, welches eine Angabe darüber liefert, ob ein korrigierbarer Fehler bei irgendeinem der in den S-TeIl eintretenden Codebits ermittelt worden ist. Diese Ausgangssignale werden in einem UND-Glied 20 undmäßig mit dem Ausgangssignal des Syndrom-ODER-Gliedes 22 unter Lieferung eines Ausgangssignals verknüpft, welches eine Angabe darüber liefert, daß ein nicht korrigierbarer Mehrfachbitfehler ermittelt worden ist. Alternativ dazu könnte ein auf eine gerade Anzahl von Einsen ansprechender Detektor in den S-TeIl eingebaut werden, und eine Ermittelung eines mehrfachen ungeraden Fehlers könnte unberücksichtigt bleiben, da die Wahrscheinlichkeit
030018/0820
des Auftretens sehr gering ist und da die meisten mehrfachen ungeradzahligen Fehler im Falle ihres Auftretens zu irgendeiner fehlerhaften Korrektur führen.
In vielen Anwendungsfällen ist es erwünscht» eine Byte-Parität zu erzeugen. Unter Verwendung der S-Matrix (7) wird eine Byte-Parität dadurch erzielt, daß die Paritäts-Ausgangssignale der Zeile 1 und der Zeile 6 entsprechend einer Dxklusiv-ODER-Funktxon verknüpft werden. Wenn in dem betreffenden Byte ein Fehler ermittelt wird, dann wird die Byte-Parität invertiert. Dies kann durch eine Exklusiv-ODER-Schaltung erfolgen, die innerhalb oder außerhalb des S-Teiles vorgesehen ist. Alternativ dazu könnte die Parität anstelle des korrigierten Prüfbits ausgegeben werden. Der Chip kann außerdem so ausgelegt sein, daß die Wahlmöglichkeit gegeben ist, entweder das Prüfbit oder das Byte-Paritätsbit von dem S-TeI? abzugeben.
In Fig. 4 sind in einem Blockdiagramm die Eingangssignale zu und die Ausgangssignale von der Fehlerdetektor- und Fehlerkorrekturanordnung gemäß der vorliegenden Erfindung veranschaulicht. Jede Fehlerdetektor- und Fehlerkorrekturanordnung verarbeitet ein Datenbyte, wie dies in Fig. als IO bis 18 angedeutet ist. Außerdem weist Jede derartige Anordnung einen Prüfbiteingang IC und ein Byte-Paritätsbit BP auf. Fünf Zwischensektormatxix-Paritätsausgänge P0-P5 von der Jeweiligen Fehlerdetektor-und Fehlerkorrekturanordnung sind mit den Sektormatrix-Paritätseingängen Q0-Q5 einer anderen Fehlerdetektor- und Fehlerkoxrekturanordnung verbunden, wie dies aus der nachstehenden Tabelle 3 ersichtlich ist. Die Zwischensektormatrix-Paritätsausgangssignale von Jedem der acht Fehlerdetektor- und Fehlerkorrekturanordnun-gs-Chlps sind in der nachstehenden Tabelle 4 aufgeführt.
030018/0820
-JW-
Chip Chip Chip - 22> Chip Chip 2941868 Chip
0 1 2 Chip Chip 5 6 7
P55 P56 P57 3 4 P52 P53 P54
Q5 P4 6 P4 7 P40 P50 P51 P4 3 P44 P4 5
Q4 P37 P30 P31 P41 P4 2 P34 P35 P36
Q3 Pll Pl 2 Pl 3 P32 P33 Pl 6 Pl 7 PlO
Ql PO 2 P03 P04 Pl 4 Pl 5 PO 7 POO POl
QO PO 5 PO 6
Tabelle 3
Chip Chip Chip Chip Chip Chip Chip Chip
01234567 P50 P51 P52 P53 P54 P55 P56 P57 P4 0 P41 P4 2 P4 3 P44 P45 P46 P4 7 P30 P31 P32 P33 P34 P35 P36 P37 PlO Pll P12 P13 P14 P15 P16 P17 "POO ?01 p"02 P03 P04 P05 P06 P07
Tabelle 4
Unter Ausnutzung der oben beschriebenen Verfahren gelangt man zus
s =
Prüf
bit
Ro Rl R2 R3 R4 R5 R6 R7 P
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 1 0
1 0 0 1 0 0 1 0 1
0 1 0 1 0 1 0 1 1
0 0 1 1 0 0 1 1 0
0 0 O 0 1 1 1 1 O
0
0
0
0
0
1
0
0
Somit gelangt man zu
030018/0820
Das oben angegebene Rß-Mngangssignal kann bei einem Θ-Bit-Byte zu Null gemacht werden.
Für die Η-Matrix gilt somit:
Byte Byte Byte Byte Byte Byte Byte Byte S7
0 1 2 3 4 5 6 7 S6
PlO POl 0 0 P54 P45 P36 P27 = S5
POO 0 0 P53 P44 P35 P26 P17 = S4
0 0 P52 P43 P34 P25 P16 P07 = S3
0 P51 P42 P33 P24 P15 P06 0 = S2
P50 P41 P32 P23 P14 P05 0 0 = Sl
P40 P31 P22 P13 P04 0 0 P57 = SO
P30 P21 P12 P03 0 0 P56 P47 =
P20 Pll P02 0 0 P55 P46 P37 =
Jeder der Fehlerdetektor- und Fehlerkorrekturanordnungsteile liefert somit den Wert eines Syndrombits S1 wie dies in Fig. 4 veranschaulicht ist. Sieben der acht Syndrom-Ausgänge sind mit Jedem der Fehlerdetektor- und Fehlerkorrekturanordnungs-SyndromeingangsanschlUsse (JO-J7) in Fig. 4 verbunden, wie dies aus der nachstehenden Tabelle 5 ersichtlich ist.
0300 18/0820
-96-
Chip
0
Chip
1
Chip
2
Chip
3
Chip
4
Chip
5
Chip
6
Chip
7
J7 S5 S6 S7 SO Sl S2 S3 S4
J6 S4 S5 S6 S7 SO Sl S2 S3
J5 "S3 SA Έ5 S"6 37 "SO "Sl Έ2
J4 32 S3 "S4 S5 S~6 5*7 SO Sl
J3 Sl "S2 "S3 "S4 S~5 S6 S7 SO
Tl "S7 το ■si "S2 "S3 Έ4 "S5 S6
JO "S6 "S7 SO "Sl 32 Γ3 S4 35
Tabelle 5
Sämtliche Eingangs- und Ausgangssignale bei der Anordnung gemäß Fig. 1 werden in Abstimmung auf 9-Bit-Bytes ausgeführt. Bei 8-Bit-Bytes kann irgendeiner der neun Datenbit-üingänge permanent so verdrahtet sein, daß er einen Verknüpfungsvert von O führt, und das entsprechende Ausgangssignal bleibt unberücksichtigt.
In Fig. 4 sind ferner die verschiedenen Speisespannungseingänge VCCI, VCC2 und der Erdungseingang GND angedeutet. Von der betreffenden Anordnung wird ferner ein ICinzelbit-Pehlersignal SBi erzeugt.
Fig. 5 zeigt in einen näher ausgeführten Blockdiagramm die Fehlerdetektor- und Fehlerkorrekturanordnung gemäß der Erfindung. Die Datenbits 10-18 werden den Eingängen eines 10-Bit-Registers 24 zugeführt. Das Prüfbit und das richtige Signal werden den Eingängen eines NAND-Gliedes 26 zugeführt, welches ausgabeseitig in entsprechender Weise mit einem Eingang des Registers 24 verbunden ist. Die Ausgangssignale an den Ausgängen RC und R0-R8 werden dem Byte-Syndromgenerator 28 zugeführt, der ausgangsseitig die Matrix-Paritätsausgangssignale PO, PT, p3, P4" und P5 erzeugt. Diese Matrix-Paritätsausgangssignale werden den anderen Byte-Fehlerdetektor- und Fehlerkorrektur-Chips zugeführt. Das Signal P5 wird andererseits dem Wort-Syndromgenerator 30 zugeführt,
Ü2 Ott 18/0820
wie dies aus Fig. 5 ersichtlich ist. In entsprechender Weise werden den Eingängen des Wort-Syndromgenerators die S-Matrix-Paritätssignale von den anderen Byte-Fehlerdetektor- und Fehlerkorrektur-Chips zugeführt. Diese Signale sind in Fig. 5 mit 75δ\ TST, TS3, T35 und T55 angedeutet. Das durch den Generator 30 erzeugte Wort-Syndrombit wird an die Syndrom-Decodiereinheit 32 zusammen mit den Wort-Syndrombits von anderen Fehlerdetektor- und Fehlerkorrekturchips abgegeben, d.h. zusammen mit den Bits 7δ*, Tf, 75, 75 und 75. Das Auegangssignal des NAND-Gliedes 34, dem eingangsseitig die Signale 75 und 77 zugeführt werden, wird ebenfalls der Syndrom-Decodiereinheit 32 zugeführt.
Die Ausgangssignale der Syndrom-Decodiereinheit 32, das sind die Bits £0 bis £8, und das Byte-Fehlersignal werden der VerknUpfungseinheit 36 zusammen mit dem nicht korrigierten Byte-Paritätssignal von dem Byte-Syndromgenerator 28 zugeführt, und zwar zusammen *JLt den Ausgangssignalen RO bis R8 von dem Register 24. Die Ausgangssignale der VerknUpfungseinheit 36 umfassen das korrigierte Datenbyte zuzüglich eines korrigierten Byte-Parltatsaignals.
Die Ausführung bzw. Realisierung ist optimiert; sie wird im Hinblick auf eine Fehlerermittelung und Fehlerkorrektur von Binärwörtern beschrieben, die aus acht Datenbytes zuzüglich von acht modifizierten Hamming-Cod.ebits bestehen, wobei ein Byte entweder acht oder neun Bits umfassen kann. Der Fehlerdetektor- und Fehlerkorrekturteil kann Jedoch auch für andere Wortlängen herangezogen werden. Obwohl die zu beschreibende Anwendung hauptsächlich zur Fehlerermittelung und Fehlerkorrektur/verwendet wird, die in Rechner-Arbeitsspeichern gespeichert ist, kann die betreffende Anordnung jedoch auch dazu herangezogen werden, die Zuverlässigkeit von * einer Information
030018/0820
Steuerspeichern, Notizblockspeichern, schnellen Zwischenspeichern, Daten-Zwischenspeichern und peripheren Einrichtungen zu steigern. Die Realisierung führt zu einer PrUfbit-Erzeugung oder zur Erzeugung eines Doppelfehler-Syndroms in etwa 20 ns und zu einer Einzelbit-Fehlerkorrektur in etwa 40 Nanosekunden.
Es können acht Fehlerdetektor- und Fehlerkorrekturteile des in Fig. 5 dargestellten Typs miteinander verbunden werden, um 1) jeden Sinzelbit-Fehler innerhalb von 72-64 Datenbits zu korrigieren, um 2) einen eindeuti gen Code von acht Codes zu erzeugen, um eine Angabe darüber zu liefern, welches der acht Datenbyteβ oder der zugehörigen Prüfbits einen Fehler während der Einzelfehlerkorrektur aufweist,?)um für Jedes Byte ein Signal zu erzeugen, durch das eine Angabe darüber geliefert wird, ob das abgegebene Byte einen ungeraden oder geraden Paritätswert aufweist, und um 4) ein acht Bit umfassendes Syndrom zu erzeugen, welches einen Doppelbit-Fehler oder einen irgendeine gerade Anzahl von Bits aufweisenden Fehler in dem vollständigen 72-80-Bitwort (Daten zuzüglich Prüfbitβ) durch irgendeinen von Null verschiedenen geraden Paritätswert des Syndrome bezeichnet.
Dieselben oder duplizierten acht miteinander verbundenen Fehlerdetektor- und Fehlerkorrekturteile können außerdem den Codierungsvorgang ausführen. Dies bedeutet, daß die betreffenden Schaltungeteile 1) die modifizierten Hamming-Code-Prüfblts erzeugen, die für den Fehlerermittelunge- und Korrekturprozeß erforderlich sind, und dass 2) das Test-Byteparitätβsignal bezüglich Jedes der acht Bytes im Zuge der Prüfbiterzeugung erzeugt wird.
030018/0820
Fig. 6 zeigt in einem Verknüpfungsschaltplan den Inhalt der Register 24 (Fig. 5). Die Bits des Datenbytes 10-18 werden einem Eingang der Flipflops 38, AO, 42, 44, 46, 48, 30, 52 bzs. 54 zugeführt. Ein Taktsignal wird in entsprechender Weise jedem dieser Flipflops zugeführt, die jeweils ein taktgesteuerteβ Datenausgangssignal R0-R8 erzeugen. Einem zusätzlichen Flipflop 56 wird das Ausgangssignal des NAND-Gliedes zusammen mit dem Taktsignal zur Erzeugung des RC-Signals zugeführt.
Die in dem Byte-Syndromgenerator 28 (Fig. 5) und in dem Wort-Syndromgenerator 30 (Fig. 5) enthaltene VerknUpfungsanordnung ist in Fig. 7 weiter verdeutlicht. Ein ODER-Glied 58 nimmt an einem ersten Eingang und an einem zweiten Eingang die Signale R4 bzw. R5 auf. Ausgabeseitig ist das betreffende ODER-Glied 58 mit einem Eingang eines ODER-Gliedes 74 verbunden. Ein ODER-Glied 60 erhält an seinen beiden Eingängen die Signale R6 und R7 zugeführt. Das Ausgangssignal des betreffenden ODER-Gliedes 60 wird einem zweiten Eingang des ODER-Gliedes 74 und einem ersten Eingang eines ODER-Gliedes 76 zugeführt. Den beiden Eingängen eines ODER-Gliedes 62 werden die Signale R4 und R8 zugeführt, und das Ausgangssignal dieses ODER-Gliedes wird einem ersten Eingang eines ODER-Gliedes 78 zugeführt. Den beiden Eingängen eines ODER-Gliedes 64 werden die Signale R2 und R3 zugeführt, und das Ausgangssignal dieses ODER-Gliedes wird einem zweiten Eingang des ODER-Gliedes 76 und einem ersten Eingang des ODER-Gliedes 80 zugeführt. Das ODER-Glied 66 erhält an seinen beiden Eingängen die Signale R3 bzw. RO; ausgabeseitig ist das betreffende ODER-Glied 66 mit einem zweiten Eingang des ODER-Gliedes 80 verbunden. Der Ausgang des ODER-Gliedes 66 ist in entsprechender Weise mit einem ersten Eingang eines ODER-Gliedes 84 verbunden. Das ODER-Glied 68 erhält die
Q30018/0820
29A1868
Eingangssignale R3 und R8 zugeführt; ausgangsseitig ist das betreffende ODER-Glied 68 mit einem zweiten Eingang des ODER-Gliedes 84 und mit einem ersten Eingang des ODER-Gliedes 86 verbunden. Das ODER-Glied 70 erhält die Eingangssignale R7 und R1 zugeführt; ausgangsseitig ist dieses ODER-Glied mit einem zweiten Eingang des ODER-Gliedes 86 verbunden. Die Signale RC und R5 werden den Eingängen des ODER-Gliedes 72 zugeführt, welches ausgangsseitig mit dem Eingang des ODER-Gliedes 92 verbunden ist.
Die Sektormatrix-Paritätsausgangssignale PO und P1 sind die Ausgangssignale des ODER-Gliedes 74 bzw. des ODER-Gliedes 76. Am Ausgang des ODER-Gliedes 84 wird das Sektormatrix-Paritätssignal P3 abgegeben.
Die Ausgangssignale der ODER-Glieder 78 und 80 werden den Eingängen des ODER-Gliedes 88 zugeführt, welches ausgabeseitig das zweite Matrix-Paritätssignal P5 abgibt. Den ODER-Glied 90 werden eingangsseitig die Ausgangssignale der ODER-Glieder 80 und 82 zugeführt; *s erzeugt ausgangsseitig das Sektormatrix-Paritätssignal P4. Das Ausgangssignal des ODER-Gliedes 86 wird einem zweiten Eingang des ODER-Gliedes 92 zugeführt, welches ausgangsseitig das Sektormatrix-Paritätssignal P2 erzeugt. Schließlich wird einem ersten Eingang des ODER-Gliedes 94 das Signal R5 zugeführt, und einem zweiten Eingang dieses ODER-Gliedes wird das Ausgangssignal des ODER-Gliedes 88 (das ist das Signal P5) zugeführt. Das ODER-Glied 94 erzeugt ausgangsseitig das nicht korrigierte Byte-Paritätsbit PB.
Die Signale 02 und Q3 werden den Eingängen des ODER-Gliedes 96 zugeführt; die Signale Q1 und QO werden den Eingängen des ODER-Gliedes 98 zugeführt, und die Signale 04 und 05 werden den Eingängen des ODER-Gliedes
Q3Q018/0820
zugeführt. Wie oben bereite erwähnt, stellen die Signale QO, Q1, Q3, Q4 und Q5 die Sektormatrix-Paritätssignale von den anderen Byte-Fehlerdetektor- und Fehlerkorrekturchips dar. Die Ausgangseignale der ODER-Glieder 96 und 98 werden den Eingängen des ODER-Gliedes 100 zugeführt, dessen Ausgangssignal einem ersten Eingang des UND-Gliedes 104 und einem ersten Eingang des QDER-Gliedes 106 zugeführt wird. Das Ausgangesignal des ODER-Gliedes 102 bildet das zweite Eingangssignal des UND-Gliedes 104 und des ODER-Gliedes 106. Das Ausgangssignal des UND-Gliedes 104 bildet das intern zu verwendende Syndrombit, und das Ausgangssignal des ODER-Gliedes 106 bildet das auf weiteren Fehlerdetektor- und Fehlerkorrekturchips zu verwendende Syndrombit.
In Fig. 8 sind die Syndrom-Decodier- und Verknüpfungseinheiten gemäß Fig. 5 näher veranschaulicht. Einem NOR-Glied 182 werden eingangsseitig die Syndrom-Auegangssignale J6 und J7 zugeführt; dieses Verknüpfungsglied erzeugt ausgabeseitig ein Freigabesignal EN. Einem Inverter 128 wird das Signal JO zugeführt, der ausgangsseitig das Signal Χδ* abgibt. Dem Inverter 130 wird das Signal J1 zugeführt, der ausgangeeeitig das Signal 3cT abgibt. Dem Inverter 132 wird eingangeseitig das Signal S* von dem UND-Glied 104 (Flg. 7) her zugeführt; er liefert ausgangsseitig das Signal X2. In entsprechender Weise werden die Signale 75, 74" und YS von den Invertem 134, 136 bzw. 138 auf das Auftreten der Signale J3, J4 bzw. J5 hin abgegeben.
Eine Vielzahl von eieben Eingänge aufweieenden UND-Gliedern 108, 110, 112, 114, 116, 118, 120, 122 und 124 liefert die Signale EO bis E8. Sin eieben Eingänge aufweisendes NAND-Glied 126 liefert das Signal SJ. Jedes dieeer UND-Glieder erhält an einem eeiner Eingänge das
18/0820
von dem NDR-Glied 182 erzeugte Freigabesignal zugeführt. Die übrigen sechs Eingänge dieser UND-Glieder sind mit den Syndroo-Ausgängen in der aus Fig. 8 und der nachstehenden Tabelle 6 ersichtliohen Veise verbunden.
UNDUNDUNDUNDUNDUNDUNDUNDUNDUND
108 110 112 114 116 118 120 122 124 126
XO XO XO XO XO XO XO XO XO XO
xT χΤ Xl Xl χ! χΤ Xl Xl χΤ χΤ
Χ2 Χ2 Χ2" Χ2 Χ2~ Χ2 Χ2" Χ2 Χ2 Χ2
Χ3 Xl XT Χ3 χΙ Χ3 Χ3 Xl Χ3 Xl
Χ4 Χ4 Χ4 Χ4 Χ4 Χ4 Χ4 Χ4 XT χΤ
Χ5 Χ5 Χ5 Χ5 Χ5 Χ5 Χ5 Χ5 Χ5
Tabelle 6
Jedes der Ausgängenlgnale E0-E8 wird den Eingängen des NOR-Gliedes 176 zugeführt und in entsprechender Weise durch die Inverter 1AO, 142, 144, 146, 148, 130, 152, 154 und 156 jeweils invertiert.
Ab Ausgang des NOR-Gliedes 176 tritt das Signal error auf, welches de« NAND-Glied 178 und den ODER-Glied 180 zugeführt wird· Das Signal E? wird den zweiten Eingang des NAND-Gliedes 178 zugeführt, ua ein Signal EC + ERROR zu erzeugen. Das Signal PB wird des zweiten Eingang des ODER-Gliedes 180 zur Erzeugung des korrigierten Byte-Parität saignal· zugeführt.
Das korrigierte Datenbyte-Auegangssignal wird wie folgt erzeugt. De» UND-Glied 158 werden die Eingangssignale RO und E? zur Lieferung des Signale QO zugeführt. De«
Q30018/0820
UND-Glied 16O werden die Signale R1 und ΈΤ elngangeseltlg zur Lieferung des Signals Q1 zugeführt. Das Signal 02 wird In entsprechender Welse von dem UND-Glied 162 dadurch erzeugt, daß die Signale R2 und Έ? zugeführt werden. Daa Signal E3 wird von dem UND-Glied 164 erzeugt, dem die Signale R3 und 1? zugeführt werden. Die übrigen Bits 04, Q5, Q6, Q7 und QB werden in entsprechender Weise durch die UND-Glieder 166, 168, 170, 172 und 174 gebildet.
Durch die Erfindung ist also eine Anordnung geschaffen, die zur Durchführung einer Einzelfehlerkorrektur und einer Doppelfehlerermittelung bei Binärwörtern dient, wobei Jeder Bereich der betreffenden Anordnung ein Byte der Ursprungs- bzw. Orlglnaldaten verarbeitet. Jeder Bereich umfaßt erste VerknUpfungseinrichtungen zur Erzeugung einer ersten Vielzahl von Zwischensekt ormatrix-Paritätsausgangssignalen. Eine zweite Verknüpfungseinrichtung nimmt eines der ersten Vielzahl von Zvischensektormatrix-Paritätsausgangssignalen und eine zweite Vielzahl von Zwlschenmatrix-Paritätsausgangaslgnalen von anderen Bereichen auf und erzeugt aus diesen Signalen ein Syndromsignal. Eine dritte Verknüpfungeeinrichtung nimmt dieses Syndromsignal und die Syndromsignale von den anderen Bereichen auf und erzeugt aus diesen Signalen die korrigierten Datenbits.
030018/0820
L e e r s e 11 e

Claims (5)

  1. DIPL. ING. HEINZ BARDEHLE München,
    Aktenzeichen. Mein Zeichen: P 2926
    Patentansprüche
    Ί, Anordnung zur Vornahme einer Fehlerkorrektur und Fehlerermittelung bei Binärwörtern, wobei jeder Anordnungßbereich ein Datenbyte verarbeitet, dadurch gekennzeichnet, daß jeder Anordnungsbereich eine erste Einrichtung zur Aufnahme von Ursprungsdaten, eine mit der ersten Einrichtung verbundene zweite Einrichtung zur Erzeugung einer ersten Vielzahl von Zwischensektormatrix-Paritatsausgangssignalen, eine mit der zweiten Einrichtung verbundene dritte Einrichtung zur Aufnahme eines der ersten Vielzahl von Ausgangssignalen und einer zweiten Vielzahl von Zwischenmatrix-Paritätsausgangssignalen von den übrigen Anordnungsbereichen zur Erzeugung eines Syndromsignals und eine mit der ersten Einrichtung und der dritten Einrichtung verbundene vierte Einrichtung aufweist, die das betreffende Syndromsignal und eine Vielzahl von Syndromsignalen aus den anderen Anordnungsbereichen aufnimmt und daraus die korrigierten Datenbits erzeugt.
  2. 2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die erste Einrichtung eine Vielzahl von taktgesteuerton Flipflops (38,40,42,44,46,48,50,52,54, 56) aufweist, deren Jedem eingangsseitig ein Bit der Ursprungsdaten zugeführt wird.
  3. 3. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die vierte Einrichtung eine Vielzahl von Koinzidenz-Verknüpfungsgliedern (108,110,112,114, 116,118,120,122,124,126) umfaßt, die jeweils ausgewählte Kombinationen der Syndromsignale aufnehmen
    fi30018/0820
    * ORIGINAL INSPECTED
    und die aus diesen Signalen eine Vielzahl von Ausgangssignalen (EO bis £6, W) erzeugen, die mit den Ausgangssignalen der ersten Einrichtung unter Bildung der korrigierten Datenbits (00 bis 08) verknüpft werden.
  4. 4. Anordnung nach Anspruch 3» dadurch gekennzeichnet, daß an den Ausgängen der in einer Vielzahl vorgesehenen Koinzidenz-Verknüpfungsglieder eine fünfte Einrichtung (176) angeschlossen ist, die ein Fehlersignal zu erzeugen vermag.
  5. 5. Anordnung nach Anspruch 4, dadurch gekennzeichnet, daß mit der fünften Einrichtung (176) eine sechste Einrichtung (180) zur Erzeugung eines Byte-Paritätssignals verbunden ist.
    03 00 Ht Os30
DE19792941868 1978-10-16 1979-10-16 Anordnung zur vornahme einer fehlerkorrektur und fehlerermittelung bei binaerwoertern Withdrawn DE2941868A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/952,025 US4241446A (en) 1978-10-16 1978-10-16 Apparatus for performing single error correction and double error detection

Publications (1)

Publication Number Publication Date
DE2941868A1 true DE2941868A1 (de) 1980-04-30

Family

ID=25492501

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792941868 Withdrawn DE2941868A1 (de) 1978-10-16 1979-10-16 Anordnung zur vornahme einer fehlerkorrektur und fehlerermittelung bei binaerwoertern

Country Status (7)

Country Link
US (1) US4241446A (de)
JP (1) JPS5553750A (de)
AU (1) AU5167179A (de)
CA (1) CA1118902A (de)
DE (1) DE2941868A1 (de)
FR (1) FR2439434A1 (de)
GB (1) GB2033118A (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2925966C2 (de) * 1979-06-27 1982-10-28 Siemens AG, 1000 Berlin und 8000 München Verfahren und Anordnung zur automatischen Erzeugung eines Gültigkeitssignals für aus einem Speicher mit wahlfreiem Zugriff gelesene Datenworte
US4414666A (en) * 1981-04-30 1983-11-08 National Semiconductor Corporation Error checking and correcting apparatus
EP0097158B1 (de) * 1981-12-30 1989-02-08 International Business Machines Corporation Informationssystem mit fehlersyndromverwendung für besondere steuerung
JPS61139846A (ja) * 1984-12-12 1986-06-27 Hitachi Ltd 誤り訂正・検出方式
US4736376A (en) 1985-10-25 1988-04-05 Sequoia Systems, Inc. Self-checking error correcting encoder/decoder
US4979173A (en) * 1987-09-21 1990-12-18 Cirrus Logic, Inc. Burst mode error detection and definition
US5140595A (en) * 1987-09-21 1992-08-18 Cirrus Logic, Inc. Burst mode error detection and definition
US5598422A (en) * 1990-04-30 1997-01-28 Dell Usa, L.P. Digital computer having an error correction code (ECC) system with comparator integrated into re-encoder
US5313475A (en) * 1991-10-31 1994-05-17 International Business Machines Corporation ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
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
US5784387A (en) * 1994-10-31 1998-07-21 International Business Machines Corporation Method for detecting start-of-frame, end of frame and idle words in a data stream
US6772383B1 (en) * 1999-05-27 2004-08-03 Intel Corporation Combined tag and data ECC for enhanced soft error recovery from cache tag errors
US6457154B1 (en) * 1999-11-30 2002-09-24 International Business Machines Corporation Detecting address faults in an ECC-protected memory
US6460157B1 (en) * 1999-11-30 2002-10-01 International Business Machines Corporation Method system and program products for error correction code conversion
US6463563B1 (en) 1999-11-30 2002-10-08 International Business Machines Corporation Single symbol correction double symbol detection code employing a modular H-matrix
US6519736B1 (en) * 1999-11-30 2003-02-11 International Business Machines Corporation Generating special uncorrectable error codes for failure isolation
US7506226B2 (en) 2006-05-23 2009-03-17 Micron Technology, Inc. System and method for more efficiently using error correction codes to facilitate memory device testing
JP5353655B2 (ja) * 2009-11-18 2013-11-27 富士通株式会社 エラー検出・訂正符号生成回路及びその制御方法
US8560927B1 (en) * 2010-08-26 2013-10-15 Altera Corporation Memory error detection circuitry
GB201114831D0 (en) * 2011-08-26 2011-10-12 Univ Oxford Brookes Circuit with error correction
US10176040B2 (en) * 2016-04-05 2019-01-08 Micron Technology, Inc. Error correction code (ECC) operations in memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3825893A (en) * 1973-05-29 1974-07-23 Ibm Modular distributed error detection and correction apparatus and method
US3949208A (en) * 1974-12-31 1976-04-06 International Business Machines Corporation Apparatus for detecting and correcting errors in an encoded memory word
US3982226A (en) * 1975-04-03 1976-09-21 Storage Technology Corporation Means and method for error detection and correction of digital data
US4139148A (en) * 1977-08-25 1979-02-13 Sperry Rand Corporation Double bit error correction using single bit error correction, double bit error detection logic and syndrome bit memory

Also Published As

Publication number Publication date
GB2033118A (en) 1980-05-14
JPS5553750A (en) 1980-04-19
CA1118902A (en) 1982-02-23
FR2439434A1 (fr) 1980-05-16
AU5167179A (en) 1980-04-24
US4241446A (en) 1980-12-23

Similar Documents

Publication Publication Date Title
DE2941868A1 (de) Anordnung zur vornahme einer fehlerkorrektur und fehlerermittelung bei binaerwoertern
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE2260850C2 (de) Schaltungsanordnung zur Erkennung von Einzel- und Mehrfachfehlern und zur korrektur von Einzel- und bestimmten Mehrfachfehlern
DE3125048C2 (de)
DE3111447C2 (de)
DE3209679C2 (de)
DE2159108A1 (de) Anordnung zur Erzeugung zyklischer Redundanzprüfzeichen
DE2421112A1 (de) Speicheranordnung
DE2247704A1 (de) Aus monolithisch integrierten schaltkreisen aufgebaute datenverarbeitungsanlage
DE2357168C2 (de) Schaltungsanordnung für einen Speichermodul
DE102006005817B4 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE3727586C2 (de) Datenverarbeitungsanordnung bestehend aus vier im wesentlichen gleich aufgebauten Moduln
DE2157829C2 (de) Anordnung zum Erkennen und Korrigieren von Fehlern in Binärdatenmustern
DE4220196A1 (de) Halbleiterspeichervorrichtung mit fehlerkorrekturschaltung und fehlerkorrekturverfahren fuer daten in einer halbleiterspeichervorrichtung
DE2608435A1 (de) Vorrichtung zur fehlererkennung und fehlerkorrektur in digitalen datenverarbeitungsanlagen
EP0325318B1 (de) Vermittlungsanlage
DE2053836C3 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen
DE2320354C2 (de) Schaltungsanordnung zur Erkennung und Korrektur von Fehlern in Bitgruppen
DE1959231A1 (de) Verfahren und Vorrichtung zur Korrektur von bis zu drei Fehlern eines aus 23 Bits bestehenden Codewortes
DE2752377A1 (de) Fehlerpruefeinrichtung
DE1937249A1 (de) Selbstpruefende Fehlererkennungsschaltung
DE2538802C2 (de) Schaltung zum Nachweis von Fehlern unter den aus Informations- und Prüfbits erzeugten, einen fehlerhaften Speicherort angebenden Bits
DE2441351A1 (de) Schaltungsanordnung zur selbstpruefenden paritaetspruefung fuer zwei oder mehr voneinander unabhaengige datenkanaele
DE2104132A1 (de) Anordnung zur Fehlererkennung und Fehlerkorrektur
DE2908373C2 (de)

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee