Technisches Gebiet
-
Diese Erfindung bezieht sich auf fehlertolerierende
Datenverarbeitungssysteme.
-
Die Erfindung bezieht sich auch auf ein Verfahren zum
Steuern des Betriebs eines fehlertolerierenden
Datenverarbeitungs systems.
Stand der Technik
-
Ein fehlertolerierendes Datenverarbeitungssystem der
beschriebenen Art ist aus den U.S. Patent Nr. 4,453,215
bekannt. Gemäß dem bekannten System weisen Informations-
Verarbeitungsteile des Systems einen Duplikatpartner auf.
Fehlererfassungseinrichtungen prüfen den Betrieb des
Systembusaufbaus und von jeder Systemeinheit, um
Informationsübertragungen nur auffehlerfreien Busleitern
und zwischen fehlerfreien Einheiten vorzusehen.
Offenbarung der Erfindung
-
Eine Aufgabe der vorliegenden Erfindung besteht darin, ein
fehlertolerierendes Datenverarbeitungssystem der
beschriebenen Art zu schaffen, bei dem die Datenintegrität
während des Ausführens von Systembefehlen beibehalten
werden kann.
-
Daher wird gemäß einem Aspekt der vorliegenden Erfindung,
wie dies in Anspruch 1 bestimmt ist, vorgesehen: Ein
fehlertolerierendes Datenverarbeitungssystem, umfassend
eine Verarbeitungseinrichtung zum Ausführen von Befehlen,
wobei die Verarbeitungseinrichtung eine
Indexregisterspeichereinrichtung zum Speichern von Kopien
modifizierbarer Indexregister umfaßt, die beim Ausführen von Befehlen
durch die Verarbeitungseinrichtung verwendbar sind; eine
Hauptspeichereinrichtung, die Speicherstellen zum Speichern
modifizierbarer Indexregisterdaten der Indexregister
umfaßt; und eine Datenbuseinrichtung, die zwischen die
Verarbeitungs einrichtung und die Hauptspeichereinrichtung
zum Übermitteln von Indexregisterdaten zwischen diesen
geschaltet ist, gekennzeichnet durch eine Vielzahl von
Datenspeicherregistern, die bei Speicherstellen angeordnet
sind, wobei jede der Speicherstellen zwei
Datenspeicherregister aufweist, eines zum Speichern ursprünglicher
Indexregisterdaten und eines zum Speichern modifizierter
Indexregisterdaten; eine Gültigkeitsanzeigeeinrichtung, die
mit der Vielzahl von Datenspeicherregistern zum Bestimmen
verbunden ist, welches der Datenspeicherregister bei jeder
der Speicherstellen ursprüngliche Indexregisterdaten
enthält und welches modifizierte Indexregisterdaten
enthält; und eine Eingabe-Ausgabe-Einrichtung, die auf die
Gültigkeitsanzeigeeinrichtung anspricht und zwischen die
Datenbuseinrichtung und die Vielzahl von
Datenspeicherregistern geschaltet ist, wobei die Eingabe-Ausgabe-
Einrichtung zum Schreiben modifizierter Indexregisterdaten
von der Datenbuseinrichtung zu jenen
Datenspeicherregistern, die durch die Gültigkeitsanzeigeeinrichtung
bestimmt sind, ausgelegt ist, so daß sie während einer
Befehlsausführung durch die Verarbeitungseinrichtung
modifizierte Indexregisterdaten enthalten, und ausgelegt
ist, ursprüngliche Indexregisterdaten von jenen
Datenspeicherregistern zur Datenbuseinrichtung zu lesen, die
durch die Gültigkeitsanzeigeeinrichtung bestimmt sind,
während sie ursprüngliche Indexregisterdaten während einer
Wiederholungsoperation der Verarbeitungseinrichtung
enthalten, und wobei die Eingabe-Ausgabe-Einrichtung einen Zähler
zum aufeinanderfolgenden Zählen der Speicherstellen, von
denen die Daten zu lesen sind, und eine Zugriffseinrichtung
umfaßt, die zum Zugreifen auf jede der Speicherstellen in
Erwiderung auf den Zählwert des Zählers mit dem Zähler
verbunden ist.
-
Gemäß einem anderen Aspekt der Erfindung, wird, wie dies in
Einzelheiten in Anspruch 7 bestimmt ist, vorgesehen: Ein
Verfahren zum Steuern des Betriebs eines
fehlertolerierenden Datenverarbeitungssystems, gekennzeichnet durch die
Schritte: Ausführen von Befehlen und Durchführen von
Wiederholungsoperationen mit einem Prozessor; Speichern
modifizierbarer Inhalte eines Indexregisters in dem
Prozessor für eine Anwendung bei den Befehlsausführungen;
Speichern ursprünglicher Indexregisterinhalte und
modifizierter Indexregisterinhalte in einer Vielzahl paarweise
angelegter Datenspeicherregister, die in Speicherstellen
angeordnet sind, während aufeinanderfolgender
Befehlsausführungen; aufeinanderfolgendes Zählen der Speicherstellen
und Zugreifen auf jede der Speicherstellen in Erwiderung
auf den Zählwert und Anzeigen in einer Vielzahl
zugehörender Gültigkeitsanzeigeeinrichtungen, welches der paarweisen
Datenspeicherregister die ursprünglichen
Indexregisterinhalte bei jeder Speicherstelle enthält; und Übertragen
der ursprünglichen Datenregisterinhalte von jeder der
Speicherstellen zu dem Prozessor, der auf die Anzeige der
Gültigkeitsanzeigeeinrichtung entsprechend zu der
Speicherstelle anspricht, während einer Wiederholungsoperation.
Kurze Beschreibung der Zeichnungen
-
Ein Ausführungsbeispiel der vorliegenden Erfindung wird nun
beispielsweise unter Bezug auf die beiliegenden Zeichnungen
beschrieben, bei denen:
-
Fig. 1 ein Blockdiagramm eines Datenverarbeitungssystems
für einen allgemeinen Zweck ist, das die vorliegende
Erfindung umfaßt;
-
Fig. 2 ein Blockdiagramm ist, das eines der
Zentralprozessor-Untersystemmodule der Fig. 1 darstellt;
-
Fig. 3 ein Blockdiagramm eines NEAT-Unterstützungschips der
Fig. 2 ist;
-
Fig. 4 ein Blockdiagramm von einem der beschreibbaren
Steuer-Speichermodule der Fig. 1 darstellt;
-
Fig. 5 ein Blockdiagramm eines Teils des
Datensicherungsmoduls der Fig. 1 zum Vergleichen primärer
und sekundärer Daten ist;
-
Fig. 6 ein Blockdiagramm eines anderen Teils des
Datensicherungsmoduls der Fig. 1 zum Vergleich primärer und
sekundärer Adressen ist;
-
Fig. 7 ein Blockdiagramm von noch einem anderen Teil des
Datensicherungsmoduls der Fig. 1 zum Vergleichen von
Adressen und Mikroanweisungen der Anweisungsspeichereinheit
ist;
-
Fig. 8A und 8B, wenn sie längs Linie a-a verbunden werden,
ein schematisches Diagramm einer Taktverteilungsschaltung
des Virtuellbefehl-Wiederholungsmoduls der Fig. 1
ausbilden;
-
Fig. 9 ein schematisches Diagramm eines Registers zum
Empfangen von Eingangssignalen für das Virtuellbefehl-
Wiederholungsmodul ist;
-
Fig. 10 ein schematisches Diagramm eines Teils des
Steuerschaltkreises des Virtuellbefehl-Wiederholungsmoduls
darstellt;
-
Fig. 11 ein schematisches Diagramm eines anderen Teils des
Steuerschaltkreises des Virtuellbefehl-Wiederholungsmoduls
zeigt;
-
Fig. 12A und 12B, längs Linie b-b miteinander verbunden,
ein schematisches Diagramm eines anderen Teils des
Steuerschaltkreises des Virtuellbefehl-Wiederholungsmoduls
darstellen;
-
Fig. 13 eine Abbildung ist, die die Beziehung der Fig. 13A,
13B und 13C darstellt, die, wenn sie zusammengenommen
werden, ein schematisches Diagramm eines Zustandsregisters
des Virtuellbefehl-Wiederholungsmoduls ausbilden;
-
Fig. 14A und 14B, längs Linie c-c miteinander verbunden,
ein schematisches Diagramm eines Dateneingaberegisters des
Virtuellbefehl-Wiederholungsmoduls ausbilden;
-
Fig. 15 ein Invertierer ist, der einen Teil des
Steuerschaltkreises des Virtuellbefehl-Wiederholungsmoduls
ausbildet;
-
Fig. 16 eine Abbildung ist, die die Beziehung der Fig. 16A,
16B, 16C und 16D darstellt, die zusammengenommen ein
schematisches Diagramm eines Datenausgaberegisters des
Virtuellbefehl-Wiederholungsmoduls ausbilden;
-
Fig. 17 ein NAND-Gatter ist, das ein Teil des
Steuerschaltkreises des Virtuellbefehl-Wiederholungsmoduls
ist;
-
Fig. 18 ein schematisches Diagramm eines Multiplexers einer
Abrufregistrierung des Virtuellbefehl-Wiederholungsmoduls
ist;
-
Fig. 19 ein schematisches Diagramm einer
Vergleichereinrichtung der Abrufregistrierung des
Virtuellbefehl-Wiederholungsmoduls darstellt;
-
Fig. 20A und 20B längs Linie d-d verbunden, ein
schematisches Diagramm eines Teils eines Zählers der
Abrufregistrierung des Virtuellbefehl-Wiederholungsmoduls
ausbilden;
-
Fig. 21A und 21B, längs Linie e-e verbunden, ein
schematisches Diagramm eines anderen Teils des Zählers der
Fig. 20A und 20B ausbilden;
-
Fig. 22 ein schematisches Diagramm eines Teils des
Speichers der Abrufregistrierung des Virtuellbefehl
Wiederholungsmoduls ist;
-
Fig. 23 ein schematisches Diagramm eines anderen Teils des
Speichers der Fig. 22 darstellt;
-
Fig. 24 ein schematisches Diagramm eines anderen Teils des
Speichers der Fig. 22 darstellt;
-
Fig. 25 ein schematisches Diagramm eines anderen Teils des
Speichers der Fig. 22 zeigt;
-
Fig. 26 ein schematisches Diagramm eines anderen Teils des
Speichers der Fig. 22 ist;
-
Fig. 27 ein schematisches Diagramm eines Teils des
Steuerschaltkreises des Virtuellbefehl-Wiederholungsmoduls
darstellt;
-
Fig. 28A und 28B, längs Linie f-f verbunden, ein
schematisches Diagramm einer Dekodiererschaltung zum
Dekodieren einer Adresse für eine Anwendung durch eine
Indexregisterregistrierung des Virtuellbefehl
Wiederholungsmoduls ausbilden;
-
Fig. 29A und 29B, längs Linie g-g verbunden, ein
schematisches Diagramm eines Teils der Flipflops für ein
gültiges Bit und ein modifiziertes Bit der
Indexregisterregistrierung des Virtuellbefehl-
Wiederholungsmoduls ausbilden;
-
Fig. 30A und 30B, längs Linie h-h verbunden, ein
schematisches Diagramm eines anderen Teils der Flipflops
der Fig. 29A und 29B ausbilden;
-
Fig. 31 ein schematisches Diagramm eines Teils des
Speichers der Indexregisterregistrierung des
Virtuellbefehl-Wiederholungsmoduls darstellt;
-
Fig. 32 ein schematisches Diagramm eines anderen Teils des
Speichers der Fig. 1 ausbildet;
-
Fig. 33 ein schematisches Diagramm eines anderen Teils des
Speichers der Fig. 31 ist;
-
Fig. 34 ein schematisches Diagramm eines anderen Teils des
Speichers der Fig. 31 zeigt;
-
Fig. 35 ein schematisches Diagramm eines anderen Teils des
Speichers der Fig. 31 darstellt;
-
Fig. 36A und 36B, längs Linie i-i verbunden, ein
schematisches Diagramm eines anderen Teils des
Steuerschaltkreises des Virtuellbefehl-Wiederholungsmoduls
ausbilden;
-
Fig. 37 eine Widerstandsanordnung des Steuerschaltkreises
des Virtuellbefehl-Wiederholungsmoduls ist;
-
Fig. 38A und 38B, längs Linie j-j verbunden, ein
schematisches Diagramm eines Zählers einer
Verfolgungsregistrierung des Virtuellbefehl-
Wiederholungsmoduls ausbilden;
-
Fig. 39 ein schematisches Diagramm eines Teils des
Speichers der Verfolgungsregistrierung des Virtuellbefehl-
Wiederholungsmoduls darstellt;
-
Fig. 40 ein schematisches Diagramm eines anderen Teils des
Speichers der Fig. 39 darstellt;
-
Fig. 41A und 41B, längs Linie k-k verbunden, ein
schematisches Diagramm eines Treibers der
Verfolgungsregistrierung des Virtuellbefehl-
Wiederholungsmoduls ausbilden;
-
Fig. 42 ein Flußdiagramm zum Programmieren für einen
Zentralprozessorchip der Fig. 2 darstellt, um einen
virtuellen Befehl vorzubereiten und zu emulieren;
-
Fig. 43 ein Flußdiagramm zum Programmieren für einen NEAT-
Hilfschip der Fig. 2 darstellt, um einen virtuellen Befehl
vorzubereiten und zu emulieren; und
-
Fig. 44A und 44B, bei Verbindungen A und B miteinander
verbunden, ein Flußdiagramm zum Bewirken einer
Wiederholungsoperation ausbilden.
Beste Art und Weise zum Ausführen der Erfindung
-
Fig. 1 ist ein Blockdiagramm eines
Datenverarbeitungssystems für einen allgemeinen Zweck, das
die vorliegende Erfindung einschließt und ein
Virtuellbefehl-Prozessoruntersystem 10, ein Ein-/Ausgabe-
(I/O)-Untersystem 12 und ein Speicher-Untersystem 14
umfaßt. Die Subsysteme 10, 12 und 14 sind weiter in Module
aufgeteilt, wobei bestimmte Module dupliziert sind, um eine
Datenintegrität bzw. -sicherung und
Befehlswiederholungsbzw. Befehlswiederversuch-Möglichkeiten des
Datenverarbeitungssystems zu schaffen, wie erläutert wird.
Ein Systemtaktmodul (SCLM) 16 ist bereitgestellt. Das
Haupttakten des offenbarten Systems wird durch das
Verwenden eines Zweiphasentakts aufrecht gehalten, der ein
X0-Ausgangssignal und ein Xl-Ausgangssignal aufweist, wobei
der Takt von einem Einzelkristall-Oszillator abgeleitet
wird, der nicht dargestellt ist. Der Systembustakt, der
nicht dargestellt ist, ist auch im SCLM-Modul 16
aufgenommen. Das Erzeugen von Taktsignalen und deren
Verteilung und Verwendung sind in der Technik gut
verstanden und werden nicht weiter erörtert.
-
Das Virtuellbefehl-Prozessoruntersystem 10 umfaßt ein Paar
Basis- bzw. Zentralprozessor-Untersystemmodule (BPSM) 18
und 20, wobei eines, 18, das primäre Modul (BPSMP) und das
andere, 20, das sekundäre Modul (BPSMS) ist. Jedes der
Module 18 und 20 umfaßt Größtintegrationsschaltungs-(VLSI)-
Chips aus der NCR-32-Bit-Chipreihe, wie dies in der NCR/32
General Information Publication erläutert ist, die von VLSI
Processor Products, NCR Microelectronics Division, Colorado
Springs, Colorado unter der Bestandsnummer ST-2104-23
verfügbar ist.
-
Nimmt man auf Fig. 2 Bezug, kann jedes der BPSM-Module 18
und 20 einen zentralen Prozessorchip (CPC) 22 und einen
Adressenübersetzungschip (ATC) 24 umfassen, wie in der
genannten NCR/32 General Information Publication
vollständig erläutert ist. Der CPC 22 ist mit einem
Befehls- bzw. Anweisungs-Speichereinheits-(ISU)-Bus 26 und
einem Prozessorspeicher-(PM)-Bus 28 verbunden. Wie dies
bekannt ist, setzt der CPC 22 Anweisungsadressen auf den
ISU-Bus 26 bei X0 des Taktes SCLM 16 zu einem ISU-Speicher
hin und empfängt Anweisungen von dem ISU-Speicher 30 bei
X1 des Taktes SCLM 16 zurück. Adressen für
Speicheroperationen werden auch auf den Adressenteil des
PM-Busses 28 gesetzt und Daten werden entweder bei der
vorgegebenen Adresse von einem Hauptspeicher 32 abgerufen
oder in diesen geschrieben. Es ist ersichtlich, daß beim
System der Fig. 1 das Hauptspeicher-Subsystem
bzw. - Untersystem 14 den Hauptspeicher 32 der Fig. 2 umfaßt.
-
Das BPSMP-Modul 18 und das BPSMS-Modul 20 können auch
spezialisierte Hardware-Erweiterungschips enthalten, wie
beispielsweise einen erweiterten arithmetischen Chip (EAC)
34 der Fig. 2, der eine spezialisierte Hardware für eine
Gleitpunktarithmetik bereitstellt, und einen
NEAT-Hilfsbzw. Unterstützungs-Chip (NAC) 36, der einen unabhängigen
Firmware-Onchip- bzw. -Einchipprozessor bereitstellt, der
einen Untersatz von NEAT-Befehlen ausführt. Der NAC 36 der
Fig. 2 ist ein NEAT-Unterstützungschip der NCR 9000-Serie,
dessen Blockdiagramm in Fig. 3 dargestellt ist. Ohne den
NAC 36 ist der CPC 22 das Hauptelement, das Aktivitäten
hinsichtlich des ATC 24 und des EAC 34 unterordnet. Wenn er
z. B. NEAT-Befehle emuliert, interpretiert der CPC 22 die
NEAT-Befehle durch Zugreifen auf Routinen in dem ISU-
Speicher 30 und führt diese aus. Wenn ein NAC 36 vorliegt,
wird der NAC die Haupteinrichtung. Der virtuelle NEAT-
Befehl, der auszuführen ist, wird dann durch den NAC 36 vom
Hauptspeicher 32 der Fig. 2 abgerufen, ein Befehls-
Vorbereiten wird durchgeführt und dann wird nur, falls der
NAC 36 die Ausführung des bestimmten Befehls nicht
unterstützt, die Steuerung zum CPC 22 weitergeleitet. Wenn
ein NAC 36 vorliegt, ruft der CPC 22 die Anwendung des ATC
24 oder des EAC 34 nur auf, wenn dies durch den NAC 36
angefragt wird. Während der NAC 36 virtuelle NEAT-Befehle
ausführt, ist der CPC für Service-I-/O-Interrupts bzw.
Betriebs-Ein-/Ausgabe-Unterbrechungen oder
Tageszeit-Interrupts
gleichzeitig zu den Operationen verfügbar, die
durch den NAC 36 ausgeführt werden.
-
Nimmt man auf Fig. 3 Bezug, verwendet der NAC 36 nicht
irgendeinen Steuerspeicher, der vom Chip getrennt ist. Der
gesamte Speicherbereich, der zum Ausführen der virtuellen
NEAT-Befehle erforderlich ist, die durch den NAC 36
unterstützt werden, ist in einem Steuer-Nur-Lesespeicher
(ROM) 70 abgespeichert. Mikroanweisungen werden im NAC 36
innerhalb einer zweistufigen Pipeline bzw.
Fließbandverarbeitung ausgeführt, die Interpretations- und
Ausführungsstufen aufweist. In der Interpretationsstufe,
deren Start durch das NVCSU/-Signal auf dem Leiter 37 der
Fig. 2 angezeigt wird, werden die ROM-Adresse für die
beginnende Mikroanweisung zum Emulieren des virtuellen NAT-
Befehls bestimmt und die Anzahl von Bytes, die durch die
virtuellen Anweisungen verändert werden, werden in der
Strichliste bzw. dem Zähler 72 abgespeichert. Eine Kopie
der ersten 15 Indexregister im Hauptspeicher 32 der Fig. 2
wird in einer Indexregistereinheit (IRU) 74 gehalten. Dies
wird durch das Überwachen des PM-Busses 28 (siehe Fig. 2)
mit einer Indexregister-Anpassungslogik 76 ausgeführt, was
das Abspeichern der Inhalte von irgendwelchen der ersten 15
Indexregister bewirkt, die durch geeignete Anweisungen über
den PM-Bus 28 zu den ersten 15 virtuellen Adressen des
Hauptspeichers 32 abgerufen oder modifiziert werden, um in
der IRU 74 abgespeichert zu werden. So kann während der
Interpretations- und der Ausführungsstufe des NAC 36 ein
Zugriff direkt auf die IRU 74 im NAC 36 durchgeführt
werden, ohne irgendwelche der ersten 15 Register aus dem
Hauptspeicher 32 abrufen zu müssen.
-
In der Ausführungsstufe wird das ROM 70 für die beginnende
Mikroanweisung des NEAT-Befehls, der emuliert wird,
adressiert, und auf das richtige Indexregister in der IRU
74 oder irgend ein anderes Register im NAC 36 oder eine
andere Einrichtung in dem System, die an den PM-Bus 28
angesetzt ist, wird so, wie es geeignet sein kann,
zugegriffen, um die Mikroanweisung auszuführen. Der
Zählwert im Zähler 72 wird dann dekrementiert bzw.
erniedrigt, während jedes Byte, das durch den virtuellen
Befehl beeinflußt wird, verarbeitet wird. Während der
Ausführung können die Inhalte eines Indexregisters
modifiziert werden. Irgendwelche solche Modifikationen
können über den PM-Bus 28 durch den NAC 36 hinsichtlich des
Indexregisters im Hauptspeicher 32 durchgeführt werden. Die
Indexanpassungslogik 76 der Fig. 3 sieht jegliche
Schreibvorgänge auf die ersten 15 virtuellen Indexregister
und modifiziert die NAC-Kopie des modifizierten
Indexregisters in der IRU 74 so, daß die Indexregister in
der IRU 74 stets aktuell gehalten werden. Daher wird eine
Modifizierung irgendeines der ersten fünfzehn Indexregister
in dem Hauptspeicher 32 der Fig. 2 durch den NAC 36 während
der Emulation eines NEAT-Befehls auch die Kopie des
modifizierten Indexregisters in der ISU 74 des NAC 36
modifizieren. Nur die ersten fünfzehn Indexregister werden
in der ISU 74 gehalten, weil bestimmt wurde, daß etwa 98%
der Mikroanweisungen des NAC 36 nur diese Register
verwenden.
-
Der NAC 36 enthält auch ein Adressenregister für virtuelle
Anweisungen (VIAR) 180, in dem die Adresse des nächsten
abzurufenden virtuellen Befehls abgespeichert wird, sowie
ein Register für virtuelle Anweisungen 181 (VIR), in dem
der letzte durch den NAC 36 abgerufene virtuelle Befehl
abgespeichert ist. Der NAC 36 enthält auch einen
Zustandsstapelspeicher 182, der aus eigentlich vier 32-Bit-
ERU-Registern besteht, die alle direkt mit dem PM-Bus 28
verbunden sind. Ein Zugriff auf den Zustandsstapelspeicher
182 wird durch die ERU-Dekodiererschaltung 183 in einer
bekannten Art und Weise gesteuert.
-
Das erste Zustandsstapelspeicher-Register (SSR1) des 182
wird abhängig davon, warum der NAC 36 die Steuerung zum CPC
22 weitergibt, eines von zwei verschiedenen Worten aus
Information enthalten. Wenn die Steuerung wegen eines nicht
unterstützten Befehls übertragen wird, wird der SSR1 des
182 ein Steuerübertragungswort enthalten, das den
virtuellen Op-Code (Operationscode) einschließt, der durch
den CPC 22 bei Bits 25-32 auszuführen ist, das virtuelle
Zählerfeld, das die Länge des Operanden bei Bit 17-24
bestimmt, und virtuelle Anzeigebit 1-8, die durch den NAC
36 während der Ausführung des virtuellen Befehls setzt und
zurücksetzt, so wie dies durch den Befehl erforderlich ist,
der emuliert wird. Wenn der NAC 36 die Steuerung wegen
eines Zustands überträgt, den er nicht handhaben kann, wird
der SSR1 des 182 ein Ausnahmezustandswort enthalten. Das
zweite Register des Zustandsstapelspeichers (SSR2) enthält
verschiedene Code und Flags bzw. Merker für den Betrieb des
NAC 36 bei der Emulation eines NEAT-Befehls, einschließlich
eines INB-Merkers bei Bit 26, das durch den NAC 36 während
des Einstell- bzw. Vorbereitungsschritts modifiziert wird
und wiedergibt, ob der NAC sich beim Vorbereiten des ersten
oder des zweiten Worts eines Zwei-Wort-NEAT-Befehls
befindet. Das dritte Register des Zustandsstapelspeichers
(SSR3) enthält verschiedene interne Indikatoren bzw.
Anzeiger, ein Traplinkregister bzw. Verbindungsregister für
nichtprogrammierte Programmsprünge und ein Wiederversuchs-
Verbindungsregister. Das vierte Register des
Zustandstapelspeichers (SSR4) enthält eine Kopie (alte
Kopie) der virtuellen Anzeigemittel des SSR1, wie sie in
den SSR1 während der Vorbereitungszeit eingeladen wurden.
-
Es wird ersichtlich sein, daß der NAC 36 nur eine
Erweiterung des Systems bietet und daß das
Datenverarbeitungssystem unter Verwendung der vorliegenden
Erfindung ohne den NAC 36 betrieben werden kann, wie dies
in Verbindung mit den Fig. 2 und 3 erörtert wird.
-
Die Prozessoren (CPC 22 oder NAC 36) des BPSMP-Moduls 18
und des BPSMS-Moduls 20 sind synchronisiert, um Befehle
parallel auszuführen, einschließlich des Abrufens von Daten
von dem Hauptspeicher, und die Daten entsprechend
Anweisungen bzw. Befehlen entweder von dem ISU-Speicher
oder dem Steuer-ROM des NAC zu manipulieren und dann die
manipulierten Daten in den Hauptspeicher zurück zu
speichern. Die Operationen der Prozessoren werden zu allen
Zeitpunkten verglichen, wie erläutert wird, und nach einem
Fehlvergleich werden die Prozessoren angewiesen, deren
letzten virtuellen Befehl neu auszuführen, bis ein gleiches
Vergleichergebnis erhalten wird, oder bestimmt wird, daß
ein hardwarebedingter Fehler aufgetreten ist.
-
Kehrt man zu Fig. 1 zurück, ist ein Paar beschreibbarer
Steuerspeichermodule (WCSM) 34 und 36 vorgesehen. Jedes
WCSM umfaßt 8K Bytes Nur-Lesespeicher (ROM), der
Aktivierungs-, Boot- und am Tag zu startende Programme
bietet, sowie 64K Byte (32K Worte), jeweils aus einem
Direktzugriffsspeicher (RAM), die für den ISU-Speicher (30
in Fig. 2) verwendet werden. Die ROM-Programmierung sieht
vor, daß Anweisungen in Form von Daten aus dem
Hauptspeicher des Systems abgerufen werden können und in
den RAM-Einrichtungen in einem WCSM-Ladeprogramm
abgespeichert werden können. Es ist ersichtlich, daß 32K
Worte von ISU-Anweisungen in dem WCSM 34 abgespeichert
werden und 32K Worte in dem WCSM 36 abgespeichert werden.
Das BPSMP-Modul 18 steht mit den WCSM-Modulen 34 und 36
über einen ISU-Bus 38 und einen Erweiterungsbus 40 in
Verbindung. Das BPSMS-Modul 20 ist mit den WCSM-Modulen 34
und 36 über einen ISU-Prüf-(ISUCHK)-Bus 42 und 44 und mit
einem Datensicherungsmodul (DINM) 46, das später zu
erläutern ist, über eine Erweiterung 48 des ISUCHK-Busses
42 verbunden.
-
Ein PM-Bus 50, der der gleiche wie der Bus 28 ist, der in
Verbindung mit Fig. 2 erläutert wurde, ist zwischen das
BPSMP-Modul 18 und das Speicheruntersystem 14 geschaltet
und umfaßt ein Datenteil 52 für primäre Prozessordaten
(PBDAT) sowie ein Adressenteil 54 für primäre
Prozessoradressen (PAD) . Ein zweiter PM-Bus 56 ist zwischen
das BPSMS-Modul 20 und das DINM-Modul 46 geschaltet und
umfaßt ein Datenteil 58 für sekundäre Prozessordaten
(SBDAT) und ein Adressenteil 60 für sekundäre Adressen
(SAD). Das DINM-Modul 46 steht auch mit dem PBDAT-Bus 52
und dem PAD-Bus 54 in Verbindung.
-
Wie erläutert wird, werden die ISU-Adressen für die WCSM-
Module 34 und 36 sowie ISU-Anweisungen von den WCSM-Modulen
34 und 36 auf einem zwischenspeichernden bzw. auffangenden
ISU-(LISU)-Bus 62 zwischengespeichert bzw. aufgefangen, der
zwischen den WCSM-Modulen 34 und 36 sowie dem DINM-Modul 46
geschaltet ist. Unter den Funktionen des DINM-Modul 46 ist
das Vergleichen der berechneten Ergebnisse nach der
Manipulation von Daten durch entweder den CPC 22 oder den
NAC 36 von beiden BPSM-Modulen 18 und 20. Falls die
Ergebnisse von den Modulen 18 und 20 nicht die gleichen
sind, speichern die Prozessoren (entweder CPC 22 oder NAC
36), die virtuelle Befehle ausführen, aus bzw. wiederholen,
um den letzten virtuellen Befehl, bei dem der Fehler
aufgetreten ist, erneut zu versuchen. Während des
Wiederholungsversuchsbetriebs werden die Daten, die
ursprünglich beim ersten Versuch der Ausführung abgerufen
wurden, zu den ausführenden Prozessoren zurück geliefert.
Ein Virtuellbefehl-Wiederholungsmodul (VCRM) 64 ist
vorgesehen, alle abgerufenen Daten und zugehörigen
Fehlerkorrekturcode- (ECC)-Prüfbit von dem Speicher-
Untersystem 14 zu speichern, worauf hierin als
Abrufregistrierung bzw. -protokoll Bezug genommen wird. Um
dies durchzuführen, ist das VCRM 64 mit dem BPDAT-Bus 52
verbunden und weist genügend RAM auf, um 2K abgerufener
Dateneingaben abzuspeichern.
-
Wie dies in Fig. 3 erläutert ist, hält der NAC 36 seine
eigene Kopie der ersten 15 Indexregister, und irgendwelche
Abrufe, die während der Emulation eines virtuellen Befehls
auf irgendeines dieser ersten 15 Indexregister
durchzuführen sind, werden über einen internen Bus 71
(siehe Fig. 3) im NAC 36 hinsichtlich der NAC-Kopie des
Registers in der IRU 74 dürchgeführt. Daher wird es
ersichtlich sein, daß irgendwelche Abrufvorgänge aus den
ersten 15 Indexregistern während einer NAC-Emulation eines
virtuellen Befehls nicht in der Abrufregistrierung
erscheinen. Da die Indexregister während der Ausführung
einer Anweisung modifiziert werden können, können die
Inhalte des Indexregisters in der IRU 74 des NAC 36 nicht
die gleichen sein, wie wenn der Befehl zum ersten Mal
versucht wird. Daher umfaßt das VCRM 64 auch eine
Indexregisterregistrierung (IR Log), die eine Originalkopie
der ersten 15 Indexregister des Hauptspeichers 32 der Fig.
2 als jene Indexregister, die in der Interpretationsstufe
des NAC 36 für den momentanen virtuellen Befehl erscheinen,
und eine zweite oder modifizierte Kopie der ersten 15
Indexregister enthält, wie sie während der Anweisungsstufe
modifiziert sind. Falls der virtuelle Befehl erfolgreich
ausgeführt wird, wird die modifizierte Kopie in der IR Log
die Originalkopie für den nachfolgenden virtuellen Befehl,
und die Originalkopie wird verwendet, um Modifikationen
während der Ausführung des nachfolgenden Befehls
aufzuzeichnen. Falls die Ausführung des virtuellen Befehls
nicht erfolgreich ist, speichert Firmware die Inhalte der
Originalkopie des IR Log in den Hauptspeicher 32, wobei
dies mit Hilfe der IR-Anpassungslogik 76 der Fig. 3
gleichzeitig in die IRU 74 gespeichert wird. Der NAC 36
kehrt dann in seine Interpretationsstufe zurück und die
Ausführung des virtuellen Befehis wird wiederholt bzw.
erneut versucht. Daher wird ersichtlich sein, daß die
beschriebene IR Log im Falle der CPC-Ausführung des
virtuellen Befehls nicht erforderlich ist, da Daten, die
aus den ersten 15 Indexregistern abgerufen werden, in dem
Fall in der Datenabrufregistrierung erscheinen.
-
Das VCRM 64 steht auch über eine Buserweiterung 75 bzw.
Busverlängerung mit dem LISU-Bus 62 in Verbindung. Das VCRM
64 enthält ein RAM zum Speichern der ISU-Adressen, die
durch den BPSMP 18 vorgesehen werden, in einer Spur- bzw.
Verfolgungsregistrierung, die für Diagnosezwecke durch
Fimware verwendet werden kann. Das
Verfolgungsregistrierungs-RAM speichert bis zu 2K ISU-
Adresseneinträgen, während die Verfolgung freigegeben ist.
Die Verfolgungsregistrierung kann, falls gewünscht, auch
zum Sichern bzw. Durchführen eines Backups für die CPC-
Pipeline verwendet werden.
-
Wie in der zuvor genannten NCR/32 General Information
publication erörtert, verwendet der CPC 22 der Fig. 2
externe Register (ERU), um unter anderem eine Kommunikation
zwischen den 32-Bit-Chipsatz-Einrichtungen der
Prozessormodule 18 und 20 und benutzerdefinierte
Steuersignale vorzusehen, die durch den CPC 22 gesetzt und
überwacht werden. Andere Einrichtungen des 32-Bit-
Chipsatzes, der ATC 24, EAC 34 und NAC 36 und verschiedene
Module des Systems weisen ähnliche ERU-Fähigkeiten auf. Ein
systemabhängiges Funktionsmodul (SDFM) 78 ist
bereitgestellt, das ERU-Register (nicht dargestellt) zum
Annehmen, Modifizieren und Anzeigen individueller Bit eines
ausgewählten ERU durch einen Anwender für den Betrieb und
die Steuerung des Datenverarbeitungssystems der Fig. 1
umfaßt.
-
Das Ein-/Ausgabe- bzw. I/O-Untersystem 12 der Fig. 1 umfaßt
einen primären Ein-/Ausgabe-(I/O)-Bus 80, der ein Teil 82
(PIODAT) für primäre Ein-/Ausgabe-Daten und ein Teil 84
(PIOADR) für eine primäre Adresse aufweist. Ein Paar
Grund- bzw. Zentral-Ein-/Ausgabe-Module (BIOM) 86 und 88 ist
bereitgestellt, wobei eines ein primäres Modul (BIOMP) und
eines ein sekundäres (BIOMS) Modul ist. Jedes BIOM-Modul 86
und 88 umfaßt einen ATC-Chip, der der gleiche wie der ATC
24 der Fig. 4 ist, und zwei NCR/32-500
Systemschnittstellen-Steuereinrichtungs-(SIC)-Chips, wie im
U.S. Patent Nr. 4,387,441 beschrieben wird, das am 7. Juni
1983 an Kocol et al. für "Data Processing System Wherein At
Least One Subsystem Has A Local Memory and A Mailbox Memory
Within The Local Memory for Storing Header Information"
ausgegeben wurde und das der Rechtsnachfolger der
vorliegenden Erfindung besitzt. Das BIOMS-Modul 88 weist
einen zweiten Ein-/Ausgabe-Bus 90 mit einem Teil 91 für
Ein-/Ausgabe-Daten (SIODAT) und einen Bus 92 für eine Ein-
/Ausgabe-Adresse (SIOADR) auf. Ein DINM-Modul 94 (das
ähnlich dem DINM-Modul 46 des Prozessor-Unterabschnitts 10
ist) ist zwischen den primären Ein-/Ausgabe-Bus 80 und den
sekundären Ein-/Ausgabe-Bus 90 zum Vorsehen von
Datenintegritäts- bzw. Datensicherungsprüfungen in dem Ein-
/Ausgabe-Untersystem 12 verbunden. Verschiedene
kundenspezifisch anpassbare Ein-/Ausgabe-Module 93 können
mit dem BIOMP verbunden werden, um ausgewählte System-Zu-
System- oder Peripherieschnittstellenkanäle verschiedener
Bandbreiten bereitzustellen, und verwenden verschiedene
Protokolle.
-
Das Hauptspeicher-Untersystem 14 umfaßt eine Vielzahl
Speicherarrays bzw. Speicherfelder 100 und eine
Doppelanschluß-Speichersteuerung (DMCM) 102. Jede
Speicheranordnung bzw. jedes Speicherarray 100 weist einen
zentralen Prozessorweg mit einem Datenteil (CPMDAT) 104 und
einem Adressenteil (CPMADR) 106 sowie einen I/O-Weg mit
einem Datenteil (IOMDAT) 108 und einem Adressenteil
(IOMADR) 110 auf. Daher kann der DMCM 102 einem der BPSM-
Module 18 oder 20 ermöglichen, auf ein Speicherfeld 100
zuzugreifen, während er einem der BIOM-Module 86 oder 88
ermöglicht, auf ein anderes Speicherfeld 100 zuzugreifen.
Das DMCM 102 umfaßt auch eine Vorabrufschaltung.
-
Fig. 4 ist ein Blockdiagramm von einem der WCSM-Module 34
oder 36 der Fig. 1. Es ist ersichtlich, daß die WCSM-Module
34 und 36 identisch sind. Ein bidirektionaler BISU-Bus 120
befindet sich intern in den WCSM-Modulen 34 zum Vorsehen
einer Nachrichtenübermittlung bzw. Kommunikation zwischen
verschiedenen Elementen, was zu beschreiben ist. Der ISU-
Bus 38, der in Fig. 1 dargestellt ist, steht mit einem
Sende- und Empfangsgerät 122 in Verbindung, das mit dem
BISU-Bus 120 verbunden ist. Auch der ISUCHK-Bus 42, der in
Fig. 1 dargestellt ist, steht mit einem Sende- und
Empfangsgerät 124 in Verbindung, das auch mit dem BISU-Bus
120 verbunden ist. Die Sende- und Empfangsgeräte 122 und
124 können 74F245-Einrichtungen sein, die von Fairchild
erhältlich sind. Die Eingänge von einer Vielzahl von
Adressenspeichern bzw. Adressenlatchen 126, 127, 128 und
129 sind mit dem BISU-Bus 120 verbunden. Jedes der
Adressenspeicher 126-129 kann aus 74F373-Einrichtungen
ausgebildet werden, die bei Fairchild verfügbar sind. Der
Ausgang des Adressenlatch 126 steht mit dem LISU-Bus 62 in
Verbindung, der in Fig. 1 dargestellt ist. Der Ausgang des
Adressenlatch 127 steht mit einem Datenparitätsgenerator
bzw. einer Datenparitäts-Erzeugungseinrichtung 130, einem
PROM 132 und einem Datenlatch 133 in Verbindung. Der
Ausgang des Datenlatch 133 ist mit den Dateneingängen eines
Paars Speicherbänke 134 und 135 verbunden. Der Ausgang des
Adressenlatch 128 steht mit Adresseneingängen der
Speicherbank 134 in Verbindung und der Ausgang des
Adressenlatch 129 ist mit den Adresseneingängen der
Speicherbank 135 verbunden. Ein erster Vergleicher 136
vergleicht den Ausgang des Adressenlatch 126 am LISU-Bus 62
mit dem Ausgang des Adressenlatch 127. Falls das
Vergleichsergebnis nicht gleich ist, wird ein Fehlersignal
(ADRERR2) an seinen Ausgang 137 gesetzt. Ein zweiter
Vergleicher 138 vergleicht den Ausgang des Adressenlatch
128 mit dem Ausgang des Adressenlatch 129. Falls das
Vergleichsergebnis nicht gleich ist, wird ein Fehlersignal
(ADRERR1) an seinen Ausgang 139 gesetzt. Die
Paritätserzeugungseinrichtung 130 kann aus 74S280-
Einrichtungen, die bei Fairchild verfügbar sind,
ausgebildet werden und der Datenlatch 133 kann aus 74F374-
Einrichtungen ausgebildet werden, die bei Fairchild
verfügbar sind, das Boot-PROM 132 wird durch 82S191-
Einrichtungen ausgebildet, die von Fairchild erhältlich
sind, um einen programmierbaren 16K-mal-16-Bit-Nur-
Lesespeicher zum Aufnehmen von Bootroutinen auszubilden.
Die Vergleicher 136 und 138 können aus 74F521-Einrichtungen
ausgebildet werden, die von Fairchild erhältlich sind. Die
Speicherbänke 134 und 135 können jeweils aus 16383-
Einrichtungen ausgebildet werden, die von Mitsubishi
erhältlich sind, wobei jede Speicherbank 134 und 135 eine
16K mal 18-Bit-Speicherbank ausbildet. Die Datenausgänge
des PROM 132 stehen mit einem Datenpuffer 140 in Verbindung
und die Ausgänge der Speicherbänke 134 und 135 stehen mit
Datenpuffern 142 bzw. 143 in Verbindung. Die Ausgänge der
Datenpuffer 140, 142 und 143 stehen mit dem BISU-Bus 120 in
Verbindung. Die Datenpuffer 140, 142 und 143 können aus
74F244-Einrichtungen ausgebildet werden, die bei Fairchild
verfügbar sind.
-
Nachdem das PROM 132 in einer bekannten Art und Weise
programmiert wurde, kann ein CPC 22 der Fig. 2 durch das
Setzen einer PROM-Adresse auf den ISU-Bus 38 ein
Bootprogramm aus dem PROM 132 ausführen. Die Sende-
Empfängereinrichtung 132 setzt die PROM-Adresse auf den
BISU-Bus 120, der in Adressenspeichern 126 und 127 über
Adressenspeicherung gehalten wird. Die PROM-Adresse wird
dann zum PROM 132 gerichtet und die auszuführende
Mikroanweisung wird durch das PROM 132 zum Puffer 140
ausgegeben, der den Mikrobefehl bzw. die Mikroanweisung auf
den BISU-Bus 120 setzt. Die Sende-Empfängereinrichtung 122
setzt die Mikroanweisung zum Ausführen durch den CPC 22 der
Fig. 2 dann auf den ISU-Bus 38. Während der Bootroutine im
PROM 132 werden Mikroanweisungen, die in den ISU-Bänken 134
und 135 abzuspeichern sind, mit Hilfe des CPC 22 aus dem
Hauptspeicher 32 abgerufen und dann auf den ISU-Bus 38 der
Fig. 1 und 4 gesetzt. Die Mikroanweisungsdaten werden dann
durch die Sende-Empfängereinrichtung 122 der Fig. 4 auf den
BISU-Bus 120 gesetzt und in Latchen 126 und 127
zwischengespeichert. Eine Paritätserzeugungseinrichtung 130
addiert dann ein Paritätsbit zu den Mikroanweisungsdaten,
das in einem Datenlatch 133 gespeichert ist, um in eine der
Speicherbänke 134 oder 135 eingegeben zu werden. Die
Adresse der Mikroanweisung wird durch den CPC 22 der Fig. 1
auf den ISU-Bus 38 gesetzt und durch die Sende-
Empfängereinrichtung 122 auf den BISU-Bus 120 gesetzt und
in Adressenspeichern 128 und 129 zwischengespeichert. Der
Ausgang der Adressenspeicher 128 und 129 wird dann
hinsichtlich der Speicherbänke 134 und 135 adressiert, und
die Speicherbankadresse speichert die Daten im Datenlatch
bzw. Datenzwischenspeicher 133 bei der ausgegebenen
Adresse. Falls die Vergleichereinrichtung bzw. der
Vergleicher 136 ein Fehlvergleichsergebnis erhält, das
anzeigt, daß entweder die PROM-Adresse, die durch den
Adressenspeicher 126 und 127 ausgegeben wird, oder die
Mikroanweisungsdaten, die auch durch den Adressenspeicher
126 und 127 ausgegeben werden, nicht die gleichen sind,
wird ein Fehlersignal an den Leiter 137 gesetzt, um
anzuzeigen, daß ein Datensicherheits- bzw.
Datenintegritätsfehler besteht. Der Vergleicher 138
vergleicht die Speicherbankadresse, die durch die
Adressenspeicher 128 und 129 ausgegeben wird, und falls ein
Fehlvergleich gefunden wird, wird ein Datenfehlersignal auf
dem Leiter 139 hochgesetzt, um anzuzeigen, daß ein
Datenintegritätsfehler in der ISU-Speicheradresse vorliegt.
Später, wenn der CPC 22 der Fig. 2 einen virtuellen Befehl
emuliert, wird die Adresse einer Mikroanweisung auf den
ISU-Bus 38 der Fig. 4 gesetzt. Die Sende-
Empfängereinrichtung 122 setzt die Adresse dann auf den
BISU-Bus 120, so daß sie in Adressenlatchen 128 und 129
aufgefangen wird. Die Adressenspeicherbank 134 oder 135
setzt die Mikroanweisung an ihren entsprechenden Ausgang,
der entweder im Puffer 142 oder 143 gepuffert wird und der
an den BISU-Bus 120 zum Rückübertragen zur CPC 22 über den
ISU-Bus 38 durch die Sende-Empfängereinrichtung 122
angesetzt ist. Falls durch eine Mißbetätigung entweder des
Adressenspeichers 128 oder 129 auftritt, wird das
Vergleichsergebnis durch den Vergleicher 138 nicht gleich,
was einen Datenintegritätsfehlerzustand am Leiter 139
aufkommen läßt. Die gleiche Beschreibung des Betriebs eines
CPC in den sekundären BPSMS-Modulen 20 kann durchgeführt
werden, wobei der ISUCHK-Bus 42 und die Sende-
Empfängereinrichtung 124 anstelle des zuvor beschriebenen
ISU-Bus 38 und der Sende-Empfängereinrichtung 122 verwendet
werden.
-
Die Fig. 5, 6 und 7 sind Blockdiagramme von Bauelementen
der DINM-Module 46 der Fig. 1. Fig. 5 ist ein Blockdiagramm
einer Schaltung des DINM 46 zum Durchführen eines
Datenvergleichs. Der PBDAT-Bus 52 des PM-Busses 50 der Fig.
1 ist mit einer Sende- bzw. Empfängereinrichtung 150
verbunden, deren Ausgang mit einem Latch bzw.
Adressenspeicher 151 und dem Eingang einer Treiberschaltung
152 verbunden ist. Der Ausgang des Adressenspeichers 151
steht mit einem Eingang einer Vergleicherschaltung 153 in
Verbindung. Der SBDAT-Bus 58 des sekundären PM-Busses 56
der Fig. 1 steht mit einer Sende-Empfängereinrichtung 154
in Verbindung, deren Ausgang mit einem zweiten Eingang des
Vergleichereingangs 153 verbunden ist. Der Ausgang der
Treiberschaltung 152 steht über einen Bus 155 mit der
Sende-Empfängereinrichtungsschaltung 154 in Verbindung.
Wenn Daten von dem Prozessoruntersystem 10 der Fig. 1 für
einen virtuellen Befehl zum Speicheruntersystem 14 zu
senden sind, werden die Daten über die BPSMP-Module 18 auf
den PBDAT-Bus 52 gesetzt und die gleichen Daten werden über
die BPSMS-Module 20 auf den SBDAT-Bus 58 gesetzt. Die
Sende-Empfängereinrichtung 150 der Fig. 5 nimmt die Daten
von dem PBDAT-Bus 52 und setzt sie in den Adressenspeicher
151 und an einen Eingang der Vergleicherschaltung 153. Die
Sende-Empfängereinrichtung 154 nimmt die Daten von dem
SEDAT-Bus 58 und setzt sie an den anderen Eingang des
Vergleichers 153. Falls die Daten nicht zusammenpassen,
wird ein Fehlersignal (DATACMP/) an einen Ausgang 156 der
Vergleicherschaltung 153 gesetzt. Wenn Daten durch das
Prozessorsubsystem bzw. Prozessoruntersystem 10 für den
virtuellen Befehl aus dem Speicheruntersystem 14 der Fig. 1
abgerufen werden, werden die Daten tatsächlich über den
PBDAT-Bus 52 des primären PM-Busses 50 abgerufen. Ein
Treiber 152 ist in deüschaltung der Fig. 5 eingeschlossen,
um die Daten, die durch die Sende- und Empfängereinrichtung
150 von dem PBDAT-Bus 52 empfangen werden, zu nehmen und
sie über den Bus 155 zur Sende- und Empfängereinrichtung
154 zu setzen, um auf den SBDAT-Bus 58 gesetzt zu werden,
so daß beide der Prozessor-Untersystemmodule BPSMP 18 und
BPSMS 20 die gleichen Daten empfangen können. In diesem
Fall gibt der Prozessor von beiden Modulen 18 und 20 z. B.
Abrufbefehle zum Hauptspeicher und empfängt Daten von dem
Hauptspeicher zurück, so daß der Prozessor in den Modulen
18 und 20 mit deren Ausführung fortfahren kann, selbst
obwohl nur der Abrufbefehl von dem Prozessor des Moduls 18
tatsächlich die Daten von dem Speicheruntersystem 14
abgerufen hat. Die Sende- und Empfängereinrichtungen 150
und 154 können aus 74F245-Einrichtungen, die bei Fairchild
verfügbar sind, hergestellt sein, der Adressenspeicher 151
kann aus 74F534-Einrichtungen, erhältlich bei Fairchild,
bestehen, der Treiber 152 kann aus 74F244- Einrichtungen
bestehen, die von Fairchild erhältlich sind, und die
Vergleicherschaltung 153 kann aus 74F521-Einrichtungen
bestehen, erhältlich von Fairchild.
-
Fig. 6 ist ein Blockdiagramm einer Schaltung zum
Vergleichen der Adressen, die durch das BPSMP-Modul 18
ausgegeben werden, mit den Adressen, die durch das BPSMS-
Modul 20 der Fig. 1 ausgegeben werden. Vom PAD-Bus 54 des
primären PM-Busses 50 sind dessen erste 8 Bit mit einem
Eingang eines Vergleichers 160 verbunden und Bit 9-24 mit
einem Eingang eines zweiten Vergleichers 162 verbunden. Vom
SAD-Bus 60 des sekundären PM-Busses 56 sind dessen erste 8
Bit mit dem anderen Eingang des Vergleichers 160 verbunden
und Bit 9-24 mit dem anderen Eingang des Vergleichers 162
verbunden. Der Ausgang des Vergleichers 160 liefert ein
Vergleichssignal (ERUADRCMP/) für Adressen über die PM-
Busse 50 und 56, und zwar zu einer externen Registereinheit
(ERU) hin gerichtet. Von einem UND-Gatter 163 sind dessen
Eingänge mit der Vergleicherschaltung 160 und 162 verbunden
und dessen Ausgang bietet ein Vergleichssignal (MEMADRCMP/)
für Adressen, das zum Speicheruntersystem 14 der Fig. 1 hin
gerichtet ist. Die Vergleicherschaltung 160 und 162 kann
aus 74F521-Einrichtungen ausgebildet werden, die von
Fairchild verfügbar sind.
-
Fig. 7 ist ein Blockdiagramm einer Schaltung zum Liefern
von Vergleichsergebnissen von Adressen von den Prozessor-
Untersystem-Modulen BPSMP 18 und BPSMS 20 zur
Anweisungsspeichereinheit der WCSM-Module 34 und 36 hin.
Der LISU-Bus 62 der Fig. 1 steht mit einem Eingang einer
Vergleicherschaltung 165 in Verbindung und der ISUCHK-Bus
48 der Fig. 1 ist mit den Eingängen der Adressenspeicher
166 und 167 verbunden. Der Ausgang des Adressenspeichers
166 steht mit einem anderen Eingang der
Vergleicherschaltung 165 in Verbindung. Zu Fig. 4
zurückkehrend, ist ersichtlich, daß Adressen, die auf den
ISU-Bus 38 gesetzt werden, durch den Adressenspeicher 126
zum LISU-Bus 62 hindurchlaufen. Mit Blick auf Fig. 1 werden
ISU-Adressen, die mit Hilfe der BPSMS-Module 20 auf den
ISUCHK-Bus 42 gesetzt werden, mittels des Busses 48 zum
DINM-Modul 46 gerichtet. Zu Fig. 7 zurückkehrend, wird eine
primäre ISU-Adresse über den Bus 62 in die
Vergleicherschaltung 165 eingegeben und eine sekundäre ISU-
Adresse wird über den Bus 48 durch den Adressenspeicher 166
in den Vergleicher 165 eingegeben. Ein Fehlvergleich durch
die Vergleicherschaltung 165 läßt ein Signal eines
nichtprogrammierten Programmsprungs bzw. Trapsignal (TRAP/)
am Leiter 168 anheben, was ein Einfangen bzw. Unterbrechen
für beide Prozessoren in den Modulen 18 und 20 bewirkt. Der
ISUCHK-Bus 48 steht auch mit einem Adressenspeicher 167 in
Verbindung, wie erläutert, dessen Ausgang mit einer
Paritätsfehler-Prüfschaltung 170 verbunden ist. Falls ein
Paritätsfehler durch die Schaltung 170 entdeckt wird, wird
ein Paritätsfehlersignal (PERR/) auf den Leiter 171
gesetzt. So erfaßt die Schaltung der Fig. 7 ISU-
Adressenfehler und Paritätsfehler innerhalb der ISU-
Adressen. Die Vergleicherschaltung 165 kann aus 74F521-
Einrichtungen, erhältlich von Fairchild, hergestellt
werden, Adressenspeicher 166 und 167 können aus 74F373-
Einrichtungen hergestellt werden, die von Fairchild
erhältlich sind, und die Paritätsfehler-Erfassungsschaltung
170 kann aus 74S200-Einrichtungen hergestellt werden, die
von Fairchild erhältlich sind.
-
Zu Fig. 5 zurückkehrend, ist ein ERU-Register 175
vorgesehen, das die Vergleichssignale von den Vergleichern
der Fig. 5, 6 und 7 empfängt. Die ERU 175 kann durch den
CPC 22 der Fig. 2 abgefragt werden, um die richtige Fehler-
Rückgewinnungs-Routine zu bestimmen, die abhängig von dem
gefundenen Mißvergleich auszuführen ist. Es wird angemerkt,
daß der Adressenspeicher 151 in einer solchen Art und Weise
verbunden ist, daß er Daten entweder von dem PBDAT-Bus 52,
die durch die Sende- und Empfängereinrichtung 157 empfangen
werden, oder Daten von dem ERU-Register 175
zwischenspeichern kann, die auf den PBDAT-Bus zu setzen
sind. Das ERU-Register 175 kann aus 74F240-Einrichtungen
ausgebildet werden, die von Fairchild erhältlich sind.
-
Es ist ersichtlich, daß ähnliche Vergleicherschaltungen mit
dem Steuerteil der PM-Busse 50 und 56 der Fig. 1 (nicht
dargestellt) verbunden werden können, um einen Mißvergleich
und Steuersignale von den Prozessor-Untersystem-Modulen
PBSMP 18 und PBSMS 20 zu erfassen. Auch ausgewählte Bit des
PBDAT-Busses 52 und des SBDAT-Busses 58 können getrennt
verglichen werden, um einen Miß- bzw. Fehlvergleich bei
ERU-Schreibdaten zu bestimmen, obwohl die
Vergleichsschaltung Fig. 5 ERU-Daten-Fehlvergleiche
erfassen wird. Jegliche der Fehlvergleichssignale, die in
Verbindung mit den Fig. 5, 6 und 7 erörtert sind, bewirken
einen Interrupt bzw. eine Unterbrechung für die Prozessoren
der BPSMP-Module 18 und der BPSMS-Module 20 und die
Fehlvergleichssignale werden in ein ERU-Register gesetzt,
so daß die Prozessoren mit der Programmunterbrechung bzw.
dem Interrupt die Interruptsignale abfragen können. Es wird
angemerkt, daß die Prozessoren von beiden der BPSMP-Module
18 und der BPSMS-Module 20 einem Interrupt unterzogen bzw.
unterbrochen werden und eine geeignete Interruptroutine
parallel durchführen, um einen erfaßten Fehlvergleich zu
korrigieren. Wie vorstehend genannt, ist das DINM-Modul 94
der Fig. 1 ähnlich dem DINM-Modul 46 zum Erfassen von
Fehlvergleichen in dem Ein-/Ausgabe-Subsystem 12. Jedoch
wird der ISU-Vergleich der Fig. 7 bei dem DINM-Modul 94
nicht verwendet, da nur die Ein-/Ausgabe-Daten und die Ein-
/Ausgabe-Adressen verglichen werden.
-
Die Fig. 8A-41B bilden, wenn sie zusammengenommen werden,
ein schematisches Diagramm des VCRM-Moduls 64 der Fig. 1
aus. Alle der Eingangs- und Ausgangsleitungen der Fig. 8A-
41B wurden mit einer Aufschrift versehen, um hinsichtlich
deren richtiger Verbindung behilflich zu sein. Jedes
Element ist unter Verwendung seines Standardsymbols
dargestellt, einschließlich Anschluß- bzw. Pin-Nummern, und
mit seiner Standardteilnummer der Industrie bezeichnet. Die
Symbole für die Zwei-Zustands-Einrichtungen stammen aus
IEEE-Standard Graphic Symbols for Logic Diagrams (Zwei-
Zustands-Einrichtungen), IEEE 91-1973, ANSI Y32.14-1973,
durch das Institut of Electrical and Electronic Engineers,
345 East 47 Street, New York, N.Y. 10017 veröffentlicht.
-
Die Fig. 13A-13C bilden, wenn sie wie in Fig. 13
dargestellt zusammengesetzt werden, ein schematisches
Diagramm eines ERU-Registers aus, das als ein
Zustandsregister ERU 78IN verwendet wird. Das
Statusregister bzw. Zustands-Register ERU 78IN kann durch
irgendein Modul oder irgendeinen VLSI-Chip mit ERU-
Kommunikationsfähigkeiten zum Empfangen des Zustands des
VCRM-Moduls 64 abgefragt werden. Die Fig. 14A und 14B
bilden, wenn sie längs Linie c-c miteinander verbunden
werden, ein schematisches Diagramm für ein Eingangslatch
bzw. Eingangs-Adressenspeicher zum Empfangen von Daten von
dem PBDAT-Bus 52 der Fig. 1 aus (bezeichnet als CPDAT01-
CPDAT32). Die Fig. 16A-16D bilden, wenn sie entsprechend
Fig. 16 zusammengesetzt werden, ein schematisches Diagramm
einer Treiberschaltung zum Ausgeben von Daten auf den
PBDAT-Bus 52 aus.
-
Die Fig. 22-26 sind schematische Diagramme der RAM-Chips,
die die zuvor genannte Abrufregistrierung des VCRM 64
ausbilden. Bei den Fig. 22-26 wird angemerkt, daß die
Adresse für die Abrufregistrierung aus Signalen A0-A10
besteht. Fig. 18 ist ein schematisches Diagramm eines
Multiplexers zum Multiplexen von einem der Signale ALPTR0-
ALPTR10 oder der Signale ARBPTR0-ARBPTR10 zu den A0-A10-
Signalen. Die ALPTR0-ALPTR10-Signale werden verwendet, um
die Abrufregistrierungsadresse auszubilden, bis ein
Fehlvergleich gefunden ist. Die Logik des VCRM-Moduls 64
wiederholt dann die Adresse der Abrufregistrierung, und
zwar unter Verwendung der ARBPTR0-ARBPTR10-Signale für die
Adresse.Falls die ARBPTR-Adresse erhöht wird, bis sie die
ALPTR-Adresse erreicht, wie dies durch den Vergleicher der
Fig. 19 bestimmt wird, ohne daß ein anderer Fehler
auftritt, ist das Wiederholen abgeschlossen und der
Prozessor setzt den Betrieb so fort, wie er vor dem
Wiederholen stand. Die Fig. 20A und 20B, längs Linie d-d
verbunden, bilden ein Schema eines Zählers zum Zählen der
ARBPTR-Adresse. Die Fig. 21A und 21B, längs Linie e-e
verbunden, sind ein Schema eines Zählers zum Zählen der
ALPTR-Adresse.
-
Die Fig. 31-35 sind schematische Diagramme der RAM-Chips,
die die zuvor genannte Indexregisterregistrierung des VCRM-
Moduls 64 ausbilden. Diese RAM-Chips bieten einen Speicher,
der zwei Sätze aus 15 Registern abspeichert, jeweils 32 Bit
und 4 Paritätsbit breit. Wie erwähnt dient ein Satz von
Registern zum Speichern von Kopien der
Originalindexregister beim Start eines virtuellen Befehls
und ein Satz von Registern dient zum Speichern von Kopien
irgendwelcher Indexregister, die während der Ausführung des
virtuellen Befehls modifiziert werden. Es wird angemerkt,
daß die Adresse für die RAM-Chips der Fig. 31-35 durch die
IRA0-IRA4-Signale ausgebildet wird. Das IRA0-Bit bestimmt,
welches der beiden Indexregister bei jeder Stelle in der
IR-Registrierung das originale bzw. ursprüngliche oder
gültige Indexregister ist und welches die modifizierte
Kopie eines Indexregisters ist.
-
Die Fig. 28A und 28B, längs Linie f-f verbunden, bilden ein
schematisches Diagramm einer Dekoder- bzw.
Dekodiererschaltung zum Dekodieren einer Adresse an dem
PAD-Adressenbus 54 der Fig. 1 aus. Die Schaltung der Fig.
28B bestimmt, ob bzw. falls die Indexregister in der IR-
Registrierung bzw. IR log von dem CPDAT-Bus 52 gespeichert
werden sollten oder ob die Indexregister für eine
Übertragung zur IRU 74 des NAC 36 (siehe Fig. 3) auf den
CPDAT-Bus 52 gesetzt werden sollten. Falls bestimmt wird,
daß das Indexregister in dem IR log zu speichern ist, das
IRSTORE/-Signal "0" ist und ein Multiplexer 300 der Fig.
28A gibt die CPAD03/-CPAD06/-Signale (die
Indexregisternummer) vom PAD-Bus 56 als die IRA1-IRA4-
Adressensignale multiplex aus. Falls die Indexregister im
IR log auf den CPDAT-Bus 52 zu setzen sind, ist das
IRSTORE/-Signal "1" und ein Zähler 302 der Fig. 28A liefert
eine Adresse zum Multiplexer 300, die als die Adresse IRA1-
IRA4 zu den IR log-RAM's der Fig. 31-35 multiplex
auszugeben ist. Ein Paar Dekoder 304 und 306 dekodieren die
Adresse IRA1-IRA4 zu einem Einzelbit-DEC1-DEC15-Signal, und
zwar abhängig von dem numerischen Wert der IRA1-IRA4-
Adresse. Die Fig. 30A und 30B, längs Linie h-h verbunden,
und die Fig. 29A und 29B, längs Linie g-g verbunden, bilden
zusammen ein schematisches Diagramm eines Paar von Spalten
bzw. Reihen aus Flipflops aus, wobei die erste Spalte
Ausgänge für modifizierte Bit (MB01-MB15) aufweist und die
zweite Spalte Ausgänge für gültige Bit (VB01-VB15)
aufweist. Während des Wiederholens zeigen die Flipflop mit
gültigem Bit, z. B. Flipflop 308 der Fig. 30A für das
Register 1 an, welches der beiden Indexregister, die in den
RAM-Chips 31-35 für das Indexregister 1 gespeichert sind,
das originale bzw. ursprüngliche oder gültige Register ist,
das an den PBDAT-Bus 52 zu setzen ist. Dies wird durch die
Aktion eines Multiplexers 312 der Fig. 30A und eines
Multiplexers 314 aus 29A ausgeführt, die zusammen das
geeignete gültige Bit für das adressierte Register
auswählen und dieses gültige Bit verwenden, um IRA0 über
das Exklusiv-ODER-Gatter 316 der Fig. 30B auszubilden.
Falls der Ausgang des Flipflop 308 auf "0" liegt, wird das
erste der beiden Indexregister bei der Adresse, die durch
IRAL-1PA4 in der IR log bzw. IR-Registrierung ausgebildet
wird, verwendet, und falls der Ausgang des Flipflop 308 auf
"1" liegt, wird das zweite verwendet.
-
Das modifizierte Bit eines Flipflop 310 der Fig. 30A für
das Register 1 zeigt an, ob das Indexregister 1 während der
momentanen Ausführung des virtuellen Befehls modifiziert
wurde, "0" für "nein" und "1" für "ja". Beim erfolgreichen
Abschließen der Ausführung des virtuellen Befehls werden
alle gültigen Bit, die ein eingeschaltetes, modifiziertes
Bit aufweisen, einer bistabilen Kippschaltung unterzogen
bzw. hin- und hergeschaltet (wodurch das modifizierte
Indexregister zum neuen ursprünglichen Register gemacht
wird) und das modifizierte Bit wird ausgeschaltet.
-
Die Fig. 39 und 40 sind schematische Diagramme von RAM-
Chips zum Speichern der Verfolgungsregistrierung, wie
vorstehend erörtert wurde. Die Fig. 38A und 38B bilden,
längs Linie j-j verbunden, ein schematisches Diagramm eines
Zählers zum Ausbilden der Verfolgungsregistrierungsadresse
(TLA0-TLA10) aus, und die Fig. 41A und 41B bilden, längs
Linie k-k verbunden, ein schematisches Diagramm für einen
Eingangspuffer für die Verfolgungsregistrierung von der
LISU-Buserweiterung 75 zum VCRM 64 (siehe Fig. 1) aus.
-
Die Steuersignale für das VCRM-Modul 64 sind, wie folgt:
Eingangssignale zum VCRM 64
Ausgangssignale vom VCRM 64
Signal Fig. Beschreibung
-
Die PMRST/-, CDPVTL/-, CPMEMDIE-, CPMAEL-, CPMDEE- und
EBAV-Signale werden in der zuvor genannten NCR/32 General
Information publication unter den Signalbezeichnungen
PMRST/-, PVT/-, DIE/-, MAE/-, MDEE/- bzw. BAV-Signal
vollständig erläutert.
-
Die Bit des Steuerregisters (XOUT78), die ins VCRM-Modul 64
eingegeben werden, sind, wie folgt:
-
Die Bit des Status- bzw.
Zustandsregisters (XIN78) sind,
wie folgt:
-
Fig. 42 ist ein Flußdiagramm für den CPC 22 zum
Programmieren des CPC 22 der Fig. 2, um einen NEAT-Befehl
vorzubereiten und auszuführen, wenn kein NAC 36 vorliegt
oder der auszuführende NEAT-Befehl durch den NAC 36 nicht
unterstützt wird. Der durch den CPC zu emulierende NEAT-
Befehl ist in einem NEATVS-Handbuch vollständig dargelegt,
das von der NCR-Coperation, Dayton, Ohio 45479 unter der
Bestandsnummer 57-9481-47 erhältlich ist, sowie in einem
NEATVS, VRX-3-Handbuch, das von der NCR-Coperation unter der
Bestandsnummer ST-9481-46 erhältlich ist. Dies wird in einem
Zweischrittverfahren ausgeführt, einem Setup bzw.
Vorbereiten eines virtuellen Befehls, das bei 350 beginnt,
sowie einer Ausführung des virtuellen Befehls, die bei 355
beginnt. Bei 351 setzt der CPC 22 die VCRM-Registrierungen
durch Signale zu dem Befehlsregister XOUT78 im VCRM zurück,
wie erläutert wurde, und gibt auch Bit 15 frei, um den
Abrufregistrierungs-Zeiger zurückzusetzen, und Bit 2 frei,
um die Abrufregistrierung freizugeben. Bei 352 sichert der
CPC 22 virtuelle Anzeigeeinrichtungen von der ERU 17 (nicht
dargestellt), da sie durch den CPC während seiner
Einrichtungs- bzw. Vorbereitungsstufe im Fall eines
Wiederholens benötigt werden kann. Bei 353 ruft der CPC den
nächsten virtuellen NEAT-Befehl, der zu emulieren ist, aus
der Hauptspeichereinheit (MSU) ab, die aus Memory- bzw.
Speicherarrays 100 der Fig. 1 des Speicher-Untersystems 14
besteht. Bei 354 berechnet der CPC die effektive Adresse von
Quell- und Zieloperanden durch Dekodieren des Typs der
NEAT-Anweisung, durch Abrufen der Inhalte von Operanden-
Indexregistern und durch Addieren der Operanden-
Teiladressen zu den Indexregisterinhalten, wobei alles
davon in den zuvor genannten NEATVS-Handbüchern erläutert
ist. Der CPC sichert auch das variable LOCWORK in einem
gewöhnlichen Arbeitsregister (nicht dargestellt), wobei
dies die Inhalte des virtuellen Steuerregisters (VCR)
(nicht dargestellt) des CPC's sind, und zeigt den nächsten
virtuellen Befehl an, der abzurufen ist. Das variable
LOCWORK wird später bei einer Wiederholungsoperation
verwendet, die in Verbindung mit den Fig. 44A und 44B zu
erläutern ist.
-
Bei 355 beginnt der CPC den virtuellen Befehl auszuführen.
Dies wird bei 356 durch Zugreifen auf die WCSM-Module 35
und 36 durchgeführt, um von der ISU die richtigen
Mikroanweisungen zum Emulieren des NEAT-Befehls abzurufen.
-
Fig. 43 ist ein Flußdiagramm zum Programmieren des NAC 36
der Fig. 2, um einen virtuellen NEAT-Befehl vorzubereiten
sowie auszuführen. Das Vorbereiten bzw. Setup des
virtuellen NEAT-Befehls beginnt bei 360, und bei 361
signalisiert der NAC 36 dem VCRM-Modul 64 der Fig. 1
mittels eines NVCSU-Signals (siehe Fig. 2, Zeile 37), um
die Registrierungszeiger im VCRM rückzusetzen. Bei 362 ruft
der NAC 36 den nächsten virtuellen NEAT-Befehl von der MSU
des Speicher-Unterabschnitts 14 ab. Bei 363 berechnet der
NAC 36 die effektive Adresse der Quell- und Zieloperanden
ähnlich dem in Verbindung mit Block 354 der Fig. 42
erörterten. Bei 364 beginnt die Ausführungsphase des
virtuellen Befehls. Bei 365 bestimmt der NAC 36, ob der NAC
den bestimmten NEAT-Befehl unterstützt, der zu emulieren
ist. Falls der NAC den zu emulierenden NEAT-Befehl
unterstützt, werden die Mikroanweisungen zum Emulieren des
NEAT-Befehls aus dem NAC-ROM 70 (siehe Fig. 3) abgerufen
und der virtuelle NEAT-Befehl wird bei 366 implementiert.
-
Falls der NAC die bestimmte NEAT-Anweisung, die zu
emulieren ist, nicht unterstützt, läßt der NAC seine
Tätigleitung (nicht dargestellt) bei 367 abfallen. Der CPC
erkennt den Abfall und fragt den NAC-Zustand in dem SSR1
des Zustands-Stapelspeichers 182 der Fig. 3 ab, um zu
bestimmen, daß der virtuelle NEAT-Befehl auszuführen ist,
und erlangt eine Kopie des virtuellen NEAT-Befehls von den
Bit 32-35 des SSR1. Bei 368 führt der CPC 22 den virtuellen
NEAT-Befehl aus, wie dies in Verbindung mit Block 356 der
Fig. 42 erörtert wurde.
-
Die Fig. 44A und 44B bilden, wenn sie bei
Verbindungsstellen A und B verbunden werden, ein
Flußdiagramm zum Programmieren des CPC 22 und des NAC 36
der Fig. 2 zum Bewirken einer Wiederholungsoperation aus.
Im Falle eines Interrupts, Block 370, beginnt der CPC 22
die Ausführung eines Unterbrecherprogramms bzw. einer
Interruptroutine. Bei 371 schaltet der CPC 22 den
Registrierungsfreigabe-(LE)-Merker im VCRM-Modul 64 durch
sein Steuerregister mittels Ausschaltens des Bit 10 mit
einem XOUT78-Signals aus. Bei 372 geht der CPC 22
vektorgesteuert so zu verschiedenen Dienstprogrammen, wie
durch die Unterbrecherbit bzw. Interruptbit der ERU 175 des
DINM-Moduls 46 (siehe Fig. 5) gezeigt wird. Falls der
Interrupt vom DIMN-Modul 46 stammt, geht das Programm zu
373, wobei die Firmware bestimmt, ob ein Wiederholen eines
virtuellen Befehls unter Verwendung des VCRM-Moduls 64
aufgerufen werden soll. Falls der Interrupt einer ist, der
ein Wiederholen eines virtuellen Befehls erforderlich
macht, schreitet das Programm zum Block 374, bei dem der
CPC 22 bestimmt, ob ein NAC 36 in dem System vorliegt. Bei
376 setzt der CPC 22 für ein System, bei dem ein NAC 36
vorliegt, Bit 5 des Steuerregisters ERU (XOUT78), um die
virtuelle IR-Registrierungsadresse auf Null zu setzen. Der
CPC 22 liest dann bei 377 den ersten Eintrag in der IR-
Registrierung bzw. IR log des VCRM 64 über das
Zustandsregister (XIN78). Bei 378 schreibt der CPC 22 den
ersten IR log- bzw. IR-Registrierungs-Eintrag in die
Indexregistereinheit 74 (siehe Fig. 3) des NAC 36, wie
vorstehend erörtert wurde. Die Adresse wird dann um 4
inkrementiert bzw. hochgezählt, um den nächsten
Indexregistereintrag in der IR-Registrierung des VCRM 64 zu
adressieren. Bei 379 wird eine Überprüfung durchgeführt, um
zu sehen, ob die Adresse über 40H liegt, was anzeigt, ob
alle 15 Indexregister aus der IR-Registrierung gelesen
wurden. Falls nicht, kehrt das Programm zum Block 377
zurück, um den nächsten IR-Registrierungseintrag zu
erlangen.
-
Wenn alle Indexregister so zum NAC 36 zurück gespeichert
wurden, setzt der CPC 22 bei 380 Bit 13 im Steuerregister
XOUT78, um die IR-Registrierung zurückzusetzen.
-
Bei 381 liest der CPC 22 das Zustands
Stapelspeicherregister zwei (SSR2) des NAC 36, um den INB-
Merker zu erlangen. Falls der INB-Merker wahr ist, zeigt
dies an, daß der NEAT-Befehl, der zur Zeit des Interrupts
emuliert wurde, sich in der Setup-Stufe bzw.
Vorbereitungsstufe des zweiten Worts eines Zwei-Wort-
Befehls befand.
-
Dieinhalte des VIAR-Registers 180 der Fig. 3, die die
virtuelle Adresse des nächsten durch den NAC abzurufenden
Befehls und das virtuelle Steuerregister des CPC 22
enthalten, was vorstehend erörtert wurde, müssen in deren
anfänglichen Zustand zurückgesetzt werden. Dies wird im
Block 382 durchgeführt, bei dem der CPC 22 den Inhalt des
NAC VIAR-Registers 180 in das VCR-Register des CPC setzt
und 4 von seiner VCR-Adresse subtrahiert, um auf die
anfängliche VCR-Adresse des virtuellen Befehls zu kommen.
Falls der INB-Merker bzw. das INB-Flag bei 383 wahr ist,
befand sich der NAC 36 im zweiten Wort eines Zwei-Wort-
Befehls, als der Interrupt auftrat, und es müssen
zusätzliche 4 von dem VCR des CPC subtrahiert werden, um
zur anfänglichen VCR-Adresse zurück zu gelangen. Bei 385,
Fig. 44B, schreibt der CPC 22 die VCR-Adresse, die bei
Block 382-384 bestimmt wurde, in das VIAR-Register 180 des
NAC zurück. Bei 385 liest der CPC 22 SSR4 des Zustands-
Stapelspeichers 182 der Fig. 3, um die alte Kopie der
virtuellen Anzeigeeinrichtungs- bzw. Indikator-Merker zu
erzielen. Bei 387 werden die Merker der alten Kopie in die
aktuelle bzw. vorliegende Kopie im SSR1 geschrieben, um die
virtuellen Anzeigeeinrichtungen im SSR1 in deren
ursprünglichen, unmodifizierten Zustand zurückkehren zu
lassen. Der CPC 22 und der NAC 36 werden nun in deren
anfängliche Zustände zurückgespeichert. Das Programm
schreitet dann zu 395 fort, wo Bit 3 des Steuerregisters
des VCBM-Moduls 64 eingeschaltet wird und das Wiederholen
begonnen wird.
-
Falls bei 374 kein NAC 36 vorliegt (oder der NEAT-Befehl
durch den NAC 36 nicht unterstützt wird), schreitet das
Programm zu 388 der Fig. 44B fort, worin der CPC 22 den
aktuellen virtuellen Operationscode von seinem
Vorbereitungsregister eins (SUR1) (nicht dargestellt)
bekommt. Bei 389 wird Bit 16 des SUR1 geprüft, um zu
bestimmen, ob ein Zwei-Wort- oder Doppelstufen-Befehl
ausgeführt wurde, als der Interrupt auftrat. Falls nicht,
schreitet das Programm zu 393 fort. Falls ja, wird der
Zuerst-Ein-Zuerst-Aus- bzw. Silo-Rückspeicher-
Stapelspeicher (RFIF0) (nicht dargestellt) geprüft, um zu
bestimmen, ob der Interrupt beim Vorbereiten auftrat. Falls
nicht, schreitet das Programm zu 392 fort. Falls der
Interrupt beim Setup auftrat, werden die Inhalte des CPC-
VCR-Registers mit dem Wert des LOCWORK verglichen, der bei
354 der Fig. 42 gespeichert wurde, um zu bestimmen, ob
beide Worte des Befehls abgerufen wurden, als der Interrupt
auftrat. Falls nicht, schreitet das Programm zu 393 fort.
Falls ja, wurde das zweite Wort abgerufen und bei 392 wird
4 von der Adresse in dem VCR des CPC subtrahiert, um das
erste Wort des Befehls zurück zu erlangen. Bei 393 wird in
jedem Fall von der Adresse im VCR des CPC 4 subtrahiert, um
die anfängliche VCR-Adresse zurück zu erlangen. Beim Block
394 erlangt der CPC die ursprünglichen, virtuellen
Anzeigeeinrichtungs-Merker zurück, die im Block 352 der
Fig. 42 abgespeichert wurden, und speichert sie in die ERU
17 (nicht dargestellt) als die ursprünglichen virtuellen
Anzeigeeinrichtungen bzw. Indikatoren zurück, und das
Wiederholen wird beim Block 395 gestartet, wie vorstehend
erörtert wurde. Die virtuellen Indikatoren der ERU 17, des
VCR, des SUR1 und des RFIF0 des 32-Bit-CPC 22 von NCR
werden in der zuvor genannten NCR/32 General Information
publication vollständig erläutert und sind bekannt.