-
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren und eine
Anordnung zur Einleitung einer Simulation von bestimmten Fehlern an frei wählbaren
Stellen
eines Programmablaufs mittels entsprechender Wartungsfunktionen ohne nennenswerte
Störung des Programmablaufs, insbesondere ohne vorausgehenden Übergang der Datenverarbeitungsanlage
in den Stopp zustand vorzustellen.
-
Gemäß der Erfindung wird diese Aufgabe durch die Merkmale im kennzeichnenden
Teil des Patentanspruchs 1 gelöst. Eine entsprechende Anordnung ist dem Patentanspruch
2 zu entnehmen.
-
Im folgenden wird die Erfindung anhand der Zeichnung näher beschrieben.
Es zeigt Fig. 1 ein Flußdiagramm zur Darstellung der Eingabeprozedur von Wartungsfunktionen
im Zentralprozessor, F i g. 2 ein Blockschaltbild der erfindungsgemäßen Anordnung
zur Einleitung einer Fehlersimulation und F i g. 3 den Inhalt eines Registers zur
Aufnahme von Wartungsparametern.
-
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 das 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 EXU keine Voraussetzung für die Anwendung der
Erfindung bedeutet.
-
Die Erzeugung von Fehlern soll mindestens keinen nennenswerten zusätzlichen
Schaltungsaufwand erfordern. Vor allem aber sollen die Datenwege nicht langsamer
gemacht werden. Dies würde beispielsweise durch die Einführung von Verknüpfungsgliedern
zur absichtlichen Fälschung von Daten geschehen. Die gleiche Wirkung wie die Fälschung
von Daten hat jedoch das Vortäuschen einer falschen Parität. Letzteres ist mit den
Paritätsgenerator-Bausteinen, die beim Einsatz als Paritätsprüfer jeweils mindestens
einen freien Eingang aufweisen, durch entsprechende Steuersignale an diesen Eingängen
leicht möglich. Auf diese Weise können beispielsweise folgende Fehler simuliert
werden: a) Arbeitsspeicherfehler durch ein Steuerbit ACTER, b) Pufferspeicherfehler
durch ein Steuerbit GENCE, c) PLU-Fehler durch ein Steuerbit GENPE, d) EXU-Fehler
durch ein Steuerbit GENEE und
f) Fehler im EXU-Mikroprogrammspeicher durch ein Steuerbit
GENECC.
-
Die Eingabe der genannten Steuerbit und der Speicher- oder Befehls-
und Mikrobefehlsadressen in den Zentralprozessor erfolgt vom Bedienplatz aus unter
Mitwirkung des Serviceprozessor SVP in mehreren Schritten, die im folgenden anhand
des Flußdiagramms in Fig. l näher beschrieben werden. Die für die Dateneingabe und
für die weitere Durchführung des Verfahrens zur Einleitung einer Fehlersimulation
wesentlichen Elemente sind in F i g. 2 in Form eines Blockschaltbilds dargestellt.
-
Der Serviceprozessor 1 (SVP) meldet sich mit einem Anforderungssignal
RTSK 1 bei der EXU. Diese quittiert mit einem Signal Walz 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 einen Mikroprogrammablauf
»Sammeltest« vorliegt.
-
Nach Beendigung des laufenden Befehls führt die Bedingung SAT=I über
eine feste Einsprungadresse (harterzeugte Adresse) in die Sammeltestroutine, in
der RTSK= 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 Fehlersimulation 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 SAAT =1 an. Die EXU antwortet darauf mit WAIT I 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 MAINT-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 zugeordnete Register 3 (PHLTAD) zur
Aufnahme von Haltadressen zu übernehmen. Die PLU meldet die Übernahme mit einem
Signal MPEX= 1 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 Informationen MAINT-PAR über die gewünschte Art
der Fehlersimulation einschließlich der EXU- oder PLU-Mikrobefehlsadresse (EO-Adresse),
bei der der Fehler simuliert werden soll, in das EXU-Steuerregister 2 (AR) ein.
Der Serviceprozessor 1 (SVP) meldet das Ende der Eingabe der Wartungsparameter MAINTPAR
mit SAAT =1 an die EXU, worauf diese die soeben ins Steuerregister 2 (AR) eingeschriebenen
Daten MAINTPAR in ein Sonderregister 4 (MAINTPARREG) übergibt, das speziell für
die Aufnahme der Wartungsparameter für die Fehlersimulation sowie für eine willkürlich
veranlaßte Kontextsicherung eingeführt wurde.
-
Die F 1 g. 3 zeigt eine mögliche Belegung des Sonderregisters 4 (MAINTPARREG).
Danach sind die
Bit 0 bis 15 und 23 unbenützt. Die Bit 24 bis 31
sind der hier nicht betrachteten Kontextsicherung vorbehalten.
-
Das Bit 16 ESIM bestimmt, ob eine Fehlersimulation erfolgen soll (ESIM
=0: keine Fehlersimulation, ESIM-= 1: Fehlersimulation). Das Bit 17 DERR legt die
Zahl der Fehler fest. Mit DERR=0 wird nur ein einmaliger Fehler erzeugt. DERR =
1 hat zur Folge, daß bei Fehlern, auf die das System mit einer Befehlswiederholung
reagiert, dieser Fehler ein zweitesmal simuliert wird. Auf die Bedeutung der Bit
18 bis 22 wurde bereits bei der Aufzählung der Beispiele von zu simulierenden Fehlern
hingewiesen. Die Bit 32 bis 63 geben die Mikrobefehlsadresse (EO-Adresse) der EXU
oder PLU an, die eine Elementaroperation auswählt, bei deren Ausführung der bezeichnete
Fehler simuliert werden soll.
-
Nach dem Abschluß der Übertragung der Wartungsparameter MAINTPAR
aus dem Steuerregister 2 (AR) in das Sonderregister 4(MAINTPARREG) testet die EXU
ein Signal OFFLINE = 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 MTP =1 an die PLU zu richten und ihr ein Signal STRTPL=I
zu übermitteln. Sobald die PLU STRTPL= I 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 Fehlersimulation in die EXU und PLU handelt es sich
um eine Vorbereitungsphase. Eine anschließende Aktivierungsphase wird ebenfalls
durch den Servicepro zessor 1 (SVP) ausgelöst. Er richtet dazu ein erneutes Anforderungssignal
RTSK=I an die EXU, die daraufhin ein Signal WATT 1 zurücksendet, bis der gerade
ablaufende Befehl ausgeführt ist. Wenn der Servicepro zessor 1 (SVP) mit WATT=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 und 6 bis 8 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, Bit
6 EEOSP EXU-Elementaroperation-Stopp, Bit 7 IGNAB Ignoriere A/#Bit in der EXU-EO-Adresse,
Bit 8 PEOSP PLU-Elementaroperation-Stopp.
-
Während die Bedeutung der Bit 0 bis 3, 6 und 8 ohne weiteres erkennbar
ist, bedarf die Wirkung des Bits 7 einer näheren Erläuterung. Zur Vermeidung von
Wartezeiten bei bedingten Sprüngen im Befehlsablauf enthält ein »Sprungwerk« der
PLU zwei Sätze A und B von Befehlsregistern, Befehlspuffern und Warteregi, stern,
die durch das A/BBit wählbar sind. Sobald ein Sprungbefehl auftritt, werden beide
alternativen Sprungnachfolger »auf Verdacht« gelesen und vorverarbeitet, so daß
der richtige vorbereitete Nachfolgebefehl unabhängig von dem Ausgang der Überprüfung,
ob die zugehörige Sprungbedingung erfüllt ist oder nicht, in dem Augenblick zur
Verfügung steht, in dem das Prüfungsergebnis vorliegt.
-
Da aber zum Zeitpunkt der Eingabe der Stoppadresse nicht vorhersehbar
ist, in welchem der beiden Sätze A und Bdes Sprungwerks der Befehl mit der Stoppadresse
enthalten sein wird, muß das die beiden Sätze unterscheidende Adreßbit, das A/B-Bit,
beim Adressenvergleich unberücksichtigt bleiben.
-
Mit der Eingabe der genannten Kennzeichenbit in das zweite Steuerregister
5 (MAINTREG) stehen im Zentralprozessor alle zur Fehlersimulation 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 vorgesehenen 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. Eine Kippstufe 7 (FF) wird
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 statt dessen nach Abfrage des Bits 16 ESIM=I im Sonderregister 4 (MAINTPARREG),
das voraussetzungsgemäß gesetzt ist, die Bit 32 bis 63 des Sonderregisters 4 (MAINTPARREG)
über einen EXU-Speicheradreßbus 8 (EMA-BUS) in ein weiteres Register 9 (ESTAD) der
EXU geladen. Diese Bit stellen, wie schon erwähnt wurde, die vorgegebene Adresse
eines Mikrobefehls dar, bei dessen Ausführung ein Fehler simuliert werden soll.
Gleichfalls über den EMA-BUS 8 werden die Bit 17 bis 22 aus dem Sonderregister 4
(MAINTPARREG) in ein der PLU zugeordnetes Register 10 (ESIMREG) übergeben, das dann
die Informationen über die Fehlerart und deren eventuelle Wiederholung enthält Anschließend
wird der Adressenhalt ausgeschaltet, die Kippstufe 7 (FF) zurückgesetzt und die
Befehlsverarbeitung wieder aufgenommen. Wenn der durch die vorgegebene Mikrobefehlsadresse
bestimmte Mikrobefehl an die Reihe kommt, was mit Hilfe von weiteren Adressenvergleichern
11 und 12 festgestellt wird, wird der gewünschte Maschinenfehler ausgelöst. Die
im Register 10 (ESIMREG) stehenden Informationen dienen dabei als harte Einsprungadressen
für entsprechende Mikroprogramme oder unmittelbar als Steuerbit zur Fälschung von
Paritätsbit.
-
Abhängig von den Einträgen in den Bitstellen 0 bis 3 des zweiten
Steuerregisters 5 (MAINTREG) in der EXU kann anstelle einer Befehlsadresse, die
einen bestimmten Befehl bezeichnet, auch eibe Speicheradresse, unter der ein Datum
in den Speicher eingeschrieben oder aus ihm gelesen wird, zur Auslösung des ersten
Adressenhalts dienen. Die Mikrobefehlsadresse bestimmt dann eine ausgewählte Stelle
im Ablauf des Schreib- oder Lesevorgangs.
-
Die Durchschaltung der aktuellen Adresse gemäß ihrer Art bzw. Herkunft
auf den Adressenvergleicher 6 (COMP) besorgt ein von den 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.
-
Die erzeugten Fehler werden von der Hardware-Feh-
lerüberwachung
erkannt, die mit einem Signal AMER die Verzweigung in eine Masehinen-Fehlerroutine
veranlaßt. Auf Einzelheiten der Maschinenfehlerbe handlung, wie Fehlerkorrektur,
Befehlswiederholung oder Einleitung von Diagnoseprogrammen soll hier nicht eingegangen
werden. Falls als Reaktion eine Befehlswiederholung erfolgt, dann entscheidet das
Bit 17 DERR im Register 9(ESIMREG) darüber, ob der Fehler bei der vorgegebenen EO-Adresse
erneut auftritt oder nicht.
-
Der vorher nur kurz erwähnte Fall, daß die EXU am Ende eines Eingabezyklus
das Bit OFFLINE= 1 erkennt und daher einen Maschinenstopp herbeiführt, tritt dann
ein, wenn die Vorbereitung zur Fehlersimulation aus dem Stoppzustand heraus erfolgte.
Das bedeutet also, daß das beschriebene Verfahren zur Einleitung einer Fehlersimulation,
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 I und geht in die schon erwähnte
Sammeltestroutine über. Der weitere Ablauf entspricht dem bereits beschriebenen,
bis am Ende über OFFLINE=1 wieder bereits beschriebenen, bis am Ende über OFFLINE
I 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,
von denen zwei von den Bit 16 ESIM 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 wird zurückgesetzt, wenn der Adressenhalt
ausgeschaltet wird, wie schon erwähnt wurde.
-
Bei einem positiven Ergebnis eines Vergleichs der vorgegebenen Mikrobefehlsadresse
im Register 9 (ESTAD) mit der Adresse eines soeben aufgerufenen PLU- oder EXU-Mikrobefehls
PEOADR bzw.
-
EEOADR wird eine zweite Kippstufe 19 (EOCOMP) gesetzt. Mit dem Ausgangssignal
der Kippstufe 19 (EOCOMP) werden die Torschaltungen 20a bis 20e für die im Register
10 (ESIMREG) stehenden Informationen über die Art des zu simulierenden Fehlers durchlässig
gesteuert. Gleichzeitig entsteht ein Signal PLU-STOP oder EXU-STOP bei Koinzidenz
eines der Bit 6 EEOSP oder 8 PEOSP im zweiten Steuerregister 5 (MAINTREG) der EXU
mit einem positiven Ergebnis des Adressenvergleichs mit einer EXU-Mikrobefehlsadresse
EEOADR bzw. mit einer PLU-Mikrobefehlsadresse PEOADR. Das Signal EXU-STOP hält entsprechend
den Ablauf von Elementaroperationen in der PLU- oder in der EXU an, wenn ESIM nicht
gesetzt ist.
-
Die Kippstufe 19 (EOCOMP) wird durch das Signal AMER zurückgesetzt,
das mit der Einleitung der durch den simulierten Fehler ausgelösten Maschinenfehlerroutine
entsteht.