-
Der folgenden Beschreibung liegt eine Datenverarbeitungsanlage zugrunde,
deren Zentralprozessor in einen Befehlsaufbereitungsprozessor und in einen Befehlsverarbeitungsprozessor
geteilt ist. Der als PLU (pipeline unit) bezeichnete Befehlsaufbereitungsprozessor
übernimmt im Vorgriff und parallel zur eigentlichen Befehlsausführung des Befehlslesen,
die Befehlsinterpretation,
Adreß-Rechnungen und -Umsetzungen und
das Lesen von Speicheroperanden. Der Befehlsausführungsprozessor EXU(execution unit)
führt die aufbereiteten Befehle aus, speichert die Ergebnisse in einem Registersatz
oder im Hauptspeicher ab und sorgt daneben noch für die Ausführung von Verwaltungsaufgaben
wie die Behandlung von Programmunterbrechungen.
-
Die beiden Prozessoren arbeiten mit eigenen voneinander unabhängigen
Mikroprogrammsteuerungen einschließlich eigener Mikroprogrammspeicher, so daß trotz
der notwendigen Zusammenarbeit in beiden Prozessoren gleichzeitig Verarbeitungsvorgänge
ablaufen können.
-
Weiter wird noch davon ausgegangen, daß Bedienungs- und Wartungsvorgänge
über einen mit einem Serviceprozessor ausgestatteten Bedienplatz erfolgen.
-
Der Serviceprozessor SVP übernimmt den Informationsaustausch mit der
Zentraleinheit.
-
Es ist darauf hinzuweisen, daß die dem Ausführungsbeispiel zugrundegelegte
Aufteilung des Zentralprozessors in einen Befehlsaufbereitungsprozessor PLU und
einen Befehlsausführungsprozessor EXUkeine Voraussetzung für die Anwendung der Erfindung
bedeutet.
-
Die Eingabe der für die Kontextsicherung notwendigen Informationen
in den Zentralprozessor erfolgt vom Bedienplatz aus unter Mitwirkung des Serviceprozessors
SVP in mehreren Schritten, die im folgenden anhand des Flußdiagramms in F i g. 1
näher beschrieben werden. Die für die Dateneingabe und für die weitere Durchführung
der Kontextsicherung wesentlichen Elemente sind in F i g. 2 in Form eines Blockschaltbildes
dargestellt.
-
Der Serviceprozessor 1 (SVP) meldet sich mit einem Anforderungssignal
RTSK= 1 bei der EXU. Diese quittiert mit einem Signal WAIT 1, wenn wegen eines laufenden
Befehls im Augenblick keine Unterbrechung möglich ist. Die EXU merkt sich jedoch
mit SAT=1, daß eine Unterbrechungsanforderung zur Verzweigung in einem Mikroprogrammablauf
»Sammeltest« vorliegt.
-
Nach Beendigung des laufenden Befehls führt die Bedingung SAMT 1 über
eine feste Einsprungadresse (harterzeugte Adresse) in die Sammeltestroutine, in
der RTSI<= 1 erkannt wird. Damit kann die Übergabe der Wartungsparameter beginnen.
-
Die EXU meldet das mit WAIT= 0 dem Serviceprozessor 1 (SVP), worauf
dieser ein Schreibkommando WR-AR für die Eingabe in ein bestimmtes Register 2 (AR)
der EXU sendet, ferner mit einem Steuerbit LHADMPAR, beispielsweise das Bit 9 im
Steuerregister 2 (AR) setzt und die Haltadresse, d. h. die Speicher- oder Befehlsadresse,
bei der die Kontextsicherung erfolgen soll, in die Bitstellen 32 bis 63 des Steuerregisters
2 (AR) eingibt. Der Serviceprozessor 1 (SVP) zeigt das Ende des Ladevorgangs mit
einem Signal SDAT=I an. Die EXU antwortet darauf mit WAIT= 1 und fängt an, die in
das Steuerregister 2 (AR) eingegebenen Steuerbit abzufragen. Dem Testergebnis gemäß
wird ein entsprechendes Mikroprogramm abgerufen. Im vorliegenden Fall handelt es
sich um das die Funktion (Laden Haltadresse und MAlNT-Parameter) LHADMPAR kennzeichnende
Steuerbit 9. Dementsprechend veranlaßt die EXU nun mit einem Signal MTP die PLU
(die zuletzt in einer Warteschleife verkehrt hatte, weil keine Anforderung der EXU
vorlag) dazu, die durch die Bit 32 bis 63 des Steuerregisters 2 (AR) bestimmte Speicher-bzw.
Befehlsadresse in ein der PLU zugeordnetes Register 3 (PHLTAD) zur Aufnahme von
Haltadressen
zu übernehmen. Die PLU meldet die Übernahme mit einem Signal MPEX=I
an die EXU zurück, worauf diese WAIT= 0 setzt und damit dem Serviceprozessor 1 (SVP)
einen weiteren Eintrag ermöglicht. Der Serviceprozessor 1 (SVP) sendet erneut ein
Schreibkommando WR-AR und gibt die für die Kontextsicherung notwendigen Wartungsparameter
(MAINTPAR) mit SDAT=I an die EXU, worauf diese die soeben ins Steuerregister 2 (AR)
eingeschriebenen Daten MAINT-PAR in ein Sonderregister 4 (MAINTPARREG) übergibt,
das speziell für die Aufnahme der Wartungsparameter für die Kontextsicherung sowie
für eine willkürlich veranlaßte Fehlersimulation eingeführt wurde.
-
Die Fig. 3 zeigt eine mögliche Belegung des Sonderregisters 4 (MAINTPARREG).
Danach sind die Bit 0 bis 15 und 23 unbenützt. Die Bit 16 bis 22 sind der hier nicht
betrachteten Fehlersimulation vorbehalten.
-
Das Bit 24 SVCONT bestimmt, ob eine Kontextsicherung erfolgen soll
(SvCONT= 0 : keine Kontextsicherung, SVCONT= 1: Kontextsicherung). Das Bit 25 SVMEMgibt
an, ob anschließend an den Prozessorkontext auch noch der Speicherkontext sichergestellt
werden soll.
-
Wenn das Bit 26 DETFILE= I gesetzt ist, wird der Kontext in der sogenannten
Systemfehlerdatei abgelegt. Die Bit 27 bis 31 geben die Anzahl der 16-Byte-Blöcke
des Speicherkontext an. Schließlich ist noch in den Bit 32 bis 63 die reelle Anfangsadresse
eines 512 Byte großen Hauptspeicherbereichs enthalten, in dem der Kontext gespeichert
wird. Der adressierte Hauptspeicherbereich ist vom Programm her nicht zugänglich
und wird daher als Schattenspeicher bezeichnet.
-
Nach dem Abschluß der Übertragung der Wartungsparameter MAINTPAR
aus dem Steuerregister 2 (AR) in das Sonderregister 4 (MAINTPARREG) testet die EXU
ein Signal OFFLlNE= 1. Verläuft der Test positiv, dann erfolgt der Übergang in den
Stoppzustand der Maschine. Darauf soll später noch kurz eingegangen werden. Hier
interessiert vorzugsweise der negative Ausgang des Tests, der die EXU veranlaßt,
ein Anforderungssignal MOP= 1 an die PLU zu richten und ihr ein Signal STRTPL= I
zu übermitteln. Sobald die PLUSTRTPL= 1 erkennt, wendet sie sich ihren normalen
Aufgaben, d. h. dem Befehlslesen der Befehlsinterpretation usw. zu. Die EXU nimmt
die Verarbeitung der anstehenden Programmbefehle wieder auf.
-
Bei den bisher beschriebenen, durch den Serviceprozessor 1 (SVP)
veranlaßten Eingaben von Informationen zur Kontextsicherung in die EXU und PLU handelt
es sich um eine Vorbereitungsphase. Eine anschließende Aktivierungsphase wird ebenfalls
durch den Serviceprozessor 1 (SVP) ausgelöst. Er richtet dazu ein erneutes Anforderungssignal
RTSK= 1 an die EXU, die daraufhin ein Signal WAIT= 1 zurücksendet, bis der gerade
ablaufende Befehl ausgeführt ist. Wenn der Serviceprozessor 1 (SVP) mit WAIT 0 zur
Eingabe aufgefordert wird, sendet er ein Steuerkommando RMMAINT (Lesen und Modifizieren
MAINT-Register), das als Bit 0 in das erste Steuerregister 2 (AR) gesetzt wird und
die Übernahme weiterer Informationen in die Bitstellen 0 bis 3 eines zweiten Steuerregisters
5 (MAINTREG) ermöglicht. Die einzelnen Bit haben dabei folgende Bedeutung: Bit 0
RMAHLT Speicheradressen-Halt beim Lesen, Bit 1 WMAHLT Speicheradressen-Halt beim
Schreiben,
Bit 2 PCHALT Befehlszähler-Halt, Bit 3 V virtuelle Adresse.
-
Es ist ohne weiteres ersichtlich, daß jeweils nur eines der Bit 0
bis 2 gesetzt sein darf. In allen drei Fällen kann aber noch das Bit 3 gesetzt sein.
Damit ergeben sich insgesamt sechs Möglichkeiten für die Bestimmung der Adressenart.
-
Mit der Eingabe der genannten Kennzeichenbit in das zweite Steuerregister
5 (MAINTREG) stehen im Zentralprozessor alle für die Kontextsicherung erforderlichen
Informationen zur Verfügung. EXU und PLU fahren in der Programmverarbeitung wieder
fort, bis als Adresse für einen als nächster zur Ausführung vorgesehener Befehl
oder als in diesem Befehl enthaltene Speicheradresse die in dem Register 3 (PHLTAD)
stehende, vorgegebene Adresse auftaucht Dies wird durch einen ständigen Adressenvergleich
mit Hilfe eines Adressenvergleichers 6 (COMP) erkannt.
-
Der Adressenhalt wird wieder ausgeschaltet und die Kippstufe 7 (FF)
zurückgesetzt. Der Prozessor verzweigt in ein Mikroprogramm, das die Kontextsicherung
ausführt. Falls im Sonderregister 4 (MAINTPAR-REG) das Bit 25 SVMEM= I gesetzt ist,
wird anschließend an den Prozessorkontext der Speicher-Kontext abgelegt, wobei die
Bit 27 bis 31 im Sonderregister 4 (MAINTPARREG) die Anzahl der sichergestellten
16-Byte-Blöcke festlegen.
-
Mit Bit 26 DETFILE= I geht der Prozessor in den Funktionszustand
P4 über. Die sodann ablaufende P4-Routine übernimmt den Kontext in die Systemfehlerdatei.
Der Wartungskonsole wird die erfolgte Kontextsicherung gemeldet und die Befehlsverarbeitung
wird wieder aufgenommen.
-
Der Adressenvergleich hängt von den Einträgen in den Bitstellen 0
bis 3 des zweiten Steuerregisters 5 (MAINTREG) in der EXU ab. So kann anstelle einer
Befehlsadresse, die einen bestimmten Befehl bezeichnet, auch eine Speicheradresse,
unter der ein Datum in den Speicher eingeschrieben oder aus ihm gelesen wird, zur
Auslösung des Adressenhalts dienen. Alle Adressen können reelle oder virtuelle Adressen
sein.
-
Die Durchschaltung der aktuellen Adresse gemäß ihrer Art bzw. Herkunft
auf den Adressenvergleicher 6 (COMP) besorgt ein von dem Bit 0 bis 3 gesteuerter
Multiplexer 13, der die Adressen wahlweise aus dem Befehlszähler 14 (PC) dem Hauptspeicher-Adreßbus
15 oder dem Pufferspeicher (Cache-)Adreßbus 16 übernimmt Bei einem positiven Ergebnis
des Adressenvergleichs
wird eine Kippstufe 7 (FF) gesetzt. Dadurch merkt sich die
EXU, daß eine Unterbrechungsanforderung vorliegt. Nach Beendigung des gerade auszuführenden
Befehls wird der Ablauf des folgenden Befehls, der mit der vorgegebenen Adresse
in Beziehung steht, zunächst angehalten und das voraussetzungsgemäß gesetzte Bit
24 SVCONT=1 im Sonderregister 4 (MAINTPAR-REG) abgefragt.
-
Der vorher nur kurz erwähnte Fall, daß die EXU am Ende eines Eingabezyklus
das Bit OFFLINE I erkennt und daher einen Maschinenstopp herbeigeführt, tritt dann
ein, wenn die Vorbereitung zur Fehlersimulation aus dem Stoppzustand heraus erfolgte.
Das bedeutet also, daß das beschriebene Verfahren zur Einleitung einer Kontextsicherung,
das primär als ONLINE-Verfahren konzipiert ist, auch aus dem Stoppzustand der Maschine
heraus durchgeführt werden kann. Dazu ist es notwendig, daß der Serviceprozessor
1 (SVP) zunächst bestimmte, für das jeweilige System vereinbarte Mikroprogrammspeicheradressen
für EXU und PLU angibt. Die EXU setzt das Bit OFFLINE =1 und geht in die schon erwähnte
Sammeltestroutine über. Der weitere Ablauf entspricht dem bereits beschriebenen,
bis am Ende über OFFLINE =1 wieder der Stoppzustand erreicht wird.
-
Im folgenden soll noch kurz auf einige Bausteine der in F i g. 2
dargestellten Einrichtung eingegangen werden, die bei der Beschreibung des Verfahrens
zur Einleitung einer Fehlersimulation bisher nicht behandelt wurde. So greift das
ein positives Ergebnis eines Adressenvergleichs kennzeichnende Signal am Ausgang
des Adressenvergleichers 6 (COMP) nur dann auf die Kippstufe 7 (FF)durch und setzt
sie, wenn eines der Bit 0 bis 2 im zweiten Steuerregister 5 (MAINTREG) gesetzt ist.
-
Ferner wird das Ausgangssignal der Kippstufe 7 (FF) über das UND-Glied
17 nur dann auf ein Netzwerk 18 weitergereicht, wenn ein Signal END besagt, daß
ein vorausgehender Befehl ausgeführt und eine Unterbrechung möglich ist. Das Netzwerk
18 gibt bei einem positiven Ergebnis des Adressenvergleichs an drei Ausgängen Ausgangssignale
ab, von denen zwei von den Bits 16 ESIM (Fehlersimulation) und 24 SVCONT (Kontextsicherung)
abhängen. Es treten immer zwei Ausgangssignale, nämlich das Signal ADHLT (Adressenhalt)
und das Signal ERR (Fehlersimulation) oder das Signal ADHLT und das Signal CONT(Kontextsicherung)
gleichzeitig auf. Ihre Dauer entspricht der Dauer des Signals END. Die Kippstufe
7 (FF) wird zurückgesetzt, wenn der Adressenhalt ausgeschaltet wird, wie schon erwähnt
wurde.