DE2132565B2 - - Google Patents

Info

Publication number
DE2132565B2
DE2132565B2 DE2132565A DE2132565A DE2132565B2 DE 2132565 B2 DE2132565 B2 DE 2132565B2 DE 2132565 A DE2132565 A DE 2132565A DE 2132565 A DE2132565 A DE 2132565A DE 2132565 B2 DE2132565 B2 DE 2132565B2
Authority
DE
Germany
Prior art keywords
bits
parity
data
error
check
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE2132565A
Other languages
English (en)
Other versions
DE2132565C3 (de
DE2132565A1 (de
Inventor
William Caswell Ridgefield Conn. Carter
Keith Albert Wappingers Falls Duke
Donald Cyril Poundridge Jessep Jun.
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 DE2132565A1 publication Critical patent/DE2132565A1/de
Publication of DE2132565B2 publication Critical patent/DE2132565B2/de
Application granted granted Critical
Publication of DE2132565C3 publication Critical patent/DE2132565C3/de
Expired 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
    • 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

Description

Die Erfindung betrifft einen Umsetzzer nach dem Oberbegriff des PAI.
Während vieler Jahre ist in der Computerindustrie der dreidimensionale Magnetkernspeicher als schneller Arbeitsspeicher verwendet worden. Den Magnetkernspeichern und ihren Herstellungsverfahren ist ein hoher Grad von Zuverlässigkeit eigen Dies bedeutet, daß es äußerst selten vorkam, daß ein Magnetkernspeicher nach der Herstellung nicht hundertprozentig benutzbar war. Dies liegt an einer Reihe von Faktoren. Der wichtigste ist der, daß jede einzelne BitspeicherstHle oder jeder Kern vor dem Einbau in den Speicher getrennt prüfbar ist.
Daher sind einzelne fehlerhafte Bitsfllen in Magnetkernspeichern ungewöhnlich. Die in ihnen normalerweise auftretenden Fehlerarten beziehen sich auf eine
vollständige Zeile oder Spalte des Speichers aufgrund von Fehlern in den Treiberschaltungen oder der Verdrahtung.
Seit dem Aufkommen neuerer, äußerst kurze Zugriffszeiten aufweisender Halbleiterspeicher, die gewöhnlich als integrierte Speicher bezeichnet werden, ist es normalerweise nicht möglich, die einzelnen Bitspeicherstellen zu prüfen, da gewöhnlich eine ganze Ebene mit Speicherelementen gleichzeitig hergestellt wird. Aufgrund des Herstellungsprozesses eines derarti- to gen integrierten Halbleiterspeichers kann ein derartiger Speicher normalerweise nicht eher geprüft werden, als er vollständig hergestellt ist Es ist daher nicht möglich, einzelne fehlerhafte Bitspeicherelemente durch fehlerfreie zu ersetzen. Es ist daher ersichtlich, daß es erwünscht ist, in integrierten Halbleiterspeichern einen bestimmten Prozentsatz fehlerhafter Bitspeicherelemente zu tolerieren. Um die Benützung fehlerhafter Bitspeicherelemente zu verhindern, ist nach dem Stand der Technik ein großer Aufwand an Bauteilen und Programmierung für die Speicherzuteilung erforderlich. Zu diesem Verfahren mußte man jedoch im Felle vieler Fehler in einem solcnen Halbleiterspeicher, in dem ein größerer Teil unbrauchbar ist, greifen. Eine andere Möglichkeit besteht in der Verwendung fehlerkorrigierender Codes, wie z.B. der Hamming-Codes, wobei einem Datenwort Redundanzbits beigegeben werden, und durch Kombination der Datenbits mit den Redundanzbits festgestellt werden kann, ob ein ausgelesenes Datenwort fehlerfrei ist und ob erkannte )o Fehler aufgrund der Codeeigenschaften korrigiert werden können. Das Codierverfahren nach Hamming hat in der Nachrichtentechnik vielfache Anwendung gefunden. Auf dem Feld der Datenverarbeitung hat die Fehlererkennung und -korrektur nur begrenzte Anwen- r> dung gefunden, weil zusätzliche Bitspeicherstellen erforderlich sind und umfangreiche zusätzliche Verknüpfungsschaltungen, um die Fehlererkennung und -korrektur durchzuführen.
Es sei bemerkt, daß in einem Datenverarbeitungssystern Paritätsprüfungen erforderlich sind, um die Fehlerfreiheit der zu den verschiedenen Teilen der Anlage, wie den Registern und Rechenscnaltungen, übertragenen Daten zu prüfen. Wenn ein Paritätsfehler erkannt wird, wird ein Signal erzeugt und eine neue <r> Übertragung der Daten gefordert In der Mehrheit aller Fälle erhält man dadurch die richtige Information. Bei Speichern jedoch, bei denen ein Fehler normalerweise nicht durch Störimpulse, wie in dem eben genannten Fall, verursacht ist, liefert eine Paritätsprüfung zwar r>" eine Fehleranzeige, aber da die meisten Fehler durch fehlerhafte Schaltungsteile verursacht werden, gibt es keine Möglichkeit, mit Hilfe der Paritätsprüfung das fehlerhafte Speicherelement zu lokalisieren. Aus diesem Grunde muß ein fehlerkorrigierender Code, wie v> beispielsweise ein Hamming-Code benutzt werden, wenn eine Fehlerkorrektur erfolgen soll. Wie bereits erwähnt, erfordert die Mehrheit der in der Datenverarbeitungsindustrie angewandten FchKsrkorrekturverfahren umfangreiche und teure Verknüpfungsschaltungen. Außerdem mußten in Jen meisten Fehlererkennungsund -korrekturschaltungen besondere Paritätsgeneratoren zusätzlich zu der Fehlererkennungs- und -korrekturschaltung verwendet werden, um aus einem Speicher stammende Daten, die zu einer anderen Stelle der ··■ Datenverarbeitungsanlage übertragen werden sollten, mit einem Paritätsbit zu versehen. Ferner mußte eine Schaltung vorgesehen werden, die die erforderlichen Pröfbits für jedes in den Speicher einzuschreibende Worte erzeugte. Daher ist ersichtlich, daß für die Feblererkeunungs- und -korrekturschaltung sowie die verschiedenen Schaltungen zur Partitätsbiterzeugung und Paritätsprüfung eine große Anzahl logischer Schaltungen erforderlich war, da bisner die genannten Schaltungen alle als besondere Einheiten ausgeführt wurden.
Aus den genannten Gründen wurden Fehlererkennungs- und -korrekturschaltungen bisher nur in sehr teuren und hochgradig zuverlässigen Datenverarbeitungsanlagen eingebaut, bei denen der Benutzer den notwendigen hohen Preis zu zahlen gewillt war.
Der Erfindung liegt die Aufgabe zugrunde, den für eine Fehlererkennungs- und -korrekturschaltung erforderlichen Aufwand zu verringern. Die genannte Aufgabe wird durch einen Umsetzer der eingangs genannten Art gelöst, der durch folgende Merkmale gekennzeichnet ist:
a) ein erstes Register zum wahlweisen Speichern entweder von aus dem Speicher gelesenen Daten- und Prüfbits oder von in den Speicher einzuschreibenden Daten- und Byteparitätsbits,
b) mehrere erste mehrstufige EXKLUSIV ODER-Schaltungen zur Erzeugung von Ftedundanzbits (Priilibits bzw. Paritätsbits), deren Eingänge jeweils über eine Verbindungsmatrix an ausgewählte Stufen des ersten Registers angeschlossen sind,
c) ein zweites Register zur Speicherung der ursprüngliehen Datenbits und der von den ersten mehrstufigen EXKLUSIV ODER-Schaltungen erzeugten Redundanzbits,
d) mehrere zweite mehrstufige EXKLUSIV ODER-Schaltungen zur Prüfung der Parität der Datenbytes und der zugehörigen Redundanzbits,
e) ein drittes Register zur Speicherung der Ausgangssignale der zweiten mehrstufigen EXKLUSIV ODER-Schaltungen, dessen Stufen bei erfüllter Paritätsbedingung der Datenbytes umd ihrer Paritätsbits einen vorgegebenen Binärwert speichern,
f) eine Prüfschaltung zur Prüfung der von den zweiten mehrstufigen EXKLUSIV ODER-Schaltungen gelieferten Ergebnisse und eine Anzeigeschaltung zur Anzeige eines Datenbit- oder eines Prüfbitfehlers, wenn die Fehlerursach ? im Speicher liegt
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird nachfolgend näher beschrieben. Es zeigt
Fig.] einen Lageplan für die F i g. 1A und 1B,
F i g. 1A und 1B eto Blockschaltbild der vorliegenden Fehlererkennungs- und Datenumsetzschaltung mit der. wichtigsten Funktionsblocks und dem Datenfluß des Syslem.»,
F i g. 2 einen Lageplan der F i g. 2A bis 2J,
F i g. 2A bis 2J ein genaueres Blockschaltbild, das die wesentlichen Merkmale der erfindungsgemäßen Schaltung zeigt
Fig.3 ein Opcretions-Ablaufdiagramm für einen Speicher-Schreibzugriff,
Fig.4 den CH^Taktgeber, der im wesentlichen die Systemoperation bei einem Speicher-5>i:hr>;ibzyklus steuert,
Fig. 5 ein Operations-Ablaufdiagramm für einen Speicher-Lesezugriff,
F i g. 6 den C'W-Taktgeber, der das System bei einem Speicher-Lesezyklus steuert,
Fig. 7 ein genaueres Blockschaltbild einer drr
EXKLUSIV ODER-Schaltungen mit 19 Eingängen, die in Fig. 20 dargestellt sind und von denen jede 19 Eingänge aufweist,
Fig. 8 ein genaueres Blockschaltbild des /4-Taktgebers, der das Übertragen der Daten und Syndrombits durch die Korrekturschaltung steuert,
F i g. 9 eine Paritiits-Prüfmatrix,
Fig. 10 die Paritäts-Prüfmatrix der Fig.9 in ihren eirzelnen Phasen, die dazu dient, die tatsächliche Verbindung der in Fi g. IA dargestellten Paritätsmatrix anzugeben,
F i g. 11 ein Blockschaltbild der Syndrom-Erzeugungsschaltung, die benötigt wird, wenn die Anzahl der Bytes und der Prüfbits verschieden ist.
Der Aufgabenlösung nach der vorliegenden Erfindung liegt allgemein ein System zugrunde, bei dem in einen und aus einem Hamming-Code zur Einzelfehlerkorrektur- und Doppelfehlererkennung, im folgenden kurz als EFK/DFE-Hamming-Code bezeichnet, und Byteparitätscode umgesetzt wird und bei den im Hamming-Code vorliegenden Daten Einzelfehler korrigiert und Doppelfehler erkannt werden. Das System umfaßt Speichereinrichtungen zur vorübergehenden Speicherung von Daten und Sonderbits, die aus einem zugehörigen Speicher gelesen oder in diesen geschrieben werden. Die Codeumsetzschaltung ist an besagten Speicher angeschlossen zur Umsetzung in den EFK/ DFE-Hamming-Code und Byteparitätscode und zur Erzeugung eines anderen Satzes von Sonderbits und zum Speichern dieser Bits in besagtem Speicher. Im vorliegenden Ausführungsbeispiel verfügt der Speicher darstellungsgemäß über zwei Sätze von Registern. Mit entsprechenden Taktgebereinrichtungen und Torschaltungen kommt man jedoch mit einem Satz aus. Zusätzliche Einrichtungen zur Paritätserzeugung aus den Originaldatenbits und einem ausgewählten Satz von Sonderbits sind vorgesehen. Die Ergebnisse der genannten Einrichtungen werden einem Speicher zugeführt. Schließlich spricht eine Erkennungsschaltung auf besagte Erzeugungseinrichtung an und zeigt einen Fehler an, wenn eine vorgegebene Paritätsbedingung bei den Datenbits und den ausgewählten Sonderbits nicht erfüllt ist.
Die Ausgangssignale besagter Erzeugungseinrichtung umfassen eine Gruppe zusätzlicher Bits, die in einem Speicher-Schreibzyklus einfache Paritätsanzeigen sind und im FaIi eines Speicher-Lesezyklus Syndrombits für die nachfolgende Fehlererkennung und -Korrektur. Eine zusätzliche Schaltung ist vorgesehen, um zwischen einem Prüfbitfehler, einem einzelnen Datenbitfehler, einem doppelten Datenbitfehler oder einem Paritätsfehler in Abhängigkeit vom jeweils ausgeführten Speicherzyklus zu unterscheiden.
Das wichtige Merkmal der vorliegenden Erfindung ist das Vorsehen der Codeumsetzschaltang, die mit einer einzigartigen Paritäts-Prüfmatrix und einem entsprechenden Hamming-Code versehen ist, wodurch der Codeumsetzschaltung die Erzeugung von Prüfbits aus Paritätsbits und Datenbits und von Syndrom- und Paritätsbits aus Prüfbits und Datenbits ermöglicht wird Außerdem gestattet der Aufbau des vorliegenden Systems die Erzeugung einer AnzaH dieser Bits im wesentlichen auf parallelem Wege und spart dadurch beträchtliche Zeit und Ausführungsschritte, während die Doppelfunktionsschaltung offensichtlich eine große Menge an Bauteilen einspart, da der überwiegende Teil der Logikschaltungen sowohl in der Übertragungsrichtung von der Zentraleinheit ZE(Fig. 1) zum Speicher.
als auch vom Speicher zur Zentraleinheit verwende! wird.
Die folgende allgemeine Beschreibung der Theorie der Hamming-Codes und dann die Weiterführung dieser Theorie zur Konstruktion einer Doppelfunktions-Codeumsetzschaltung zeigt klar die Grundprinzipien der vorliegenden Erfindung. Anschließend wird der allgemeine technische Aufbau des Ausführungsbeispieles im Zusammenhang mit der Fig. 1 in den Fig. 3 bis 8
in erklärt. Die Erklärung der Arbeitsweise des in den Fig. 2A bis 2J gezeigten Ausführungsbeispieles erläutert die genaue Arbeitsweise des vorliegenden Systems beim Lesen und Schreiben des Speichers und beschreibt die Art, in welcher die Korrektur durch eine typische
ι ί Hamming-Code-Korrekturschaltung ausgeführt wird.
Fig. 1 ist ein allgemeines Blockschaltbild des vorliegenden Systems, welches dessen Hauptfunktionseinheiten zusammen mit dem allgemeinen Datenfluß zeigt. Die aus den Fig. IA und IB zusammengesetzte
_'o Hgur zeigt dall Daten aus dem Speicher über das Register MR dem Kabel 116 zugeführt werden und sowohl die acht Datenbytes als auch die acht Prüfbits des EFK/DFE-Hamming-Codes umfassen. Das Register MR kann auch von der Zentraleinheit, im folgenden
2> kurz als ZE bezeichnet, geladen werden, enthält in diesem Fall jedoch acht Datenbytes und acht Byte-Paritätsbits. Kabel 116 wird für einen Lesezugriff und Kabel 118 für einen Schreibzugriff zum Speicher verwendet. Die aclu Datenbytes aus je acht Bits zuzüglich der acht
in Prüfbits oder Paritätsbits sind nur für das Ausführungsbetspiel gewählt. Abhängig von Größe und Anzahl der Datenbytes ist eine entsprechende Anzahl von Prüfbits vorzusehen. Im Falle eines Lesezugriffs werden bestimmte ausgewählte Datenbits und Prüfbits der
π Implementierung einer Paritäts-Prüfmatrix, nämlich der Verbindungsmatrix zugeführt. Im Falle eines Schreibzugriffes werden dieselben ausgewählten Datenbits und das Paritätsbit auf der Verbindungsmatrix zugeführt. Die Ausgänge der Verbindungsmatrix führen über die
4i) EXKLUSIV ODER-Schaltungen zum Kabel 120, welches dann über die Torschaltung 124 an das Register MDR führt. Die Ausgangssignale auf dem Kabel 120 umfassen acht neue Bits und die Datenbits werden über das Kabel 122 zum Register MDR übertragen. Wie 3 bereits oben im Zusammenhang mit dem Lesezugriff gesagt wurde, setzen die Verbindungsmatrix und die EXKLUSIV ODER-Schaltungen Prüfbits in Paritätsbits um. während im Falle eines Schreibzugriffes dieselbe Verbindungsmatrix und die EXKLUSIV ODER-Schaltungen die Paritätsbits in Prüfbits umsetzen. Bei einem Schreibzyklus wird das Register MDR direkt von der ZE geladen und in diesem Fall besteht das in das Register MDR geladene Wort aus den acht Datenbytes zuzüglich der acht Paritätsbits. Diese Information wird über das Kabel 128 geführt Bei einem Schreibzugriff werden das Register MR und das Register MDR direkt von der ZE über die Kabel 118 bzw. 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/DFE-Hamming-Code zu speichern. Wie bereits gesagt erfolgt dies 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-Code zur Verfugung steht
In F i g. 1 ist ein mit Fehlererkennungsschaltung bezeichneter Block gezeigt der an den Ausgang des
Registers MDR angeschlossen ist. Dieser Block enthält im wesentlichen eine Doppelfunktions EXKLUSIV ODER-Schaltung, mit welcher einmal die Paritätsprüfung bei einem Schreibzugriff ausgeführt wird und die /um anderen schließlich die paritätscodierten Daten, die ί im Register MDR erscheinen, bei einem Lesezugriff in einen Satz von Syndrombits umsetzt, mit denen die Art des evtl. vorhandenen Fehlers signalisiert und eine Einzti.ehlerkorrektur vorgenommen wird.
Wie bereits gesagt wurde, muß der Ausgang der in Fehlererkennungsschaltung bei der Paritätsprüfung die Byteparität in jedem Byteabschnitt des Registers MDR 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 r. komplizierter, als die Schaltung zwischen einem Prüfbitfehler unterscheiden muB, dann werden die Daten als richtig erkannt, einem Einzel-Datenbitfehler, dann muß ein Korrekturalgorithmus eingeleitet werden und einem Doppelfehler, in weichem FaIi der Betrieb des Systems unterbrochen werden muß, und diese Tatsache bekannt gemacht werden muß. Schließlich muß die Schaltung noch feststellen können, daß kein Fehler erkannt wurde und daß die gegenwärtig im Register MDR stehenden Daten an die ZE übertragen werden können.
Der mit Einzelfehler-Erkennungsschaltung bezeichnete Block benutzt die von der Fehlererkennungsschaltung auf im wesentlichen konventineller Weise, die nachfolgend im Zusammenhang mit F i g. 2 näher in beschrieben wird, erzeugten Syndrombits schließlich zur Korrektur.
Aus der obigen allgemeinen Beschreibung der F i g. 1 ist zu ersehen, daß bei Lese- und Schreibzugriffen zum Speicher im wesentlichen dieselbe Schaltung verwendet j? wird für Codeübersetzung, Paritätsprüfung, Syndrombiterzeugung usw, was im Gegensatz zu bisher gebräuchlichen Anlagen und Verfahren große Ersparnisse bei der Schaltung mit sich bringt.
Im folgenden wird zuerst ein Schreibzugriff im Zusammenhang mit dem Ablaufdiagramm nach F i g. 3 und der als Taktgeber dienenden monostabilen Kippschaltung nach Fig.4 beschrieben. Die in Fig.4 gezeigte 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 Schreibzugriffes wird ein Impuls auf die Startleitung gegeben, der die Ablauffolge startet, Gemäß der Darstellung im Ablaufdiagramm in F i g. 3 veranlaßt der Startimpuls die Eingabe in das Register S. Über jedem Block in Fig.3 ist angegeben, welcher Schritt des CW-Taktgebers den jeweiligen Operationsschritt ausführt In Fig.4 weist eine Anzahl von Eingängen Bezugszahlen auf, die die Quelle bestimmter Einschaltimpulse bezeichnen. Diese Bezugszahlen sind ebenfalls in den Fig.2A bis 2J verwendet worden. Zu Beginn eines Schreibzugriffs werden die beiden Register MR und MDR mit Daten und Paritätsbits von der Z/fgeladen. Die Eingabe ins Register Sbewirkt eine Paritätsprüfung der gegenwärtig im Register MDR stehenden Daten durch. Der nächste durch CW-2 veranlaßte Schritt wird auf einen Fehler geprüft Lautet die Antwort nein, verzweigt das Programm zum Schritt ClW und erzeugt Prüfbits. Dadurch werden die im Register MR gespeicherten Daten und Paritätsbits der Verbindungsmatrix und den EXKLUSIV ODER-Schaltungep 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. Wenn nach dem Schritt CW-2 ein Fehler angezeigt wurde, hätte der närhste 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 Fehlersuch- 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 offensichtlichen falschen Form nicht im Speicher gespeichert werden. Damit sind die Grundschritte eines Schreibzugriffs beschrieben.
Im Zusammenhang mit den F i g. 5 und 6 wird jetzt ein Lesezugriff beschrieben. Im Ablaufdiagramm der F i g. 5 sind die einzelnen Taktschritte des in F i g. 6 gezeigten Cfl-Taktgebers, den verschiedenen einzelnen Operationen zugeordnet, die in F i g. 5 aufgezeichnet sind. Auch hier ist der als Ausfuhrungsbeispiel gewählte Taktgeber nach Fig.6 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 Fig.2A bis 2J. Die Startleitung oben in F i g. 5 führt zum ersten Block »Eingabe in MDR und Register S«. Da es sich um einen Speicherlesezyklus handelt, wird das Register MDR mit Datenbits und von der Verbindungsmatrix erzeugten Paritätsbits geladen. Anschließend wird der Inhalt des Registers MDR den EXKLUSIV ODER-Schaltungen zugleitet, welche diese Information gemäß obiger Erklärung in Syndrombits umwandeln und sie im ^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 einzelener Datenfehler und im vierten Fall ein Doppelfehler. Liegt kein Fehler vor, verzweigt das System zum Schritt CRA und liefert ein Signal »gültige Daten zur 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 Einzelfehler?«. Wird diese Frage verneint, liegt ein Doppelfehler vor und das System verzweigt zum Schritt CR-S 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-I und veranlaßt eine Korrektur der vorher erzeugten Paritätsbits. Liegt der Fehler nicht im Prüfbit, verzweigt das System zu dem mit »Byte korrigieren« bezeichneten Schritt Die Leitung 404, welche zur Taktgeberstufe A-X führt, leitet den Korrekturschritt für ein einzelnes Datenbit ein. Nachdem Paritätsbit und Datenbit korrigiert sind, verzweigt das System dann zum Taktschritt CRA zurück, in welchem die jetzt gültigen Daten an die ZE oder eine andere Stelle im System übertragen werden und danach ist der Lesezugriff beendet Der gerade erwähnte Λ-Taktgeber ist in F i g. 8 gezeigt und ist ein sehr einfacher dreistufiger Taktgeber. Die Ausgangssignaie der drei Stufen sind die einzigen, die benötigt werden, wie aus der nachfolgenden Beschreibung der
Fig. 2A bis 2J hervorgeht, da bei einer notwendigen Korrektur das ganze Datenwort zusammen mit den zugehörigen Syndrombits parallel in die Korrekturschaltung gelesen und parallel wieder in das Register MR zurückübertragen und von dort dem Register MDR mit korrigierten Paritätsbits zugeführt wird.
Fig. 7 ist ein genaueres Blockschaltbild eines der in den Fig.2D u.d IA gezeigten EXKLUSIV ODER-Schaltungen, wie im einzelnen im Zusammenhang mit Fig. 2A bis 2J erklärt wurde, verfügt jede dieser EXKLUSIV ODER-Schaltungen über 19 Eingänge und einen Ausgang. Die Arbeitsweise einer EXKLUSIV ODER-Schaltung wird als bekannt vorausgesetzt und bewirkt, daß bei einer ungeraden Zahl von »!«-Signalen auf den Eingangsleitungen diese Schaltung eine r, ungerade Parität oder ein »!«-Ausgangssignal auf der Ausgangsleitung erzeugt.
F i g. 8 zeigt den 4-Taktgeber, der die im Prinzip in Fig.21 gezeigte Korrekturschaltung steuert Dieser Taktgeber ist im wesentlichen genauso aufgebaut wie >n der C/f-Taktgeber und der CW-Taktgeber. die aus mehreren (3) monostabilen Kippschaltungen bestehen, deren Einschaltung einen bestimmten Taktimpuls erzeugt und deren Rückkehr in den stabilen Zustand entweder zum Ende des Schrittes führt oder die nächste 2 > monostabile Kippschaltung einschaltet, abhängig von der jeweils ablaufenden Routine. Die Arbeitsweise dieses Taktgebers und der Korrekturschaltung wird im einzelnen im Zusammenhang mit den Fig.2A bis 2J beschrieben. in
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 teilneh- r> men) beruht auf der Paritäts-Prüfmatrix. Die Paritäts-Priifmatrix ist aus der Literatur bekannt
Zuerst wird ein einfaches Beispiel einer üblichen Verwendung einer Paritäts-Prüfmatrix behandelt, wie es sich bei der Anwendung in einem elementaren Nachrichtensystem Findet Es wird angenommen, daß das Nachrichtensystem aus einem Sender binärer Signale, einem Empfänger für diese Signale und einen mit dem Buchstaben »K« bezeichneten Kanal besteht Der Kanal ist zwangsläufig wesentlich unzuverlässiger 4-> als der Sender oder der Empfänger. Somit unterliegt der Kanal Störungen, die ein gesendetes Bit komplementieren, d. h. eine gesendete I wirJ als 0 empfangen oder eine gesendete Oiis I.
Diese Situation ist direkt analog der Situation eines Speichers, in welchem die Speicher-Schreibschaltung das Analogon zum Sender und die Speicher-Leseschaltung das Analogon zum Empfänger ist.
In einer solchen Situation wird der EFK/DFE-Code wie folgt verwendet. Ein Wort (ein Satz Bits) wird codiert, gesendet, geprüft mit nachfolgender Korrektur oder Erkennung eines Fehlers innerhalb der Möglichkeiten des EFK/DFE-Codes und erscheint ;n decodierter Form am Ausgang des Empfängers. De' Code wird durch die folgende Paritäts-Prüfmatrix H charakterisiert:
0 I I I I U 0 0
H =
ΙΟΙ I 0 I 0 0
I I 0 I 0 0 I 0
I I I 0 0 0 0 I
In dieser Matrix entspricht jede Spalte den Datenbits d\, di, di und dt und den Prüfbit! c\, C2.C3.CA. Das Wort »entspricht« ist in diesem Zusammenhang so zu verstehen, daß die Entsprechung darin besteht, daß eine »1« in einer gegebenen Zeile dem Erscheinen des Daten- oder Prüfbits einer Spalte in der Paritätsgleichung für diese Zeile erscheint Dadurch wird gezeigt, daß ein Fehler lokalisiert (und korrigiert) werden kann, 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 den richtigen und falschen Wert eines jeden Datenbits bekannt sind.
Die Frage ist jetzt, wie P'aritäts-Prüfmatrix die Paritätsbits 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 auch genannt werden, zu den einzelnen Zeilen der Paritäts-Prüfmatrix. Zur Beantwortung dieser Frage sollen jetzt die durch die Paritäts-Prüfmatrix vorgeschriebenen Paritätsgleichungen aufgezeichnet werden.
I.Zeile: 0 1 I 1 I 0 0 0
i 1 I 1 I 1 I I
1. Gleichung: 0 · dt © I - d2 © I - d3 © 1 · rf4 @ I · c, Θ0 · C2 ©0 · c3 ©0 · c4 = S1
oder
d2 ®d3 ©dl» θc, = Si, worin S1 dasSyndrom für die !.Zeile ist.
Das Prüfbit c\ ist so gewählt, daß Si = 1 für den bo und
fehlerfreien Fall bei ungerader Parität gilt Die anderen drei Gleichungen sind folgende:
2. Zeile- dt © d3 © dA ® c2 = S2
3. Zeile: «f, ©4 ©d* @c3 = S3
4. Zeile: dx @d2 ®d3 ©c4 = S4
= Si = St = I bezeichnet die fehlerfreie
Bedingung für ungerade Parität Somit IaBt sich die Antwort auf die Frage, wo det Fehler sich befindet, jetzt durch die obigen Gleichungen ausdrücken. Aus diesen Gleichungen ist zu ersehen, daß d\ nur in den Paritätsgleichungen für die Zeilen 2, 3 und 4 erscheint Somit ist d\ das einzige Bit, welches bei falschem Empfang nach der Decodierung die Syndrome entsprechend folgender Tabelle verändert
2t 32 565
Il
richtig empfangen
.7, .V2 S, S. I I 1 I
(Z1 fehlerhalt empfangen 10 0 0
Es ist zu beachten, daß sich S\ nicht verändert, da es in seiner Bildung von c/i unabhängig ist, wie aus der obigen Gleichung für die Zeile I zu ersehen ist.
Für ein Beispiel wird jetzt angenommen, daß auf der Senderseite die Datenbits d\ - I, d2 = 0. dj = 0 und d< — 1 vorliegen. Die aus den Bits du cfe, c/j, cA bestehende Nachricht hat also folgendes Aussehen: I 0 0 1. Es ist somit:
S, = \ = c, φ d2 φ d3 φ dt - c, Φ 0 Φ 0 © I
so daß für c\ zur Erfüllung dieser Gleichung der Wert 0 angenommen wird.
Sender &
Codierung S, = I -t c, θ I ©0 © I = > c, = I
Sj = 1 =- <·., © I θ 0 Φ I = > fj = I S4 = I = c4 © I © 0 φ 0 - > C4 = 0
Aus der Nachricht wird
</, d2 ι/, (U <·| C2 «'.ι <4 I 0 0 I 0 I 10
Wenn jetzt angenommen wird, da3 der Kanal einer Fehlerbedingung unterliegt, so daß die Störung ausschließlich d\ invertiert, führt das zu folgender Daten- und Prüfbitreihe.
λ. λ ,ι .ι ..
-I -i "J "4 1I ·-! "-J l4
OCOIO
S1 = c, Φ d2 φ (/., © ί/4 = I
Empfang S2 = C1 ® ί/, φ d3 © i/4 =- 0
& Decodierung S, = c, Φ rf, ©</2 ©^4 = 0 wie oben vorhergesagt
S4 - C4 © J1 Φ dz φ ί/, = 0
Dieses eindeutige Syndrommuster läßt sich nur unter der Bedingung erzielen, daß d\ fehlerhaft ist. Die Korrektur ist trivial. Sie besteht darin, daß das Bit d\ lediglich logisch invertiert wird (weil bekannt ist, daß die richtige Version von d\ nur das Gegenteil des jetzigen Wertes sein kann). Die Schaltung zur Korrektur von d\ ist folgende:
L.
OI Ji J3 Λ4
I I I I
UND
I i
EO
du, ist das korrigierte Bit
Folgende klare Tatsache läßt sich jetzt feststellen: Bei ungerader Parität ist das Syndrommuster, welches d\ korrigiert (invertiert), einfach das Komplement (die logische Verneinung) d«r Spalte in der Paritäts-Prüfmatrix, welche d, entspricht (die erste Spalte). Und grundsätzlich ist also das Syndrommuster, welches du di, di oder d* korrigiert das Komplement der Spalte 1,2,3 oder 4. Die Korrekturen für die Prüfbits ei, C2, a oder C1 finden sich einfach in den Spalten 5, 6, 7 oder 8 der Paritäts-Prüfmatrix, wenn eine solche Korrektur gerechtfertigt ist Bei gerader Parität erscheint das Syndrom nicht als Komplement (als Komplement), wenn die Matrixeintragung eine 1 (0) ist
Ein Doppelfehler wird durch ei« 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:
(S1, S2, S3, S4) = (0,0,0,0), (0,0, 1, I), (0, 1,0, H
(0,1,1,0), (1,0,0,1), (1,0,1,0), (1,1,0,0).
Hierbei handelt es sich offensichtlich um Muster, in b5 wurde, sind dann die Schuldigen d\ und di oder sind es C1
welchen zwei Syndrome sich gegenüber ihrem erwarte- und cj? Somit kann bei Empfang eines Musters wie des
tem Wert verändert haben. Es ist jedoch nicht möglich, oben gezeigten nur ein Doppelfehler erkannt werden,
die Schuldigen anzugeben: Wenn (0,0,1,1) empfangen außer der Abgabe eines Alarmsignals können jedoch
keine weiteren Schritte unternommen werden.
Die Paritäts-Prüfmatrix für die Minimalschaltung bringt eine subtilere Beziehung zwischen der Parität eines gewählten Datenbyte und der Parität über einem ausgewählten Teilsatz von Datenbits und genau einem Prüfbit mit sich, welches eindeutig zu dem gewählten Datenbyte gehört. Die Untersuchung der in F i g. 9 und 10 gezeigten Paritäts-Prüfmatrix legt eine wichtige Beziehung klar.
Bei der verwendeten Codierung und Decodierung (die durch die Paritäts-Prüfmatrix spezifiziert ist) erscheint ein Satz von Einsen in jeder Zeile, betrachtet als eine Untergruppe aller Einsen 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 τα 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 Byteparitä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 ist, die Paritätserzeugung als Teil des Decodierprozesses in diesen einzuschließen und warum dieselbe Schaltung für Lese- und Schreibprozesses 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. Die später zu gebende Beschreibung der Paritäts-Prüfmatrix zeigt, warum diese Rotationseigenschaft nützlich, aber nicht notwendig ist für den allgemeinen Fall der Bildung der Paritäts-Prüfmatrix. Es muß besonders darauf geachtet werden, daß man eine Zeile aus lauter Einsen für das erste Byte vor den sieben Drehungen erhält und es muß insbesondere sichergestellt werden, daß kein* zwei Spalten ein identisches Muster aus Einsen und Nullen haben. Damit sind die Grundlagen für die Bildung der Rotations-Paritäts-Prüfmatrix erklärt. Normale Korrektur kann durch Interpretation dieser Rotationsraatrix als übliche Paritäts-Prüfmatrix erfolgen.
Anschließend wird die Implementierung und Anwendung der Rotationsparitätscodes <n einem Speichenimsetzer beschrieben, wie er hier offenbart wird. Zuerst wird der Leseprozeß betrachtet Die Grundschritte sind folgende:
1. Unter Verwendung der Paritäts- Prüf matrix sowie der Daten und Prüfbits ist ein -Paritatsbit (ür jedes Byte zu bilden.
2. Datenbyte und Paritätsbit sind au» dem Register MR in das Register MDK 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. Es ist festzustellen, ob eine Fehlerbedingung in den ausgelesenen Daten vorliegt. Wenn 'die Daten keinen Fehler enthalten, ist das Wort an die ZE weiterzuleiten; sonst ist jeder Einzelfehler zu korrigieren oder der ZE das Vorliegen von Doppelfehlern anzuzeigen.
Jeder der vier obengenannten 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 Fig. 10 enthält acht Einsen in einer Zeile in den den Bits d\, di-.-<k entsprechenden Spalten. In der Spalte (erste Zeile) unter ο (Spalte 65 in einer Rotations-Paritäts-Prüfmatrix 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:
2O-Vj- die Parität der Paritätsuntergruppc der ersten Zeile,
χι — die Parität des ersten Bytes, Pi — 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 jo 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.
χ, ©>·, θ cx - I,
λ, θρ, = I
Durch Addition dieser beiden Gleichungen zueinander (Addition Modulo 2) ergibt sich die Summe
X1 © >·, © c, © x, © p, = I ® I =0 und
.χ, ©y, ®c, Θ.Χ, ©p, = χ, φχ, ®(>ί ©c,) ©ρ, = Pt Θ0ί Θ C1) = 0.
Dann ist, wenn y, ®c, auf beiden Seiten der Gleichung addiert wird:
p{
= y. ®<Ί
Die Bedeutung dieser Gleichung liegt darin, daß das
μ Paritätsbit fur das erste Datenbyte aus der Parität der
Paritätsuntergruppe der ersten Zeile und dem Prüfbit ei
zu erzeugen is( (und daß dazu flicht die Bifs des efslen Datenbyt'iS herangezogen werden müssen).
Die Ausgangssignale dieser Paritätserzeugungsschal-
hj Hing werden direkt in die ßyieparitätsstellen des
Registers MDR 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\ © c\ erzeugt und gespeichert sind, werden die acht Datenbits eines jeden Bytes (mit der Parität x\) und das zugehörige Paritätsbit als Eingangssignal für eine Paritäts- (oder EXKLUSIV ODER-]Schaltung benutzt Da y\ © C\ = p\ und x\ ®p\ = 1 sind, ist das Ausgangssignal 51 dieser Parität-Schaltung eine 1, wenn kein Fehler im Byte vorliegt Das Erzeugen eines Satzes von Syndrambits geschieht in folgender Weise; Für das Ausführungsbeispiel ergibt sich ein Syndrom aus jedem Byte und seinem zughörigen Paritätsbit Wenn jedoch im ersten Byte ein Fehler Hegt ist X\ ® p\ = 0 = S\ und eine Fehlerbedingung wird angezeigt Damit ist Schritt 3 abgeschlossen und es folgt Schritt 4. Solange kein Fehler vorliegt ist 5i = 5? = ... 5g = 1 (für ungerade Parität) und ein mit KF bezeichnetes Signal kann gebildet werden als KF = S1 - S2 - S, ... · Sj. Wenn KF = 1 ist enthält das Datenwort keinen Fehler. Somit braucht die normale Ausgabe des gegenwärtig im MDR gespeicherten Wortes zur ZE nicht gestört zu werden. Wenn jedoch KF = 0 ist muß die Übertragung des Wortes ausgesetzt werden, die Fehlerart bestimmt werden — Einzel- oder Doppelfehler — und entsprechende Schritte unternommen werden. Ein Einzelfehler wird aus der Kenntnis erzeugt daß KF Φ 1 ist weil KF = 1 das Vorliegen einer Fehlerbedingung im Datenwort anzeigt Der Ausdruck Fehlerbedingung sagt jedoch nicht, ob es sich um einen Einzel- oder einen Doppelfehler handelt Die Klassifizierung der Fehlerbedingung erfordert die Ausnutzung einer Eigenschaft der Paritäts-PrOfmatrix, 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 berüchtigt zu werden, das durch die
ίο Verwendung des fehlerhaften Prüfbits erzeugte Paritätsbit muß jedoch auf seinen richtigen Wert hin invertiert werden. Somit Hegt die Notwendigkeit für diese Korrektur vor und sie wird bei allen Paritätsbits im Befarfsfall durchgeführt indem man sie mit dem
is Komplement der Syndrome antivalent verknüpft Eine besondere Schaltung zeigt den Bedarf für diese Korrektur an.
Wenn z.B.die acht Paritätsbitsp\,pi,...p»gegeben sind als pi = \,pi = 0,P3 = 0,P4 = l.ps = l.ps = 0,pj =
μ l.pg = 0 und die Syndrome als S\ = 1,S2 = 0,S3 = S1 = S5 = S6 = Sj = St=X, bedeutet das, daß das zweite Paritätsbit falsch ist weil S2 = 0 ist Zur Korrektur der Paritäten werden diese_dann_ersetzt durch p@S, wobei P = fpi.p2 ···/*) und S"= (Sx, S2,... 5) ist Für dieses obige Beispiel gilt dann
ρ @S = (1 ®0, 0 θ 1,0 Θ0, 1 Θ0, 1 ©0.0 Θ0. 1 Θ0, 0 ®0) = (1, 1,0.1, 1,0,1,0)
und das ist dann die ursprüngliche Paritätsbitgruppe mit Ausnahme des zweiten Bit, welches aus dem oben gegebenen Wert p? durch Invertieren gewonnen wurde. Im vorliegenden Ausführungsbeispiel ist aus_F_i g. 2 J zu ersetzen, daß die Gruppe S über die Kabel 100,102,... 114 dem Register AiDR 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, wenn:
1. das Fehlersignal eine I ist (ATF*- I),
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 Fehlerfreiheil ist sie gerade, d. h.. 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 EF
EF = KF(S, if)S2®...® S,).
Wenn EF - 1 ist, liegt ein Einzelfehler in dem aus dem Speichger gelesenen Datenwort vor. Wenn ein Fehlersignal (KT - 1) vorliegt und es sich nicht um ein Einzelfehlersignal (EF = 1) handelt, ist es ein Doppelfehler, DE = KF λ EF = I und ein Alarmsignal kann an die Zugegeben werden.
Wenn die Datenbits im Register MDR (Einzeldatenfehler) korrigiert werden können und müssen, werden die Datenbits der Korrekturschaltung zugeleitet beim Taktimpuls A-I und über das Register MR und die Knrrcktiirmatnx liem ^eaisiw Muff hr\ den "T.-. -.11r;· pulsen Λ-2 und den 1 ,iktimpnUen A-\ /uii'-leitei. v. ir spill er noch erkliiri wird. [);is I i.itenwn: t V .ι;, π d;inn um I iillcn angefiigien l'intütsbits der // /utrctiinrl '·'. erden. /:\ diesem /eitp· Vi-: M n.iüi'iich ''δ? ■ "lh·:! erkliiMi· r 'U-(Jk(I ι r neu"'' .s:. i_f'*iiihr' w ; nlen
I1 r Sf'hrribr"'"!!,· ι fin It·;, SncnK ■ be· Hl "ί Empfangen einer Gruppe paritätscodterter Datenbytes von der ZE (über eine Sammelleitung), in der Prüfung der Parität für jedes Byte, dem Umcodieren der Datenbits unter Verwendung der Verbindungsschaltung und dem Speichern des umcodierten Wortes in einem Register zur Eingabe in den Speicher.
Zur Erleichterung r\-r beiden ersten Schritte eines Schreibzyklus und _jr 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 EXKLUSIV 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 EXKLUSIV 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.
Vi Wenn die Parität nicht stimmt, wird eine erneute Übertragung der Information angefordert. Wenn jedoch keine Fehler angezeigt wird, ist das Wort für die Neucodierung und die Rücksetzung in den Speicher bereit.
M> Das umzucodierende zu speichernde Wort steht im Register MR. (Andernfalls hätte das im Register MDR stehende Wor; in (his Roister MR iibiTiragen werden niT.scn. du die l'nril.itsprnfiin^ nieht so wirksam ist.) Wenn die im Register \//)/i sieh- iv:le Version des V,'. 1I1IOS fiir die Npc'hemng herci1 <··\. können die I'1 ..ihns fr die ιinii ί .!er11' l'orni nni' "rwendung (Vr "■ ίκι'ΊΐΜ)' cr/eiipt u -,-iim die /iiT" ,;piemenlieren der 1'.Kiiriis l'iiii'uiinnx fiir iii'" -.e/UKnff > ·>ι gesehen
ist Die Datenbits und die Paritätsbits gehorchen folgenden Gleichungen
χ, θ yv ©c, = 1
Χχ Θ Pj = I1
die bereits oben für die erste Zeile der Paritäts-Prüfmatrix bei einem Lesevorgang angegeben wurden. Für die übrigen Zeilen und Datenbytes gelten wieder ähnliche Überlegungen.
Die obigen Gleichungen können so umgeformt werden, daß aus ihnen die Erzeugung von Prüfbits aus Daten- und Paritätsbits hervorgeht Die umgeformten Gleichungen lauten:
P1 ©3Ί ®ct = 0
Für den Lesefall wurde diese Gleichung umgeordnet zu
C1 ®yt «ft.
Für den SchreiWafl wird die Gleichung umgeordnet zu
Pi ®yx «c,.
Diese Gleichung zeigt daß mit dem Wort im Register MR geschieht Das Paritätsbit für jedes Byte und die durch y\ 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üfte werden dann in den Paritätsbitstellen des Registers MDR gespeichert Wenn die Prüfbits einmal erzeugt sind, kann das Wort (Daten und Prüfbits) aus dem Register MR eiu/srnt werden, in welches es während der Umcodierung oeim Schreibprozeß geladen und gespeichert wurde.
Die folgende Beschreibung der grundlegenden Paritätsmatrix 9 und der daraus entwickelten vollen Pari täls-Prüf matrix der Fig. 10 zeigt insbesondere die Art in welcher die in den F i g. 1 und 2 gezeigte Verbindungsmatrix gebildet wird. Die theoretische Erörterung der Grundlagen einer solchen Priifmatrix muß herangezogen werden, wenn man zu der gewünschten Doppelfunktionsschaltung gelangen will. Die Art, 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 Fig. 1A und 1B als Block und im einzelnen in den Fig. 2A, 2B, IC und 2D dargestellten Verbindungsmatrix, wird folgendes Verfahren benutzt In Fig.9 wird zuerst eine Matrix mit acht Spalten und acht Zeilen gebildet die dann in das in F i g. 10 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 obenerwähnten Verbindungstnatrix wird die obere Reihe von Einsen nicht berücksichtigt.
In Fig. 10 gibt das untere rechte Rechteck 426 die Lage der Prüfbits an. Zur Bildung der im Rechteck 412 der Fig. 10 gezeigten Matrix wird die Matrix im Rechteck 410 nach oben gedreht, mit anderen Worten, die erste Zeile wird durch die zweite /eile ersetzt, die zweite durch die dritte usw. Die oberste oder erste Zeile geht naeh unten oder in die achte Zeile, Die im Rechteck 414 dargestellte Matrix ist die Matrix des Rechteckes 415, 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 des Rechteckes 410 zur Gewinnung des Rechtecks 412
ίο einmal, des 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 Fig. 10 mit der Bezeichnung 410 bis 426 als eine Matrix aus acht Zeilen uno 72 Spalten auf, so entspricht diese Matrix genau der Anordnung in den Fig.2A, 2B, 2C und 2D. Die 72 Spalten in Fig. 10 entsprechen den 72 Bits im Register MR. Die acht Zeilen der Fig. 10 entsprechen den acht Leitungen 204 bis 218. Jede Zeile in F i g. 10 enthält 19 Einsen. Jede Eins in einer Zeile der Matrix entspricht dem i -Ausgangssigna! des genauso numerierten Flipflops des Registers MR So erscheint z. B. die erste 1 in der Zeile 1 in Spalte 9. Aus F i g. 2A ist zu ersehen, daß der 1-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
jo Kabel werden genauso durch Bezug auf die Zeilen der Matrix der F i g. 10 abgewählt
Es folgt eine allgemeine Erörterung des Aufbaus einer Paritäts-Prüfmatrix, wenn unterschiedliche Bytezahlen (Byte-Paritätsbits) und Prüfbits vorhanden sind. Wenn
« /π Bytes aus b Bits vorhanden sind, ergibt das mb = K Datenbits. Wenn K gegeben ist errechnet sich die Anzahl der Prüfbits mach der bekannten Hamming-Beziehung. Alle Pari tälb-Prüf matrizen haben K + r Spalten und r Zeilen. Die letzten r Spalten enthalten eine 1 und (r— 1) Nullen, die so cngeor.£net sind, daß die r Spalten eine 1 in der ersten, zweiten ... r-ten Zeile haben. Jede Spalte entspricht einem Prüfbit.
Teile die m Bytes gleichmäßig in /-Gruppen T> Wenn m = dr+e0<e<r ist, setze d + 1 Bytes in die ersten eGruppen Tu ... Te und d Bytes in die letzten (r= e) Te+ 1,... T„ Die Gruppe T, soll dem Aten Prüfbit und der /-ten Zeile entsprechen. Beginne durch Setzen von b(d + 1) in die erste Zeile unter T\, b(d + 1) Einsen in die zweite Zeile unter Ti und fahre so fort für die
r>n ersten eGruppen. Jetzt setze bdEinsen in die (e + l)-te Zeile unter die Gruppe Te+S und fahrt fort bis unter jeder Gruppe b(d + I) oder bd Einsen jeweils in einer separaten Zeile stehen.(In Fig. 1, Zeilen 1 bis 8 und in F i g. 4, Zeilen I bis 7 mit acht Bits in Zeile 1, vier in den
v> restlichen.)
Es gibt
G)
verschiedene Wege, um drei Einsen in r Stellen zu setzen und
{r - IMr - 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 c) FehlersignaJe sind wie vorher zu bilden und, falls
und EXKLUSIV ODER-Schaltungen verwendet wer- erforderlich, ist die Korrektur unter Verwendung
den, je weniger Einsen sich in einer Paritäts-Prüftjiatrix von Syndrom- und Paritätsbits wie vorher durchzu-
finden, fOhrea
Für r = 7 gibt es 35 derartige mögliche Kombiinatio- 5 d) Die Anzahl von Bits in einem Byte ist willkürlich,
nen und 32 werden für F i g, 4 benötigt Eine mögliche Siehe hierzu das Beispiel in Tabelle IH mit Bytes
Auswahl ist in F ig. 4 gezeigt Wenn mehr als aus vier Bits und sechs Prüfbits.
/jjbenötigt werden, gibt es
G)-
r(r- l)(r-2)(r-3)(r-4) 120
10
Beispiel 2
m > r
In diesem Fall entspricht jedes Prüfbit einer Gruppe Möglichkeiten mit fünf Eisen, U) mit sieben, (A mit Datenbits und jede Gruppe von Datenbits enthält eines
\7 / \9i oder mehrere Bytes. Tabelle IV und F ι g. 11 zeigen ein
neun Eisen usw.
Die Einsen wählt man am besten so, daß ihre Anzahl in jeder Zeile gleich ist, so daß die durch die Schaltung hervorgerufene Verzögerungen ungefähr gleich sind. Eine Möglichkeit besteht z.B. darin, die Spalte 1 in Tabelle I zu wählen, dann den Inhalt der Spalte in allen Bytes zu drehen, dann eine zweite Spalte zu wählen, ihren inhalt wieder zu drehen usw. Dabei ist auf Verschiedenheit zu achten. Die Bytes sind aus am 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: to
a) In Fällen, in welchen ein Prüfbit unter Verwendung aller Datenbits in einem Byte (im Beispiel c, und C4) gebildet wird, sind Paritätsbit und Syndrombit wie vorher zu bilden.
b) Die anderen Syndrombits sind wie gewöhnlich zu r, bilden, z. B. durch EXKLUSIV ODER-Schaltung der entsprechenden Untergruppe von Datenbits für jedes Prüfbit (im Beispiel S2, Sj,
Tabelle I
m = 8, b = A, k = 8 χ 4 = 32, r = 7 is Beispiel fflr diesen Fall einschließlich der zur Bildung von Syndromen aus Untergruppen von Datenbits entsprechend der Paritäts-Prüfmatrix erforderlichen Schaltung.
a) Ein Paritätsbit für die ganze Gruppe wird unter Verwendung eines Prüfbits und des Umsetzers wie vorher erzeugt
b) Jede π Bytes (zwei oder mehr} enthaltende Gruppe ist in η Teile aufzuteilen. Erzeuge n-1 Paritätsbits für die ersten /?—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 EXKLUSIV 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 Verwendung 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.
I 2 3 4 5 6 7 8
I I I I 1 1 I I
I 0 I 0 I O 0 0
I I 0 I 0 0 0 0
0 I I 0 0 I I 0
0 0 C I I 10 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 10
Tabellen
k = 16, r = 6, π = 22, 2 Bytes
L=. IiLi + i
9 K)II 12 13 14 15 16 17 1X19 20 2122 23:4
00000000 OOOIOIOO
I I I I 0 0 0 0
I 0 I 0 I I I I
I I 0 I I 0 I 0
0 I 1 0 I I 0 I
0 0 0 I 0 I 10
0 0 0 0 0 0 0 I
0 0 0 0 0 0 1 I
0000000
1 1 I I 0 0 0 I 0 I 0 I 1 I I I I 0 I I 0 I OiIOMOI 25 26 27 28 29 3O3I 32
I I 0 0 I 0 I 0 OMOMOI 0 0 0 10 1 10 0 0 0 0 0 0 0 I
000 0 0000
1 I I 10 0 0 0
I 0 I M I M
d A1 d, <i4 ι/. </.. </■- i/h
I 2 3 4 ^ f, 7 κ </„ </,u </,, ti,, </,. dH d,*. (/,,. ') Ml Il i: 13 14 15 ld
33 34 35 36 37 38 39
I 0 0 0 0 0 0
0 10 0 0 0 0
0 0 10 0 0 0
0 0 0 10 0 0
0 0 0 0 1 0 0
0 0 0 0 0 10
0 0 0 0 0 0 1
<l C1 Ij C4 C5 C1,
17 IX I') :o 21 22
I'iiritiitr-Verbindungs-Mntnx
.S1 I I I I I I I I
.S\ I ! I I 0 0 0 0
ο idol ο ο ο
0 I 0 0 I 0 I
I 0 0 0 0 0 0 I 0 (I 0 0
21 22
lortsct/υημ
I 2 .1 4 < (1 " X ') ld I I 12 I.' It I5 ld 17 IX I1J 2Il 11 22
Pari läts-Verbind ungs-Matrix
S, I O t) O I I I O O O O I O O I I 0 0 10 0 0
.S4 0 I 0 0 I 0 0 Ο I I I I I I ! I 0 0 0 10 0
55 OOIOOiOI 1 t 1 10 0 0 0 000 0 10
56 OOOIOOII 10000000 000001
Tabelle HI
κ — Ίό. r = π. η = 22, 4 Bytes
2 ' J 5 </, 1 i </; I ds 1 d, 1 ■) io Ii df </„ d- ti. !5 i/o </,., du Ju 19 '■' :i ^14 15 </,„ 23 24 «Ί ι.' I ■■> ('4 r, I*.
I I 1 I 1 I 0 2 1 -1 0 4 0 0 0 0 5 7 S 0 9 IO Il 12 1 I 0 14 I 16 0 I 17 18 0 19 20 21 ΤΪ
O I O 1 1 1 0 1 1 I 1 I 0 0 0 0 0 0 I I 0 0 0 1 0 1 0 I 0 1 0 0 0 0 0 0
1 O I 1 0 1 1 I 0 1 O 1 I 1 I 1 I 0 0 0 0 0 0 0 1 0 0 I I 0 I 0 0 0 0 0
I 1 O I 0 I 0 0 0 0 I I I I 0 I I 0 0 0 I 0 0 0 0 0 I 0 0 0 0 0 I 0 0 D
O O I I 0 I 0 0 ! I 0 1 I 0 1 0 0 I I I I 1 I 1 0 1 0 0 0 0 0 0 0 I 0 0
0 0 0 0 0 I 1 0 1 I 0 I I I 0 0 1 1 I 0 1 1 I 0 0 0 0 I 0
7 0 I) 0 1 I 0 1 I I 1 0 0 0 0 0 I
0 0 20
1 I 12 :.' 14 16 I 22 26 28 29 Ί
S, 1 0 I 0 0 0 I I 1 1 0 0 0 0 0
S2 1 1 1 0 0 0 0 0 0 I 1 0 0 0 0
s, 0 1 0 1 I 0 0 0 0 0 0 I 0 0 0
S, 0 0 1 I 0 1 I 1 I 0 0 0 I 0 0
S, 1 I 1 I 0 1 0 0 0 0 0 I 0
S, I I) 1 I 1 0 I 0 0 0 0 I
Tabelle IV
I
i
1
O
O
O
Im folgenden werden der Datenfluß vom Eingangsre- acht Datenbytes aus je acht Bits und die Bits 65 bis 72 für
gister MR durch die Verbindungsmatrix zum Register die acht Prüfbits benutzt. Die besonders in F i g. 1
MDR, der DatenfluB und die einzelnen Schaltungsteile 55 dargestellte Verbindungsmatrix ist im Ausführungsbei
für die Erzeugung der Syndrombits, die Schaltung zur spiel der F i g. 2 durch die acht Kabel mit den Nummerr
Unterscheidung der verschiedenen Fehlerbedingungen 204, 206, 208, 210, 212, 214, 216 und 218 dargestellt
und schließlich die Schaltung für die Datenbitkorrektu- Jedes dieser Kabel ist an 19 Stufen des Registers Mf
ren beschrieben. Bei allgemeiner Bezugnahme werden angeschlossen, wie bereits früher erwähnt. Achtzehr
der Einfachheit halber die Fig. 2A bis 2 J als Fig. 2 6o dieser 19 Stufen spdehern Datenbits, eine ein Prüfbit
bezeichnet, bei Bezugsnahme auf bestimmte Schaltun- Jedes dieser Kabel ist an die EXKLUSIV ODER-Schal·
gen wird die jeweils zutreffende Figur erwähnt. tung angeschlossen. Es sind acht solcher Schaltunger
Das Register MR erscheint oben in Fig. 2 und mit der Nummerierung 172 bis 186 vorhanden. Wie
erstreckt sich über die F i g. 2A, 2B, 2C und 2D. Es wird bereits gesagt, sind Einzelheiten einer solchen EXKLU
angenommen, daß Torschaltungen im Speicher und der 65 SIV ODER-Schaltung mit 19 Eingängen in Fig.;
ZE vorhanden sind, um dieses Register zu laden, auch gezeigt. Die acht Datenbytes aus je acht Bits im Registe
wenn diese nicht besonders dargestellt sind in diesem MR werden über die acht Torschaitungen iss bis 20;
Register werden die Bits mit der Nummer 1 bis 64 für geleitet Diese acht Torschaitungen entsprechen de:
Torschaltung 124 in Fig. IA und werden alle durch Zuführen der Signale CR-X, CWi oder ,4-3 zum ODER-Glied 125 durchgeschaltet, welches seinerseits einen Ausgangsimpuls auf der Leitung 126 erzeugt. Die Ausgangssignale der EXKLUSIV ODER-Schaltungen 172 bis 186 werden ebenfalls den Torschaltungen 188 bis 202 zugeleitet. Im rechten Teil der Fig. 2D ist die Leitung 156 gezeigt, die das Paritätsbit für das Byte 1 wewerleitet. Auf der Leitung 158 erscheint das Paritätsbil 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 Fig. 10 zu bestimmen. Während eines Lesezugriffs mit der CÄ-Taktgeber gestartet, kurz nachdem das Register MR geladen ist. Der Impuls CR-X wird über ein ODER-Glied 125 auf die Leitung 126 gegeben, um das Register MDR zu laden und auch der Torschaltung 340 zugeführt, um das in Fig.2] gezeigte 5-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 EXKLUSIV ODER-Schaltungen 222 bis 236 angeschlossen. Diese EXKLUSIV ODER-Schaltungen unterscheiden sich von der in Fig. 7 gezeigten dadurch, daß sie anstelle der in F i g. 7 gezeigten 19 Eingänge nur neun Eingänge haben. Die acht Ausgänge der eben erwähnten EXKLUSIV ODER-Schaltungen werden zum Speichern der acht Syndrombits in das in Fig. 2J gezeigte S-Register benutzt.
Nach dem Taktimpuls CR-X liefert der Taktgeber den Taktimpuls CR-2. Dieser Impuls wird zum Prüfen auf das Vorliegen eines Fehlers benutzt. Bei ungerader Parität wird kein Fehler angezeigt, wenn alle 5 Bits den Binärwert ? aufweisen. Die in Fig. 2J gezeigte Leitung 238 wird also erregt, wenn kein Fehler vorliegt und die Leitung 240, wenn ein Fehler vorhanden ist Das UND-Glied 237 wird nämlich dadurch eingeschaltet, daß im 5-Register lauter Einsen erscheinen. Der Impuls CR-2 wird der Torschaltung 242 zugeführt, um den Zustand der 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 Daten zur Zfoder zu einer anderen Stelle im System zu übertragen, da kein Fehler vorliegt. Liegt jedoch ein Fehler vor, erscheint ein Ausgangsimpuls auf der Leitung 398. Die ebenfalls in der Fig.6 gezeigten Leitungen 396 und 398 bewirken dort die Erzeugung der Taktimpulse CR-A bzw. 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 Einzelfehler handelt oder nicht Diese Prüfung erfolgt durch den an die Torschaltung 244 in Fig.21 angelegten Taktimpulse CR-3. Liegt ein Einzelfehler vor, liefert die EXKLUSIV ODER-Schaltung 246 ein 1-Ausgangssigna], da eine ungerade Zahl von Einsen im Register 5 steht, wenn ein Einzelfehler vorliegt Das UND-Glied 248 liefert ein Ausgangssignal, weil die Leitung 240 erregt ist Wenn das UND-Glied 248 zu dem Zeitpunkt ein Ausgangssignal 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 Ausgangsimpuls 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 CW-Taktgeberschaltung der F i g. 6 gezeigt. Der Taktimpuls CR-S 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 Taktschritt CR-6 eingeleitet, der das Korrekturverfahren beginnt.
Zuerst muß festgestellt werden, ob es sich bei dem Einzelfehler um einen Prüfbitfehler handelt, welcher nur eine Korrektur des betroffenen Prüfbits erfordert, die als eine Paritätsbitkorrektur im Register MDR vorzunehmen ist, oder ob es sich um einen Einzeldatenfehler handelt Diese Feststellung wird getroffen durch Anlegen des Impulses CR-6 an die in Fig.2J gezeigte Torschaltung 405. Die in Fig.2J gezeigte Verknüpfungsschaltung 407 ist mit den Null-Ausgängen des Registers 5 verbunden. Bekanntlich zeigt ein einzelner Syndrombitfehler ein falsches Prüfbit an und 3,5 oder 7 Syndrombitfehler einen einzelnen Datenbitfehler. Wenn die Schaltung 407 also ein Ausgangssignal erzeugt bedeutet das, daß ein Prüfbitfehler festgestellt und die Leitung 354 erregt wurde, welche den Taktimpuls CR-7 einleitet Dieser Taktimpuls wird auf die Leitung 254 in den Fig. 2E, 2F, 2G und 2H gegeben. Dieser Taktimpuls wird jede der Torschaltungen zugeführt, welche wie die Torschaltung 255 unter der Bitspeicherstelle des Registers MDR erscheint Dieser Impuls verknüpft den Komplementinhalt des Registers 5 mit dem Inhalt der Paritätsspeicherstelle des Registers MDR antivalent in EXKLUSIV ODER-Schaltungen, wie z. B. der EXKLUSIV 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 für die im linken Teil der Fig.2E erscheinende Bytespeicherstelle 1 des Registers MDR angenommen, daß das 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 EXKLUSIV ODER-Schaltung 257 kommt, wodurch wiederum der Inverter 259 einen Ausgangshnpuls erzeugt, welcher die Torschaltung 255 beim Auftreten des Taktimpulses CR-7 durchläuft und die Bitstelle Ober das ODER-Glied 261 auf 0 zurückstellt In all denjenigen Paritätsbitsteilen, 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
Wenn jetzt angenommen wird, daß ein Einzelfehler festgestellt wurde und die Korrektur vorzunehmen ist, dann wird die Leitung 404 durch Anlegen des Taktimpulses CR-6 an die Torschaltung 405 erregt Die Erregung der Leitung 404 startet einen in Fig.8 gezeigten Λ-Taktgeber. Wie bereits gesagt, handelt es
sich hierbei um einen einfachen dreistufigen Taktgeber, der die gegenwärtig im Register MDR gespeicherten. Datenbits direkt im Taktschritt /4-1 über das Kabel 312 in die im unteren Teil der Fig. 2J dargestellte Korrekturschaltung leitet. Der Taktimpuls /4-2 veranlaßt dann die Übertragung der im Register 500 gespeicherten, korrigierten Daten in das Register MR. Das ist erforderlich, da eine Anzahl von während des vorhergehenden Zyklus erzeugten Paritätsbits falsch ist. Auf den Taktimpuls /4-2 folgt der Taktimpuls /4-3, der an die ODER-Schaltung 125 angelegt wird, um den Inhalt des Registers MR über die Verbindungsmatrix den EXKLUSIV ODER-Schaltungen zuzuführen und neue richtige Paritätsbits zu erzeugen. Auf den Taktimpuls /4-3 folgt der Taktimpuls CR-A, welcher signalisiert, daß die gegenwärtig im Register MDR stehenden Daten für die Übertragung an die Zfjetzt bereit sind.
Die Korrekturschaltung umfaßt ein UND-Glied 502 für jedes Datenbit und auch ein EXKLUSIV ODER-
Register MDR und zur EXKLUSIV ODER-Verknüpfung dieses Bits mit dem Ausgangssignal des UND-Gliedes 502 Diese Art der Korrektur ist allgemein bekannt. Die Eingangssignale für die verschiedenen UND-Glieder stellen die im Register 5 gespeicherten und entweder in regulärer oder in komplementärer Form zugeführten Syndrombits dar. In der dargestellten Korrekturschaltung werden alle Datenbits, d. h. d\ bii du, parallel der Korrekturschaltung zugeführt und über den >4-Taktgeber auch im wesentlichen parallel korrigiert
Wenn die Korrektur beendet ist, wird das Register 500 mit den korrekten Daten geladen und danach wird beim Taktimpuls /4-2 dieser korrigierte Datensatz in das Register AfA und beim Taktimpuls /4-3 über die Verbindungsmatrix dem Register MDR zugeführt
Nach Beschreibung eines Lesezugriffs wird jetzt ein Schreibzugriff beschrieben, wobei der Vorgang im Zusammenhang mit den F i g. 3 und 4 bereits beschrieben wurde ebenso wie der das System bei einem Schreibzugriff steuernde CW-Taktgeber. Vor einem Schreibzyklus werden bekanntlich das Register MDR und das Register MR mit den von der ZE gelieferten Daten- und Paritätsbits geladen. Zuerst muß jedoch mit einer Prüfung festgestellt werden, ob die Parität der ins Register MDR übertragenen Daten stimmt. Zu diesem Zweck erscheint der Taktimpuls CW-\ auf der Leitung 145, um das Register S über die EXKLUSIV ODER-Schaltungen 222 bis 236 zu laden. Wie bereits beschrieben wurde, wird damit nur eine Paritätsprüfung durchgeführt, und wenn man die Anwendung der ungeraden Parität voraussetzt, ist dai Register S jetzt mit lauter Einsen geladen. Nach dem Taktimpuls CW-X erscheint der Taktimpuls CW-2 auf der Leitung 148 in F i g. 21. Dieser Impuls bewirkt das Prüfen des Inhaltes des Registers 5 auf richtige Parität (nur Einsen) durch Überprüfen des Ausgangssignales des UND-Gliedes 237. Wenn die Leitung 238 erregt ist, bedeutet das, daß das Register S richtig lauter Einsen enthält und kein
r4.-~ 2(1 F-m-r
. 1... —t. -J— ι aivuiiiuuia /-•II/ Λ
TV/l HUgI1 , TTVAlUI 1,11 UCI
eingeleitet wird. Wenn andererseits ein Paritätsfehler festgestellt wird, wird der Taktimpuls CW-3 erzeugt, der dem Datenverarbeitungssystem anzeigt, daß ein Paritätsfehler festgestellt wurde und die Daten erneut in die Register AiA und MDR übertragen werden müssen.
Wenn angenommen wird, daß kein Fehler auftrat, ist die Leitung 149 in der F i g. 21 erregt Das Signal auf dieser Leitung betätigt dann die Taktstufe CW-A, deren Taktimpuls über die Leitung 126 dem ODER-Glied 125 zugeführt wird und den Inhalt des Registers MR der Verbindungsmatrix zuleitet, um die erforderlichen Prüfbits zu erzeugen und sie an den entsprechenden Prüfbitstellen im Register MDR zu speichern. Die Leitung 126 kommt vom ODER-Glied 125 in F i g. 2D. Nach dem Taktimpuls CW-A erscheint der Taktimpuls CWS, der ein Schreibsignal »gültige Daten« an den Speicher sendet, wodurch der ganze Inhalt des Registers MDR, das jetzt die richtigen Datenbits und auch die erzeugten Prüfbits enthält, zum Speicher übertragen wird.
Hierzu 17 Blatt Zeichnungen

Claims (1)

  1. Patentansprüche;
    1. Umsetzer für zwischen dem Speicher und der Zentraleinheit einer Datenverarbeitungsanlage zu s übertragende, aus einzelnen Bytes bestehende Datenwörter, wobei in der Richtung zum Speicher (Schreibvorgang) aus den Datenbits und den zu den Bytes gehörigen Paritätsbits Prüfbits nach einem Einzelfehler-Korrektur- und Doppelfehler-Erkennungs-Hamming-Code erzeugt und mit den Datenbits gespeichert werden, und in der Richtung vom Speicher (Lesevorgang) aus den Daten- und Prüfbits Syndrombits und zu den Bytes gehörige Paritätsbits erzeugt werden, gekennzeichnet durch folgende Einrichtungen:
    a) ein erstes Register (MR, F i g. la) zum wahlweisen Speichern entweder von aus dem Speicher gelesenen Daten- und Prüfbits oder von in den Speicher einzuschreibenden Daten- und Byteparitätsdts,
    b) mehrere erste EXKLUSIV ODER-Schaltungen zur Erzeugung von Redundanzbits (Prüfbits bzw. Paritätsbits), deren Eingänge jeweils über eine Verbindungsmatrix (Fig. IA) an ausgewählte Stufen des ersten Registers angeschlossen sind,
    c) ein zweites Register (MDR, F i g. 1 B) zur Speicherung der ursprünglichen Datenbits und der von den ersten mehrstufigen EXKLUSIV jo ODER-Schaltungen erzeugten Redundanzbits,
    d) mehrere zweite mehrstufige EXCLUSIV ODER-Schaltungen zur Prüfung der Parität der Datenbytes und der zugehörigen Redundanzbits, J5
    e) ein drittes Register (S, F i g. 2J) zur Speicherung der Ausgangssignale der zweiten mehrstufigen EXKLUSIV ODER-Schaltungen, dessen Stufen bei erfüllter Paritätsbedingung der Datenbytes und ihrer Paritätsbits einen vorgegebenen Binärwert speichern,
    f) eine Prüfschaltung zur Prüfung der von den zweiten mehrstufigen EXCLUSIV ODER-Schaltungen gelieferten Ergebnisse und eine Anzeigeschaltung zur Anzeige eines Datenbit- oder eines Prüfbitfehlers, wenn die Fehlerursache im Speicher liegt
    2. Umsetzer nach Anspruch 1, dadurch gekennzeichnet, daß die Prüfschaltung eine Schaltung zur Anzeige eines bei einem Schreibzugriff zum vt Speicher festgestellten Paritätsfehlers und eine Schaltung zur Anzeige eines bei einem Lesezugriff erkannten Datenbit-Einzelfehler, eines Prüfbit-Einzelfehlers oder eines Doppelfehlers enthält.
    3. Umsetzer nach den Ansprüchen I und 2, « dadurch gekennzeichnet, daß die ersten mehrstufigen EXKLUSIV ODER-Schaltungen wahlweise entweder aus den Datenhit» gewonnene Paritätsbits und Prüfbits im Falle eines Lesezugriffs oder aus den Datenbus und Byteparitätsbits gewonnene Prüfbits wi im Falle eines Schreibzugriffs liefern,
    4. Umsetzer nach den Ansprüchen I bis 3. dadurch gekennzeichnet, daß erste Torschaltungen zur direkten Fingabe der Bytes und ihrer Paritätsbits in das erste und zweite Register bei einem Schreibzu- hi griff und zweite Torschaltungen zur Ausgabe von Daten- und Paritätsbits über die zweiten EXKLUSIV ODI· «-Schaltungen zur Prüfung der Byteparität
    der empfangenen Daten vorgesehen sind,
    Umsetzer nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß weitere Torschaltungen vorgesehen sind, um nach einer erfolgreichen Payritätsprüfung die empfangenen Daten- und Paritätsbits aus dem ersten Register den ersten mehrstufigen EXKLUSIV ODER-Schaltungen zur Erzeugung von Prüfbits zuzuleiten und diese mit den Datenbits dem Speicher,
    6. Umsetzer parh den Ansprüchen 1 bis 5, dadurch gekennzeichnet, daß den ersten mehrstufigen EXKLUSIV ODER-Schaltungen bei einem Lesezugriff die Daten- und Prüfbits zugeführt werden, daß Mittel vorgesehen sind, um den Wert eines erzeugten Paritätsbits zu ändern, wenn die Prüfschaltung einen Prüfbit-Einzelfehler aufgrund der Ausgangssignale der zweitem mehrstufigen EXKLUSIV ODER-Schaltungen feststellt, wobei das geänderte Paritätsbit von derjenigen der zweiten mehrstufigen EXKLUSIV ODER-Schaltungen erzeugt wird, die das Fehlersignal lieferte.
    7. Umsetzer nach Ansprüchen 1 bis 6, dadurch gekennzeichnet, daß eine Prüfeinrichtung zum Feststellen der Anzahl der fehlerhaften unter den von den zweiten mehrstufigien EXKLUSIV ODER-Schaltungen erzeugten Syndirombits vorgesehen ist und daß an die Prüfeinrichtung eine Anzeigeeinrichtung zur Anzeige eines Prülibit-Einzelfehlers, wenn nur ein Syndrombit fehlerhaft ist, zur Anzeige eines Datenbit-Einzeifehlers. wenn eine ungerade Anzahl größer als Eins von Syndrombits fehlerhaft ist und zur Anzeige eines Doppelfehlers, wenn eine Gerade Anzahl von Syndrombits fehlerhaft ist
    8. Umsetzer nach den Ansprüchen 1 bis 7, dadurch gekennzeichnet, daß an die Anzeigeeinrichtung Torschaltungen angeschlossen sind, die bei der Anzeige eines Datenbit-Einzelfehlers die Datenbits und Syndrombits der Fehlerkorrekturschaltung zuführen und die korrigierten Datenbits wieder speichern, ohne daß die gespeicherten Prüfbits geändert werden.
    9. Umsetzer nach den Ansprüchen 1 bis 8, dadurch gekennzeichnet, daß eine Einrichtung zur Erzeugung neuer Byteparitätsbits aus den korrigierten Daten vorgesehen ist, die Torschaltungen enthält zum Zuführen der korrigierten Datenbits und der unveränderten Prüfbits zu den ersten mehrstufigen EXKLUSIV ODER-Schaltungen.
DE2132565A 1970-06-30 1971-06-30 Umsetzer Expired DE2132565C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US5130270A 1970-06-30 1970-06-30

Publications (3)

Publication Number Publication Date
DE2132565A1 DE2132565A1 (de) 1972-01-13
DE2132565B2 true DE2132565B2 (de) 1980-07-03
DE2132565C3 DE2132565C3 (de) 1981-04-02

Family

ID=21970451

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2132565A Expired DE2132565C3 (de) 1970-06-30 1971-06-30 Umsetzer

Country Status (6)

Country Link
US (1) US3648239A (de)
JP (1) JPS5226104B1 (de)
CA (1) CA934061A (de)
DE (1) DE2132565C3 (de)
FR (1) FR2109584A5 (de)
GB (1) GB1293488A (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3755779A (en) * 1971-12-14 1973-08-28 Ibm Error correction system for single-error correction, related-double-error correction and unrelated-double-error detection
US3825893A (en) * 1973-05-29 1974-07-23 Ibm Modular distributed error detection and correction apparatus and method
US3800294A (en) * 1973-06-13 1974-03-26 Ibm System for improving the reliability of systems using dirty memories
JPS5440187B2 (de) * 1973-07-25 1979-12-01
US3949208A (en) * 1974-12-31 1976-04-06 International Business Machines Corporation Apparatus for detecting and correcting errors in an encoded memory word
US4005405A (en) * 1975-05-07 1977-01-25 Data General Corporation Error detection and correction in data processing systems
US4646312A (en) * 1984-12-13 1987-02-24 Ncr Corporation Error detection and correction system
IT1202527B (it) * 1987-02-12 1989-02-09 Honeywell Inf Systems Sistema di memoria e relativo apparato di rivelazione-correzione di errore
US4979173A (en) * 1987-09-21 1990-12-18 Cirrus Logic, Inc. Burst mode error detection and definition
US5140595A (en) * 1987-09-21 1992-08-18 Cirrus Logic, Inc. Burst mode error detection and definition
US4868829A (en) * 1987-09-29 1989-09-19 Hewlett-Packard Company Apparatus useful for correction of single bit errors in the transmission of data
JPH04342459A (ja) * 1991-05-16 1992-11-27 Toyota Motor Corp チタン酸鉛系圧電セラミックス材料
US5313475A (en) * 1991-10-31 1994-05-17 International Business Machines Corporation ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
US5539754A (en) * 1992-10-05 1996-07-23 Hewlett-Packard Company Method and circuitry for generating syndrome bits within an error correction and detection circuit
ATE216096T1 (de) * 1994-02-22 2002-04-15 Siemens Ag Flexible fehlerkorrekturcode/paritätsbit- architektur
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
US6003144A (en) * 1997-06-30 1999-12-14 Compaq Computer Corporation Error detection and correction
US6301680B1 (en) * 1998-09-24 2001-10-09 Sun Microsystems, Inc. Technique for correcting single-bit errors and detecting paired double-bit errors
CA2437927A1 (en) * 2003-08-14 2005-02-14 Ramesh Mantha Adaptive coding for a shared data communication channel
US8832523B2 (en) * 2006-03-03 2014-09-09 Ternarylogic Llc Multi-state symbol error correction in matrix based codes
US7243293B2 (en) * 2003-12-23 2007-07-10 International Business Machines Corporation (18, 9) Error correction code for double error correction and triple error detection
US9203436B2 (en) * 2006-07-12 2015-12-01 Ternarylogic Llc Error correction in multi-valued (p,k) codes
US8365048B2 (en) * 2006-09-26 2013-01-29 GM Global Technology Operations LLC Vehicle communication system diagnostic using hamming code
US8069392B1 (en) 2007-10-16 2011-11-29 Integrated Device Technology, Inc. Error correction code system and method
JP2010026896A (ja) * 2008-07-23 2010-02-04 Nec Electronics Corp メモリシステム、及び、メモリエラー要因特定方法
JP5353655B2 (ja) * 2009-11-18 2013-11-27 富士通株式会社 エラー検出・訂正符号生成回路及びその制御方法
US10176040B2 (en) 2016-04-05 2019-01-08 Micron Technology, Inc. Error correction code (ECC) operations in memory
US10735199B2 (en) 2018-01-02 2020-08-04 Bank Of America Corporation File based transmission validation and failure location identification system
CN111858129B (zh) * 2019-04-28 2024-02-23 深信服科技股份有限公司 一种纠删码读请求处理方法、系统、设备及计算机介质
US11886295B2 (en) 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL79872C (de) * 1950-01-11
US3163848A (en) * 1959-12-22 1964-12-29 Ibm Double error correcting system
US3478313A (en) * 1966-01-20 1969-11-11 Rca Corp System for automatic correction of burst-errors
US3492641A (en) * 1967-01-11 1970-01-27 Datamax Corp Error correcting digital communication system

Also Published As

Publication number Publication date
JPS5226104B1 (de) 1977-07-12
DE2132565C3 (de) 1981-04-02
FR2109584A5 (de) 1972-05-26
US3648239A (en) 1972-03-07
CA934061A (en) 1973-09-18
GB1293488A (en) 1972-10-18
DE2132565A1 (de) 1972-01-13

Similar Documents

Publication Publication Date Title
DE2132565C3 (de) Umsetzer
DE2260850C2 (de) Schaltungsanordnung zur Erkennung von Einzel- und Mehrfachfehlern und zur korrektur von Einzel- und bestimmten Mehrfachfehlern
DE2328869C2 (de) Verfahren und Schaltungsanordnung zum Betreiben eines digitalen Speichersystems
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE2554945C2 (de) Verfahren und Schaltungsanordnung zur Erkennung und Korrektur von Fehlern in gespeicherten Datenwörtern
DE3111447C2 (de)
DE2421112A1 (de) Speicheranordnung
DE2430464A1 (de) Einrichtung zur fehlergesicherten datenuebertragung
DE2247704A1 (de) Aus monolithisch integrierten schaltkreisen aufgebaute datenverarbeitungsanlage
DE2659031B2 (de) Fehlerkorrektur- und -Steuersystem
DE2357168A1 (de) Speichermodul fuer eine datenverarbeitungseinheit
DE2153542A1 (de) Codierer für eine binäre Informationsbitfolge
EP0219917A2 (de) Vermittlungsanlage mit Fehlerkorrektur
DE2513262C3 (de) Digitale Codeumwandlungsanordnung
DE1250163B (de) Einrichtung zur Paritätsprüfung von Speicherworten
DE2450468A1 (de) Fehlerkorrekturanordnung fuer einen speicher
DE1474576B2 (de) Fehlererkennungseinrichtung fuer den zeitmultiplexbetrieb
DE2047868A1 (de) Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes
EP0443377A2 (de) Einrichtung zur signaltechnisch sicheren Darstellung eines Meldebildes
DE2104132A1 (de) Anordnung zur Fehlererkennung und Fehlerkorrektur
DE2628847A1 (de) Selbstpruefende lese- und schreibschaltung
DE1234054B (de) Byte-Umsetzer
DE69534316T2 (de) Telekommunikationsanlage mit einem prozessorsystem und ein prozessorsystem
EP0127118A1 (de) Speichersteueranordnung, insbesondere für fehlertolerantes Fernsprech-Vermittlungssystem
DE2826454A1 (de) Faksimilesignal-codiersystem

Legal Events

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