DE2132565C3 - Umsetzer - Google Patents

Umsetzer

Info

Publication number
DE2132565C3
DE2132565C3 DE2132565A DE2132565A DE2132565C3 DE 2132565 C3 DE2132565 C3 DE 2132565C3 DE 2132565 A DE2132565 A DE 2132565A DE 2132565 A DE2132565 A DE 2132565A DE 2132565 C3 DE2132565 C3 DE 2132565C3
Authority
DE
Germany
Prior art keywords
bits
parity
data
check
error
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.)
Expired
Application number
DE2132565A
Other languages
English (en)
Other versions
DE2132565A1 (de
DE2132565B2 (de
Inventor
Keith Albert Wappingers Falls N.Y. Duke
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 PA 1.
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 Bitspeicherstelle oder jeder Kern vor dem Einbau in den Speicher getrennt prüfbar ist.
Daher sind einzelne fehlerhafte Bitstellen in Magnetkenispeichern 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 derartigen 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 Falle vieler Fehler in einem solchen 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 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 Anwendung 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 Datenverarbeitungssystem Paritätsprüfungen erforderlich sind, um die Fehlerfreiheit der zu den verschiedenen Teilen der Anlage, wie den Registern und Rechenschaltungen, übertragenen Daten zu prüfen. Wenn ein Paritätsfehler erkannt wird, wird ein Signal erzeugt und eine neue Ü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 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. Auj diesem Grunde muß ein fehlerkorrigierender Code, wie beispielsweise ein Hamming-Code benutzt werden, wenn eine Fehlerkorrektur erfolgen soll. Wie bereits erwähnt, erfordert die Mehrheit der in der Datenverarbeitungsindustrie angewandten Fehlerkorrekturverfahren umfangreiche und teure Verknüpfungsschaltungen. Außerdem mußten in den -:■■'·:■ ι-r. 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 einzuEchreibende Worte erzeugte. Daher ist ersichtlich, daß für die Fehlererkennungs- und -korrekturschaltung sowie die verschiedenen Schaltungen zur Partitätsbiterzeugung und Daritätsprüfung eine große Anzahl logischer Schaltungen erforderlich war, da bisher 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 Redundanzbits (Prüfbits 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 Datenby-
J5 tes und der zugehörigen Redundanzbits,
c) ein drittes Register 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 EXKLUSIV ODER-Schaltungen gelieferten Ergebnisse und eine Anzeigeschaltung zur Anzeige eines Datenbit- oder eines j Prüfbitfehlers, wenn die Fehlerursache im Speicher
liegt.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird nachfolgend näher beschrieben. Es zeigt
w F i g. 1 einen Lageplan für die F i g. 1A und 1B,
Fi g. IA und IB ein Blockschaltbild der vorliegenden Fehlererkennungs- und Datenumsetzschaltung mit den wichtigsten Funktionsblocks und dem Datenfluß des Systems,
ji F i g. 2 einen Lageplan der F i g. 2A bis 2J,
Fig. 2A bis 2J ein genaueres Blockschaltbild, das die wesentlichen Merkmale der erfindungsgemäßen Schaltungzeigt,
Fig. 3 ein Operations-Ablaufdiagramm für einen M) Speicher-Schreibzugriff,
Fig.4 den CW'-Taktgeber, der im wesentlichen die Systemoperation bei einem Speicher-Schreibzyklus steuert,
Fig. 5 ein Operations-Ablaufdiagramm für einen h5 Speicher-Lesezugriff,
F i g. 6 den Cfl-Taktgeber, der das System bei einem Speicher-Lesezyklus steuert,
Fig. 7 ein genaueres Blockschaltbild einer der
EXKLUSIV ODER-Schaltungen mit 19 Eingängen, die in Fig. 2D dargestellt sind und von denen jede 19 Eingänge aufweist,
Fig.8 ein genaueres Blockschaltbild des ^-Taktgebers, der das Übertragen der Daten und Syndrombits durch die Korrekturschaltung steuert,
F i g. 9 eine Pdritäts-Prüfmatrix,
Fig. 10 die Paritäts-Prüfmatrix der Fig.9 in ihren einzelnen Phasen, die dazu dient, die tatsächliche Verbindung der in Fig. IA dargestellten Paritätsmatrix anzugeben,
Fig. 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 Torschallungen 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 Fall 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 ir. Abhängigkeit vom jeweils ausgeführten Speicherzyklus zu unterscheiden.
Das wichtige Merkmal der vorliegenden Erfindung ist das Vorsehen der Codeumsetzschaltung, 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 Anzahl dieser Bits im wesentlichen auf parallelem Wege und spart dadurch beträchtliche Zeit unH Ausführungsschritte, während die Doppelfunktionssch^itung 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 verwendet 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 F i g. 1 in den F i g. 3 bis 8
ίο 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
ι r> Hamming-Code-Korrekturschaltung ausgeführt wird.
F i g. i ist ein allgemeines Blockschaltbild des vorliegenden Systems, welches dessen Hauptfunktionseinheiten zusammen mit dem allgemeinen Datenfluß zeigt. Die aus den Fig. IA und IB zusammengesetzte
2(i Figur zeigt, daß 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 acht Datenbytes aus je acht Bits zuzüglich der acht
jo Prüfbits oder Paritätsbits sind nur für das Ausführungsbeispiel 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 Datenbils und Prüfbits der
r> 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 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 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-Schal-
>o tungen 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
bo 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 Verfügung 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 zum 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 Einzelfehlerkorrektur vorgenommen wird.
Wie bereits gesagt wurde, muß der Ausgang der ι ο 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 komplizierter, als die Schaltung zwischen einem Prüfbitfehler unterscheiden muß, dann werden die Daten als richtig erkannt, einem Einzel-Datenbitfehler, dann muß ein Korrekturalgorithmus eingeleitet werden und einem Doppelfehler, in welchem Fall 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 r> 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 3» beschrieben wird, erzeugten Syndrombits schließlich zur Korrektur.
Aus der obigen allgemeinen Beschreibung der Fi g. 1 ist zu ersehen, daß bei Lese- und Schreibzugriffen zum Speicher im wesentlichen dieselbe Schaltung verwendet ¥■> 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 F i g. 4 beschrieben. Die in F i g. 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. Ober jedem Block in F i g. 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 F i g. 2A bis 2J verwendet worden. Zu Beginn eines Schreibzugriffs werden die beiden Register MR und MDR mit Daten und Paritätsbits von der ZE geladen. Die Eingabe ins Register S bewirkt eine bo 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 CW-A und erzeugt Prüfbits. Dadurch werden die im Register MR gespeicherten Daten und Paritätsbits der Verbindungsmatrix und den EXKLUSIV 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. Wenn 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 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 Cß-Taktgebers, den verschiedenen einzelnen Operationen zugeordnet, die in F i g. 5 aufgezeichnet sind. Auch hier ist der als Ausführungsbeispiel 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 5-Register speichern.
Im Schritt CR-2 wird die Frage gestellt »Liegt ein Fehler vor?« und durch Prüfen des Inhaltes des 5-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 CR-4 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-7 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-\ 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 Ausgangssignale der drei Stufen sind die einzigen, die benötigt werden, wie aus der nachfolgenden Beschreibung der
Fig.2A bis 2 J 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.
F i g. 7 ist ein genaueres Blockschaltbild eines der in den Fig.2D und 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 »1 «-Signalen auf den Eingangsleitungen diese Schaltung eine ungerade Parität oder ein »1 «-Ausgangssigna! auf der Ausgangsleitung erzeugt.
F i g. 8 zeigt den Λ-Taktgeber, der die im Prinzip in F i g. 2J gezeigte Korrekturschaltung steuert. Dieser Taktgeber ist im wesentlichen genauso aufgebaut wie der C/?-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 monostabile Kippschaltung einschaltet, abhängig von der jeweils ablaufenden Routine. Die Arbeitsweise dieses Taktgebers und der Korrekturschaltung wird im einzelnen im Zusammenhang mit den F i g. 2A bis 2J beschrieben. m
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üfmatrix. Die Paritäts-Prüfmatrix 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 als der Sender oder der Empfänger. Somit unterliegt der Kanal Störungen, die ein gesendetes Bit komplementieren, d. h. eine gesendete 1 wird als 0 empfangen oder eine gesendete 0 als 1.
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 in decodierter Form am Ausgang des Empfängers. Der Code wird durch die folgende Paritäts-Prüfmatrix H charakterisiert:
0 0 0
10 1 1 0 I 0 0
110 10 0 10
1110 0 0 0 1
In dieser Matrix entspricht jede Spalte den Datenbits du Gfe, di und dt und den Prüfbits c\, Cz, C3, α- 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 Paritä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.
1. Zeile: 0 1 1 1
i i i i
1. Gleichung: 0 · (I1 @ 1 · d2 ® 1 · d3 ® 1 ■ oder
0 0 0
1 i i
1 · C1 Θ0 · C1 ® 0 · c3 Θ0 · C4 =
dz ©d3 ®dt ® Cj = Su worin S1 dasSyndrom für die !.Zeile ist.
Das Prüfbit c\ ist so gewählt, daß Si = 1 für den 60 und Si = S2 = S3 = S4 = 1 bezeichnet die fehlerfreie fehlerfreien Fall bei ungerader Parität gilt Die anderen 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 ausdrucken. Aus diesen Gleichungen ist zu ersehen, daß dt 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
drei Gleichungen sind folgende:
2. Zeile: dj ®d3 ®dA.@c2 = S2
3. Zeile: dx ©d2 ®dA@c3 = S3
4. Zeile: dx © d2
= S4
S1
S2
1
O
S3
1 O
rf, richtig empfangen
rf, fehlerhaft empfangen 10 0
Es ist zu beachten, daß sich S1 nicht verändert, da es in seiner Bildung von d\ 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 d\ = I1 d20, d3 = 0 und dt ι ο = 1 vorliegen. Die aus den Bits du cfe. dz, dt bestehende Nachricht hat also folgendes Aussehen: 1 0 0 1. Es ist somit:
S1 = 1 = c, © d2 ® rf3 © rf4 = c, Φ 0 © 0 © I
Sender & Codierung S2 = 1 + C2 ® 1 θ 0
53 = 1 = C3 © 1 θ 0 ® 1 = > C3= \
54 = 1 = c4 © 1 ® 0 ® 0 = > c4 = 0
Aus der Nachricht wird
rf, d2 d} rf4 c, c, c3 c4 10 0 10 110
Wenn jetzt angenommen wird, daß der Kanal einer 15 Fehlerbedingung unterliegt, so daß die Störung so daß für C\ zur Erfüllung dieser Gleichung der Wert 0 ausschließlich d\ invertiert, führt das zu folgender angenommen wird. Daten- und Prüfbitrcihe.
dx d2 d3 rf4 C1 c2 c, c4 0 0 0 10 1
S1 = C1 ® d2 © d3 © rf4 =
Empfang S2 = c2 © rf, © d3 © J4 =
& Decodierung S3 = c3 © rf, ® d2 © <f4 = 0 wie oben vorhergesagt
S4 = C4 ® rf, © d2 © rf, =
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
UND
11
EO richtige Version von d\ nur das Gegenteil des jetzigen Wertes sein kann) Die Schaltung zur Korrektur von d\ ist folgende:
O1 IJ2 iJ, IJ4
111!
4- J. i i
dln 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) der Spalte in der Paritäts-Prüfmatrix, welche d\ entspricht (die erste Spalte). Und grundsätzlich ist also das Syndrommuster, welches d\, d2, di oder dt korrigiert das Komplement der Spalte 1, 2, 3 oder 4. Die Korrekturen für die Prüfbits C\, C2, C3 oder α 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 ijyndrom nicht als Komplement (als Komplement), wenn die Matrixeintragung eine 1 (0) 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:
(S1, S2, S3, S4) = (0, 0, 0, 0), (0, 0. 1, 1). (OJ. 0, I).
(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 cfc oder sind es <?,
welchen zwei Syndrome sich gegenüber ihrem erwarte- und C2? 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 Dattnbyte 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 Codiepjng 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 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 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ß keine 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 Rotationsmatrix als übliche Paritäts-Prüfmatrix erfolgen.
Anschließend wird die Implementierung und Anwendung der Rotationsparitätscodes in einem Speicherumsetzer beschrieben, wie er hier offenbart wird. Zuers: wird der Leseprozeß betrachtet. Die Grundschritte sind folgende:
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. Es ist festzustellen, ob eine Fehlerbedingung in den ausgelesenen Diten 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 F i g. 10 enthält acht Einsen in einer Zeile in den den Bits d\, ck · ■ ■ dg entsprechenden Spalten. In der Spalte (erste Zeile) unter C1 (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 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,
Xi — die Parität des ersten Bytes,
Pi — das Paritätsbit zur Aufrechterhaltung der ungeraden Parität füV 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 in 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.
Γι χ, Θ.ν, ®c, = 1,
x, ®p, = I
Durch Addition dieser beiden Gleichungen zueinander (Addition Modulo 2) ergibt sich die Summe
χ, Θ .ν, Θ c, Θ χ, θ ρ, = 1 Θ 1 = 0
und
.C1 θ.ν, Θ ι·, θ.ν, ©ρ, = χ, θ.ν, θ (.ν, Θ C1) θ ρ,
= ρ, ®0>, ©c.) = 0.
Dann ist. wenn y, ©c, auf beiden Seilen der Glcir,o chung addiert wird:
ρ, θ (J-, 0C1) θ(3Ί θ c,) = 0 φ (ν, Φ C1)
Pi
= Vl © I
Die Bedeutung dieser Gleichung liegt darin, daß das
bo Paritätsbit für das erste Datenbyte aus der Parität der Paritätsuntergruppe der ersten Zeile und dem Prüfbit c\ zu erzeugen ist (und daß dazu nicht die Bits des ersten Datenbytes herangezogen werden müssen).
Die Ausgangssignale dieser Paritätserzeugungsschal-
<,r, tung werden direkt in die Byteparitä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\ ® Cj erzeugt und gespeichert sind, werden die acht Datenbits eines jeden Bytes (mit der Parität x\) und das zugehörige Paritätsbit als Eingangssignale für eine Paritäts- (oder EXKLUSIV ODER-)Schaltungbenutzt Pay\©c\ = p\ undx\®p\ = 1 sind, ist das Ausgangssignal 51 dieser Parität-Schaltung eine 1, wenn kein Fehler im Byte vorliegt Das Erzeugen eines Satzes von Syndrombits 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 liegt, ist xx ® p\ = 0 = Si und eine Fehlerbedingung wird angezeigt Damit ist Schritt 3 abgeschlossen und es folgt Schritt 4. Solange kein Fehler vorliegt, ist Si = S2 = ... S8 = 1 (für ungerade Parität) und ein mit KF bezeichnetes Signal kann gebildet werden als KF = S3 · S2 S3 ·... · S8. 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-Prüfmatrix. 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 liegt die Notwendigkeit für diese Korrektur vor und sie wird bei allen Paritätsbiti im Befarfsfall durchgeführt, indem man sie mit dem Komplement der Syndrome antivalent verknüpft Eine besondere Schaltung zeigt den Bedarf für diese Korrektur an.
Wenn z. B. die acht Paritätsbits pi, P2,... pe gegeben sind als pi = \,pi = O.ps = O.p« = l,ps = l.ps = Ο,ρι — ι, pg = 0 und die Syndrome als Si = 1, S2 = 0, S3 = S4 = S5 = S6 = S7 = Sb= 1, bedeutet das, daß das zweite Paritätsbit falsch ist, weil Sz = 0 ist Zur Korrektur der Paritäten werden diese_dann_ersetzt durch p@S, wobei P = (Pu Pi ■ ■ ■ Pi) und S = (Si, S2,... S8) ist. Für dieses obige Beispiel gilt dann
ρ ©S = (1 ®0, 0 ® 1, 0 Θ0, 1 ®0, 1 ®0, 0 ®0, 1 ΦΟ,ΟθΟ) = (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 pi durch Invertieren gewonnen wurde. Im vorliegenden Ausführungsbeispiel ist aus_F_i g. 2] zu ersetzen, daß die Gruppe S über die Kabel 100,102,... 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, wenn:
1. das Fehlersignal eine 1 IsI(KF= 1),
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, 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(Si 0S2O...® S8).
Wenn EF = 1 ist, liegt ein Einzelfehler in dem aus dem Speichger gelesenen Datenwort vor. Wenn ein Fehlersignal (KF = 1) vorliegt und es sich nicht um ein
Einzelfehlersignal (ΕΓ = 1) handelt, ist es ein
Doppelfehler, DE = KF λ EF = 1 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 AA und über das Register MR und die Korrekturmatrix dem Register MDR bei den Taktimpulsen 4-2 und den Taktimpulsen A-3 zugeleitet, wie später noch erklärt wird. Das Datenwort kann dann mit allen angefügten Paritätsbits der ZE zugeführt werden. Zu diesem Zeitpunkt ist natürlich die vorher erklärte Korrektur bereits ausgeführt worden.
Der Schreibprozeß für den Speicher besteht im Empfangen einer Gruppe paritätscodierter 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
J5 und dem Speichern des umcodierten 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 Won 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.
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.
bo Das umzucodierende 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
b5 Wortes für die Speicherung bereit ist, können die Prüfbits für die umcodierte Form unter Verwendung der Schaltung erzeugt werden, die zum Implementieren der Paritäts-Prüfmatrix für einen Lesezugriff vorgesehen
ist Die Datenbits und die Paritätsbits gehorchen folgenden Gleichungen
X1 Θ Λ ©Cj = 1
X1 ©Pi = 1,
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 ai 3 Daten- und Paritätsbits hervorgeht Die umgeformten Gleichungen lauten:
15
P1 Θ>·3 ©ct = 0
Für den Lesefall wurde diese Gleichung umgeordnet zu
Ci θ 3Ί = ft .
Für den Schreibfall wird die Gleichung umgeordnet zu
P1 Qy1 = C1.
Diese Gleichung zeigt, daß mit dem Wort im Register MR geschieht Das Paritätsbit für jedes Byte und die durch _vi 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 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 entfernt werden, in welches es während der Umcodierung beim Schreibprozeß geladen und gespeichert wurde.
Die folgende Beschreibung der grundlegenden Paritätsmatrix 9 und der daraus entwickelten vollen Paritäts-Prüfmatrix 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 Prüfmatrix 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. IA und IB als Block und im einzelnen in den Fig. 2A, 2B, 2C 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 Verbindungsmatrix 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 b5 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 dipse 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 Fi g. 10 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 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 Fig. 10 enthält 19 Einsen. Jede Eins in einer Zeile der Matrix entspricht dem 1-Ausgangssignal 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 Kabel werden genauso durch Bezug auf die Zeilen der Matrix der F i g. 10 ausgewä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 m 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 Paritäts-Prüfmatrizen haben K + r Spalten und r Zeilen. Die letzten r Spalten enthalten eine 1 und (r-1) Nullen, die so angeordnet sind, daß die r Spalten eine 1 in der ersten, zweiten ... /-ten Zeile haben. Jede Spalte entspricht einem Prüfbit.
Teile die m Bytes gleichmäßig in r Gruppen 7i Wenn m = dr+e0<e<r ist, setze d + 1 Bytes in die ersten e Gruppen Ti,... Te und d Bytes in die letzten (r= e) Te+], ...Tr. Die Gruppe 7/soll dem /-ten Prüfbit und der Aten Zeile entsprechen. Beginne durch Setzen von b(d + 1) in die erste Zeile unter 7Ί, b(d + 1) Einsen in die zweite Zeile unter Ti und fahre so fort für die ersten e Gruppen. Jetzt setze öd Einsen in die (e + l)-te Zeile unter die Gruppe Te+\ und fahrt fort bis unter jeder Gruppe b(d + 1) oder bd Einsen jeweils in einer separaten Zeile stehen. (In Fig. 1, Zeilen 1 bis 8 und in F i g. 4, Zeilen 1 bis 7 mit acht Bits in Zeile 1, vier in den restlichen.)
Es gibt
G)-
verschiedene Wege, um drei Einsen in r Stellen zu setzen und
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 EXKLUSIV ODER-Schaltungen verwendet werden, je weniger Einsen sich in einer Paritäts-Prüfmatrix finden.
Für r = 7 gibt es 35 derartige mögliche Kombinationen und 32 werden für F i g. 4 benötigt Eine mögliche Auswahl ist in Fig.4 gezeigt Wenn mehr als ijjbenötigt werden, gibt es
/r\ r(,r- l)(r-2)(r-3)(r-4)
\5J 120
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. Siehe hierzu das Beispiel in Tabelle 111 mit Bytes aus vier Bits und sechs Prüfbits.
Beispiel 2
m > r
In diesem Fall entspricht jedes Prüfbit einer Gruppe itenbits und jede Gruppe von Datenbits enthält eines oder mehrere Bytes. Tabelle IV und F i g. 11 zeigen ein neun Eisen usw. 15 Beispiel für diesen Fall einschließlich der zur Bildung
Die Einsen wählt man am besten so, daß ihre Anzahl von Syndromen aus Uniergnippen von Datenbiis
Möglichkeiten mit fünf Eisen, (? r) mit sieben, g) mit Datenbits und jede Gruppe von Datenbits enthält eines
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 dem Rest zu wählen, indem man Spalten bei Bedarf verschiebt.
23
Beispiel 1
m < r
Das Beispiel mit zwei Bytes und sechs Prüfbits in Tabelle II dient zur Erklärung folgender Feststellungen: jo
a) In Fällen, in welchen ein Prüfbit unter Verwendung aller Datenbits in einem Byte (im Beispiel c< und o·) gebildet wird, sind Paritätsbit und Syndrombit wie vorher zu bilden.
b) Die anderen Syndrombits sind wie gewöhnlich zu j5 bilden, z.B. durch EXKLUSIV ODER-Schaltung der entsprechenden Untergruppe von Datenbits für jedes Prüfbit (im Beispiel .S2, S3, Ss, *).
Tabelle I
m = 8, b = 4, k =
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 π 3ytes (zwei oder mehr) entnaltende Gruppe ist in η Teile aufzuteilen. Erzeuge n- 1 Paritätsbits für die ersten n—l Bytes und benutze dieses Paritätsbit für die Byteparitätsprüfung. Das /j-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.
12 3 4 5 6 7 8
11111111 10 10 10 0 0 110 10 0 0 0 0 110 0 110 0 0 0 1 1 10 1 0 0 0 0 0 0 0 1
0 0 0 0 0 0 10
Tabelle 11
k = 16, r = 6, /1 = 22, 2 Bytes
dt ,I2 ·..
I 2 3
x 4 = 32, r = 7
9 1011 1213 1415 16
00000000 11110 0 0 0 10 10 1111 110 110 10 0 110 110 1 0 0 0 10 110 0 0 0 0 0 0 0 1
=7x1+1
17 18 19 20 21 22 23
0 0 0 10 10
0 0 0 0 0 0 1 00000000
1 1 1 1 0 0 0 I 0 1 0 I I 1 110 110 0 110 110 25 26 27 28 29 30 31 32
1 10 0 10 10 0 1 10 1 10 1 0 0 0 10 1 10 0 0 0 0 0 0 0 I 00000000 11110 0 0 0 10 111111
33 34 35 36 37 38 39
10 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 10 0
0 0 0 0 0 10
0 0 0 0 0 0 1
(ti, ll-r
6 7 J1I, du diz du d\4 dis du, 11 IZ 13 14 15 16
17 IS 19 20 21 22
Pari täts-Verbindungs-Matrix
S, 111
I 0 0 0 0 10 0 10 0 0 0 10 0 10 1
1 0 0 0 0 0 O 1 0 0 0 0
21 22
rortsetzung rf, '/2 3 0 0 dt ds rf,, 7 rf. rf,,, du 12 I du rf,4 rf,5 rf,,. 17 IX (J 1 C4 21 C1,
ι udungs-Matrix 1 0 4 5 ft X 9 IO Il 1 13 14 15 16 19 0 20 22
1 0 1 1 1 0 0 0 0
Paritäts-Verbi 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
S3 0 0 1 0 0 0 1 1 1 I 1 1 1 0 0 1 I 0
S4 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
S5 I 0 0 1 1 0 0 0 0 0 0 0 1
S6
Tabelle III
k = 16, r = 6, Μ = 22, 4 Bytes
2 3 4 5 I 6 ti, 1 rf: rf.< 1 rfa 1 9 IO Il ds rf,, d-, rf» 15 dv dw d,, rf,2 19 du 21 14 rf,5 rf,,, 0 1 t'l C2 Cj C4 C5 C1, 0 0 0 0
1 1 1 1 1 1 1 3 0 4 0 0 0 0 5 6 7 X 0 9 10 Il 12 1 13 0 0 15 Ift 1 0 17 IX 19 20 21 22 0 0 0 0
0 1 0 1 0 1 1 1 1 1 1 I 0 0 0 0 0 0 1 1 0 0 I 1 I 1 0 1 1 1 0 0 0 0 0 1 0 0 0
1 0 1 1 1 0 1 1 0 I 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 I 0 0 0 0 1 0 0 0 0 0 1 0 0
1 I 0 1 1 0 0 0 0 0 1 I 1 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 I 0 0 0 0 0 1 0
0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 I 0 0 1 1 0 0 0 1 0 0 0 0 0 1
0 0 0 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 I 1 1 1 1 0 0 0 0 1 0
0 7 X 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1
0 0
1 1 12 13 14 Ift 17 IX 20 25 26 27 28 29 31
S1 1 0 1 0 0 0 1 1 1 1 0
S2 1 1 1 0 0 0 0 0 1 0 1
s., 0 1 0 1 1 0 0 0 0 0 0
S4 0 0 1 1 0 1 1 I 0 0 0
S5 1 1 1 1 0 1 1 0 0
S6 1 0 1 1 I 0 0 0 0
Tabelle IV
1
1
1 22 23 24
1 1
0 1
0 0
0 0
0
1
Im folgenden werden der Datenfluß vom Eingangsre- acht Datenbytes aus je acht Bits und die Bits 65 bis 72 füi
gister MR durch die Verbindungsmatrix zum Register die acht Prüfbits benutzt Die besonders in Fig. 1
MDR, der Datenfluß 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 Ml·
ren beschrieben. Bei allgemeiner Bezugnahme werden angeschlossen, wie bereits früher erwähnt Achtzehr
der Einfachheil halber die Fig.2A bis 2] als Fig.2 t>o dieser 19 Stufen speichern 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 Schaltung«
Das Register MR erscheint oben in Fig.2 und mit der Nummerierung 172 bis 186 vorhanden. Wie
erstreckt sich über d;e F i g. 2A, 2B, 2C und 2D. Es wird bereits gesagt sind Einzelheiten einer solchen EXKLU
angenommen, daß Torschaltungen im Speicher und der b5 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 Torschaltungen 188 bis 20:
Register werden die Bits mit der Nummer 1 bis 64 für geleitet Diese acht Torschaltungen entsprechen de
Torschaltung 124 in Fig. IA und werden alle durch Zuführen der Signale CRA, CW-X oder A-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 weiterleitet Auf der Leitung 158 erscheint das 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 F i g. 10 zu bestimmen. Während eines Lesezugriffs mit der C7?-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 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 F i g. 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 CV?-1 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 S Bits den Binärwert 1 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 S-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 3%. 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 F i g. 6 gezeigten Leitungen' 396 und 398 bewirken dort die Erzeugung der Taktimpulse CRA 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-Ausgangssignal, da eine ungerade Zahl von Einsen im Register S 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 C7?-Taktgeberschaltung der Fig.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 Taktschritt CR-6 eingeleitet der das
is 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.2] 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 S 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
so 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 Ausgangsimpuls erzeugt welcher die Torschaltung 255 beim Auftreten des Taktimpulses CR-7 durchläuft und die Bitstelle über das ODER-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
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 A-I über das Kabel 312 in die im unteren Teil der Fig.2J dargestellte Korrekturschaltung leitet. Der Taktimpuls A-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 A-2 folgt der Taktimpuls A-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 A-3 folgt der Taktimpuls CRA, welcher signalisiert, daß die gegenwärtig im Register MDR stehenden Daten für die Übertragung an die ZEjetzt bereit sind.
Die Korrekturschaltung umfaßt ein UND-Glied 502 für jedes Datenbit und auch ein EXKLUSIV ODER-Glied 504 zum Empfang des Orignal-Datenbits aus dem 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 S 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\ bis du, parallel der Korrekturschaltung zugeführt und über den Α-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 A-2 dieser korrigierte Datensatz in das Register MR und beim Taktimpuls A-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 ClV-I 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 das Register S jetzt mit lauter Einsen geladen. Nach dem Taktimpuls CW-I erscheint der Taktimpuls CW-2 auf der Leitung 148 in F i g. 21. Dieser Impuls bewirkt das Prüfen des Inhaltes des Registers S 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 Fehler vorliegt, wodurch der Taktimpuls CW-4 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 MR und MDR übertragen werden müssen.
Wenn angenommen wird, daß kein Fehler auftrat, ist die Leitung 149 in der Fig.21 erregt Das Signal auf dieser Leitung betätigt dann die Taktstufe CW-4, deren Taktimpuls über die Leitung 126 dem ODER-Glied 125
JO 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-4 erscheint der Taktimpuls CW-5, der eiti 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 ü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 voi.i 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ätsbits,
    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 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 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 1 und 2, dadurch gekennzeichnet, daß die ersten mehrstufigen EXKLUSIV ODER-Schaltungen wahlweise entweder aus den Datenbits gewonnene Paritätsbits und Prüfbits im Falle eines Lesezugriffs oder aus den Datenbits und Byteparitätsbits gewonnene Prüfbits bo im Falle eines Schreibzugriffs liefern.
    4. Umsetzer nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, daß erste Torschaltungen zur direkten Eingabe der Bytes und ihrer Paritätsbits in das erste und zweite Register bei einem Schreibzu- tv> griff und zweite Torschaltungen zur Ausgabe von Daten- und Paritätsbits über die zweiten EXKLUSIV ODER-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 nach 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 zweiten 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 mehrstufigen EXKLUSIV ODER-Schaltungen erzeugten Syndrombits vorgesehen ist und daß an die Prüfeinrichtung eine Anzeigeeinrichtung zur Anzeige eines Prüfbit-Einzelfehlers, wenn nur ein Syndrombit fehlerhaft ist, zur Anzeige eines Datenbit-Einzelfehlers, 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 DE2132565B2 (de) 1980-07-03
DE2132565C3 true 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
CA934061A (en) 1973-09-18
DE2132565A1 (de) 1972-01-13
FR2109584A5 (de) 1972-05-26
DE2132565B2 (de) 1980-07-03
GB1293488A (en) 1972-10-18
US3648239A (en) 1972-03-07

Similar Documents

Publication Publication Date Title
DE2132565C3 (de) Umsetzer
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE3125048C2 (de)
DE2328869C2 (de) Verfahren und Schaltungsanordnung zum Betreiben eines digitalen Speichersystems
EP0038947B1 (de) Programmierbare logische Anordnung
DE2430464A1 (de) Einrichtung zur fehlergesicherten datenuebertragung
DE2646163B2 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
DE2554945A1 (de) Verfahren und schaltungsanordnung zur fehler-erkennung und -korrektur
DE3126721A1 (de) &#34;datenverarbeitungsgeraet mit einem programmierbaren festspeicher&#34;
DE1549468A1 (de) Speicheranordnung fuer ein programmgesteuertes Datenverarbeitungssystem
DE2659031B2 (de) Fehlerkorrektur- und -Steuersystem
DE2610411A1 (de) Datenverarbeitungsanlage
DE2361512C2 (de) Schaltungsanordnung zur Prüfung eines Additionsresultates
DE2513262C3 (de) Digitale Codeumwandlungsanordnung
DE1250163B (de) Einrichtung zur Paritätsprüfung von Speicherworten
DE4416171C2 (de) EEPROM-Vorrichtung
EP0443377A2 (de) Einrichtung zur signaltechnisch sicheren Darstellung eines Meldebildes
DE2441351A1 (de) Schaltungsanordnung zur selbstpruefenden paritaetspruefung fuer zwei oder mehr voneinander unabhaengige datenkanaele
DE2628847A1 (de) Selbstpruefende lese- und schreibschaltung
EP0031025B1 (de) Fehlererkennungs- und -korrektureinrichtung für eine logische Anordnung
DE2104132A1 (de) Anordnung zur Fehlererkennung und Fehlerkorrektur
DE69534316T2 (de) Telekommunikationsanlage mit einem prozessorsystem und ein prozessorsystem
DE1937259C3 (de) Selbstprüf ende Fehlererkennungsschaltung
DE2424828A1 (de) Wiederaufbaueinrichtung
DE3433679C2 (de)

Legal Events

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