DE1901297B2 - Datenverarbeitungsanlage mit steuereinrichtungen, die bei feststellung eines fehlers eine erneute ausfuehrung des laufenden befehls bewirken - Google Patents

Datenverarbeitungsanlage mit steuereinrichtungen, die bei feststellung eines fehlers eine erneute ausfuehrung des laufenden befehls bewirken

Info

Publication number
DE1901297B2
DE1901297B2 DE19691901297 DE1901297A DE1901297B2 DE 1901297 B2 DE1901297 B2 DE 1901297B2 DE 19691901297 DE19691901297 DE 19691901297 DE 1901297 A DE1901297 A DE 1901297A DE 1901297 B2 DE1901297 B2 DE 1901297B2
Authority
DE
Germany
Prior art keywords
memory
operand
main memory
address
word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19691901297
Other languages
English (en)
Other versions
DE1901297C3 (de
DE1901297A1 (de
Inventor
Dorothy L. Poughkeepsie; Synder Alan D. Hopewell Junction; N.Y. Schnabel (V.StA.)
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 DE1901297A1 publication Critical patent/DE1901297A1/de
Publication of DE1901297B2 publication Critical patent/DE1901297B2/de
Application granted granted Critical
Publication of DE1901297C3 publication Critical patent/DE1901297C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • 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

Description

Die Erfindung betrifft eine Datenverarbeitungsan-
lage gemäß dem Oberbegriff des Anspruchs 1.
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 kurz-
fristigen Netzspannungsschwankung oder eines Störimpulses sein. Dauernde Fehler werden z. B. durch den vollständigen Ausfall eines Bauelementes oder durch eine Leitungsunterbrechung hervorgerufen.
Die Datenverarbeitungsanlage nach der Erfindung
ze enthält Einrichtungen, die eine korrekte Arbeitsweise trotz des Auftretens vorübergehender Fehler erlaubt. 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üfpunkien. Dabei werden im Programm bestimmte Stellen (Priifpunkte) 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.
Schließlich ist eine weitere Lösung des Problems der vorübergehenden Fehler durch das US-Patent 3 248697 bekanntgeworden. Dieses Patent beschreibt eine Einrichtung, durch die bei Ausführung eines jeden Befehls festgestellt wird, wann ein kritischer Punkt erreicht ist, nach dem eine einfache Wiederholung der Befehlsausführung nicht mehr möglich ist. Dieser kritische Punkt ist nicht erreicht, wenn während der Operation irgendwelche für den betreffenden Befehl benutzten Operandendaten selbst verändert werden.
Vorübergehende Fehler, die vor dem kritischen
19 Ol
sätzlichen kleineren Speicher mit entsprechender Adressenkorrespondenz bekannt. Jedoch soll hierdurch das virtuelle Speicherprinzip und nicht die gänzlich andere Aufgabenstellung der Operationswiederholung im Fehlerfall gelöst werden.
Der Erfindung liegt daher die Aufgabe zugrunde, eine Einrichtung anzugeben, mit der die Wirkungen vorübergehender Fehler schnell und ohne großen Aufwand überwunden werden können, auch wenn
Punkt auftreten, können einfach durch wiederholte Ausführung des Befehls eliminiert werden. Die normale Systemleistung wird durch diese Technik nicht herabgesetzt. Tritt aber ein Fehler nach einem kritijcSen Zeitpunkt auf, so ist eine Korrektur durch Wieierholung nicht mehr möglich, wodurch eine Programmunterbrechung bedingt wird. In dem Buch »Automatic Digital Computers« von
M-V. WiIkes, erschienen bei Methuen & Company „...
Ltd-, London, 1956, wird auf Seite 124 im zweiten 10 während der Befehlsausführung benutzte Operanden Absatz ausgeführt, daß es für eine zuverlässige Vtr- verändert wurden.
«rendung von Datenverarbeitungsmaschinen notwen- Diese Aufgabe der Erfindung wird durch die im
dig sei, das Programm so aufzubauen, daß, wenn eine Hauptanspruch angegebenen Merkmale gelöst. Wei-Prüfung zur Feststellung eines Fehlers führt, der rele- tere Merkmale, vorteilhafte Ausgestaltungen und vante Teil der Rechnung automatisch wiederholt wird. 15 Weiterbildungen der Erfindung sind den Unteran-Dieses bedeutet, daß die Anlage über eine bestimmte Sprüchen zu entnehmen.
Menge zuverlässigen Speicherraumes verfügen müsse, Mit dem Gegenstand der Erfindung wird vor allem
so daß sie zu einem früheren Punkt in der Rechnung der Vorteil erzielt, daß die Operationswiederholung zurückgehen könne. Als Beispiele für einen solchen für die Beseitigung sporadischer Fehler mit einem gezuveriässigen Speicher oder Hilfsspeicher werden 20 ringen apparativen Mehraufwand erreicht wird. Bei Magnettrommeln oder Papierstreifen genannt. der Durchführung der Arbeiten der Datenverarbei
tungsanlage erreichte Ergebnisse können bis zum Auftreten des Fehlers voll ausgenutzt werden. Außerdem ergibt sich auch im normalen Betrieb keine Minderung der Systemleistung.
Ein Ausführungsbeispiel der Erfindung wird im folgenden an Hand von Zeichnungen erläutert. Es zeigt
Fig. 1 ein Blockschaltbild einer Datenverarbei-
weils nächsten Befehls einer Befehlsfolge als Rück- 30 tungsanlage mit einem erfindungsgemäßen Operankehradresse nach einer Unterbrechung dieser Be- den-Rückgriffspeicher, fehlsfolge durch eine andere arbeitet. Fig. 2 Einzelheiten der Steuereinrichtungen einer
Diese Rückkehradresse wird allerdings nicht zur Datenverarbeitungsanlage gemäß Fig. 1, Wiederholung fehlerhafter Operationen verwendet, Fig. 3 verschiedene Befehlsformate für eine Da-
sondern sie dient dazu, wieder zu dem Hauptpro- 35 tenverarbeitungsanlage,
gramm zurückzuverzweigen, nachdem eine Unterbre- Fig. 4 einen Befehl für dezimale Division im SS.-
chung, als Folge abnormer Arbeitszustände in der Format gemäß Fig. 3,
Maschine und ein hierzu jeweils spezifisches Zwi- Fig. 5 die Aufteilung eines ersten Operanden für
schenprogramm ausgeführt wurde. Fehlerhafte Ope- eine Divisionsoperation entsprechend dem Befehl in rationen können also auf diese Weise, was als Nachteil 40 Fig. 4,
anzusehen ist, nicht wiederholt werden, sondern es Fig. 6 die Aufteilung eines zweiten Operanden für
kann allenfalls nach erfolgreicher Durchführung eines eine Divisionsoperation entsprechend dem Befehl in Zwischenprogramms die Fehlerquelle ermittelt wer- Fig. 4,
den. Fig. 7 die Reihenfolge, in der die Wörter eines erInder US-PS 3247490 wird schließlich ausgeführt, 45 sten Operanden gemäß Fig. 5 dem Hauptspeicher daß beim Auftreten eines Fehlers, durch den die im entnommen werden,
Speicher ursprünglich gespeicherten Daten ganz oder Fig. 8 die Reihenfolge der Speicherung von Quo-
teilweise zerstört wurden, die Information in den tientenbytes und Restbytes an der Stelle eines ersten Hauptspeicher zurückgeladen wird. Es wird dort fer- Operanden im Hauptspeicher, ner ausgeführt, daß ein fest eingestellter Speicher für 50 Fig. 9 Einzelheiten des Operanden-Rückgriffspeidie Speicherung eines vorbestimmten Programms chers, des Operanden-Rückgriffspeicher-Adreßregi-
- ... sters uncj wejterer zusätzlichei Schaltungen für den
Operanden-Rückgriffspeicher.
Wie diese Wiederholungen im einzelnen gesteuert werden und wie die hierfür erforderlichen Schaltkreise aussehen müssen, ist dieser Literaturstelle nicht zu entnehmen.
In der deutschen Auslegeschrift 1201586 ist eine programmgesteuerte Datenverarbeitungsmaschine beschrieben, die mit einem gespeicherten Programm und einer Zwischenspeicherung der Adresse des je-
Gesamtsystem
Das in Fig. 1 gezeigte System enthält einen Hauptspeicher 12 und einen Arbeitsspeicher 13. Obwohl keine besonderen Eingabe-ZAusgabeeinheiten dargestellt sind, da diese allgemein bekannt sind, stehen
vorgesehen ist, der die gleichen Selektionsschaltungen benutzt, die normalerweise für das Auslesen eines Programms aus einem statischen magnetischen Speicher benutzt werden.
Diese Mechanik dient zur manuellen oder automatischen Nachladung von Programmteilen beim Auftreten von Fehlern. Von Nachteil hierbei ist, daß für eine Sicherung des gesamten Hauptspeicherinhalts
zwei gleich große Speicher erforderlich sind; außer- 60 sie mit dem in Fig. 1 gezeigten System über das Verdem entsteht ein Verlust an Verarbeitungsgcschwin- bindungsnetzwerk 216 in Verbindung, das an den Addigkeit dadurch, daß nicht mit den wesentlichen Ur- dier-rausgangspuffer 217 und die Addiererausgangssprungsdaten der fehlerhaften Instruktion begonnen leitung 221 angeschlossen ist. Die Hauptsteuereinheit wird,sondern die Wiederholung vom Anfang des Pro- 11 steuert die Arbeitsweise des Systems durch Schalgramms erfolgt. 65 tungen und Signale, die kollektiv durch die Steuerlei-Aus den US-Patentschriften 3248702 und tung 15 dargestellt sind. Besondere Steuersignale, die 3292153 ist zwar schon die redundante Speicherung für die vorliegende Erfindung von Bedeutung sind, wesentlicher Daten des Hauptspeichers in einem zu- werden später genauer beschrieben.
19 Ol 297
Der Hauptspeicher 12 ist beispielsweise eine Matrixanordnung von Magnetkernen, in welcher ein gewünschter Speicherplatz: durch eine Adresse im Speicheradreßregister (SAR) 90 gewählt wird. Wenn das SAR 90 eine Hauptspeicheradresse enthält, durchläuft der Hauptspeicher 12 unter Steuerung seines eigenen internen Taktgebers einen Speicher-Grundzyklus und liest Informationen über die Leseleitungen 95 in das Speicherdatenregister (SDR) 91. Aus dem SDR 91 können die Daten in den Hauptspeicher 12 zurückgegeben sowie auf das Verbindungsnetzwerk 216, den Puffer 217 und die Addiererausgangsleitung 221 gegeben werden. Der gesamte Speicherzyklus besteht aus einem Lesehalbzyklus (zerstörendes Lesen) und einem Schreibhalbzyklus (Regeneration).
Durch Einschreiben neuer Information in das SDR 91 vor der Regeneration im Schreibzyklus wird die ursprünglich im Hauptspeicher stehende Information geändert. Gleichzeitig mit der Regeneration steht die Information im SDR 91 für das System auf der Addiererausgangsleitung 221 zur Verfügung.
Das System faßt acht Bits zu einem sogenannten »Byte« zusammen. Ein »Wort« ist in dem System als eine Einheit von vier aufeinanderfolgenden Bytes definiert. Eine voile Adresse besteht aus 24 Bits und bezeichnet die Stelle eines Bytes im Speicher.
Der Arbeitsspeicher (AS) 13 besteht aus 64 Registern mit der Kapazität je eines Wortes, die durch das zugehörige Arbeitsspeicheradreßregister (ASAR) 120 adressiert werden. Das ASAR 120 wird aus dem J-Register 121 geladen, das seinerseits wiederum aus der Addiererausgangsleitung 221 oder der Kombinierschaltungsleitung 222 gespeist wird. Sobald für den Arbeitsspeicher 13 eine Leseoperation vorgeschrieben ist, wird das adressierte Wort vom AS 13 entweder in das L-Register 126 oder in das R-Register 124 ausgelesen. Die Ausgangssignale vom L-Register und R-Register werden zurück zum Arbeitsspeicher 13 oder zum Addierer 210 geführt.
16 der 64 Ein-Wort-Register im Arbeitsspeiche 13 sind als allgemeine Register bestimmt und werden bei der Adreßberechnung und Indexierung als Indexregister verwendet, bei der Festpunkt-Arithmetik und logischen Operationen jedoch als Speicherregister. Außerdem enthält der Arbeitsspeicher 13 Arbeitsplätze, die während der Verarbeitung zu verschiedenen Zwecken verwendet werden.
Daten werden zu den und von den Registern über drei Datenleitungen unterschiedlicher Kapazität übertragen. Diese drei Leitungen sind die Addiererausgangsleitung 221 für 32 Bits, die Befehlsadreßleitung 223 für 24 Bits, und die Kombinierschaltungsleitung 222 mit 8 Bits Kapazität.
Der Datenfluß geht im wesentlichen über zwei parallele Wege, die gleichzeitig benutzt werden können. Einer dieser Wege ist der Addiererweg mit dem 32-Bit-Addierer 210, der durch die 32-Bit-Register L, R, M und H gespeist wird. Der andere Weg ist der Kombinierschaltur.gsweg mit der 8-Bit-Kornbinierschaltung 213, die durch die Register L, R und M gespeist wird. Die Kombinierschaltung handhabt Ein-Byte-Blocks in Halbbyte-Abschnitten.
Außer 32 einzelnen Addiereinheiten umfaßt der Addierer 210 Paritätsprüfschaltungen, Paritätserzeugerschaltungen sowie einen Übertrags-Generator. Bei der Ausführung arithmetischer Operationen werden Daten aus dem 32-Bit-Register H, M oder R auf den rechten Addierereingang Y gegeben. Der linke Addierereingang XG ist mit einer Echtwert-ZKomplementwertschaltung 220 verbunden und wird vom 32-Bit-Register 126 (L-Register) gespeist.
In einem Zyklus der Zentraleinheit werden je zwei
5 Operanden aus je 32 Bits auf die Addierereingänge XG und y geleitet, durch den Addierer verarbeitet, und das Ergebnis dann auf den Addiererausgangspuffer 217 gegeben. Subtraktion erfolgt durch Komplement-Addition mit Hilfe der Echtwert-/Komplementwertschaltung 220; Multiplikation und Division durch wiederholte Addition bzw. Subtraktion und Stellenverschiebung mit Hilfe der Verschiebeschaltung 215.
Der Kombinierschaltungsweg wird hauptsächlich
»5 bei der Ausführung von Befehlen für variable Feldlänge verwendet. Zwei Bytequellen können für eine Verknüpfungs-Operation durch die Kombinierschaltung gleichzeitig gewählt werden. Auf den linken Eingang U kann entweder ein aus dem L-Register unter Steuerung eines der beiden Bytezähler LB 101 und MB 102 ausgewähltes Byte gegeben werden oder ein Byte, das aus dem Inhalt der beiden 4-Bit-Register MD 103 und F 104 gebildet wird. Dem rechten Eingang V wird ein aus dem M-Register 211 unter Steuerung eines der beiden Bytezähler LB 101 und MB 102 ausgewähltes Byte zugeführt. Die Kombinierschaltung wird genauso wie die anderen Funktionseinheiten durch die Hauptsteuereinheit 11 gesteuert. Der Befehlsadreßweg hat eine Kapazität von 24 Bits, um die im Befehlsadreßregister 218 enthaltene 24-Bit-Befehlsadresse übertragen und auf den neuesten Stand bringen zu können. Der erste Befehl wird am Anfang durch die Hauptsteuereinheit 11 in das Befehlsadreßregister (BA REG) 218 gesetzt. Von dort werden Befehlsadressen auf den Befehlsadreßzähler 219 geleitet. Der Befehlsadreßzähler erhöht die Befehlsadresse um eine Zahl, die der Anzahl Bytes in einem Befehl entspricht (sechs Bytes im Falle eines Speicher-Speicher-Befehls), und setzt die neue Adresse über die Leitung 226 in das Befehlsadreßregister. Die anfängliche Befehlsadresse bezeichnet die Stelle des laufenden auszuführenden Befehls im Hauptspeicher und wird in das Speicheradreßregister (SAR) 90 gelesen und zum Hauptspeicher 12 geleitet, wodurch der adressierte Befehl in das Speicherdatenregister (SDR) 91 ausgelesen wird. Aus dem Hauptspeicher 12 auf das SDR ausgelesene Befehle laufen über die Schaltung 216 zum Addiererausgangspuffer 217. Die Entnahme eines Befehls wird Befehls-Abruf genannt und erfolgt jeweils in zwei Schritten. Während des Befehls-Abrufes wird der Befehl ausgelesen und zum Einstellen verschiedener Anfangsbedingungen in der Zentraleinheit und dem Arbeitsspeicher 13 vor Beginn der Befehlsausführung verwendet.
Zur Hauptsteuereinheit 11 gehört auch eine Folgesteuereinheit 302, Allgemeinstatus-Merker 303, ein Programm-Statuswort-Register 304 und eine Fehlererkennungsschaltung 305.
In Fig. 2 sind weitere Einzelheiten der Hauptsteu-
ereinheit 11 des Grundsystems sowie die für das vorliegende Ausführungsbeispiel der Erfindung zusätzlich vorhandenen Einrichtungen dargestellt. Die Folgesteuereinheit 302 enthält grundsätzlich einen Festspeicher (FS) 307, der durch ein zugehöriges
Festspeicher-Adreßregister (FSAR) 308 adressiert wird. Bei Wahl einer entsprechenden Adresse durch das FSAR 308 liest der Festspeicher ein Steuerwort in das Festspeicher-Datenregister (FSDR) 309 aus.
19 Ol 297
i in das Register 309 gesetzte Steuerwort steuert Verarbeitungscinheit für einen Maschinenzyklus, vor jedem neuen Zyklus der Verarbeitungseinheit neues Steuerwort ausgelesen wird. Das Steuerwort FSDR wirkt über die Decodierschaltung 310 und Steuerleitung 15 auf die verschiedenen Torschalgen und Steuerschaltungen des Systems. Wörter 1 im Festspeicher 307 in Mikrobefehlsfolgen orgacrt, wobei das jeweils nächste Wort in der Folge >veise durch das vorhergehende Wort bestimmt ist, I zwar über einen Teil, der vom FSAR 308 zurückihrt wird. Zusätzlich zu einem Ausgangssignal von Decodierschaltung 310 wird eine bestimmte Folge erdem ausgewählt durch Signale vom SDR 91, ι M-Register 211 und dem F-Register 104 über Leitungen 316 bzw. 317 und 318. Als zusätzliche glichkeit für die Wahl einer Mikrobefehlsfolge r eines Steuerwortes als Funktion einer Maschibedingung oder eines Datenwertes verfügt das ^R 308 über einen Eingang 319, der eine Verzweig zu einer bestimmten FS-Adresse in Abhängigdavon steuert, ob ein Bedingungscode in den AH-leinstatus-Merkern, im Programm-Statuswort r in anderen entsprechenden Einrichtungen vort oder nicht. Die Allgemeinstatus-Merker 309 r andere entsprechende Einrichtungen können . durch Signale von der Decodierschaltung 310 euert werden.
>as Programm-Statu^wort-Register 304 enthält us- und Steuerinformationen, die bei der Ausfüh- > der verschiedenen Steuerfunktionen des Systems vendet werden, und dient der Aufzeichnung des enden Systemstatus. Das Register 304 kann von Addiererausgangsleitung 221 geladen werden,
,ur Fehler-Erkennungsschaltung 305 gehören •nale Paritätsprüfschaltungen, wie z. B. die Parijrüfschaltung 323 am Ausgang des Addierers 210 ig. 1. Paritatsprüfschaitungen gibt es an verschie- ;n Stellen im System der Fig. 1, und sie speisen die Fehler-Erkennungsschaltung 305 in bekann-Weise.
>ie Arbeitsweise des Grundsystems wird durch ?hle gesteuert. Obwohl die fünf in Fig. 3 gezeigten idlegcnden Befehlsformate möglich sind, wird hier Beispiel nur das SS-Format (Speicher-Speicher- ;hl) beschrieben. Wie in Fig. 3 gezeigt, enthalten Bits 0 bis 7 den Operations-Code (OP-Code), die 8 bis 11 die Länge Ll (Anzahl Bytes) des ersten randen, die Bits 12 bis 15 die Länge Ll (Anzahl is) des zweiten Operanden, die Bits 16 bis 19 die isadresse Bl des ersten Operanden, die Bits 20 M die relative Adresse Dl des ersten Operanden, Bits 32 bis 47 die Basisadresse Bl bzw. relative esse Dl des zweiten Operanden.
Ablauf einer Operation
in spezielles Beispiel eines Speicher-Speicherihls für eine dezimale Division ist in Fig. 4 gezeigt, ler OP-Code FD diese Operation vorschreibt. Ll den Wert 15 und zeigt an, daß der erste Operand +■ 1 Byte lang ist, d. h. also 16 Bytes. In ähnlicher se ist Ll fünf und besagt damit, daß der zweite rand Ll + 1, d. h. sechs Bytes lang ist. Der auf gesetzte Wert für Bl besagt, daß die Basisadresse Jen Operanden 1 im allgemeinen Register 3 des eitsspeichers erscheint. Im angeführten Beispiel bt fll + Dl eine Gesamtsumme von 1049. In licher Weise sind der Inhalt des allgemeinen Registers 4 zuzüglich der relativen Adresse Dl gleich der Hauptspeicheradresse des äußersten linken Byte des zweiten Operanden, die im gegebenen Beispiel 513 ist.
Nach Beendigung des Befehls-Abrufes stehen in der Zentraleinheit die folgenden Daten an folgenden Stellen:
Stelle Inhalt
R, WS (2) Hauptspeicheradresse des äußersten rechten Byte des /weiten Opcranden.
L, M,H, WS(X) Hauptspeicheradresse des äußersten rechten Byte des ersten Operanden.
D zweite Hexadezimalstelle des OP-
1S Code (erste Stelle ist F).
Gl. MD Ll-FeId.
Gl, J L2-Feld.
MB Byteadressc des äußersten rechten
Byte des ersten Operanden.
LB Byteadresse des äußersten rechten
Byte des zweiten Operanden.
WS {9) Hauptspeicheradresse des äußer
sten linken Byte des ersten Operanden.
WS (A) Hauptspeicheradresse des äußer
sten linken Byte des zweiten Operanden.
Wenn angenommen wird, daß die im allgemeinen Register 3 (durch das ßl-Feld des in Fig. 4 gezeigten Befehls) angegebene Adresse nach Addition zur relativen Adresse Dl den Wert 1049 ergibt, dann steht (siehe Fig. 5) der erste Operand (Dividend) mit seinem ersten Byte darstellungsgemäß an der Stelle 1049 im Hauptspeicher. Die Zeichen ».v« in Fig. 5 stellen je ein Byte dar, wobei die vertikalen Linien zwischen je vier Bytes eine Wortgrenze bezeichnen. Die Bits 30 und 31 der Hauptspeicheradresse (Gesamtadresse ist durch Bits 8 bis 31 gegeben) gegen eine einzelne Bytestelle in einem gegebenen Wort an. Die Bits 27 bis 29 der Hauptspeicheradresse geben eine einzelne Wortadressc für einen gegebenen ersten Operanden an, da im Beispiel der Dividend in der dezimalen Division auf maximal vier Wörter begrenzt ist. Da jedoch der erste Operand in Form des Dividenden nicht notwendigerweise an einer Wortgrenze beginnen muß, kann sich der maximal vier Wörter lange Operand gemäß der Darstellung in Fig. 5 über fünf Wortstellen erstrecken (wie es in dem gewählten Beispiel ja auch der Fall ist), nämlich die Wörter 110--. 111--. 000--, 001 - - und 010 - -, die durch die Wahl der Wortadresse 27 bis 29 aus den Hauptspeicheradreßbits 8 bis 31 definiert sind.
In ähnlicher Weise zeigt Fig. 6 den zweiten Operanden (Divisor), der auf der Speicheradresse 513 beginnt und sich nach rechts über sechs Bytes von dieser Adresse aus erstreckt, d. h. über L2 + 1 Bytes.
Nach Festlegung der Adressen des ersten und zweiten Operanden ist der nächste Verarbeitungsschritt der Abruf der Operanden aus dem Speicher and der Beginn der Verarbeitung. Zuerst wird der zweite Operand abgerufen, wozu drei Abrufgänge notwendig sind, da bei einem Abruf nur jeweils ein Wort aus dem Hauptspeicher geholt werden kann. Obwohl die Verarbeitung durch die Zentraleinheit auf der Basis von einem Byte pro Zeiteinheit erfolgt, wird der ganze zweite Operand abgerufen und im Arbeitsspeicher gespeichert, wo die Bytes je nach Bedarf während der Verarbeitung adressiert werden.
609552/197
19 Ol 297
ίο
Die Bytes des ersten Operanden werden je nach Bedarf während derdezimialen Division wortweise zu je einer Zeiteinheit gerufen. Das Ergebnis, d. h. der Quotient und der Rest, werden im Feld des ersten Operanden gespeichert, wodurch der erste Operand gelöscht und somit die Ursprungsdaten verändert werden, die zu einer erneuten Ausführung der dezimalen Divisionsinstruktion erforderlich wären.
Gemäß der Darstellung in Fig. 7 werden Ll + 1 Datenbytes vom ersten Operanden abgerufen, wobei mit dem äußersten rechten Wort im Datenfeld des ersten Operanden begonnen wird. Da jedes Wort im Operanden durch die Bits 27 bis 29 der Hauptspeicheradreßbits 8 bis 31 eindeutig gekennzeichnet wird, holt der erste Abruf die vier Bytes im Wort 111--(Binärschreibweise). Obwohl das vierte Byte eigentlich nicht dazu gehört, muß es während des ersten Abrufes trotzdem geholt werden, da das Abrufen auf Wortbasis innerhalb von Wortgrenzen erfolgt. Nachdem das Wort 111 — abgerufen worden ist, beginnt die Verarbeitung, und die drei werthohen Bytes des Quotienten werden entwickelt und zur Abrufzeit 2 zur Verfugung gestellt. Da die werthohen Bytes des Quotienten während der Verarbeitung des Wortes Hl-entwickelt wurden, stehen sie zur Speicherung an der Stelle des Wortes 110-- zur VeTfügung, nachdem dieses Wort während der Abrufzeit 2 entnommen wurde. Unter Verwendung des Buchstabens Q zur Bezeichnung der gespeicherten Quotientenbytes zeigt die Fig. 8 den Stand des ersten Operandenfeldes nach der Abrufzeit 2. Daraus geht hervor, daß nach Abruf des Wortes 110-- des ersten Operanden (im zweiten Abruf) im ersten Speichergang die dre; werthohen Bytes des Quotienten in das Feld 1 K)-- gespeichert und dadurch die ursprünglichen X-Datenbytes gelöscht werden, die darin standen. In ähnlicher Weise speichert nach dem dritten Abrufgang der zweite Speichergang (2-Bytes in das Feld der Adresse 111--. Nach dem vierten Abruf speichert der dritte Speichergang die übrigen drei Bytes des Quotienten in das Feld des Wortes 000--. Nach dem fünften Abruf wurde das am weitesten rechts stehende Restbyte R entwickelt, und der vierte Speichergang setzt dieses Byte in das Feld des Wortes 010--. Bei Weiterentwicklung der Restbytes speichert der fünfte Speichergang den Rest in das Feld des Wortes 001 - - und anschließend ersetzt ein sechster Speichergang das Byte ---11 des Wortes 000-- durch das letzte Restbyte. Die obige Folge von Abruf- und Speichergängen verdeutlicht die Art, in der Ursprung-daten während der Ausführung einer Dezimaldivision verändert werden. Die Ursprungsdaten werden schon beim eisten Speichergang verändert, und jeder danach auftretende Fehler kann bei den bisher üblichen Systemen durch eine erneute Befehlsausführung nicht mehr korrigiert werden.
Die eigentliche Divisionsoperation mit Abruf- und Speicheroperationen besteht aus den fünf Folgen:
1. Abrufen und nach rechts ausrichten des Zahlenwertes des zweiten Operanden (Divisor) sowie Durchführung bestimmter Prüfungen, um festzustellen, ob die Kriterien für eine Division erfüllt sind.
2. Abrufen und ausrichten nach rechts der werthohen Bytes des ersten Operanden (Tcildividend) unter Verwendung des am weitesten rechts stehenden Wortes und Durchführung bestimmter Prüfungen.
3. Komplement-Addition des ausgerichteten Divisors zum vorliegenden Teil des Dividenden, bis ein Übertrag auftritt. Der MD-Zähler 103 (Fig. 1) zählt die Abzüge. Wenn der Übertrag auftritt, steht der MD-Zähler auf einem Wert, der um 1 größer ist als die zu entwickelnde Quotientenziffer.
4. Echte Addition des ausgerichteten Divisors zum Übertragsergebnis aus Schritt 3. Der Wert des MD-Zählers wird um die Zahl - 1 korrigiert und als Quotientenstelle im äußersten linken Bytefeld des ersten Operanden gespeichert. Falls bereits die letzte Quotientenziffer gespeichert ist, erfolgt direkter Übergang zu Schritt 5. Wenn die Quotientenziffer nicht die letzte ist, wird der '5 Restwert des laufenden Schrittes 4 nach links
verschoben; danach wird auf die Einerstelle des Teildividenden die nächste Ziffer des Dividenden gesetzt, und dann erfolgt Rückgang zu Schritt 3.
5. Entwicklung und Speicherung des Quotienten-Vorzeichens. Anschließend Speicherung des Restwertes aus Schritt 4 als Rest in die am meisten rechts stehenden Bytes des ersten Operandenfeldes. Dann Rückkehr zum Befehlsabruf für einen neuen Befehl.
Bei der Ausführung der oben beschriebenen Dezimaldivision wird das M-Register 211 für die Datenfelder des ersten Operanden und das H-Register 212 für die Adresse des ersten Operanden im Hauptspeieher benutzt. Der MB-Zähler 102 bestimmt, welches Byte des betreffenden Wortes des ersten Operanden als Teil der laufenden Ausführungsroutine zu verwenden ist, und wenn dieser Zähler gleich Null ist. ist das Wort in der Zentraleinheit zu Ende und ein anderes Wort muß vom Hauptspeicher in der obenerwähnten Abruffolge gerufen werden, bevor die Ausführung weiterlaufen kann. Der Gl-Zähler 376 (Fig. D zeigt die Anzahl der übrigen noch zu verarbeitenden Bytes im ersten Operandenfeld an. Für den zweiten Operanden arbeiten der LB-Zähler 101, der G2-Zähler 377 (Fig. 1), das L-Register 126 und das R-Rcgister 124 genauso wie der MB-Zähler, der Gl-Zähler, das M-Register und das Η-Register für Operand 1.
Wiederholungseinrichtung
Die vorliegende Erfindung befaßt sich mit einer Wiederholungseinrichtung, die zusätzlich in einem Datenverarbeitungssystem, wie es oben beschrieben wurde, eingebaut wird. Diese Wiederholungseinrich-
tung gestattet einem derartigen System, die Auswirkungen vorübergehender Fehler zu überwinden und die richtige Ausführung eines Befehls noch einmal zu versuchen, wenn ein Fehler auftritt, auch wenn die Ursprungsdaten bereits geändert sind. Das Problem
der Veränderung der Ursprungsdaten schließt normalerweise den erneuten Versuch einer Befehlsausfüh rung aus. Dieses Problem wird gelöst durch einer Operanden-Rückgriffspeicher und ein Operanden-Rückgriffspeicher-Adreßregister (ORS-Adreßregi
ster), wobei der Rückgriffspeicher zwar nur relath klein ist (im Ausführungsbeispiel nur acht Wörter) aber doch alle Operanden-Ursprungsdaten enthält die während der Ausführung eines Befehls veränder werden können. Wenn keine Fehler auftreten, win
die Systemleistung durch diese Wiederholungsein richtung nicht herabgesetzt. Falls ein Fehler auftritt kann die Ausführung eines Befehls wieder versuch werden. Wenn bei der wiederholten Ausführung wie
19 Ol 297
der ein Fehler auftritt, wird einfach eine weitere Ausführung versucht. Diese mehrfach wiederholte Ausführung ist besonders wirksam bei der Überwindung relativ langanhallender, vorübergehender Fehler.
Der in Fig. 1 gezeigte Opcranden-Rückgriffspeiehcr (ORS) 351 wird von der auf der Addiererausgangsleitung 221 erscheinenden Information in nachfolgend genauer zu beschreibender Weise geladen. Die Auswahl einer von acht Wortstellen im Operanden-Rückgriffspeicher 351 wird vom Operanden-Rückgriffspeicher-Adreßregister 354 gesteuert. Das ORS-Adreßregister 354 wird durch die Hauptstcuereinheit 11 geladen, und zwar durch die Bits 27 bis 29 der Operandenadresse, die auf der Addiererausgangsleitung 221 in Verbindung mit der Hauptspeichcradressierung für den ersten Operanden erscheinen.
Wie in Fig. 9 genauer gezeigt, empfängt das ORS-Adreßregister 354 die Wortadreßbits 27 bis 29 so, wie sie in Verbindung mit dem Grundsystem festgelegt sind. Die Bits 27 bis 29 werden durch einen herkömmlichen Decodierer 355 decodiert und beeinflussen die acht Torschaltungen 356 (0 bis 7), die ihrerseits wieder eine der acht Wortstellen im Operanden-Rückgriffspeicher 351 wählen. Über die Leitung 352 wird dann unter derselben Steuerung, wie sie für das Übertragen der Wörter des ersten Operanden auf die Addiererausgangsleitung verwendet wird, das adressierte Operandenwort an der zugeordneten Wortstelle im Operandcn-Rückgriffspeichcr gespeichert. Die Stelle im Rückgriffspeicher entspricht der Wortadresse des ersten Operanden im Hauptspeicher, wie sie durch die Bits 27 bis 29 der Hauptspeicher-Adresse festgelegt war. Wenn ein Wort richtig (ohne Entdeckung eines Fehlers) im Operanden-Rückgriffspeicher gespeichert worden ist, wird der dieser Wortstelle entsprechende Abruf-Merker 358 eingeschaltet. Wenn eine Speicherung von der Zentraleinheit auf eine Stelle im Hauptspeicher erfolgt, die einer vorher belegten Worlstelle im Operanden-Rückgriffspeicher 351 entspricht, verhindert der zugeordnete Abruf-Merker 358. wenn er eingeschaltet ist. eine Veränderung der Daten im Operanden-Rückgriffspeicher 351, schaltet jedoch andererseits gleichzeitig den entsprechenden Speicher-Änderungs-Merker 359 ein, wodurch angezeigt wird, daß die Ursprungsdaten im Hauptspeicher verändert wurden und der Operanden-Rückgriffspeicher die einzige Stelle ist. die die für eine erneute Ausführung des Befehls erforderlichen Ursprungsdaten des Operanden enthält.
Außer dem Operanden-Rückgriffspeicher 351 und den dazugehörigen Schaltungen enthält das hier beschriebene System noch ein Befehlsadreß-Rückgriffregister 366, das ebenfalls in Fig. 1 dargestellt ist. Dieses Befehlsadreß-Rückgriffregister 366 enthält jeweils nur die Adresse des Befehls, der gerade ausgeführt wird, bis feststeht, daß die Ausführung fehlerfrei war. Das Befehlsadreßregister 218 wird während der normalen Verarbeitung gemäß obiger Beschreibung schon auf den neuesten Stand gebracht, bevor die Ausführung eines Befehls beendet ist, und enthält dann nicht mehr die Adresse des gerade ausgeführten Befehls. Aus diesem Grund kann man nicht auf den ersten Abruf zurückkehren ohne Hilfe des Befehlsadreß-Rückgriffregisters 366 oder einer ähnlichen Einrichtung, mit der das Befehlsadreßregister vor der wiederholten Ausführung eines Befehls geladen werden kann. Wenn die Hauptsteuereinheit 11 im Wie derholungsbetrieb läuft, leitet die Folgesteuereinheit 302 den Inhalt des Befehlsadrcß-Rückgriffregisters 366 zum entsprechenden Zeitpunkt vor dem ersten Abruf auf das Befehlsadreßrcgister 218. Die Rück-
•5 speicherung der Befehlsadresse aus dem Befehlsadreß-Rückgriffregistei ist klar zu unterscheiden von der Rückspcicherung des Operanden. Die Operanden-Ursprungsdaten können verändert worden sein oder auch nicht; die jeweilige Operandenfeldstclle im Speicher ist nicht zuverlässig bekannt, und auch wenn sie bekannt wäre, können die einzelnen Bytes innerhalb dieses Feldes, die eventuell verändert wurden, bezuglich der nacheinander folgenden Speicheradressen außerhalb der Reihenfolge liegen (z. B. bei der
1S oben angeführten Dezimaldivision). Auf der anderen Seite hat das Befehlsadreß-Rückgriffregister 366 nur ein Feld, das immer auf dieselbe Stelle übertragen wird und vor einer wiederholten Ausführung immer neu eingespeichert werden muß.
2" In Fig. 2 sind weitere zusätzliche Rückgriff schaltungen gezeigt für Teile der Steuereinheit, die während der normalen Ausführung eines Befehls oder bei Entdeckung eines Fehlers verändert werden. So gehört z. B. zum Programm-Statuswort-Register 304
^5 (PSW) ein Rückgriffregister 370 zur Speicherung dei Bedingungscodebits im Programm-Statuswort. Zu den Allgcmeinstatus-Merkern 303 gehören die Allgemeinstatus-Rückgriffregister 371. die zum Rückspeichern der allgemeinen Bedingungen dienen, wenn die Systemsteuerung bei Entdeckung eines Fehlers auf Wiederholungsbetrieb verzweigt. Außerdem gibt die Fehlererkennungsschaltung 305 ein Sperrsignal fur den Taktgeber der Zentraleinheit während eines Zyklus der Zentraleinheit, wenn ein Fehler abgefühlt wurde, um die weitere Verarbeitung durch die Zentraleinheit sofort anzuhalten. Der Festspeicher-Taktgeber wird nicht angehalten, so daß eine Wiederholung eingeleitet werden kann. Außerdem schaltet die Dccodierschaltung 310 einen Ursprungsdaten-Änderungsmerker 374 ein, sobald Ursprungsdaten verändert werden, wobei es keine Rolle spielt, bei welcher Funktion des Datenverarbeitungssystems das geschah. Der UD-Änderungsmerker 374 kann also einerseits durch die Decodierschaltung 310 eingeschaltet werden; kann aber andererseits für die Zwecke der vorliegenden Erfindung auch durch ODER-Verknüpfung der Inhalte aller Speicher-Änderungsmerker 359 (Fig. 9) eingeschaltet werden. Während des Versuches der wiederholten Ausführung eines Befehls wird das Ausgangssignal des Ursprungsdaten-Anderungsmerkcrs 374 als Signal zur Verzweigung zu einer Rückspeicherroutine verwendet. Durch eine besondere im Festspeicher 307 erscheinende Rückspeicherbefehlsfolge werden dann die im Operanden-Rück- griffspeicher 351 erscheinenden Daten neu in den Hauptspeicher gespeichert.
Die im Grundsystem vorhandene Betriebsartenwahlschaltung 375 gestattet die Wahl der Eingabe-/ Ausgabe-Betriebsart oder der zentralen Betriebsart Im hier beschriebenen Ausführungsbeispiel der Erfindung spricht diese Wahlsclialtung 375 auch nod auf ein Signal der Fehlererkennungsschaltung 305 ai zur Wahl der Wiederholungs-Betriebsart, womit di< Steuerung zusammenhängt, in welcher Art die in Festspeicher-Datenregister 309 stehenden Worte durch die Decodierschaltung 310 decodiert werden Die Wahlschaltung 375 kann ein einfacher Dreiweg schalter sein, der ein Signal über die Leitungen 381
19 Ol 297
zur DecodJerschaltung 310 gibt. Die wiederholte Ausführung eines Befehls wird bei einer Fehlerfeststellung so gewählt, daß eine Adresse von lauter Nullen (die Adresse des ersten Wortes der Wiederholungssequenz) in das Festspeicher-Adreßregister 308 geladen wird. Diese Adresse von lauter Nullen wird dadurch erzwungen, daß das Auslesen des Festspeicher-Datenregisters 309 über die Sperrleitung 311 verhindert wird, wodurch eben lauter Nullen auf die Leitung 31S gebracht werden. Auf der Leitung 373 erscheint bekanntlich während eines Zyklus der Zentraleinheit ein Sperrsignal für deren Taktgeber, so daß die Eingangssignale vom F-Register, vom M-Register und vom Speicherdatenregister zum FSAR 308 ebenfalls Null sind, wodurch also die Adresse für den Wiederholungsbetrieb in das FSAR 308 geladen wird. Wenn diese Wiederholungsbetriebsart einmal gewählt ist, wird eine Wiederholungs-Befehlsfolge aus dem Festspeicher 307 ausgelesen, um auf diese Weise das PSW-Register 304, die Allgemeinstatus-Merker 303 und das Befehlsadreßregister 218 neu zu laden. Diese und ähnliche Operationen erfolgen in bekannter Weise und werden deswegen nicht näher beschrieben.
Operationsablauf mit Rückgriffspeicher
Im Normalbetrieb wird der zweite Operand (siehe Fig. 6) nach dem Befehlsabruf vom Hauptspeicher 12 in den Arbeitsspeicher 13 übertragen. Nach Abruf des zweiten Operanden wird das Wort Hl-- des ersten Operanden (siehe Fig. 5) im Hauptspeicher 12 adressiert, indem die 24-Bit-Speicheradresse dieses Wortes aus dem H-Register 212 über den Addierer 210 unverändert auf den Addiererausgangspuffer 217 geleitet wird. Diese Wortadresse wird dann über die Addiererausgangsleitung 221 auf das Speicheradreßregister 90 geleitet. Die Bits 27 bis 29 der 24-Bit-Speicheradresse werden ebenfalls auf das Operanden-Rückgriffspeicher-Adreßregister 354 geleitet. Das alles geschieht unter Steuerung der Folgesteuereinheit 302 in der Hauptsteuereinheit 11. Wenn die Adresse des ersten Operanden für das Wort Hl-- im SAR 90 steht, liest der Hauptspeicher 12 dieses Wort auf das Speicherdatenregister 91, von wo es über die Schaltung 216 auf den Addiererausgangspuffer 217 übertragen wird. Von dort wird dieses Wort des ersten Operanden normalerweise auf das L-Register 126 übertragen. In der vorliegenden Erfindung wird es außerdem über die Addiererausgangsleitung 221 auf den Operanden-Rückgriffspeicher351 übertragen. Wie in Fig. 7 und Fig. 9 gezeigt, setzt der Abruf das Wort 111 - - in die letzte Wortposition des Rückgriffspeichers 351, da die achte Torschaltung 356 eingeschaltet wurde bei der Decodierung der Bits 27 bis 29, die beim Laden des SAR 90 auch in das Operanden-Rückgriffspeicher-Adreßregister 354 (siehe Fig. 9) gebracht wurden. Wenn das Wort Hl-- richtig abgerufen und im Operanden-Rückgriffspeicher 351 gespeichert wurde, wird der zugehörige Abruf-Merker 358 eingeschaltet und zeigt damit an, daß der Abruf 1 beendet ist.
Nach dem ersten Abruf beginnt die Zentraleinheit mit der Verarbeitung der dezimalen Division und bildet die werthohen Quotientenbytes als Ergebnis der Verarbeitung des Wortes 111 --des ersten Operanden mit dem Divisor (zweiter Operand). Nachdem die drei Bytes aus dem Wort 1 Π - - verarbeitet sind (das vierte Byte dieses Wortes gehört in diesem Fall nicht zum Operanden), ist das H-Register 212 mit der Adresse des nächsten abzurufenden Wortes, dämlich des Wortes 110 --, auf den neuesten Stand gebracht.
Wenn der MB-Bytezähler 102 anzeigt, daß alle Bytes im Wort 111 - - verarbeitet sind, wird der zweite
Abruf eingeleitet, indem die neue Adresse im H-Register 212 auf die Addiererausgangsleitung 221 und dann auf das SAR 90 gelesen wird, um das Wort 110--im Hauptspeicher 12 zu adressieren. Wenn diese Adresse auf der Addiererausgangsleitung erscheint.
werden unter Steuerung der Folgesteuereinheit 302 die Bits 27 bis 29 in das Operanden-Rückgriffspeicher-Adreßregister 354 übertragen. Genau wie beim ersten Abrufgang wird das Wort 110-- auf das SDR ausgelesen, und zwar über den Addiererausgangspuf-
fer 270 und die Addiererausgangsleitung 221 sowie auf das L-Register 126. Gleichzeitig mit dem Übertrag auf die Addiererausgangsleitung wird das Wort 110- auf die Wortposition 6 des Rückgriffspeichers 351 gesetzt. Nachdem das Wort 110-- abgerufen ist, werden die werthohen Quotientenbytes vom M-Registet unverändert über den Addierer 210 auf die Addiererausgangsleitung und das SDR 91 geleitet. Vom SDR 91 werden s;e auf die Wortstelle Π0-- im Hauptspeicher 12 gespeichert und dadurch die Ursprungsdaten
des Wortes 110-- des ersten Operanden im Hauptspeicher gelöscht. Wenn die Quotientenbytes auf das Speicherdatenrefjister 91 geleitet und in den Hauptspeicher 12 gespeichert werden, wird der sechste der Speicher-Änderungsmerker 359 eingeschaltet und
dadurch angezeigt, daß das Wort HO-- im Operanden-Rückgriffspeicher jetzt die einzige Quelle der Ursprungsdaten ist, die nötigenfalls für eine wiederholte Ausführung des Befehls herangezogen werden kann.
Die übrigen Speicher- und Abruffolgen werden bei der normalen Verarbeitung so ausgeführt, wie es in den Fig. 7 und 8 dargestellt ist. Die Abruf-Merker 358 und die Speicher-Änderungsmerker 359 werden dabei zu den entsprechenden Zeitpunkten eingeschaltet.
Beim ersten Speichergang wird der in Fig. 2 dargestellte Ursprungsdaten-Änderungsmerker 374 einge-. schaltet und dadurch angezeigt, daß der Befehl nicht
. noch einmal ausgeführt werden kann, ohne daß der Hauptspeicher 12 mit den Operanden neu geladen wird, die im Rückgriffspeicher 351 stehen und deren zugehörige Speicher-Änderungsmerker 359 eingeschaltet sind.
Wenn zu irgendeinem Zeitpunkt nach Beginn der Verarbeitung ein Fehler auftritt, sperrt die in Fig. 2 gezeigte Fehlererkennungsschaltung 305 den Taktgeber der Zentraleinheit über die Leitung 373 während eines Zyklus der Zentraleinheit und gibt ein Signal auf die Betriebsartenwahlschaltung 375, die eine Adresse einer Wiederholungs-Befehlsfolge im Festspeicher 307 auf das Festspeicher-Adreßregister 308 gibt. Bei dieser Wiederholungsfolge werden u. a. die Allgemeinstatus-Merker 303, das PSW-Register 304 und das Befehlsadreßregister 218 aus deren Rückgriffregistern neu geladen. Danach verzweigt diese Wiederholungsbefehlsfolge im Festspeicher zurück zum Befehlsabruf und beginnt die Befehlsausführung noch einmal. Während des zweiten Schrittes des Befehls-Abrufes wird der Ursprungsdaten-Änderungs-Merker 374 abgefragt, und wenn dieser eingeschaltet ist, verursacht die Befehlsfolge im Festspeicher 308 eine Verzweigung zu einer Rückspeicherrouiine Diese Rückspeicherroutine verwendet die Hauptspei-
19 Ol 297
eheradresse des ersten Operanden zum Rückspei- <£iern dieses Operanden aus dem Operanden-Rück- «iffspeicher 351 in den Hauptspeicher 12. Beginnend IBh der Wortadresse HO-- wird die 24-Bit-Adresse des Hauptspeichers, so wie sie während des Befehls-Abrufes aus der Summe von Bl + Dl errechnet wurde, über die Addiererausgangsleitung auf das Speicheradreßregister geleitet. Gleichzeitig werden die Adreßbits 27 bis 29 des Wortes 110 - - in das Operanden-Rückgriff speicher-Adreßregister 354 gesetzt und dadurch das siebte Wort im Speicher 351 gewählt. Alle erwähnten Operationen laufen natürlich unter der Festspeicher-Folgesteuerung. Wenn der mit der Wortposition HO-- verbundene Merker 359 eingeschaltet ist, wird das Wort HO-- des ersten Operanden vom Rückgriffspeicher 351 über die Schaltung 216 auf den Addiererausgangspuffer 217 und von dort auf das Speicherdatenregister übertragen, von wo es in den Hauptspeicher 12 auf den richtigen Platz zurückgespeichert wird.
Nachdem das Wort HO-- zurückgespeichert wurde, wird die Hauptspeicheradresse um ein Wort weitergeschaltet, so daß als nächstes das Wort 111-aus dem Operanden-Rückgriffspeicher genauso zurückgespeichert wird wie das Wort 110--. Dieser Vorgang erfolgt fünfmal, wobei jedesmal geprüft wird, ob der zugehörige Merker 359 eingeschaltet ist. 1st das nicht der Fall, werden keine Hauptspeicherdaten aus dem Operanden-Rückgriffspeicher 351 für das jeweilige Wort zurückgespeichert. Es brauchen im vorliegenden Beispiel nur fünf der acht möglichen Wörter überprüft zu werden, da die Dezimaldivisionsoperanden über höchstens fünf Wörter verteilt sind. Beginnend mit dem werthohen Wort, in diesem Fall dem Wort 110-- laufen die Wortadressen weiter über 111- bis 010--.
Obwohl die Erfindung im Zusammenhang mit einem bestimmten dezimalen Divisionsbefehl im Speicher-Speicher-Format beschrieben wurde, kann sie natürlich auch im Zusammenhang mit anderen Befehlsformaten bei der Ausführung anderer Operationen verwendet werden. Bei Befehlen, die beispielsweise dem RR- oder RS-Format in Fig. 3 entsprechen, kann bei der Speicherung von Ursprungsdaten im Operanden-Rückgriffspeicher 351 eine besondere Art der Adressierung erfolgen, indem das GRS-Adreßregister zusammen mit invertierenden Schaltungen 360 und 361 derart benutzt wird, daß die Speicherplätze 0 und 1 im Rückgriffspeicher 351 vertauscht werden. Ein derartiger Vorgang wird durch Signale auf den Leitungen 362 und 363 von der Decodierschaltung310derFolgesiteuereinheit 302 z. B. bei >5 der Ausführung von Gleitkommaoperationen ausgelöst.
Im beschriebenen Ausführungsbeispiel hatte der Operanden-Rückgriffspeicher eine Kapazität von acht Wörtern. Die Größe dieses Speichers hängt natürlich von der Größe der Operanden ab und muß nötigenfalls genauso entsprechend erweitert werden, wie die Anzahl der Bits im zugehörigen Operanden-Rückgriffspeicher-Adreßregister 354. Die in Fig. 2 in Blöcken dargestellte Folgesteuereinheit 302 der Hauptsteuereinheit 11 ist im Ausführungsbeispiel als Festspeicher mit zugehöriger Schaltung beschrieben, kann jedoch ebenso auch ein sequentielles Verknüpfungsnetzwerk sein.
In die in Fig. 2 gezeigte Steuerschaltung kann ein Fehlerzähler 392 eingebaut werden, der die Anzahl der durch die Fehlererkennungsschaltung 305 festgestellten Fehler zählt. Bei einem bestimmten Zählerstand kann die Steuerung zu einer Fehleranalyseroutine verzweigen oder anderweitig die Versuche stoppen, den laufenden Befehl wiederholt auszuführen. Zum Fehlerzähler gehört eine Rückstelleitung 393, die den Zähler nach erfolgreicher Ausführung eines Befehls auf Null zurückstellt.
Hierzu 5 Blatt Zeichnungen

Claims (5)

19 Ol 297 /J Patentansprüche:
1. Datenverarbeitungsanlage mit Verarbeitungseinrichtungen, Steuereinrichtungen, einem Hauptspeicher, Fehlererkennungseinrichtungen und einer Operations-Wiederholungseinrichtung mit einem Rückgriffspeicher und zugehörigem Adressenregister für die Rückladung von Ursprungsdaten in den Hauptspeicher, dadurchgekennzeichnet, daß das Operanden-Rückgriffspeicher-Adreßregister (354) zur Aufnahme eines bestimmten Hauptspeicheradressenteiis ausgebildet ist, der aus der Hauptspeicheradresse derjenigen Operanden gebildet wird, die aus dem Hauptspeicher (12) für die Durchführung eines Befehls entnommen und in den Operanden-Räckgriffspeicher geladen werden und daß in Verbindung mit dem noch vorhandenen restlichen Hauptspeicheradressenteii eine eindeutige Zuordnung zwischen Operanden-Rückgriffspeicherplätzen und Hauptspeicherplätzen besteht, so daß später wieder benötigte Operandendaten auf Grund der beiden genannten Hauptspeicheradressenteile im Operanden-Rückgriffspeicher aufgefunden und in den Hauptspeicher an ihren ursprünglichen Platz zurückübertragbar sind.
2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß für die Benutzung des Operanden-Rückgriffspeichers (351) jeweils die niedrigstelligen Adreßbus der gerade benutzten Operanden-Hauptspeicheradresse automatisch in das Operanclen-Rückgriffspeicher-Adreßregister (354) geladen werden.
3. Datenverarbeitungsanlage nach den Ansprüchen 1 und/oder 2, dadurch gekennzeichnet, daß zu jedem Speicherplatz im Operanden-Rückgriffspeicher (351) ein Speiicher-Änderungsmerker (359) vorgesehen ist. der gesetzt wird, sobald während der Ausführung eines Befehls die Operandendaten im jeweils zugeordneten Speicherplatz des Hauptspeichers (12) verändert werden, und daß nach Feststellung eines Fehlers für einen erneuten Versuch einer Ausführung des laufenden Befehls nur aus denjenigen Speicherplätzen des Operanden-Rückgriffspeichers Daten in die zugeordneten Speicherplätze des Hauptspeichers zurückübertragen werden, Tür die der betreffende Speicher-Änderungsmerker gesetzt ist.
4. Datenverarbeitungsanlage nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, daß zu jedem Speicherplatz des Operanden-Rückgriffspeichers (351) ein Abruf-Merker (358) vorgesehen ist, der gesetzt wird, sobald Operandendaten, die aus dem Hauptspeicher abgerufen und den Verarbeitungseinrichtungen zugeführt werden, außerdem in den betreffenden Speicherplatz des Operanden-Rückgriffspeichers geladen werden.
5. Datenverarbeitungsanlage nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß ein Ursprungsdaten-Änderungsmerker (374) vorgesehen ist, der gesetzt wird, sobald im Verlauf der Ausführung eines Befehls am Hauptspeicher (12) Operandendaten, die für diesen Befehl benutzt wurden, verändert werden, und daß nach Feststellung eines Fehlers beim erneuten Versuch einer Ausführung des laufenden Befehls nur dann Operandendaten aus dem Operanden-Rückgriffspeicher (351) zum Hauptspeicher zurückübertragen werden, wenn der Ursprungsdaten-Änderungsmerker gesetzt ist.
DE19691901297 1968-01-15 1969-01-11 Datenverarbeitungsanlage mit Steuereinrichtungen, die bei Feststellung eines Fehlers eine erneute Ausführung des laufenden Befehls bewirken Expired DE1901297C3 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US69774068A 1968-01-15 1968-01-15
US69774068 1968-01-15

Publications (3)

Publication Number Publication Date
DE1901297A1 DE1901297A1 (de) 1969-10-23
DE1901297B2 true DE1901297B2 (de) 1976-12-23
DE1901297C3 DE1901297C3 (de) 1977-08-11

Family

ID=

Also Published As

Publication number Publication date
SE341483B (de) 1971-12-27
GB1182030A (en) 1970-02-25
US3533082A (en) 1970-10-06
FR1604085A (de) 1971-07-05
CH479118A (de) 1969-09-30
ES361853A1 (es) 1970-11-01
BE725194A (de) 1969-05-16
NL6900494A (de) 1969-07-17
DE1901297A1 (de) 1969-10-23

Similar Documents

Publication Publication Date Title
DE1901228C3 (de) Datenverarbeitungsanlage mit Einrichtungen zur Wiederholung von Operationen bei Auftreten eines Fehlers
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE2316296C2 (de) Mikroprogrammierbarer Prozessor
DE1246289B (de) Bedingungsregister fuer eine programmgesteuerte Datenverarbeitungsanlage
DE2714805A1 (de) Datenverarbeitungssystem
DE2030812A1 (de) Modulare Datenrechnersysteme
DE2331589A1 (de) Datenverarbeitungsanordnung
DE3131341A1 (de) &#34;pufferspeicherorganisation&#34;
DE2806024A1 (de) Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2856680C2 (de)
DE1935944C3 (de) Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE2054830B2 (de) Informationsverarbeitungsanlage mit mitteln zum zugriff zu speicher-datenfeldern variabler laenge
DE1909090C3 (de) Schutzeinrichtung für den Arbeitsspeicher einer Rechenanlage
DE2513262A1 (de) Digitale codeumwandlungsanordnung
DE2702722C2 (de) Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen
DE2538978C2 (de)
DE2609698C2 (de) Elektronischer Rechner
DE2336676B2 (de) Einrichtung zur Modifizierung von Mikroprogrammbefehlen
DE1296429B (de) Datenbearbeitungsanlage
DE1901297C3 (de) Datenverarbeitungsanlage mit Steuereinrichtungen, die bei Feststellung eines Fehlers eine erneute Ausführung des laufenden Befehls bewirken
DE2717244C2 (de)

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
E77 Valid patent as to the heymanns-index 1977
8339 Ceased/non-payment of the annual fee