DE69029164T2 - Vorrichtung und Verfahren zum Ersetzen der Parität - Google Patents

Vorrichtung und Verfahren zum Ersetzen der Parität

Info

Publication number
DE69029164T2
DE69029164T2 DE69029164T DE69029164T DE69029164T2 DE 69029164 T2 DE69029164 T2 DE 69029164T2 DE 69029164 T DE69029164 T DE 69029164T DE 69029164 T DE69029164 T DE 69029164T DE 69029164 T2 DE69029164 T2 DE 69029164T2
Authority
DE
Germany
Prior art keywords
data
parity
word
processing device
alu
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 - Fee Related
Application number
DE69029164T
Other languages
English (en)
Other versions
DE69029164D1 (de
Inventor
Raymond Scott Chan
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of DE69029164D1 publication Critical patent/DE69029164D1/de
Application granted granted Critical
Publication of DE69029164T2 publication Critical patent/DE69029164T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F11/102Error in check bits
    • 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
    • G06F11/1032Simple parity

Landscapes

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

Description

  • Diese Erfindung betrifft eine Paritäts-Substitutionsvorrichtung. Genauer betrifft diese Erfindung eine Vorrichtung und ein Verfahren zum Substituieren von widersprüchlichen Paritätsdaten zum Entfernen von Paritätsfehlern in einem fehlertoleranten Computersystem.
  • In Standard-Computersystemen können Fehler bei der Datenverarbeitung auftreten, die den Betrieb des Computersystems anhalten können. Ein derartiges System ist zum Beispiel aus EP-A-0173515 bekannt. Diese Fehler können unter anderem durch falsche Daten oder falsche Microcodes verursacht werden. Sowohl Daten, als auch Microcodes sind in Speichereinrichtungen gespeichert, die gelegentlich ausfallen, und fehlerhafte Informationen werden aus der Speichervorrichtung ausgelesen. Um das Sicherstellen der Integrität der Daten zu unterstützen, werden gespeicherten Informationen zusätzliche Daten, die als ein Paritätsbit bezeichnet werden, hinzugefügt. Das Erzeugen und Prüfen von Paritätsdaten ist in der Computertechnik gut bekannt. Wenn eine Paritätsüberprüfung angibt, daß fehlerhafte Daten vorhanden sind, erzeugen herkömmliche Computer eine Fehleranzeige, und der Betrieb wird angehalten, bis ein Bediener eingreift. Einige Computer haben die Fähigkeit, Ein-Bit-Fehler zu korrigieren, aber sie können keine Doppel-Bit-Fehler in einem Wort korrigieren.
  • Um diese Schwierigkeit zu überwinden, sowie um weitere Vorteile bereitzustellen, wurden fehlertolerante Computer, die für einige der Daten "korrigierbare" Quellen verwenden, sowie Fehlerkorrektur-Hardware und -Algorithmen zum Korrigieren von Fehlern entwickelt. Eine korrigierbare Quelle bezieht sich auf die Fähigkeit des Computers, fehlerhafte Daten, die in der Vorrichtung gespeichert sind, zu identifizieren und zu korrigieren, ohne den Computer abzuschalten oder einen Bedienereingriff zu erfordern. Eine Umsetzung von Fehlertoleranz betrifft Daten, die in einem Direktzugriffsspeicher (RAM) gespeichert sind. Es wurde ein System entwickelt, durch das fehlerhafte Daten, die aus dem RAM ausgelesen werden, detektiert und korrigiert werden konnten, ohne die Leistung des Computers merklich oder nachteilig zu beeinflussen.
  • Ein zeitkritischer Pfad betrifft einen Datenpfad, der bezüglich einer bestimmten Operation, deren Ausführung und Messung angestrebt ist, der langsamste oder unter den langsamsten ist. Die Wichtigkeit, einen Datenpfad als einen zeitkritischen Pfad zu bezeichnen, ist die Erkenntnis, daß es beim Betrieb eines Computers nicht darauf ankommt, ob andere Teile des Geräts mit sehr hohen Geschwindigkeiten arbeiten. Das Gesamtsystem kann nicht schneller arbeiten als sein langsamster Pfad. Daher werden zum Erhöhen von Computerfähigkeiten zeitkritische Pfade analysiert und Verfahren angestrebt, um ihre Leistung zu erhöhen.
  • Die Pfade, die Daten von ihrem Speicher im RAM und ihrer eventuellen Verwendung durch eine Verarbeitungsvorrichtung nehmen, sind traditionell zwei derartige zeitkritische Pfade. Der erste Pfad ist vom RAM zum Register. Der zweite Pfad geht vom Register durch die ALU. Tatsächlich ist die ALU ein getrennter zeitkritischer Pfad. Typischerweise werden Daten in dem RAM aufgegriffen und temporär in einem RAM-Datenregister gespeichert, bevor die Daten verwendet werden. Durch Verwendung eines RAM-Datenregisters wurde die effektive Zeit, die zum Adressieren von Daten und zum Verwenden von Daten erforderlich ist, verringert, da Daten aus dem Speicher ausgelesen werden konnten, während eine Verarbeitungsvorrichtung beschäftigt war. Das Hinzufügen eines Datenregisters war entscheidend für das Erhöhen der Gesamtgeschwindigkeit eines Computers, da Daten in dem Register in Erwartung ihrer Verwendung gespeichert werden konnten, und daher aus dem Register viel schneller als aus dem RAM ausgelesen werden konnten.
  • Die Fig. 1 zeigt eine fehlertolerante Ausführung nach dem Stand der Technik, die in einem Datenpfad zwischen einem RAM-Datenregister und einer ALU einen Paritätsprüfer und -erzeuger verwendet. In einer Speichervorrichtung, wie einer RAM-Anordnung 10, die korrigierbar ist, ist gespeichert: ein Datenwort 12, Paritätsdaten 14 für das gespeicherte Datenwort 12, und Reservespeicher 16 ist in der Speichervorrichtung vorgesehen, um es dem RAM zu gestatten, selbskorrigierend zu sein. Eine Verarbeitungsvorrichtung 18, die hierin als eine ALU dargestellt ist, führt Befehle und Verarbeitung von Daten aus, die aus der RAM-Anordnung 10 ausgelesen wurden. Ein RAM-Datenregister 20 steigert die Zugriffszeit der ALU 18 auf Daten, die in der RAM-Anordnung 10 gespeichert sind. Ein Datenpfad 30 befördert sowohl das Datenwort 12, als auch die Paritätsdaten 14, die mit dem Datenwort 12 verbunden sind. Die Daten können entweder seriell oder parallel befördert werden, wie den Fachleuten gut bekannt ist.
  • Ein Paritätsprüfer 32 und ein Paritätserzeuger 34 sind zwischen das RAM- Datenregister 20 und die ALU 18 zwischengeschaltet, um das Datenwort 12, das aus der RAM-Anordnung 10 ausgelesen wurde, zu prüfen, bevor es von der ALU 18 verarbeitet wird. Es ist verständlich, daß sich ein Paritätserzeuger 34 und ein Paritätsprüfer 32 in der Praxis häufig viele der selben Schaltungselemente teilen. Sie sind auf Grund ihrer funktionalen Bestimmungen und des einfachen Verständnisses getrennt gezeigt. Ein Datenpfad 40 stellt das Datenwort 12 und die Paritätsdaten 14 vom RAM-Datenregister 20 dem Paritätsprüfer 32 zur Verfügung. Nach Detektion eines Fehlers wird einer Steuerschaltung 42 vom Paritätsprüfer 32 über einen Pfad 44 ein Fehlersignal bereitgestellt, das nachfolgende Register (nicht gezeigt) pausieren läßt, während der Paritätserzeuger 34 die richtigen Paritätsdaten 50 für das Datenwort 12 erzeugt. Nur das Datenwort 12 wird dem Paritätserzeuger 34 auf einem Datenpfad 52 zugeführt, um es dem Paritätserzeuger 34 zu gestatten, eine gute Parität für alle Daten zu erzeugen, die aus der RAM-Anordnung 10 ausgelesen wurden, ungeachtet dessen, ob sie tatsächlich fehlerhaft sind oder nicht. Somit wird der Datenpfad 54 das Datenwort 12 und die erzeugte Parität 50 der ALU 18 bereitstellen. Wenn die erzeugte Parität 50 bereit ist, gestattet die Steuerschaltung 42, daß die Verarbeitung des Datenwortes 12 fortgesetzt wird. Dann kann die ALU 18 einen Befehl auf das Datenwort 12 anwenden, wobei die Ausgabe der ALU 18 auf einem Datenpfad 56 erscheint, um zu anderen Registern geschickt und von anderen Paritätsprüfern geprüft zu werden. Die Steuerschaltung 42 initiiert auch einen Fehlerkorrekturalgorithmus zum Korrigieren der fehlerhaften Daten, die im RAM gespeichert sind, und um das System von falschen Daten und Berechnungen zu bereinigen.
  • Das sequentielle Paritäts-Korrektursystem des Standes der Technik hat, obwohl es für viele Anwendungen akzeptabel ist, den Nachteil, daß der Paritätsprüfer 32 und Paritätserzeuger 34, eine relativ langsame Vorrichtung, in einem kritischen Pfad mit der ALU 18 sind. Daher kann die ALU 18 ein Verarbeiten der Daten solange nicht beginnen, bis der Paritätsprüfer 32 bestimmt hat, ob ein Paritätsfehler aufgetreten ist, und der Paritätserzeuger 34 eine korrigierte Parität 50 erzeugt hat. Üblicherweise sind die Daten gut, was bedeutet, daß dem oben beschriebenen zeitkritischen Datenpfad eine unnötige Verzögerung hinzugefügt wurde. Die Verzögerung entsteht, da der Paritätserzeuger 34 eine richtige Parität für jedes einzelne Datenwort 12 erzeugt, ungeachtet dessen, ob ein Fehler aufgetreten ist.
  • Wie oben erörtert wurde, enthalten ALUs einen zeitkritischen Pfad. Einige System des Standes der Technik hatten die Praxis, auf eine ALU einen Paritätserzeuger folgen zu lassen, wodurch Paritätsdaten für ein Ergebnis, das von der ALU berechnet wurde, durch die Erzeugung einer Parität für das Ergebnis eine damit verbundene Parität haben würden. Das Verfahren hat zwei Nachteile: 1) eine langsame Vorrichtung wurde in einen zeitkritischen Pfad eingesetzt, und 2) wenn das Ergebnis fehlerhaft war, würde eine richtige Parität für die fehlerhaften Daten erzeugt, und nachfolgende Register würden keinen Fehler detektieren. Um die Leistung zu verbessern, wurde eine Paritätsvorhersage eingeführt. Die Paritätsvorhersage ist ein Verfahren, die Parität eines Datenwortes für das Ergebnis zu berechnen, das von der ALU berechnet wurde. Die Paritätsvorhersage verwendet eine separate Schaltung parallel zur ALU, um die Parität eines ALU-Ergebnisses einer Operation auf Datenwörter A und B zu berechnen. Die Paritätsvorhersage verwendet A, B und die Parität für A und B, um vorherzusagen, was die Parität für das Ergebnis der Operation auf A und B sein wird. Daher ist die vorhergesagte Parität unabhängig von der richtigen Operation der ALU, da sie nicht auf dem Ergebnis basiert. Die Vorhersageschaltung ist außerhalb jeglichen zeitkritischen Pfades der ALU und erlaubt es nachfolgenden Paritätsdetektoren, zu bestimmen, wenn ein Fehler auftrat.
  • Es kann weitere zeitkritische Pfade geben, die noch langsamer sind, weshalb das Fehlerkorrektursystem des Standes der Technik für bestimmte Anwendungen funktional und nützlich sein mag.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Datenverarbeitungssystem geschaffen, das ein Speichersystem hat, das gekoppelt ist, um einer Verarbeitungsvorrichtung ein Datenwort und ein zugehöriges Paritätswort bereitzustellen, und eine Paritäts- Substitutionsvorrichtung enthält, enthaltend:
  • Einrichtungen zum parallelen Prüfen einer Parität für das Datenwort und zugehörige Paritätswort, die in die Verarbeitungsvorrichtung eingegeben werden, um ein einen Paritätsfehler angebendes Fehlersignal bereitzustellen,
  • Einrichtungen zum Erzeugen eines weiteren Paritätswortes für das Datenwort, das in die Verarbeitungsvorrichtung eingegeben wurde, ungeachtet der Richtigkeit des Datenwortes, parallel zu der Verarbeitungsvorrichtung,
  • Einrichtungen zum Substituieren des weiteren Paritätswortes an die Stelle des zugeordneten Paritätswortes bei dem Datenwort und Anlegen des Datenwortes mit dem weiteren Paritätswort an die Verarbeitungsvorrichtung, in Abhängigkeit von dem Fehlersignal, und
  • Einrichtungen zum Pausieren nachfolgender Register vom zusätzlichen Verarbeiten von Daten, die aus der Verarbeitungsvorrichtung ausgegeben wurden, bis die Substitution der Paritätswörter und das Anlegen an die Verarbeitungsvorrichtung aufgetreten sind, in Abhängigkeit von dem Fehlersignal.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wir ein Verfahren zum Verarbeiten von Paritätsdaten in einem Datenverarbeitungssystem geschaffen, das einen Quellenspeicher zum Speichern einer Mehrzahl von Datenwörtern und zugehörigen Paritätsdatenwörtern und eine Verarbeitungsvorrichtung hat, die angeordnet ist, um einzelne ausgewählte der Datenwörter, die aus dem Quellenspeicher gelesen wurden, zu erhalten und zu verarbeiten, welches Verfahren die Schritte enthält:
  • paralleles Prüfen der Parität jedes der ausgewählten Datenwörter und zugehörigen Paritätswörter, die in die Verarbeitungsvorrichtung eingegeben werden, um ein einen Paritätsfehler angebendes Fehlersignal bereitzustellen,
  • Erzeugen einer weiteren Parität für jedes der ausgewählten Datenwörter, die in die Verarbeitungsvorrichtung eingegeben wurden, ungeachtet der Richtigkeit der ausgewählten Datenwörter, parallel zu der Datenverarbeitung durch die Verarbeitungsvorrichtung,
  • Substituieren des weiteren Paritätsdatenwortes an die Stelle des zugeordneten Paritätswortes bei dem Datenwort und Anlegen des Datenwortes und des weiteren Paritätsdatenwortes an die Verarbeitungsvorrichtung, in Abhängigkeit von dem Fehlersignal, und
  • Pausieren nachfolgender Register vom zusätzlichen Verarbeiten von Daten, bis der Schritt des Substituierens der Paritätswörter und Anlegens der Datenwörter an die Verarbeitungsvorrichtung ausgeführt wurde, in Abhängigkeit von dem Fehlersignal.
  • Die folgenden Vorteile können durch die unten beschriebene bevorzugte Ausführung erzielt werden:
  • Die vorliegende Erfindung steigert die Leistung von Computersystemen, während die Fehlertoleranzcharakteristika des Korrektursystems bewahrt werden. Bei Rechensystemen gibt es immer den Wunsch, die Gesamtsystem-Geschwindigkeit zu erhöhen. Zur Geschwindigkeitserhöhung werden die zeitkritischen Pfade analysiert und Wege gesucht, um die Leistung aller solchen Pfade zu erhöhen. Die bevorzugte Ausführung gestattet eine Verbesserung bei der Geschwindigkeit und Effizienz von sequentieller Paritätskorrektur in dem zeitkritischen Pfad zwischen einer korrigierbaren Speicherquelle und einer Verarbeitungsvorrichtung, die die Daten verwendet. Ein Paritätsprüfer und -erzeuger werden verwendet, aber diese sind aus dem zeitkritischen Pfad zwischen dem RAM-Datenregister und der ALU herausgenommen und parallel zum ALU-Datenpfad angeordnet. Der Paritätsprüfer prüft die Daten, die in die ALU eingegeben werden, ohne die Operation der ALU zu beeinflussen. Das heißt, daß, während das Prüfen ausgeführt wird, die ALU ihre Befehle und Verarbeitung der Daten ausführt. Wenn die Daten gut sind, fährt die Verarbeitung fort, und dem Datenpfad zum Paritätsprüfen wurde keine Verzögerung hinzugefügt.
  • In dem unwahrscheinlichen Fall, daß fehlerhafte Daten detektiert wurden, erzeugt der Paritätsprüfer ein Fehlersignal, das angibt, daß fehlerhafte Daten vorliegen. Dieses Fehlersignal wird in eine Steuerschaltung eingegeben, die verschiedene Funktionen ausführt. Zunächst werden alle nachfolgenden Register, die die Daten zu anderen Paritätsprüfern durchlassen können, um die fehlerhaften Daten zu detektieren, temporär "pausiert". Dies hindert jegliche nachfolgende Fehlerdetektoren daran, das System einzufrieren. Als nächstes wird der ALU befohlen, die fehlerhaften Daten ungeändert zum Ausgang durchzulassen. Die Daten werden mit neuen Paritätsdaten kombiniert, die von einem Paritätserzeuger erzeugt wurden, der mit dem parallelen Paritätsprüfer verbunden ist. Diese erzeugten Paritätsdaten sind nun für die Daten korrekt, obwohl die Daten selbst fehlerhaft sein können, und werden für die Daten in dem RAM-Datenregister substituiert, um wieder in die ALU eingegeben zu werden.
  • Wenn die Daten substituiert sind, was eine relativ schnelle Operation ist, gestattet die Steuerschaltung der ALU, die neuen Daten zu verarbeiten, und nachfolgenden Registern wird es gestattet, die normale Verarbeitung wieder aufzunehmen. Ein weiterer Vorteil liegt darin, daß der tatsächliche Algorithmus, der zum Korrigieren der Daten verwendet wird, gegenüber jenem, der beim Stand der Technik verwendet wird, unverändert ist.
  • Die Fehlerkorrekturschaltung und das Fehlerkorrekturverfahren sind nicht Teil dieser Offenbarung. Es ist anzuerkennen, daß ein Fehlersignal durch den Paritätsprüfer 32 bei jedem von zwei Zuständen erzeugt werden kann. Der erste ist der, daß das Datenwort 12 unrichtig und seine Paritätsdaten 14 gut sind. Der zweite Zustand ist der, daß die Paritätsdaten 14 fehlerhaft sind, während das Datenwort richtig ist. Die vorliegende Erfindung unterscheidet nicht zwischen diesen zwei Fehlerbedingungen.
  • In den Zeichnungen:
  • Fig. 1 ist ein Blockdiagramm einer Schaltung des Standes der Technik zur sequentiellen Paritätsfehlerkorrektur, und
  • Fig. 2 ist ein Blockdiagramm der bevorzugten Ausführung der vorliegenden Erfindung.
  • Die Fig. 2 ist ein Blockdiagramm der bevorzugten Ausführung. Wie beschrieben wird, geht die vorliegende Erfindung über die Leistung eines Systems des Standes der Technik hinaus.
  • Wie im Fall des Standes der Technik verwendet die Erfindung einen Paritätsprüfer 100 und einen Paritätserzeuger 102, um Daten, die von einem RAM-Datenregister 106 zu einer ALU 110 gehen, zu verifizieren. Jedoch sind der Paritätsprüfer 100 und -erzeuger 102 außerhalb des Datenpfades angeordnet, der das RAM- Datenregister 106 mit der ALU 110 koppelt, was eine direkte Verbindung über einen Datenpfad 112 gestattet. Der Paritätsprüfer 100 prüft die Daten parallel zur ALU 110 durch Verwendung eines parallelen Datenpfades 114 und verzögert daher nicht die Verarbeitung eines Datenwortes 116 durch die ALU 110. Die ALU 110 sagt normalerweise, wie oben beschrieben wurde, die Parität für das Ergebnis seiner Operation voraus, statt die Parität für das Ergebnis zu erzeugen. Somit wird die Ausgabe der ALU 110 fehlerhaft sein, wenn fehlerhafte Daten eingegeben werden. Da sich die Paritätsvorhersage auf das eingegebene Datenwort verläßt, wird, wenn diese Parität falsch ist, eine irrtümliche Vorhersage auftreten. Somit muß die Parität für die Daten erzeugt werden, nachdem ein Paritätsfehler aufgetreten ist.
  • Die ursprünglichen Fehlertoleranzcharakteristika des Systems des Standes der Technik müssen erhalten bleiben. Durch Herausnehmen des Paritätserzeugers 102 aus dem direkten Pfad zwischen dem RAM-Datenregister 106 und der ALU 110, wird die ALU 110 gelegentlich die Eingabe eines Datenwortes 116 haben, für das die Parität 120 unrichtig ist. Wenn es dem System gestattet ist, fortzufahren, würden nachfolgende Bestimmungsregister und Paritätsprüfer eventuell den Fehler detektieren und das System einfrieren. Folglich ist der Paritätserzeuger 102 vorgesehen, um wie beim Stand der Technik für das Datenwort 116 eine richtige Parität 122 zu erzeugen.
  • Der Paritätsprüfer 100 erzeugt ein Fehlersignal, das angibt, daß ein Paritätsfehler für das Datenwort 116 vorliegt. Wie beim Stand der Technik wird das Fehlersignal über einen Pfad 126 an eine Steuerschaltung 124 geliefert, die alle Register und Operationen pausieren läßt, die falsche Daten detektieren und die Maschine einfrieren können. Die Steuerschaltung 124 hat bei der vorliegenden Erfindung zusätzlich zu jenen, die oben beschrieben wurden, weitere Funktionen. Die Steuerschaltung 124 liefert ein Signal zur ALU 110 an den Pfad 130, um der ALU 110 zu befehlen, das Datenwort 116, das an ihrem Eingang erscheint, ungeändert zu ihrem Ausgang durchzulassen. Da die nachfolgenden Register pausieren, können die Daten, die auf der Leitung 132 erscheinen, nicht weitergehen, außer über den alternativen Pfad, der durch die Datenpfade 134 und 136 dargestellt ist. Auf dem Datenpfad 134 erscheint nur das Datenwort 116, das von der ALU 110 durchgelassen wurde. Die erzeugte Parität 122, die für das auf dem Datenpfad 134 erscheinende Datenwort 116 richtig ist, wird mit dem Datenwort 116 kombiniert, wobei beide längs des Datenweges 136 zum Eingang eines Multiplexers 140 weitergehen.
  • Der Multiplexer ist zwischen die RAM-Anordnung 142 und das RAM-Datenregister 106 eingesetzt. Ein erster Eingang des Multiplexers 140 ist mit der RAM- Anordnung 142 verbunden, um dem RAM-Datenregister 106 und schließlich die ALU 110 RAM-Anordnungs-Daten bereitzustellen. Ein zweiter Eingang des Multiplexers 140 ist mit dem Datenweg 136 verbunden, wie oben beschrieben wurde. Ein Adressenauswahlsignal wird über einen Datenpfad 144 von der Steuerschaltung 124 an den Multiplexer 140 geliefert. Es ist in der Technik gut bekannt, bei der Verwendung eines Multiplexers einen aus einem Paar von Eingängen auszuwählen und sequentiell Daten aus dem Multiplexer auszugeben.
  • Im Betrieb wird ein Datenwort 116, das aus der RAM-Anordnung 142 ausgelesen wurde, über einen Datenpfad 146 an den ersten Eingang des Multiplexers 140 gekoppelt. Bei Abwesenheit eines detektierten Fehlers wird der erste Eingang des Multiplexers 140 durch die Steuerschaltung 124 ausgewählt, die es dem Datenwort 116 und seinen Paritätsdaten 120 gestattet, über die Kopplung durch den Datenpfad 150 zum RAM-Datenregister 106 durchgelassen zu werden. Das Datenwort 116 und die Paritätsdaten 120 werden temporär in dem RAM-Register 106 gehalten, bis sie von der ALU 110 benötigt werden. Wenn die ALU 110 für die Daten bereit ist, wird das Datenwort 116 in die ALU 110 eingegeben. Während dieser Zeit beginnt der Paritätsprüfer 100 die Paritätsdaten 120 gegenüber dem Datenwort 116 zu überprüfen, um zu bestimmen, ob ein Paritätsfehler vorliegt. Im üblichen Fall wird die Paritätsprüfung bestimmen, daß kein Fehler vorliegt, was bedeutet, daß das System keinerlei Zeit verloren hat, da die ALU 110 mit dem Datenwort 116 arbeitete.
  • Bei dem unwahrscheinlichen Umstand, daß ein Paritätsfehler vorliegt, wird der Paritätsprüfer 100 den Fehler detektieren und ein Fehlersignal erzeugen, das über den Datenpfad 126 zur Steuerschaltung 124 geht. Es ist für Durchschnittsfachleute verständlich, daß eine Fehlerindikation so sein könnte, wie sie bei der bevorzugten Ausführung durchgeführt wird, das heißt durch positives Erzeugen eines Signals, wenn ein Fehler auftritt. Es ist auch bekannt, daß ein Fehlersignal der Abschluß eines Signals sein könnte, das angibt, daß die Parität gut ist. Der Paritätserzeuger 102 erzeugt eine Parität für das Datenwort 116, das ihm durch den Paritätsprüfer 100 zugeführt wurde, der über den Datenpfad 152 an den Erzeuger 102 gekoppelt ist. Die Steuerschaltung 124 führt nach dem Empfangen eines Fehlersignals von dem Paritätsprüfer 100 drei Funktionen aus. Zuerst gibt die Steuerschaltung 124 ein Signal aus, das alle Bestimmungsregister, die nach der ALU 110 und dem Datenpfad 132 kommen, pausieren läßt. Dies hindert nachfolgende Paritätsprüfer am Detektieren des Paritätsfehlers und Einfrieren des Systems. Zweitens gibt die Steuerschaltung 124 einen Befehl an die ALU 110 aus, der sie veranlaßt, das Datenwort 116 ungeändert zu ihrem Ausgang durchzulassen. Somit erscheint das ursprüngliche Datenwort 116 an den Datenpfaden 132 und 134. Auf Grund der Tatsache, daß Register, die nach der Alu 110 und dem Datenpfad 132 kommen, nun pausieren, wird sich das Datenwort 116 nicht weiter längs dem Datenpfad 132 ausbreiten, sondern wird nur längs des Datenpfades 134 zum Datenpfad 136 weitergehen. Beim Datenpfad 136 werden das Datenwort 116 (das von der ALU 110 durchgelassen wurde) und die erzeugte Parität 122 (die von dem Paritätserzeuger 102 erzeugt wurde) kombiniert, und beide gehen zum zweiten Eingang des Multiplexers 140 weiter. Drittens gibt die Steuerschaltung 124 ein Adressenauswahlsignal an den Multiplexer 140, um dem Multiplexer zu befehlen, Daten auszuwählen, die an seinem zweiten Eingang erscheinen, an Stelle von Daten, die an seinem ersten Eingang erscheinen, wie es der normale Betriebsmodus ohne Fehlerindikation ist.
  • Die dritte Funktion der Steuerschaltung 124 substituiert im wesentlichen die korrigierten Paritätsdaten 122 für die ursprünglichen Paritätsdaten 120, nachdem die korrigierten Paritätsdaten 122 mit dem Datenwort 116 verbunden wurden, für das sie erzeugt wurden.
  • Anschließend gehen das Datenwort 116 und die korrigierten Paritätsdaten 122 normal längs des Datenpfades 150 zum RAM-Datenregister 106 weiter, wo sie temporär gespeichert werden. Wenn die ALU 110 bereit ist, das Datenwort 116 zu verarbeiten, werden das Datenwort 116 und das korrigierte Paritätswort 122 aus dem RAM-Datenregister 106 ausgelesen. Das Datenwort 116 wird eingegeben in und verarbeitet durch die ALU 110, während der Paritätsprüfer 100 das Datenwort 116 gegenüber seinen korrigierten Paritätsdaten 122 überprüft. Die Überprüfung wird angeben, daß die Daten gut sind, weshalb die Steuerschaltung 124 nun die Pausierung der Bestimmungsregister, die dem Datenpfad 132 nachfolgen, aufheben wird, es der ALU gestattet wird, das Datenwort 116 zu verarbeiten, und der Multiplexer 140 wieder Daten auswählen wird, die auf dem Datenpfad 146 erscheinen, um sie zum RAM-Datenregister 106 auszugeben. Die ALU 110 wird ihre Befehle auf das Datenwort 116 anwenden, und die Ausgabe wird weiter zu Bestimmungsregistern und Paritätsprüfern weitergehen, wo keine Paritätsfehler detektiert werden, und das System wird fortfahren zu arbeiten, bis das Fehlerkorrekturverfahren abgeschlossen ist, und reinigt das Datenwort. Die Datenpfade des Systems bleiben im Betrieb und uneingefroren; der Computer fährt ohne Bedienereingriff fort, zu arbeiten. Somit wird der Wunsch nach Verbesserung der Leistung der Paritätsprüfung, während die Fehlertoleranzcharakteristika erhalten bleiben, durch die Verwendung der neuen und raffinierten Erfindung, die vorliegend offenbart ist, erfüllt.
  • Während das Obige eine vollständige und komplette Offenbarung der bevorzugten Ausführungen der vorliegenden Erfindung bereitstellt, werden bei den Fachleuten durch den Nutzen dieser Offenbarung verschiedene Modifikationen, alternative Konstruktionen und Äquivalente auftauchen. Zum Beispiel ist die Bezugnahme auf ein RAM-Datenregister nur eine Ausführung. Dem Durchschnittsfachmann ist es bekannt, jegliche temporäre Speichervorrichtung oder jegliches temporäres Speicherverfahren, wie einen Cache-Speicher, für das Register zu substituieren, ohne von der Erfindung abzuweichen.
  • Somit ist die Erfindung nicht auf die hierin beschriebene spezifische Ausführung beschränkt, sondern ist so beschränkt, wie es durch die angefügten Ansprüche definiert ist.

Claims (4)

1. Datenverarbeitungssystem, das ein Speichersystem (142) hat, das gekoppelt ist, um einer Verarbeitungsvorrichtung (110) ein Datenwort (116) und ein zugehöriges Paritätswort (120) bereitzustellen, und eine Paritäts- Substitutionsvorrichtung enthält, enthaltend:
Einrichtungen (100) zum parallelen Prüfen einer Parität für das Datenwort (116) und zugehörige Paritätswort (120), die in die Verarbeitungsvorrichtung (110) eingegeben werden, um ein einen Paritätsfehler angebendes Fehlersignal bereitzustellen,
Einrichtungen (102) zum Erzeugen eines weiteren Paritätswortes (122) für das Datenwort (116), das in die Verarbeitungsvorrichtung (110) eingegeben wurde, ungeachtet der Richtigkeit des Datenwortes (116), parallel zu der Verarbeitungsvorrichtung (110),
Einrichtungen (124) zum Substituieren des weiteren Paritätswortes (122) an die Stelle des zugeordneten Paritätswortes (120) bei dem Datenwort (116) und Anlegen des Datenwortes (116) mit dem weiteren Paritätswort (122) an die Verarbeitungsvorrichtung (110), in Abhängigkeit von dem Fehlersignal, und
Einrichtungen (124) zum Pausieren nachfolgender Register vom zusätzlichen Verarbeiten von Daten, die aus der Verarbeitungsvorrichtung ausgegeben wurden, bis die Substitution der Paritätswörter (120, 122) und das Anlegen an die Verarbeitungsvorrichtung (110) aufgetreten sind, in Abhängigkeit von dem Fehlersignal.
2. Datenverarbeitungssystem nach Anspruch 1, wobei die Verarbeitungsvorrichtung eine arithmetische Logikeinheit (110) ist.
3. Datenverarbeitungssystem nach Anspruch 1 oder 2, wobei die Paritäts- Substitutionsvorrichtung ferner einen Multiplexer (140) enthält, der gekoppelt ist, um zwischen dem zugeordneten Paritätswort (120) und dem weiteren Paritätswort (122) zum Anlegen an die Verarbeitungsvorrichtung (110) in Abhängigkeit von dem Fehlersignal auszuwählen.
4. Verfahren zum Verarbeiten von Paritätsdaten in einem Datenverarbeitungssystem, das einen Quellenspeicher (142) zum Speichern einer Mehrzahl von Datenwörtern (116) und zugehörigen Paritätsdatenwörtern (120) und eine Verarbeitungsvorrichtung (110) hat, die angeordnet ist, um einzelne ausgewählte der Datenwörter (116), die aus dem Quellenspeicher (142) gelesen wurden, zu erhalten und zu verarbeiten, welches Verfahren die Schritte enthält:
paralleles Prüfen der Parität jedes der ausgewählten Datenwörter (116) und zugehörigen Paritätswörter (120), die in die Verarbeitungsvorrichtung (110) eingegeben werden, um ein einen Paritätsfehler angebendes Fehlersignal bereitzustellen,
Erzeugen einer weiteren Parität für jedes der ausgewählten Datenwörter (116), die in die Verarbeitungsvorrichtung (110) eingegeben wurden, ungeachtet der Richtigkeit der ausgewählten Datenwörter (116), parallel zu der Datenverarbeitung durch die Verarbeitungsvorrichtung,
Substituieren des weiteren Paritätsdatenwortes (122) an die Stelle des zugeordneten Paritätswortes (120) bei dem Datenwort (116) und Anlegen des Datenwortes (116) und des weiteren Paritätsdatenwortes (122) an die Verarbeitungsvorrichtung, in Abhängigkeit von dem Fehlersignal, und
Pausieren nachfolgender Register vom zusätzlichen Verarbeiten von Daten, bis der Schritt des Substituierens der Paritätswörter (120, 122) und Anlegens der Datenwörter (116) an die Verarbeitungsvorrichtung ausgeführt wurde, in Abhängigkeit von dem Fehlersignal.
DE69029164T 1989-05-22 1990-05-21 Vorrichtung und Verfahren zum Ersetzen der Parität Expired - Fee Related DE69029164T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US35467089A 1989-05-22 1989-05-22

Publications (2)

Publication Number Publication Date
DE69029164D1 DE69029164D1 (de) 1997-01-02
DE69029164T2 true DE69029164T2 (de) 1997-04-17

Family

ID=23394414

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69029164T Expired - Fee Related DE69029164T2 (de) 1989-05-22 1990-05-21 Vorrichtung und Verfahren zum Ersetzen der Parität

Country Status (6)

Country Link
US (1) US5515381A (de)
EP (1) EP0399761B1 (de)
JP (1) JP2770913B2 (de)
AU (1) AU628971B2 (de)
CA (1) CA2017099C (de)
DE (1) DE69029164T2 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE36448E (en) * 1991-09-13 1999-12-14 International Business Machines Corporation Memory controller with parity generator for an I/O control unit
JPH0784814A (ja) * 1993-09-16 1995-03-31 Nec Corp 計算機の誤り検出装置
KR100205072B1 (ko) * 1996-12-05 1999-06-15 정선종 디스크 어레이 제어기에서의 vram 기판 패리티 엔진
US6111800A (en) * 1997-12-05 2000-08-29 Cypress Semiconductor Corporation Parallel test for asynchronous memory
US6052818A (en) * 1998-02-27 2000-04-18 International Business Machines Corporation Method and apparatus for ECC bus protection in a computer system with non-parity memory
US6473875B1 (en) * 1999-03-03 2002-10-29 Intel Corporation Error correction for network delivery of video streams using packet resequencing
US6405322B1 (en) * 1999-04-13 2002-06-11 Hewlett-Packard Company System and method for recovery from address errors
US7093190B1 (en) * 2002-07-12 2006-08-15 Unisys Corporation System and method for handling parity errors in a data processing system
US7278080B2 (en) * 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
US7673190B1 (en) * 2005-09-14 2010-03-02 Unisys Corporation System and method for detecting and recovering from errors in an instruction stream of an electronic data processing system
US7568130B2 (en) * 2006-04-18 2009-07-28 Cisco Technology, Inc. Automated hardware parity and parity error generation technique for high availability integrated circuits
US8151176B2 (en) * 2008-11-13 2012-04-03 Lsi Corporation CPU instruction RAM parity error procedure

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2518588C3 (de) * 1975-04-25 1978-07-20 Siemens Ag, 1000 Berlin Und 8000 Muenchen Verfahren zur Überwachung der Folgerichtigkeit von Codesignalgruppen in Einrichtungen der Nachrichtentechnik
IT1089225B (it) * 1977-12-23 1985-06-18 Honeywell Inf Systems Memoria con dispositivo rivelatore e correttore a intervento selettivo
US4183463A (en) * 1978-07-31 1980-01-15 Sperry Rand Corporation RAM error correction using two dimensional parity checking
US4410988A (en) * 1978-08-04 1983-10-18 Honeywell Information Systems Inc. Out of cycle error correction apparatus
JPS603219B2 (ja) * 1978-08-25 1985-01-26 富士通株式会社 制御メモリ・エラ−自動訂正処理方式
US4304002A (en) * 1978-11-23 1981-12-01 International Computers Limited Data processing system with error checking
JPS55105897A (en) * 1979-01-31 1980-08-13 Hitachi Koki Co Ltd Memory device
US4360917A (en) * 1979-02-07 1982-11-23 The Warner & Swasey Company Parity fault locating means
US4360915A (en) * 1979-02-07 1982-11-23 The Warner & Swasey Company Error detection means
US4317201A (en) * 1980-04-01 1982-02-23 Honeywell, Inc. Error detecting and correcting RAM assembly
US4360891A (en) * 1980-04-14 1982-11-23 Sperry Corporation Address and data interface unit
JPS57169857A (en) * 1981-04-13 1982-10-19 Mitsubishi Electric Corp Control storage device
US4472805A (en) * 1982-03-26 1984-09-18 Rca Corporation Memory system with error storage
US4450562A (en) * 1982-03-26 1984-05-22 Rca Corporation Two level parity error correction system
JPS6043753A (ja) * 1983-08-18 1985-03-08 Fuji Xerox Co Ltd 故障検出回路
AU3230184A (en) * 1983-08-31 1985-03-07 Amdahl Corporation Multimode scan apparatus
JPS60214043A (ja) * 1984-04-09 1985-10-26 Fujitsu Ltd パイプライン制御回路
JPS6150293A (ja) * 1984-08-17 1986-03-12 Fujitsu Ltd 半導体記憶装置
BR8503913A (pt) * 1984-08-18 1986-05-27 Fujitsu Ltd Sistema e processo de recuperacao de erros em um processador de dados do tipo de canalizacao tendo um dispositivo de memoria de controle e processo de recuperacao de erros em um processador de dados do tipo de canalizacao
US4670876A (en) * 1985-05-15 1987-06-02 Honeywell Inc. Parity integrity check logic
CA1240066A (en) * 1985-08-15 1988-08-02 John R. Ramsay Dynamic memory refresh and parity checking circuit
JP2605271B2 (ja) * 1987-02-10 1997-04-30 ソニー株式会社 エラー訂正及びチエツク装置

Also Published As

Publication number Publication date
CA2017099C (en) 1998-06-23
CA2017099A1 (en) 1990-11-22
EP0399761B1 (de) 1996-11-20
EP0399761A3 (de) 1991-11-21
JPH0375834A (ja) 1991-03-29
DE69029164D1 (de) 1997-01-02
US5515381A (en) 1996-05-07
AU5504690A (en) 1990-11-22
EP0399761A2 (de) 1990-11-28
JP2770913B2 (ja) 1998-07-02
AU628971B2 (en) 1992-09-24

Similar Documents

Publication Publication Date Title
DE68924223T2 (de) Mechanismus zum Prüfpunktwiederversuch.
DE68924119T2 (de) Verfahren und Vorrichtung zum Wiederanlauf nach einem Fehler in einem digitalen Rechnersystem.
DE69221045T2 (de) Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen
DE2953432C1 (de) Vorrichtung zum Testen eines Mikroprogramms
DE3485766T2 (de) Nach dem pipelineverfahren arbeitende fehlerkorrektur.
DE3786862T2 (de) Fehlertolerante Rechnerarchitektur.
DE69427129T2 (de) Fehlertolerantes warteschlangenvorrichtung und verfahren dafür
DE4434895C2 (de) Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE69029164T2 (de) Vorrichtung und Verfahren zum Ersetzen der Parität
DE69126057T2 (de) Ein Informationsverarbeitungsgerät mit einer Fehlerprüf- und Korrekturschaltung
DE2611907A1 (de) Dv-system mit einer prioritaets- unterbrechungs-anordnung
DE60002908T2 (de) Vorrichtung und verfahren zur verbesserten fehlerortung und diagnose in rechnern
DE102006039747A1 (de) Verfahren für Kontextzustandsmanagement
DE2336020C3 (de) Adressen-Berechnungsschaltung für Paritätsfehler-Korrekturprogramme
DE2536625C2 (de) Paritätsprüfschaltung für ein binär zählendes Register
DE68918840T2 (de) Fehlererkennung für teilschreiboperationen für speicher.
DE3814875C2 (de)
DE102005054587A1 (de) Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen
DE3786853T2 (de) Gerät zur Erkennung und Klassifizierung von Steuerwortfehlern.
DE69323695T2 (de) Verfahren und Einrichtung zum Überprüfen von geordneter Datenverarbeitung
DE69422003T2 (de) Verfahren und Vorrichtung zur Steuerung der Befehlswiederholung
DE3750756T2 (de) Ausführung von Fehlererkennung unter Verwendung eines ungebrauchten Modulo-m-Kodes.
EP1915686B1 (de) Verfahren und vorrichtung zur festlegung eines startzustandes bei einem rechnersystem mit wenigstens zwei ausführungseinheiten durch markieren von registern
EP1924914B1 (de) Datenverarbeitungssystem und betriebsverfahren dafür

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee