DE1901036A1 - Anordnung fuer die wiederholte Ausfuehrung fehlerhaft ausgefuehrter Funktionen - Google Patents

Anordnung fuer die wiederholte Ausfuehrung fehlerhaft ausgefuehrter Funktionen

Info

Publication number
DE1901036A1
DE1901036A1 DE19691901036 DE1901036A DE1901036A1 DE 1901036 A1 DE1901036 A1 DE 1901036A1 DE 19691901036 DE19691901036 DE 19691901036 DE 1901036 A DE1901036 A DE 1901036A DE 1901036 A1 DE1901036 A1 DE 1901036A1
Authority
DE
Germany
Prior art keywords
memory
error
data
register
arrangement according
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE19691901036
Other languages
English (en)
Other versions
DE1901036B2 (de
Inventor
Snyder Alan Donald
Boehner William Edward
Lang Donald John
Mcgilvray Bruce Lloyd
Bee Mark Wilson
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 DE1901036A1 publication Critical patent/DE1901036A1/de
Publication of DE1901036B2 publication Critical patent/DE1901036B2/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Retry When Errors Occur (AREA)
  • Sorting Of Articles (AREA)
  • Debugging And Monitoring (AREA)

Description

IBM Deutschland Internationale Büro-Maidiinen Gesellschaft mbH
Böblingen, den 7. Januar 1968 jo-sr-hn
Anmelder:
Amtliches Aktenzeichen:
Aktenz. der Anmelderin:
International Business Machines Corporation, Armonk, N. Y. 10 504
Neuanme ldung
Docket PO 967 043/044
Anordnung für die wiederholte Ausführung fehlerhaft ausgeführter Funktionen.
Die Erfindung betrifft eine Anordnung für die wiederholte Ausführung fehlerhaft ausgeführter Funktionen in einem digitalen Datenverarbeitungs system mit Schaltungen zur Folgesteuerung, Wiederholungssteuerung und Fehlererkennung.
Die in Datenverarbeitungsanlagen auftretenden Fehler können in zwei Kategorien aufgeteilt werden: "vorübergehende'Fehler und "dauernde" Fehler. Vorübergehende Fehler können die Folge einer kurzfristigen Netzspannungsschwankung oder eines Störimpulses sein. Dauernde Fehler werden z.B. durch den vollständigen Ausfall eines Bauelementes oder durch eine Leitungsunterbrechung hervorgerufen.
Die vorliegende Erfindung betrifft Einrichtungen in einer Datenverarbeitungsanlage, die eine korrekte Arbeitsweise trotz des Auftretens vorübergehender Fehler erlauben.
Es sind Datenverarbeitungssysteme bekannt geworden, in denen Fehlerauswirkungen durch Redundanz der technischen Einrichtungen verhindert werden, also z.B. durch Verdoppelung der einzelnen Schaltungsteile oder durch Parallelarbeit ganzer Anlagen. Diese Lösung ist zwar sicher, aber sehr aufwendig.
009832/1242
Eine weitere Möglichkeit zur Eliminierung vorübergehender Fehler besteht darin, den Programmablauf beim Auftreten eines Fehlers zu stoppen und mit der Ausführung des gesamten Programms von vorne zu beginnen, wobei möglicherweise die Daten und das Programm noch einmal neu geladen werden müssen. Dieses Verfahren ist unter Umständen sehr zeitaufwendig; vor allem aber werden die Resultate, die bis zum Auftreten des Fehlers korrekt ermittelt wurden, gar nicht ausgenutzt, sondern gehen verloren.
Ein anderes Verfahren, das eine Beseitigung der Auswirkungen-vorübergehender Fehler ermöglicht, ist die Programmierung mit Prüfpunkten. Dabei werden im Programm bestimmte Stellen (Prüfpunkte) vorgesehen, bei deren Erreichung der Programmablauf angehalten wird. Die zu einem solchen Zeitpunkt in bestimmten Registern, Speichern, usw. enthaltenen Daten und Steuerinformationen werden ausgelesen und an besonderen Plätzen, z. B. in einem Magnetband, gespeichert, und bleiben bis zur Erreichung des nächsten Prüfpunktes dort erhalten. Dadurch besteht die Möglichkeit,nach einer Unterbrechung oder nach Auftreten eines Fehlers durch ein Hilfsprogramm in der Datenverarbeitungsanlage die Bedingungen wiederherzustellen, die zur Zeit der Erreichung des letzten Prüfpunktes bestanden, und von diesem Punkt aus den Programmablauf wieder zu starten.
Dieses Verfahren hat aber den Nachteil, daß durch die an den Prüfpunkten notwendigen Zusatzoperationen Zeitverluste eintreten, die den Wirkungsgrad des Systems herabsetzen. Außerdem müssen die gewünschten Prüfpunkte und die Benutzung der notwendigen Hilfsprogramme bei der Programmierung berücksichtigt werden, und erfordern deshalb zusätzliche Arbeit.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, für eine Datenverarbeitungsanlage Anordnungen anzugeben, welche die vorstehend genannten Nachteile bekannter Systeme bei der Überwindung vorübergehender Fehler vermeiden.
Docket PO 967 043 909832/1242
Für eine Anordnung für die wiederholte Ausführung fehlerhaft ausgeführter Funktionen in einem digitalen Datenverarbeitungssystem mit Schaltungen zur Folgesteuerung, Wiederholungssteuerung und Fehlererkennung besteht die Erfindung darin, daß jeweils ein Rückgriffspeicher über Torschaltungen mit dem Instruktionsadressen-Register, dem Speicher-Datenregister, dem Hauptspeicher, dem Arbeitsspeicher-Adressenregister, dem Arbeitsspeicher und dem Programmstatuswort-Register verbunden ist, wobei die Torschaltungen von der Wiederholungssteuerung derart steuerbar sind, daß die Ursprungsdaten für die Ausführung der Funktionen mindestens so lange unverändert aufbewahrt bleiben, bis eine Funktion fehlerfrei ausgeführt wurde.
Weitere Merkmale und vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen zu entnehmen.
Die Anordnung der Erfindung hat vor allem den Vorteil, daß sie eine konkrete Prüfpunktanzeige angibt, die ohne Verminderung der normalen Arbeitsgeschwindigkeit des Systems zu arbeiten vermag. Sie gestattet ferner die automatische Wiederholung bestimmter Funktionen, bei deren Ausführung Fehler auftraten.
Die Anordnung gemäß der Erfindung besitzt ferner den Vorteil, daß sie automatisch alle Bedingungen einstellt, die für eine Wiederholung notwendig sind. Auch hierbei ist ihr Betrieb so, daß die normale Arbeitsgeschwindigkeit des Systems, wenn keine Fehler vorliegen, nicht vermindert wird. Die Wiederholung einer Funktion während deren Ausführung ein Maschinenfehler entdeckt wurde, ist ferner unabhängig von dem Programm, welches auf der Maschine läuft.
Die Wiederholungssteuerung der Maschine ist ferner in der Lage, die Wirkungen von vorübergehenden Fehlleistungen des Systems zu überwinden, die für eine Zeit andauert, die mehreren Maschinenzyklen des Systems entspricht. Ein weiterer Vorteil liegt auch darin, daß die Anordnung dazu fähig
909832/1 242
Docket PO 967 043
ist, die Wirkungen vorübergehender Fehlleistungen zu überwinden, die selbst während einer Wiederholung auftreten. Ferner wird auch nur diejeni- , ge Funktion wiederholt, die während ihrer Ausführung einen Fehler liefert. Frühere, korrekt ausgeführte Funktionen werden hierbei nicht mehr wiederholt.
Die Erfindung wird im folgenden anhand eines dur,ch Zeichnungen erläuterten Ausführungsbeispieles näher beschrieben. Es zeigen:
Fig. 1 eine schematische Blockdarstellung einer Datenverarbeitungsanlage (Grundsystem), in der die Erfindung verwendet werden kann;
Fig. 2 eine Darstellung der allgemeinen Organisation der Folgesteuerungen der zentralen Verarbeitungseinheit;
Fig. 3 eine Zeittabelle der in Fig. 2 gezeigten Zeitgeberschaltung 306; Fig. 4 eine schematische Darstellung der Organisation des Hauptspeichers;
Fig. 5 eine Zeittabelle zur Erläuterung der Speicher- und Abrufoperationen bei dem in Fig. 4 gezeigt en Hauptspeicher;
Fig. 6 eine schematische Darstellung der allgemeinen Organisation des Arbeitsspeichers;
Fig. 7 ein Zeitdiagramm zur Erläuterung der Arbeitsweise des Arbeitsspeichers;
Fig. 8a eine schematische Blockdarstellung der Einzelelemente, die zubis 8f sätzlich für den Einbau der Anordnung gemäß der Erfindung in einerDatenverarbeitungsanlage benötigt werden;
Docket PO 967 043 909832/1242
Fig. 9 eine Darstellung der verschiedenen Felder eines Datenregisters für den F estwert-Steuerspeicher (ROSDR);
Fig. 10 eine Darstellung weiterer Einzelheiten der Steuerfelder für eine erneute Instruktionsausführung im ROSDR;
Fig. 11 Bauelemente, die zu dem Hauptspeicher für die Korrektur von Speicherfehlern hinzugefügt sind und
Fig. 12 Bauelemente, die zu dem Arbeitsspeicher für die Korrektur von Speicherfehlern hinzugefügt sind.
Zum besseren Verständnis der Funktion dieser Erfindung werden zuerst verschiedene Aspekte des für den Einbau vorgesehenen Datenverarbeitungssystems erläutert, in welchem die Anordnung der Erfindung verwendet wird. Die Einzelheiten dieses Systemes sind bekannt und werden daher nicht weiter beschrieben.
Zentrale Verarbeitungsanlage
In Fig. 1 sind verschiedene Grundbestandteile einer digitalen Rechenanlage gezeigt. Die Anlage umfaßt einen Festwert-Steuerspeicher (ROS) 300 mit dem zugehörigen Adressregister (ROAR) 308 und dem Datenregister (ROSDR) 310, ein Programm-Statuswort-Register (PSW-Register) 51, einen Hauptspeicher 12 und eine zentrale Verarbeitungseinheit. ROS, ROAR, ROSDR und PSW sind Einzelelemente der nachfolgend beschriebenen zentralen Steuerungen der Datenverarbeitungsanlage.
Die in Fig. 1 gezeigte zentrale Verarbeitungs einheit umfaßt einen Addierer (ADD) 210, der einen Operanden vom L-Register 126 und durch ein Torschaltungsnetzwerk 213 einen Operanden vom R-Register 124, einem M-Register 211 oder einem H-Register 212 empfängt. Das Torschaltungsnetzwerk 213 umfaßt eine Einrichtung zur Komplementbildung beider Operanden,
Docfet PO 967 043 909832/1242
wodurch der Addierer 210 die Fähigkeit erhält, zwei Operanden zueinander addieren oder voneinander subtrahieren zu können. Der Ausgang des Addierers 210 wird über eine Schiebeschaltung 215 geleitet. Der Ausgang der Schiebeschaltung kann nach links oder rechts um 0, 1 oder 4 Stellen in jedem Zyklus der Zentraleinheit verschoben werden. Bei einer einfachen Addition oder Subtraktion erfolgt keine Verschiebung. Bei einer Multiplikation oder Division kann der Ausgang des Addierers 210 um eine oder mehrere Stellen verschoben werden. Der Ausgang der Schiebeschaltung 215 wird über eine Schaltungsanordnung 216 auf eine Gruppe von Verriegelungs Schaltungen 217 geleitet, die die Bezeichnung "AOB-Verriegelungsschaltungen" tragen. Der Ausgang der AOB-Verriegelungsschaltungen 217 wird auf eine Ausgangs-Sammelleitung des Addierers gegeben, die die Bezeichnung AOB trägt und das Ausgangs signal der AOB-Verriegelungsschaltungen an zahlreiche nicht dargestellte Bestimmungsorte leitet. Die AOB-Verriegelungsschaltungen 217 können so betrieben werden, daß sie Daten auf der AOB-Leitung zum Speicherdatenregister (SDR) 91^ zu dem Speicheradressregister (SAR) 90, zu einem Instruküonsadressregister (IA) 218, zum L-Register 126, zum R-Register 124, zum M-Register 211 und zum H-Register 212 übertragen. Informationen von den verschiedenen, in Fig. 1 gezeigten Quellen haben Zugriff zur AOB-Leitung über die Schaltungsanordnung 216 und die AOB-Verriegelungsschaltungen 217. Informationen vom L-Register 126, vom R-Register 124, vom M-Register 211 und vom H-Register 212 können über den Addierer 211 und die Schiebeschaltung 215 geleitet werden, um über die Schaltungsanordnung 216 und die AOB-Verriegelungs Schaltung 217 Zugang zur AOB-Leitung zu erhalten. Es wird besonders darauf hingewiesen, daß Daten unverändert über den Addierer 210 und die Schiebeschaltung 215 geleitet werden können. So kann also eine Information aus dem L-Register 126, dem R-Register 124, dem M-Register 211 oder dem H-Register 212 unverändert durch den Addierer 211, die Schiebeschaltung 2153 die Schaltungsanordnung 216 und die AOB-Verriegelungsschaltungen 217 auf die AOB-Leitung und von dort an die verschiedenen, oben aufgezählten Bestimmungspunkte geleitet werden. Eine Information im
909832/1242
Docket PO 967 043
Speicherdatenregister (SDR) 91 kann direkt auf das Adressregister ROAR 308 übertragen werden. Somit ist ein Maximum an Beweglichkeit in der Datenübertragung von einer ausgewählten Stelle an einen Bestimmungsort gegeben.
Das Instruktionsadressregister (IA-Register) 218 enthält Signale, welche die Adresse der auszuführenden Instruktionen im Hauptspeicher 12 darstellen. Die Adress-Signale im Instruktionsadressregister 218 werden auf eine Instruktions-Adresszähler- und Verriegelungsschaltung 219 übertragen. Bei der Ausführung nachfolgender Instruktionen wird die Instruktionsadresse durch Umlauf des Inhaltes des IA-Registers durch die Instruktions-Adress zähler- und Verriegelungs schaltung und zurück zum ΙΑ-Register weitergeschaltet, wodurch der Wert im ΙΑ-Register erhöht wird. Jede Instruktion erhält man durch das Übertragen des Inhaltes des Instruktionsadresszählers 219 in das Speicheradressregister 90. Die Instruktion bei einer bestimmten Adresse wird aus dem Hauptspeicher 12 ausgelesen und auf das Speicherdatenregister 91 geladen. Die im Speicherdatenregister 91 gespeicherte Instruktion wird durch die Schaltungsanordnung 216, die AOB-Verriegelungs schaltungen 217 und die AOB-Leitung auf das M-Register 211 übertragen. Die Instruktion im M-Register 211 enthält einen Adressteil, der auf das ROAR 308 übertragen wird, das seinerseits die Adress-Signale auf den ROS 300 liefert. Der ROS 300 liefert Ausgangs signale, die Mikroinstruktions codes darstellen, welche im ROSDR 310 gespeichert werden. Dessen Ausgang wird durch ein nicht dargestelltes Gerät zur Abgabe von Zeitsignalen für den Betrieb des gesamten Systems unter Steuerung eines Mikroprogrammes benutzt. Ein Teil des Ausgangs vom ROSDR 310 und ein Teil des PSW-Registers 51 werden zur Bestimmung der richtigen Adresse auf das ROAR 308 gegeben. Der ROS 300 und die damit verbundenen Steuerungen werden im folgenden näher beschrieben.
Z entralsteuerung
In den Fig. 2 und 3 ist eine Zentralsteuerung für die Datenverarbeitungsanlage
909832/1242
Docket PO 967 043
dargestellt. Die Arbeitsweise der e inen ROS 300 enthaltenden Steuerung ist an sich bekannt und auf den Seiten 47 und 48 des IBM-TDB, Vol. 5, No. 8 vom Januar 1963 ausführlich beschrieben. Die Steuerung enthält darüber hinaus noch einen Betriebsartentrigger 302, Statustrigger 304 und Zeitgeberschaltungen 306. Die Zeitgeberschaltungen liefern fünf zyklische Signale mit der Frequenz der Zentraleinheit, die in Phase mit der Null-Bezugszeit jedes Zyklus der Zentraleinheit laufen, wie es in Fig. 3tgezeigt ist.
Die Daten im ROS werden über das 12 Bit große Register ROAR 308 adressiert. Die Adress-Signale für das ROAR können von verschiedenen Quellen kommen, einschließlich eines Teiles der Aus gangs Steuerinformation vom ROSDR 310 in jedemZyklus der Zentraleinheit, um eines der 2816 Neunzigbit-Steuerwörter zu wählen und dieses in das ROSDR 310 zu geben. Jedes als Makroinstruktion bekannte Wort wird zur Zeit der Abtastung des Lesesignales in das ROSDR 310 übertragen, und zwar unmittelbar vor Beginn des nächsten Zyklus der Zentraleinheit. Es steuert die Operation der Zentraleinheit während des nächsten Zyklus.
Der Zustand des ROAR 308 wird unmittelbar vor dem Treiberimpuls (Fig. 3) festgelegt und steuert den Zustand des ROSDR 310 zum nachfolgenden Lesesignal-Abtast-Zeitpunkt. Somit steuert jeder Eingang in das ROAR 308 im allgemeinen die Tätigkeit der Zentraleinheit in deren nachfolgenden Zyklus.
Jede Eingabe in das ROAR wird durch eine von verschiedenen Möglichkeiten mittels derjenigen Eingänge bestimmt, die über ein^ ODER-Netzwerk 314 auf die Schaltungen 312 gegeben werden. In der Regel werden die auf das ODER-Netzwerk 314 gegebenen 12 Bits wahlweise durch die Schaltungen 316 von einer oder mehreren Quellen einschließlich eines Segmentes des ROSDR und der Ausgangsbedingungen abgeleitet, die von einer bestimmten Programm-Verzweigungsinformation (Programminstruktions -Operati ons code) festgelegt ist, welche von bestimmten Statustriggern 304 ausgewählt wurde.
Docket PO 967 043 . 909832/12A2
In der Beschreibung wurde bisher angenommen, daß die Betriebsartenumschaltung 302 auf Zentraleinheitsbetrieb geschaltet ist und daß der Betrieb der Zen-' traleinheit nicht von einer Eingabe-/Ausgabe-Einheit (E-/A-Einheit) unterbrochen wurde. Anfragen von E-/A-Einheiten werden durch Aufnahme eines Signales "Routine empfangen11 angenommen. Aus den Eingängen zum UND-Tor 331 in Fig. 2 ist zu ersehen, daß die Betriebsartenschaltung 302 erst zum Zeitpunkt "Register einstellen" des Zyklus, nach Ansteigen des Signales "Routine empfangen", auf den E/A-Betrieb umgeschaltet wird, wenn die Zentraleinheit in ihrer Betriebsart läuft und ein Signal "Routine empfangen" empfangen wird. Dadurch kann die Zentraleinheit die Ausführung der laufenden Mikroinstruktion abschließen. Wenn die Betriebsart der Zentraleinheit eingeschaltet ist und ein Signal "Routine empfangen" eintrifft, gibt das UND-Tor ein Ausgangssignal ab, welches das UND-Tor 332 sperrt und dadurch das Signal "Abtastung Lesesignal" der Abfrageschaltungen 334 unterdrückt, die normalerweise Eingangs signale vom ROS 300 auf das ROSDR 310 gibt. Jetzt erst kann die E/A-Anfrage bedient werden.
Hauptspeicher
In den Fig. 4 und 5 ist der in Fig. 1 in Blockform dargestellte Hauptspeicher 12 ausführlicher wiedergegeben. Fig. 4 zeigt die Systemanordnung des Hauptspeichers und Fig. 5 die zugehörigen zeitlichen Beziehungen. Die in Fig. 4 gezeigten Schaltungen 71 bis 78 steuern den Informationsfluß durch die Unteranlage. Der Hauptspeicher 12 besteht vorzugsweise aus einer Matrixanordnung von Magnetkernen. Eine gegebene Adresse wird in dieser Anordnung durch Signale im Speicheradressregister SAR dargestellt. Die Adress-Signale werden über einen Satz von Schaltungen 71 auf das SAR 90 geleitet. Die interne Taktsteuerung des Hauptspeichers 12 spricht auf ein Startsignal von der zentralen Ve rarbeitungs einheit an. Dabei wird der Hauptspeicher 12 dann über seinen Grundspeicherzyklus zum Auslesen von Informationen auf Abfrageleitungen mit einem Satz von Schaltungen 72 mit Hilfe einer gewählten Adresse betrieben, die durch das Speicheradressregister angegeben wurde. Die über
909832/124 2
Docket PO 967 043
- ίο -
die Schaltungen 72 gele itete Information wird im Speicherdatenregister (SDR) 91 gespeichert. Die Daten im Speicherdatenregister können wieder in den Hauptspeicher zurückgespeichert werden, indem man sie über einen Satz Schaltungen 73 leitet. Sie können aber auch über die Schaltungen 733 an die Zentraleinheit öder über einen weiteren Satz von Schaltungen 77 auf E/A-Einheiten weitergeleitet werden. Bei einer Abrufoperation (Leseoperation) werden die Schaltungen 72 und 74 zum Übertragen der Information aus der gewählten Adresse der Speicheranordnung zu dem Speicherdatenregister eingeschaltet. Die so gelesene Information wird über die Schaltungen 73 während eines Schreibteiles des Speicherzyklus auf die gewählte Adresse der Anordnung zurückgeleitet. Wenn neue Daten eingeschrieben werden sollen, werden die Schaltungen 72 und 74 nicht betätigt und die aus der gewählten Anordnung gelesenen Daten gehen auf diese "Weise verloren. Unter der gewählten Adresse neu einzuschreibende Daten werden in das Speicherdatenregister 91 gegeben, und zwar entweder von der Zentraleinheit über die Schaltungen 75 oder von E/A-Einheiten über die Schaltungen 75 und 76. Die neuen Daten werden während des Schreibteiles des Speicherzyklus über die Schaltungen 73 auf die gewählte Adresse der Speicheranordnung geleitet.
Der in Fig. 4 gezeigte Hauptspeicher 12 hat einen Speicherzyklus, der vier Maschinenzyklen der Zentraleinheit entspricht. Wie in Fig. 5 gezeigt, fällt jeder Zyklus des Hauptspeichers mit vier Zyklen der Zentraleinheit zusammen. Ein Speicherzyklus wird durch ein Signal "START MS" von der Zentraleinheit eingeleitet. Während des ersten Zyklus der Zentraleinheit läßt dieses Signal Adress-Signale über die Schaltungen 71 auf das in Fig· 4 gezeigte Speicheradressregister 90 laufen. Während der ersten Hälfte des Speicherzyklus werden die Signale Rl und R2, wie in Fig. 5 gezeigt, erzeugt. In der Schlußhälfte des Speiderzyklus werden die Signale Wl und W2 erzeugt, wie es in Fig. 5 dargestellt ist. Während der Zeit der Signale Rl ' und R2 führt der Hauptspeicher eine Leseoperation und während der Zeit des Signales Wl und eines Zyklus des Signales W2 (W2 bleibt unbegrenzt bis zum Beginn eines neuen Zyklus des Hauptspeichers bestehen) eine Schreib-
909832/1242
Docket PO 967 043
operation durch, wobei die gelesenen Daten oder neue Daten wieder in den durch die Adresse gewählten Bereich des Hauptspeichers rückgespeichert werden. Die interne Zeitsteuerung des Hauptspeichers ist durch den Block 92 in Fig. 4 dargestellt. Das Signal "START MS" wird, sobald der Hauptspeicher einen Speicherzyklus durchführt, auf einer Leitung 93 empfangen. Auf dieses Signal "START MS" hin werden Signale auf den mit Rl, R2, Wl und W2 bezeichneten Leitungen zu den in Fig. 5 angegebenen Zeitpunkten erzeugt.
Bei einer Ab ruf operation werden Signale auf den Abfrageleitungen des Hauptspeichers während der R-Zyklushälfte auf das Speicherdatenregister 91 geleitet, dessen Inhalt während der W-Zyklushälfte auf die gewählte interne Stelle des Hauptspeichers übertragen wird. Somit steht die abgerufene, in das Speicherdatenregister übertragene Information zum Auslesen für die Schaltungen außerhalb des Hauptspeichers zur Verfügung, Es wird somit regenerativ auf dieselbe Stelle im Speicher zurückgeführt, wenn sie nicht durch ei ne andere Information ersetzt werden soll. Bei einer Speicheroperation wird die auf den Abfrageleitungen des Hauptspeichers erscheinende Information gesperrt und eine andere Information über eine externe Leitung 94 in Fig. 4 während der R-Zyklushälfte des Hauptspeichers auf das Speicherdatenregister übertragen. Während der dann folgenden W-Zyklushälfte wird die neue Information im Speicherdatenregister auf die durch das Speicheradressregister 90 gewählte interne Stelle übertragen.
Arbeitsspeicher
In den Fig. 6 und 7 sind der Arbeitsspeicher und die Zeitverhältnisse seines Speicherzyklus gezeigt. In Fig. 6 ist der in Fig. 1 in Blockform dargestellte Arbeitsspeicher ^(LS) 13 im einzelnen gezeigt. Der Arbeitsspeicher 13 umfaßt 64 Register mit einer Kapazität von je einem Wort. Ein Arbeitsspeicher-Adressregister (LSAR) 120 enthält Adress-Signale, die eines der 64 Register adressieren. Diese Adress-Signale werden über einen Satz von Schaltungen 121 auf das Arbeitsspeicher-Adressregister gegeben. Bei einer Leseoperation wird die aus der gewählten Adresse des Arbeitsspeichers gelesene Docket PO 967 043 909832/1242
Information über einen Schaltungsaatz 122 geleitet. Diese durch die Schaltungen übertragenen Signale werden über einen Schaltungssatz 123 auf das R-Register 124 oder über einen anderen Schaltungssatz 125 auf das L-Regi^. ster'126 geführt. Die Aus gangs signale des L-Registers oder des R-Registers können auf eine Recheneinheit oder einen Addierer der oben beschriebenen Art gegeben werden. Das Ausgangssignal "des R-Registers kann über einen Schaltungssatz 140 und 141 auf den Arbeitsspeicher 13 übertragen und das Aus gangs signal des L-Registers über einen Schaltungssatz 142 und 141 auf den Arbeitsspeicher gegeben werden. Eine Information von der Leitung 94 kann schließlich über den Schaltungssatz 143 zu dem L-Register und über den Schaltungssätz 144 zu dem R-Register übertragen werden.
Der Arbeitsspeicher 13 arbeitet ähnlich wie der Hauptspeicher. Sein Zyklus ist jedoch dagegen genau so lang wie ein Maschinenzyklus der Zentraleinheit. Wie im folgenden näher erläutert wird, kann die während eines Schreib-Halbzyklus zu verarbeitende Information frei gewählt werden. Im Lese-Halbzyklus kann jedoch eine Information nur von einer bestimmten, durch das Arbeitsspeicher-Adressregister 120 angegebenen Adresse auf eines der beiden Pufferregister, nämlich das L-Register oder das R-Register, übertragen werden. Im Schreib-Halbzyklus kann die Information im L-Register oder im R-Register wieder wahlweise auf eine bestimmte Adresse dea Arbeitsspeichers übertragen werden. Während die Information bei einer Schreiboperation (d.h. im zweiten Viertel des nächsten Zyklus der Zentraleinheit) im Arbeitsspeicher gespeichert wird, kann die vorher von den Abfrageleitungen auf das L-Register oder das R-Register übertragene Information progressiv zum Addierer der Zentraleinheit und von dort zu den E/A-Eiriheiten übertragen werden. Umgekehrt können während einer Lese-Zyklushälfte des Arbeitsspeichers 13 Informationssignale von den E/A-Einheiten auf das L-Register oder das R-Register gegeben werden und dann progressiv während der nachfolgenden Schreib-Zyklushälfte des Arbeitsspeichers weiterlaufen.
Docket PO 967 043 · 9Q9832/1242
Der Arbeitsspeicher 13 hat einen Speicherzyklus von O1 5 Ä*s. Dieser Speicherzyklus ist genau so lang, wie derjenige der Zentraleinheit, jedoch gegenüber diesem Zyklus zeitlich um 180 verschoben. Dieser Zusammenhang geht aus Fig. 7 hervor, indem man den Zyklus der Zentraleinheit oben im Schaubild mit dem Zyklus des Arbeitsspeichers an der Unterseite vergleicht. Ein Signal "START LS" leitet einen Speicherzyklus des Arbeitsspeichers ein und beginnt, wie in Fig. 7 dargestellt ist, in der Mitte eines Zyklus der Zentraleinheit. Die Adress-Signale werden in das Arbeitsspeicher-Adressregister 120 (in Fig. 6) während der Anfangsphase des Speicherzyklus gesetzt, wie es in Fig. 7 gezeigt ist. Der Leseteil eines Speicherzyklus belegt 50 % des Speicherzyklus, wobei der Mittelpunkt des Leseteiles zeitlich mit dem Mittelpunkt des Speicherzyklus zusammenfällt, wie es in Fig. 7 gezeigt ist. Die Schreibphase liegt in den letzten 25 % des Speicherzyklus. Die Übertragung in das L-Register, das R-Register oder andere Register der Zentraleinheit erfolgt während der letzten Hälfte der Lesephase eines Speicherzyklus, wie es in Fig. 7 gezeigt ist.
Wiederholte Instruktionsausführung
Bei dem Streben nach vollständiger Wiederholbarkeit einer Funktion, bei deren Ausführung ein Fehler festgestellt wurde, sind sieben grundlegende Gesichtspunkte zu berücksichtigen:
1. Es muß eine Aufzeichnung der Funktion erfolgen, die zum Zeitpunkt der Fehlerentdeckung ausgeführt wurde.
2. Verbleibende Auswirkungen des Fehlers (z.B. ein Wort mit falscher Parität in einem Register) müssen gelöscht werden, um dadurch eventuell hervorgerufene weitere Fehleranzeigen zu verhindern.
3. Bestimmte Bedingungs- und Statusanzeiger im Gerät müssen auf die Stellung zurückgestellt werden, die sie zu einem vorhergehenden
909832/1242
Docket PO 967 043
Zeitpunkt innehatten, als das Gerät bekanntermaßen noch fehlerfrei arbeitete.
4. Alle Ursprungsdaten (d.h. alle Informationen in der Anlage, die als Eingabeinformation für die noch einmal auszuführende Funktion benutzt werden), die seit Beginn des vorhergehenden, erfolglosen Versuches der Instruktionsausführung geändert wurden, müssen wieder in dem Zustand verfügbar gemacht werden, den sie zu dem schon oben erwähnten Zeitpunkt der Fehlerfreiheit hatten.
5. Eine wiederholte Ausführung der Funktion muß versucht werden.
6. Jedes zur Erreichung obigen Zieles eingesetzte Gerät darf die Leistung der Datenverarbeitungsmaschine im Vergleich zum fehlerfreien Betrieb nicht herabsetzen.
7. Die wiederholte Ausführung der Instruktion muß selbst auch wiederholbar sein.
Grundsätzlich kann über die bisherigen Lösungsversuche der vorstehend genannten Probleme gesagt werden, daß die mit der Wiederherstellung der veränderten Bedingungen oder der Ursprungsdaten und der Rückstellung der Statusanzeige verbundenen Probleme ignoriert wurden oder mit Hilfe einer umfangreichen und zeitaufwendigen Programmiertechnik gelöst wurden. Außerdem setzen zahlreiche programmiertechnische Lösungsversuche dieser Probleme die normale Leistung einer Anlage herab und sind selbst nicht wiederholbar.
Wenn die Anordnung der Erfindung zum Bestandteil einer Datenverarbeitungsanlage wird, werden die oben aufgezählten sieben Gesichtspunkte durch Bauelemente der Anlage selbst berücksichtigt, ohne daß man auf die Programmierung zurückgreifen muß. Wenn eine vorübergehende Fehlerbedingung der
909832/1242
Docket PO 967 043
Anlage zur Entdeckung eines Fehlers führt, korrigiert das Bauelement in - der Anlage den Fehler so schnell, daß der Programmierer das Auftreten dieses Fehlers vollkommen unbeachtet lassen kann (man kann die Anlage jedoch auch zur Aufzeichnung jedes Fehlers für künftige Fehlersuche, Fehlerstatistik und dergleichen veranlassen). Die vorübergehenden Fehler werden vom Bauelement der Anlage mit einer solchen Geschwindigkeit korrigiert, daß mehrere Millionen vorübergehender Fehler auftreten müßten, um die gesamte Bearbeitungszeit einer Aufgabe, um auch nur eine Minute, zu verlängern.
Nachfolgend werden verschiedene Einzelheiten eines Ausführungsbeispiels der Erfindung, hauptsächlich im Zusammenhang mit den Fig. 8a bis 8f (nachfolgend zusammengefaßt als Fig. 8 bezeichnet) beschrieben, Fig. 8 zeigt Bauelemente, die für die Anordnung der Erfindung zusätzlich in das System eingebaut werden. Außerdem zeigt diese Figur bestimmte Bauelemente der bereits bekannten, in Fig. 1 gezeigten und oben beschriebenen Anordnung. Gleiche Bauelemente sind in den Fig. 1 und 8 mit denselben Nummern bezeichnet. Wenn in Fig. 8 einzelne Bauelemente zusammenhanglos erscheinen, so wird darauf hingewiesen, daß alle Bauelemente und Verbindungen, die in Fig. 1 gezeigt sind, auch für die Fig. 8 gelten sollen.
Funktionsanzeiger
Wie bereits gesagt, ist die erste Grundüberlegung bei einem Wiederholungsverfahren die Erstellung einer Anzeige der Funktion, die zum Zeitpunkt der Fehlerentdeckung gerade ausgeführt wurde. Vor einer Definition des Begriffes "Funktion" sollen zuerst die Ausdrücke "Instruktion" und "Operation" definiert werden. Unter einer Operation wird in der nachfolgenden Beschreibung jeder Schritt oder alle Schritte -verstanden der (die) von einem Rechner in einem Zyklus der Zentraleinheit ausgeführt werden kann (können). In der hier beschriebenen Anlage kann eine Operation auch definiert sein als das Äquivalent zu den Antworten der Rechenanlage auf ein Wort des.
Festwert-Steuerspeichers,
909832/1242 Docket PO 967 043
Eine Instruktion ist als eine Folge von Operationen definiert, die ein gegebenes Resultat erzeugen. Beispiele für Instruktionen sind: Addition, Subtraktion, Multiplikation, Devision, unbedingte und bedingte Verzweigung, Informationsübertragung von einem bestimmten Register in den Speicher, Verarbeitung von zwei Wörtern in einem UND-Glied usw. ( die Instruktion Multiplizieren kann z.B. durch Wiederholung der Operationen Addition und Verschiebung ausgeführt werden). Eine Funktion kann dann als eine Klasse von Operationsfolgen definiert werden, die durch eine gemeinsame Wiederholungssteuerung erfolgreich wiederholt werden kann. Sie ist durch die Verwendung einer gemeinsamen Anfangsfolgesteuerung gekennzeichnet. Die zur Wiederholung einer gegebenen Instruktion erforderlichen Steuerungsmaßnahmen hängen von der Funktion ab, die zum Zeitpunkt der Fehlerentdeckung gerade ausgeführt wurde. Dies ist insofern wichtig, als mehr als eine Funktion während der Ausführung einer Instruktion ausgeführt werden kann.
Für das vorliegende Ausführungsbeispiel können vier Grundfunktionen betrachtet werden: Laden, Warten, Status-Abruf und Normal. Das System tritt am Ende einer E/A-Routine, wenn der Kanal die Steuerungsaufgaben der Zentraleinheit überträgt, in die Ladefunktion ein, damit diese die Statusanzeigen speichert. Das System geht beim Eintritt "in den Warte zustand oder bei der Aufnahme eines externen Zeitgebers oder einer E-/A-Unterbrechung in die Wartefunktion, Das System übernimmt eine Abruffunktion am Anfang des Abrufes eines neuen Statuswertes während der Statusumschaltung. Das System geht am Ende einer Statusumschaltung oder Instruktionsausführung in die Normalfunktion·
Aue den obigen Definitionen der vier Funktionen geht grundsätzlich hervor, daß jede Funktion durch einen anderen Teil der Folgesteuerungen einer Rechneranlage gesteuert wird.
In Fig. 8e ist das Datenregister für den Lesespeicher (ROSDR) 310 mit den Docket PO 967 043 ' 9Q9832/1242
zugehörigen Decodern 25 und 26 gezeigt. In dem bekannten Grundsystem enthält jedes Lesespeicherwort 90 Informationsbits. Das ROSDR ist daher 90 Bits lang (mit den Positionen 0 bis 89). Der Decoder 25 decodiert die ersten 90 Positionen des ROSDR. In einem Ausführungsbeispiel der Erfindung enthält jedes ROS-Wort 10 weitere Informationsbits (mit Positionen 90 bis 99) und das ROSDR 310 wird bis auf ein hundertsteiliges Register erweitert. Der Decoder 26 dient der Decodierung der zusätzlichen ROSDR-Positionen. Um eine laufende Aufzeichnung der Funktion zur erhalten, die von der Zentraleinheit ausgeführt wird, ist ein Funktionsanzeiger 27 vorgesehen, der ein Speicherregister aus vier Kippschaltungen enthält. Von den vier Eingängen des Funktionsanzeigers ist jeder Kippschaltung einer zugeordnet. Jeder der Eingänge kann durch das Ausgangssignal des Decoders auf den Funktionsanzeiger geleitet werden, wenn dieser eineentsprechende Mikroanweisung decodiert, die aus dem ROS auf das ROSDR gegeben wurde. Jedes Wort im ROS, das einen Mikroauftrag enthält, der die Zentraleinheit dazu veranlaßt, mit der Ausführung einer neuen Funktion zu beginnen, enthält außerdem in den Bitpositionen 90 bis 99 einen Mikroauftrag, der eine auf den Funktionsanzeiger zu leitende Darstellung der entsprechenden Funktion hervorruft. Die Einstellung des Funktionsanzeigers 27 auf eine neue Funktion sollte durch eine Verzögerungseinrichtung 43 verzögert werden, damit die Fehlerprüf schaltung der Anlage genügend Zeit hat, um die richtige Ausführung der vorhergehenden Funktion zu überprüfen. Diese Vorsichtsmaßnahme ist erwünscht, da ein beim Ausführungsversuch einer Funktion aufgetretener Fehler gegebenenfalls erst nach Ausführungsbeginn der nächsten Funktion entdeckt wird. In diesem Fall wird eine andere Anzeige des Funktionsanzeigers 27 verhindert. Die Anlage kann dann die Funktion identifizieren, die nicht richtig ausgeführt wurde. Somit wird der Funktionsanzeiger 27 auf den neuesten Stand gebracht, wobei er die Funktion anzeigt, die gegenwärtig von der Zentraleinheit ausgeführt wird.
Bei dem oben beschriebenen Funktionsanzeiger steuert jedes Eingangssignal die Einstellung einer der vier Kippschaltungen. Um also alle Kippschal -
909832/1242
Docket PO 967 043
tungen zur Anzeige einer gegebenen Funktion einzustellen, muß der Decoder 26 grundsätzlich ein Signal auf eine Schaltung der Eingangs leitung geben, die jede Kippschaltung steuert. Da jede Funktion durch eine bestimmte Stellung aller vier Kippschaltungen angezeigt wird, müssen diese durch den Decoder 26 geschaltet werden, um die Funktionsanzeige einzustellen. In Fig. 8e wurde der Funktionsanzeiger 27 so dargestellt, als ob er einen gesteuerten Eingang für jede eventuell auftretende Funktion hätte. Es sei erwähnt, daß die Fig. 8 eine vereinfachte Darstellung des Funktionsanzeigers 27 und seiner Steuerungen darstellt. Die obige Beschreibung trifft daher genauer auf ein Ausführungsbeispieldes Funktionsanzeigers zu.
Das Ausführungsbeispiel des Funktionsanzeigers arbeitet darstellungsgemäß mit vier Kippschaltungen, durch die jedoch 16 verschiedene Zustände dargestellt werden können. In dem als Beispiel verwendeten Grundsystem werden jedoch nur vier verschiedene Funktionen angezeigt. Die Verwendung eines Funktionsanzeigers mit einer größeren Anzahl von Stellungen als Funktionen vorhanden sind, führt zu zwei wichtigen Vorteilen: Zuerst können auf einfache und billige Weise Fehleinstellungen des Funktionsanzeigers, z.B. durch eine fehlerhafte Kippschaltung, festgestellt werden. Dann wird dadurch auch eine Erweiterung der Anzahl der Funktionen ermöglicht, die das System ausführen kann, und die ebenfalls eventuell wiederholt werden müssen.
Nähere Einzelheiten des Funktionsanzeigers sind allgemein bekannt und werden nicht näher beschrieben.
In Fig. 9 ist das Datenregister des Festwertspeichers (Lesespeichers) gezeigt. Seine verschiedenen Steuerfelder sind hier auch gekennzeichnet. Die Funktion jedes der verschiedenen großen ROSDR-Felder ist in der folgenden Tabelle aufgeführt:
nnAQ 909832/1242
Docket PO 967 043
ROSDR ROSDR-Bit
P 0
LU 1-3
MV 4-5
ZP 6-11
ZF 12-15
ZN 16-18
TR 19-23
24
WS 25-27
SF 28-30
P 31
IV 32-34
AL
35-39
WM 40-43
UP 44-45
MD 46
LB 47 ·
MB 48
DG 49-51
UL 52-53
UR 54-55
P 56
CE 57-60
LX 61-63
TC 64
Funktion des Feldes Paritätsbit der Bits 0-30 linker Eingang zum Verschieber rechter Eingang zum Verschieber Bits 0-5 nächste ROS-Adresse Ursprung der Bits 6-9 der nächsten R OS-Adresse oder Funktions-Verzweigungssteuerung Adresssteuerfeld Bestimmung des Addiererinhalts frei
Ursprung der Arbeitsspeicheradresse Arbeitsspeicherfunktion Paritätsbit der Bits 32-55 ungültiger Zahlentest und Instruktions adresse-Registersteuerung Verschiebesteuerung und Durschaltung auf Addierer
Verschiebebestimmung Bytezähler-Funktionskontrolle MD -Zählersteuerung LB -Zählersteuerung MB-Zählersteuerung Längenzähler und Übertrags eins chubsteuerung
Verschiebefunktion - linke Zahl Schiebefunktion - rechte Zahl Paritätsbit der Bits 57-89 Ausgabefeld (als Daten verwendet) linker Eingang auf Addierer Echt-Komplement-Steuerung des linken Addierereingangs
Docket PO 967 909832/1242
ROSDR ROSDR-Bit Funktion des Feldes
RY 65-67 rechter Eingang auf Addierer
AD 68-71 ' Addiererfunktion
AB 72-77 Bedingungsverzweigungstest A (liefert Bit 10 der nächsten ROS-Adresse),
BB 78-82 Bedingungsverzweigungstest B (liefert Bit 11 der nächsten ROSA-Adresse),
83 frei
SS 84-89 Status einstellung und verschiedene Steuerungen, RC 90 -99 Wiederholungssteuerungen
Fig. 10 zeigt die Funktion der drei ROSDR-Feider, die in den zusätzlichen Positionen 90-99 des ROSDR stehen. Da jedes dieser Felder in zwei Betriebsarten, nämlich der Betriebsart der Zentraleinheit und der Wiederholungsart decodiert werden kann, kann es auch zwei Funktionen übernehmen. Die Bedeutung der zusätzlichen Felder wird im folgenden genauer beschrieben.
Wiederholungssteuerungen
Um eine Instruktion wiederholen zu können, .müssen oft Ursprungsdaten erhalten bleiben, die eventuell zwischen dem Ausführungsbeginn einer Instruktion und dem Zeitpunkt einer Fehlererkennung vernichtet wurden. Die Bezeichnung "Ursprungsdaten" bezieht sich auf jede Information (wie bei-
spielsweise Operanden, Status- und Steueranzeiger), durch welche die Funktion wirksam wird oder von der die Funktion zur vollständigen Ausführung abhängt, wobei eine Funktion oftmals auch eine Instruktion ist.
Zur Ermittlung, welche Daten erhalten bleiben müssen, werden zuerst die verschiedenen Instruktionen, welche die Rechenanlage ausführen kann, ana-. lysiert. Verschiedene Instruktionsgruppen, die durch das System ausgeführt werden, sind nachfolgend nur so weit gesprochen, wie sie zur Erläu-
909832/ 12 4 2 Docket PO 967 043
terung dieser Erfindung nötig sind.
Instruktionen: Verzweigung, Vergleich und RR-Laden
Durch die Ausführung dieser Instruktionen werden keine Ursprungsoperandenfelder zerstört. Die zur Wiederholung dieser Instruktionen notwendigen Ursprungsdaten umfassen die Instruktionsadresse und die Bedingungs codes, von denen einige Instruktionen bei ihrer Ausführung abhängen.
RR, RX, RS (Einwort-Qperand);
Diese Instruktionsgruppe umfaßt die Instruktionen UND, ODER und EXKLUSIV ODER und Addieren und Subtrahieren. Diese Instruktionen benötigen erste und zweite Operanden, rechnen und speichern die Ergebnisse auf der Adresse, die vorher vom ersten Operanden des Arbeitsspeichers belegt wurde. Wenn nach Speicherung des Ergebnisses ein Fehler festgestellt wird, kann die Instruktion erst wiederholt werden, wenn der erste Operand wieder in seinen vorherigen Wert zurückgewandelt wurde. Außerdem wird die Adresse der Instruktion benötigt.
RR, RX, RS (Doppelwort-Operand):
Zu dieser größeren Instruktionsklasse gehören auch alle Gleitinstruktionen,
Doppelschiebeinstruktionen sowie einige Multiplikations- und Divisionsinstruktionen. Bevor bei der Ausführung einer dieser Instruktionen ein Fehler entdeckt wird, können zwei Wörter von Ursprungs daten im Arbeitsspeicher zer-
PO 9-67-043 909832/1242
stört worden sein. Dann müssen beide Ursprungsdatenwörter wiederhergestellt werden, bevor die Instruktion wiederholt werden kann. Außerdem muß die Adresse dieser Instruktion wiederhergestellt werden.
In dem hier dargestellten System umfaßt diese Gruppe von Instruktionen nur die drei Instruktionen UND, ODER, und EXKLUSIV ODER. Wenn während der Ausführung einer dieser Instruktionen ein Fehler festgestellt wird, kann bereits ein Ursprungsoperand im Hauptspeicher gelöscht sein. Eine Möglichkeit, die Instruktion wiederholt auszuführen, bestünde darin, die Adresse des gelöschten Operanden sowie den Operanden selbst aufzubewahren, sie beide wiederherzustellen und dann einen neuen Versuch zu beginnen. Im hier beschriebenen Ausführungsbeispiel braucht die Operandenadresse nicht aufbewahrt zu werden, da der aufbewahrte Operand bei der Wiederholung selbst anstelle des gespeicherten Operandenwortes verwendet wird. Die Adresse der Instruktion wird jedoch weiter benötigt.
Diese Gruppe von Instruktionen umfaßt acht dezimale Instruktionen. Zur Zeit einer Fehlerentdeckung können bereits bis zu 16 Bytes mit Ursprungsoperanden gelöscht sein. Obwohl pro Speicherwort nur vier Bytes vorhanden sind, können die gelöschten Ursprungsoperanden bis zu einer Länge von fünf Wör-
PO 9-67-043 . 909832/1242
tern gelöscht sein. Der gelöschte Ursprungsoperand kann z. B. aus einem Byte eines ersten Wortes, allen Bytes des zweiten, dritten und vierten Wortes und drei Bytes des fünften Wortes bestanden haben. Außerdem wird auch noch die Instruktionsadresse benötigt.
SS Veränderliche Feldlange
Während der Ausführung einer dieser Instruktionen können zum Zeitpunkt der Fehlerentdeckung bis zu 256 Bytes des Ursprungsoperanden verändert worden sein. Außer den Ursprungs Operanden müssen aber auch noch Instruktionsadresse, Systemzustand und Steueranzeiger gespeichert werden.
Ein-/Ausgabe (E -/A)
Durch das hier beschriebene Gerät sind Eingabe-/AusgabeInstruktionen bis zu einer gewiesen Grenze wiederholbar. Von diesem Grenzpunkt an müssen sie unter Verwendung zwischengeschalteter Programmschritte wiederholt werden, da eventuell eine physikalische Bewegung der Eingabe-/Ausgabeeinheiten, wie Bandspeicher, Kartenleser und dgl., erforderlich ist, um die Daten wiederherzustellen. Wenn eine zusätzliche Programmierung zu diesem Zwecke verwendet wird, liefert das System eine gültige Einheiten-Adresse, eine Kommandoadresse und einen Positionscode für die Programmierung.
In den Figuren 8a bis 8f sind verschiedene Bauelemente gezeigt, die zusatz -
PO 9-67-043 909832/1242
lieh in das in Figur 1 dargestellte System eingebaut werden müssen, um eine Instruktion noch einmal auszuführen. Die in den Figuren 8a bis 8e gezeigten Baueelemente sind über die vorher im Zusammenhang mit Figur 1 beschriebenen Datenwege verbunden. Die in Figur 8f gezeigten Einzelelemente befinden sich in Datenwegen, die für die Steuerung der wiederholten Ausführung zusätzlich vorgesehen wurden. Durch bestimmte Linien in Figur 8, die den Datenfluß zwischen den einzelnen Bauteilen der Anlage darstellen, sind rechtwinklig kreuzende Linien gezogen. Diese Linien stellen Schaltungen dar, die zur Steuerung der Informationsübertragung zwischen den einzelnen Teilen der Anlage dienen. Alle derartigen, in Figur 8 gezeigten, Schaltungen, mit Ausnahme der später genauer besprochenen Schaltung 42 in Figur 8e, werden durch die Wiederholungssteuerungen eingeschaltet.
Um die Adresse einer Instruktion, die eventuell wiederholt werden muß, zu erhalten, ist ein zusätzliches Instruktionsadressregister 29 vorgesehen. Eine weitere, für die Wiederherstellung der Ursprungs daten und/oder wiederholte Ausführung der Instruktion, benötigte Adresse ist die Arbeitsspeicheradresse, die im LSAR 120 enthalten war und eventuell vor Entdeckung eines Fehlers gelöscht wurde. Um die Arbeitsspeicheradresse zu bewahren, ist ein LSAR-Rückgriffspeicher 33, auch Zusatzspeicher genannt, vorgesehen. Für den Fall daß Daten in den Arbeitsspeicher 13 zurückgespeichert werden müssen, ist ein LS-Puffer 41 vorgesehen. In dem hier beschriebenen System benötigt der LS-Puffer 41 nur eine Länge von einem Wort. Um Daten im Hauptspeicher 12
PO9-67-043 ■ 909832/1242
wiederherzustellen, ist ein Speicherdaten-Rückgriff speicher 32 vorgesehen. Wenn Ursprungsdaten im Hauptspeicher 12 wiederhergestellt werden müssen, wird die Schaltungsanordnung 31 verwendet, die einen Puffer und eine Anzeigeeinrichtung besitzt, die anzeigt, wo Wörter in dem Puffer gespeichert sind. Um Systemstatusanzeigen zu erhalten, auf die sich eine zu wiederholende Instruktion verlassen muß, ist ein Bedindungscode-Zusatzregister 34 vorgesehen. In dem hier beschriebenen System umfaßt der Bedingungscode die Bitpositionen 34 und 35 im PSW-Register 51 (PSW = Programmstatuswort).
Damit zum ROS und ROSDR möglichst wenig zusätzliche Bitpositionen hinzugefügt werden müssen, sollen die in den zusätzlichen Felder enthaltenen Mikroinstruktionen so dekodiert werden können, daß sie zu verschiedenen Zeitpunkten verschiedene Operationen durchführen. Zu diesem Zweck ist eine Wiederholungskippschaltung vorgesehen, die durch das Aus gangs signal des Dekoders 26 ein- und ausgeschaltet werden kann. Das entsprechend verzögerte Ausgangssignal der Wiederholungskippschaltung 28 zeigt die Betriebsart an, in der die Anlage läuft- und beeinflußt die Art, in welcher Mikroinstruktionen dekodiert werden. Dieser Vorgang ist symbolisch in Figur 8e dargestellt, wo das Ausgangssignal der Wiederholungskippschaltung 28 auf den Eingang des Dekoders 26 gegeben wird. Die Wiederholungskippschaltung kann durch den Dekoder 26 auch eingeschaltet werden, wenn keine Fehlerbedingung vorliegt, Diese Einschaltung kann erfolgen, wenn die andere Dekodierart des Dekoders 26 eingeschaltet werden soll. Um genau verfolgen zu können, ob zum Zeitpunkt einer
po 9-67-043 909832/1242
Fehlerentdeckung, Informationen in dem Arbeitsspeicher oder in dem Hauptspeicher regeneriert wurden, sind ein Arbeitsspeicher-Regenerationstrigger 35 und ein Hauptspeicher-Regenerationstrigger 36 vorgesehen. Für den Fall, daß eine Wiederholung verhindert und eine normale Maschinenprüfunterbrechung (MCI) unter gewissen Bedingungen durchgeführt werden soll, ist ein MCI-Trigger 37 vorgesehen. Der MCI-Trigger 37 kann durch die Mikroinstruktionen, die für die Wiederholungssteuerung hinzugefügt wurden, ein- und ausgeschaltet und geprüft werden. Da keine Ursprungsdaten wiederhergestellt werden müssen, wenn sie nicht tatsächlich vor einer Fehlerentdeckung verändert wurden, sind außerdem ein Hauptspeicher-Ursprungsdatentrigger (MS SDC) 38 und ein Arbeitsspeicher-Ursprungsdatenänderungstrigger (LS SCD) 39 vorgesehen. Die beiden Trigger 38 oder 39 werden durch das Ausgangssignal des Dekoders 26 eingeschaltet, wenn bei einer Instruktionsausführung Ursprungs daten verändert werden. Zu Beginn der Ausführung irgend einer Instruktion werden die SDC-Trigger zurückgesetzt. Da auch beständige Fehler den Versuch einer wiederholten Instruktionsausfübrung einleiten, ist ein Fehlerzähler 44 und ein n-ter Fehlertrigger 40 erwünscht, welche anzeigen, daß die Ausführung einer Instruktion eine vorgegebene Anzahl (n) von Malen versucht wurde. Nachdem die wiederholte Ausführung der Instruktion η mal versucht wurde, wird der Fehler als fester Fehler angenommen und es erfolgt eine Maschinenprüfunterbrechung. In das Ausführungsbeispiel der Erfindung ist außerdem am Ausgang des ROSDR 310 eine Sperr schaltung 42 eingebaut. Für den FaU, einer Fehlerentdeckung dient diese Sperr schaltung 42 als Teil der Einrichtung, die die Wie-
PO 9-67-043 909832/1242
derholungssteuerung dazu veranlaßt, die Steuerung der Datenverabeitungsanlage zu übernehmen. In der Grundanlage werden Fehler nur zu einer bestimmten Zeit im Zyklus der Zentraleinheit durch ein Fehlerprüfsignal (siehe Fig. 3) entdeckt, welches die verschiedenen Fehler-Kippschaltungen abfragt. Aus diesem Grund wird ein Fehler, der spät in einem Zyklus der Zentraleinheit aufgetreten ist, erst im folgenden Zyklus entdeckt. Damit die Wiederholungssteuerungen wirksam werden können, müssen Einrichtungen vorgesehen werden, die es den WiederholungsSteuerungen ermöglichen, Ursprungsdaten und eine Anzeige einer Funktion so lange zu erhalten, bis bekannt ist, daß die vorhergehende Funktion erfolgreich abgeschlossen wurde. In dem hier beschriebenen Ausführungsbeispiel umfassen die erwähnten Einrichtungen ein Verzögerungseinrichtung 43, die am Ausgang des Dekoders 26 angeschlossen ist. Die Verzögerungseinrichtung 43 verzögert das Ausgangssignal 26 so lange, bis alle gegebenenfalls im vorhergehenden Zyklus der Zentraleinheit aufgetretenen Fehler entdeckt sind.
Arbeitsweise
Allgemeines
Wenn ein gegebenenfalls im vorhergehenden Zyklus der Zentraleinheit aufgetretener Maschinenfehler vorliegt, wird dieser kurz hinter der Hälfte eines Zyklus oder Zentraleinheit entdeckt, wenn ein Fehlerprüfsignal (siehe Fig. 3) die verschiedenen Fehler-Kipp schaltungen der Anlage abfragt. Dieses Signal
POSMS7-043 , 909832/1242
- ώθ -
wird unmittelbar nach der Hälfte eines Zyklus der Zentraleinheit erzeugt. Wenn Maschinenfehler auftreten, erscheint ein Fehlersignal. Dieses Fehlersignal überträgt die Steuerung des Datenverarbeitungssystems auf die Wiederholungssteuerung. Im hier beschriebenen Ausführungsbeispiel erfolgt die grundlegende Wiederholungssteuerung in einem Festwert-Steuerspeicher (ROS), beginnend in der ROS-Stelle 0. Um das System zu veranlassen, das nächste Kommando von der ROS-Stelle 0 abzurufen, wird das Fehlersignal auf eine in Figur 8e gezeigte Sperr schaltung 42 gegeben, die verhindert, daß der Inhalt des ROSDR 310 auf die zugehörigen Dekoder 25 und 26 gelangt. Das Fehlersignal stoppt außerdem den Taktgeber der Zentraleinheit für einen Zyklus dieser Einheit. Somit wird während des Zyklus der Zentraleinheit, der eine Fehlerentdeckung folgt, keine Information auf das ROAR geleitet. Diese Bedingung wird vom ROAR wie lauter "Nullen" ausgelegt. Dadurch wird das zu der ROS-Adresse "Null" gehörende Wort in das ROSDR gebracht, damit die Widerholungssteuerung die Steuerung des Systems übernimmt. Im Ausfuhrungsbeispiel der Erfindung werden mit Hilfe des Fehlersignales außerdem die Wiederholungs-Kippschaltungen eingeschaltet, damit der Dekoder 26 die Mikroinstruktionen in der Wiederholungsbetriebsart dekodiert. Außerdem schaltet das Fehlersignal noch den Fehlerzähler 39 in Figur 8f weiter. Die Wiederholungssteuerung prüft dann den MCI-Trigger 37 und den η-ten Fehlertrigger 40 auf den Einschaltzustand. Diese Prüfungen können auf die übliche Art erfolgen. Der MCI-Trigger wird eingeschaltet, wenn aus irgend einem Grund keine Wiederholung gewünscht wird. Der n-te Fehlertrigger wird auf
po 9-67-043 · 909832/12A2
die Abgabe eines Signales für einen andauernden Fehler gesetzt, wenn die Wiederholung einer Funktion, bei deren Ausführung ein Fehler entdeckt wurde, η-mal versucht wurde. Wenn keiner dieser beiden Trigger eingeschaltet ist, erfolgt eine Maschinenprüfunterbrechung in der bisher allgemein üblichen Art.
Die Wiederholungs steuerung schaltet dann verschiedene bleibende Wirkungen aus, die auf den entdeckten Fehler zurückzuführen sein können. Während dieser Zeit sollen allgemein die Datenfehlanzeigen (die z. B. durch momentan falsche Daten in einem Register verursacht werden) unberücksichtigt bleiben, und das zwischenzeitliche Einbrechen von E-/A-Anfragen verhindert werden. Dies erfolgt durch Einschalten eines Ignorierungs-Fehlertriggers, der in bekannten Systemen schon verwendet wird, und durch Benutzung des Aus gangssignales der Wiederholungskippschaltung 28 zum Sperren eines E-/A-Einbruchs. Die Register H, L, M und R, werden dann gelöscht, um alle eventuell darin stehenden fehlerhaften Daten zu entfernen. Nach diesem Zeitpunkt wird der Ignorierungs-Fehlertrigger wieder abgeschaltet, damit künftige Fehleranzeigen die Wiederholungssteuerung wieder anlaufen lassen können und so ein neuer Speicherzyklus beginnt. Wenn der entdeckte Fehler während eines Speicherzyklus auftrat, wurde der Hauptspeicher-Regenerationstrigger 36 eingeschaltet. Wenn dieser Trigger nicht eingeschaltet ist, setzt die Wiederholungssteuerung das Speicheradressregister 90 in Figur 1 zurück. Wenn der Trigger dagegen eingeschaltet ist, wird das im Speicherdatenzusatz register 32 (Figur 8b) stehende Wort in den Hauptspeicher geschrieben. Alle weiteren von Datenverarbeitungsanlage festgestellten Fehlerbedingungen führen zu einer
PO9-67-043 909832/1242
'. Wiederholung der obigen Schritte, (d.h. Wiederholungs-Kippschaltung setzen, Fehlerzähler weiters ehalten, nächstes Steuerwort von der ROS-Stelle 11NuU.11 holen usw.).
Diese Fähigkeit der Wiederholungssteuerung, an Punkten "wieder einzusteigen", die in ihr selbst liegen, ist eines der Hauptmerkmale der Wiederholungssteuerung. Durch dieses Merkmal kann die-Wiederholungssteuerung die Auswirkungen von Maschinenfehlern überwinden, die auftreten können, während die Wiederholungssteuerung die Datenverarbeitungsanlage steuert. Außerdem kann durch dieses Merkmal die Wiederholungssteuerung die Auswirkungen von Fehlerbedingungen, auch vorübergehender, überwinden, die in verschiedenen Maschinenzyklen auftreten. Ein Fehler wird erst als dauern eingestuft und eine Maschinenprüfunterbrechung eingeleitet, wenn die Wiederholung einer Maschinenfunktion, in deren Ausführung ein Fehler entdeckt wurde, eine vorgegebene Anzahl von η Malen versucht wurde.
Der nächste von der Wiederholungssteuerung auszuführende Schritt ist die Abfrage des Arbeitsspeicher-Regenerationstriggers 35, um festzustellen, ob der entdeckte Fehler während eines Zyklus des Arbeitsspeichers auftrat. Wenn der Arbeitsspeicher-Regenerationstrigger 35 gesetzt ist, wird das im LS-Puffer 41 gespeichert Wort zu dem R-Register 124 übertragen, von wo es in den Arbeitsspeicher 13 zurückgesetzt wird.
PO9-67-043 909832/1242
Bis zu diesem Zeitpunkt führt die Wiederholungs steuerung die oben aufgeführten Schritte ungeachtet der Funktion durch, welche die Anlage zum Zeitpunkt der Fehlerentdeckung ausführte. Nach diesem Zeitpunkt hängen die von der Wiederholungssteuerung auszuführenden Schritte von der Funktion ab, die zum Zeitpunkt der Fehlerentdeckung ausgeführt wurde. Wie unter der Überschrift "Funktionsanzeiger11 bereits beschrieben wurde, treffen für das vorliegende Grundsystem vier Funktionen zu: Laden, Warten, Abruf und Normal. Durch eine Prüfung des Funktionsanzeigers 27 stellt die Wiederholungssteuerung fest, welche Funktion gerade verarbeitet wurde. Die folgenden vier Abschnitte beschreiben die durch die Wiederholungs steuerung, abhängig von der durch den Funktionsanzeiger angegebenen Funktion, auszuführenden Operationen.
Normalfunktion
Wenn der Funktionsanzeiger 27 auf Normal steht, fragt die Wiederholungssteuerung den Arbeitsspeicher-Ursprungsdaten-Änderungstrigger (LS SDC) 39 ab, um festzustellen, ob im Arbeitsspeicher 13 enthaltene Ursprungs-Operanden geändert wurden. Wenn der LS SDC Trigger 39 gesetzt ist, werden Arbeitsspeicher-Ursprungsoperanden aus dem in Figur 8b gezeigten Puffer 31 zurückgespeichert. Nach Rückspeicherung der Ursprungsoperanden in den Arbeitsspeicher (oder unmittelbar nach Prüfung des LS SDC Triggers 39, wenn dieser ausgeschaltet war) veranlasst die Wiederholungs steuerung die
PO9-67-043 909832/12A2
Übertragung der Adresse der Originalinstruktion vom Instruktions-Adressregister 29 auf das in Figur 8a gezeigte Instruktionsadressregister 218 und die Übertragung des im Bedingungskode-Rückgriffregister 34 enthaltenen Bedingungskode zu den Bit-Positionen 34 und 35 des PSW Registers 51 in Fig. 8d. Die Wiederholungssteuerung schaltet dann die Wiederholungskippschaltung zurück und gibt die Steuerung der Datenverarbeitungsanlage an den Teil der Zentraleinheit zurück, der sie zurückruft und versucht, die im Instruktions adressregister 218 bezeichnete Instruktion auszuführen. Hierbei handelt es sich um dieselbe Instruktion, die die Anlage vorher auszuführen versuchte. Die Art, in der Instruktionen von einer Datenverarbeitungsanlage abgerufen, dekodiert und ausgeführt werden, ist in der Literatur hinreichend beschrieben.
PO 9-67-043 909832/1242
Statusabruf
Wenn ein Fehler während des Versuches, ein neues PSW (Programmstatuswort) abzurufen, entdeckt wurde, wird die Adresse des neuen PSW im Arbeitsspeicher 13 an der Stelle 2 gespeichert. Die Wiederholungssteuerung adressiert die Adresse des neuen PSW, schaltet die Wiederholungskippschaltung 28 zurück und ruft das PSW ab und lädt es. Da die Funktion jetzt beendet ist, setzt die Wiederholungssteuerung dann den Funktionszeiger 27 auf Normal, schaltet die Trigger 35 bis 38 zurück und den Fehlerzähler 39 auf Null. Die Steuerung der Anlage wird dann der Zentraleinheit zurückgegeben, damit diese die vom PSW vorgeschriebenen Instruktionen abruft, deren Adresse im IA-Register 218 steht.
Wartefunktion
Wenn der Funktionsanzeiger 27 die Wartefunktion anzeigt, speichert die Wiederholungssteuerung zuerst den vorherigen Inhalt des IA-Registers 218 und der CC Bits des PSW-Registers 51 aus den entsprechenden Zusatzregistern 29 und 34 zurück und schaltet dann die Wiederholungskippschaltung 28 zurück. Der Funktions anzeiger 27 wird auf die Warteanzeige gesetzt, die Trigger 35 bis 39 und" der Fehlerzähler 44 werden zurückgesetzt und dann wird die Steuerung der Datenverarbeitungsanlage an die Zentraleinheit zurückgegeben.
Ladefunktion
Am Ende der Standard E-/A-Laderoutine wurde der Funktionsanzeiger 27 zu einem Zeitpunkt auf Laden gesetzt, als der Kanal Daten auf die Register L, R und M speicherte und die Steuerungsaufgabe der Zentraleinheit übertrug, damit diese den Status im PSW Register 51 speichern
909832/1242
PO 9-67-043
kann. Zur selben Zeit als der Status in den Registern L, R und M gespeichert wurde, wurde er auch in dem Puffer 31 gespeichert. Wenn die Ladefunktion angezeigt wird, veranlaßt die Wiederholungssteuerung eine Rückspeicherung der Statusinformation aus dem Puffer 31 in die Register L, R und M. Der vorherige Inhalt des IA-Registers 218 und der CC Bits des PSW Registers 51 werden aus den entsprechenden Rückgriffregistern 29 (Fig. 8a) und 34 (Fig. 8d) zurückgespeichert. Dann wird die Wiederholungskippschaltung 28 zurückgesetzt und die Steuerung der Datenverarbeitungsanlage zur Wiederholung der Ladefunktion an die Zentraleinheit zurückgegeben.
In der obigen Beschreibung der wiederholten Ausführung verschiedener Funktionen durch die Datenverarbeitungsanlage wurde nicht versucht, die wiederholte Ausführung jeder einzelnen Instruktion durch die Datenverarbeitungsanlage herauszuschneiden. Wie allgemein bekannt ist, benutzen unterschiedliche Datenverarbeitungsanlagen unterschiedliche Instruktions sätze, die in verschiedene Funktionsgruppen unterteilt werden können. Die obige Beschreibung der Arbeitsweise der einzelnen Bauelemente, auf denen das Ausführungsbeispiel besteht, ist zusammen mit den allgemeinen Grundkenntnissen über Datenverarbeitungsanlagen ausreichend, um dem Fachmann die Verwirklichung der Erfindung bei Datenverarbeitungsanlagen unterschiedlicher Struktur zu gestatten.
Bei der obigen Beschreibung der von der Wiederholungs steuerung ausgeführten Schritte wurde angenommen, daß die sequentielle Ausführung dieser Schritte nicht von Fehlerbedingungen unterbrochen wurde. Wenn dabei jedoch eine Fehlerbedingung aufgetaucht wäre, so würden die Schritte der Wiederholungs steuerung noch einmal von vorne beginnen. Somit hat jedes Teil der Zentraleinheit Zugang zur Wiederholungs steuerung und auch diese kann sich selbst ansteuern. Diese Möglichkeit noch einmal von Fehler punkten zu beginnen, die entdeckt werden, während die Wiederholungssteu-
909832/1242
PO 9-67-043
erung die Datenverarbeitung sanlage steuert, ist ein wesentlicher Vorteil der vorliegenden Erfindung.
Die Erfindung kann natürlich auch in einer Datenverarbeitungsanlage mit herkömmlicher Folgesteuerung verwendet werden, die keinen Festwertspeicher enthält. In einem solchen Fall ist grundsätzlich eine Erweiterung der Steuerschaltung des Systems erforderlich. Diese Erweiterung ist nötig, damit alle Informationen erhalten bleiben können, die zur wiederholten
da Ausführung der Instruktion erforderlich sind, ohne daßwurch der normale fehlerfreie Betrieb des Systems beeinflußt wird. Um Ursprungs daten ohne Beeinflussung der Systemleistung zu erhalten, müssen diese Operationen parallel zu der normalen Operation der Maschine erfolgen. Deswegen ist deren Steuerschaltung ebenfalls zu erweitern. Bei Entdeckung eines Fehlere kann dann das System mit der herkömmlichen Unterbrechungstechnik in den Wiederholungsbetrieb gehen und alle zur Wiederholung der Funktion, bei deren Ausführung der Fehler entdeckt wurde, notwendigen Rückspeicherschritte ausführen.
Sei einem anderen Ausführungsbeispiel der Erfindung ist in dem Datenverarbeitungssystem, dessen Grundaufbau bekannt ist, eine Schaltungsanordnung zur Fehlerkorrektur vorgesehen, die mit dem Hauptspeicher und dem Arbeitsspeicher zusammenarbeitet. Die Fig, Il und 12 zeigen diese Schaltungen.
In
UTig. 11 ist eine Schaltungsanordnung zur Fehlerkorrektur dargestellt, die dem Hauptspeicher des Datenve-'-arbeitungssystems zugeordnet ist. Zusätzlich zu den verschiedenen Bauelementen, die bereits beschrieben wurden (und die auch eine gleichlautende Bezeichnung wie die bereits beschriebenen besitzen), ist ein Fehlerkorrekturspeicher EC45 vorgesehen, dem ein Speicheradressenregister 46 zugeordnet ist. Wegen der Bedingungen für die Zeitsteuerung innerhalb des Grundsystems ist die Taktierung des EC-
90 9832/1242
PO 9-67-043
-OD-
Speichers 45 gegenüber der Taktsteuerung des Hauptspeichers 12 um einen Zeitbetrag verschoben, welcher der Zeit entspricht, die für die Erzeugung, der Fehlerkorrekturinformation benötigt wird. Mit dem EC-Speicher 45 sind die Speicherdatenregister 47 und 48 verbunden. Zur Errechnung redundanter Bits, die in dem Fehlerkorrekturprozess verwendet werden und zur Durchführung der Fehlerkorrektur ist ferner noch ein EC-Generator und -korrektur-49 vorgesehen. Diese Einheit 49 erzeugt gemäß einem vorgegebenen Fehlerkorrekturcode redundante Bits für die Verwendung bei der Fehlerkorrektur, wenn die Information auf ihrem Weg zu dem Speicher durch diese Einheit hindurchläuft. An Stelle einer einzigen Einheit 49 können auch zwei verschiedene Einheiten für .die Erzeugung der redundanten Bits und für die Korrektur fehlerhafter Speicherwörter verwendet werden.
Speichern
Bei einer Speicheroperation werden die Daten im SDR 91 unverändert über dem EC-Generator und -korrektor 49 zu dem Hauptspeicher 12 übertragen. Ferner werden die Daten im SDR 91 zu dem EC-Generator und -korrektor 49 übertragen, welcher eine Fehlerkorrekturinformation (ECl) erzeugt. Die Fehlerkorrekturinformation wird dann zu dem Fehlerkorrektur-Speicherdatenregister EC SDR übertragen und von dort zu dem EC-Speicher 45 weitergeleitet und in einem Speicherbereich abgespeichert, welcher von dem Fehlerkorrektur-Speicheradressenregister EC SAR 46 angegeben wird. Die Fehlerkorrekturinformation kann dann dazu dienen, Fehler bei den gespeicherten Daten zu korrigieren. Bei einem Ausführungsbeispiel dieser Erfindung sind die Speicher 12 und 45 identische Magnetkernspeicher. Das EC-SAR 46 adressiert den Fehlerkorrekturspeicher EC45 mit der gleichen Adresse, die im Speicheradressenregister SAR 90 enthalten ist. Alle oben genannten Operationen werden in der gleichen
909 832/1 24 2
PO 9-67-043
Weise gesteuert, wie die in den früheren Abschnitten beschriebenen Operationen.
Wenn Information vom Hauptspeicher MS12 abgerufen wird, verläuft sie über den dargestellten Datenweg zu dem Speicherdatenregister SDR 91 und zu dem Speicherdatenregister-Pufferspeicher SDR BU 32« Außerdem wird die Fehlerkorrekturinformation, die dem Wort entspricht, welches vom Hauptspeicher 12 abgerufen wurde, von dem EC-Speicher 45 ausgelesen und zu dem Fehlerkorrektur-Speicherdatenregister EC SDR 47 und zu dem zugeordneten Puffer EC SDR BU 48 übertragen. Die Daten im SDR 91 werden zu dem EC-Gene ator und -korrektor 49 übertragen, wobei die Fehlerkorrekturinformation ECI erneut erzeugt wird. Die für das im SDR 91 enthaltene Wort erzeugte Fehlerkorrekturinformation wird mit der Fehlerkorrekturinformation verglichen, die sich im EC-SDR 47 befindet. Wenn beide Informationen gleich sind, wird das abgerufene Wort als korrekt angenommen. Wenn sie nicht gleich sind, wird ein Fehler schalter eingestellt und die WiederholungsSteuerungen übernehmen die Steuerung des Datenverarbeitungssystems. Damit der EC-Generator und -korrektor 49 dasjenige Bit (oder diejenigen Bits), das fehlerhaft ist, bestimmen kann, wird die im EC SDR BU 48 enthaltene Fehlerkorrekturinformation und das im SDR 32 befindliche Datenwort zu dem EC-Generator und -korrektor 49 übertragen. Diese Einrichtung 49 zeigt eine Anzeige, welche der Bits fehlerhaft sind. Das im SDR BU 32 befindliche Wort wird über die Einheit 49 korrigiert und in den Hauptspeicher 12 zurückgespeichert. Eine geeignete ECI wird von dem Korrektor in der Einheit 49 zu dem DC SDR 47 und von dort zu dem EC-Speicher 45 übertragen. Die Funktion, bei deren Ausführung der Fehler ermittelt wurde, kann nun wiederholt werden.
909832/1.2 42
PO 9-67-043
Fig. 12 zeigt eine ähnliche Fehlerkorrektur anordnung für den Arbeitsspeicher LS 13. Sobald Daten vom L-Register 126 oder vom R-Register 124 zu demA beitsspeicher 13 übertragen werden, werden diese Daten auch zu einem EC-Generator und -korrekter 74 übertragen, welcher die Fehlerkorrekturinformation ECI erzeugt und zu dem Fehlerkorrektur-Speicherdatenregister des Arbeitsspeichers LS EC SDR 73 überträgt. Von hier wird die Fehlerkorrekturinformation zu dem Arb eit s sp ei cher-Hilfs spei eher LS EC 72 übertragen. Die Zeitsteuerung des. LS EC 72 ist gegenüber der Taktierung des Arbeitsspeichers 13 um diejenige Zeitspanne "verschoben, die für die Erzeugung der Fehlerkorrekturinformation ECI benötigt wird.
Wenn Informationen aus dem Arbeitsspeicher 13 entweder zu demvKegister 126 oder zu dem R-Register 124 ausgelesen wird, dann -wird sie auch in den Pufferspeicher^ 1 des Arbeitsspeichers übertragen. Gleichzeitig wird die im LS EC-Speicher 72 enthaltene Fehlerkorrekturinformation auch zu dem Fehlerkorrektur-Speicherdatenregister des Arbeitsspeichers LS EC SDR 73 übertragen. Die im Ptfferspeicher 41 enthaltenen Daten werden zu dem Generator 74 übertragen, in welchem die Fehlerkorrektur info rmation erneut errechnet und mit der Fehlerkorrekturinformation verglichen wird, die sich in dem LS EC SDR 73 befindet.
Wenn beide Informationen gleich sind, dann werden die vom Arbeitsspeicher 13 ausgelesenen Daten als korrekt angenommen. Wenn die beiden
die
Fehlerkorrekturinformationen dagegen ungleich sind, dann werden im LS-Pufferspeicher 41 enthaltenen Daten in der gleichen Weise korrigiert, wie sie bereits im Zusammenhang mit der Korrektur der Daten des Hauptspeichers 12 anhand der Fig. 11 beschrieben wurde. Die korrigierten Daten werden dann über das R-Register 124 in den Arbeitsspeicher 13 zurückgespeichert. Auch die Fehlerkorrekturinformation ECI wird wieder im LS EC Speicher 72 gespeichert.
909832/1242
PO 9-67-043
Mit dieses Fehlerkorrekturanordnungen, die in den Fig, Il und 12 dargestellt sind, ist das beschriebene System in der Lage, sich von Fehlern zu befreien, die durch intermetierende Fehlleistungen von Bits im Hauptspeicher oder im Arbeitsspeicher verursacht werden.
909832/1242
PO 9-67-043

Claims (18)

«it* ■■■ ■ - 40 PATENTANSPRÜCHE
1. Anordnung für die wiederholte Ausführung fehlerhaft ausgeführter Funktionen in einem digitalen Datenverarbeitungssystem mit Schaltungen zur Folgesteuerung, Wiederholungssteuerung und Fehlererkennung, dadurch gekennzeichnet, daß jeweils ein. Rückgriffspeicher (29, 31, 32, 33, 41, 120, 34; Fig. 8) über Torschaltungen mit dem Instruktioris-Adressenregister (218), dem Speicherdatenregister, dem Hauptspeicher, dem Arbeitsspeicher-Adressenregister (120), dem Arbeitsspeicher (13) und dem Programmstatuswort-Register (51) verbunden ist, wobei die. T or schaltungen von der Wiederholungs steuerung
" (300, 310, 26, 43, 28) derart steuerbar sind,- daß die Ursprungsdaten
für die Ausführung der Funktionen mindestens solange unverändert aufbewahrt bleiben, bis eine Funktion fehlerfrei ausgeführt wurde·
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß ein Anzeigeschalter (35; Fig, 8f)" vorgesehen ist, welcher im Fehlerfalle während des Speicherzyklus eines Speichers (z.B. 13) eingeschaltet wird und damit anzeigt, daß der zugeordnete Speicher der Datenursprung ist.
3. Anordnung nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß der einem Speicher (z.B. 13, Fig. 8c) zugeordnete Rückgriff speicher (51) die von dem Speicher abgerufenen Daten unverändert zwischenspeichert und während einer Wiederholungsphase seinen Inhalt wieder in den Speicher zurückspeichert, wenn der Anzeigeschalter (35; Fig. 8f) eingeschaltet ist.
4. Anordnung nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, daß die Folgesteuerung (300, 310, 26; Fig. 8e) Aus gangs signale erzeugt, welche die Funktionen (z.B. Laden, Warten, Statusabruf, Normal) repräsentieren und daß ein Funktionsanzeiger (27) vorgesehen ist, welcher die Funktionssignale speichert.
Docket PO 967 043 909832/1242
5. Anordnung nach Anspruch 4, dadurch gekennzeichnet, daß die Funktionssignale über Torschaltungen zu dem Funktionsanzeiger (27; Fig. 8e) übertragen werden, wobei die Torschaltungen von den Wiederholungs-Steuer Signalen betätigt werden.
■6. Anordnung nach den Ansprüchen 4 und 5, dadurch gekennzeichnet, daß am Ausgang der Wiederholungssteuerung eine Verzögerungs schaltung (43; Fig. 8e) vorgesehen ist, welche die Wiederholungs-Steuersignale so verzögert, daß eine Veränderung der gepufferten Daterßolange verhindert wird, bis feststeht, daß die vorhergehende Funktion korrekt ausgeführt wurde.
7. Anordnung nach den Ansprüchen 1 bis 6, dadurch gekennzeichnet, daß Anzeigeschalter (38, 39; Fig. 8f) vorgesehen sind, die im Fehlerfalle anzeigen, daß die Daten im zugeordneten Datenursprung (z.B. Hauptspeicher 12, Arbeitsspeicher 41} verändert wurden.
8. Anordnung nach den Ansprüchen 1 bis 7, dadurch gekennzeichnet, daß ein Schalter (37; Fig. 8f) vorgesehen ist, welcher, je nach Einstellung, die Wiederholung einer Funktion sperrt.
9. Anordnung nach den Ansprüchen 1 bis 8, dadurch gekennzeichnet, daß der Funktionsanzeiger (27; Fig. 8e) die Auswahl der Steuerung für die Wiederholung einer bestimmten Funktion vornimmt.
10. Anordnung nach den Ansprüchen 1 bis 9, dadurch gekennzeichnet, daß die Wiederholungssteuerung die Wiederholung einer Funktion erneut ausführt, wenn zuvor wieder ein Fehler entdeckt wurde.
11. Anordnung nach den Ansprüchen .1 bis 10, dadurch gekennzeichnet, daß vor einer Wiederholung die Daten aus einem Rückgriffspeicher (z.B. 33; Fig. 8c)in den Ursprungsspeicher (z.B. 120) zurückgespeichert
909832/1242
Docket PO 907 043
werden.
12. Anordnung nach den Ansprüchen 1 bis 11, dadurch gekennzeichnet, daß die Wiederholungssteuerung Steuermittel (z.B. 300, 310, 26; Fig. 8) aufweist, welche die Wiederholung aller notwendiger Funktionen gestattet.
13. Anordnung nach den Ansprüchen 1 bis 12, dadurch gekennzeichnet, daß ein Fehlerzähler (44; Fig. 8f) und ein von diesem gesteuerter Schalter zur Angabe des vorgebbaren η-ten Fehlers, bei dem die Wiederholung abgebrochen wird, vorgesehen ist.
14. Anordnung nach den Ansprüchen 1 bis 13, dadurch gekennzeichnet, daß ein Schalter (28; Fig. 8e) vorgesehen ist, welcher von einer Fehlerschaltung und der Wiederholungssteuerung betätigt wird und anzeigt, ob eine Wiederholung durchgeführt wird und welcher bei einer Wiederholung ein Au s gangs signal erzeugt, welches die Blockierung von Ein-/ Ausgabeoperationen steuert.
15. Anordnung nach Anspruch 14, dadurch gekennzeichnet, daß das Ausgangssignal des Schalters (28; Fig. 8e) zu dem Eingang des Wiederholungs-Steuerdecoders (26) übertragen wird, wodurch die Operation der Folgesteuerung der Anordnung verändert wird.
16. Anordnung nach den Ansprüchen 1 bis 15, dadurch gekennzeichnet, daß zur Fehlerkorrektur ein an sich bekannter Fehler korrigierender Code verwendet wird, daß neben dem Hauptspeicher (12; Fig. 11) ein Fehlerkorrekturspeicher (45) mit einem zugeordneten Adressenregister (46) und zugeordneten Datenregistern (47, 48) vorgesehen sind, wobei der Zyklus des Fehlerspeichers um einen Betrag gegenüber dem Hauptspeicherzyklus verschoben ist, welcher der Erzeugungszeit einer Fehlerkorrekturinformation durch denmit den Datenregistern und dem
Docket PO 967 043 909832/1242
Hauptspeicher sowie mit dem Hauptspeicherdaten-Register (91) und dessen Pufferspeicher (32) verbundenen Fehlerkorrekturgenerator und -korrektur (49) entspricht.
17. Anordnung nach den Ansprüchen 1 bis 16, dadurch gekennzeichnet, daß auch für den Arbeitsspeicher (13; Fig. 12) der Anordnung eine im wesentlichen der Anordnung nach Anspruch 16 entsprechende Fehlerkorrekturanordnung vorgesehen ist.
18. Anordnung nach den Ansprüchen 16 und 17, dadurch gekennzeichnet, daß Speicher (z.B. 12; Fig. 11 oder 13; Fig. 12) und zugeordneter Fehlerspeicher (z.B. 45; Fig. 11 oder 72; Fig. 12) den gleichen Aufbau besitzen und durch die gleiche Adresse (z.B. enthalten in 90 und 46; Fig. 11) ansteuerbar sind.
Docket PO 967 043 909832/1242
Leerseite -Vt-
DE19691901036 1968-01-15 1969-01-10 Anordnung fuer die wiederholte ausfueh rung fehlerhaft ausgefuehrter funktionen Pending DE1901036B2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US69773868A 1968-01-15 1968-01-15
US69774268A 1968-01-15 1968-01-15

Publications (2)

Publication Number Publication Date
DE1901036A1 true DE1901036A1 (de) 1969-08-07
DE1901036B2 DE1901036B2 (de) 1971-03-18

Family

ID=27106067

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19691901036 Pending DE1901036B2 (de) 1968-01-15 1969-01-10 Anordnung fuer die wiederholte ausfueh rung fehlerhaft ausgefuehrter funktionen

Country Status (7)

Country Link
US (2) US3533065A (de)
BE (1) BE725804A (de)
CH (1) CH479912A (de)
DE (1) DE1901036B2 (de)
FR (1) FR1604084A (de)
GB (2) GB1243872A (de)
NL (1) NL167042C (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3564506A (en) * 1968-01-17 1971-02-16 Ibm Instruction retry byte counter
JPS4939852B1 (de) * 1969-11-19 1974-10-29
US3654448A (en) * 1970-06-19 1972-04-04 Ibm Instruction execution and re-execution with in-line branch sequences
US3753236A (en) * 1972-03-31 1973-08-14 Honeywell Inf Systems Microprogrammable peripheral controller
US3828324A (en) * 1973-01-02 1974-08-06 Burroughs Corp Fail-soft interrupt system for a data processing system
USRE30331E (en) * 1973-08-10 1980-07-08 Data General Corporation Data processing system having a unique CPU and memory timing relationship and data path configuration
NL7410610A (nl) * 1973-08-10 1975-02-12 Data General Corp Stelsel voor het verwerken van gegevens.
FR2269148B1 (de) * 1974-04-25 1978-01-20 Honeywell Bull Soc Ind
US3937938A (en) * 1974-06-19 1976-02-10 Action Communication Systems, Inc. Method and apparatus for assisting in debugging of a digital computer program
US3984814A (en) * 1974-12-24 1976-10-05 Honeywell Information Systems, Inc. Retry method and apparatus for use in a magnetic recording and reproducing system
US4513367A (en) * 1981-03-23 1985-04-23 International Business Machines Corporation Cache locking controls in a multiprocessor
US4866604A (en) * 1981-10-01 1989-09-12 Stratus Computer, Inc. Digital data processing apparatus with pipelined memory cycles
ATE25779T1 (de) * 1981-10-01 1987-03-15 Stratus Computer Inc Digitale datenverarbeitungsanlage mit zuverlaessigkeits-bus-protokoll.
US4587354A (en) * 1983-03-28 1986-05-06 Shin-Etsu Chemical, Co., Ltd. Novel organosilicon compound and a room temperature curable organopolysiloxane composition containing the same
DE3750662T2 (de) * 1986-08-12 1995-02-16 Hitachi Ltd Mikroprozessor zur Datentransferwiederholung.
US4912707A (en) * 1988-08-23 1990-03-27 International Business Machines Corporation Checkpoint retry mechanism
JPH07141176A (ja) * 1993-11-19 1995-06-02 Fujitsu Ltd コマンドリトライ制御方式
US6247118B1 (en) 1998-06-05 2001-06-12 Mcdonnell Douglas Corporation Systems and methods for transient error recovery in reduced instruction set computer processors via instruction retry
US6687851B1 (en) 2000-04-13 2004-02-03 Stratus Technologies Bermuda Ltd. Method and system for upgrading fault-tolerant systems
US6820213B1 (en) 2000-04-13 2004-11-16 Stratus Technologies Bermuda, Ltd. Fault-tolerant computer system with voter delay buffer
US6691225B1 (en) 2000-04-14 2004-02-10 Stratus Technologies Bermuda Ltd. Method and apparatus for deterministically booting a computer system having redundant components
US7065672B2 (en) 2001-03-28 2006-06-20 Stratus Technologies Bermuda Ltd. Apparatus and methods for fault-tolerant computing using a switching fabric
US6928583B2 (en) * 2001-04-11 2005-08-09 Stratus Technologies Bermuda Ltd. Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep
US7093154B2 (en) * 2001-10-25 2006-08-15 International Business Machines Corporation Critical adapter local error handling
DE102005030612B4 (de) * 2005-06-30 2014-09-11 Infineon Technologies Ag Halteeinrichtung für ein Sensorsignal, Verfahren zum Weiterleiten eines Sensorsignals und Computerprogramm
US8140912B2 (en) * 2006-11-02 2012-03-20 Nec Corporation Semiconductor integrated circuits and method of detecting faults of processors
CN111736604B (zh) * 2020-06-24 2023-02-21 中国第一汽车股份有限公司 一种远程驾驶控制方法、装置、设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2941188A (en) * 1954-07-01 1960-06-14 Rca Corp Printer control system
US2972127A (en) * 1954-12-27 1961-02-14 Sperry Rand Corp Error responsive system
US3324460A (en) * 1962-03-19 1967-06-06 Digitronics Corp Serial information transfer system
US3248697A (en) * 1962-11-27 1966-04-26 Ibm Error classification and correction system
US3339183A (en) * 1964-11-16 1967-08-29 Burroughs Corp Copy memory for a digital processor
US3343141A (en) * 1964-12-23 1967-09-19 Ibm Bypassing of processor sequence controls for diagnostic tests
US3405258A (en) * 1965-04-07 1968-10-08 Ibm Reliability test for computer check circuits
US3409879A (en) * 1966-03-30 1968-11-05 Bell Telephone Labor Inc Computer organization employing plural operand storage
US3422406A (en) * 1966-05-23 1969-01-14 Gen Precision Inc Internal address generating system
US3440619A (en) * 1967-07-14 1969-04-22 Ibm Control system for maintaining register contents during interrupt and branch conditions in a digital computer

Also Published As

Publication number Publication date
NL167042B (nl) 1981-05-15
NL6900693A (de) 1969-07-17
US3539996A (en) 1970-11-10
DE1901036B2 (de) 1971-03-18
GB1243872A (en) 1971-08-25
GB1243871A (en) 1971-08-25
CH479912A (de) 1969-10-15
FR1604084A (de) 1971-07-05
BE725804A (de) 1969-05-29
NL167042C (nl) 1981-10-15
US3533065A (en) 1970-10-06

Similar Documents

Publication Publication Date Title
DE1901036A1 (de) Anordnung fuer die wiederholte Ausfuehrung fehlerhaft ausgefuehrter Funktionen
EP0163096B1 (de) Einrichtung zur Rettung eines Rechnerzustandes
DE1901228C3 (de) Datenverarbeitungsanlage mit Einrichtungen zur Wiederholung von Operationen bei Auftreten eines Fehlers
DE2722099C2 (de)
DE3125048C2 (de)
CH654943A5 (de) Pruefeinrichtung fuer mikroprogramme.
DE2316296C2 (de) Mikroprogrammierbarer Prozessor
DE2741886A1 (de) Datenuebertragungseinrichtung
DE2117936A1 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE1524239A1 (de) Verfahren zur Lokalisierung eines Fehlers in einer Anlage mit mindestens zwei parallel arbeitenden Rechengeraeten
DE2854748A1 (de) Speichereinrichtung
DE2619159A1 (de) Fehlererkennungs- und korrektureinrichtung
DE2555658A1 (de) Verfahren und einrichtung zur fehlerdiagnose in einer datenverarbeitungsanlage
DE2907181A1 (de) Befehlssatz-modifizierregister fuer einen datenprozessor
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE2714805A1 (de) Datenverarbeitungssystem
DE2145709C3 (de) Datenverarbeitungsanlage, in welcher Verzweigungsbefehle eine Unterbrechung laufender Programme zur Folge haben können
DE2148847B2 (de) Datenübertragungssteuerung zwischen Speichern und peripheren Geräten einer Datenverarbeitungsanlage
DE2400064A1 (de) Speicherpruefanordnung und diese verwendendes endgeraetsystem in einem datenverarbeitungssystem
DE2122338A1 (de) Schaltungsanordnung zur Steuerung des Datenflusses in Datenverarbeitungsanlagen
DE2036729A1 (de) Digital Datenverarbeiter
DE2658864A1 (de) Pruefsystem fuer eine mikroprogrammierte verarbeitungseinheit
DE2513262A1 (de) Digitale codeumwandlungsanordnung
DE1179027B (de) Speicherprogrammierte digitale Rechenanlage
DE3814875A1 (de) Logische verknuepfungseinrichtung und logisches verknuepfungsverfahren