DE2160412A1 - Binärdatenumsetzer - Google Patents

Binärdatenumsetzer

Info

Publication number
DE2160412A1
DE2160412A1 DE19712160412 DE2160412A DE2160412A1 DE 2160412 A1 DE2160412 A1 DE 2160412A1 DE 19712160412 DE19712160412 DE 19712160412 DE 2160412 A DE2160412 A DE 2160412A DE 2160412 A1 DE2160412 A1 DE 2160412A1
Authority
DE
Germany
Prior art keywords
register
bit
parity
byte
bits
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.)
Pending
Application number
DE19712160412
Other languages
English (en)
Inventor
William Caswell Ridgefield Conn.; Duke Keith Albert Wappingers Falls; Jessep jun. Donald Cyril Poundridge; N.Y.; Carter (V.St.A.)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2160412A1 publication Critical patent/DE2160412A1/de
Pending 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)

Description

Docket:YO 970
International Business Machines Corporation» Armonk» *J.Y, 10
Binärdatenumsetzer Zusatz zu Patent Nr- 21 32 565
Die Erfindung betrifft einen Binärdatenumsetzer für einen Speicher der paritätsgesicherte zu speichernde Informationswörter in prüfbitgesicherte Informationswörter umwandelt und als solche speichert und diese beim Auslesen prüft und korrigiert und in die paritätsgesicherten Informationswörter zurückumwandelt, wobei die Informationswörter für jeden Byte (Bitgruppe) durch einen Paritätsbit beziehungsweise einen nach einem rotationsfähigen zur Einzelfehlerkorrektur und Doppelfehlererkennung fähigen Kode gebildeten Prüfbit gesichert sind (nach Patent Kr· 21 32 565).
Datenumsetzer nach dem Stammpatent dienen dazu, paritätsgesicherte Informationswörter so zu speichern, daß Fehler, die sich beim speichern, zum Beispiel bedingt durch- fehlerhaft© Magnetkerne eines Magnetkernspeichers» einschleichen, korrigierbar sind· Das ist beim Paritätslcode deshalb nicht der Fall, weil ein solcher Kode es nur gestattet, gewisse Dehler zu erkenneri« Aus diesem Grunde werden nach dem Staimpatent die paritätsgesietert angelieferten Informationswörter in prüfbitgesicherte umgewandelt, ehe sie
209831/0904
- 2 - P 15 969
gespeichert werden und können dann anhand dieser Prüfbits beim Auslesen geprüft und gegebenenfalls korrigiert werden»
Bei der Korrektur eines Informationswortes muß zunächst einmal festgestellt werden, ob überhaupt ein Fehler vorliegt* Liegt ein solcher vor, dann muß festgestellt werden, ob es ein korrigierbarer Einzelfehler oder ein nicht korrigierbare!1 Doppelfehler ist. Ist es ein korrigierbarer Sinzelfehler, dann muß festgestellt werden, welches Byte von diesem Fehler betroffen ist, und dann muß festgestellt werden* welches Bit innerhalb des fehlerhaften Bytes fehlerhaft ist und zum Zwecke der Korrektur invertiert werden muß.
Aufgabe der Erfindung ist es» einen Umsetzer nach dem Stammpatent dahingehend zu verbessern, daß dieser Korrektur vor gang mit einem möglichst geringen Aufwand an Maschinenausrüstung (Hardware) durchführbar ist.
Die Erfindung ist dadurch gekennzeichnet, daß sur Korrektur ein Syndromregister vorgesehen ist, dae mit einem aus einem ausgelesenen prUfbitgeeicherten Inforaationswort abgeleiteten Syndroabitmuster mit einem Syndrombit für jedes Byte dea Informationswortes geladen und ie Takte eines Steuertaktgebers rotiert wird und daß die Bytee des Inforeationewortes im gleichen Takt einzeln nacheinander bitweise parallel durch eine Korrekturschaltung geschleift werden, die für jeden Bit eines Information^ wortbytes einen Korrekturkanal aufweist mit einer logischen Schaltung, deren Steuerslagänge in Abhängigkeit vom jeweiligen Syndroebiteuiter Ip Syndroaibitregieter getastet werden* Sie an dei* Korrektur unmittelbar beteiligte Maschinenausrüstung braucht nicht die Breite eines Infornationswortes au haben, sondern es genügt, sie in Bytebreite auszulegen* Der rotationsfähige Kode gestattet es in Verbindung mit dem vorgesehenen Syndromregister, das fehler-
209831/0904
P 15 969
hafte Byte im Zuge dar Rotatio&stalcfce hera.usaufi.nä®n und in dem Moment, wo es durch die Korrekturschaltung geschleift wird» dort ein r^r'rekturmuster bereitzustellen, das gerade das fehlerhafte Bit invertiert·
Weitere Merkmales Weiterbildungen und Einzelheiten der Erfindung ergeben sich aus der nachfolgenden Beschreibung anhand der beigefügten Zeichnung·
209831/0904
P 15 969
In der Zeichnung zeigt! Figur 1
Figur 2
Figur 3 Figur 4 Figur 5 Figur 6
Figur 7 Figur 8 Figur 9 ein Blockschaltbild eines Umsetzers nach der Erfindung t
die Korrekturschaltung und die damit unmittelbar zusammenwirkenden Schaltelemente eines ersten Ausführungsbeispiels,
die Schaltungselemente, die den in Figur 2 dargestellten entsprechen* für ein zweites Au3führungsbeispie.l*
die schaltungselemente, die den in Figur 2 dargestellten entsprechen ,fürein drittes Ausführungsbeispiel,
die Schaltungselemente, die den in Figur 2 dargestellten entsprechen, für ein viertes Äusführungsbeispiel*
die Schaltelemente für die Fehlererkennung in einer Ausgestaltung v/ie sie £üt alle dargestellten Ausführungsbeispiele verwendbar ist,
ein Flufldiagramm für einen Schreibzugriff,
im Blockschaltbild ein CV Taktgeber, der den Schreibzugriff steuert»
ein Flußdiagramm für einen Lesezugriff,.
209831/0904
- 5 - P 15 969
Figur 10 im Blockschaltbild ein Gl Taktgeber,
der den Leseaugriff steuert»
Figur 11 im Blockschaltbild einen A-Taktgeber
für das Ausfüferungsbeispiel nach Figur 2,
Figur 12 im Blockschaltbild eiaeia B-Taktg@bap
für das AusfÜhrungsbeispiel nach Figur 3,
Figur 13 im Blockschaltbild einen
Figur 14 ' iiffi Blockschaltbild
für das Ausfütoangsbeispiel 5, . ._. - ;
Figur 15 eine Ixclusiv-ODER-Tanaenbauia-
Schaltu&g aus Figur 6 im Detail,
Figur. 16 . einen Block einer
Figur M den Block aus Figur
verschiedenen
Figur 13 ' logische Blockschemata ·£Hr aine ab«
gelinderte Ausgestaltung,·' bai der die Anzahl der Inforsßätio&shytes der Prüfbits voneinander abzeichen
In den Zeichnungen sind beseiolisiet forsobaltungen Mit Invertereohaltungen ait «I«, Verzögerungeeobaltungen nit Szklusiv-Oder-Sohaltungen mit '5EO^, Oder schaltungen mit K0" und ündeohaltungen alt n&".
209831/0904
- 6 - P 15 969
Figur 1 ist ein allgemeines Blockschaltbild des vorliegenden Systemes, welches dessen Hauptfunktionseinheiten zusammen mit dem allgemeinen Datenfluß zeigt. Die aus Figuren 1A und 1B zusammengesetzte Figur zeigt, daß Daten aus dem Speicher über das Kabel 116 dem Register MH zugeführt werden die sowohl die acht Datenbytes als auch die acht Prüf bits des EFiVfcFE-Hamraing-?.od@s, also ein Hamaiag-Xode der Einzelfehler zu korrigieren und Doppelfehler zu erkennen gestattet, umfassen* Das Register MR wird auch von der Zentraleinheit, im folgenden kurz als ZE bezeichnet, geladen, erbSlt in diesen Fall jedoch acht Datenbytes und acht Byte-Paritätsbits· Kabel 116 wird für einen Lesezugriff und Kabel 118 für einen Sehreibzugriff zum Speicher verwendet.» Die acht Datenbytes aus je acht Bits zuzüglich der acht Prüfbits oder Paritätsbits sind nmr für das Ausführungsbeispiel gewählt. Abhängig von ©r5Be und Anzahl der Datenbytes ist eine entsprechende Anzahl von PrIfbits vorzusehen« Im Falle eines Lesezugriffs werden bestimmte ausgewählte Datenbits und Prüfbits der Implementierung einer Paritäts-Prüfmatrix, nämlich der Verbindungsaatrix 2,zugeführt· Im Falle eines Schreibzugriffes werden dieselben ausgewählten Datenbits und das Paritätsbit der Verbindungsmatrix zugeführt· Die Ausgänge der Verbindungsjaatrix führen über die Bxclusivt-ODEä-Sciiältungen 3. zum Kabel 120» welches dann über <Iie Torschaltung i24 an das Register MDE führt· Die Ausgangssignale auf dem Kabel i2Q;..um£assea acht neue Prüfbits beziehungsweise Paritätsbits· Die ursprünglichen Datenbits werden über das Kabel 122 zum Register MDR übertragen· Die Verbindungsmatrix und die Exclusiv-ODER-Schaltungen setzen bei Lesezugriff Prüfbits in Paritätsbits um» während im Falle eines Schreibzugriffes dieselbe Verbindungsmatrix und die Exclusiv-ODER-Schaltungen die Paritätsbits in Prüfbits umsetzen. Bei einem Schreibzyklus wird das Register MDR direkt von der Zentraleinheit ZE geladen, und in diesem Fall besteht das in das Register MDS geladene Wort aus den acht Datenbytes zuzüglich der acht Paritätsbits« Diese Information
209831/0904
- 7 - P 15 969
wird über das Kabel 128 zugeführt· Bei einem schreibzugriff werden das. Register HR und das Register MDR direkt von der ZE über die Kabel 118 beziehungsweise 128 geladen, und zwar weil zuerst einmal die von der ZE kommenden Daten auf richtige Parität überprüft werden müssen und dann die acht Paritätsbits in acht Prüfbits umgewandelt werden müssen, um das Wort im richtigen EFK/bFE-Hamming-Kode zu speichern· Dies erfolgt durch Zuführen des Inhaltes des Registers MR über die Verbindungsmatrix zum Register MDR, wo das Wort über das Kabel 130 für den Speicher im Hamming-Kode zur Verfügung steht·
In Figur 1 ist ein als Fehlererkennungsschaltung 5 bezeichneter Block gezeigt, der an den Ausgang äes Registers MDR angeschlossen ist. Dieser Block enthält im wesentlichen eine Doppelfunktions-Exclusiv-ODER-Schaltung, mit welcher einmal die Paritätsprüfung bei einem schreibzugriff ausgeführt wird ima die zum anderen schließlich die gesicherten Daten, die im E@gist@r MDR erscheinen, bei einem Lesezugriff in ein<m Satss won umsetzt, mit denen die Art des eventuell vorhäaäeaesa, signalisiert und eine Einzelfehlerkorrektur vorgenommen wird*
Wie bereits gesagt wurde, muß der Ausgang der Fehlererkennungs~ schaltung bei der Paritätsprüfung die Byteparität in jedem Byteabschnitt des Registers HDR prüfen. Da mit ungerader Parität gearbeitet wird, kann ein einfaches UND-Glied diese Prüfung durchführen· Bei einem Lesezugriff ist die Erkennung insofern etwas komplizierter, veil die Schaltung unterschiedlich reagieren muß, erstens bei einem Prüf bitfehler, in welchem Fall die Daten als richtig erkannt werden, zweitens bei einem EinzelHDatenbitfehler, in welchem Fall ein Korrekturalgorithmus eingeleitet werden nuß, drittens bei einem Doppelfehler, in welchem Fall der Betrieb des Systems unterbrochen verden muß und diese Tatsache "bekannt gemacht werden muß» und schließlich viertens bei Fehler-
209831/0904
8 - P 15 969
freiheit» in welchem Pall die gegenwärtig im Register MDR stehenden Daten an die Zentraleinheit ZS übertragen werden
Mit 7 ist allgemein ein Fehlerkorrigierer bezeichnet» der aufgrund der in der Fehlererkennersclialtung 5 erzeugten Syndrombits die Fehlerkorrektur steuert und ein wesentliches Merkmal der vorliegenden Erfindung verkörpert« Der Fehlerlcorrigierer 7 ist in drei Abteilungen unterteilt, nämlich eine Byteverknüpfungs-
schaltung 8, eine Korrekturs teuerschal tung 9» die Talctgeber enthält» und eine Byteidentifizierungsschaltung 10.
Im folgenden wird zuerst ein Schreibzugriff im Zusammenhang mit dem Ablaufdiagramm nach Figur 7 und der als Taktgeber dienenden monostabilen Kippschaltungen nach Figur 8 beschrieben. Die in Figur 8 gezeichnete Schaltung dient nur der Illustration, und stellt eine mögliche Anordnung zur Taktgabe für das vorliegende System dar· Statt dessen kann auch jeder geeignete andere Taktgeber verwendet werden* Während eines selireibsugriffes wird ein Impuls auf die Startleitung gegeben« der die Ablauffolge startet * Gemäß der Darstellung im Ablaufdiagramm in Figur 7 veranlaßt der } Startimpuls die Eingabe in das Register S (vergleiche Figur 2)« über jedem Block in Figur 7 ist angegeben» welcher schritt des CV-Taktgebers den jeweiligen Operationsschritt ausführt, in Figur 8 weist eine Anzahl von Eingängen Bezugszahlen auf» Sie die Quelle bestimmter Einschalt impulse bezeichnen« Diese Bezugs zahlen sind ebenfalls in den Figuren 2 bis 6 verwendet worden* Zu Beginn eines Schreibzugriffs werden die beiden Register MR und MDR mit Daten und Paritätsbits von der Zentraleinheit ZB geladen· Die Eingabe ins Register S bewirkt eine Paritätsprüfung dea?. gegenwärtig im Register MDR stehenden Daten, Hit dem nächsten durch CW-2 veranlaßtenSchritt wird auf einen Fehler geprüft·
209831/0904
- 9 - P 15 969
Lautet die Antwort nein, verzweigt das Programm zum Schritt CW~4 und erzeugt Prüfbits» Dadurch werden die im Register MR gespeicherten Daten und Paritätsbits der Verbindungsmatrix und den Exclusiv-ODER-Schaltungen zugeleitet und automatisch Prüfbits erzeugt und die Originaldatenbits zuzüglich der neu erzeugten Prüfbits in das Register MDR übertragen» Im Schritt CW-5 werden gültige Daten zum Speicher übertragen und das Programm verzweigt dann zum Ende· Venn nach dem Schritt CW-2 ein Fehler angezeigt wurde* hätte der nächste Schritt den Taktschritt CW-3 eingeleitet und eine Unterbrechung hervorgerufen« Dabei handelt es sich um eine konventionelle Unterbrechung}, die zu einer erneuten Übertragung oder einer anderen Fehlersuche oder Korrekturroutine im System führt* Da es sich um einen Paritätsfehler handelt» kann er nicht korrigiert werden und die Daten können in der offensichtlich falschen Form nicht im Speicher gespeichert werden· Damit sind die Grundschritte eines Schreibzugriffs beschrieben«
Im Zusammenhang mit den Figuren 9 und 10 wird jetzt ein Lesezugriff beschrieben. Im Ablaufdiagramm der Figur 9 sind die einzelnen Taktschritte des in Figur 10 gezeigten CR-Taktgebers, den verschiedenen einzelnen Operationen zugeordnet* die in Figur 9 aufgezeichnet sind* Auch hier ist der als Ausführungsbeispiel gewählte Taktgeber nach Figur 10 insofern nicht der allein mögliche, als die Taktfolgen durch andere Schaltungen als die dargestellten monostabilen Kippschaltungen erzeugt werden können* Die Bezugszahlen bezeichnen das Einschalten der verschiedenen monostabilen Kippstufen und sind dieselben wie in den Figuren 2 bis 6» Die Startleitung oben in Figur 9 führt zum ersten Block "Eingabe in MDR und Register S"» Da es sich um einen Speicherlesezyklus handelt» wird das Register MDK mit Datenbits und von der Verbindungsmatrix erzeugten Paritätsbits geladen· Anschließend wird der Inhalt des Registers MDR den
209831/0904
- 10 - P 15 959
Exclusiv-ODER-Schaltungen zugeleitet, welche diese Information gemäß obiger Erklärung in Syndrombits, wie beschrieben» umwandeln und sie im S-Register speichern·
Im Schritt CR-2 wird die Frage gestellt "Liegt ein Fehler vor?" und durch Prüfen des Inhaltes des S-Registers beantwortet» wie vorher beschrieben« Bekanntlich können dabei vier Fälle auftreten. Im ersten liegt kein Fehler vor, im zweiten Fall ein Prüfbitfehler, im dritten ein einzelner Datenfehler und im vierten Fall ein Doppelfehler· Liegt kein Fehler vor, verzweigt das System zum Schritt CR-4 und liefert ein Signal "gültige Daten sur Zentraleinheit ZE senden" und beendet diese Taktroutine· Wenn ein Fehler vorliegt» verzweigt das System zum Taktschritt CR-3 und stellt mit einer Prüfung fest "Handelt es sich um einen Binzelfehler?"* Wird diese Frage verneint, liegt ein Doppelfehler vor und das System verzweigt zum Schritt CR-5». und es wird eine Unterbrechung erzeugt» womit diese Taktfolge beendet ist· Handelt es sich um einen Einzelfehler, verzweigt das System zum schritt CR-6 und stellt mit einer Prüfung fest "Liegt ein Prüfbitfehler vor?"· Wenn das der Fall ist» verzweigt das System zum schritt CR-7 und veranlaßt eine Korrektur der vorher erzeugten Paritäts" bits· Liegt der Fehler nicht im Prüfbit, verzweigt das System zu dem mit "Byte korrigieren11 bezeichneten Schritt. Die Leitung 404, welche au den Taktgeberstufen A~1, B~1, C«1, D-1 (der vier zu beschreibenden Ausführungsbeispiele) führt, leitet den Korrekturschritt für ein einzelnes Datenbit ein? Nachdem Paritätsbit und Datenbit korrigiert sind., verzweigt das System dann zum TaIc,;-schritt CR-4 zurück, in welchem die jetzt gültigen Daten an die Zentraleinheit ZE oder eine andere Stelle im System übertragen werden, und danach ist der Lesezugriff beendet· Die gerade erwähnten A-, B-, C- und D-Taktgeber sind in Figur 11 bis 14 gezeigt und sehr einfache mehrstufige Taktgeber* Die Ausgangssignale der Stufen dieser Taktgeber sind die einsigen Taktsignale, die
209831/0904
- 11 - P 15 969
benötigt werdenj wenn» wie aus der nachfolgenden Beschreibung der Figuren 2 bis 5 hervorgeht, bei einer notwendigen Korrektur das Datenwort mit jeweils einem Byte zur Zeit in die Korrekturschaltung gelesen und wieder in das Register MR zurttckübertragen und von dort dem Register MDR mit korrigierten Paritätsbits zugeführt wird·
Figur 15 ist ein genaueres Blockschaltbild einer der in den Figuren 1A und 6D gezeigten Exclusiv-ODER-Schaltungen. Jede dieser Exclusiv-ODER-Schaltungen verfügt über 19 Eingänge und einen Ausgang. Die Arbeitsweise einer Exclusiv-ODER-Schaltung wird als bekannt vorausgesetzt und bewirkt, daß bei einer ungeraden Zahl von "1"Signalen auf den Eingangsleitungen diese Schaltung eine ungerade Parität oder ein I!1 "Ausgangssignal auf Ausgangsleitung erzeugt«
Figur 11 bis 14 zeigt die A-, B-, C- und D-Taktgeber* die die in den Figuren 2 bis 5 gezeigten Korrekturschaltungen steuern. Diese Taktgeber sind im wesentlichen genauso aufgebaut wie die CR-Taktgeber und die CW-Taktgeber, die aus mehreren monostabilen, Kippschaltungen bestehen, deren Einschaltung einen bestimmten Taktimpuls erzeugt und deren Rückkehr in den stabilen Zustand entweder die Prüfung eines Schaltungszustandes auslöst oder die nächste monostabile Kippschaltung einschaltet t abhängig von der jeweils ablaufenden Routine» Die Arbeitsweise dieses Taktgebers und der Korrekturschaltung wird im einzelnen im Zusammenhang mit den Figuren 2 bis 5 beschrieben»
Die Arbeitsweise des Umsetzers (so genannt, weil er Prüfbits aus Paritätsbits oder umgekehrt Paritätsbits aus Prüfbits erzeugen kann in Abhängigkeit davon,, ob aus dem Speicher gelesen oder in ihn geschrieben wird» wobei die Datenbits auch an der Umsetzung teilnehmen) beruht auf der Paritäts-Prüfraatrix«
209831/0904
- 12 - P 15 969
Zuerst wird ein einfaches Beispiel einer üblichen Verwendung einer Faritäts-Prüfraatrix behandelt» wie es sich bei der Anwendung in einem elementaren Nachrichtensystem findet* Bs wird angenommen» daß das Nachrichtensystem aus einem Sender binärer Signale» einem Empfänger für diese Signale und einem mit dem Buchstaben WKW bezeichneten Kanal besteht« Der Kanal ist zwangsläufig wesentlich unzuverlässiger als der Sender oder der Empfänge? Somit unterliegt der Kanal Störungen, die ein gesendetes Bit komplementieren» das heißt» eine gesendete 1 wird als O empfangen " oder eine gesendete O als 1. ■
Diese Situation ist direkt analog der Situation eines Speichers, in welchem die Speicher-Schreibschaltung das Analogen zum Sender und die Speicher-Leseschaltung das Analogon zum Empfänger ist*
In einer' solchen Situation wird der EFK/DFE-Kode (also ein Hamming-Kode» mit dem Einzelfehler korrigiert und Doppelfehler' erkannt werden können) wie folgt verwendet* Ein Wort (ein satz Bits) wird kodiert» gesendet, geprüft mit nachfolgender Korrektur oder Erkennung eines Fehlers innerhalb der Möglichkeiten des BFK/DFB-Kodes und erscheint in dekodierter Form am Ausgang des Empfängers·.Der Kode wird durch die folgende Paritäts-Prüfmatrix H charakterisiertt
d1 d2 d3 d4 C1 C2 C3 C4
O 1 1 1 1 O O O
1 O 1 1 O 1 O O
1 1 O 1 O O 1 O
1 1 1 O O O O 1
209831 /0904
- 13 - P 15 969
In dieser Matrix entspricht jede Spalte den Datenbits d-j^dgfdo un<* d4 und den Prüfbits C19C2,C3,c4· Das Wort "entspricht" ist in diesem Zusammenhang so zu verstehen» daß eine "1" in einer gegebenen Zeile das Erscheinen des Daten- oder Prüfbits in einer Spalte in der Paritätsgleichung für diese Zeile angibt (und nicht etwa den Wert dieses Bits). Dadurch wird gezeigt, daß ein Fehler lokalisiert (und korrigiert) werden kannf wenn wahlweise die Parität verschiedener Untergruppen der Datenbits festgestellt wird und wenn man beobachtet, welche dieser Paritätsbits den entgegengesetzten Wert zu den Werten aufweisen, die sie bei Fehlerfreiheit haben· Das ist deshalb möglich, weil die Muster dieser Paritätsbits für jeden richtigen und falschen Wert eines jeden Datenbits bekannt sind.
Die Frage ist jetzt» wie die Paritäts-Prüfmatrix die Paritätssbit'k bestimmt und eine Fehlerlokalisierung ermöglicht· Die Beantwortung dieser Frage muß einer anderen "Entsprechung" entnommen werden, nämlich der der Paritätsbits oder Syndrome, wie sie awch genannt werden, zu den einzelnen Zeilen der Paritäts-Prttfmatri*. Zur Beantwortung dieser Frage sollen jetzt die durch die Paritäts-Prüfmatrix vorgeschriebenen Paritätsgleichungen aufgezeichnet werden»
zeile: O 1 1
4 ι
1. Gleichung: CKd1S 3 Ld2Q
0»c2©
oder dgQ cL e d Φ, Q1 μ S-,, worin S1 das
ΒγΛύνοϊΛ für die 1* Zeile ist.
- 14 - . P 15 969
Das Prüfbit C1 wird so gewählt, daß S1 = 1 für den fehlerfreien Pail bei ungerader Parität der ausgewählten Datenbits gilt. Die anderen drei Gleichungen sind folgende:
2. Zeilet d, S d~ © dA © C9 * so 3· Zeilet d-^ © d2 © d^ © C3 » S3 4· zeile: U1 © d2 © d3 © C4 = S4
und S1 m S2 β So » S4 =B 1 bezeichnet die fehlerfreie Bedingung für ungerade Parität· Somit läßt sich die Antwort auf die Frage, wo der Fehler sich befindet, jetzt' durch die obigen Gleichungen ausdrücken· Aus diesen Gleichungen ist zu ersehen» daß (I1 nur in den Paritätsgleichungen für die Zeilen 2, 3 und 4 erscheint. Somit ist U1 das einzige Bit» welches bei falschem Empfang nach der Decodierung die Syndrome entsprechend folgender Tabelle verändert·
S1 S2 S3 S4
d1 richtig empfangen 1111 d-, fehlerhaft empfangen 10 0 0
Es ist zu beachten, daß sich S1 nicht verändert, da es in seiner Bildung von d1 unabhängig ist» wie aus der obigen Gleichung für die Zeile 1 zu ersehen ist.
Für ein Beispiel wird jetzt angenommen, daß auf der Senderseite die Datenbits cL ~ 1, cU « O5. ar. « ο und. d- = 1 vorliegen.» Die
■X. et ^i **r
aus deu Bits d,, cU, d3* ü. best shin- ·« iiachricht hat also folgendes Aussehen: 1 0 0 1» Es ist:
BAD ORIGINAL
P 15 969
Sender -Kodierung^
© O © O
so daß für C1 zur Erfüllung dieser Gleichung der Wert O angenommen wird.
Aus der Nachricht
wird
Cg&l©O©l«> C3 © 1 © O © 1 =7 ο.ΘΙΘΟΘΟ=^
«1 - O
dl d2 d3 d4 Cl C2 C3 C4 100 10 110
Wenn, jetzt angenommen wird, daß der Kanal einer Fehlerbedingung unterliegt, so daß die störung ausschließlich O1 invertiert, führt das zu folgender Daten- und Prüfbitreihe·
Empfang- J
Dekodie-
00010110 S1 β C1 © d2 Φ d3 Φ d4
© d,
ffi d, 9
© d^ θ dg © d4 β 0 wie oben vorhergesagt
© d^ © dg © d3 β 0
Dieses eindeutige Syndrommuster läßt sich nur unter der Bedingung erzielen, daß U1 fehlerhaft ist« Die Korrektur ist trivial. Sie besteht darin, daß das Bit αχ lediglich logisch invertiert wird (weil bekannt ist, daß die richtige Version von O1 nur das Gegenteil des jetzigen Wertes sein kann)* Die Schaltung zur Korrektur von U1 ist folgende:
209831/080 4
P 15 969
ϊ Γ
r c
UM)
ist das korrigierte Bit»
(BQ ist bisr und in der Zeichnung eine Abkürzung für Extelusiv-Oder-SeHaltungJ
Folgende klare Tatsache läßt sich jetzt feststellen: Bei ungerader Parität ist das Syndrommustery welches U1 korrigiert (invertiert), einfach das Komplement (die logische Verneinung) der Spalte in der Faritäts-Prüfmatrix» welche d1 entspricht (die erste spalte). Und grundsätzlich ist also-das-Syndrommuster» welches d^t d«, do oder d- korrigiert das Komplement der Spalte 2, 3 oder 4· Die Korrekturen für die Prüfbits C1, cg, c« oder c^ finden sich in den spalten 5» 6, 7 oder 8 der Pari tat s-Prüfmatrl wenn eine solche Korrektur gerechtfertigt ist·
Ein Doppelfehler wird durch ein Syndrommuster gekennzeichnet? welches sich nicht als spalte in der Paritäts-Prüfmatrix und auch nicht als Muster für "kein Fehler" findet» Somit sind die Muster, welche einen Doppelfehler anzeigen» folgende:
(slr s2, S3, s4) β (ο,ο,ο,ο), (ο,ο,ι,ι), (0,0,0,1);
(0,1,1*0), (1,0,0,1), (1,0,1*0), (1*1,0,0),
Hierbei handelt es sich offensichtlich um Muster, in welchen zwei Syndroae sich gegenüber ihrem erwartetem Wert verändert haben· Es ist jedoch nicht möglich, die Schuldigen anzugeben.: Wenn (0,0,1,1) empfangen wurde, sind dann die Schuldigen A1 und dg oder sind es C1 und C2? Somit kann bei Empfang eines Musters wie des oben gezeigten nur ein Doppelfehler erkannt werden»
209831/0904
SAb ORIGINAL
- 17 - P 15 969
außer der Abgabe eines Alarmsignals können jedoch keine weiteren Schritte unternommen werden*
Die Paritäts-Prüfmatrix für die dargestellte Minimalschaltung bringt eine subtilere Beziehung zwischen der Parität eines gewählten Datenbyte und der Parität übsr einem ausgewählten Teilsatz von Datenbits und gcsai» einem Prüfbit rait sich, welches eindeutig zu dem gewählten Datenbyte gehört. Die Untersuchung der in Figur 16 und 17 gezeigten Paritäts-Prüfmatrix legt eine wichtige Beziehung klar.
Bei der verwendeten Kodierung und Dekodierung (die'durch die Paritäts-Prüfmatrix spezifiziert ist) erscheint ein Satz von Einsen in jeder Zeile, betrachtet als eine Untergruppe aller Binsen in dieser Zeile» in der Weise, daß die Parität über allen Bits eines vollständigen Bytes (in dem Datenwort) in der Bildung der Syndrome eingeschlossen ist, die dieser Zeile entsprechen» wenn die normale Schaltung zur Implementierung der. Parität der Zeile zu verwenden war· Eine Vorschrift der für eine grobe Auslegung des vorliegenden Umsetzers zu Beginn benutzten Technologie besagte jedoch» daß ein Bytegrößenregister automatisch die Bytepa« rität für jede in dieses Register geladene Information liefert» Für den vorliegenden Fall wurde das nicht angenommen, es erklärt jedoch teilweise, warum es möglich i3t, die Paritätserzeugung als Teil des Dekfrdierprozesses in diesen einzuschließen und warum dieselbe Schaltu&g für Lese- und Schreibprozesse verwendet werden kann. Die hier angegebene Rotations-Paritäts-Prüfmatrix wird grundsätzlich abgeleitet durch Angabe von spalten mit nur einer 1 als Prüfbitspalten und unter Verwendung von acht Spalten mit drei, fünf usw, Einsen, für den Teil der zum ersten Byte gehörenden Paritäts-Prüfmatrix und anschließende vertikale Drehung in aufsteigender Reihenfolge für jedes der sieben aufeinanderfolgenden Bytes. Bs muß besonders darauf geachtet werden, daß
BAD ORIGINAL
209831/0904
- 18 - P 15 969
man eine Zeile aus lauter Einsen für das erste Byte vor den sieben Drehungen erhält und es muß insbesondere sichergestellt werden, daß keine zwei Spalten ein identisches Muster aus Einsen und Sullen haben*. Damit sind die Grundlagen für die Bildung der Rotations-Paritäts-Prüfmatrix erklärt ·
Anschließend wird die Implementierung und Anwendung der Rotations« paritätskodes in einem Speicherumsetzer beschrieben, vie er hier offenbart wird· Zuerst wird der Leseprozeß betrachtet. Die GruncL-schritte sind folgendes
1. unter verwendung der Paritäts-Prüfmatrix sowie der Daten und Prüfbits ist ein Paritätsbit für jedes Byte zu bilden.
2. Datenbyte und Paritätsbit sind aus dem Register MR in das Register MDR für jedes Byte des Wortes zu laden·
3· Syndrome sind aufgrund der Prüfung der Byteparität und ihres Paritätsbits (in Schritt 1 gebildet) für jedes Datenbyte zu bilden.
4. Bs ist festzustellen» ob eine Fehlerbedingung in den ausgelesenen Daten vorliegt· Wenn die Daten keinen Fehler enthalten« ist das Wort an die Zentraleinheit ZE weiterzuleiten; sonst ist jeder Einzelfehler zu korrigieren oder der Zentraleinheit das Vorliegen von Doppelfehlern anzuzeigen.
Jeder der vier oben genannten Grundschritte wird anschließend genauer erklärt· Zuerst wird das Paritätsbit für jedes Byte erzeugt» indem man die Parität eines ausgewählten Satzes von Datenbits zuzüglich genau eines Prüfbits bestimmt. Die erste zeile der Rotationsprüfmatrix in Figur 17 enthält acht Einsen in einer Zeile in den den Bits d1# d2 »·. d8 entsprechenden Spalten. In der Spalte (erste Zeile) unter C1 (Spalte 65 in einer Rotations-
209831/0904
- 19 - P 15 969
Paritäts-Prtifmatrix mit acht Bytes und acht Bits pro Byte) steht eine einzige Eins· Eine Gruppe von Einsen entsprechend anderen Datenbits (weder für c·, noch Datenbits im ersten Byte) ist ebenfalls vorhanden und hiermit als Paritätsuntergruppe der ersten Zeile definiert· Ähnliche Erläuterungen können über den Aufbau einer jeden derartigen Zeile einer Rotations-Paritäts-Prüfmatrix gemacht werden. Es bleibt jedoch noch zu zeigen, wie das Paritätsbit zu erzeugen ist· Daher werden die folgenden Veränderlichen definiert:
y^ - die Parität der Paritätsuntergruppe der ersten Zeile X1 - die Parität des ersten Bytes
P1 - das Paritätsbit zur Aufrechterhaltung der ungeraden Parität für das erste Byte·
Es ist der hier getroffene Unterschied zwischen der Parität eines Byte und dem Paritätsbit für dasselbe Byte zu beachten« Wenn die Parität (die Anzahl von Einsen) für ein Byte gerade ist (eine gerade Zahl von Einsen unter den Bits des Datenbytes), ist das Paritätsbit eine 1» wenn für die Fehlerkorrektur eine ungerade Parität gefordert ist. Die folgenden Gleichungen leiten sich aus obigen Betrachtungen für die verwendung der ungeraden Parität in einer Rotations-Paritäts-Prüfmatrix her.
X1 Θ y1 β C1 * 1,
X1 © P1 β 1
Durch Addition dieser beiden Gleichungen zueinander (Addition Modulo 2) ergibt sich die Summe
X1 © V1 Ö C1 © X1 Q P1 « 1 Θ 1 » O
X1 © yx θ C1 © X1 Q P1 β X1 θ X1 © (yx © C1) © P1
- P1 © Cy1 © C1) s o.
209831/0904
- 20 - P 15 969
Dann ist, wenn ys © c, auf beiden Seiten der Gleichung addiert wird:
P1 β Cy1 e C1) e Cy1 β C1) β 0 © (yx
Ύ
O
P1 - Y1 β C1
Die Bedeutung dieser Gleichung liegt darin, daß das Paritätsbit für das erste Datenbyte aus der Parität der Paritätsuntergruppe der ersten 5;eile und dem Priifbit C1 zu erzeugen ist (und daß dazu nicht die» Bits des erst/an Datenbytes herangezogen werden müssen)·
Die Ausgangssignale dieser Paritätserzeugungsschaltung werden direkt in die Byteparitätsstellen des Registers HDR geladen* Gleichzeitig damit werden die Datenbits aller Bytes vom Register MR zum Register MDR übertragen und damit der schritt 2 abgeschlossen·
Wenn die Paritätsbits einmal aus y-, © C3 erzeugt und gespeichert sind, werden die acht Datenbits eines jeden Bytes (mit der Pari·» tat X1) und das zugehörige Paritätsbit als Eingangssignale für eine Paritäts- (oder Exclusiv-ODER-)Schaltung benutzt· Da Y1 β C1 β P1 und X1 © P1 β 1 sind, ist das Ausgangssignal si dieser Parität-Schaltung eine 1,. w&m kein Fehler im Byte vorliegt· Das Erzeugen eines Satzes von Syndrombits geschieht in folgender Weise: Für das Ausftthrungsbeispiel ergibt sich ein Syndrom aus jedem Byte und seinem zugehörigen Paritätsbit» Wenn jedoch im ersten Byte ein Fehler liegt,, ist X1 © P1 » O = S1 und eine Fehlerbedingung wird angezeigt· Damit ist Schritt 3 abgeschlossen und es folgt Schritt 4* Solange kein Fehler vorliegt» ist S1 ss S2 s ·«. S8 β 1 (für ungerade Parität) und ein mit KF bezeichnetes Signal kann gebildet werden als
209831/0904
- 21 - P 15 969
KF a S1 * S0 · s„ ···... S8* Wann KP a 1 ist, enthält das Datenwort keinen Fehler» Somit braucht die normale Ausgabe des gegenwärtig im MDR gespeicherten Wortes zur Zentraleinheit nicht gestört zu werden* Wenn jedoch KF = ο ist* muß die Übertragung des Wortes ausgesetzt werden, die Fehlerart bestimmt werden - Einzel- oder Doppelfehler - und entsprechende Schritte unternommen werden· Bin Einzelfehler wird aus der Kenntnis erzeugt» daß KF + 1 istj weil W « 1 das vorliegen einer Fehlerbedingung im Datenwort anzeigt. Der Ausdruck Fehlerbedingung sagt jedoch nichtt ob es sich um einen Einzel- oder einen Doppelfehler handelt· Die Klassifizierung der Fehlerbedingung erfordert die Ausnutzung einer Eigenschaft der Paritäts-Prüfmatritf· Wenn ein einzelner Datenfehler vorliegt, ändert sich eine ungerade Zahl von Syndromen· Wenn sich nur ein Syndrom ändert» liegt der Fehler in einem Prüfbit» Bei diesem Umsetzer brauchen Fehler im Prüfbit nicht berichtigt zu werden, das durch die Verwendung des fehlerhaften Prüf bits erzeugte Paritätsbit muß jedoch auf seinen richtigen Wert hin invertiert werden.» Somit liegt die Notwendigkeit für diese Korrektur vor und $ie wird bei allen Paritätsbits im Bedarfsfall durchgeführt, indem man sie mit dem Komplement der Syndrome antivalent verknüpft· Eine besondere Schaltung zeigt den Bedarf für diese Korrektur an* ("KJF" ist die Afckürsung für
Wenn z· B· die acht Paritätsbits P1* pg» «** p« gegeben sind als P1 β 1» P2 «β. O, P3 a 0, P4 = 1, P5 »1, P6 β 0» P7 « 1, P8 β-0 und die Syndrome als S1 ~ l? S2 » 0, S„ » S. ^ -s, = S^ «. S7 » Sg « l, bedeutet das, daß das zweite Paritätsbit falsch ist, weil S2 » 0 ist» Zur Korrektur der Paritäten werden diese dann ersetzt durch ρ Φ 1Γ, wobei ρ s (plft p2 »„,, pß) und s"'» (TT,, "S2, --· "S*g) ist. Für dieses obige Beispiel gilt dann ρβ?β(Η0,091,090,1·0, ΙίΟ,ΟίΟ,
1 β Ο, 0 Φ 0) a (1, lf 0» I1 1, 0* 1> 0)
209831/0904
- 22 - P 15 969
und das ist dann die ursprüngliche Paritätsbitgruppe mit Ausnahme des zweiten Bit, welches aus dem oben gegebenen Wert pg durch Invertieren gewonnen wurde» Im vorliegenden Ausführungsbeispiel ist aus Figur 2J zu ersehen, daß die Gruppe s" über die Kabel Τδδ, T02% ··· 114 dem Register MDR zugeleitet wird»
Für jeden anderen Daten-Einzelfehler ändert sich eine ungerade Anzahl von Syndromen» die größer als 1 ist (in jeder Spalte der Paritäts-Prüfmatrix steht eine ungerade Anzahl von Einsen)· Somit kann ein Einzelfehlersignal gebildet werden» wennt
1» das Fehlersignal eine 1 ist (W si) 2« die Parität der Syndrome sich ändert.
Für den zweiten Fall ist für acht Syndrome (acht Bytes) die Parität der Syndrome normal, bei Fehlerfreiheit ist sie gerade, das heißt, acht Syndrome sind alle identisch 1« Wenn sich jedoch eine ungerade Zahl ändert, ändert sich die Parität auch auf ungerade Parität* Somit gilt für das Einzelfehlersignal BF BF ■ W ( S1 β S2 β ,.* © S8). Venn EF * 1 istr liegt ein Einzelfehler in dem aus dem Speicher gelesenen Datenwort vor» \Jemi ein Fehlersignal (ÜF~ « 1) vorliegt und es sich nicht um ein Einzelf ehlersignal (BF el) handelt, ist es ein Doppelfehler t DB a KF/\ BF~ » 1 und ein Alarmsignal kann an die Zentraleinheit ZE gegeben werden»
Wenn die Dettenbite im Register MDiR (Einzeldatenfenler) korrigiert werden können und nüssen, werden die Datenbifcs mit den laktimpulsen A-1, B-1, C-1 oder D-1 der Korrekturschaltung augeleitet und mit den nacbfolgenden Takt impulsen ftber aas Register MR und die Korrekturmatrix dem Register MDR eugeleitot, wie dies später noch erklärt wird. Das Datenwort kann dann mit nllen angefügten Paritätsbits der Zentraleinheit ZE zugeführt werden- Zu diesem Zeitpunkt ist natürlich die vorher erklärte Korrektur bereits ausgeführt worden·
209831/0904
- 23 - P 15 969
De? Schreibprozeß für den speicher besteht im Empfangen einer Gruppe paritätskodierter Datenbytes von der Zentraleinheit (über eine Sammelleitung), in der Prüfung der Parität für jedes Byte, dem Umkodieren der Datenbits unter Verwendung der Verbindungsschaltung und dem Speichern des umkodierten Wortes in einem Register zur Eingabe in den Speicher»
Zur Erleichterung der beiden ersten Schritte eines Schreibzyklus und zur Vermeidung komplizierter Kontrollen und überflüssiger Datenbewegungen wird das ankommende Wort in das Register MDR und das Register MR geladen· Das Wort wird in beiden Registern mit allen angefügten Paritätsbits gespeichert. Das in das Register MDR gebrachte Wort wird so dort gespeichert, daß die Paritätsbits für jedes Byte mit den vorhandenen Exclusiv~Oder-Paritätsprüfschaltungen geprüft werden können, die beim Leseprozeß zur Erzeugung der Syndrome aus den vorher erzeugten Paritätsbits und den Datenbits benutzt werden. Beim Schreiben besteht die aus den Exclusiv-Oder-Schaltungen für jedes Byte kommende Information (oder sie sollte es wenigstens) aus einem Satz von Einsen, die anzeigen, daß die Parität für jedes Byte stimmt oder aus Nullen in den Paritätsstellen, an denen die Byteparität für das zugehörige Byte nicht stimmt. Wenn die Parität, nicht stimmt, wird eine erneute Übertragung der Information angefordert· W&ai jedoch kein Fehler angezeigt wird, ist das Wort für die Neukodierung und die Rücksetzung in den Speicher bereit·
Das umzukodierende zu speichernde Wort steht im Register MR. (Andernfalls hätte das im Register MDR stehende Wort in das Register MR übertragen werden müssen, da die Paritätsprüfung nicht so wirksam ist·) Wenn die im Register MDR stehende Version des Wortes für die Speicherung bereit ist, können die Prüf bits für die umkodierte Form unter Verwendung der Schaltung erzeugt werden, die zum Implementieren der Paritäts-Prüfmatrix für einen Lesezugriff vorgesehen ist» Die Datenbits imd die Paritätsbits gehorchen folgenden Gleichungen
209831/0904
- 24 - P 15 969
X1 © Y1 © C1 κ 1
X1 © P1 = Ir
die bereits oben für die erste Zeile der Paritäts-Prüfmatrix bei einem Lesevorgang angegeben wurden. PUr die übrigen Zeilen und Datenbytes gelten wieder ähnliche Überlegungen.
Die obigen Gleichungen können so umgeformt werdeny daß aus ihnen die Erzeugung von Prüfbits aus Daten- und Paritätsbi hervorgeht. Die umgeformten Gleichungen lauten:
P1 Φ V1 © C1 = O Für den Lesefall wurde diese Gleichung umgeordnet zu
C1 ©
Für den Schreibfall wird die Gleichung umgeordnet au
P1 © V1 = C1.
Diese Gleichung zeigt, was mit dem Wort im Register ME geschieht. Das Paritätsbit für jedes Byte und die durch Y1 in obiger Gleichung für das erste Byte bezeichnete Paritätsuntergruppe werden antivalent miteinander verknüpft und ergeben die durch die Datenbits jedes Bytes vor dem Speichern geforderten Prüfbits- Die Prüfbits verden dann in den Paritätsbitstellen des Regi sters MDR gespeichert. Wenn die Prüfbits einmal erzeugt sind, kann das Wort (Daten und Prüf bits) aus dem Register ME entfernt werden, in welches es während der Umkodierung beim Schreibproaeß geladen und gespeichert wurde·
Die folgende Beschreibung der grundlegenden Paritätsmatrix 9 und der daraus entwickelten vollen Paritäts-Prüfmatrix der Figur 10 zeigt insbesondere die Art, in welcher die in den
209831/0904
- 25 - P 15 969
Figuren 1 und 6 gezeigte Verbindungsmatrix gebildet wird» Die theoretische Erörterung der Grundlagen einer solchen Prüfmatrix muß herangezogen werden, vrenn man zu der gewünschten Doppelfunktionsschaltung gelangen will* Die Artr in der sie gewonnen wird» wurde soeben beschrieben» Die nachfolgende Beschreibung zeigt nur die besondere Anwendung einer bestimmten Matrix mit den gewünschten Eigenschaften» die für das vorliegende Ausführungsbeispiel geeignet ist«
Zur Bildung der in den Figuren 1A und 1B als Block und im einzelnen in den Figuren 6A, 6B» 6G und 6D dargestellten Verbindungsmatrix, wird folgendes Verfahren benutzt- In Figur 16 wird zuerst eine Matrix mit acht Spalten und acht Zeilen gebildet, die dann in das in Figur 17 gezeigte Rechteck 410 kopiert wird· Das bedeutet nicht, daß die obere Zeile mit lauter Einsen zum Verständnis der mathematischen Regeln, welche dieser Erfindung zugrunde liegen, nicht wichtig ist. Für den Sonderzweck der Konstruktion der oben erwähnten Verbindungsmatrix wird die obere Reihe von· Einsen nich£ berücksichtigt*
In Figur 17 gibt das untere rechte Rechteck 426 die Lage der Prüfbits an. Zur Bildung der im Rechteck 412 der Figur 17 gezeigten Matrix wird die Matrix, im Rechteck 410 nach oben gedreht, mit anderen Worten, die erste Zeile wird durch die zweite Zeile ersetzt, die zweite durch die dritte usw. Die oberste oder erste Zeile geht nach unten oder in die»achte Zeile. Die im Rechteck 414 dargestellte Matrix ist die Matrix des Rechteckes 412, welche wieder gemäß obiger Beschreibung einmal vertikal nach oben gedreht wurde. Das die Matrix 416 enthaltende Rechteck wird durch Drehen der Matrix 414 um eine Stelle nach oben gebildet und auf diese Weise entstehen auch die Matrizen in den Rechtecken 418, 420» 422 und 424» Somit wird die Matrix das Rechteckes 410 sr.ur Gewinnung des Rechtecks 412 einmal > des
209831/0904
- 26 - P 15 969
Rechtecks 414 zweimal, des Rechtecks 416 dreimal, des Rechtecks 418 viermal, des Rechtecks 420 fünfmal, des Rechtecks 422 sechsmal und des Rechtecks 424 siebenmal gedreht.
Faßt man die neun Rechtecke in der Figur 17 mit der Bezeichnung 410 bis 426 als eine Matrix aus acht Zeilen und 72 Spalten auf, so entspricht diese Matrix genau der Anordnung in den Figuren 6A, 6B, 6C und 6D· Die 72 spalten in Figur 17 entsprechen den 72 Bits ^ im Register MR· Die acht Zeilen der Figur 17 entsprechen den * acht Leitungen 204 bis 218. Jede Zeile in Figur 17 enthält 19 Einsen. Jede Bins in einer Zeile der Matrix entspricht dem 1-Ausgangs· signal des genauso numerierten Flipflops des Registers MR. So erscheint zum Beispiel die erste 1 in der Zeile 1 in Spalte 9» Aus Figur 6A ist zu ersehen, daß der !-Ausgang des Flipflops 9 an das Kabel 204 angeschlossen ist· Die Verbindungen des Kabels 204 mit den übrigen Flipflops sind aus der Matrix zu ersehen, und so sind die Flipflops für die Bits 11* 13, 17, 18 usw. alle mit dem Kabel 204 verbunden. Die Anschlüsse der anderen Kabel werden genau so durch Bezug auf die Zeilen der Matrix der Figur 17 ausgewählt.
Bs folgt eine allgemeine Erörterung des Aufbaus einer Paritäts-Prüfmatrix, νβηη unterschiedliche Bytezahlen (Byte-Paritätsbits) und Prüf bits vorhanden sind. Wenn m Bytes aus b Bits vorhanden sind, ergibt das mb = K Datenbits« Venn K gegeben ist, errechnet sich die Anzahl der Prüfbits r nach der bekannten Hamming-Beziehung· Alle Paritäts-Prüfmatrizen haben K + r Spalten und r Zeilen. Die letzten r Spalten enthalten eine 1 und (r~l) Nullen, die so angeordnet sind, daß die r Spalten eine 1 in der ersten, zweiten ••«•rten Zeile haben. Jede Spalte entspricht einem Prüfbit.
209831/0904
- 27 - P 15 969
Teile die m Bytes gleichmäßig in r Gruppen T^ Wenn ι s dr + e O < e^r ist, setze d + 1 Bytes in die ersten e Gruppen T1, *.. Te und d Bytes in die letzten (r-e) T^11 *.. ΤΓ· Die Gruppe T1 soll dem i-ten Prüfbit und der i-ten Zeile entsprechen« Beginne durch Setzen von b (d+1) in die erste Zeile unter T1, b(d+l) Einsen in die zveite Zeile unter T2 und fahre so fort für die ersten e Gruppen· Jetzt setze bd Einsen in die (e+l)te Zeile unter die Gruppe Te+1 und fahre fort bis unter jeder Gruppe b(d+l) oder bd Einsen jeveils in einer separaten Zeile stehen. (In Tabelle I Zeilen 1 bis 8 und in Tabelle IV» Zeilen 1 bis 7 mit acht Bits in Zeile 1, 4 in den restlichen.)
Es gibt (^) = r verschiedene Wege» um drei Einsen in r Stellen zu setzen und (r-l) (r-2) Kombinationen von
drei Einsen mit einer Eins in einer besonderen Zeile- Es sind alle Kombinationen dieser drei Bits zu verwenden» da umso weniger Verbindungen und Exclusiv-Oder-Schaltungen verwendet werden, je weniger Einsen sich in einer Faritäts-Prüfmatrix finden·
Für r = 7 gibt es 35 derartige mögliche Kombinationen und 32 werden für Figur 4 benötigt. Eine mögliche Auswahl ist in Figur 4 gezeigt. Wenn mehr als (ξ) benötigt werden, gibt es
(r) . r(r-l) (r-2) (r-3) (r-4)
Möglichkeiten mit fünf Einsen, (*) mit sieben, (|) mit neun Einsen usw.
Die Sinsen wählt man am besten so, daß ihre Anzahl in jeder Zeile gleich ist, so daß die durch die Schaltung hervorgerufene Verzögerung ungefähr gleich sind« Eine Möglichkeit besteht zum Beispiel darin» die Spalte 1 in Tabelle I zu wählen, dann den Inhalt der spalte in allen Bytes zu drehen, dann eine zweite Spalte
209831/0904
- 28 - P 15 969
zu wählen, ihren Inhalt wieder zu drehen usw« Dabei ist auf Verschiedenheit zu achten. Die Bytes sind aus dem Rest zu wählen* indem man Spalten bei Bedarf verschiebt.
Beispiel 1: m < r
Das Beispiel mit zwei Bytes und sechs Prüfbits in Tabelle II dient zur Erklärung folgender Feststellungen:
a) In Fällen, in welchen ein Prüfbit unter Verwendung
aller Datenbits in einem Byte (im Beispiel C1 und C4) gebildet wird, sind Paritätsbit und Syndrombit wie vorher zu bilden*
b) Die anderen Syndrombits sind wie gewöhnlich zu bilden» z. B· durch Exclusiv-ODER-Schaltung der entsprechenden Untergruppe von Datenbits für jedes Prüfbit (im Beispiel Sg, S3, S5, Sg).
c) Fehlersignale sind wie vorher zu bilden und, falls erforderlich, ist die Korrektur unter Verwendung von Syndrom- und Paritätsbits wie vorher durchzuführen.
d) Die Anzahl von Bits in einem Byte ist willkürlich· P Siehe hierzu das Beispiel in Tabelle III mit Bytes
aus vier Bits und sechs Prüfbits«
Beispiel 2: m> r
In diesem Fall entspricht jedes Prüfbit einer Gruppe Datenbits und jede Gruppe von Datenbits enthält eines oder mehrere Bytes. Tabelle IV und Figur 18 zeigen ein Beispiel für diesen Fall einschließlich der zur Bildung von Syndromen aus Untergruppen von Datenbits entsprechend der Paritäts-Prüfmatrix erforderlichen Schaltung»
209831/0904
- 29 - P 15 969
a) Bin Paritätsbit für die ganze Gruppe wird unter Vervendung eines Prüfbits und des Umsetzers vie vorher erzeugt·
b) Jede η Bytes (zwei oder mehr) enthaltende Gruppe ist in η Teile aufzuteilen. Erzeuge n-1 Paritätsbits für die ersten n-1 Bytes und benutze dieses Paritätsbit für die Byteparitätsprüfung. Das n-te Byte benutzt das Original-Paritätsbit·
c) Die erzeugten Paritätsbits sind einer Exclusiv-ODER-Verknüpfung zu unterwerfen, und es ist die n-te Paritätsprüfung durchzuführen (welche das aus der Umsetzung gewonnene Paritätsbit benutzt)» um das dem Prüfbit entsprechende Syndrombit zu erhalten«
d) Alle Fehlersignale sind wie vorher zu erzeugen und Korrekturen sind unter Vervendung der Syndrombits und Gleichungen wie vorher durchzuführen·
e) Jede Anzahl von Bits kann ein Byte bilden» wie es in dem obigen Beispiel mit Bytes aus drei Bit gezeigt wird·
209831/0904
C? O . O O O O O H H
OO
cn
O O O O O H O ca
O O O O rl O O TABELl
VO
CO
O O O H O O O
P O O rl O O O O
CO O H O O O O O
CO
CO
rl O O O O O O
Ol
co
O rl O rl O O H
C rl O rl O O O rl
O
OO
O rl rl O O O rl
σι
O
rl rl O O O O H
co
Oi
O O H O O H H
η ι S5 O H O O O H rl
+ VO
ΛΙ
rl H O O O rl O
7x1 in
Oi
H O O O O rl rl
η Ol O rl O O rl O H
**+ co
Ol
O rl O O H H O
Ol
Ol
rl O O O rl O H
C-
Ot
O O O O H H H
Ol rf O O H O rl O
N σι
C-
O O O rl H O rl
OO
c~
O O O H O H rl
co
Il
c- O O O rl rl H O
VO O O H O rl o, rl
co
H
in
T-
O O rl H O H O
M O O rl O rl H O
■st· CO O O rl rl rl O D
Ol O H O H O rl O
OO τ- O rl c-l O rl O O
H Ο O rl O rl rl O O
S cn O rl rl rl O O O
co rl O O O rl H O
r> rl O O rl O O H
vo rl O O H H O O
in rH H O O rH O O
<* rl O rl O rl O O
CO rl H O rl O O O
Ol H O H H O O O
,_( H rl O O O O
vooiooOOOn
O Ol
in U
U Ol CO Cl
υ τ
ο ο ο ο η ο ο ο ο η ο ο
O O H O O O
CVlCOOrIOOOO
HC^HOOOOO
VO VO O rl
rl O O
inmoOHHOO
T- C-
tfr^t-OHOrlOO COCOrIOOrIOO OIOIOOHrlHO
*r H
rlrlOrlOrtrlO
OOHOOHrlO
c- γ-ΟΟ O O H H H
CO CO H O O O rl
f«. rl O rl O O Π VO rl O r! O H O
inmrlOrlrlOO ■<fr5i-rlHOOOn
COCOHrIOOHO U) Ό ti)
•Ρ OJCVHHOHOO >> Ό PQ
HHHHHOOO Oi Ό
ο»
H Ol CO
co co co
in vo co to
cn
cn to
209831/0904
csi6, rfe6 3 n*22 4 4 Bytes d5d6d7d8 5 6 7 8 12 ¥ TABELLE 11 1 2 34 1 5 JEII S IV 16 3d1 O 5di6 φ 16 19 20
1
C 21
1 Q2 C3 C4 C5 C6 25
ι
26 27
ti
28
r\
29 31
1 dld2d3d4 1 O O O O 1 9 1 k O O 1 O 1 5 O O X
1
1 W
1
7 18 19 20 21 22 X
O
1 U
O
U
O
U
C
U
O
O 12 3 O 1 1 1 1 O O O O 1 1 O O 1 O O O O 1 O O O O O O O 1 O O O
S1 1 111 1 1 1 O 1 1 O Sodiidi O O O 1 1 I4d1 O 1 1 O O O Ö. 1 O O O O O O O 1 O O
S2 O 110 O 1 O 1 O 1 O 10 1 1 1 O 1 3 14 1 . O O 1 1 1 O O 1 O O O O O O O 1 O
S3 O 10 1 O O 1 1 O 1 1 1 O 1 1 1 1 I 1 O 1 1 O 1 O O O 1 O O O O O O O 1
S4 Oil 1 O O O 1 1 O 1 O O 1 1 O O O O 1 O
S5 0 0 0 ί O 1 O 18
η
O O O O O O 1
S6 0 0 0 9
Λ
10 1
Λ
!1 1 TABELLE O X
O
8
r\
U
1
U
1
1 1 13 1 O 22 23 24
T
209( 1 2 4 5 6 7 U
1
1 O 1 Ö O 1 1 1 1 X
O
1 O 0 10 1 O O 1 1 1 1 O 1 1
ο
CD
O
1 1 111 1 1 1 O 1 1 17
O O O O
O 1 Oil 1 1 O I 1 1 X
O
O O O
O O 111 O O " O O 1 1 1
O O 0 0 1 O φ
O
1
- 32 - P 15 969
Im Folgenden werden der Datenfluß vom Eingangsregister MR durch die Verbindungsmatrix zum Register MDR, der Datenfluß und die einzelnen Schaltungsteile für die Erzeugung der Syndrombits, die Schaltung zur Unterscheidung der verschiedenen Fehlerbedingungen und schließlich die Schaltung für die Datenbitkorrek«- türen beschrieben.
Das Register MR erscheint oben in Figur 6 und erstreckt sich über die Figuren 6A, 6Br 6C und 6D» Bs wird angenommen» daß Tor-
W schaltungen im Speicher und der Zentraleinheit ZE vorhanden sind* um dieses Register zu laden, auch wenn diese nicht besonders dargestellt sind» In diesem Register werden die Bits mit der Nummer 1 bis 64 für acht Datenbytes aus je acht Bits und die Bits 65 bis 72 für die acht Prüfbits benutzt· Die besonders in Figur 1 dargestellte Verbindungsmatrix ist im Ausführungsbeispiel der Figur 6 durch die acht Kabel mit den Nummern 204» 206, 208* 210, 212, 214» 216 und 218 dargestellt· Jedes dieser Kabel ist an 19 Stufen des Registers MR angeschlossen, wie bereits früher erwähnt« Achtzehn dieser 19 Stufen speichern Datenbits, eine ein Prüfbit· Jedes dieser Kabel ist an die Exclusiv-ODER-Schaltung angeschlossen* Es sind acht solcher schaltungen mit der Humerieru 172 bis 186 vorhanden« Wie bereits gesagt, sind Einzelheiten einer solchen Exclusiv-ODER-Schaltung mit 19 Eingängen in Figur 15 gezeigt· Die acht Datenbytes aus je acht Bits im Register MR werden über die acht Torschaltungen 188 bis 202 geleitet. Diese acht Torschal tungen entsprechen der Torschaltung 124 in Figur 1A und werden alle durch Zuführen der signale GR-I, CW-I oder A-3 zum ODER-Glied 125 durchgeschallt f welches seinerseits einen Ausgangs impuls auf der Leitung 126 erzeugt· Die Ausgangssignale der Exclusiv-ODER-Schaltungen 172 bis 186 werden ebenfalls den Torschaltungen 188 bis 202 zugeleitet· Im rechten Teil der Figur 6D ist die Leitung 156 gezeigt* die das Paritätsbit für das Byte 1 weiterleitet» Auf der Leitung 158 erscheint das
209831/0904
- 33 - P 15 969
Paritätsbit für das Byte 8- Auf der Leitung 160 erscheint das Paritätsbit für das Byte 7. Auf. der Leitung 162 erscheint das Paritätsbit für das Byte 6. Auf der Leitung 164 erscheint das Paritätsbit für das Byte 5. Auf der Leitung 166 erscheint das Paritätsbit für das Byte 4. Auf der Leitung 168 erscheint das Paritätsbit für das Byte 3, und auf der Leitung 170 erscheint das Paritätsbit für das Byte 2. Wie bereits gesagt wurde, sind die Verbindungen der Verbindungsmatrix bezüglich der jeweiligen Daten- und Prüfbits direkt aus der Paritäts-Prüfmatrix, in Figur 1C zu bestimmen» Während eines Lesezugriffs vird der CR-Taktgeber gestartet, kurz nachdem das Register MR geladen ist« Der Impuls CR-I wird über ein ODER-Glied 125 auf die Leitung 126 gegeben, um das Register »DR zu laden und auch der Torschaltung 340 zugeführt, um das in Figur 2J gezeigte S-Register zu laden» welches zum speichern der Syndrombit benutzt wird. Das Register MDR besteht aus acht Abschnitten von je neun Bits. Jeder Abschnitt enthält acht Datenbits und ein Paritätsbit· Jeder neun Bit große Abschnitt ist an eine der Bxclwsiv-ODBR-Schaltungen 222 bis angeschlossen« Diese Bxclusiv-ODBR-Schaltungen unterscheiden sich von der in Figur 15 gezeigten dadurch, daß sie anstelle der in Figur 15 gezeigten 19 Eingänge nur neun Eingänge haben. Die acht Ausgänge der eben erwähnten Exclusiv-ODBR-Schaltungen werden zum Speichern&r acht Syndrombits in das in Figur 2C gezeigte S-Register benutzt.
Nach dem Taktimpuls CR-I liefert der Taktgeber den Taktimpuls CR-2< Dieser Impuls vird zum Prüfen auf das Vorliegen eines Fehlers benutzt· Bei ungerader Parität vird kein Fehler angezeigt, wenn alle s Bits den Binärvert 1 aufveisen» Die in Figur 2B gezeigte Leitung 238 vird also erregt, wenn kein Fehler vorliegt und die Leitung 240, vma. ein Fehler vorhanden ist· Das UIiD-GIied 237 vird nämlich dadurch eingeschaltet, daß im s-Register lauter
208831/0904
- 34 - P 15 969
Binsen erscheinen· Der Impuls GR-2 wird der Torschaltung 242 zugeführt» um den Zustand dea? Leitungen 238 und 240 zu prüfen· Wenn kein Fehler vorliegt» erscheint ein Impuls auf der Leitung 396. Dadurch wird das System beauftragt, im Register MDR erscheinende Paten zur Zentraleinheit ZB oder zu einer anderen stelle im System zu übertragen, da kein Fehler vorliegt. Liegt jedoch ein Fehler "vor, erscheint ein Ausgangsimpuis auf der Leitung 398» Die ebenfalls in der Figur 16 gezeigten Leitungen 396 und 3£3 bewirken dort die Erzeugung der Taktimpuls© CR-4 beziehungsweise CR-3· Wenn die Leitung 240 erregt ist, zeigt sie notwendigerweise einen vorliegenden Fehler an, und es muß dann geprüft werden» ob es sich um einen Einzelfahler handelt oder nicht· Diese Prüfung erfolgt durch den an die Torschaltung 244 in Figur 2B angelegten Taktimpuls CS~3-» Liegt ein Einzelfehler vor» liefert die Exclusiv-ODSR-Sqhaltung 246 ein l~Ausgangssignal, da eine ungerade Zahl von Einsen im Register S steht» wenn ein Einzelfehler vorliegt» Das TJiiD-Glied 248 liefert ein Ausgangssignal» weil die Leitung 240 erregt ist· Wenn das UND-Glied 248 zu dem Zeitpunkt ein Ausgengssignal hat» an welchem der Taktimpuls CR-3 der Torschaltung 244 zugeleitet wird» erscheint auf der Leitung 400 ein Impuls und zeigt damit einen Einzelfehler an· Wenn das UND-Glied 248 keinen Ausgangs impuls zu dem Zeitpunkt liefert« zu dem der Impuls CR-3 der Torschaltung 244 zugeführt wird» erscheint auf der Leitung 402 ein Impuls· Die Leitungen 400 und 402 sind auch in der CR-Taktgeb er schaltung der Figur 6 gezeigt. Der Taktimpuls CR-5 führt zu einer Systemunterbrechung, weil ein Doppelfehler vorliegt» welcher nicht korrigiert werden kann· Dementsprechend muß zu diesem Zeitpunkt vom Betriebssystem ein anderer Mechanismus aufgerufen werden· Wenn angenommen wird» daß die Leitung 400 erregt war, so wird dann der Taktschrift CR-6 eingeleitet, der das Korrekturverfahren beginnt«
209831/0904
-35 - p 15
Zuerst muß festgestellt werden» ob es sich bei dem Einzelfehler um einen Prüf bitfehler handelt» welcher nur eine Korrektur des betroffenen Prüf bits erfordert» die als eine Paritätsbitkorrektur im Register HDS vorzunehmen ist, oder ob es sich um einen Einzeldatenfehler handelt· Diese Feststellung wird getroffen durch Anlegen des Impulses CR-6 an die in Figur 2C gezeigte Torschaltung 250· Die Torschaltung 250 empfängt den wahren und den komplementären Eingang aus dem ODER-Block 251 - Der QDER-Block 251 wird korrigiert durch die acht mitBi bis B8 bezeich- ä neten Leitungen aus Figur 2C und 2F- Diese Leitungen werden von dem Syndromregister S korrigiert und zwar ist immer nur eine und auch nur eine dieser Leitungen auf "1" geschaltet, wenn in dem betreffenden Byte ein Fehler vorliegt- Wenn also eine der Leitungen Bl bis B8 auf «1* steht, dann liefert die ODER-Schaltung 251 ein Ausgangssignal* das einen Datenfehler anzeigt, wenn die ODER-Schaltung 251 also ein Ausgangssignal erzeugt, dann bedeutet dies» daß ein fehlerhafter Byte festgestellt wurde und daraufhin, wird die Leitung 354 aktiviert» die den Taktimpuls CR-7 auslöst« Dieser Taktimpuls gelangt auf die Leitung 254 aus Figur öS, 6F» 6G und 6H» Dieser Taktimpuls wird jeder der Torschaltungen zugeführt, welche wie die Torschaltung 255 unter der Bitspeicherstelle des Registers MDR erscheint· Dieser Impuls ι verknüpft den Xomplementinhalt des Registers S mit dem Inhalt der Paritätsspeicherstelle des Registers M)R antivalent in Exclusiv-ODER-schaltungen, wie zum Beispiel der Exclusiv-ODER-Schaltung 257· Die Ausgänge dieser Schaltungen sind mit den Torschaltungen 255 verbunden,und jedes in einer Paritätsbit-Speicherstelle des Registers MDR gespeicherte Paritätsbit wird bei Zuführen eines Taktimpulses CR-7 mittels der oben beschriebenen Schaltung unter der Voraussetzung geändert, daß das zugehörige Syndrombit für diese spezielle Byteparität den Wert 0 besitzt· Als Beispiel wird £iir die im linken Teil der Figur €E erscheinende Bytespeichei?stelle 1 des Registers MDR angenommen, daß das
209831/0904
- 36 - P 15 969
Paritätsbit den Wert 1 besitzt* Wenn weiterhin angenommen wird» daß die Syndrombitstelle 1 einen Prüfbitfehler in dieser Stelle angezeigt und dadurch die Leitung 100 erregt hat, so liegt der Fall vor, daß kein Ausgangsimpuls von der Exclusiv-ODER-bchaltung 257 kommt, wodurch wiederum der Inverter 259 einen Ausgangsimpuls erzeugt, welcher die Torschaltung 255 beim Auftreten des Taktimpulses CR-7 durchläuft und die Bitstelle über das QDER-Glied 261 auf 0 zurückstellt. In all denjenigen Paritätsbitstellen» in denen das entsprechende Syndrombit im Register S " den Wert 1 hat, wird das Paritätsbit durch die gerade beschriebene Schaltung bei Anlegen des Taktimpulses CR-7 nicht verändert.
Es sei nun angenommen,, daß ein Einzelfehler festgestellt: wurde und eine Korrektur vorzunehmen ist« Darm wird die Leitung 404 aktiviert durch den Taktimpuls CR-6 der Torschaltung 405· Die Aktivierung der Leitung 404 löst die Einzeldatenfehlerkarrektursequenz A, B, D gemäß den Figuren 17 bis 14 aus*
Im folgenden wird nun die Arbeitsweise der Korrekturschaltung der vier Ausführungsbeispiele» gesteuert durch den A-Taktgeber, B-Taktgeber, C-Taktgeber beziehungsweise D-Taktgeber aus Figur 11 bis 14 im einzelnen beschrieben. Es sei nun angenommen, daß die Korrektur des Datenbits ausgedehnt ist und daß das korrigierte Datenwort in das Register MR zurückgebracht wurde, von wo es über die Verbindungs-Matrix wieder zurück in das Register MDR gelangt-
Mit dieser Korrekturoperation ist die Beschreibung eines Lesezugriffs beendet. Im folgenden wird ein Schreibzugriff beschrieben unter besonderer Bezugnahme auf Figur 7 und 8. Wie bereits bemerkt, verden zu Beginn eines Schreibzugriffes beide Register, nämlich die Register MR und MDR mit den Datenbits und.den Parität!
209831/0904
37 - P 15 969
bits aus der Zentraleinheit ZE geladen. Zunächst muß eine Paritätsprüfung vorgenommen werden, um festzustellen, ob die in das Register MDR eingespeisten Daten korrekt sind- Dies wird ausgelöst durch den Taktimpuls CW-I auf der Leitung, der über die Exclusiv-QDER-Schaltungen 222 bis 236 gemäß. Figur .6E, 6P," 6G und 6H das Syndromregister S schaltet* Dabei wird eine Paritätsprüfung ausgelöst am Ende derer,ungerade Parität vorausgesetzt* das Syndromregister S nur Einsen enthalten sollte» Wenn der Taktimpuls CW-I abfällt, wird der Taktimpuls CW-2 ausgelöst» der auf die Leitung 148 gemäß Figur 2B gelangt und den Inhalt des Byndromregisters S hinsichtlich der korrekten Parität überprüft und zwar, durch Abfragen des Ausganges der UtfD-Schaltung 237« Wenn die Leitung 238 aktiviert ist, ist dies ein Zeichen dafür, daß in dem Syndromregister S nur Einsen vorliegen und daß kein Fehler vorliegt, woraufhin der Taktimpuls CW->4 ausgelöst wird. Wenn dagegen ein Paritätsfehler festgestellt wird» verzweigt das System auf den Taktimpuls CW-3» der diesen Paritätsfehler anzeigt und gleichzeitig anzeigt, daß die Daten in die Register MR und MDR zurückgegeben werden müssen.
Es sei nun zunächst angenommen, daß kein Fehler vorliegt und daß die Leitung 149 aus Figur 2B aktiviert ist. Daraufhin wird dann der Taktimpuls CW-4 ausgelöst, der über die Leitung 126 und die ODER-Schaltung 125 den Inhalt des Registers MR durch die Verbindungs-Matrix leitet, wo die erforderlichen Prüfbits erzeugt werden- Diese Prüfbits werden dann in den zugehörigen Prüfbitspeicherpositionen des Registers MDR gespeichert* Es sei darauf hingewiesen, daß die Leitung 126 die Ausgangsleitung der ODER-Schaltung 125 aus Figur 6D ist. Mit dem Ende des Taktimpulses CW-4 wird die Taktstufe CW-5 eingeschaltet, die ein "Datengültigsignal" erzeugt, woraufhin der gesamte Inhalt des Registers MDR, das nun die korrekten Datenbits und auch die erzeugten Prüfbits enthält, in den Speicher gegeben wird«
209831/0904
- 38 - P 15 969
Damit ist die Beschreibung eines Schreibzugriffes beendet und auch die Beschreibung des Ausführungsbeispiels aus den Figuren 6A bis 6H und 2B und 2C mit Ausnahme der Einzelheiten des Fehlerkorrigierers·
Wenn bei der vorliegenden Beschreibung von Datenwörtern* umfassend 64 Bits, die auf je acht Bytes unterteilt sind, autgeganr^ vir£ und jedem Byte ein Prüfbit nach dem Hamming-Iode zugeordnet ist, so daß Einzelfehl~ »korrektur und Doppelfehler erkennung möglich ist, dann liegt darin eins Spezialisierung auf die die Erfindung nicht beschränkt ist. Bs ist zum Beispiel durchaus möglich, daß die Zahl der Byteparitätsbits mit der Anzahl der Prüfibts und damit auch der Syndrorabits nicht übereinstimmt. In einem solchen Fall kann man die einmal vorliegende Verbindungs-Matrix durchaus verwenden, um die erforderlichen Paritätsbits und auch die Sysidrombits zu erzeugen· Man vird aber zusätzliche Syndrombits benötigen, und dazu benötigt man dann zusätzliche Schaltungen· Vorzugsveise vird die Erfindung jedoch angewendet in Verbindung mit der gleichen Anzahl van Syndrombits und Byteparitätsbits, weil dann die mit der Erfindung erzielbaren Vorzüge optimal nutzbar sind·
Aus der nachfolgenden Beschreibung der Fehlerkorrektur wird ersichtlich« warum ein EFl/DFE Hamming-Kode verwendet wird, der rotierbar ist und welche besonderen Vorzüge aufgrund dessen bei der Fehlerkorrektur erzielbar sind«
Bs wird darauf hingewiesen, daß die voraufgegangene Beschreibung des Fehlererkennungssystems auf die Figuren 6A bis 6H und die Figuren 2B und 2C Bezug genommen hat. Es sei weiter darauf hingewiesen, daß das Syndrosregister S und die Torschaltungen und Taktschaltungen aus den Figuren 2B, 3B, 4B und 5B im wesentlichen identisch sind und daß weiterhin die Betriebsweise und die
209831/0904
- 39 - P 15 969
Organisation des Syndromregisters S aus den Figuren 2C* 3C, 4C und 5C identisch ist« per einzige wesentliche Unterschied besteht darin, daß gemäß Figur 4C und dem betreffenden Ausführungs«· beispielt bei den ein fehlerhafter Byte unverzüglich identifiziert wird und das Korrekturbitmuster unverzüglich in die Korrekturschaltung gegeben wird, es nicht nötig ist, einen rotierenden Eingang für das Syndroniregister S zu verwenden- Dies wird im einzelnen aber deutlich aus der nachfolgenden Beschreibung der Figur 4· Um die Beschreibung der vier Ausfilhrungsbeispiele zusammenzufassen, sind in den Figuren 2, 3* 4 und 5 die Steuerleitungen, die im wesentlichen die gleiche Funktion haben» auch wenn sie zu verschiedenen Ausführungsbeispielen gehören» mit den gleichen Bezugsziffern bezeichnet» und.die diesbezügliche Beschreibung ist dann auf alle vier Figuren zu lesen.
Die Ausgestaltung der Schaltung zur Anzeige eines Bytefehlers ist ein wesentliches Merkmal der Erfindung» Bs hat sich gezeigt, daß bei überprüfen der verschiedenen Einsen in dem Syndroniregister s eine sofortige Anzeige des fehlerhaften Bytes erzielbar ist, sofern ein Einzelfehler in einem Datenwort vorliegt. Im folgenden werden die Charakteristika des Kodemusters erläutert, die eine solche Prüfung ermöglichen. Außerdem werden die.zugehörigen Details der vier Ausführungsbeispiele aus den Figuren 2t 3,4 und 5 erläutert·
Weiterhin ist bemerkenswert, daß unter Verwendung eines rotierbaren EFr/bFB Hamming-Kodes die Syndrombits, nachdem sie einmal erzeugt und gespeichert sind« bitweise rotieren und verschoben werden können, woraus sich dann ein Korrekturmuster ergibt für die einzelnen Bits des Datenwortes» Diese Rotationsbewegung kann man mit Hilfe einer fest geschalteten Schaltung, wie sie in
209831/0904
- 40 - P 15 969
Figur 2E, 3B und 4B dargestellt ist* durchführen·
Im folgenden wird eingehender erläutert, was unter einem solchen rotationsfähigen Kode verstanden wird und wie er erzeugt werden kann«
Die Verbindungs-Matrixen zur Erzeugung der Bytefehlerindikatoren . (Bl bis B8) und eines Bitkorrekturmusters ist in den dargestellten Ausfuhrungsbeispielen als einzelner Block der Verbindungs- ψ Matrix aus Figur 16 und auseinander gezogen in den einzelnen . Rotationsschaltstufen in Figur 17 dargestellt.
m—Bytes zu je' b*-Bits vorliegen, dann umfaßt ein Datenwort mb 3 K Datenbits. Bei vorgegebenem K bestimmt die bekannte Hammingbeziehung die Anzahl der Prüf bits r die erforderlich ist, um Einzelfehler zu korrigieren und Doppelfehler zu erkennen. Die Paritäts-verbindungs-Matrixen weisen K+r Spalten und r Zeilen auf· Die letzten r Spalten weisen nur eine einzige "1" und je (r-1) «ο®*1" auf, wobei die "1" aufeinanderfolgender Spalten in
der lsten, in der r^1, in der (r-l)ten f ..-., 2ten Zeile liegen. Jede spalte des Blocks 426 aus Figur 17 entspricht dabei einem Prüfbit.
Ein EFK/dfe Hamming-Kode ist dann rotierend» wenn er folgende Bedingungen erfüllt:
(1) Die Spalten einer Paritätsverbindungs-Matrix, die dem j Byte entsprechen, weisen I^ in der $1+ C (r+l-j) mod vj) &a Zeile auf .(e&tsps'eefeänd den jt€!ö Prüfbit)*
(2) Wenn die Spalten einer Paritäts-Verbinüungs-Matrix die dem ersten Byte zugeordet sind bestimmt sindr dann bestimmen sich die spalten für die nachfolgenden Byte indem man die Spalten so rotiert♦ daß die Zeilen ihre gegenseitigen Nachbarn behalten.
209831/0904
P 15 969
(3) Jede Spalte einer Paritäts-Verbindungs-Matrix weist eine ungerade Anzahl von Binsen auf« Wenn ra=r gilt:» dann ist der Maximalwert von b für einen rotierbaran Kode nach der folgenden. Tabelle gegeben:
r 4 Φ: C7) Φ 1 b =
max b
4 max Ζ,
r-1
iC=2-r
4 2x5 1 10 4
5 3x6+2 ι ... 2 24 11
6 5x7 6 4 56 26
7 7x8 3x7 1 8 120 57
8 9x9+3 7x8 8 15 243 120
9 22x10 14x9 4x9 1 27 500 247
10 15X11 25x10+2 12x10 10 50 1012 502
11 42x11 30x11 5x11 92 1013
Fall 1a
Die Anzahl der Bytes ist gleich der Anzahl der Prüfbits· Die Breite der Bytes ist größer oder gleich der maximalen Bytebreite·
Unter Verwendung der beigefügten Liste L ergibt sich wie folgt ein geeigneter Kode· Wenn vorgegeben ist 3^1Q* greift man soviel Spalten mit drei Binsen vie nach Liste L möglich ist heraus für die mindestens gilt r£r0· Wenn es sich dabei um weniger als b Spalten handelt, wird der Vorgang für fünf Binsen» dann für sieben Einsen, dann für neun Binsen, dann für il£ Einsen wiederholt. Dann werden, die Paritäts-Verbindungs-Matrixen für die anderen Bytes durch Rotation aus der bereits gewonnenen gebildet.
209831/0904
- 42 - P 15 969
Beispiel 1 m » r « 6» b » 4
(zu fall 1)
Bs werden ausgewählt die Spalten:
1 1 1 10 1 110 0 1 1 0 0 0 0 0 0
für die gilt r£ 6 aus L. Dabei handelt es sich um alle Spalten mit drei Binsen die ausgewählt werden können* Die gesuchte Paritätsverbindungs-Matrix für den ersten Byte wird vervollständigt durch
1 1 1 1 0
die fünf Binsen aufweist· Der vollständige Eode ist in Tabelle I angegeben· Alle Spalten sind bestimmt wie notwendig*
Beispiel 2 m * r » 7 b » 7
du fall 1)
' Wähle die folgenden Spalten:
4 5 6 7 7 6 7
1111111
10 10 111
110 10 11
0 110 0 11
0 0 0 1110
0 0 0 0 0 0 1
0 0 0 0 0 0 0
und rotiere sie vie zuvor erwähnt«
Fall a Die Anzahl der Bytes ist größer als die Anzahl der Prüfbits.
209831/0904
- 43 - P 15 969
In einem solchen Fall gilt m>r· Wenn 2bC maximale Bytebreite lind 2r.>m gilt, dann werden die Techniken die in den vorausgehenden Beschreibungen erwähnt sind» angewendet. Das ist möglich, wenn die maximale Bytebreite s»jb. In den Fällen !»=5*6,7,. 9 und versucht man» die unbenutzten Spalten zu verwenden* Man kann von dem Fäll race» m»9# b=8 ausgehen.
Bin solcher Kode ist in Tabelle 2 angeben» Die Hegel lautet dann ι Verwende diese Spalten für maximal S3b im ersten Byte» rotiere eine der Spalten die noch nicht rotiert ist um die Spalten für die Bytes 3 bis 9 in die richtige Position zu. bringen· Die zweite Spalte ergibt sich durch eine vertikale Abwärtsrotation der ersten Spalte wie folgt:-
1 O
1 1
1 1
O 1
0 1
1 O O O
Grundsätzlich kann man sagen» wenn j Bytes mit größerer Bytebreite als bffl vorliegen» müssen die zusätzlich verwendeten Spalten weniger als (r-j) mal rotiert werden gegenüber den Spalten des ersten Byte· Man prüft dann die Bytes und sucht diejenigen heraus mit denen man arbeiten kann»
Fall 3 Die Zahl der Bytes ist kleiner als die Zahl der Prüfbits.
Wenn die Bytebreite kleiner ist als die maximale Bytebreite bm, dann wird die zuvor erwähnte Prozedur angewendet. Da n&r, wählt man irgendein m aus von einer- der möglichen r Rotationen. Allgemein gesprochen» wenn die Ansahl der Bytes £.£· ist und die Bytebreite ist ^1Jb1n* dann ist eine kleine Erweiterung der zuvor
209831/0904
- 44 - P 15 969
beschriebenen. Verfahrensweisen hinreichend« Die Regel lautet dannjbilde P1 aus einem Prüfbit* P2 aus einem anderen Prüfbit, bilde dann die Byteparität als Modulo~2~Summe aus P1 und P2 sofern die Anzahl der Bytes ~ beträgt mit einer Beibreite ^2bm und so weiter. Wenn die Bytebreite > b , dann wendet man einen Satz unbenutzter Spalten wie zuvor an* Im allgemeinen ergibt sich dabei keine mögliche Kombination*
1011 1101 TABELLS V 0001 0000 100000
1111 1101 0111 0111 0000 1111 000001
1011 0111 0001 0001 1111 1011 000010
π οι 0001 0000 0000 1011 1101 000100
0111 0000 1111. 1111 1101 0111 001000
0001 1111 1011 1011 0111 0001 010000
0000 1101
BAD ORTGINAL 209831/0904
9» b *
- 45 -
TABELLE VI
P 15 969
lllillll 11111111
I 1 1 1 Ul Uli
II 1 1 11 1 11 111 1 111
111 1 111 1 11111
ι im
11 111 111 1
lllillll 1111 11 1 1
111
1111111
αιι ι
11 1 11 11
111 1 11 1 1
11 1 1 11 111
11 111 111 1
.111 1 1 1
lllillll
lllillll 1111
1 1
lllillll
min iiiii ι 111 1 U 1 1 11 1 1 U 11 Ul 1
π ι ι ι
lllillll 1111 11 1 1 11 Ul 111 1
1 1
1 1 209331/0904
- 46 - P 15 969
TABELLE L (erster Teil)
Liste dar Spalteniauster für die Faritäts-Prüfmatrix eines EFK/dfe Hamming-Kode.
min» 123456789 IO 11 r
1) (1110 0 0 0 0 0
2) (101100000
3) (110100000
4) (101010000
5) (110010000
6) (100110000
7) (100101000
8) (101001000
9) (100011000
10) (110 0 0 10 0 0
11) (1 0 0 1 0 0 1 Ö O
12) (10 10 0 0 10 0
13) (10 0 0 10 10 0
14) (110 0 0 0 10 0
15) (10 0 10 0 0 10
1) (111111111
2) (1111111-IO
3) (111111101
4) (111111011
5) (1 1 1 1 1 0 1 1 1 1 0)
O O) 4
0 O) 5
O 0) 6
O 0)
O 0) 7
0 0)
O 0) 8
O 0)
0 0) 9
O O)
0 0)
O 0) 1
0 0)
O 0)
O 0) 1
0 0) 1
1 0)
1 0)
1 0)
123456789 10
1) (1 1 1 1 1 1 1 00
2) (111111010
3) (111110110
4) (111101110
5) (111011110
6) (110111110
7) (10 1111110
8) (111110101
9) (111101101
10) (11110 10 11
11) (1110 1110 1
12) (1110 110 11
13) (1110 10 111
14) (110 11110 1
15) (110 1110 11
16) (110 110 111
17) (110 10 1111
18) (10 111110 1
19) (10 11110 11
20) (10 1110 111
21) (101101111
22) (1111110 0 1
23) (111110 0 11
24) (11110 0 111
25) (10 10 11111
26) (10 110 110 1
27) (1110 110 10
28) (11110 10 10
29) (1110 10 110
30) (1110 10 10 1
0 0)
0 0)
0 0)
0 0)
0 0)
0 0)
O 0)
0 0)
0 0)
0 0)
0 0)
0 0)
0 0)
0 0)
O 0)
0 0)
0 0)
0 0)
0 0)
C 0)
0 O)
O 0)
0 0)
0 0)
0 0)
1 0)
1 0)
1 0)
1 0)
1 0)
mil·}... r
209831/0904
TABELLE L (zweiter Teil)
P 15 969
1 2 3 4 5 6 7 8 9 10 11
I)(IIlX-IOOOO 0 0)
2) (111101000 0 0)
3) (111011000 0 0)
4) (110111000 0 0)
5) (101111000 0 0)
6) (1 1 0 1 0 1 1 0 0 0 0)
7) (111010100 0 0)
8) (101011100 0 0)
9) (110011100 0 0)
10) (1 0 0 1 1 1 1 0 0 0 0)
11) (1 O 1 1 0 1 1 0 0 0 0)
12) (1 0 1 1 1 0 1 0 0 0 0)
13) (1 1 O 1 1 0 1 0 0 0 0)
14) (1 0 1 0 1 0 1 1 0 0 0)
15) (1 1 1 0 0 1 1 0 0 0 0)
16) (1 1 1 1 0 0 1 0 0 0 0)
17) (1 0 1 0 1 1 0 1 0 0 0)
18) (1 0 1 O 0 1 1 1 0 0 0)
19) (1 1 0 1 0 1 0 1 0 L 0)
20) (1 0 1 1 0 1 0 1 0 0 0)
21) (111010010 0 0)
mxn.
r
123456789 10
22) (110 110 0 10
23) (110 10 0 110
24) (110 0 10 110
25) (10 1110 0 10
26) (11110 0 0 10
27) (1110 0 10 10
28) (1110 0 0 110
29) (110 0 110 10
30) (10 110 0 110
31) (100111010
32) (10 0 110 110
33) (10 0 10 1110
34) (10 10 10 10 1
35) (101011001
36) (10 10 10 0 11
37) (10 10 0 110 1
38) (10 10 0 10 11
39) (1110 0 10 0 1
40) (110101001
41) (110 0 110 0 1
42) (110 0 10 0 11
0 0)
0 0)
0 0)
0 0) 10
0 0)
0 0)
0 0)
0 0)
0 0)
0 0)
0 0)
0 0)
0 0)
0 0)
0 0)
0 0)
0 0)
0 0)
0 0) 11
0 0)
0 0) 11
209831/0904
- 48 - P 15 969
Bin bestimmter Byte der ein fehlerhaftes Bit enthält» kann,durch die Byteidentifizierergleichungen identifiziert werden, die ihrerseits erzeugt werden aufgrund der Paritäts-Korrektur-Matrix.« In einem einfachen Fall eines zweiundsiebzig Bits umfassenden Wortes mit acht (r»8) Bytes zu je acht Datenbits werc'en nie Byteidentifizierergieichungen für jeden Byte* jev/eila mit nur einer Spalte der Paritäts-Korrektur-Matrix erzeugt» welche Spalte dem Byte entspricht♦ Das heißt mit anderen Worten, eine Zeile fester Binsen in der \l+l (r+1-j)modulo rj}ten zeile für das jte Byte ist 1 für das erste Byte, 8 für das zweite Byte, 7 für das dritte Byte und so fort. Die Paritäts-Korrektur-Matrix, Figur 16» wird zur Generierung der Byteidentifizierergleichungen. des Byteidentifizierers b^ des ersten Bytes verwendet· Dies geschieht auf sehr einfache Weise» indem nämlich die Spalten des Blocks aus Figur 16 interpretiert werden als binäre Repräsentan« ten der Booleanschen Syndromvariablen und ein vereinfachter .Ausdruck für die Konjunktion dieser Glieder aus den Spalten geschrieben wird· Die erste Spalte lautet 11100000, und der Ausdruck wird geschrieben als ^1 I* S3 S4 S5 S6 S7 S8 entsprechend der angegebenen Regel für die i variable V^ des Ausdrucks:
VjeS^ wenn das i Zeilenelement der Spalte 0 ist· vie^i wenn däs i Zeilenelement der Spalte 1 ist»
Die Ausdrücke nach Figur 16 lauten also:
^1^2S3S4S5S6S7S8* ^102^4δ586δ738' **** W3V5S6S7S8 für die Spalten 1, 2» ...» 8· Die Konjunktion (also die üiJDung) all dieser Ausdrücke kann vereinfacht werden aufgrund bekannter Schemata nach Karnaugh,
Anhand eines einfachen Beispiels wird nun erläutert wie ein fehlerhaftes Bit in einem als fehlerhaft identifizierten Byte korrigiert werden kann unter Zugrundelegung der bekannten
209831/0904
2160472
- 49 - P 15 969
Syndrome. Bs sei zunächst angenommen» daß die Paritäts-IOorrektur-Matrix aus Figur 16 zugrunde gelegt wird und daß es sich um die Ausführungsbeispiele nach Figur 2B und 2C handelt» Es sei weiterhin angenommen» daß der Datenbit d19 des Bytes 3 fehlerhaft ist, also den zum richtigen Wert komplementierten Wert hat* Das Syndromregister enthält dann die Bitfolge 10 11110 0·
Die Byteidentifizierergleichungen lauten:
b81 β ^l S7 S8 £S6 V ^4 V ^3 ^53 s ° b82 * h S6 S7 CS5 v *3 v *2 1V * °
b83 * T7 S5 S6 i?4 v ^2 v \ V * X
b84 * ^6 S4 S5 ^3 V 7I V 7S V β ° und so veiter·
Die Inhalte der X Register 00100000 zeigen an», daß b^ fehlerhaft ist· !Tun vird das Register X zweimal rotiert bis es den Inhalt 100000 0 0 hat» also vorne eine 1 steht» die unter Mitwirkung der UiiD-Schaltungen 258» 260» 262» ·*· 272 die rorrekturfunktion bildet· Das Syndromregister S wird synchron mit der X Rotation rotiert» aber nicht ehe bgl, bQ2, .,, bQ8 gebildet wurden und in das X Register eingegeben wurden· Der ursprüngliche Inhalt des Registers S ist nun nach rechts verschoben von der Bitfolge 10111100 zur Bitf olge 00 10ΠΠ und das Ausgangssignal der Torschaltung 262 auf der Leitung Fa hat den Wert 1 und invertiert beziehungsweise komplementiert den dritten Bit des dritten Byte» d19» über die Exclusiv-ODER-Schaltung 278·
209831/0904
- 50 - P 15 969
Die nachfolgende Beschreibung der vier Ausführungsbeispiele aus den Figuren 2» 3* 4 und 5 schließt an die zuvor gegebene Beschreibung an« Bei der allgemeinen Beschreibung dieser vier Ausführungsbeispiele wird angenommen, daß eine Fehlerprüfung durchgeführt vurde und daß ein Binzelfehler gefunden wurde, der nicht in den Päritätsbits liegt« Wenn ein Einzelfehler in einem der Paritätsbits gefunden wird, dann wird, vie bereits bemerkt, der Inhalt des Syndroaregisters S zurückgeleitet »in den Exclusiv-ODER-Schaltungen mit den Paritätsbits verknüpft und in die Paritätsbitpositionen des Registers MDR eingespeichert- und dabei vird der fehlerhafte Paritätsbit automatisch korrigiert Wenn ein Doppelfehler festgestellt vird» dann vird ein entspreche! des Anzeigesignal angegeben und die Routine vird unterbrochen, veil ein Doppelfehler bei dem vervendeten Code nicht korrigierbar ist«
Gemäß Figur 2 sind die logischen Schaltungen aus den Figuren 2C und 2F an das Syndromregister S angeschlossen, das die Syndrombits überprüft un festzustellen» velcher Byte einen Fehler enthält· Alle Leitungen Bl bis B8 sind dabei auf Null mit Ausnahme derjenigen einen Leitung, die dem fehlerhaften Byte entspricht und die auf 1 stehen vird· Diese logische Schaltung ist für alle vier Ausführungsbeispiele in dieser Form getroffen* Beim zweiten Ausführungsbeispiel ist sie in den Figuren 3C und 3F5, beim dritten Auaführungsbeispiel in den Figuren 4C und 4F und beim fünften Ausführungsbeispiel in den Figuren 5C und 5E dargestellt» Bei allen diesen Aueführungsbeispielen arbeitet die Schaltung zur Erkennung des fehlerhaften Bytes in der gleichen Weise.
Bei den Ausführungsbeispielen nach den Figuren 2, 3 und 5 gelangen acht Ausgangssignale der Byteerkennungsschaltung in das Register X in velchem alle Positionen auf 0 geschaltet sind mit Ausnahme der den fehlerhaften Byte zugeordneten* Durch die ver~
209831/0904
- 51 - P 15 969
schiedenen Taktgeber wird der Inhalt des Registers X so lange verschoben, bis die 1 in der Position die dem fehlerhaften Byte zugeordnet ist» die am weitesten links gelegene Speicherposition erreicht hat« Ist das der Fall* dann wird ein Bitfehlerkorrekturmuster, das durch Kombination des Syndrombits aus dem Syndromeregister S fiiit dem Fehlerbit gewonnen wurde, durch die Korrekturschaltung hindurch geführt· Einen rotationsfähigen Paritäts-Kode vorausgesetzt, ist dies möglich, nachdem die Syndrombits erzeugt worden sind, aufgrund dessen die Prüf bits zu erzeugen* Die tatsächlichen Prüfbitkorrekturauster können dann aus dem Inhalt des Registers X9 das die Syndrombits enthält, gewonnen werden, indem man die entsprechenden Speicherpositionen des Syndromregisters S mit dem fehlerhaften Byte der Korrekturschaltung kombiniert·
Bei dem Ausführungsbeispiel nach Figur 2, 3 und 5 wird der Inhalt des syndromregisters S kontinuierlich rotiert (l-*2, 2-?3» ··«, 8-»l) und zwar synchron ait dem Steuerzahler J und dem Register X, so daß bei jedem Takt ein neuer Byte als neuer Korrekturkandidat in das System eingeführt wird. Das korrekte rotierbare Syndrommuster wird in dem Syndromregister S aufbewahrt» so daß sechs Sätze von Verbindungen, wie sie in den Figuren 2B} 3E,
4B dargestellt sind, und die Adressengeneratorschaltung aus Figur 5D zur Adressierung der lokalen speicher nun das korrekte Syndrombitkorrekturmuster einzuspeisen gestatten» Es sei darauf hingewiesen, daß gemäß Figur 4E die Kreuz~Verbindun,;gs*Matrix nicht an das Syndromregister S Bit angeschlossen ist* statt dessen wird die tatsächliche Rotation mittels der vier Torschaltung en aus Figur 4G und 4H durchgeführt·
Gemäß Figur 5D wird statt das tatsächliche Korrekturmuster aus dem Syndromregister S zu gewinnen eine Adresse entwickelt aus dem laufenden Satz des Syndromregisters S, die einen Zugriff in eine vorbezeichnete Bitposition eines Lokalspeichers liefert.
209831/0904
- 52 - P 15 969
«ο das richtige Korrekturmuster gespeichert ist» das dann mit dem als fehlerhaft gefundenen Bit kombiniert werden kann.
Mit dem AusfUhrungsbeispiel nach Figur 2 ist die Taktsteuerung so getroffen» daß alle Bytes als Korrekturkandidaten untersucht werden. Das spezifische ICorrekturmuster jedoch gelangt durch eine Korrekturschaltung nur dann hindurch» venn ein fehlerhafter Byte in die Korrekturschaltung eingespeist wird· Wenn ein korrekter Byte» das heißt also, ein fehlerfreier Byte passiert» dann wird kein Korrekturmuster eingespeist« und der korrekte Byte passiert ungeändert die Korrekturschaltung· Das besondere bei diesem Ausführungsbeispiel ist die Tatsache» daß alle acht Bytes bei einer Korrekturroutine durch die Korrekturschaltung hindurchlaufen, die» nachdem dies geschehen ist» beendet ist.
Bei dem nach Figur 3 dargestellten Ausführungsbeispiel ist ein anderes Taktsystem vorgesehen» aufgrund dessen jeder einzelne Byte» beginnend mit dem Byte 1» überprüft wird» bis ein einzelner fehlerhafter Byte lokalisiert wird. Nachdem dieser Byte korrigiert ist» wird die Korrekturroutine beendet und das korrekte wort an die Zentraleinheit ZE abgegeben· Die Ausfuhrungsbeispiele nach Figur 2 und 3 sind im übrigen identisch«
Bei dem Ausführungsbeispiel nach Figur 4 liegt das Besondere darin» daß eine Anzeige des fehlerhaften Bits an eine Torsteuerung gelangt und der fehlerhafte Byte dann in dem ersten Zyklus in die Korrekturschaltung eingegeben wird· Gleichzeitig verden die entsprechenden Torschaltungen nach Figur 4G und 4H geschaltet» so daß das Korrektursyndrommuster in die Korrekturschaltung einlaufen kann» um das fehlerhafte Bit des fehlerhaften Bytes zu korrigieren. Bei dem Ausfahrungsbeispiel nach Figur 4 ist eine vollständige Korrekturoperation in einem einzigen Zyklus durchzuführen· Bin solcher Zyklus ist aber etvas umständlicher als ein einfacher Zyklus bei den anderen Ausführungsbeispielen·
209831/0904
- 53 - P 15 969
Das Ausführungsbeispiel nach Figur 5 ist den Ausfühjrungsbeispielen aus Figur 2 und 3 insoweit sehr ähnlich als für die Rotationsschemata ein Steuerzähler J, ein Register X und ein Syndromregister S verwendet werden» wobei der Inhalt des Registers X so lange rotiert wird» bis der bestimmte fehlerhafte Byte in die am weitesten links gelegene Position des Registers X gelangt ist· Ist dies der Fall, dann wird bei dein Ausführungsbeispiel nach Figur 5 der Korrekturzyklus begonnen, wobei die arithmetische und logische Einheit der Zentraleinheit ZE dazu verwendet wird, durch Anwendung von Exclusiv-Oder-Operationen den inkorrekten Datenbyte zu korrigieren. In diesem Fall wird,anstelle des Inhalts des Syndromregisters S direkt durch die Verbindungsr Matrix aus Figur 2E» 3E und 4E au verwenden, der Inhalt des Syndromregisters S als Zugriff zu einem Satz von vierundsechszig in einer Sonderspeichereinheit des Hauptrechners vorgespeicherten KorreKturmustern verwendet- Bei dieser Sonderepelcbereinheit handelt es sich um einen schnell auslesbareu iiurlesespeicher.
Bei diesem Ausführungsbeispiel brauchen auch nur sechs Bitpositionen des Syndromregisters S für die Entwicklung der Adresse überprüft zu werden, bedingt durch die Rotationscharakteristika des zugrunde liegenden Kodeschemas- Bei dem Ausführungsbeispiel nach Figur 5 wird, ebenso wie bei dem Ausführungsbeispiel nach Figur 3f sobald der fehlerhafte Byte gefunden und korrigiert istt die Korrekturroutine beendet·
Aus der ergänzenden Beschreibung der Figuren 2,3 »4 und 5 ergibt sich, daß nach der vorliegenden Erfindung nur eine Korrekturschaltung nötig ist, mit der Kapazität einen fehlerhaften Byte zu korrigieren statt eine Korrekturschaltung die Kapazität hat» das ganze Datenwort zu korrigieren· Darin liegt ein wesentlicher Vorteil der vorliegenden Erfindung, die also mit einer nicht so umfangreichen Korrekturschaltung auskommt.
209831/0904
- 54 - P 15 969
Im folgenden vird auf die Figuren 10 bis 14 besonders Bezug genommen· Der CR-Tcüctgeber aus Figur 10 enthält eine ODER-Schaltung 397» Bingangsseitig an diese ODER-Schaltung sind vier Takteingänge angeschlossen neben den Leitungen 396 und 309· Diese vier Eingänge entsprechen den Figuren 2,3,4 und 5 in denen die vier Taktgeber At B, C und D eingesetzt sind· Die Taktgeber sind in den Figuren 11 bis 14 dargestellt, und sie bestehen in ihrer einfachsten Ausführungsform, vie dargestellt, aus hintereinander geschalteten mono st ab ilen Kippschaltungen» wobei das Abschalten einer Kippschaltungsstufe das Einschalten der nächstfolgenden Kippschaltungsstufe verursacht* Diese Prinzipien liegen auch dem CR-Taktgeber aus Figur 10 zugrunde» bei dem beispielsweise die aonostabile Kippschaltungsstufe CR-I,wenn sie abschaltet, die nachfolgende Kippschaltungsstufe CR-2 einschaltet. Die danach geschaltete Kippschaltungsstufe CR-3 vird jedoch durch ein besonderes Signal auf der Leitung 398,nicht etwa beim Abschalten der Kippschaltungsstufe CR-2 eingeschaltet. Die entsprechenden Verknüpfungen der einzelnen Stufen ergeben sich aus den Figuren 10 bis 14.
Bei der nun erfolgenden Beschreibung der vier Ausführungsbeispiele der Figuren 2 bis 5 vird davon ausgegangen» daß die Syndrombits erzeugt worden sind und im Syndroaregister S vorliegen und daß der CR-Taktgeber bis zum Taktzyklus CR-6 fortgeschritten ist und daß das System auf die Torschaltung 250 verzweigt ist, so daß die Leitung 404 in den Figuren 20» 3C, 4C und 5C aktiviert ist, wodurch eine Dateneinzelfehlerkorrekturaequenz eingeleitet wird·
Gemäß Figur 2 erfolgt die Taktsteuerung durch den Α-Taktgeber aus Figur 11· Die tatsächliche Sequenzenfolge ist im folgenden angegeben:
A-I rückschalte die Steuerschaltung J. Leite die Werte B in das Register X. Löse A-2 aus*
209831/0904
- 55 - P 15 969
A-2 leite den Byte durch die Korrekturschaltung
Löse A-3 aus*
A-3 leite den Byte aus der Korrekturschaltung zurück zum Register MDS.
Löse A-4 aus·
A-4 schalte die steuerschaltung J veiter· Kotiere das Syndromregister s· Rotiere das Register X
Löse \-5 aus·
A-5 PrUfe die Steuerschaltung J.
Venn sie auf O stellt» löse <JR-4 aus. Wenn sie nicht auf O steht, löse A-2 aus·
Gemäß Figur 2A gelangt der Taktimpuls A-I an den Steuerzähler J um diesen auf O zurückzuschalten· Gemäß Figur 2Ξ gelangt gleichzeitig der Taktimpuls A-I an die Torschaltung £56 um den Wert B-I bis B-8 in das Register X aus Figur 2E gelangen su lassen«. Durch diesen Vorgang wird einer-der Bitspeicherflipflops« der acht Positionen des Registers X auf 1 geschaltet· Xn diesem Moment wird angenommen, daß es sich dabei um den fehlerhaften Byte handelt, der jetzt korrigiert wird·
Die Verknüpfungs-Matrix aus den Figuren 2A, 3A» 4A und 5A weist eine Byteverknüpfungsschaltung» die in Figur IB angegeben ist und dort mit 8 bezeichnet ist,, auf· Dies« Byteverknüpfungsschaltungf von der zwei Glieder, / die Torschaltung«! 342 und 348 bezeichnet sind« arbeitet« gesteuert durch den Steuerzahler J und den zugehörigen Dekoder» wobei abhängig von der Vonrartsschaltung des Steuerzählers J jeweils eine dieser beiden Torschaltungen zur zeit erregt ist» wodurch der betreffende Byte aus dem MDR Register gemäß Figur 6 über die Korrekturschaltung zurück in das Register MDR bewegt wird«
209831/0904
- 56 - P 15 969
Bs wird nun die Beschreibung des ersten Ausführungsbeispiels mit dem Α-Taktgeber unter Bezugnahme auf Figur 2C fortgesetzt und darauf hingewiesen, daß die Leitungen 102, Ϊδ2\ 104, ϊδ*4, 106, 108, WS, 110, ΤΪΟ" und 112 von dem Syndromregister S gemäß Figur 2C über ein Kabel 257 an die Verbindungs-Matrix 258 gemäß .Figur 2B führen· Acht UND-Schaltungen 258 bis 272 sind ausgangsseitig mit Fl bis F8 bezeichnet» Wenn die Eingänge dieser UiiD-Schaltuigeii erfüllt sind, dann liegen 1en auf den Ausgangsleitungen Fl bis F8, andernfalls 0er1 vor. Die Ausgänge Fl bis F8 stellen also ein Bitkorrekturmuster der Korrekturschaltung aus Figur 2D? 3D und 4D dar· Die Verbindungen des Syndromregiisters S über das Kabel 257 r die Verbindungs-Matrix 258 und die UflD-ScnaXtungen bis 272 bilden zusammen eine logische Matrix, die die Korrekturbits erzeugt· Nur ein Korrekturbit Fl bis F8 ist zur Zeit auf 1- Da ein und nur ein Bit des fehlerhaften Datenbytes fehlerhaft sein kann, erzeugt die binäre 1 auf der Ausgangsleitung Fl bis F8 an den Exclusiv-ODER-Schaltungen 274 bis 288 die Komplementierung des fehlerhaften Bits· Insoweit ist die Betriebsweise der Korrekturschaltung zur Erzeugung des Korrekturbitmusters bei den Ausführungsbeispielen nach Figur 2, 3 und 4 die gleiche*
Der am weitesten links gelegene 1-Ausgang des Registers X aus Figur 2B ist der 1-Eingang einer jeden UND-Schaltung 258 bis 272, Die Folge ist, daß das Korrekturbitmuster* das von diesen UIiD-Schaltungen auf den Leitungen Fl bis F8 erzeugt wird, erst vorliegt, wenn die am weitesten links gelegene Bitposition des Registers X auf 1 steht, oder mit anderen Worten, wenn ein bestimmter fehlerhafter Byte bereit ist korrigiert zu werden. Der Inhalt des Registers X wird rotiert, und der Steuerzähler J wird weiter geschaltet mit dem Ergebnis, daß mit jedem Zählzyklus des Steuerzahlers J ein anderer Byte durch die Korrekturschaltung aus den Exclusiv-ODER-Schaltungen 274 bis 288 hindurchgeleitet wird* Wenn die äußerst links gelegene Position des Registers X
209831/0904
BAD ORIGINAL
- 57 - P 15 969
auf O steht* wird kein Korrekturmuster auf den Leitungen Fl bis P8 an diese Exclusiv-oder-Schaltungen geliefert» und der betreffende Byte passiert ungeändert und gelangt zum Register MDS. Wenn jedoch die äußerst linke Bitposition des Registers X auf 1 ist» dann liegt ein Bitkorrekturmuster auf.den Leitungen Fl bis F8 vor» das in die Korrekturschaltung einwirkt und dort den fehlerhaften Bit des fehlerhaften Bytes korrigiert, welcher korrigierte Byte dann in das Register 318 aus Figur D eingespeichert wird.
Die Datenbytes und Korrekturmuster werden wie folgt durch den Α-Taktgeber gesteuert, Wenn der Steuerzahler J durch den Taktimpuls A-I auf 0 zurückgeschaltet ist, wird die Leitung 303 aktiviert und die Torschaltung 310 geöffnet» Der 1-Ausgang aller acht Datenbits des am weitesten links im Register MDR gelegenen Byte gelangt Über das Kabel 312 und die Torschaltung 310 an die Torschaltung 316, die durch den Taktimpuls A-2 geöffnet ist und von da über das Kabel 306 an die Exclusiv-QDER-Schaltungen 274 bis 288. Die Ausgänge der Exclusiv-ODER-Schaltungen gelangen in das Register 318· Der Inhalt des Registers 318 gelangt dann über die Torschaltung 320» die durch den Taktimpuls A-3 geöffnet ist» auf das Kabel 322 und von da durch die Torschaltung 310 und über das Kabel 314 zurück in das Register MDR und zwar in die äußerst linke Byteposition· Auf diese Weise wird der Byte Hummer 1 im Register MDR, sofern er fehlerhaft war» mittels der Exclusiv-ODER-Schaltungen korrigiert*
Der Taktimpuls A-4 schaltet den Steuerzähler J und das Syndromregister S und das Register X weiter und schaltet auf den Taktimpuls A-5· Der Taktimpuls A-5 lädt das System auf den Taktimpuls CR-4 verzweigen, sofern der Steuerzähler J immer noch auf 0 steht· Da jedoch der Taktimpuls A-4 den Steuerzähler J weitergeschaltet hat, ist die einzige zeit während der der Steuerzähler J
2Q9831/Q9Q4
- 58 - P 15 969
auf O stehen kann während des Taktimpulses A-5 gegeben» wenn der siebte Byte in die Korrekturschaltung eingespeist wird und der Taktimpuls A-4 den Steuerzähler J auf O schaltet.
Die Rotierung des Syndroraregisters S erfolgt von der achten Bitposition zurück in die erste Bitposition und dann wird der Inhalt der anderen stufen nach rechts in die jeweils nächst höhere stufe verschoben. Die Kotierung des Registers X erfolgt wie angezeigt und die Fortschaltung des Steuerzählers J erfolgt " so vie sie sich aus der Tatsache ergibt* daß dieser jeweils bei Beginn eines Korrekturzyklus auf 0 zurückgeschaltet wird.
Aufeinanderfolgende Bytes eines Datenwortes werden dann durch die Korrekturschaltung geleitet und alle richtigen Bytes passieren die Korrekturschaltung ungeändert und nur das fehlerhafte Byte wird mit einem Korrekturbitmuster über die Leitungen Fi bis F8 unter der Steuerung des Registers X verknüpft. Das Besondere dieses AusfUhrungsbeispiels liegt darin» daß alle acht Bytes des Datenwortes nacheinander durch die Korrekturschaltung hindurchgeleitet verden, ehe der Steuerzähler J auf O zurückgeschaltet wird und damit das System auf den Taktimpuls CR-4 verzweigen fc kann, der dann das Zeichen dafür gibt, daß die erforderlichen Korrekturen durchgeführt worden sind und der Lesevorgang vollendet werden kann·
Die Rückführung des inhaltes des Registers 318 zurück in das Register MDR erfolgt während des Taktimpulses A-3 unter Mitwirkung der ODER-Schaltung 125, die den gesamten Inhalt des Registers MR über die Verbindungs-Matrix in das Register MDR gelangen läßt.Wenn keine Veränderung eines Bytes vorgenommen wird und der fragliche Byte in das Register MR geleitet wird,, erfolgt keine Veränderung des Inhaltes des Registers MDR. Venn jedoch ein Bit in der Korrekturschaltung geändert wird, dann wird der fehlerhafte
209831/0904
- 59 - P 15 969
Byte ausgezählt und der fragliche Bit wird in dem Register geändert·
Damit ist die Beschreibung des ersten Ausfuhrungsbeispiels, das durch den Α-Taktgeber gesteuert wird, beendet. Zu dem zweiten Ausführungsbeispiel, das in Figur 3 dargestellt ist, werden jetzt noch einige Punktionsbeschreibungen gegeben« Zunächst wird daran erinnert» daß die beiden Ausführungsbeispiele weitgehend ähnlich sind* Der erste Unterschied liegt darin, daß bei dem Ausführungsbeispiel nach Figur 3 Fortschritt nur stattfindet, wenn ein fehlerhafter Bit korrigiert worden ist und daß das System dann zurückverzweigt t so daß die Taktfolge mit dem Taktimpuls C-4 fortfahren kann« Dieses Ausführungsbeispiel arbeitet« gesteuert durch den B-Taktgeber aus Figur 12» Die Betriebsfolgen des B-Taktgebers sind folgende:
B-I Rückschalte den Steuerzähler J.
Leite den Vert B in das Register X. Löse B-2 aus.
B-2 Ist in der am weitesten links gelegenen Bitposition des Registers X=I.
Wenn ja löse B-3.aus. Wenn nein löse B-4*aus
B-3 Schalte den Steuerzähler J weiter Rotiere das Register S Rotiere das Register X
Löse B-2 aus.
B-4 Leite den Byte durch die Korrekturschaltung-Löse B-5 aus.
209831/0904
- 60 - P 15 96S
B-5 Leite den Byte aus der Korrekturschaltung zurück in das Register MDR1.
Löse CR-4 aus.
Der Taktimpuls B-I vird durch die Leitung 404 ausgelöst, wenn der Taktimpuls CR-6 an die Torschaltung 250 gelangt und dadurch festgestellt wird, daß ein Einzelfehler vorliegt* Der Taktimpuls B-I gelangt an den Steuerzähler J aus Figur.3A, der diesen Zähler auf 0 zurückschaltet. Der Taktimpuls B-I gelangt auch an die Torschaltung 256 aus Figur 3A und leitet den Inhalt auf den Leitungen B-I bis B-8 an das Register X* Die Taktfolge geht dann Über auf die Stufe B-2. Der Taktimpuls B-2 gelangt an die Torschaltung 358, die entscheidet ob oder ob nicht die am weitesten links gelegene Bitposition des Registers X auf 1 ist. Wenn dies nicht der Fall ist, dann verzweigt die Taktfolge auf B-3. wodurch der Steuerzähler J veitergeschaltet vird, das Register X weitergeschaltet vird und das Syndromregister s veitergeschaltet wird und die Rotine auf die Taktstufe B-2 zurückkehrt. Wenn dagegen eine 1 in der am veitesten links gelegenen Bitposition vorliegt, dann verzweigt die Sequenz über die Leitung 362 auf die Taktstufe B-4. Der Taktimpuls B-Sf 91^-an die Torschaltung 316 aus Figur 3D, die den Inhalt des speziellen Datenbytes auf dem Kabel 306 über den Dekoder aus Figur 3A in die Korrekturschaltung aus den Exclusiv-ODER-Schältungen 274 bis 288 einspeichert· Gleichzeitig wird der andere Eingang dieser Exclusiv-ODER-Schaltungen über die Leitungen Fl bis F8 getastet* die erregt sind· wenn die UND-Schaltungen bis 272 erfüllt sind. Das richtige Bitkorrekturmuster auf den Leitungen Fl bis F8 liegt dann als Ergebnis der Rotation des Syndroraregisters S vor* Die Abschaltung^ des Takt impulses B-4 lust den Taktimpuls B-5 aus, 8er/8eT
l?tsdes Registers 318 in das Register NR und anschließend in das Register MDR verur sacht. Die Abschaltung des Taktimpulses B-5 löst die Taktfolge CR-4
209831/0904
- 61 - P 15 969
aus Figur 10 aus, womit dieser Lesezugriff' beendet ist»
Das Ausführungsbeispiel nach Figur 4 unterscheidet sich von den Ausführungsbeispielen nach'Figuren 2 und 3 im wesentlichen dadurch, daß die Information über die £iir den fehlerhaften Byte zuständige Schaltung auf den Leitungen Bl bis Bd direkt dazu : verwendet wird, um den fehlerhaften Byte durch die Torschaltung aus der Figur 4A in die Korrekturschaltung aus Figur 4D zu leiten. Gleichzeitig damit wird das richtige Bitkorrekturmuster auf den Leitungen Fl bis F3 in die Korrekturmatrix aus Figur 4B eingespeist, um dort auf den Leitungen Fl bis F4 das richtige Muster zu erzeugen· Anstatt den Inhalt des Syndromregisters S zu.rotier ren um das richtige Korrekturmuster auf den Leitungen Fl bis _F8 vorliegen zu haben, wird dieses Bitmuster direkt Über die Torschaltungen aus Figur 4G und' 4H erzeugt« Diese besonderen Verbindungen sind nur für das vorliegende Ausführungsbeispiel von xlutzen. Diese Verbindungen müssen andereseih, vemi die Datensätze andere sind-
Die Taktsequenz für dieses Ausführungsbeispiel ergibt sich aus Figur 13 und umfaßt nur die zwei Stuf ei Cl und CS, die wie folgt ablaufen:
C-I Leite den Byte in die Korrektur-Matrix·
Löse C-2 aus·
C-2 Leite den Byte aus der Korrektur-Matrix zurück in das Register MDR*
Löse C-4 aus»
Sobald bei dem Ausführungsbeispiel nach, Figur 4 das Syndromregiater s verknüpft ist, wird eine der Leitungen Bl bis BS erregt, je nachdem mit welcher die logische Schaltung erfüllt ist, und diese Leitung aktiviert eine der Torschaltungen aus Figur 4 und
209331/0904
- 62 - P 15 969
eine der Torschaltungen aus Figur 4G bis 4H. Der Taktimpuls Ol an der Torschaltung 316 veranlaßt den fehlerhaften Byte über das Kabel 306.in die Exclusiy-ODER-Korrektur-Schaltung einzulaufen. Gleichzeitig wird das richtige Korrekturbitnruster über, die Torschaltungen 366 bis 380 und das Kabel 382 aus Figur 4D und 4H in die Verbindungs-Matrix 258 eingespeist ,und die zugehörigen UUD-Schaltungen erzeugen das richtige 'Bitkorrekturmuster auf den Leitungen Fl bis F8. Mit der Abschaltung, des Taktimpulses C-I wird der Taktimpuls C-2 ausgelöst, der an die Torschaltung P 320 gelangt und diese dffnet und unter Mitwirkung der ODER-Schaltung 125 den korrigierten Byte zurück in das Register MR und dann zurück in das Register MDR geleitet· Mit Abschaltung des Taktimpulses C-2 wird der. Taktimpuls C-4 ausgelöst und damit der Lesevorgang fortgesetzt· Damit ist die Beschreibung des Ausführungsbeispiels nach Figur 4 beendet·
Das Ausführungsbeispiel nach Figur 5 unterscheidet sich von den Ausführungsbeispielen nach Figur 2 und 3 im wesentlichen dadurch, daß die Bitkorrektur in dem fehlerhaften Byte durch zusätzliche Hardware vorbereitet ist· Die Torschaltungen aus Figur 5A arbeiten gesteuert durch den Steuerzahler J und den zugehörigen Dekoder, und die Syndronbite aus dem fcyndrooregister s werden gesteuert durch den ^Taktgeber rotiert« Der Inhalt der Byteidentifikationsschaltung wird in daa »effister X eingespeichert und die tatsächliche Korrektur wird ausgelöst, venn die am weitesten links gelegene Bitposition des Registers X auf 1 steht« Dieses Ausführungsbeispiel wird durch den D-Taktgeber aus Figur 14 gesteuert, der durch die Leitung 414 eingeschaltet wird. Die Taktfolge wickelt sich wie folgt ab*
D-I Rückschalte den Steuerzahler j«
Leite den B-Wert in das Register χ. Löse D-2 aus·
209831/0904 BAD original
- 63 - P 15 969
D-2 In dör am weitesten links gelegenen Position des Registers X « 1.
Ja Läse D-3 aus. Nein Beginne das Softvareprogranun.
D-3 Schalte den Steuerzähler J weiter. Rotiere das Syndromregister S· Rotiere das Register X.
Löse D-2 aus·
Der Taktimpuls D-I schaltet den Steuerzahler J auf O und schaltet die Leitungen Bl bis B8 über die Torschaltung 256 an das Register X» Hit der Abschaltung des Taktimpulses D-I vird der Taktimpuls D-2 ausgelöst· Diese Taktstufe schältet die am weitesten links gelegene Bitposition des Registers X vorwärts, indem sie einen Impuls an die Torschaltung 358 leitet« F!s «ei nun angenommen, daß auf O vorwärtsgeschaltet ist, dann wird die Leitung 356 aktiviert und der Taktimpuls D-3 schaltet den Steuerzahler J weiter« rotiert das Syndromregister S und das Register X. Mit der Abschaltung des Taktimpulses D-3 wird der Taktimpuls D-2 ausgelöst» worauf wieder der Inhalt der am weitesten links gelegenen Registerposition des Registers X Überprüft wird« Venn dabei eine 1 festgestellt vird, verzweigt das System auf die Leitung 388, und es wird ein Softwareprogramm ausgelöst» das in einem schnell auslesbaren lokalen Speicher untergebracht ist» bei dem es sich um einen xJurlesespeicher handeln kann, der die folgenden Operationen innerhalb der arithmetischen und logischen Einheit steuert. Es gibt 64 mögliche Bitkorrekturmuster die in dem lokalen Speicher untergebracht sind und die nach Maßgabe der Bits auf dem Kabel 390 gemäß Figur 5D adressiert werden. Diese Bits stammen aus dem SyndrOBregister S, das während der D-Taktgeberfolge rotiert wird um immer den richtigen Satz von Bits nach
209831/0904
- 64 - P 15 969
Maßgabe des fehlerhaft befundenen Bytes bereitzuhalten« Im folgenden ist das betreffende Mikroprogramm angegeben.
1. Start
2· Sende die Adresse auf dem Kabel 3SO an das Adressenregister des Lokalspeichers.
3· Lesezugriff am Lokalspeicher.
4. Sende das Datenwort aus dem Lokalspeicher an die arithmetische und logische Einheit.
5. Sende den Byte auf dem Kabel 392 an die arithmetische und logische Einheit.
6. Vollführe eine Bxclusiv-ODBR-Verknüpfung in der arithmetischen und logischen Einheit.
7. Sende das Ergebnis der Exclusiv-ODER-Verknüpfung zurück auf das label 394*
8. Verzweige auf den Taktimpuls CR-4·
Die durch das Mikroprogramm gesteuerte Arbeitsweise ist im wesentlichen die gleiche wie bei den anderen Ausführungsbeispielen. Es vird nämlich ein fehlerhafter Bit über das Kabel 394 an die arithmetische und logische Einheit gegeben und dort mit dem Datenbitkorrekturmuster aus dem lokalen Speicher in Exclusiv-ODER-Schaltungen verknüpftfund das korrigierte Byte wird dann in das System zurückgegeben und in das Register MR eingegeben. Am Ende des Mikroprogramms entsteht ein signal aufgrund dessen das Register MDR aus dem Register MR neu geladen wird und der Taktimpuls CR-4 ausgelöst wird«
209831/0904
- 65 - P 15 969
Nach der Erfindung werden also die durch die Rotationsfäbigkeit des zugrunde gelegten DFE/EFK-Hammingcodes bedingten Eigenschaften verwendet, die aus den Datenbits und Prüfbits erzeugten Syndrombits in einem Sonderregister zu rotieren, wodurch es wiederum möglich ist, die Korrektur mit einem außerordentlich geringen Aufwand an Korrekturdekodierscbaltkreisen durchzuführen. Hit diesen Korrekturdekodierscbaltkreisen sind die erforderlichen logischen. Schaltkombinationen der verschiedenen Syndrombits gemeint, die nötig sind, um die gewünschte Fehlerkorrektur durchzuführen. Die Rotationscharakteristika erlauben es, mit einem Dekodierer von der Größe eines einzigen Byte die nötigen Korrekturmuster herzustellen, sofern nur der Inhalt des Syndromregisters in der richtigen Weise rotiert'wird.
Bedeutungsvoll ist auch die Tatsache, daß man bei entsprechender Interogation und Kombination der ursprünglichen Syndrombits einen fehlerhaften Byte, der einen Einzelfehlerbit enthält, unverzüglich identifizieren kann. Dieser Umstand gestattet es, unter Anwendung der Rotationscharakteristika des Codes die Korrektur des fehlerhaften Byte gleichzeitig durchzuführen, und man spart es sich, zur Korrektur der Datenwörter eine Korrekturschaltung vorzusehen, die parallel ein ganzes Datenwort aufnehmen kann, wie es bei gleicher Korrekturgesobwindigkeit nach dem Stande der Technik erforderlich wäre.
Man kann die Byteidentifizierung auch ohne Ausnutzung der Rotationsoharakteristika vornehmen, wie dies bei dem Ausführungsbeispiel nach Figur 4 der fall ist. Bei dieses Auefübrungsbeispiel spart nan Zeit» da nur der fehlerhafte Byte durch die Korrekturschaltung hindurcbgeeohleift wird. Dies macht allerdings etwas zusätzlichen Schaltungeaufwand erforderlich, bedingt durch die !Tatsache, daß auf die Rotationacharakteristika des Codes bei der Herstellung des Codemusters verzichtet wird.
209831/0904
- 66 - P 15 969
Die Erfindung löst auch ein Problem, das normalerweise bei allen Fehlerkorrektureysthemen, die mit einem DFJS/EFK-Hainmingcode arbeiten, auftritt. Dabei bandelt es sieb um die große Menge an Hardware, die für die Fehlererkennung und Korrektur erforderlich ist, was nach der Erfindung nicht der Fall ist. nach der Erfindung wird vielmehr gegenüber dem Stand der Technik-die für die Korrektur erforderliche Hardware etwa um den Faktor 1/m reduziert, wobei m die Zahl der Bytes eines Datenwortes ist.
209831/0904

Claims (1)

  1. Docket: YO 970
    ANSPRUCH
    Binärdatenumsetzer fur einen speicher der paritätsgesicherte zu speichernde Informationsvörter in prüfbitgesicherte Informationswörter umwandelt und als solche speichert und diese beim Auslesen prüft und korrigiert und in die paritätsgesicherten Informationsvörter zurückuravandelt, wobei die Informationswörter für jeden Byte (Bitgruppe) durch einen Paritätsbit beziehungsweise einen nach einem rotationsfähigen zur Einzelfehlerkorrektur und Doppelfehlererkennung fähigen Kode gebildeten Prüfbit gesichert sind (nach Patent tfr» 2132 565), dadurch gekennzeichnet» daß zur Korrektur ein SyndroraregiBter (S) vorgesehen 1st» das mit einem aus einen ausgelesenen prttfbitgeeicherten Inforaationswort abgeleiteten Syndrombitmuster Bit eines Syndrombit für jedes Byte des Informationswortes geladen und im Takte (A - 4 ) eines Steuertaktgebers ( J ) rotiert wird und daß die Bytes des Informationswortes im gleichen Takt einsein nacheinander bitweise parallel durch eine Korrekturschaltung ( 274» 318 ) geschleift werden, die für jeden Bit eines Informationswortbytes einen Korrekturkanal aufweist mit einer logischen Schaltung ( 274 - 288 ), deren Steuereingange in Abhängigkeit rom jeweiligen Syndrombitmuster im Syndrombitregister (S) getastet werden.
    209831/0906
    Leerseite
DE19712160412 1970-12-31 1971-12-06 Binärdatenumsetzer Pending DE2160412A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10326270A 1970-12-31 1970-12-31

Publications (1)

Publication Number Publication Date
DE2160412A1 true DE2160412A1 (de) 1972-07-27

Family

ID=22294249

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19712160412 Pending DE2160412A1 (de) 1970-12-31 1971-12-06 Binärdatenumsetzer

Country Status (5)

Country Link
US (1) US3697949A (de)
JP (1) JPS542534B1 (de)
DE (1) DE2160412A1 (de)
FR (1) FR2119959B1 (de)
GB (1) GB1313488A (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3766521A (en) * 1972-04-24 1973-10-16 Ibm Multiple b-adjacent group error correction and detection codes and self-checking translators therefor
US3836957A (en) * 1973-06-26 1974-09-17 Ibm Data storage system with deferred error detection
US3917933A (en) * 1974-12-17 1975-11-04 Sperry Rand Corp Error logging in LSI memory storage units using FIFO memory of LSI shift registers
US4005405A (en) * 1975-05-07 1977-01-25 Data General Corporation Error detection and correction in data processing systems
GB2023895B (en) * 1978-06-21 1982-10-13 Data General Corp Error detection circuit
JPS55149551A (en) 1979-05-10 1980-11-20 Toshiba Corp Data correcting circuit
US4276647A (en) * 1979-08-02 1981-06-30 Xerox Corporation High speed Hamming code circuit and method for the correction of error bursts
US4562576A (en) * 1982-08-14 1985-12-31 International Computers Limited Data storage apparatus
JPS5949658U (ja) * 1982-09-22 1984-04-02 凸版印刷株式会社 易開封性容器
JPS6231017U (de) * 1985-08-08 1987-02-24
GB2190658B (en) * 1986-03-24 1989-12-13 Hans Rausing Packing containers and blanks therefor
SE456008B (sv) * 1986-12-11 1988-08-29 Tetra Pak Ab Forpackningsbehallare med oppningsbar, forseglingsforsvagad toppforslutning
US5140595A (en) * 1987-09-21 1992-08-18 Cirrus Logic, Inc. Burst mode error detection and definition
US4979173A (en) * 1987-09-21 1990-12-18 Cirrus Logic, Inc. Burst mode error detection and definition
US5058115A (en) * 1989-03-10 1991-10-15 International Business Machines Corp. Fault tolerant computer memory systems and components employing dual level error correction and detection with lock-up feature
US5608741A (en) * 1993-11-23 1997-03-04 Intel Corporation Fast parity generator using complement pass-transistor logic
US5481566A (en) * 1993-12-29 1996-01-02 At&T Corp. Method and apparatus to increase efficiency of systematic codes
SG76501A1 (en) * 1996-02-28 2000-11-21 Sun Microsystems Inc Error detection and correction method and apparatus for computer memory
US5822339A (en) * 1996-05-30 1998-10-13 Rockwell International Data decoder and method to correct inversions or phase ambiguity for M-ary transmitted data
GB9814608D0 (en) * 1998-07-07 1998-09-02 Lucas Ind Plc Data integrity checking apparatus
US20040019842A1 (en) * 2002-07-24 2004-01-29 Cenk Argon Efficient decoding of product codes
US7165205B2 (en) * 2004-05-14 2007-01-16 Motorola, Inc. Method and apparatus for encoding and decoding data
US8214390B2 (en) * 2009-06-03 2012-07-03 Yahoo! Inc. Binary interest vector for better audience targeting
US8972833B1 (en) * 2012-06-06 2015-03-03 Xilinx, Inc. Encoding and decoding of information using a block code matrix
US8972835B1 (en) * 2012-06-06 2015-03-03 Xilinx, Inc. Encoding and decoding of information using a block code matrix
CN110728115B (zh) * 2018-07-17 2024-01-26 珠海金山办公软件有限公司 文档内容的乱码识别方法、装置及电子设备
US11611358B2 (en) * 2019-12-24 2023-03-21 Kioxia Corporation Systems and methods for detecting or preventing false detection of three error bits by SEC

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3273119A (en) * 1961-08-21 1966-09-13 Bell Telephone Labor Inc Digital error correcting systems
US3243774A (en) * 1962-07-12 1966-03-29 Honeywell Inc Digital data werror detection and correction apparatus
NL130511C (de) * 1963-10-15
US3562709A (en) * 1968-09-12 1971-02-09 Rca Corp Correction of block errors in transmission of data
US3568153A (en) * 1968-09-16 1971-03-02 Ibm Memory with error correction
US3573728A (en) * 1969-01-09 1971-04-06 Ibm Memory with error correction for partial store operation

Also Published As

Publication number Publication date
FR2119959A1 (de) 1972-08-11
US3697949A (en) 1972-10-10
JPS542534B1 (de) 1979-02-08
FR2119959B1 (de) 1974-09-27
GB1313488A (en) 1973-04-11

Similar Documents

Publication Publication Date Title
DE2160412A1 (de) Binärdatenumsetzer
DE2328869C2 (de) Verfahren und Schaltungsanordnung zum Betreiben eines digitalen Speichersystems
DE2646162C3 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE2132565C3 (de) Umsetzer
DE2521436C3 (de) Informationswiedergewinnungsanordnung
DE1524239A1 (de) Verfahren zur Lokalisierung eines Fehlers in einer Anlage mit mindestens zwei parallel arbeitenden Rechengeraeten
DE2554945A1 (de) Verfahren und schaltungsanordnung zur fehler-erkennung und -korrektur
DE1901228A1 (de) Datenverarbeitungsanlage mit Einrichtungen zur Wiederholung von Operationen bei Auftreten eines Fehlers
DE69126057T2 (de) Ein Informationsverarbeitungsgerät mit einer Fehlerprüf- und Korrekturschaltung
DE2131066A1 (de) Anordnung zur Adressen-Umsetzung
DE2350146A1 (de) Verfahren und netzwerk zur neuordnung eines rechnerspeichersystems
DE19921232B4 (de) Verfahren zum gesicherten Schreiben eines Zeigers für einen Ringspeicher, zugehöriger Ringspeicher, Verwendung des Ringspeichers und Chipkarte mit Ringspeicher
DE2424820B2 (de) Einrichtung zur Durchsuchung eines Datenspeichers
DE2622184A1 (de) Fehlerkorrekturverfahren
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
DE2610411A1 (de) Datenverarbeitungsanlage
DE1474062B2 (de) Datenverarbeitungsanlage mit einer anzahl von pufferspeichern
DE2400064A1 (de) Speicherpruefanordnung und diese verwendendes endgeraetsystem in einem datenverarbeitungssystem
DE1474094B (de) Programmgesteuerte Datenverarbeitungs anlage
DE3148099C2 (de) Anordnung zum Erkennen einer Digitalfolge
DE2739607C3 (de) Einrichtung zum Verbinden einer Vielzahl von Multiplexsystemen
DE2115198A1 (de) Verfahren zum Wiederauffinden von Datensätzen
DE2456709A1 (de) Schaltung zur fehlererkennung und -korrektur
DE3121742A1 (de) Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung