DE2612034A1 - Ausfallsicherung in einem universalrechner - Google Patents

Ausfallsicherung in einem universalrechner

Info

Publication number
DE2612034A1
DE2612034A1 DE19762612034 DE2612034A DE2612034A1 DE 2612034 A1 DE2612034 A1 DE 2612034A1 DE 19762612034 DE19762612034 DE 19762612034 DE 2612034 A DE2612034 A DE 2612034A DE 2612034 A1 DE2612034 A1 DE 2612034A1
Authority
DE
Germany
Prior art keywords
address
register
bits
control block
control
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.)
Withdrawn
Application number
DE19762612034
Other languages
English (en)
Inventor
Jaime Calle
Garvin W Patterson
Marion G Porter
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.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
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 Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2612034A1 publication Critical patent/DE2612034A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Description

5202554 Ge 22. März 1976
HONEYWELL INFORMATION SYSTEMS INC.
200 Smith Street Waltham, Mass./ USA
Ausfallsicherung in einem Universalrechner.
Die Erfindung befasst sich mit DV-Systemen und insbesondere mit einem Universalrechner, der alternative Datenwege zur Adressierung von Daten im Speicher aufweist, wobei ein Datenweg der normalen Adressierung und der andere Datenweg dem automatischen Gebrauch im Falle einer Speicherstörung dient.
Mit zunehmender Komplexität der DV-Systeme ist auch die Größe und Anzahl der Prozessoren, der Hauptspeicher und der peripheren Einheiten gewachsen. Bei diesen Systemen ist es dringend erforderlich, daß die Nachrichtenverbindungen zwischen dem Prozessor, den peripheren Einheiten und dem Hauptspeicher aufrechterhalten werden. Wegen der hohen Kosten redundanter Prozessoren zur Steuerung der Nachrichtenverbindung zwischen den peripheren Einheiten wurde ein Eingang/Ausgang-Austausch für eine Ankopplung mehrerer peripherer Einheiten an die Zentraleinheit benutzt. Wenn dieser Eingang/Ausgang-Austausch gestört wurde, so wurde der Zugriff aller peripherer Einheiten auf die Zentraleinheit blockiert. Ein Ausweg aus diesen Schwierigkeiten bestand darin, redundante Datenwege vorzusehen, in dem wenigstens ein zusätzlicher Ausgangs-Austausch vorgesehen wurde, an den alle peripheren Steuerungen und
609842/0637
peripheren Einheiten angeschlossen waren. Hinsichtlich dieser bekannten Lösung sei auf die US-PS 3 792 44-8 verwiesen.
Durch diese bekannte Lösung wurde jedoch nicht das Problem behoben, das sich ergab, wenn eine periphere Einheit selbst, z.B. ein Hauptspeicher gestört wurde. Wenn beispielsweise ein Modul oder ein Teil des Hauptspeichers, der die Basisadresse von Routinen oder Prograirunen in einem intakten Teil des Hauptspeichers speicherte, gestört wurde, so waren diese Routinen oder Programme in dem intakten Teil des Hauptspeichers für den Prozessor nicht automatisch zugänglich.
Es ist die Aufgabe der vorliegenden Erfindung, eine Ausfallsicherung für einen Universalrechner anzugeben, die auch in dem vorstehend erwähnten Fall einen automatischen Zugriff auf den intakten Teil des Hauptspeichers gestattet. Die Lösung dieser Aufgabe gelingt gemäß der im Anspruch 1 gekennzeichneten Erfindung. Weitere vorteilhafte Ausgestaltungen der Erfindung sind den Unteransprüchen entnehmbar.
Gemäß der vorliegenden Erfindung erzeugt ein Firmware/Hardwaremechanismus eines Universalrechners automatisch einen alternativen Adressierweg zu einem intakten Teil des Hauptspeichers, wenn ein gestörter Hautpspeicherteil festgestellt wird. Zwei Arten von Hauptspeicherstörungen sind feststellbar und in jedem Fall wird ein alternativer Adressierweg zu einem intakten Teil des Hauptspeichers automatisch erzeugt. Der erste Störungstyp ist eine Störung im Speicher, die durch die Speicherhardware oder die System-Schnittstelleneinheit-Hardware nicht festgestellt wird. Eine solche Störung wird durch eine Ausnahme-Verarbeitungsroutine behandelt,durch welche automatisch ein alternativer Adressierweg zu einem intakten Hauptspeicherteil erzeugt wird. Der zweite Störungstyp wird durch die Hardware des Speichers oder der Schnittstelleneinheit festgestellt. Eine solche Störung wird durch eine Unterbrechungs-Verarbeitungsroutine behandelt, welche ebenfalls
609842/0637
copy
einen alternativen Datenweg zu einem intakten Teil des Hauptspeichers erzeugt. Ein erstes und ein zweites Steuerblockbasisregister sind vorgesehen, um die redundante Adressierung zu erzeugen. Wenn auf den ersten Steuerblock im Hauptspeicher durch Verwendung der ersten Steuerblockbasis nicht Zugriff genommen werden kann, so stellt die Firmware unter Benutzung der zweiten Steuerblockbasis automatisch einen ünterbrechungs- oder Ausnahmesteuerblock in einem anderen Speichermodul fest, welcher Steuerblock zunächst benutzt wird,*um eine Fehlerroutine zur Feststellung des Fehlers in dem gestörten Speicher auszulösen und sodann eine Verarbeitungsroutine durchzuführen, die die angeforderte Verarbeitung gestattet.
Anhand eines in den Figuren der beiliegenden Zeichnungen dargestellten Ausführungsbeispieles sei im folgenden die Erfindung näher erläutert. Es zeigen:
Figur 1 ein schematisches Blockdiagramm eines typischen DV-Systems gemäß der vorliegenden Erfindung, Figuren 2A bis 2M Daten-Strukturdiagramme von verschiedenen durch die Erfindung benutzten Registern und Figur 3 ein Blockdiagramm eines Prozessors gemäß der Erfindung.
COPY
609842/0637
Gemäß Figur 1 ist ein typisches von der Erfindung Gebrauch machendes Comutersystem dargestellt. Dieses System weist eine Systemschnittstelleneinheit SIU 100 auf, die ihrerseits eine Prioritätsunterbrechungs- und Zuteileranordnung 101 und 102 enthält. Die Systiemschnittstelleneinheit 100 erzeugt die Verbindung zwischen den Elementen des Datenverarbeitungssystems. Zwecks Zugriff zu internen oder externen Speichern 121, 122 bzw. 122a und 123 durch aktive Prozessormodule 103 - 106, ein Konfigurations-Wartungsfeld 124 usw. sieht die Schnittstelleneinheit 100 eine ■ direkte Adressierung von Hochgeschwindigkeits- und Niedriggeschwindigkeitsmultiplexern 107, 112 und 113 und von Steueradaptern 108, 109, 134 und 135 durch die Prozessoren 1o3-106 vor. Die Unterbrechungsanordnung 101 und die Verteileranordnung 102 steuern die Unterbrechungsprozedur und führen die Prozessorzuteilung in der geforderten Weise aus. Jeder Prozessor IOP/P 103-106 weist typischerweise 16 Register 130-133 für jeden einem Prozess zugeordneten Prioritätsrang auf. oder es sind insgesamt 128 Register pro Prozessor vorgesehen, die 128 Worte speichern können. Die Register 130-133 werden in der nachfolgenden Beschreibung als Zwischenspeicher bezeichnet und weiter unten näher beschrieben. Jeder Prozessor IOP/P stellt einen Mehrzweck-Rechenprozessor dar mit einer herkömmlichen Ausrüstung von Register-Register-, Register-Speicher-, Sofort-, Verzweigungs-, Bitfeld- und Verschiebebefehlen. Diese Prozessoren können als Eingang/
609842/063 7
Ausgang-Prozessoren (IOP) benutzt werden, deren Funktionen die Einleitung und Beendigung von Ein/Ausgang-Befehlsfolgen, das Abrufen, das überprüfen und das übersetzen von Kanalprogranimen umfassen und die eine direkte Steuerung von peripheren Geräten mit niedriger Geschwindigkeit, wie beispielsweise von Aufzeichnungseinheiten und Datenübermittlungseinheiten ermöglichen. Die Prozessoren 103-106 sind über Anschlüsse H, G, F und E mit der Schnittstelleneinheit 100 verbunden und stehen mit dieser im Nachrichtenaustausch. Der interne Speicher 121, 122 und die Prozessoren 103-106 sind an die Schnittstelleneinheit SIU 100 über Anschlüsse LM und LM- bzw. H-E angeschlossen. Jeder der internen Speicher 121- 122 ist als Lese/Schreibspeicher 136, 137 organisiert und enthält zusätzlich eine Festwertspeicher ROM-138, 139 mit einem wahlfreien Pufferspeicher 140, 141. Die Datenbreite der Anschlüsse LMQ bzw. LM- beträgt 36 Bitplus 4 Bit für eine Paritätsprüfung. Die Größe des internen Speichers beträgt typischerweise 256K oder 512K Bits, wobei die Größe K 1024 Bytes entspricht. Die externen Speieheradapter 122a, 123 werden benutzt, wenn die Schnittstelleneinheit SIU 1oo mit ihren Prozes- · soren und peripheren Geräten Teil eines größeren Mehrzweck-Computer sy stems bildet. Die externen Speicheradapter (REMA) bilden sodann eine Einrichtung zum Auswechseln der Steuerung und der Datenübertragung zwischen den Prozessoren 103-106 und den externen Speichern 122b und 123b eines anderen Mehrzweck-Computersystems, das mit Med 6 bezeichnet ist. Bis zu z"wei Anschlüsse 0C1 β und ^y (f sind für jeden der externen Speicheradapter (REMA) 122a, 123 vorgesehen, wobei jeder Anschluß einen 40 Bit-Datenweg als Ein- und Ausgang zwischen dem dargestellten Computersystem und einem großen nicht dargestellten Computersystem besitzt. Die externen Speicheradapter 122a, 123 sind über Anschlüsse RMQ und RM1 an die Schnittstelleneinheit SIU 100 angeschlossen. Es sei hier drauf verwiesen, daß primäre und sekundäre Steuerblöcke, die weiter unten näher beschrieben werden, in den externen Speichern 122b, 123b und in den internen Speichern 121, 122 gespeichert sind.
609842/0637
Ein Hochgeschwindigkeitsmultiplexer 107 erzeugt eine direkte Steuerung der Datenübertragung zwischen peripheren Geräten mit hoher Geschwindigkeit, z.B. der Platteneinheit 110 und der Bandeinheit 111 und dem internen Speicher 121, 122. Der Hochgeschwindigkeitsmultiplexer 107 bildet eine Schnittstelle zwischen dem Anschluß A der Schnittstelleneinheit SIU 100 und den peripheren Geräten. Jeder Niedriggeschwindigkeitsmultiplexer 112, 113 gestattet die direkte Steuerung eines Gerätes mit niedriger Geschwindigkeit durch einen Prozessor 103-106, wobei solche peripheren Geräte beispielsweise in Form von Kartenstanzerni18, Druckern 119 und einerKonsole 120 gegeben sind, die über Geräteadapter-Schnittstelleneinheiten DAI 115 und 116 und 117 an die Multiplexer angeschlossen sind.
Gemäß den Figuren 2a bis 2L sind allgemein zugängliche Register dargestellt, d.h. jene Prozessorregister, auf die durch Prozessor-Software-Befehle Zugriff genommen werden kann. Folgende Register bilden die zugänglichen Register eines jeden Prozessors IOP/P:
a. Prozeß-Zustandsregister ·(PSR)
b. Befehlszähler (IC)
c. Seitentabellen-Basisregister · ... (PTBR)
d. Ällgemeinregister (GR1s)
e. Steuerblockbasisregister (CBBR)
f. Prozessteuerregister (PCR)
Die Register PSR, IC, PTBR und GR1 s sind im Zwischenspeicher von 16 36-Bit-Registern abgelegt und in der in Figur 2A dargestellten Weise zugeordnet.
Prozeß-Zustandsregister (PSR) Figur 2B - Das Prozeß-Zustandsregister speichert Information, die für die Steuerung des.laufenden Prozesses von bedeutung ist. Das Register besitzt das Format gemäß Figur 2B:
Steuerung (BMs 0-7) Die Steuerung bestimmt die Unterbrechungsquelle
If (Bit 8) - Zugriffsrecht. Haupt (O)- oder Neben (1)-Betrieb.
R (Bit 9) _ Externes Register. Bestimmte nicht im Prozessor
IOP/P befindliche Register können nicht ver-.' ändert werden, wenn dieses Bit gesetzt ist.
609842/0637
A (Bit 10) - Adressenmodus. Absolute (O)- oder Seiten (1)-
Adressierweise.
CC (Bits 11-12) Zustandscode. Die Bedeutung des Zustands-
codes ist für jeden lOP/P-Befehl gegeben. Im allgemeinen entspricht: · .· .
Ergebnis = 0 CC-*- O
Ergebnis < O CC"*- 1
Ergebnis > O CC ·*- 2
Überlauf CC <-3
C (Bit 13) - Übertrags-Bit des Addierers. Übertrag (1)
oder kein Übertrag (0) ergibt sich aus der ■· . Ausführung von Befehlen unter Heranziehung der arithmetischen Funktionen des Addierers.
.' ' (Addieren, Subtrahieren, Multiplizieren,
Dividieren, Vergleichen und Negieren)
Prozess-Zeit- Ein Zeitgeber, der periodisch während der .geber(Bit 14-35)Bearbeitung des Prozesses herabgezählt wird.
Eine Zeitgeber-Auswurfausnähme tritt auf, wenn der Zeitgeber den Wert Null erreicht. Der Zeitgeber wird jedesmal beim Ablauf von 512 Taktzyklen des Prozessors um 1 zurückgestellt. Bei einer Zykluszeit von 8o ns führt dies zu einem Minimalwert von untje-/' fähr 40 Ais und einem Maximalwert von 2,67 min.
Entsprechend der Zugriffsfrequenz zu dem Prozess-Zustandsregister PSR wird entweder für eine Modifikation oder eine Bezugnahme der tatsächliche Wert des laufenden Prozesses in einem speziellen Register außerhalb des nicht dargestellten Allgemeinregister-Zwischenspeichers abgespeichert. Änderungen in dem Register werden aus Leistungsgründen in dem Allgemeinregister GRQ nicht berücksichtigt. Dieser dem Prozeßzustandsregister PSR zugeordnete Zwischenspeicher wird nur zur Sicherung des laufenden PSR- Wertes für den Fall einer Unterbrechung benutzt. Alle Befehle, welche das Allgemeinregister GRQ als einen Bestimmungsoperanden . kennzeichnen, veranlassen eine Speicherung des Ergebnisses in dem Spezialregister für den PSR-Wert, wodurch das Allgemeinregister GRQ keine Veränderung erführt. Ein spezieller Befehl kopiert den Inhalt des Prozeßzustandsregisters PSR in ein Generalregister GR, so daß dessen Inhalb als ein Operand benutzt werden kann.
609842/0637
Befehlszähler (IC) Figur 2C - Der Befehlszähler speichert die Adresse des laufenden Befehls. Wenn Befehle eine Halbwort-Ausrichtung aufweisen, so weist das niedrigstrangige Bit immer den Wert Null auf. Der Befehlszählerinhalt ist im Generalregister GR.. abgelegt und er besitzt das Format gemäß Figur 2C:
L/R (Bit O) - Intern/Extern (0) bestimmt den internen Speicher
121 r 122; (1) bestimmt den externen Speicher 122b, 123b
S (Bits 1-3) - Steuerung. Bestimmt, welcher externe Speicher
für die externe Speicherbezugnahme ausgewählt wird.
RFU (Bits 4-8)- Reserviert für zukünftigen Gebrauch IC (Bits'? 9-35) - Die (Byte)-Adresse des laufenden Befehls.
Seitentabellen-Basisregister (PTPR) Figur 2D - Das Seitentabellen-Basisregister verweist auf die Seitentabelle, die benutzt wird, um eine seitenbezogene Adressenwiederauffindung für den laufenden Prozeß zu erzeugen. Sie kann nur im Hauptbetrieb geladen werden. Das Register PTPR ist im Generalregister GR15 abgelegt und weist das Format gemäß Figur 2D auf:
L/R (bit 0) - Intern/Extern
S (Bits 1-3) - Steuerung
Programm Nr.(Bits 4-8) - Programmnummer. Ein Feld, welches von der
Software benutzt werden kann, um eine zusätzliche Programmidentifizierung durchzuführen. Dieses Feld wird von der Prozessor-Hardware nicht beachtet.
Seitentabellen-Basis - Dies ist die absolute Adresse der Basis (Bits 9-29) der Tabelle des seitentabellenwortes für
diesen Prozeß. Wenn die Adresse auf 27 Bits durch addieren von sechs Nullstellen an der rechten Seite aufgefüllt ist, so müssen die Seitentabellen-Adressen kongru-, ent zu 0 mod 64 (Bytes) sein. Kennschlüssel (Bits 30-35) Dieser Kennschlüssel stellt einen
Prozeßidentifizierer dar, der benutzt wird um Seitentabellenworte den Prozessen zuzu-. ordnen.
609842/0637
-■ 9 -
Allgemeinregister (GR) - Die verbleibenden 13 Register GR2 - GR-| 4 der zugünglichen Register gemäß Figur 2A sind Allgemeinregister. Diese können als Quellen- oder Bestimmungsoperanden benutzt werden oder auch als Erst- oder Zweit-Pegeladressenmodifizierer.
Steuerblockbasis-Register (CBBR) Figur 2E - Die Steuerblockbasis (CBB) gemäß den Figuren 2F und 2G ist eine absolute Adresse, welche auf die Basisadresse im Speicher des Ausnahmesteuerblocks(ECB) gemäß Figur 2J und des Unterbrechungssteuerblocks (ICB) gemäß der Tabelle in Figur 2J hinweist. Das Steuerblock-Basisregister ist in dem dem Allgemeinregister GR~ zugeordneten Zwischenspeicher für den Prozeß mit dem höchsten Prioritätsrang abgelegt. Zwei Werte CBB1 ein primärer und ein sekundärer, sind in dem Register abgelegt, welches das Format gemäß Figur 2E aufweist. Der erste Wert CBB gemäß Figur 2F wird für alle Ausnahmen benutzt, und für alle Unterbrechungen mit Ausnahme jener, die den internen Speicherfehlern zugeordnet sind. Im Falle der Benutzung ist der primäre CBB-Wert gemäß Figur 2F ausgebildet. Diese.'Ausbildung gestattet die Speicherung von Basen der Tabellen des Ausnahmesteuerblockes ECB und " des Unterbrechungssteuerblockes ICB an, irgendeiner 512-Wortgrenze in irgendeinem Speicher. In Figur 2F stellen dar: • L/R (Bit O) - Interner oder externer Speicher (SMie Fig.2C).
S (Bits 1-3) - Siehe Figur 2C
RFU (Bits 4-8) - Siehe Figur 2C
CBB1 (Bits 9-24) Adresse des primären Ausnahme-Steuerblockes
oder des primären Unterbrechungs-Steuerblockes.
Bits 25-35 - Gefüllt mit Nullstellen.
Der zweite CBB-Wert ist in Figur 2G dargestellt und wird aufgerufen bei Unterbrechungen entsprechend interner Speicherfehler. Bei seinem Gebrauch ist der zweite CBB-Wert gemäß Figur 2G ausgebildet. Diese Ausbildung gestattet die Ablage der Basen der Tabellen des Ausnahmesteuerblockes ECB und des Unterbrechungssteuerblockes ICB an einer 512-Wortgrenze innerhalb der ersten 64K irgendeines Speichers. Gemäß Figur 2G bedeuten:
609842/063
L/R (Bit O) - Interner oder externer Speicher (Siehe Fig.2C) S (Bits 1-3) - Steuerung. Siehe Fig.2C RFU (Bits 4-8) - Reserviert für zukünftigen Gebrauch Bits 9-17 - Gefüllt mit Nullstellen CBB2 (Bits 28-24)Adresse des zweiten Ausnahme-Steuerblockes oder
des zweiten Ünterbrechungs-Steuerblockes. Bits 25-35 - Gefüllt mit Nullstellen.
Die Ausnahme-Steuerblöcke und die Unterbrechungs-Steuerblöcke sind in Bezug auf die Steuerblockbasis CBB-wie in Figur 2H dargestelltgespeichert. Es sei an dieser Stelle vermerkt, daß hinsichtlich der Adresse der Unterbrechungs-Steuerblöcke ICB, bezogen auf die Steuerblockbasis CBB, die relative Adresse der Unterbrechungs-Steuerblöcke zu der Steuerblockbasis hinzuaddiert wird, während hinsichtlich der Adresse der Ausnahme-Steuerblöcke ECB deren relative Adresse von der Adresse der Steuerblockbasis CBB subtrahiert wird.
Prozeß-Steuerregister (PCR) - Ein Prozeßsteuerregister (PCR) ist allen Prioritätsrängen gemeinsam. Es weist das Format gemäß Figur21 auf:
.Ausnahmen (Bits 0-8)Jedes Bit bestimmt eine Nicht-Hauptspeicherausnahme MME eines besonderen Typs
Paritätsfehler - Sie bestimmen den Ablaufpunkt in dem Prozessor, - x . an welchem ein Paritätsfehler festgestellt
wurde.
LZ (Bit 16) - Es liegt keine Antwort auf eine Unterbrechung
mit dem Rang Null vor.
RFU (Bit 17) - Reserviert für zukünftigen Hardware-Gebrauch T&D (Bit 18) - T&D-Betrieb. Ein Haltbefehl stoppt den Prozessor.
Alle Unterbrechungen bleiben unbeachtet. ROM (Bit 19) - ROM-Bit. Steuerzugriff zu dem Festwertspeicher RFU (Bits 20-22)'- Reserviert für zukünftigen Hardware-Gebrauch Prozessor Nr.u.Rang-Prozessor Nr. und Prioritätsrang des Prozesses
(Bits 23-26)
Sperr (Bit 27) - Unterbrechungs-Sperrbit
• UNT.ANF.(Bits28-35)-Unterbrechungs-Anforderungs-Bits. Jedes gesetzte Bit bestimmt eine Software-Satzunterbrechung auf einem Pegelrang entsprechend
609842/0637
der Bit-Position. Die Pegelanforderung 7 (Bit 35) ist immer gesetzt. Die Prozessor-Satzunterbrechungen mit den Pegeln 0-7 benutzen entsprechend die Bits 8-15 des Unterbrechungs-Steuerblocks ICB.
Ausnahmen
Ausnahmen sind vom Prozessor festgestellte Zustände, die einen automatischen Eintritt in eine Ausnahmeverarbeitungsroutine veranlassen. Ausnahmezustände können allmählich erzeugt werden oder sie können das Ergebnis eines Programmierfehlers oder eines Hardwarefehlers außerhalb des Prozessors sein. Die Ausnahmebedingungen sind wie unten dargestellt definiert. Für Nicht-Hauptspeicherausnahmen ist der Zusammenhang zwischen der Art der Ausnahme und der Bit-Position des Prozeßsteuerregisters PCR in Figur 21 dargestellt.
PCR-Bit in * Figur 21 Ausnahmetyp
0 Operation nicht vollständig(ONC). Keine Reaktion der Schnittstelleneinheit SIU auf ARA oder ARDA.
1 Seitenadressen-Grenzfehler (Kennschlüsselprüfung)
2 Seitenzugriffsfehler
3 · Seite im Speicher nicht vorhanden
4 Illegale Operation (Ungültiger Befehl, illegaler Nebenbefehl oder illegale Nebenoperation)
5 . Prozeßzeitger-Ablauf
6 überlauf, wenn PSR CC = 11, Teilungsprüfung,wenn PSR CC =00.
7 Verriegelungsfehler (Sperrunterbrechung für mehr als 40 yus) .
8 Adressen-Fehlausrichtung
Ausnahmezustände werden durch eine Vier-Bit-Ausnahmenummer gekennzeichnet. Für Hauptbetriebs-Eingangsstellenausnahmen wird diese Nummer von den Bits 10-14 eines nicht dargestellten Befehls entnommen. In allen anderen Fällen weist die Ausnahmenummer den Wert Null auf. Die Ausnahmenummer wird als eine Ausnahme-Steuerblocknummer (ECB-Nummer) benutzt, um einen vlerwort-Ausnahme-Steuerblock (ECB) zu bestimmen, der auf die Ausnahme-Verarbeitungsroutine verweist. Die Byte-Adresse eines Ausnahmesteuerblockes ECB ist gegeben durch:
609842/0637
ECB-Adresse = Steuerblockbasis -16 (ECB Nr. + 1) Das Format des Ausnahme-Steuerblockes ECB ist in Figur 2J dargestellt. Gemäß Figur 2J ist ein PSR-Wort entsprechend Figur 2B an der ersten Wortstelle abgelegt. Ein IC-Wort gemäß Figur 2C ist an der zweiten Wortstelle abgelegt. Weiterhin ist eine Bereichssicherungs-IIinweisadresse SAP für das Prozessorpar O an der dritten Wortstelle des Ausnahme-Steuerblockes ECB O und eine Bereichssicherungs-Hinweisadresse für das Prozessorpaar 1 an der dritten Wortstelle des Ausnahme-Steuerblockes 1 gemäß Figur 2H abgelegt.
Bevor mit einer Ausnahme-Verarbeitungsroutine begonnen werden kann, muß wichtige Information über den laufenden Prozeß gesichert werden. Diese Sicherung erfolgt als Teil einer Prozessorantwort auf eine Ausnahme. Da die Ausnahmeauftritte verschachtelt sein können, z.B. kann eine zweite Ausnahme auftreten, bevor die Verarbeitung der ersten Ausnahme beendigt ist, wird ein Stapel benutzt, um Platz für die sichere Speicherung des Prozesses zu schaffen. Die /Stapelhinweisadresse wird als Sicherungsbereich-Hinweisadresse SAP bezeichnet und an der dritten Wortstelle des Ausnahme-Steuerblockes ECBO abgelegt. Mehr-Prozessorsysteme erfordern einen zweiten Stapel und die Sicherheitsbereich-Hinweisadresse für den zweiten Prozessor wird an der dritten Wortstelle des Ausnahme-Steuerblockes ECB 1 abgelegt.
Wenn eine Ausnahme festgestellt wird, so vdrd die geeignete Sicherungsbereich-Hinweisadresse aufgesucht und die Information über den ablaufenden Prozeß in dem Stapel in der"Reihenfolge gemäß Figur 2K abgelegt. Die Sicherheitsbereichs-Hinweisadresse wird entsprechend ergänzt. Der in dem Stapel gemäß Figur 2K gespeicherte Zählstand des Befehlszählers IC verweist auf den Befehl, der auf denjenigen innerhalb des Prozesses- folgt, der zu dem Zeitpunkt vorlag, wo die Ausnahme festgestellt wurde. Die in dem letzten Stapelspeicherplatz gespeicherte Adresse ist die letzte interessierende Adresse, die vor der Feststellung der Ausnahme erzeugt wurde. Nachdem diese Information über den laufenden Prozeß in dem Stapel 2K sicher abgespeichert ist, werden die Inhalte
609842/0637
des Prozeßzustandsregister PSR1 des Befehlszählers IC und des Seitentabellen-Basisregisters PTBR aus dem geeigneten Ausnahme-Steuerblock geladen und die durch diesen Prozessor benutzte Adresse der Sicherheitsbereichs-Hinweisadresse wird in das Allgemeinregister GR0 geladen. Auf diese Weise wird der Eintritt in die Ausnahme-Verarbeitungsroutine vervollständigt. Nach der Vervollständigung gibt die Ausnahme-Vaarbeitungsrou.tine einen nicht dargestellten Spezialbefehl RMM aus, um zu dem Prozeß zurückzukehren, in welchem die Ausnahme festgestellt worden war. Dieser Befehl lädt die Inhalte von PSR, IC, GR2, GR3, GR4,und PCR und PTBR aus dem Stapel heraus und erniedrigt die Sicherheitsbereichs-Hinweisadresse um 1. Wenn Ausnahmen und RMM-Befehle nicht paarweise auftreten, so muß die Ausnahme-Verarbeitungs-Software sicherstellen, daß der Stapel aufrechterhalten bleibt. Es gibt keine Fehlerüberprüfung hinsichtlich der Software-Handhabung der Stapel-Hinweisadresse oder hinsichtlich des Stapel-^überlaufs oder -Unterlaufs.
Unterbrechungen
Unterbrechungen sind außerhalb des Prozessors festgestellte Ereignisse,*welche eine Reaktion des Prozessors erfordern. Unterbrechungen des Prozessors IOP/P können einen von acht Prioritätsrängen aufweisen. Der Rang Null ist der höchste Prioritätsrang und der Rang 7 entspricht dem niedrigsten Prioritätsrang. Um die zum Ansprechen auf eine Unterbrechungsanforderung erforderliche Zeit zu minimalisieren, sieht der Prozessor IOP/P einen vollständigen Satz von Registern für jeden der acht Prioritätsränge vor. Wenn eine Unterbrechung die Auslösung eines neuen Prozesses veranlaßt, so bleibt der gerade laufende Prozeß unversehrt in den Registern,-die dem laufenden Prioritätsrang zugeordnet sind. Die Steuerung kann auf den unterbrochenen Prozeß zurückkehren, indem der diesem Prozeß zugeordnete Prioritätsrang einfach reaktiviert wird. Die Notwendigkeit der sicheren Speicherung und Neuspeicherung unterbrochener Prozesse zusammen mit dem damit verbundenen Aufwand kann entfallen.
6 0 9842/0637
Die 16 Register für jeden Prioritätsrang sind in aufeinanderfolgenden Blöcken in dem Zwischenspeicher. 328 des IOP/P mit 128 Bit-Wortlänge abgelegt. Die Register für den Prioritäts- . rang O befinden sich an den Speicherplätzen 0-15 des Zwischenspeichers. Da das Prozeßzustandsregister PSR.für den Prioritätsrang 0 niemals in den Zwischenspeicher übertragen wird, da ein Prozeß mit dem Prioritätsrang 0 nicht unterbrochen werden kann, wird der Speicherplatz O des Zwischenspeichers zur Speicherung der Steuerblockbasis benutzt, obgleich andere Register mit dem Prioritätsrang 0 benutzt werden könnten. Ein Nachrichtenaustausch zwischen Registern auf verschiedenem Prioritätsrang ist nur über nicht dargestellte Hauptbetriebs-Kopierbefehle möglich, die den Zwischenspeicher adressieren.
Die System-Schnittenstelleneinheit SIU-100 des Prozessors IOP überwacht konstant den laufenden Prozeßrang des Prozessors und fordert Unterbrechungen von den Eingang/Ausgang-Systemmodulen an. Jede ünterbrechungsanforderung bestimmt die Nummer des zu unterbrechenden Prozessors, die Priortätsrangnummer der Anforderung und die Steuerung, um den Ünterbrechungsanforderer zu bestimmen. Diese Information befindet sich in jedem Modul,der Unterbrechungen anfordern kann und hinsichtlich der meisten Module wird diese Information unter Verwendung programmierbarer Schnittstellenbefehle gebildet. Immer wenn eine ünterbrechungsanforderung mit einem höheren Prioritätsr.ang als der gerade laufende Prozessorrang vorliegt, gibt die Schnittstelleneinheit SIU ein entsprechendes Unterbrechungssignal an die zu dem Prozessor führende Leitung ab. Wenn verschiedene Unterbrechungsanforderungen mit gleichem Rang vorliegen, so bestimmt die Schnittstelleneinheit SIU auf der Basis von Prioritäten,die durch die Anschlußnummer gegeben sind, welche Anforderung an den Prozessor weitergeleitet wird. Wenn die Unterbrechung des laufenden Prozesses nicht gesperrt ist, so veranlaßt eine Unterbrechungsanforderung den Prozessor IOP/P zur Aufgabe des gerade laufenden Prozesses und zur Annahme eines Unterbrechungswortes von der Schnittstelleneinheit SIU. Das Unterbrechungswort besitzt hierbei das Format gemäß Figur 2L.
609842/0637
Der Aufbau des Wortes gemäß Figur 2L ist folgender: N (Bit;O) - Neu. Dieses Bit zeigt für den Fall, daß es
gesetzt ist an, daß die Unterbrechung eine neue Unterbrechung darstellt. Wenn das Bit nicht gesetzt ist, so stellt das Unterbrechungswort eine vorangegangene unterbrochene Unterbrechungsanforderung dar, die wieder .aufgenommen wird.
M (Bit 1) - Nicht benutzt
RFU (Bits 2-17) - Reserviert für zukünftigen Gebrauch. Dieses
Feld muß O sein;aber es wird nicht überprüft zwecks Sicherstellung, daß das Feld auch den Wert O aufweist. Bit 18 - Auf Null gesetzt
ICB Nr.(Bits 19-26)- Unterbrechungs-Steuerblocknummer STEUERUNG (Bits 28-35)-Steuerung.'Diese Felds bestimmt den Unter-
brechungs-Anforderer. Die Bits 28 bis 35 werden von der Schnittstelleneinheit SIU erzeugt, und sie bestimmen den Quellenmodul (SIU-Anschlußnummer) der Unterbrechung.
Zur Auslösung der Unterbrechungs-Verarbeitungsroutine werden vier Register aus dem Unterbrechungs-Steuerblock gemäß Figur 2J herausgeholt. Wenn das Prozeßzustandsregister PSR geladen wird, wird das Steuerfeld des Unterbrechungswortes in das Steuerfeld des Registers PSR eingefügt. Die anderen Register IC, GR14 und PTBR werden durch aufeinanderfolgende Worte des Unterbrechungssteuerblockes ICB direkt geladen. Ein nicht dargestellter Freigabebefehl REL wird benutzt, um als Folge einer Unterbrechung aus einem Prozeß auszusteigen. Nach einem Freigabebefehl REL wählt die Schnittstelleneinheit SIU den wartenden Prozeß mit der höchsten Priorität zur Verarbeitung durch den Prozessor aus. Dieser Prozeß kann ein zuvor unterbrochener Prozeß oder ein neuer Prozeß sein,der als Folge einer Unterbrechungsanforderung ausgelöst wird. Bei gleichem Prioritätsrang besitzen zuvor unterbrochene Prozesse Priorität gegenüber neuen Unterbrechungs-
B09842/0837
anforderungen. Aufgrund von Hardware.und Software zum Laden des Prozeßsteuerregisters PCR kann ein Prozessor der Schnittstelleneinheit SIU eine Unterbrechung mit irgendeinem Rang 0-7 anbieten. Um jedoch eine wohldefinierte Reaktion auf einen Freigabebefehl REL bei jedem Rang zu erzeugen, ist das die Unterbrechung mit dem Rang 7 anfordernde Bit des Prozeßsteuerregister PCR immer gesetzt. Die Reaktion des Prozessors entspricht der durch eine normale Unterbrechung ausgelösten Reaktion, wenn ein neuer Prozeß als Folge eines FreigabebefehJs REL bearbeitet wird und umfaßt die Annahme eines Unterbrechungswortes von der Schnittßtelleneinheit SIU und den Zugriff zu einem Unterbrechungs-Steuerblock ICB. Wenn ein zuvor unterbrochener Prozeß erneut bearbeitet werden soll, so gibt die Schnittstelleneinheit SIU lediglich die Rangnummer und die Tatsache aus, daß ein alter Prozeß erneut bearbeitet werden soll. Da der Prozeßzustand zu dem Zeitpunkt seiner Unterbrechung in dem Zwischenspeicherregister unversehrt vorhanden ist, bildet dies die einzige Information, die erforderlich ist, um den Prozeß erneut zu starten.
ΒΠ98Α2/0637
-* 17 -
O R 1 9 Π ^ /
Allgemeine Beschreibung des Prozessors IOP/P:
Fi.gur 3 zeigt ein Blockdiagramm eines Prozessors gemäß der vorliegenden Erfindung. Daten und Befehle von der System-Schnittstelleneinheit SIU werden in das Dateneingangsregister 310 eingegeben und bearbeitete Daten werden an die Schnittstelleneinheit SIU über das Datenausgangsregister 312 abgegeben. Beim
taktweisen Eingeben der Daten und Befehle in das Register 310
wird eine Paritätsprüfung durchgeführt, so daß Paritätsfehler festgestellt werden. Befehle werden in einem zweifach auslesbaren Vorgriff-Register 314 abgelegt, welches vier Pufferworte für Befehle erzeugt. Ein 8-Rang-Steuerspeicher-Adressenschalter 316 (CSA-Schalter), der üblicherweise ein Multiplexer sein kann, erzeugt eine Adresse für den Steuaspeicher 318. Ein Rang des
CSA-Schalters 316 wird durch das Befehlsregister 314 über die Wegsuchereinheit 317 erzeugt. Der Steuerspeicher 318 enthält die Mikrobefehle zur Steuerung der Datenmanipulationen und ein
adressierter Mikrobefehl ist im Steuerspeicherregister 319 gespeichert.
Daten aus dem Eingangsregister 310 werden in einen Rang des
8-Rang-B-Schalters 320 geladen, der zusammen mit einem 2-Rang-A-Schalter 322 Operanden für ein Addier/Verschiebe-Netzwerk erzeugt. Der B-Schalter 320 wird durch ein Feld in dem Steuerspeicherregister 319 gesteuert. Der A-Schalter 322 erhält Eingangssignale von den zweifach auslesbaren Arbeitsregistern 326 und von dem Allgemeinregister-Zwischenspeicher 328 über das SPB-Register 330. Das Register 326 enthält drei Arbeitsregister und ein Abbild des Befehlszähler-Zählstandes IC, der in dem Allgemeinregister-Zwischenspeicher 328 enthalten ist. Der Leseausgang des Arbeitsregisters WRR wird dem A-Schalter 322 zugeführt und der Seitenadressierausgang des Arbeitsregisters WRP ist auf den Allgemeinregister-Zwischenspeicher 328 geschaltet. Eine 7-Bit-Adresse für den Allgemeinregister-Zwischenspeicher SPA wird
durch einen 1 aus 8-Schalter 332 erzeugt. Das Addier/Verschiebenetzwerk 324, welchem Operanden von dem B-Schalter 320 und dem A-Schalter 322 zugeführt werden, führt alle arithmetischen,
logischen und Verschiebeoperationen aus, die für eine Adressen-
609842/0637
entwicklung und eine Befehlsausführung erforderlich, sind.
Ein Seitentabellenwort-Zwischenspeicher 334 speichert 16 Seitentabellenworte .PTW" für jeden der acht Ränge des B-Schalters. 320. Der Vier-Rang-Adressenschalter 335 verkettet Adressen entweder für programmierbare Schnittstellenbefehle oder Lese/Schreib-Speicherzyklen, die seiten- oder absolutadressiert sein können. Der Ausgang des Addier/Verschiebenetzwerkes 324 kann über einen Vier-Rang-Ausgangsschalter 338 auf den Ergebnis-Doppelkanal 340 (R-XBAR) und in das Daten-Ausgangsregister 312 gegeben werden. Der Doppelkanal erzeugt eine gleichzeitige Übertragung seiner Eingangssignale sowohl zu dem Daten-Ausgangsregister 312 als auch zu den Arbeitsregistern 326. Dem Schalter 338 werden ebenfalls Eingangssignale von einem Prozeßzustandsregister PSR-342 und einem Przeßsteuerregister PCR-344 über einen Schalter 346 sowie aus dem Allgemeinregister-Zwischenspeicher 328 zugeführt.
Allgemejiregister-Zwischenspeicher
Der Allgemeinregister-Zwischenspeicher 328 enthält 128 Register mit je 40 Bit. Jedes Register enthält 4 Bytes mit 9 Bit und 1 Paritäts-Bit pro Byte. Die in den Zwischenspeicher eingeschriebenen Daten werden einem der vier Arbeitsregister an dem Ausgang WRP entnommen. Die in dem Zwischenspeicher enthaltenen Register werden durch ein Prozeßzustandsregister PSR, einen Befehlszähler IC, ein Seitentabellen-Basisregister PTBR, 13 Allgemeinregister GR und ein Prozeßsteuerregister PCR gebildet. Die 7-Bit-Adresse für den Zwischenspeicher wird durch den 1 aus 8-Schalter SPA-332 erzeugt. Die Steuereingänge des Schalters sind direkt an den Ausgang des Steurspeicherregister CSR-319 angeschlossen. Die drei höchstrangigsten Bits der Adresse bestimmen einen der acht Ränge und die vier niedrigrangigsten Bits bestimmen eines von 16 Registern innerhalb des Ranges. Der Rang wird über nicht dargestellte aktive Unterbrechungsrangleitungen .AIL von der Schnittstelleneinheit SIU für sechs der acht Positionen erzeugt. Die acht Adressenquellen sind folgende:
609842/0837
O) Sieben Bits des Konstanten-Feldes (2-8) des SteuerSpeicherregisters CSR, welche die Adressierung irgendeines Registers in irgendeinem Rang gestatten;
Di - die AIL-Leitungen und vier Bits des Konstantenfeldes (5-8) des Steuerspeicherregisters CSR, welche die Adressierung irgendeines Registers in dem vorliegenden Rang gestatten;
2) der Ausgang WER der Arbeitsregister mit den Bits 29-35. Mit diesen Bits bewirkt ein Arbeitsregister die Erzeugung der Adresse entweder für eine Initialisierung oder eine Software-Adressierung;
3) Die AIL-Leitungen und Bits 19τ22 des laufenden Befehls. Diese erzeugen die Leseadresse XR2 für eine Indizierung des zweiten Ranges;
4) die AIL-Leitungen und Bits 14-17 des laufenden Befehls.Diese erzeugen die Leseadresse XR1 für die Indizierung des ersten Ranges oder die GR/GR2-Leseadresse für einen Operandenzugriff;
5) die AIL-Leitungen und Bits 9-12 des laufenden Befehls.Diese erzeugen die GR1/GR-Leseadresse für einen Operandenzugriff;
6) die AIL-Leitungen und Bits 0-2 des Schreib/Adressregisters, wobei das niedrigrangigste Bit den Wert "1" aufweist. Hierdurch wird die ungerade Adresse eines geraden/ungeraden Paares eines Lese- oder Schreibbefehls erzeugt.
7) die AIL-Leitungen und Bits 0-3 des Schreib/Adressregisters. Hierdurch wird die Adresse beim Einschreiben in ein Allgemeinregister durch die Software auf dem vorliegenden Rang erzeugt. Diese Adressenerzeugung umfaßt das Laden der Allgemeinregister und das Zurückführen der sich bei der Ausführung ergebenden Resultate in das Ausgangs-Allgemeinregister.
Der Ausgang des Zwischenspeichers ist auf einen der beiden Schalter 33Oa geführt und geht zu dem SPB-Register 330, welches ebenfalls ein Eingangssignal für den Ergebnis-Doppelkanal 340 über das Addier/Verschiebenetzwerk 324 bildet. Der Schalter in dem SPB-Register gestattet die Arbeit auf ,ein Allgemeinregister GR und ein Arbeitsregister oder auf zwei Arbeitsregister durch
B 0 9 8 A 2 / 0 6 3 7
Laden einer "1" in das SPB-Register. Der Schalter 33Oa in dem SPB-Register 330 wird durch das SP-Steuerfeld in dem Steuerspeicherregister CSR-319 gesteuert.
Das Schreib/Adressregister 348 kann entweder von den Bits 9-12 oder den Bits 14-17 des laufenden Befehls geladen werden. Hierdurch wird die Adresse zum Laden eines Allgemeinregistexs GR oder zur Rückführung eines Ergebnisses in ein Allgemeinregister GR erzeugt. Dies ist erforderlich, da die Adresse für das Allgemeinregister GR in dem auszuführenden Befehl nicht langer an dem zweifach auslesbaren Befehlszähler verfügbar ist, wenn dieser auf seinen neuesten Stand gebracht worden ist. Die Allgemeinregisteradresse wird deshalb in dem Schreib/Adressregister WA-348 abgespeichert und für die Schreiboperation benutzt, indem ein Schreib-Flip-Flop,das mit dem Schreib/Adressregister verbunden ist, gesetzt wird. Das Schreib-Flip-Flop W wird,nachdem es gesetzt ist, mit dem ersten Takt danach zurückgesetzt, bis das Steuerfeld des Schreib/Adressregisteis WA in dem Steuerspeicherregister CSR es erneut setzt. Ein Allgemeinregister-Zwischenspeicher-Schreibtaktimpuls wird bei allen Takten erzeugt, die auftreten, während das Schreib-Flip-Flop W gesetzt ist und sofern nicht die Schreibadresse bei irgendeiner Betriebsweise den Wert Null oder bei der Nebenbetriebsweise den Wert 15 aufweist.
Das SPB-Register 330 ist ein 40-Bit-Register. Es erzeugt eine Pufferung für Worte, die aus dem Zwischenspeicher ausgelesen werden und spart somit die Zwischenspeicher-Zugriffszeit ein, die sonst bei einer Addier/Verschiebeoperation erforderlich ist. Eine Paritätsprüfung wird hinsichtlich der Daten in dem SPB-Register 330 durchgeführt. Der SPß-Ladetakt wird durch das SP-Steuerfeld des Steuerspeicherregisters 219 gesteuert.
A- und B-Operandenschalter
Die A- und B-Operandenschalter erzeugen die beiden Operanden für das Addier/Verschiebenetzwerk 324. Der A-Schalter 322 wählt entweder den Ausgang des SPB-Registers 330 oder den WRR-Ausgang des Arbeitsregisters 326 aus. Die Auswahl wird durch ein Bit im Steuerspeicherregister 319 gesteuert. Die Steuerung wird jedoch
609842/0637 · ·
zur Auswahl des WRR-Ausgangs gezwungen, wenn das Schreib-Flip-Flop W gesetzt ist und die Adresse im Schreibftdressregister WA XR1 entspricht. Der neue Wert von XR1 oder GR2 wird somit zur Verwendung herangezogen, wenn der vorangegangene Befehl diese Werte verändert hat. Der Schalterausgang wird zur Abgabe von logischen Nullstellen veranlaßt, wenn in dem B-Schalter 320 die DL-Position ausgewählt wird und keine Indizierung aufgerufen ist (XRI=O). Die Stellung des B-Schalter 320 wird durch ein Feld mit 3 Bit im Steuerspeicherregister 219 gesteuert. Das niedrigrangigste Bit wird jedoch auf den Wert "1" gezwungen, wenn die DL-Position ausgewählt wird und eine Indizierung des zweiten Ranges angefordert wird. Die acht Positionen des B-Schalters 320 sind wie folgt formatiert:
0) Die Bits 0-19 entsprechen dem Bit 19 des Befehlsregisterschalters IRSW-319a. Die Bits 20-35 sind an die Bits 20-35 des Schalters IRSW angeschlossen. Diese bilden das Verschiebefeld entweder für eine Erstrang- oder keine Indizierung;
1) die Bits 0-23 entsprechen dem Bit 23 des Schalters IRSW. Die Bits 24-35 sind an die Bits 24-35 des Schalters IRSW angeschlossen. Diese bilden das Verschiebefeld für eine Zweitrangindizierung;
2) die Bits 0-30 entsprechen dem Bit 8 des Schalters IRSW. Die Bits 31-35 sind an die Bits 9-13 des Schalters IRSW angeschlossen. Diese bilden den kurzen Sofortwert.
3) die Bits 0-17 entsprechen dem Bit 8 des Schalters IRSW. Die Bits 18-35 sind an die Bits 18-35 des Schalters IRSW angeschlossen. Diese bilden den langen Sofortwert;
4) diese Stelle wählt den Ausgang WRR der zweifach auslesbaren Arbeitsregister 322 aus;
5) die Bits 0-31 weisen den Wert 11O" auf. Das Bit 32 entspricht dem höchstrangigsten Bit des. Konstantenfeldes des Steuerspeicherregisters CSR. Hierdurch wird die. Zahl 8 zur Erhöhung des Zählstandes des Befehlszählers IC vorgegeben, um auf das nächste gerade/ungerade Befehlspaar ' (.8 Bytes) im Speicher zu verweisen. Die Bits 33 und 34 verweisen auf die Wortlänge in Bytes des laufenden Befehls, wenn die beiden höchstrangigsten Bits des Konstantenfeldes
des SteuerspeicherregisterßS^ den Wert Null aufweisen. 609842/063 7
Die Bit-Kombination 10 verweist hierbei auf eine Ganzwortlänge und die Bit-Kombination 01 auf eine Halbwortlänge. Das Bit 35 entspricht dem Übertrags-Bit in dem Prozeß-zustandsregister PSR7 wenn das auf das höchstrangigste Bit folgende Bit des Konstantenfeldes im Steuerspeicher-• regiser CSR den Wert 1 aufweist;
6) die Bits 0-26 weisen den Wert Null auf. Die Bits 27-35
. . sind an das Konstanteifeld des Steuer/Speicherregisters CSR angeschlossen.
7) durch diese Position wird das Daten-Eingangsregister DI-310 der Schnittstelleneinheit angewählt;
Addier/Verschiebeschaltkreis
Dieser als logische Addiereinheit ALU. bezeichnete Schaltkreis führt arithmetische und logische Operationen mit jeweils 36 Bit aus. Diese Einheit erzeugt ferner einen Datenübertragungsweg für die Operanden A oder B zu dem Doppelkanal 340. Die Operationen der Recheneinheit ALU werden durch ALU/Verschiebe-Eingangs-Bits des Steuerspeicherregisters 319 gesteuert. Die Betriebsweise der Recheneinheit wird durch das niedrigrangigste Bit innerhalb der Steuer-Bits in dem Steuersp icherregister gesteuert.
Seitentabellenwott(PTW)-Zwischenspeicher Der PTW-Zwischenspeicher 334 besorgt die Speicherung von 16 SeitentabeUenwörtern für jeden der acht Prioritätsränge, was zu 128 SeitentabeUenwörtern führt. Der Ausgang des B-Operandenschalters 320 erzeugt die Schreibdaten für den Zwischenspeicher und der Schreibtakt wird hierbei durch ein Bit in dem Steuerspeicherregister 319 gesteuert. Die PTW-Zwischenspeicheradresse wird entweder durch die niedrigrangigsten 7 Bits des Ausgangs WRP des Arbeitsregisters 326 oder durch den Rang und die Bits 21-24 des Ausgangs WRP erzeugt. Die erste Bit-Position dient der Auslösung und der übertragung des Seitentabellenwortes vom Allgemeinregister GR zur Basistabelle. Die zweite Bit-Position dient dem Lesen und Laden von Seitentabellewörtern, wenn entsprechende Adressen in den SeitentabeUenwörtern fehlen. Die Adressenauswahl wird durch ein Bit im Steuerspeicherregister CSR-319 gesteuert.
609842/0637
Jedes Byte des PTW-Zwischenspeichers wird am Ausgang einer Paritätsprüfung unterzogen. Der Ausgang des Zwischenspeichers 334 versorgt zwei der vier Adressenschalterpositionen mit Eingängsdaten. Wenn der Ausgang des PTW-Zwischenspeichers durch die "Seiten"-Stellung des Adressenschalters ausgewählt wird, so werden die folgenden Überprüfungen durchgeführt, um festzustellen, ob das Seitentabellenwort gültig ist: s
1) die Bits 30-35 des Seitentabellenwortes werden mit einem ■ Kennschlüsselregister 372 verglichen. Das Kennschlüsselregister bestimmt hierbei den Prozeß> ..dem das Seitentabellenwort zugeordnet ist und es wird mit den Bits 30-35 des Ausganges WRP jedesmal dann geladen, wenn GR 15 geladen wird;
2) Sie Bits 27-29 des Seitentabellenwortes werden mit den Bits 18-20 am Ausgang WRP verglichen. Dieser Vergleich erfolgt,
. um festzustellen, ob das korrekte Seitentabellenwort am Speicherplatz des PTW-Zwischenspeichers vorhanden ist?
3) die nächste übeprüfung wird durchgeführt, um festzustellen, ob die Seite im Lese/Schreibspeicher 122b 123b vorhanden ist, Eine Nullstelle an der Bit-Position 6 des Seitentabellenwortes zeigt an, daß die Seite im Speicher nicht vorhanden ist?
4) wenn die ersten drei Prüfungen erfolgt sind, werden die Bits 4-5 des Seitentabellenwortes mit dem ausgelösten Operationstyp vergIijenen.. Das Lesen von Daten ist immer legal. Ein Befehlsabruf fordert das Bit 4 an, während eine Leseoperation das Bit 5 anfordert.
Wenn das Seitentabellenwortin dem Zwischenspeicher bei einer der vorgenannten Prüfungen einen Fehler ergibt, so wird es aus der Seitentabelle im Lese/Schreibspeicher geholt und erneut überprüft, bevor eine Ausnahme angezeigt wird..
Das Adressenwort entweder für den Lese/Schreibspeicher oder die programmierbare Schnittstelle wird in dem Adressenschalter 336 erzeugt. Der Schalter 336 wird durch d'ie Adressenschalter- · Steuer-Bits in dem Steuerspeicherregister 319 gesteuert. Wenn die
609842/0637
"Seiten"-Position ausgewählt wird und das Prozeßzustandsregister PSR die absolute Adressierweise anzeigt,so wird die "Absolut"-Stellung des Schalters eingenommen, so daß die Seitentechnik unterdrückt wird. Die vier Schalterstellungen sind folgende :
0) Diese Position erzeugt die Seitenadressierung des Lese/-Schreibspeichers. Nimmt das Bit O den Wert O ein, so bestimmt eine Lese/Schreibadresse. Die Bits 1-3 werden durch die Zonenadress- und Steuer-Bits (ZAC-Bits) im Steuerspeicherregister erzeugt. Das Bit 4 weist den Wert O auf. Die Bits 5-8 stellen die Zonen-Bits dar und werden als eine Funktion der Lese/Schreibspeicheroperation erzeugt. Leseoperationen veranlassen die Erzeugung von Nullstellen, während Schreiboperationen hinsichtlich eines Wortes oder Doppelwortes die Erzeugung von E ine;r stellen bewirken. Das Schreiben eines Bytes verusacht eine 1 in der zu schreibenden Byte-Position. Die Bits 9-24 entsprechen dem PTW-Zwischenspeicher 9-24, welcher die Seitenbasisadresse darstellt. Die Bits 25-35 entsprechen den Bits 25-35 am Ausgang WRP, welche die seitenbezogene Adresse darstellen. Wenn diese Position ausgewählt wird, muß der Ausgang WRP der Arbeitsregister die nicht-seitenunterteilte Adresse angeben.
1) Diese Position erzeugt die Lese/Schreibspeicheradresse, wenn keine Seitenunterteilung gefordert ist. Sie kann durch das Steuerspeicherregister CSR ausgewählt werden oder wird zwangsweise angewählt, wenn die Position 0 angewählt ist und das Steuerspeicherregister PSR das absolute Adressierverfahren verlangt. Die Bits o-8 entsprechen denjenigen Bits der Position Null. Die Bits 9-34 entsprechen dem Ausgang WRP 9-35, der der absoluten 'Speicheradresse entsprechen muß, wenn diese Position ausgewählt wird.
2) Diese Position erzeugt ein programmierbares Schnittstellen-(PI)-Steuerwort. Entspricht das Bit 0 dem Wert "1", so bestimmt es ein PI-Steuerwort. Das Bit 1 wird durch das ZAC- PeId des Steuerspeicherregisters erzeugt. Das Bit 2 entspricht dem Bit 9 des ProzeßzustandsregistersPSR und
1 609842/0637
bestimmt, ob das laufende Programm gewisse externe Register verändern kann. Das Bit 3 entspricht der Prozessornummer, die durch die Schnittstelleneinheit SIU erzeugt wird. Das Bit 4 weist den Wert Null auf. Die Bits 5-8 entsprechen den Bits 4-7 des Prozeßzustandsregisters PSR und sie bestimmen den Anschluß innerhalb des Multiplexers. Die Bits 9-35 entsprechen dem Ausgang WRP 9-35 und sie müssen der absoluten Adresse entsprechen, die entweder für einen externen Lesebefehl RDEX oder einen externen Schreibbefehl WREX erzeugt wird.
3) Diese Position erzeugt den Datenübertragungsweg zum Lesen eines Seitentabellenwortes PTW aus dem Zwischenspeicher.
Die Bits 0-2 des Adressenschalters 336 werden modifiziert,um die Lese/Schreib-Speichersteuerung während des Ladens der absoluten Adressen in das Alügemeinregister GR wiederzugeben. Die Bits 0-2 des PTW-Zwischenspeichers geben somit eine Seitenadressierung und die Bits 0-2 am Ausgang WRP eine absolute Adrresierung an. Dies wird durch die Auswahl der Stellung Null für den Adressenschalter ermöglicht, falls kein.. Lese/Schreib-Speicherzyklus durch die Steuer-Bits des Steuerspeicherregisteis CSR bei einer Anforderung durch die Schnittstellensteuerung SIÜ ausgelöst wird. Der Steuerschalter ruft die Steuerung der Schnittstelleneinheit SIU entweder bei einem Lese/Schreib-Speicherzyklus oder bei einem programmierbaren Schnittstellenbefehl hervor. Die Steuerung erfolgt durch die Steuer-Bits des Adressenschalters in dem Steuerspeicherregister CSR.
Die Steuerung wird für den Lese/Schreibspeicher wie folgt erzeugt: Bit 0 Dieses Bit weist den Wert 0 für den Lese/Schreibspeicher auf, Bit 1 Dieses Bit bestimmt den internen oder externen Speicher. Es entspricht dem PTW-Bit 0 bei einer Seitenadressierung oder dem WRP-Bit 0 bei einer absoluten Adressierung. Bits 2-4Diese Bits stellen die Speicher-Steuer-Bits dar. Der anfängliche Wert entspricht den PTW-Bits 1-3 bei einer Seitenadressierung oder den WRP-Bits 1-3 bei einer absoluten Adressierung. Diese Werte bilden ebenfalls den endgültigen
609842/Ü637
Wert, wenn das Bit 1 einen externen Speicher bestimmt. Wenn das Bit 1 einen internen Speicher bestimmt, so bestimmen die Bits 2 und 3 den Anschluß des internen Speichers und die Steueradressen für den Festwertspeicher in dem Steuerwerk des internen Speichers. Das Bit 2 entspricht der Exklusiv-Oder-Verknüpfung des anfänglichen Wertes und der internen Speicher-Anschlußkennzeichnungsleitung von der Schnittstelle SIU. Das Bit 3 entspricht der Exklusiv-Oder-Verknüpfung des PCR-Festwertspeicher-Bits, falls der anfäng- : " liehe Wert Null ist.
Bit 5 Dieses Bit definiert einen Ein- oder Doppelwort-Speicherzyklus. Es entspricht dem Bit 1 des ZAC-Feldes des Steuerspeicherregisters CSR.
Bit 6 Dieses Bit definiert einen Lese- oder Schreibzyklus. Es entspricht dem Bit O des ZAC-Feldes des Steuerspeicherregisters CSR.
Die Steuerung für einen programmierbaren Unterbrechungsbefehl (PI-Befehl) wird wie folgt erzeugt:
Bit O Dieses Bit entspricht dem Wert 1 für einen PI-Befehl.
Bits 1-4'Diese Bits bestimmen den Anschluß der Schnittstelleneinheit SIU,an den der PI-Befehl gerichtet ist und sie entsprechen den Bits 0-3 des Prozeßzustandsregisters PSR.
Bits 5-6 Diese Bits sind die gleichen wie bei einem Lese/Schreibspeicherzyklus und werden in der gleichen Weise erzeugt.
Die Ausgänge des Steuerschalters werden in das Steuerregister in der Schnittstelleneinheit SIU zu jedem Zeitpunkt taktweise ein- . gegeben, zu dem ein Speicherzyklus oder ein PI-Befehl ausgelöst wird.
Ergebnis-Doppelkanal
Der Ergebnis-Doppelkanal (R-XBAR) 340 erzeugt eine gleichzeitige übertragung seiner Eingänge sowohl zu dem Daten-Ausgangsregister 312 als auch zu dem Arbeitsregister 326. Ein dritter Ausgang ist an eine nicht dargestellte Anzeigetafel angeschlossen und bildet den Datenweg für die Anzeige des Inhalts der meisten Register des Prozessors IOP/P. Der Ausgang zu dem Arbeitsregister wird durch die Schreibadressen-Bits in dem Steuerspeicherregister CSR
609842/0637
gesteuert und kann auf irgendeinen von vier Eingängen geschaltet werden. Der Ausgang zu dem Daten-Ausgangsregister 312 wird durch das Datenausgangs-Schreibadressen-Bit in dem Steuerspeicherregister CSR gesteuert und kann entweder den Addier/Verschiebe-Ausgangsschalter 338 oder den Adressenschalter 336 auswählen. Wenn die nicht dargestellte DPCR-Leitung von der Schnittstelleneinheit SIU aktiviert wird, muß diese Position jedoch den PSR/ PCR-Eingang auswählen.
0) ALU/Verschiebe-Ausgangsschalter
1) Adressenschalter
2) PSR/PCR-Schalter
3) SPB-Eingangsschalter
Arbeitsregister
Die vier Arbeitsregister sind in der zweifach auslesbaren Registerreihe 326 enthalten. Das Register 0 enthält den laufenden Inhalt des Befehlszähler IC. Die Register 1,2 und 3 sind Arbeitsregister für die Befehlsausführung. Sie sind mit R1 , R2 und R3 bezeichnet. Die beiden Ausgänge der Arbeitsregister sind mit WRP und WRR 'bezeichnet. Der Ausgang WRP wird benutzt, um auf Seitentabellenworte des PTW-Zwischenspeichers Zugriff zu nehmen sowie für die Lese/Schreibspeicher-Adressenerzeugung· und er ist zu dem Allgemeinregister-Zwischenspeicher 328 und zu dem SPB-Register 330 geführt. Die durch den Ausgang WRP freigegebenen Register werden durch die WRP-Bits in dem Steuerspeicherregister 319 gesteuert. Der Ausgang WRR wird benutzt, um Operanden an die Schalter 322 und 320 sowie an die Eingänge der beiden Register PSR und PCR zu legen. Die durch das Ausgangssignal WRR freigegebenen Register werden durch die WRR-Bits in dem Steuerspeicherregister 319 gesteuert. Die Arbeitsregister können durch irgendeinen der Doppelkanal-Eingänge geladen werden. Das zu ladende Register und der Schreibtakt wird durch die Schreibadresse und die Schreib-Bits in dem Steuerspeicherregister CSR-319 gesteuert. Hinsichtlich für Lese- bzw. Schreiboperationen ausgewählten Registerngibt es keine Unterschiede. Es können drei verschiedene Register vorhanden sein oder es können alle Register gleich sein.
6 0 9842/0637
2&12034
PSR/PCR j. ....
Das Prozeßzustandsregister PSR-342 befindet sich außerhalb des Allgemeinregister — Zwischenspeichers, da es fortlaufend überwacht und ergänzt wird. Es wird von dem Ausgang WRR der Arbeitsregister 326 geladen. Ein Schreibtakt wird jedesmal für das Prozeßzustandsregister PSR erzeugt, wenn ein Programm im Hauptbetrieb das Allgemeinregister GRO lädt oder die Steuer-Bits der Register PSR/PCR in dem Steuerspeicherregister CSR eine Schreiboperation hinsichtlich des Prozeßzustandsregister PSR bestimmen. Das gesamte Prozeßzustandsregister PSR wird während einer Ladeoperation von GRO .im Hauptbetrieb, während der Aus-, führung einer Ausnahme des ECB oder der Ausführung eines DISP-, MME-, RMM- oder REL-Befehls geladen. Wenn eine Unterbrechung ausgeführt wird, so wird vor dem Laden die Steuerung von dem ünterbrechungs-Datenwort aus dem ICB in die Daten des Prozeßzustandsregisteis PSR eingefügt.
Ein Zustands-Code CC, ein Übertrag C und ein Prozeßzeitgeber werden fortlaufend ergänzt. Der Zustands-Code CC wird jedesmal geladen, wenn ein Befehl ausgeführt wird, der eine Ergänzung des Zustands-Codes erfordert. Der übertrag C wird jedesmal dem Übertragsausgang der arithmetischen Recheneinheit ALU entnommen, wenn der Zustands-Code CC geladen wird und die ALU im arithmetischen Betrieb arbeitet. Der Prozeßzeitgeber wird jeweils um 1 herabgezählt, wenn das nicht dargestellte Zeitnormal überläuft. Das Zeitnormal wird durch einen 8-Bit-Zähler repräsentiert, welcher alle Systemtakte zählt. Das Zeitnormal wird ferner benutzt, um eine nicht vollständige Operation festzustellen oder um eine Ausnahme zu verriegeln, wie sie unter dem Abschnitt "Ausnahmen" beschrieben wurde.
Das Prozeßsteuerregister PCR-344 ist allen Prioritätsrängen gemeinsam zugeordnet. Es wird von dem Ausgang WRR der Arbeitsregister geladen. Hierbei sind jedoch nicht alle Bits ladbar. Ein Schreibtakt wird hinsichtlich der ladbaren Bits erzeugt, wenn die PSR/PCR-Steuer-Bits in dem Steuerspeicherregister CSR eine PCR-Schreiboperation definieren. Die Bits 18-19 und 28-34 sind
609842/0637
_ 29 -
. 2612Ü34
ladbar. Die Bits 0-16 werden gesetzt, wenn der definierte Zustand auftritt und sie werden durch eine Setz/Rückstell-Bit-Steucrung in dem Steuerspeicharregister CSR zurückgestellt. Die Bits 23-26 sind zum Lesen durch die Software vorgesehen.
Der PSR/PCR-Schalter in dem Doppelkanal R-XBAR wählt das entsprechende Register zum Laden in die Arbeitsregister aus. Dieser Schalter wird durch die PSR/PCR-Steuer-Bits in dem Steuerspeicherregister CSR gesteuert und wird zur Auswahl von PCR gezwungen, wenn die DPCR-Leitung von der Schnittstellenhext SIU aktiviert wird.
Die zweifach auslesbare Registeranordnung 314 erzeugt vier Worte für eine Befehlspufferung. Der Leseausgang für den laufenden Befehl CIR-380 und der Leseausgang für den nächsten Befehl NIR 38Oa erzeugt einen Zugriff zu dem gesamten Befehl, unabhängig von der Befehlslänge und der Adresse. Dies wird durch den Befehlsregisterschalter IRSW-319 verwirklicht. Die CIR-Adresse entspricht den Bits 32 und 33 des laufenden Befehlszählers IC, welche Bits auf eines der vier Worte verweisen. Die NIR-Adresse wird erzeugt, um auf das folgende Wort zu verweisen. Der Schalter IRSW-319a wird durch das laufende Bit 34 des Befehlszählers IC gesteuert, wodurch festgelegt wird, ob der Befehl mit einer Wort- oder Halbwortadresse beginnt. Die beiden Stellungen des Schalters IRSW-319a sind deshalb: (0) CIR-Bits 0-35 und (1) CIR-Bits 18-35, NIR-Bits 0-17. Die Bits 0-17 des Schalters IRSW geben einen Halbwort-Befehl und die Bits 0-35 des Schalters IRSW geben einen Ganzwort-Befehl wieder. Die CIR- und NIR-Adressen werden jedesmal ergänzt, wenn der Befehlszähler IC des Arbeitsregisters ergänzt wird. Alle Felder des Befehlswortes müssen d4her vor einer Ergänzung des Befehlszählers IC benutzt werden.
Das Befehlsregister IR-314 wird jedesmal geladen, wenn ein neuer Wert in den Befehlszähler IC aufgrund einer Unterbrechung, einer Ausnahme, einer Verzweigung usw. geladen wird oder jedesmal dann, wenn die CIR-Adresse eine Zweiwortgrenze tiberschreitet und der Befehlszähler IC durch die laufende Befehlslänge ergänzt wird.
609842/0637
Die Befehls-Zugriffssteuerung ist nachstehend für zwei Zustände beschrieben, wobei der Zustand 1 dem Eintritt in eine neue Prozedur und der Zustand 2 der Erhöhung durch die laufende Prozedur entspricht. In beiden Fällen stellen sich die Befehlsabrufe als Speicherzyklen mit doppelter Präzision dar und die Adressierung erfolgt seitenunterteilt, sofern nicht das Prozeßzustandsregister PSR ein absolutes Adressierverfahren festlegt. 1) Der Doppelwort-Befehlsabruf wird ausgelöst und die Befehlsregister-Schreibadresse mit dem Takt geladen, der den neuen Wert des Befehlszählers IC in Seiten unterteilt. Die Befehlsregister-Schreibadresse wird mit OO geladen, wenn das Bit 32 des Befehlszählers den Wert 0 aufweist oder sie wird mit 10 geladen, wenn das Bit 32 des Befehlszählers IC den Wert 1 aufweist. Die CIR- und NIR-Adressen v/erden geladen, wenn der neue Wert des Befehlszählers IC geladen ist. Wenn das erste Wort im Speicher verfügbar ist, wird es in das Be- ' fehlsregister IR eingeschrieben und es wird das niedrigrangigste Bit der Schreibadresse gesetzt. Hierdurch wird das nächste Speicherwort in das zweite Wort des Paares (01 oder 11) geschrieben. Der Wert des BefehlszählersIC+8 (Bytes) wird sodann benutzt, um eine andere Speicherauslesung mit doppelter Präzision unter Heranziehung der seitenunterteilten Adresse auszulösen. Die Befehlsregister-Schreibadresse wird mit den nächsten zwei Worten ergänzt (10'wenn IC-Bit 32=0 oder 00 wenn IC-Bit 32=1) und es wird ein Test durchgeführt, um festzustellen, ob die Befehlsausführung beginnen kann oder warten muß, bis der Speicherzyklus vollendet ist. Der Test wird mit dem Bit 33 des Befehlszählers IC durchgeführt. Wenn der Test ergibt, daß eine neue Prozedur mit dem letzten Halbwort eines Zweiwortpaares (33, 34=1, 1) begonnen wurde, so muß die Befehlsausführung verzögert werden, bis die Daten aus dem zweiten ?· Zyklus mit doppelter Präzision verfügbar sind, um zu gewährleisten, daß das Befehlsregister IR ein vollständiges Befehlswort enthält.
60 9842/0637
2) Die Ausführung eines jeden Befehls umfaßt die Ergänzung des Befehlszählers IC durch die Länge des jeweiligen Befehles. Wenn diese Ergänzung den Befehlszähler IC zur •■ Überschreitung einer Zweiwortgrenze (alter IC 32 = neuer IC 32) veranlaßt, so kann der Zweiwortbereich des Befehlsregisters IRfder gerade beendet wurde, (alter IC 32 Wert) mit neuen Befehlen geladen werden. Der neue IC-Wert plus acht (Bytes) wird sodann benutzt, um eine Speicherlese-· Operation mit doppelter Präzision unter Verwendung der seitenunterteilten Adressierung auszulösen. Die Befehlsregister-Schreibadresse wird ergänzt, um auf den verfügbaren Befehlsregisterbereich hinzuweisen. Wenn die beiden Worte empfangen werden, werden sie in den Zweiwortbereich, wie zuvor beschrieben, eingeschrieben.
Steuerspeicher-Adressierung und Fortschaltung Die SteuerSpeicheradresse wird in dem CSA-Schalter 316 er-
en
zeugt. Die ersten vier Position des CSA-Schalters werden durch das CSA-Schalter-Steuerfeld in dem Steuerspeicherregister CSR-319 gesteuert. Der CSA-Schalter 316 kann das Nächstadressregister NA 382, das Rückkehradressregister RA-384, das Ausführadressregister XA-386 oder den Ausgang des Standardfolge-Decodiernetzwerkes SS-388 auswählen. Die Ausnahme-Unterbrechungsposition wird zwangsweise eingenommen, wenn irgendeiner dieser beiden Zustände vorliegt. Die"Ausnahmeadresse wird wiedergegeben, sofern nicht eine Unterbrechung ausgeführt wird. Die beiden PTW-Fehlpositionen liegen zwangsweise vor, wenn das Fehlen eines Seitentabellenwortes PTW festgestellt wird. Die Konstantenposition wird gewählt, wenn das Verzweigungs-Steuerfeld in dem Steuerspeicherregister CSR eine Verzweigung nach der Konstantenadresse anfordert.
Das Nächstadressregister NA-382 wird bei jedem Ausführungstakt mit der Summe des Ausgangs des CSA-Schalters/ 316 plus 1 plus eine Zustands-Sprungkonstante 390 geladen. Wenn durch das CSR-Sprungsteuerfeld keine Sprung gefordert wird, so wird das Nächstadressregister NA-382 mit der Adresse des Mikrobefehls geladen, der unmittelbar auf den Mikrobefehl fotgi auf cUvt Zugriff genommen wurde. Das 609842/0637
heißt, daß der Takt, der den Mikrobefehl an der Adresse M in das Steuerspeicherregister CSR lädt, die Adresse M+1 in das Nächstadressregister NA lädt. Wenn eine Zahl von Mikrobefehlen bedingungcgemäß übersprungen werden muß, so kann das CSR-Sprungfeld festlegen, daß ein Sprung ausgeführt wird, wobei das CSR-Konstantenfeld die zu testende Bedingung und die Anzahl der zu überspringenden Mikrobefehle festlegt. Die Schrittfolge bei einem Sprung ergibt sich wie folgt: Der Mikrobefehl an der Adresse M ruft einen bedingten Sprung hervor: Durch die Ausführung dieses Mikrobefehls wird M+1 in das SteuerSpeicherregister CSR geladen und es wird die Adresse von M+1+1+SKP in.-das Nächstadressregister NA geladen. M ist ein Speicherplatz im Steuerspeicher 318. SKP nimmt den Wert Null ein, wenn der Sprung nicht zufriedenstellend
wird
ausgeführt und SKP nimmt die Sprungzahl ein, die durch die niedrig-
ten
rangigsten drei Bits des CSA-Konstanfeldes bestimmt sind, wenn der Sprung den Bedingungen genügt. Der Sprung wird gesperrt, wenn irgendeine der letzten vier Positionen in dem CSA-Schalter ausgewählt wird.
Die Bedingungen, die hinsichtlich der Sprungausführung überprüft werden können, sind durch die Bits 3-5 des CSR-Konstantenfeldes definiert. WRR 35, WRR O, WRR 33 und das Übertrags-Bit im Prozeßzustandsregister PSR müssen auf den Wert Null oder 1 überprüft werden. Das PER-Zustands-Code-Feld wird auf Null, eins, zwei oder drei überprüft. Die Bits 1-2 des Konstantenfeldes werden herangezogen, um den Test festzulegen. Die zu testenden Zustände sind folgende:
0) WRR 35=K2 wenn K1 = 1
WRR 0=K2 wenn K 1=0
1) Übertrags-Bit in PSR=K2
2) WRR 33-34=Ki-2
3) Adresss-ilbe (AS) mitlRSW 18=0
4) PSR Zustands-Code-Feld weist entsprechendes Bit im IRSW CF Feld auf
5) PSR Zustands-Code-Feld=Ki-2
6) IRSW 7=WRR0 wenn K1=O
IRSW 7=K2 wenn K1=1
60984 2 /0G37
7) Höherer Unterbrechungsrang oder Rang Null auf Leitung von Schnittstelleneinheit SIU vorliegend, wenn K2=O. . Rang Null-Unterbrechung auf Leitung von Schnittstolleneinheit SIU vorliegend,wenn Κ2=1.
Das Rückkehr-Adressregister RA-384 wird von dem Nächstadressregister NA-382 geladen, wenn immer das Lade-Bit für das Register RA in der Steuerspeichereinheit CSR vorliegt.
Das Ausführungs-Adressregister XA-386 wird mit dem Ausgang des Wegsuchers 217 jedesmal geladen, wenn die Standardfolge-Position durch den CSA-Schalter ausgewählt wird. Die Benutzung des Wegsuchers wird weiter unten beschrieben. Sein Ausgang weist ein Steuer-Bit und acht Adress-Bits auf. Die Adresse wird benutzt, um die oberen 256 Worte des Steuerspeichers zu adressieren. Das Adress-Bit Null wird zwangsweise auf 1 gesetzt, wenn der CSA-Schalter 216 die Position XA einnimmt.
Die Ausführung eines Software-Befehles erfolgt in zwei Phasen. Die erste Phase besteht aus einer Mikrobefehlsfolge, die einer Gruppe von Befehlen gemeinsam ist. Die zweite Phase ist eine Mikrobefehlsfolge, bestehend aus einem einzigen Mikrobefehl in den meisten Fällen, die dem spezifischen auszuführenden Software-Befehl zugeordnet ist. Nach Vervollständigung der zweiten Phase wird in die dem nächsten Befehl gemeinsame Phase eingetreten, wobei in einigen Fällen die zweite Phase über das RA-Register für einige zusätzliche gemeinsame Schritte zu der ersten Phase zurückkehren kann, bevor in die den nächsten Befehlen gemeinsame Phase eingetreten wird.
Der Operations-Code des Schalters IRSW-319a erzeugt die Wegsuchadresse und ein Eingangssignal für das Standardfolgen-Decodiernetzwerk 388. Das Standardfolgen-Decodiernetzwerk erzeugt die Steuerspeicheradresse für den Start der Mikrobefehlsfolge, die der Gruppe von Befehlen zugeordnet ist, die diese Folge enthalten. Diese Folge sei als Standardfolge bezeichnet. Der Speicherplatz in dem Wegsucher der durch den Operations-Code adressiert wird,
609842/0637
enthält die Adresse im Steuerspeicher, an der die Folge für diesen Befehl beginnt. Der Befehl wird sodann ausgeführt durch Verzweigung zu der Standardfolgeadresse, durch Ausführung der gemeinsamen Schritte, Verzweigung zu der Folgeadresse im XA-Register 386, Ausführung der entsprechenden Schritte, Ergänzung des Inhalts des Befehlszählers IC, so daß der Operations-Code der nächsten Befehle aus dem schalter IRSW freigegeben wird und durch Wiederholung der obengenannte Folge durch Verzweigung zu der neuen Standardfolge.
Die Antwort auf eine Unterbrechung, die Ausnahmeverarbeitung und die auf ein fehlendes Seitentabellenwort hinweisenden Folgen werden bearbeitet, indem die entsprechende Position in dem CSA-Schalter 316 ausgewählt wird. Die Unterbrechungen werden bei der Vervollständigung von Software-Befehlen ausgeführt. Wenn der nicht gesperrte höhere Unterbrechungsrang vorliegt oder die Nullrangleitung von der Schnittstelleneinheit SIU aktiviert ist und wenn die Stellung SS des CSA-Schalters durch die entsprechenden Steuer-Bits in dem Steuerspeicherregister CSR ausgewählt sind, so wird die Steuerlogik des CSA-Schalters zur Auswahl der Position Ausnahme/Unterbrechung gezwungen. Dies veranlaßt den Eintritt auf die Unterbrechungs-Beantwortungsfolge anstelle einer Bearbeitung ,der nächsten Befehls-Standardfolge. Die Position Ausnahme/ Unterbrechung gibt die Adresse der Unterbrechungs-Beantwortungsfolge zu diesem Zeitpunkt wieder.
Fehlende Seitentabellenworte veranlassen den sofortigen Eintritt in eine PTW-Fehlfolge. Durch die Steuerlogik des CSA-SChalters wird während der Taktperiode,die unmittelbar auf den Schritt der Seitenbildung folgt, der Operand oder der Befehl zur Einnahme der Fehlposition gezwungen. Die Rückkehr von irgendeiner dieser Folgen erfolgt zu der Standardfolge, die von dem Schalter IRSW-319a decodiert wird. Dies veranlaßt eine erneute Bearbeitung des zuvor bearbeiteten Befehls. Das Mikroprogromm bewirkt daher vor der Feststellung eines fehlenden Seitentabellenwortes PTW nichts was nicht erneut getan werden könnte. Ein nicht dargestelltes Flip-Flop wird gesetzt, wenn das fehlende Seitentabellenwort PTW
609842/0637
festgestellt wird und bleibt gesetzt, bis die Adresse erneut seitenunterteilt worden ist. Ein Fehlen beim zweiten I^al verankßteine Ausnahme, die weiter unten definiert ist.
Die Ausnahmen unterteilen sich in zwei Kategorieren. Der erste Typ verursacht einen sofortigen Eintritt in die Ausnahmeverarbeitungsfolge. Der zweite Typ beeinflußt die Steuerlogik des CSA-Schalters 316 solange nicht, bis die nächste Befehlsstandardfolge bearbeitet wird. Beide Typen rufen die Auswahl der Position Ausnahme/Unterbrechung in dem CSA-Schalter 316 hervor und sie setzen das entsprechende Bit in dem Prozeßsteuerregister PCR-344.
Die erste Kategorie von Ausnahmen sind, nicht-vollständige Operationen, Seitenfehler, nicht vorhandene Seiten und illegale Befehle. Sie alle müssen behandelt werden, sobald sie festgestellt werden, da eine Fortführung der Befehlsausführung unmöglich ist. Die zweite Kategorie von Ausnahmen betrifft einen Prozeßzeitgeber-Auslauf, überlauf, Verriegelungsfehler und Adressenfehlausrichtung. Eine Divisionsprüfung wird bei einem Test durchgeführt und eine Verzweigung findet statt, wenn der Divisor den Wert Null aufweist. Alle diese Ausnahmen zeigen Fehler an,aber sie müssen nicht sofort behandelt werden und können warten bis zum Beginn des nächsten Befehles.
Steuerspeicher-Ausgangsregister
Das Steuerspeicher-Ausgangsregister CSR-319 enthält den auszuführenden Mikrobefehl.Ein externes Steuerspeicherregister kann vorgesehen sein, wie dies angedeutet ist. Ein Schalter 39 4 kann eine von vier Lagen jeweils einnahmen und bildet den Eingang für das Steuerspeicherregister CSR. Die vier Positionen des Eingangs.-schalters 394 sind folgende:
0) Diese Position bildet den Eingang von den Festwertspeicherchips zu den SteuerSpeichersubstraten;
1) diese Position wird nicht benutzt;
2) Diese Position bildet den Eingang von der Wartungskonsole;
3) diese Position, gibt das interne Stevcrspeicherregister CSR wieder« Diese Position wird, benutzt, um die Bits des
609842/0637
externen Steuerspeicherregisters CSR erneut zu laden, wenn die Schalter der Bedienungskonsole für die Anzeige von Daten benutzt werden.
Daten werden in das Ein/Ausgangssystein durch Simulation des Steuerpseicherregister CSR über die Schaltung der Wartungskonsole eingegeben. Wenn die Schalter durch den CSR-Eingangsschalter freigegeben werden, so wird ein Signal erzeugt, das das Laden der externen CSR-Bits mit dem durch die Schalter simulierten Mikrobefehl verursacht. Der alte Inhalt muß erneut geladen werden, wenn die Anzeige der Register vervollständigt wird. Dies geschieht durch Auswahl der Position 3 für einen Takt vor dem Rückschalten auf die Position Null und durch erneutes Laden der externen CSR-Bits während der einen Taktperiode. Das Format des SteuerspeicherregistersCSR ist folgendes: Bit O Takt NA in RA
Bit'1 Führe Sprung aus (Ki-2=Test, K3-5=Zustand, K6-8=
Sprungzählstand
Bit 2 Verzweigung nach Ko-8
Bits 3-4 WR-Schreibadresse
00=schreibe IC (Lade WA wenn Schreiben WR) Oi=schreibe R1 (Setze W wenn Schreiben WR und CSA=SS) iO=schreibe R2
11=schreibe R3
Bit 5 Warten auf die Annahme von Lesedaten (ARDA)' von der
Schnittstelleneiheit SIU
Bits 6-7 X-BAR-Adresse für WRW-Ausgang OO=Addier/Verschiebe-Ausgangsschalter Oi=Adressenchalter
1O=PSR/PCR-Schalter
11=SP-Ausgangsschalter
Bits 8-9 Zustands-Code (CC)-Steuerung 0O=NOP
01=Ladearithmetik
iO=Ladelogik
1l=Ladeparität von niedrigrangigstem SPB-Byte
60984 2/0637
Bit 10 Schreibe PTW-Zwischenspeicher Bits 11-13 ZAC für Lese/Schreib-Speicherzyklus (Bits 1-3 der Lese/Schreib-Adressen-Schalterpositionen O und 1) OXX=Lesen
iXX=Schreiben
XOX=Einfachpräzision XiX=Doppelpräzision
Bit 14 Setz/Rückstell-Bits definiert durch CSR41-44 Bits 15-17 SIU-Anforderungstyp 00O=NOP
001=Unterbrechungsdaten 0i0=Freigabe und ünterbrechungsdaten 0i1=Speicher oder p3cg-rammierbare Schnittstellendaten (PI wenn 19-20=10) i00=Gelesenes Byte zum Schreiben (Byte-Adresse, Lese/
Schreib-Zone,wenn schreiben) + 10i=Befehlabruf
+ 1i0=Befehlabruf wenn CIRO=IRWO . *+ 111=Befehlabruf wenn Sprungtest erfüllt oder wenn CSRI=O
eine * Diese Codes verursachen PTW-Fehl-Befehlsfolge, wenn ein
Seitenfehler festgestellt wird
++ Dieser Code verursacht eine PTW-Operanden-Fehlfolge, wenn ein Seitenfehler festgestellt wird
Bit 18 PTW-Zwischenspeicheradresse 0=erweiterte Lese/Schreiboperation von WRP 1=laufender Rang der PTW-Lese/Schreiboperation von der
effektiven Adresse Bits 19-2OAdresse-Schaltersteuerung 00=seitenunterteilte Adresse (Steuerlogik erzwingt den Wert 01, wenn PSR1O=1) 01=absolute Adresse iO=PI-Adresse
11=PTW-Zwischenspeicher 0-35 Bit 21 Schreibe WR
609842/0637
Bits 22-23 CSA-Schaltersteuerung (erste vier Positionen)
OO=Nächst-Adressregister (NA) • O1=Rückkehr-Adressregister (RA) iO=Ausführungsadressregister .(XA)
11=Standard-Folgeadresse Bits24-25 WRR-Leseadresse Bits 26-27 WRP-Leseadresse 0O=IC O1=R1 1O=R2
11=R3 Bit 28 Operandenschalter O=SPB
I=WRR Bits 29-30 PSR/PCR-Steuerung und ALU-Betriebsweise 00= Lese PSR oder logische Betriebsweise O1=Lese PCR oder arithmetische Betriebsweise iO=Schreibe PSR
11=Schreibe PCR Bits 31-32 Addierer/Verschieber-Ausgangsschalter 00=Verschieber O1=ALU iO=Speichern
11=Laden Bits 33-35 B Operandenschalter 00O=DL 001=DS 01O=IS 011=IL 10O=WRR 101=8, Wortlänge oder übertrag 1iO=Konstante KO-8
Bits 36-44 Konstante KO-8 Dieses Feld wird ebenfalls für eine gegenseitige exklusive Steuerung benutzt.
609842/0637
Bits 36-37 8/WL/CY-Steuerung 00, 8/WL/CY-IRSW Befehlswortlänge 01 , 8WL/CY-PSR Übertrags-Bit
10, 8/WL/CY=8 Bits 36-38 Verschiebe-Zählstand-Schaltersteuerung
000 Linksverschiebung
001 Rechtsverschiebung
010 CSR-Verschiebezählstand (39-44)
011 Befehl FI-FeId
100 Befehl F2-Feld
101 Befehl F3-Feld
110 Byte laden
111 Byte speichern
Bits 39-44 CSR-Verschiebe-Zählstand Bits 36-44 CSA-Schalter-Verzweigungsadresse Bits 37-38 Sprung-Testwert für getestete Bedingungen mehrerer Werte
Bit- 38·. WA-Eingang-Schaltersteuerung (O=GRI, 1=GR2) Bits 39-41 Sprung-Testbedingung
000 WRR35=CSR38 wenn CSR37=1 WRRO=CSR38 wenn CSR37=O
001 PSR13 (Übertrag)=CSR38
010 WRR33=CSR38
011 IRSW 14-35 enthält Adressilbe und Bit 18-0 100 BRAC CF-FeId besitzt Bit entsprechend PSR CC
wenn CSR 38=1
BRAC CR-FeId besitzt kein Bit entsprechend PSR CC wenn CSR38=O
1Ö1PSR CC-Feld=CSR37=38
110 ' IRSW7=WRR0 wenn CSR37=O
IRSW7=CSR38 wenn CSR37=1
111 SIU-HLIP-Leitung aktiv und nicht gesperrt oder • I&P." aktiv
Bits 42-44 Spring-Zählstand Bits 38-44 GR-Zwischonspeicher-Gesamtädresse Bits 41-44 GR-Zwischenspeicher-Adresse pro Prioritätsrang
U (J 9 H 4 2 / 0 6 3
Bits 41-44 Setze/Rückstelle Bit-Adresse
0000 Rückstelle Ilalte-Betricbsweise
0001 Setze Halte-Betriebsweise
0010 Rückstelle Sperr-Unterbrechungs-Betriebsweise
0011 Setze Sperr-Unterbrechungs-Betriebsweise 0100/0101 Rückstelle PCR-Ausnahme-Speicherung 0110/0111 nicht definiert
1000/1001 Invertierung DO, Steuerung und Unterbrechung der Datenparität
1010/1011 Invertierung von PR-Parität und bedingte Sperrung von GR SP-Schreibtakt
1100/1101 Bedingte Sperrung von DR SP-Schreibtakt 1110/1111 Setze Maßnahme-Flip-Flop F/F
Bits 45-48 ALU-Steuerung/Verschiebeeingang-Schaltersteuerung Bits 45-48 ALU-Operation (CSR30=Betriebsweise)
Bits 45-46 Linksverschiebung-Eingangsschalter 0O=A Operandenschalter 01 Vorzeichen des Rechtsverschiebung-Eingangsschalters
10 Nullstellen
11 Einerstellen
Bits 47-48 Rechtsverschiebung-Eingangsschalter OX Nullstellen
10 B-Operandenschalter
11 A-Operandenschalter
Bits 49-50 GR-Zwischenspeichersteuerung
0O=NOP
01=Schreiben GR-Zwischenspeicher
iO=Laden SPB von GR Zwischenspeicher
11= ■ Laden SPB von WRP
Bits 51-53 GR-Zwischenspeicheradress.e
OOO=CSR-Zwischenspeicher-Gesamtadresse (CSR 38-44)
609842/0637
- -41 -
Bits 51-53 OO1=CSR Zwischenspeicher-Adresse pro Prioritätj}-rang (AIL, CSR41-44)
010= erweiterte Lesc/Schreibadresse von WRR 011=laufender Prioritätsrang XR2 1OO=laufender Prioritätsrang XR1 102-laufender Prioritätsrang GR1 1iO=ungerades Register des durch WA im laufenden Prioritätsrang adressierten Paares
111-WA~Adresse im laufenden Prioritätsrang Bit 54 A Operandenschalter
O=SPB
I=WRR
Der Steuerspeicher 318 besteht aus einem im Stand der Technik bekannten Festwertspeicher ROM. Das im Steuerspeicher 318 abgelegte Mikroprogramm steuert die erfindungsgemäßen Operationen, wie dies im Anhang zu dieser Beschreibung erläutert ist. Wenn der Steuerspeieher 318 entsprechend mikroprogrammiert
istf so bildet er die Firmware gemäß der Erfindung. Die Firmware unterscheidet sich von einem Software-Programm dadurch, daß eine tatsächliche Operation in dem Festwertspeicher ROM ausgeführt wird und beispielsweise ein Spannungsversorgungsausfall dieses Mikroprogramm nicht verändert. Diese Ausbildung ist einem festverdrahteten Computerprogramm verwandt. Bei einer Software-Porgrammierung ergibt sich jedoch keine physikalische Veränderung des Speichers, sondern nur eine elektrische Veränderung, so daß beispielsweise ein Spannungsversorgungsausfall das Programm im Speicher des Rechners zerstört. In Bezug auf eine Hardware-Logik besteht keine Verwandtschaft.
609842/0637
Aus der vorstehenden Beschreibung ergibt sich folgende Wirkungsweise der Erfindung:
Grundsätzlich gibt es zwei Störungen, bei denen der Ausfall-Sicherungsspeicher gemäß der Erfindung verwendet wird. Die ersten Störungen sind vom Prozessor festgestellte Bedingungen, die nachstehend als Ausnahmebedingungen bezeichnet werden und eine automatische erneute Bearbeitung in einer Ausnahme-Verarbeitungsroutine verursachen. Der zweite Typ von Störungen besteht in Ereignissen, die außerhalb des Prozessors festgestellt werden und die eine Reaktion des Prozessors erfordern und nachstehend als Unterbrechungen bezeichnet sind. Ist eine Ausnahme oder ein Unterbrechungszustand einmal festgestellt worden, so wird jeder dieser Zustände durch eine Kombination aus Hardware und Firmware in nahezu identischer Weise bearbeitet. Der Hauptunterschied in der Behandlung, abgesehen von der Nomenklatur, besteht darin, daß bei der Adressenbildung des Unterbrechungssteuerblockes ICB, bezogen auf die Steuerblockbasis CBB die Unterbrechungs-Nummer ICBN zu der Adresse der Steuerblockbasis CBB hinzuaddiert wird. Während bei der Adressenbildung für den Ausnahmesteuerblock ECB die Ausnahme-Steuerblocknummer ECBN von der Adresse der Steuerblockbasis CBB subtrahiert wird. Diesbezüglich sei auf Figur 2H und die zugehörige Beschreibung weiter vorne verwiesen.
Zum Zwecke der Veranschaulichung der Wirkungsweise der Erfindung sei angenommen, daß eine Unterbrechung durch die Schnittstelleneinheit SIU erzeugt worden ist. Die Schnittstelleneinheit SIU überwacht konstant den laufenden Prioritsrang des Prozesses, der auf dem Prozessor abläuft,und fordert Unterbrechungen von den Eingang/Ausgang-Systemmodulen an. Jede Unterbrechungsanforderung bestimmt die Nummer des zu unterbrechenden Prozessors, die Prioritätsgangnummer der Anforderung und die Steuerung, um den Unterbrechungsanforderer zu identifizieren. Diese Information ist in jedem Modul,der eine Unterbrechung anfordern Kann, und hinsichtlich der meisten Module wird diese Information durch die Benutzung programmierbarer Schnittstellenbefehle abgelegt.
609842/0637
.Wann immer eine Unterbrechungsanforderung mit einem höheren Prioritätsrang als dem Rang des laufenden Prozessors vorliegt, erzeugt die Schnittstelleneinheit SIU auf einer Leitung ein Unterbrechungssignal entsprechend dem höheren Prioritätsrang. Wenn verschiedene Unterbrechungsanforderungen mit dem gleichen Prioritätsrang vorliegen, so bestimmt die Schnittstelleneinheit SIU, welche Anforderung an den Prozessor auf der Basis einer durch die Anschlußnummer vorgegebenen Priorität weitergeleitet wird. Wenn die Unterbrechung des laufenden Prozesses nicht gesperrt ist, veranlaßt die Unterbrechungsanforderung den Prozessor IOP/P zur Aufgabe des laufenden Prozesses und zur Annahme eines Unterbrechungswortes gemäß Figur 2L von der Schnittstelleneinheit SIU. Die Information des Unterbrechungswortes enthält u.a. eine Unterbrechungs-Steuerblocknummer ICBN in den Bit-Positionen 19-26. Diese Nummer wird zu der Adresse CBB1 der primären Steuerblockbasis CBB hinzuaddiert, um eine Unterbrechungssteuerblock (ICB)-Adresse zu erhalten. Im Falle einer Ausnahme anstelle einer Unterbrechung wird die Ausnahme-Steuerblocknummer ECBN von der Adresse CBB1 der primären Steuerblockbasis CBB subtrahiert. Die Adresse wird von der Hardware und der Firmware-Steuerung gebildet. Die eine Unterbrechung verarbeitende Firmware veranlaßt den Zugriff auf die Adresse CBB, die in der primären Steuerblockbasis CBB im Allgemeinregister GRO unter dem Rang 1 und O gespeichert ist. Bei der Verwirklichung der Erfindung kann auch irgendein anderer Rang benutzt werden. Die Firmware veranlaßt sodann eine Linksverschiebung um 11 Bits der primären Steuerblockbasis, so daß das Format gemäß Figur 2F erhalten" wird. Die ICBN-Bits 19-26 des Unterbrechungswortes gemäß Figur 2L werden zu der Adresse CBB1 der primären Steuerblockbasis CBB gemäß Figur 2F hinzuaddiert, um die Adresse der Unterbrechungs-Steuerblockbasis ICBB zu erhalten. Die Anforderung eines Doppelwortes wird sodann von der Firmware durchgeführt, um auf die ersten beiden Worte in dem Unterbrechungssteuerblock ICB gemäß Figur 2J Zugriff zu nehmen. Nach dem Zugriff auf die ersten beiden Worte in dem Unterbrechungssteuerblock ICB wird das Bit ONC (ONC= Operation nicht vollständg), welches dem Bit 0 des PCR entspricht,
609842/0637
getestet, um festzustellen, ob die vorangegangene Operation vollständig war oder nicht. Wenn die vorangegangene Operation vollständig war und das Bit ONC nicht gesetzt ist, so wird die normale Unterbrechungs-Verarbeitungsroutine ausgelöst, indem die Prozeßregister mit den vier Registern aus dem Unterbrechungssteuerblock ICB geladen werden. Wenn das Prozeßzustandsregister PSR geladen wird, so wird das Steuerfeld des Unterbrechungswortes in das Steuerfeld des Registers PSR eingefügt. Die anderen Register, d.h. der Befehlszähler IC, das Allgemeinregister GR14 und das Seitentabellenbasisregister PTBR werden direkt durch aufeinanderfolgende Worte in dem Unterbrechungssteuerblock ICB geladen .
Es sei nun angeommen, daß das BIT ONC, d.h. das Bit 0 des Prozeßsteuerregisters PCR gesetzt ist, wodurch angezeigt wird, daß eine Fehlfunktion im Speicher vorliegt und ein anderer Speicher benutzt werden soll. Dementsprechend veranlaßt die Unterbrechungsverarbeitungs-Firmware erneut den Zugriff auf die Steuerblockbasis CBB in dem Allgemeinregister GRO mit den Prioritätsrängen 1 und 0 in dem Zwischenspeicher 328. In diesem Fall wird jedoch die zweite Steuerblockbasis CBB2 gebildet, die einen anderen Speicher zum Zugriff auf einen anderen Unterbrechungssteuerblock ICB benutzt, um den Speicherfehler in dem ersten Speicher zu behandeln. Die Adresse in dem zweiten Unterbrechungssteuerblock ICB wird unter Firmware-Steuerung gebildet, indem die Bits 0-3 des SteuerblockbasxsregistersCBBR genommen werden und in den Bits 0-3 des Arbeitsregisters 326 abgelegt werden. Ebenso werden die Bits 4-10 des SteuerblockbasisregistersCBBR in den Bit-Positionen 18-24 des Arbeitsregisters abgelegt. Auf diese Weise wird die zweite Steuerblockbasis CBB2 gemäß Figur 2G gebildet. Durch Verwendung der Adresse CBB2 und des neuen durch die Steuerung bestimmten Anschlusses und durch Addition dieser Werte zu der Unterbrechungs-Steuerblocknummer ICBN wird auf einen anderen Unterbrechungs-Steuerblock Zugriff genommen und das System wird nicht gestört.
609842/Q637
Um die Anwendung der Mikrobefehle in näheren Einzelheiten zu veranschaulichen, soll nunmehr die Ausnahmeverarbeitung, welche der Unterbrechungsverarbeitung ähnlich ist, beschrieben werden. Eine Ausnahme tritt unter den weiter vorne beschriebenen Bedingungen auf. Die Ausnahmen werden von dem Prozessor erkannt und mittels einer 4-Bit-Ausnahmenummer bestimmt. Für Hauptbetriebs-Eintrittsausnahmen wird die Ausnahmenummer aus den Bits 10-14 eines nicht dargestellten Befehls entnommen. In allen anderen Fällen weist die Ausnahmenummer den Wert O auf. Die Ausnahmenummer wird als eine Ausnahme-Steuerblocknommer ECBN zur Bestimmung eines Vierwort-Ausnahme-Steuerblockes ECB gemäß Figur 2J benutzt. Wie zuvor unter dem Abschnitt "Ausnahmen" beschrieben, wird diese ECBN-Nummer von der CBB-Adresse subtrahiert, um die ECB-Adresse zu gewinnen.
Bevor in eine Ausnahme-Verarbeitungsroutine eingetreten wird, muß wichtige Information über den laufenden Prozeß sicher abgespeichert werden. Diese Speicherung bildet einen Teil der Reaktion des Prozessors auf die Ausnahme. Da der Auftritt der Ausnahmen verschachtelt sein kann, wird ein Stapel gemäß Figur 2K benutzt, um Speicherraum für eine sichere Prozeßspeicherung zu schaffen. Im Ausnahmesteuerblock ECB wird eine Sicherungsbereichs-Hinweisadresse SAP gespeichert, die auf den Stapel verweist, der für die sichere Speicherung des laufenden Prozesses benutzt wird. Dementsprechend beginnt die Firmware mit der Bearbeitung bei einer bestimmten Adresse. Es sei darauf verwiesen, daß oktale Adressen verwendet werden. Von dieser Adresse erfolgt eine Verzweigung zu einer anderen Adresse. Unter dieser Adresse befindet sich der Mikrobefehl, der einen Aufruf zur Adressenbildung darstellt, um die Sicherungsbereichs-Hinweisadresse SAP zu erhalten. Sodann erfolgt eine Verzweigung zu einer anderen Adresse, wo sich ein Mikrobefehl befindet, der die Prozessornummer überprüft, um festzustellen, ob eine Sicherungsbereichs-Hinweisadresse SAP für das Pro- 1 zessorpaar PO oder das Prozessorpaar Pl angefordert wird.
609842/0637
Die Ausrichtung der Steuerblockbasis CBB wird durch einen Mikrobefehl unter einer weiteren Adresse bewirkt. Dieser Befehl steuert die Ausrichtung der primären Steuerblockbasis CBBl durch Verursachung einer Linksverschiebung um 11 Bits, wodurch,das Format der primären Steuerblockbasis gemäß Figur 2F erhalten wird. Ein anderer Mikrobefehl verursacht das Auslesen der adressierten Sicherungsbereichs-Hinweisadresse SAP. Nach dem Zugriff auf die Hinweisadresse SAP wird das Bit ONC im Prozeß-Steuerregister PCR überpfüft, um festzustellen, ob der Zugriff vollständig ausgeführt wurde oder nicht. Die Prüfung ONC bei Vollendung eines Speicherzyklus wird unter der Steuerung eines Mikrobefehls unter der Oktaladresse ausgeführt» Wenn die Operation vollständig war, so wird angezeigt, daß keine Zeittakt- oder Speicherstörung vorlag und es wird dementsprechend in eine normale Ausnahmeprozedur unter Steuerung durch weitere Mikrobefehle eingetreten. Ist jedoch das Bit ONC gesetzt, so zeigt dies an, daß die Operation auf Grund irgendeiner Fehlfunktion nicht vollständig war und es wird ein Mikrobefehl übersprungen und der nächste Mikrobefehl ausgeführt. Die zweite Steuerblockbasis CBB2 wird sodann durch das Steuerblockbasisregister CBBR gemäß Figur 2E erzeugt, wobei dies ebenfalls unter Steuerung durch Firmware-Mikrobefehle erfolgt. Durch die Benutzung dieser zweiten Steuerblockbasis CBB2 wird eine zweite Adresse in einem anderen Speicher für den Ausnahmesteuerblock erzeugt, wobei von den zuvor beschriebenen Prinzipien der Adressbildung Gebrauch gemacht wird. Das System wird somit bei einem Speicherfehler vor einem Ausfall bewahrt.
609842/0637
Liste der verwendeten Abkürzungen
AIL - Active - Interrupt Level - Aktiver Unterbrechungsrang ALÜ - Adder Logical Unit - Rechenwerk ARA - Active Request Accepted - Aktive Anforderung angenommen ARDA - Accept Read Data - gelesene Daten angenommen
BRAC CP- Branch.on. Condition - Condition Field - Bedingungsverzweigüng - Bedingungsfeld
BRB ' - Branch on Bit - Verzweigungs-Bit
CBB - Control Block Basis - Steuerblockbasis
CBBR - Control Block Basis Register - Steuerblockbasisregister
CC - Condition Code - Zustands-Code
CIR - Current Instruction Read - Laufender Befehl Lesen
CEMIO - Communication Input/Output - Nachrichteneingang/ausgang
CPI - Common Peripheral Interface - Gemeinsame periphere Schnittstelle
CSA - Control Store Address - Steuerspeicheradresse
CSR - Control Store Register - Steuerspeicherregister
DAI - Device Adapter Interface - Geräte Adapter-Schnittstelle
DI - Data Interface - Datenschnittstelle
DISP - Dispatch Instruction - Verteilbefehl
DL - Long Displacement - Lange Verschiebung
DO - Data Out (Register) - Datenausgangs(Register)
DPCR - Display Process Control Register - Prozeß-Steuerregister-Anzeige
DS - Short Displacement - Kurze Verschiebung
DSL - Double Shift Left - Doppelverschiebung nach links
DSR - Double Shift Right - Doppelverschiebung nach rechts
ECB - Exception Control Block - Ausnahmesteuerblock
GR - General Register - . Allgemeinregister
HLIP - Higher Level Interrupt Present - Unterbrechung mit höherem Rang vorhanden
HSMX - High Speed Multiplexer - Hochgeschwindigkeits-Multiplexer /
609842/0637
ICB - Interrupt Control Block - Untcrbrechungs-Steuerblock
IL - Long Intermediate Value - Langer Zwischenwert
IS - Short Intermediate Value - Kurzer Zwischenwert
IOM - Input/Output Multiplexer - Eingang/Ausgang-Multiplexer
IOP - Input/Output Processor - -Eingang/Ausgang-Prozessor
IRSW - Instruction Register Switch - Befehlsregisterschalter
L2MG - Load 2 Words of Memory to General Register -
Lade 2 Worte des Speichers in das Allgemeinregister
LMPS - Local Memory Port Specifier - Interner Speicheranschluß Kennzeichner
LSMX - Low Speed Multiplexer - Niedriggeschwindigkeits-Multiplexer
LZP - Level Zero Interrupt Present - Unterbrechung mit Rang Null vorhanden
MME - Master Mode Entry - Entritt in Hauptbetriebsweise
MPC - Micro Program Peripheral Controllers - Mikroprogrammierte periphere Steuerung
NA - Next Address (Register ) - Nächstadressen (Register)
NIR - Next Instruction Read - Nächster Befehl gelesen
NOP - No Operating Instruction - Kein Operationsbefehl
ONC - Operation not Complete - Operation nicht vollständig
PCR - Process Control Register - Prozeß-Steuerregister
PI - Programmable Interface - Programmierbare Schnittstelle
PRA - .Page Relative Address - Relative Seitenadresse
PSR - Process State Register - Proz.eß-Zustandsregister
PTBR - Page Table Base Register - Seitentabellen-Basisregister
PTW - Page Table Word - Seitentabellenwort
PN · - Page Number - Seitennummer
PSI - Peripheral Subsystem Interface - Periphere Untersystem-Schnittstelle
609842/0637
RA - Return Address-(Register) - Rückkehradress-(Register)
RDEX - Read External - Externes Lesen
RDRR - Read Remote Register - Lese externes Register
REL - Release - Freigabe
RFU - Reserved for Future Use - Reserviert für zukünftigen Gebrauch
REMA - Remote Memory Adapter - Externer Speicher-Adapter
JRMM - Return from Master Mode - Rückkehr aus Hauptbetriebsweise
SAP - Saving Aera Pointer - Sicherungsbereich-Hinweisadresse
SIU - System Interface Unit - System-Schnittstelleneinheit
SKP - Skip .- Sprung
SPA - Scratch Pad Address - Zwischenspeicher-Adresse
SPB - Scratch Pad Buffer - Zwischenspeicher-Puffer
SS - Standard Sequence - Standardfolge-
S2MG - Store 2 General Register Words in Memory-
Speichere 2 Allgemeinregisterworte im Speicher
WA ,- Write Address - Schreibadresse
WRR - Working Register Output for supplying Operands Arbeitsregisterausgang für die Operandenlieferung
WRRR - Write Remote Register - Schreibe externes Register WREX - Write External - Schreibe extern
WRW - Working Register Write Input - Arbeitsregister-Schreibeingang
WL/CY. - Word Lenght or Carry - Wortlänge oder übertrag
WRP - Working Register Output for Paging - Arbeitsregistereingang für Seitenadressierung
XR - Indexregister - Indexregister
XA - Execution Address (Register ) - Ausführungsadress-(Register)
ZAC - Zone Address and Command - Zonenadresse und Befehl
609842/0637

Claims (10)

  1. Patentansprüche
    IJ Universalrechner mit wenigstens einem Prozessor und einer Ausfallsicherung, gekennzeichnet durch eine erste Einrichtung zur Feststellung einer Störung in dem adressierten Teil des Hauptspeichers und eine zweite auf die erste Einrichtung ansprechende Einrichtung zur automatischen Erzeugung eines alternativen Weges zu einem zweiten Hauptspeicherteil bei der Feststellung einer Störung in dem ersten Hauptspeicherteil.
  2. 2. Universalrechner nach Anspruch 1, bei dem der Prozessor einen laufenden Prozeß bearbeitet, gekennzeichnet durch eine dritte an die erste Einrichtung angeschlossene Einrichtung zur Unterbrechung des Prozessors, wenn eine Störung in dem adressierten Teil des Hauptspeichers festgestellt wird.
  3. 3. Universalrechner nach Anspruch 2, gekennzeichnet durch eine vierte an eine Adressiereinrichtung für den Hauptspeicher und an die 2. Einrichtung angeschlossene Einrichtung zur Speicherung einer ersten und zweiten Steuerblockbasisadresse, wobei die Adressiereinrichtung die erste Steuerblockbasisadresse und die zweite Einrichtung die zweite Steuerblockbasisadresse zur Adressierung des Hauptspeichers benutzt.
  4. 4. Universalrechner nach Anspruch 3, gekennzeichnet durch einen ersten Unterbrechungssteuerblock in einem ersten durch die Adressiereinrichtung adressierten Teil des Hauptspeichers und durch einen zweiten Unterbrechungssteuerblock in einem zweiten durch die zweite Einrichtung adressierten Teil des Hauptspeichers, wobei der erste Unterbrechungssteuerblock Informationen zur Ausführung eines ersten Prozesses und der zweite Unterbrechungssteuerblock Informationen zur Ausführung eines zweiten Prozesses speichert.
    609842/0637
  5. 5. Universalrechner nach Anspruch 4, gekennzeichnet durch eine 5. auf die 1. Einrichtung ansprechende Einrichtung zur Erzeugung einer auf die 2. Unterbrechungssteuerblockadresse bezogenen Adresse für den 2. Unterbrechungssteuerblock.
  6. 6. Universalrechner nach Anspruch 5, gekennzeichnet durch eine 6. auf- die 4. und 3. Einrichtung ansprechende Einrichtung zur Entwicklung der absoluten Adresse des 2. Unterbrechungssteuerblockes.
  7. 7. Universalrechner nach Anspruch 6, gekennzeichnet durch eine 7. auf die 3. Einrichtung ansprechende Einrichtung zur Errichtung eines Stapels im Hauptspeicher zur Speicherung von Informationen über den gerade bearbeiteten Prozeß, um die Rückkehr auf den gerade bearbeiteten Prozeß bei der Beendigung der Unterbrechung des Prozessors zu gestatten.
  8. 8. Universalrechner nach Anspruch 1, gekennzeichnet durch eine 8. von dem zweiten Unterbrechungssteuerblock beeinflusste Einrichtung zur Entwicklung der Adresse des Stapels im Hauptspeicher.
  9. 9. Universalrechner nach Anspruch 8 mit einem internen Speicher, dadurch gekennzeichnet, daß die erste Steuerblockbasisadresse eine Adresse im Hauptspeicher und die zweite Steuerblockbasisadresse eine Adresse im internen Speicher angibt.
    609842/0637
  10. 10. Universalrechner nach Anspruch 1, bei dem wenigstens ein Prozessor sequentiell einen ersten von mehreren Prozessen bearbeitet, wobei jedem Prozeß ein Prioritätsrang entsprechend der relativen Wichtigkeit in Bezug auf andere Prozesse zugeordnet ist und jeder Prozeß nach einer Steuerung durch den Prozessor verlangt, mit wenigstens einem internen Speicher und einem Hauptspeicher mit jeweils wahlfreiem Zugriff, gekennzeichnet durch
    a. eine 9. Einrichtung zur Erzeugung eines Unterbrechungssignales, falls ein Prozeß mit höherem Prioritätsrang als jener erste bearbeitete Prozeß die Steuerung durch den Prozessor anfordert,
    b. eine 10. auf die 9. Einrichtung ansprechende Einrichtung zur Feststellung des Unterbrechungssignales,
    c. eine 11. auf die 10. Einrichtung ansprechende Einrichtung zur Adressierung des internen Speichers,
    d. eine 12. Einrichtung zur Feststellung einer Störung im internen Speicher und
    e. eine 13. auf die 12. Einrichtung ansprechende Einrichtung zur automatischen Erzeugung eines alternativen Adressierweges zum Hauptspeicher.
    R (J 9 0 4 '/ I 0 6 3 7
    S3
    Leerseite
DE19762612034 1975-03-26 1976-03-22 Ausfallsicherung in einem universalrechner Withdrawn DE2612034A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/562,361 US4010450A (en) 1975-03-26 1975-03-26 Fail soft memory

Publications (1)

Publication Number Publication Date
DE2612034A1 true DE2612034A1 (de) 1976-10-14

Family

ID=24245967

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19762612034 Withdrawn DE2612034A1 (de) 1975-03-26 1976-03-22 Ausfallsicherung in einem universalrechner

Country Status (7)

Country Link
US (1) US4010450A (de)
JP (1) JPS51120631A (de)
BE (1) BE840021A (de)
CA (1) CA1059638A (de)
DE (1) DE2612034A1 (de)
FR (1) FR2305791A1 (de)
GB (1) GB1547386A (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4093985A (en) * 1976-11-05 1978-06-06 North Electric Company Memory sparing arrangement
JPS5494850A (en) * 1978-01-11 1979-07-26 Nissan Motor Arithmetic processor
US4404647A (en) * 1978-03-16 1983-09-13 International Business Machines Corp. Dynamic array error recovery
US4255741A (en) * 1979-11-26 1981-03-10 Peterson Erik R Communication module
JPS57155642A (en) * 1981-03-23 1982-09-25 Nissan Motor Co Ltd Computer capable of using correcting memory
US4380067A (en) * 1981-04-15 1983-04-12 International Business Machines Corporation Error control in a hierarchical system
JPS57189396A (en) * 1981-05-14 1982-11-20 Nec Corp Controller for plural storage parts in data processing system
US4435754A (en) * 1981-06-30 1984-03-06 Ampex Corporation Method of selecting PROM data for selective mapping system
WO1983001135A1 (en) * 1981-09-18 1983-03-31 Rovsing As Christian Multiprocessor computer system
US4475194A (en) * 1982-03-30 1984-10-02 International Business Machines Corporation Dynamic replacement of defective memory words
US4524415A (en) * 1982-12-07 1985-06-18 Motorola, Inc. Virtual machine data processor
US4642629A (en) * 1983-04-18 1987-02-10 Megabit Communications, Inc. Enhanced distance data transmission system
USRE33404E (en) * 1983-04-18 1990-10-23 Megabit Communications, Inc. Enhanced distance data transmission system
US4872166A (en) * 1986-09-10 1989-10-03 Nec Corporation Information processing system capable of reducing invalid memory operations by detecting an error in a main memory
US4847517A (en) * 1988-02-16 1989-07-11 Ltv Aerospace & Defense Co. Microwave tube modulator
US5345582A (en) * 1991-12-20 1994-09-06 Unisys Corporation Failure detection for instruction processor associative cache memories
US6181929B1 (en) * 1996-05-20 2001-01-30 Motorola, Inc. Method for switching cell site controllers
TW405092B (en) * 1998-12-10 2000-09-11 Mitac Int Corp Automatic switching control device for DRAM
US6957361B2 (en) * 2001-11-29 2005-10-18 International Business Machines Corporation Method, system, and program for error handling in a dual adaptor system
US6983397B2 (en) * 2001-11-29 2006-01-03 International Business Machines Corporation Method, system, and program for error handling in a dual adaptor system where one adaptor is a master
US7035953B2 (en) * 2002-05-03 2006-04-25 Hewlett-Packard Development Company, L.P. Computer system architecture with hot pluggable main memory boards
US7979616B2 (en) * 2007-06-22 2011-07-12 International Business Machines Corporation System and method for providing a configurable command sequence for a memory interface device
US8144537B2 (en) * 2008-11-11 2012-03-27 Stmicroelectronics Pvt. Ltd. Balanced sense amplifier for single ended bitline memory architecture

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3633175A (en) * 1969-05-15 1972-01-04 Honeywell Inc Defect-tolerant digital memory system
US3806716A (en) * 1972-07-17 1974-04-23 Sperry Rand Corp Parity error recovery

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3312947A (en) * 1963-12-31 1967-04-04 Bell Telephone Labor Inc Plural memory system with internal memory transfer and duplicated information
US3444526A (en) * 1966-06-08 1969-05-13 Ibm Storage system using a storage device having defective storage locations
US3434116A (en) * 1966-06-15 1969-03-18 Ibm Scheme for circumventing bad memory cells
US3436734A (en) * 1966-06-21 1969-04-01 Ibm Error correcting and repairable data processing storage system
BE757040A (fr) * 1969-10-06 1971-03-16 Western Electric Co Procede pour actionner un systeme de traitement de donnees
US3668644A (en) * 1970-02-09 1972-06-06 Burroughs Corp Failsafe memory system
GB1410631A (en) * 1972-01-26 1975-10-22 Plessey Co Ltd Data processing system interrupt arrangements
US3737870A (en) * 1972-04-24 1973-06-05 Ibm Status switching arrangement
US3771143A (en) * 1972-06-01 1973-11-06 Burroughs Corp Method and apparatus for providing alternate storage areas on a magnetic disk pack
US3792448A (en) * 1973-05-21 1974-02-12 Burroughs Corp Failsoft peripheral exchange
US3905023A (en) * 1973-08-15 1975-09-09 Burroughs Corp Large scale multi-level information processing system employing improved failsaft techniques
IT995722B (it) * 1973-10-10 1975-11-20 Honeywell Inf Systems Italia Calcolatore microprogrammato a interior decore espansibile mediante riconoscimento e interpre tazione di codici di operazione aggiunti
US3934227A (en) * 1973-12-05 1976-01-20 Digital Computer Controls, Inc. Memory correction system
US3976977A (en) * 1975-03-26 1976-08-24 Honeywell Information Systems, Inc. Processor for input-output processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3633175A (en) * 1969-05-15 1972-01-04 Honeywell Inc Defect-tolerant digital memory system
US3806716A (en) * 1972-07-17 1974-04-23 Sperry Rand Corp Parity error recovery

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US-Z: Datamation, 6/1965, S. 31-34 *

Also Published As

Publication number Publication date
FR2305791A1 (fr) 1976-10-22
US4010450A (en) 1977-03-01
GB1547386A (en) 1979-06-20
JPS51120631A (en) 1976-10-22
BE840021A (fr) 1976-07-16
CA1059638A (en) 1979-07-31
FR2305791B1 (de) 1981-12-31

Similar Documents

Publication Publication Date Title
DE2612059A1 (de) Verfahren und vorrichtung zum befehlsabruf und zur befehlsausfuehrung in einem universalrechner
DE2612034A1 (de) Ausfallsicherung in einem universalrechner
DE2612037A1 (de) Prozessor
DE2806024C2 (de)
DE2611907A1 (de) Dv-system mit einer prioritaets- unterbrechungs-anordnung
DE3144015C2 (de)
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE2612054A1 (de) Verfahren zur adressentwicklung und prozessor zur durchfuehrung des verfahrens
DE2755952C2 (de)
DE2517276A1 (de) Datenverarbeitungssystem
DE2806045A1 (de) Dv-system mit pufferspeicher
DE2902465A1 (de) Datenverarbeitungsanordnung
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE2846495A1 (de) Digitales datenverarbeitungssystem
EP0010198A2 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE2721319A1 (de) Einrichtung zur selbsttaetigen aenderung der prozessor/speicher-konfiguration
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE2248296A1 (de) Programmsteuereinrichtung
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE2414311A1 (de) Speicherschutzeinrichtung
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2856680A1 (de) Befehlspuffer fuer ein datenverarbeitungssystem
DE2611975A1 (de) Dv-system mit einer einrichtung zur zuordnung von prozessen zu einem prozessor auf einer prioritaetsbasis
DE3900246C2 (de)
DE2336020C3 (de) Adressen-Berechnungsschaltung für Paritätsfehler-Korrekturprogramme

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8130 Withdrawal