DE1499200C - Datenverarbeitungsanlage mit vorranggesteuerter Programmunterbrechung - Google Patents

Datenverarbeitungsanlage mit vorranggesteuerter Programmunterbrechung

Info

Publication number
DE1499200C
DE1499200C DE1499200C DE 1499200 C DE1499200 C DE 1499200C DE 1499200 C DE1499200 C DE 1499200C
Authority
DE
Germany
Prior art keywords
psw
program
interruption
interrupt
register
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.)
Expired
Application number
Other languages
English (en)
Inventor
Gene Myron Saratoge Calif.; Johnson Jacob Raymond; Calingaert Peter; Case Richard Paul Poughkeepsie; Boehm Elaine Marie Wappingers Falls; Hanf William Porter Endicott; Perkins jun. Charles Bertram Endwell; Collins; Arthur Frederick; Greene Jack Ellis; Magdall Albert Allan; Roo Amdhahl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Publication date

Links

Description

I 499 200
1 2
Die Erfindung betrifft eine Datenverarbeitungsan- programm zugeordnete Programmstatuswort in das lage mit vorranggesteuerter Programmunterbrechung, aktive PSW-Register übertragen,
mit einem aktiven Programmstatuswort-Register Wenn für jedes bereitstehende Unterprogramm ein (PSW-Register) für die Aufnahme der das laufende Registerpaar zur Aufnahme von Programmstatus-Programm beschreibenden Daten (Programmstatus- 5 Wörtern vorgesehen wird, von denen eines leer ist wort) und mit einer Steuerschaltung zur Steuerung und das Programmstatuswort des zu unterbrechendes Programmablaufs und zur Entgegennahme von den Programms aufnimmt und von denen das andere Unterbrechungsanforderungen. das Programmstatuswort des unterbrechenden Pro-
Während der Ausführung der verschiedenen Ope- gramms enthält, so kann in einfacher Weise ein Ausrationen, die in programmgesteuerten Datenverarbei- io tausch der Programmstatuswörter und der Übergang tungsanlagen ausgeführt werden, können gewisse Be- von einem laufenden Programm zu einem Unterdingungen auftreten, die eine Unterbrechung des programm vorgenommen werden. Ergibt die folgende normalen gerade ablaufenden Problemprogramms er- Prüfung, daß eine Unterbrechungsanforderung höhefordern. Solche Bedingungen können in verschiede- rer Dringlichkeit vorliegt, so gelangt das soeben ins nen Teilen der Anlage auftreten; sie können durch 15 aktive PSW-Register eingetragene Programmstatus-Eingabe- und Ausgabeeinheiten hervorgerufen wer- wort nunmehr in das leere Register des Registerden, ζ. B. wenn eine Eingabe oder Ausgabeoperation paares für das unterbrechende Programm höherer begonnen oder beendet werden soll; sie können auch Dringlichkeit. Dieser Vorgang kann sich wiederholen, in sogenannten externen Einheiten auftreten, so in Ein Ausführungsbeispiel der erfindungsgemäßen der Konsole, in einem im System verwendeten Zeit- 20 Datenverarbeitungsanlage wird an Hand der Zeichgeber oder in anderen an die Anlage angeschlossenen nungen erläutert. Es zeigt
Einheiten, die auf Verlangen eine sofortige Berück- Fig. 1 ein vereinfachtes Blockdiagramm einer
sichtigung erfordern; auch festgestellte Fehler der Datenverarbeitungsanlage, in der das erfindungsge-
Maschine oder des Programms können eine Unter- mäße Unterbrechungssystem Verwendung finden
brechung notwendig machen. Normalerweise ist es 25 kann,
beim Auftreten einer Unterbrechungsbedingung aus- F i g. 2 eine schematische Darstellung eines Proreichend, das gerade ablaufende Problemprogramm grammstatuswortes,
zu unterbrechen, ein Unterbrechungsunterprogramm F i g. 3 ein Diagramm, das angibt, wann die verauszuführen, und anschließend das Problemprogramm schiedenen Arten von Unterbrechungsbedingungen in fortzusetzen. 30 bezug auf das Problemprogramm auftreten können
Es ist bekannt, bei Mehrkanalübertragungen jedem und zu ' welchen Zeiten die Unterbrechungsunter-Kanal ein eigenes Kontrollwort zuzuordnen, welches programme begonnen werden,
die Eigenschaften und den Zustand dieses Kanals für Fig. 4 ein Diagramm, das für den Fall mehrerer eine Informationsübertragung angibt. gleichzeitig auftretender Unterbrechungsbedingungen
Es ist weiter bekannt, jedem Ein- und Ausgabe- 35 angibt, in welcher Reihenfolge die dem Problemgerät ein bistabiles Merkelement zuzuordnen, das bei programm und den verschiedenen Unterbrechungseiner Unterbrechungsanforderung für dieses Gerät Unterprogrammen zugeordneten Programmstatuseingestellt wird; diese Merkmalelemente werden Wörter vervollständigt und eingespeichert werden, zyklisch nach dem Vorliegen einer Unterbrechungs- Fig. 5 ein Blockdiagramm der Schaltung, mit anforderung abgefragt. Ein Vorrang zwischen den 40 deren Hilfe festgestellt wird, ob eine angeforderte Anfragen wird dabei nicht in Betracht gezogen. Unterbrechung gemäß dem gegenwärtig benutzten
Aufgabe der vorliegenden Erfindung ist es, die Programmstatuswort stattfinden kann oder nicht, und Auswahl des mit höchster Dringlichkeit ausgestatte- F i g. 6 ein Blockdiagramm der Schaltung, die die ten unterbrechenden Programms unter Verwendung für die Anlage vorgegebene Dringlichkeitsreihenfolge von Programmstatuswörtern in sehr anpassungsfähig 45 der verschiedenen Unterbrechungen bestimmt,
ger Weise vorzunehmen, beim Vorliegen mehrerer F i g. 1 zeigt ein Blockdiagramm einer Maschine, Anforderungen unterschiedlicher Dringlichkeit, be- in welcher das obengenannte Unterbrechungssystem ginnend bei der Anforderung geringster Dringlich- Verwendung finden kann. In diesem Diagramm stellt keit, laufend zu prüfen, ob noch eine Anforderung Block 1 einen Kernspeicher dar, der einen Haupthöherer Dringlichkeit vorliegt, und erst wenn dies 5° speicher 2 zur Speicherung von Makroinstruktionen, nicht mehr der Fall ist, die Anforderung der derzeit anderen Kontrollwörtern und Daten, die alle unterhöchsten Dringlichkeit zu erledigen und anschließend schiedlicher Länge sein können, und einen Arbeitsnacheinander in umgekehrter Reihenfolge die Bear- speicher 3 aufweist, der für die auszuführenden beitung der restlichen Anforderungen durchzu- Rechenoperationen die Funktion von Registern überführen. 55 nimmt. Die 8-Bit-Speicherstellen werden adressiert
Bei einer Datenverarbeitungsanlage der eingangs vom Adressenregister 5; die eingespeicherten 8 Bits genannten Art wird die gestellte Aufgabe gelöst durch bilden jeweils ein Byte und werden parallel in das mehrere PSW-Register für die im Bedarfsfall gleich- Datenregister 19 ausgelesen. Das Einschreiben von zeitige Aufnahme von Daten zur Beschreibung bereit- Daten erfolgt unter der Kontrolle der dem Speicher stehender Unterprogramme oder unterbrochener 6° zugeordneten Sperrschaltung 4 in Übereinstimmung Programme; durch von der Steuerschaltung zur an mit dem Inhalt des Registers 19. Block 6 stellt einen sich bekannten Einleitung je eines Unterprogramms Festwertspeicher dar, in dem Mikroinstruktionen ge-' unterschiedlicher Priorität erregbare Steuervorrich- speichert sind. Die Mikroinstruktionen werden aus tungen, die in bekannter Weise je einem Unterpro- durch das Adressenregister 7 bestimmten Speichergramm zugeordnet sind und die ferner bei Erregung 65 stellen in Leseverstärker-Verriegelüngsschaltungen 8 das aktive Programmstatuswort ergänzen, in das dem ausgelesen. Nach erfolgter Decodierung werden sie betreffenden Unterprogramm zugeordnete inaktive zur Steuerung der Operationen der Rechenanlage PSW-Register abspeichern und das diesem Unter- verwendet. Die Steuerschaltungen sind durch Block 9
dargestellt, unter anderem umfassen sie die Schaltungen 10 und 11, die zur Steuerung der Unterbrechungen dienen. Letztere Schaltungen und ihre Arbeitsweise werden im Zusammenhang mit den Fig. 5 und 6 ausführlich erklärt.. Die Blöcke 12 stellen die Teile der Anlage dar, von denen eine Unterbrechungsanforderung ausgehen kann. Arithmetische und logische Operationen werden im Rechenwerk 18 ausgeführt. Die beiden Operanden, mit denen die arithmetischen und logischen Verknüpfungen vorzunehmen sind, werden über die Leitungen A (13) und B (14) den Pufferregistern A (16) und B (17) zugeführt und von dort an das Rechenwerk weitergegeben. Die die Ergebnisse darstellenden Signale werden auf die Leitung Z (15) gegeben, von wo sie in eines oder mehrere der Register 19 bis 25 übergeführt werden. Diese Register dienen verschiedenen Zwecken: Register 19 wird, wie bereits erklärt, als Hauptspeicherdatenregister verwendet: Register 20 dient als Instruktionszähler, die in ihm 21 gespeicherten Werte werden in das Adressenregister 5 übertragen; Register 21 wird als Zwischenadressenregister benutzt, die in ihm gespeicherten Werte dienen über das Adressenregister 5 zum Aufrufen der Speicherstellen des Hauptspeichers 1 oder über das Adressenregister 7 zum Adressieren des Festwertspeichers 6. Die restlichen Register 22 bis 25 dienen zur zeitweiligen Speicherung des Operationscodes, des Bedin-■ gungscodes, des Längencodes und von Statusbits, Teiladressen oder anderen Informationen, die im Zusammenhang mit dem jeweils ausgeführten Programm von Bedeutung sind. Die Anzahl der Register ist selbstverständlich nicht auf die Zahl der in der Zeichnung angegebenen beschränkt. Die in den Registern gespeicherten Werte können, wie im Diagramm gezeigt, den verschiedenen Leitungen und Adressenregistern zugeführt werden; so können z. B. aus dem Hauptspeicher 2 in das Datenregister 19 ausgelesene Daten über die Leitung 13, das Pufferregister 16 und das Rechenwerk 10 zu jedem anderen Register geleitet werden.
In der in F i g. 1 gezeigten Anlage wird die Ausführung von Problemprogrammen durch eine Folge von Makroinstruktionen kontrolliert; jede dieser Makroinstruktionen bestimmt eine auszuführende Operation, die unter der direkten Steuerung einer Folge von Mikroinstruktionen zur Ausführung gelangt. Der Operationscode einer jeden Makroinstruktion bestimmt diese Operation, die Bits der Makroinstruktionen werden jedoch nicht direkt zur Kontrolle der Schaltungen der Anlage benutzt; hingegen bewirkt der in einem der Register gespeicherte Operationscode im Zusammenwirken mit den Steuerschaltungen 9 das Auslesen einer ersten Mikroinstruktion aus dem Festwertspeicher 6. Die Adresse der jeweils nächsten Mikroinstruktion ist wenigstens teilweise in der vorangehenden Mikroinstruktion enthalten, die zur Vervollständigung der Adresse erforderlichen Bits hängen von den zu der Zeit in der Anlage bestehenden Verhältnissen und vom Operationscode der Makroinstruktion ab. Nach Ausführung der einer Makroinstruktion entsprechenden Folge von Mikroinstruktionen wird die nächste Makroinstruktion von der Speicherstelle des Hauptspeichers ausgelesen, die durch den Instruktionszähler 20 bestimmt wird, und das Problemprogramm wird fortgeführt.
In der beschriebenen Rechenanlage wird die Ausführung aller Programme durch ein übergeordnetes Programm, das im folgenden als Monitorprogramm bezeichnet wird, überwacht. Wenn mehrere Programme, von denen jedes aus einer Folge von Makroinstruktionen besteht, durchgeführt werden sollen, bestimmt dieses Monitorprogramm die Reihenfolge ihrer Durchführung; es steuert auch die Unterprogramme, die beim Auftreten von Unterbrechungsbedingungen in der Anlage erforderlich werden.
ίο Während der Ausführung von Problemprogrammen arbeitet die Rechenanlage unter der Steuerung eines vom Monitorprogramm bereitgestellten Steuerwortes, das als Programmstatuswort (PSW) bezeichnet wird. Für die verschiedenen Unterbrechungsunterprogramme werden ebenfalls durch die Art der Unterprogramme bestimmte PSW verwendet. Die in den PSW enthaltenen Informationen geben den jeweiligen Stand der Programme sowie die in der Anlage bestehenden Verhältnisse und Bedingungen wieder, zu diesem Zweck wird es laufend korrigiert und vervollständigt. Neben anderen Informationen enthält es beispielsweise die Adresse der nächsten Makroinstruktion. Für die direkte Kontrolle eines gerade ablaufenden Programms ist das gegenwärtig benutzte oder aktive PSW in einer hierfür vorgesehenen Speicherstelle des Arbeitsspeichers 3 enthalten; bestimmte Teile des PSW werden darüber hinaus in Registern, Verriegelungsschaltungen oder ähnlichen zur zeitweiligen Speicherung dienenden Einrichtungen gegeben. Nichtaktive PSW, die zu gerade nicht zur Ausführung gelangenden Programmen gehören, sind in hierfür vorgesehenen festen Stellen des Hauptspeichers 2 enthalten. Sowie ein Programm unterbrochen wird, wird das diesem zugeordnete PSW als »altes« PSW in den Hauptspeicher eingegeben und . ein »neues« PSW, das zur Steuerung der nachfolgenden Operationen Anwendung findet, in den Arbeitsspeicher übergeführt. Diese PSW enthalten zu jeder Zeit die für eine Unterbrechung und spätere Wiederaufnahme eines Programms erforderlichen Informationen.
Im folgenden wird eine eingehende Beschreibung der Funktion der PSW und der Arbeitsweise des Unterbrechungssystems gegeben.
In F i g. 2 ist das in der Anlage verwendete PSW 26 schematisch dargestellt; es besteht aus den Bitpositionen 0 bis 63, die in Feldern 26 A bis 26 K gruppiert sind. Nachstehend wird eine Erklärung der in diesen Feldern gespeicherten Informationen sowie der von diesen ausgeführten Steuerungfunktionen gegeben.
Feld 26 A — Bits 0 bis 7 — SYSTEM-MASKE
Beim Auftreten einer Forderung nach einer Eingäbe/Ausgabe oder einer »Externen« Unterbrechung dienen die Bits der System-Maske dazu zu bestimmen, ob eine solche Unterbrechung gegenwärtig stattfinden kann, d. h. erlaubt ist, oder nicht. Die Bitpositionen 0 bis 6 entsprechen sieben verschiedenen Kanälen, über die die Eingabe/Ausgabe-Einheiten mit der Rechenanlage verbunden sind; Bitposition 7 ist den Einheiten zugeordnet, die ein externes Unterbrechungsprogramm erforderlich machen können. Ein »O«-Bit in einer dieser Bitpositionen bewirkt, daß die Ausführung des entsprechenden Unterprogramms zurückgestellt wird; ein »1«-Bit zeigt an, daß das Unterprogramm zur Ausführung gelangen kann. Der Zweck dieser Unterbrechungen
und die durch sie bedingten Vorgänge werden später näher erläutert.
Die System-Maske des aktiven PSW ist im Arbeitsspeicher und darüber hinaus auch in Verriegelungsschaltungen gespeichert.
Feld 26 B — Bits 8 bis 11 — SPEICHERSCHUTZCODE
Dieser 4-Bit-Code definiert die Bereiche des Hauptspeichers, die für die Instruktionen des gerade ablaufenden Programms zugänglich sind. Stimmt der Speicherschutzcode mit dem in einer zur Adressierung des Hauptspeichers benutzten Adresse enthaltenen Speichercode nicht überein, so wird eine Unterbrechung des Programms erforderlich.
Der Speicherschutzcode des aktiven PSW ist im Arbeitsspeicher und in einem Register der Rechenanlage enthalten
Feld 26 C — Bit 12 — Unbenutzt Feld 26 D — Bit 13 — MASCHINEN-PRÜFMASKE anderfolgenden Speicherstellen enthalten. Der Instruktionslängencode wird durch das Monitorprogramm im Falle einer Maschinen-Prüfungs-Unterbrechung oder einer Programm-Prüfungs-Unterbrechung benutzt, um die Adresse des ersten Bytes der Instruktion, die die Unterbrechung hervorrief, zu bestimmen. Bits 32 und 33 dienen zur Bestimmung der Länge der Instruktion, die derzeit ausgeführt oder gerade beendet wird. Sie werden von jeder
ίο Makroinstruktion, deren Bitpositionen O und 1 die Länge der Instruktion kennzeichnen, in das PSW eingefügt, so daß die Speicheradresse des ersten Bytes der Instruktion bestimmt werden kann.
Feld 26/ — Bit 34 und 35 — BEDINGUNGSCODE
Dieser Code kennzeichnet eine von mehreren Bedingungen, die bei der Ausführung vorangegangener Instruktionen in der Rechenanlage aufgetreten sind. Im aktiven PSW ist dieser Code in decodierter Form im Arbeitsspeicher enthalten:
Dieses Bit wird zur Feststellung benutzt, ob eine Maschinen-Prüf-Unterbrechung stattfinden kann oder nicht. Eine solche Unterbrechung wird angefordert, wenn .in, der Arbeitsweise der Rechenanlage ein Fehler festgestellt wurde. Ist dieses Bit eine »1«, so wird die Unterbrechung eingeleitet; ist dieses Bit jedoch eine »0«, wird das gerade ablaufende Programm fortgeführt.
Feld 26E — Bit 14 — LAUF/WART
Wenn dieses Bit eine »0« ist, führt die Rechen- " anlage Instruktionen aus, sie »läuft«. Wird dieses Bit hingegen zu »1«, so wird die Ausführung von Instruktionen unterbrochen, und die Anlage wartet bis eine Unterbrechung des Programms erfolgt.
Feld 26 F — Bit 15 — MONITOR/PROBLEM
Ist dieses Bit eine »1«, so befindet sich die Rechenanlage im Problemprogrammstatus, die Programme gelangen normal zur Ausführung. Wird dieses Bit zu »0«, so befindet sich die Rechenanlage im Monitorstatus, in welchem nur besondere Funktionen ausgeführt werden können, alle anderen Funktionen führen zu einere Fehleranzeige.
Die Bits 13, 14 und 15 des aktiven PSW sind im Arbeitsspeicher gespeichert, Bits 13 und 14 sind darüber hinaus auch in Verriegelungsschaltungen enthalten.
Feld 26 G — Bits 16 bis 31 — UNTER-
BRECHUNGSCODE
Dieser 16-Bit-Code wird zur Angabe des Grundes benutzt, der eine Unterbrechung herbeiführte; er bestimmt für die verschiedenen Unterbrechungsarten sowohl die Einheit, die ein Unterbrechungsprogramm anforderte, als auch den Grund oder die Bedingung, die die Unterbrechung erforderlich machte.
Der Unterbrechungscode ist im aktiven PSW nicht enthalten; diese Information wird dem PSW erst dann zugeführt, wenn es bei einer Unterbrechung als altes PSW in den Hauptspeicher übergeführt wird.
Feld 26 H — Bits 32 und 33 — INSTRUKTIONSLÄNGENCODE
Bits 34 und 35 4-Bit-Code des aktiven PSW
00
01
10
11
1000
0100
0010
0001
In der Anlage finden Makroinstruktionen verschiedener Länpc Anwendung. Die 8-Bit-Bytcs, aus denen sich eine Instruktion zusammensetzt, sind in aufein-Bei der Ausführung einer Instruktion, in deren Verlauf ein Code in das Bedingungsregister der Anlage gebracht wird, wird jeweils der im PSW enthaltene 4-Bit-Code geändert, um das Ergebnis der ausgeführten Operationen zu kennzeichnen. Der Code bleibt dann so lange unverändert, bis eine andere Instruktion eine Änderung des Bedingungsregisters bewirkt.
Feld 26/ — Bits 36 bis 39 — PROGRAMMPRÜFMASKE
Diese Bits werden zur Feststellung benutzt, ob eine angeforderte Programm-Prüfungs-Unterbrechung stattfinden kann oder nicht; eine solche Unterbrechung wird erforderlich, nachdem im Programm ein Fehler festgestellt wurde.
Jedes der 4 Bits entspricht einer von vier Unterbrechungsbedingungen, die in der Rechenanlage auftreten können. Beim Auftreten einer solchen Bedingung wird das entsprechende Bit betrachtet, ist es eine »1«, so wird eine Programm-Prüfungs-Unterbrechung eingeleitet, ist es hingegen eine »0«, so wird das laufende Programm fortgeführt.
Die Programm-Prüfmaske ist Teil des aktiven PSW und somit im Arbeitsspeicher enthalten.
Feld 26 K — Bits 40 bis 63 — INSTRUKTIONSADRESSE
Diese Bits definieren die Adresse der nächsten Makroinstruktion, die im Verlauf des laufenden Programms auszuführen ist.
Nach Ausführung einer Makroinstruktion ist die Adresse der nächsten Instruktion des laufenden Programms sowohl im Instruktionszähler der Anlage ah auch in den Bitpositionen 40 bis 63 des aktiven PSW enthalten. Während der Ausführung einer jeden Instruktion wird diese Adresse in Übereinstimmung mit dem Instruktionslängencode, der in jeder Instruktion enthalten ist, erhöht; die Adresse wird er-
setzt, wenn die normale Instruktionsreihenfolge durch eine Verzweigungsinstruktion unterbrochen wird.
Das in der beschriebenen Datenverarbeitungsanlage verwendete Unterbrechungssystem gestattet die Unterbrechung laufender Programme und die Ausführung von Unterbrechungsunterprogrammen, die durch Bedingungen erforderlich werden, die in externen Einheiten des Systems, in E/A-Einheiten oder in der Rechenanlage selbst auftreten. Eine Unterbrechung besteht in der Einspeicherung des aktiven PSW als »altes« PSW und der Bereitstellung eines »neuen« PSW. Anschließend beginnt die Ausführung des durch das neue PSW bestimmten Programms unter den Bedingungen und an der Stelle, die durch das neue PSW definiert werden.
In der Anlage können fünf verschiedene Arten von Unterbrechungsbedingungen auftreten:
1. MASCHINEN-PRÜFUNG
Eine Maschinen-Prüfungs-Unterbrechung wird eingeleitet, sobald ein Fehler der Maschine festgestellt wurde.
2. PROGRAMM-PRÜFUNG
Eine Programm-Prüfungs-Unterbrechung wird eingeleitet, sobald ein Fehler im Programm festgestellt wurde, z.B. ein ungültiger Operationscode, eine falsche Speicheradresse oder eine Überlaufbedingung.
3. EINGABE/AUSGABE
Eine Eingabe/Ausgabe-Unterbrechung wird eingeleitet, sobald eine Eingabe/Ausgabe-Einheit während der von ihr ausgeführten Operationen einen Punkt erreicht, an dem das Monitorprogramm zur Bestimmung des weiteren Arbeitsverlaufs der Anlage hinzugezogen werden muß.
4. EXTERN
Eine externe Unterbrechung wird, eingeleitet, sobald die Rechenanlage von externen Einheiten, deren Operationen keinen Aufschub erlauben, benutzt werden muß.
5. MONITOR-RUF
Eine Monitor-Ruf-Unterbrechung wird durch eine besondere Monitor-Ruf-Instruktion eingeleitet. Der Hauptanwendungszweck dieser Unterbrechung besteht darin, die Rechenanlage vom Problemstatus in den Monitorstatus umzuschalten; dies ist erforderlich, wenn ein PSW ersetzt oder geändert werden soll.
Wie bereits erwähnt, können Maschinen-Prüfungs-, Programm-Prüfungs-, Eingabe/Ausgabe- und externe Unterbrechungsunterprogramme nur dann eingeleitet werden, wenn die entsprechenden Maskenbits des aktiven PSW eine »1« darstellen; ist hingegen das entsprechende Bit eine »0«, so kann eine Unterbrechung nicht erfolgen, bis zur Änderung des Bits auf»l«. Eine Monitor-Ruf-Unterbrechung wird durch eine Makroinstruktion eingeleitet und erfordert daher kein Maskenbit im PSW.
Das in F i g. 3 gezeigte Diagramm gibt an, zu welcher Zeit, mit Bezug auf das Problemprogramm, die Anforderungen für die verschiedenen Arten von Unterbrechungen auftreten und zu welcher Zeit die Unterbrechungen -vorgenommen werden können. Wie bereits erwähnt, werden die durch Makroinstruktionen definierten Operationen unter der direkten Steuerung einer Folge von Mikroinstruktionen 1 bis η ausgeführt, die durch die jeweilige Makroinstruktion bestimmt ist (Spalten 30 A und 30B).
Pfeile in der Spalte»Unterbrechung angefordert« (30C) geben für jede Unterbrechungsart an, zu welcher Zeit, mit Bezug auf die Mikroinstruktionsfolge, eine Unterbrechung angefordert werden kann.
Anforderungen für Maschinen-Prüfungs (MASCH PRÜF)-, Programm-Prüfungs (PROGPRUF)-, Eingäbe/Ausgabe (E/A)- und externe (EXT) Unterbrechungen können zu jeder Zeit erfolgen, wie durch den oberen Pfeil und die große Klammer angedeutet. Die Monitor-Ruf (MON RUF)-Unterbrechung wird durch eine vom Programmierer vorgesehene Makro-Instruktion eingeleitet und kann deshalb nur nach Ablauf einer Mikroinstruktionsfolge erfolgen, wie durch den mit MON RUF gekennzeichneten Pfeil
angegeben. '
Pfeile der Spalte »Unterbrechung erfolgt« (30D) geben für jede Unterbrechungsart an, zu welcher Zeit, mit Bezug auf die Mikroinstruktionsfolge, die Ausführung des Unterbrechungsunterprogramms begonnen wird, wenn sie angefordert wurde und wenn durch die entsprechenden Maskenbits bestimmt wurde, daß die Unterbrechung stattfinden kann.
Wie gezeigt, werden MASCH PRÜF- und PROG PRÜF-Unterbrechungen sofort eingeleitet. Die Mikroinstruktionsfolge wird unterbrochen, da eine Fortsetzung des Programms zu fehlerhaften Ergebnissen führen könnte.
E/A- und EXT-Unterbrechungen werden nach Ablauf der Mikroinstruktionsfolge eingeleitet. Die letzte Mikroinstruktion einer solchen Folge dient immer zur Feststellung, ob während der Ausführung der Mikroinstruktionsfolge Anforderungen für E/A- oder EXT-Unterbrechungen aufgetreten sind.
Eine MON RUF-Unterbrechung wird, wie bereits erwähnt, nach Ablauf der Mikroinstruktionsfolge eingeleitet.
Durch die Anwendung der PSW wird es möglich, mehrere gleichzeitig auftretende Unterbrechungsanforderungen zu bearbeiten, das Unterbrechungsprograrnm höchster Dringlichkeit zuerst auszuführen und die Informationen zu speichern, die für die Unterbrechungsprogramme geringerer Dringlichkeit erforderlich sind. Treten in dem beschriebenen Unterbrechungssystem mehrere, eine Unterbrechung erfordernde Bedingungen gleichzeitig auf, so werden nacheinander das alte Problemprogramm-PSW im Hauptspeicher gespeichert, das einer ersten Unterbrechung (niedrigste Dringlichkeit) entsprechende neue PSW in den Arbeitsspeicher übergeführt, dieses erste neue PSW, nachdem es entsprechend den Unterbrechungsbedingungen geändert und vervollständigt wurde, wieder in den Hauptspeicher eingespeichert, das nächste nue PSW, das dem in der Dringlichkeitsreihenfolge nächsten Unterbrechungsprogramm zugeordnet ist, in den Arbeitsspeicher übergeführt usw. Die Ausführung von Instruktionen wird wieder aufgenommen unter der Kontrolle des PSW, das als letztes aus dem Hauptspeicher in den Arbeitsspeicher übergeführt wurde, also dem Unterbrechungsprogramm höchster Dringlichkeit entspricht; die Reihenfolge der Ausführung der Untcrbrechungsprogramme ist derjenigen entgegengesetzt, in der die PSW überführt wurden.
Im Hauptspeicher sind zehn Spcichcrstcllcn von je 64 Bits den verschiedenen PSW fest zugeordnet.
209 624/373
10
Die PSW, für welche diese Stellen vorgesehen sind, werden wie folgt bezeichnet:
I. Altes EXT PSW
II. Neues EXT PSW
III. Altes E/A PSW
IV. Neues E/A PSW
V. Altes MASCH PRUEF PSW
VI. Neues MASGH PRUEF PSW
VII. Altes PROG PRUEF PSW
VIII. Neues PROG PRUEF PSW
IX. Altes MON RUF PSW
X. Neues MON RUF PSW
Wenn eine Unterbrechung eingeleitet wird, wird das aktive Problemprogramm-PSW, nachdem es entsprechend den Unterbrechungsbedingungen geändert und vervollständigt wurde, als altes PSW in der entsprechenden Hauptspeicherstelle gespeichert. Für eine PROG PRÜF-Unterbrechung wird das alte PSW beispielsweise in die Speicherstelle VII »altes PROG PRÜF-PSW« eingegeben. Die meisten Bits des PSW werden unverändert, d. h. so, wie sie im Arbeitsspeicher enthalten waren, in den Hauptspeicher übergeführt; der Bedingungscode jedoch muß, wie bereits erklärt, vorher decodiert werden.
Wenn ein altes PSW gespeichert wird, ist der Unterbrechungscode jeweils in den Bitpositionen 16 bis 3 t enthalten. Diese Code definiert die Gründe für die Unterbrechung wie folgt:
1. Für eine EXT-Unterbrechung definiert der Code, welche externe Einheit die Unterbrechung verursachte.
2. Für eine MON RUF-Unterbrechung bildet der Code die Information, die, vom MON PROG decodiert, den Grund für die MON RUF-Instruktion bestimmt.
3. Für eine PROG PRÜF-Unterbrechung definiert der Code die durch ein fehlerhaftes Programm entstandene Bedingung, die eine Unterbrechung erforderlich macht.
4. Für eine MASCH PRÜF-Unterbrechung ist der Code immer »0«.
5. Für eine E/A-Unterbrechung definiert der Code den Kanal und die Einheit, die die Unterbrechung anforderten.
Nachdem das alte PSW vollständig in die durch die Art der Unterbrechung bestimmte Speicherstelle des Hauptspeichers eingegeben worden ist, wird das neue PSW in die für das jeweils aktive PSW vorgesehene Speicherstelle des Arbeitsspeichers übergeführt. Wenn z. B. ein altes PSW in die Speicherstelle IV »altes PROG PRÜF PSW« eingespeichert wurde, wird das neue PSW, das zur Kontrolle des PROG PRÜF-Unterbrechungsprogramms dient, der Speicherstelle VIII »neues PROG PRÜF PSW« entnommen. Für das neue PSW ist der Unterbrechungscode nicht erforderlich und wird daher nicht in den Arbeitsspeicher übernommen; der 2-Bit-Bedingungscode wird in die 4-Bit-Form decodiert, wie bereits erklärt. Jetzt enthält das neue PSW die Anfangsadresse und die Anfangsbedingungen für das Monitor-Programm, unter dessen Kontrolle das Unterbrechungsprogramm abläuft, und die Rechenanlage beginnt mit der Ausführung von Instruktionen, bis das Unterbrechungsprogramm beendet ist. Zu dieser Zeit wird das PSW, unter dessen Kontrolle das Unterbrechungsprogramm ausgeführt wurde, in die
40 ihm zugeordnete Speicherstelle des Hauptspeichers zurückgeführt. Anschließend wird das alte PSW, das zur Kontrolle des unterbrochenen Problemprogramms diente, in den Arbeitsspeicher eingegeben, und die Rechenanlage setzt das Problemprogramm an der Stelle fort, an der es unterbrochen wurde.
Das Diagramm der Fig. 4 zeigt die Anwendung der PSW für den Fall, daß zwei Unterbrechungen, EXT und E/A, gleichzeitig angefordert werden. Es sei angenommen, daß beide Unterbrechungen zur Zeit der Anforderung durch die entsprechenden Maskenbits als »erlaubt« bestimmt wurden, die entsprechenden Unterprogramme also in der Reihenfolge ihrer Dringlichkeit auszuführen sind.
Die in der Spalte 4OA angegebenen Zahlen entsprechen den verschiedenen Operationsschritten, die für das angenommene Beispiel erforderlich sind. In den Spalten 40 B und 4OC ist gezeigt, welches Programm oder Unterprogramm während der einzelnen Schritte jeweils ausgeführt wird und welches PSW als aktives PSW im Arbeitsspeicher enthalten ist. Die verschiedenen Programme, Problemprogramm, EXT-Unterbrechung, und E/A-Unterbrechung, sind durch unterschiedliche Schraffierungen in Übereinstimmung mit den für die Blöcke 41, 42 und 43 angegebenen Erläuterungen dargestellt. Die Doppelspalten 4OD bis 40// stellen die Paare der den verschiedenen Unterbrechungsarten fest zugeordneten Speicherstellen des Hauptspeichers dar, die zur Speicherung der nichtaktiven PSW dienen. Ein solches Paar der Speicherstellen I bis X ist jeweils für die alten und neuen PSW einer Unterbrechungsart vorgesehen, wie I und II für EXT-Unterbrechungen, III und IV für E/A-Unterbrechungen usw. Der Einspeicherung eines PSW in die »alte« Speicherstelle eines Paares folgt automatisch das Auslesen der zugehörigen »neuen« Speicherstelle. Es folgt eine ausführliche Beschreibung der Operationsschritte 1 bis 12.
Schritt 1
Ausführung eines Problemprogramms unter der Kontrolle eines Problemprogramm-PSW, das im Arbeitsspeicher enthalten ist. Die »alten« PSW-Speicherstellen im Hauptspeicher (ungerade Zahlen I, III usw.) sind leer, während die »neuen« PSW-Speicherstellen (gerade Zahlen TI, IV usw). die den verschiedenen Unterbrechungsunterprogrammen entsprechenden PSW enthalten.
Schritt 2
Während der Ausführung des Problemprogramms werden gleichzeitig zwei erlaubte Unterbrechungen unterschiedlicher Dringlichkeit angefordert: eine EXT-Unterbrechung (niedrigere Dringlichkeit) und eine E/A-Unterbrechung (höhere Dringlichkeit). Das Problemprogramm-PSW wird als altes PSW in die Speicherstelle I übergeführt; dies ist die Speicherstelle, die der Unterbrechung niedrigerer Dringlichkeit der beiden angeforderten Unterbrechungen entspricht.
Schritt 3
Das neue EXT-Unterbrechungs-PSW wird der Speicherstelle II entnommen und in den Arbeitsspeicher übergeführt. Da noch eine weitere Unterbrechung (höhere Dringlichkeit) auf die Ausführung wartet, wird nicht mit der Ausführung des EXT-Unterbrechungsprogramms begonnen.
Schritt 5
Das EXT-Unterbrechungs-PSW wird als altes PSW in die Speicherstelle III übergeführt; dies ist die Speicherstelle, die der Unterbrechung höherer Dringlichkeit entspricht.
Schritt 5
Das neue E/A-PSW wird aus der Speicherstelle IV ausgelesen und in den Arbeitsspeicher eingespeichert. Da keine weiteren Unterbrechungen angefordert sind, beginnt die Ausführung des E/A-Unterbrechungsprogramms.
Schritt 6
Ausführung des E/A-Unterbrechungsprogramms unter der Kontrolle des im Arbeitsspeicher enthaltenen E/A-PSW.
Schritt 7
Nach Abschluß des E/A-Unterbrechungsprogramms wird das E/A-Unterbrechungsprogramms wird das E/A-PSW in die ihm zugeordnete Speicherstelle IV zurückgeleitet.
Schritt 8
Das EXT-PSW wird automatisch aus der Speicherstelle III ausgelesen und in den Arbeitsspeicher eingespeichert. Beginn des EXT-Unterbrechungsprogramms.
Schritt 9
Ausführung des EXT-Unterbrechungsprogramms unter der Kontrolle des im Arbeitsspeicher enthaltenen EXT-PSW.
Schritt 10
Nach Abschluß des EXT-Unterbrechungsproprogramms wird das EXT-PSW in die ihm zugeordnete Speicherstelle II zurückgeleitet.
Schritt 11
Das Problemprogramm-PSW wird aus der Speicherstelle I ausgelesen und in den Arbeitsspeicher eingespeichert. Die Ausführung des Problemprogramms wird an der Stelle wieder aufgenommen, an der es durch den Schritt 2 unterbrochen worden war.
Schritt 12
Ausführung des Problemprogramms unter der Kontrolle des im Arbeitsspeicher enthaltenen Problemprogramm-PSW.
Die Arbeitsweise der verschiedenen PSW wurde für den Fall von zwei gleichzeitig auftretenden Unterbrechungsanforderungen beschrieben.
Fälle, in denen nur eine einzelne Unterbrechung erforderlich wird oder in denen ein bereits ablaufendes Unterbrechungsprogramm zu unterbrechen ist, werden entsprechend behandelt und hier daher nicht weiter erläutert. Das gleiche gilt für andere Unterbrechungsarten als die im Beispiel gewählten.
F i g. 5 zeigt ein Blockdiagramm der in F i g. 1 mit 11 bezeichneten Schaltung, die für die Maskenoperation verwendet wird, welche zur Bestimmung dient, ob eine angeforderte Unterbrechung zum gegenwärtigen Zeitpunkt stattfinden kann, d. h. erlaubt ist, oder nicht. Die gezeigte Schaltung ist auf die Behandlung von E/A- und EXT-Unterbrechungen beschränkt, die von den E/A-Einheiten über die Kanäle 120 bis 126 und von den externen Einheiten über den Kanal 127 angefordert werden.
Wie bereits erwähnt, werden die Bits der Systemmaske der aktiven PSW 26 zur Bestimmung benutzt, ob eine angeforderte E/A- oder EXT-Unterbrechung erlaubt ist. Wenn das dem die Unterbrechung anfordernden Kanal entsprechende Bit (Bit 0 für den
ίο Kanal 120, Bit 1 für den Kanal 121, usw.) »1« ist, bedeutet dies, daß die Unterbrechung erlaubt ist; eine »0« würde andeuten, daß die Unterbrechung wenigstens zeitweilig zurückgestellt werden muß.
Das aktive PSW 26 ist vollständig im Arbeitsspeicher 3 gespeichert. Die Bits der Systemmaske sind darüber hinaus in den zugeordneten Verriegelungsschaltungen 500 bis 507 enthalten, wobei diese Schaltungen sich im Ein-Zustand befinden, wenn das entsprechende Maskenbit »l« ist, sie sind im Aus-Zustand, wenn das Bit »0« ist. Für jedes Maskenbit bzw. für jeden der Unterbrechungskanäle 120 bis 127, ist eine der UND-Schaltungen 530 bis 537 vorgesehen. Die Eingänge dieser UND-Schaltungen sind über die Leitungen 510 bis 517 mit den entsprechenden Verriegelungsschaltungen und über die Leitungen 520 bis 527 mit den entsprechenden Unterbrechungskanälen verbunden. Durch eine im Ein-Zustand befindliche Verriegelungsschaltung wird auf die eine Eingangsleitung der zugehörigen UND-Schaltung ein Potential gelegt, das die UND-Schaltung derart vorbereitet, daß ein über die andere Eingangsleitung vom entsprechenden Unterbrechungskanal kommendes Signal die UND-Schaltung passiert. Diese auf den Ausgangsleitungen 540 bis 547 der UND-Schaltungen erscheinenden Signale dienen zur Anzeige von erlaubten Unterbrechungsanforderungen. Die in Fig. 5 gezeigte Schaltung liefert außerdem auf den Ausgangsleitungen 57 bzw. 58 Signale »Unterbrechung angefordert« (UNT ANGEF) und »externe Unterbrechung angefordert« (EXT AN-GEF), die der in F i g. 6 gezeigten Schaltung zugeführt werden und zur Anzeige dienen, daß eine Unterbrechungsanforderung irgendeiner Art bzw. eine Anforderung für eine externe Unterbrechung vorliegt. Das Signal UNT ANGEF erscheint am Ausgang der ODER-Schaltung 56, deren Eingangsleitungen mit den Leitungen 540 bis 547 verbunden sind.
Da eine Mehrzahl von E/A-Kanälen 120 bis 126 angeschlossen ist, mehrere E/A-Unterbrechungsanforderungen daher gleichzeitig auftreten können, muß eine Prioritätsreihenfolge dieser Kanäle bestimmt werden, wenn nicht alle Kanäle mit nur einer Ausnahme durch die Maskenbits 0 bis 6 des aktiven PSW als unerlaubt definiert werden. Die für diese Prioritätsbestimmung erforderliche Schaltung wird jedoch nicht mehr beschrieben, da sie nicht einen wesentlichen Teil der vorliegenden Erfindung darstellt.
Die F i g. 6 zeigt ein Blockdiagramm der in F i g. 1 mit 10 bezeichneten Steuerschaltung, die zur Steuerung der verschiedenen, beim gleichzeitigen Auftreten mehrerer Unterbrechungsanforderungen erforderlichen PSW-Operationen dient. Diese Schaltung bestimmt die durch den Aufbau der Anlage vorgegebene Prioritätsreihenfolge, in der die Unterbrechungsprogranime verschiedener Art ausgeführt werden.
Block 60 stellt die Schaltungen dar, die unter der direkten Kontrolle einer Folge von Mikroinstruktionen der zu bearbeitenden Programme steuert. Diese Operationen werden entweder durch ein am Anfang eines Problemprogramms auf die Leitung 61 gegebenes Signal eingeleitet oder durch ein Signal auf der Leitung 62; letzteres erscheint nach vollständiger Ausführung einer Makroinstruktion, wenn keine Unterbrechungsanforderung vorliegt, oder am Anfang eines Unterbrechungsprogramms. Die von der Schaltung 60 gesteuerten Operationen umfassen auch die laufend erfolgenden Änderungen und Vervollständigungen des aktiven PSW.
Wenn durch Signale auf den Leitungen 63 oder 64 die Anforderung für erlaubte MASCH PRUEF- oder PROG PRUEF-Unterbrechungen angezeigt wird, bewirkt die Schaltung 60 die sofortige Beendung der gerade ausgeführten Mikroinstruktionenfolge und liefert Signale auf den Ausgangsleitungen 65 bzw. 66. Diese Signale werden zu den durch die ao Blöcke 8OD und SOE dargestellten Schaltungen geleitet, die die entsprechenden Unterbrechungen einleiten. Wird durch eine vom Programmierer vorgesehene Instruktion eine MON-RUF-Unterbrechung eingeleitet, so erscheint ein Signal auf der Ausgangsleitung 67, welches, zur Schaltung 80 C geleitet, die erforderliche Unterbrechung bewirkt.
Die jeweils letzte Instruktion einer Mikroinstruktionsfolge erzeugt ein Signal auf der Ausgangsleitung 68, das zur Feststellung dient, ob während der Ausführung der Mikroinstruktionsfolge eine Anforderung für eine E/A- oder EXT-Unterbrechung gestellt wurde.
Die Blöcke 70 »Unterbrechung?« und 72 »Extern?« stellen einfache logische Schaltungen dar, die nach Eingang eines Signals auf den Leitungen 68 bzw. 71 die folgende Funktion ausüben: • wenn ein UNT ANGEF- oder ein EXT ANGEF-Signal auf den Eingangsleitungen 57 bzw. 58 vorhanden ist, wird ein Signal auf die JA-Ausgangsleitung '71 bzw. 73 gegeben; wenn kein Anforderungssignal vorhanden ist, wird ein Signal auf der NEIN-Ausgangsleitung 62 bzw. 74 erzeugt.
Mit 8OA bis 80£ sind Schaltungen gekennzeichnet, die für die verschiedenen Unterbrechungsarten EXT, E/A, MON RUF, PROG PRUEF und MASCH PRUEF unter der Kontrolle von Mikroinstruktionen die folgenden Operationen steuern: Vervollständigung des aktiven PSW mit Informationen, die die anfordernde Einheit und den Grund für die Unterbrechung definieren; "Übertragung des aktiven PSW vom Arbeitsspeicher in eine der »alten« PSW-Speicherstellen, wobei diese Speicherstelle durch die Art der Unterbrechung bestimmt ist: Speicherstelle »altes EXT PSW« für Schaltung 8OA »altes E/A PSW« für 80S, »altes MON RUF PSW« für 8OC, »altes PROG PRUEF. PSW« für 8OD und »altes MASCH PRUEF PSW« für 8OE; Auslesen des neuen PSW aus der Speicherstelle des Hauptspeichefs, die der Stelle, in die das alte PSW eingespeichert wurde, zugeordnet ist, und Überführung des neuen PSW in den Arbeitsspeicher. Nach Abschluß dieser Operationen erscheint ein Ausgangssignal auf der der Schaltung 80 entsprechenden Leitung 68 A, 68 B, 68 C, 68 D bzw. 68 E.
Die Arbeitsweise der in F i g. 6 gezeigten Schaltungsanordnungen wird nachfolgend an Hand von drei Beispielen erklärt:
.1. Keine Unterbrechung angefordert.
2. Eine einzelne Unterbrechungsanforderung.
3. Mehrere gleichzeitig auftretende Unterbrechungsanforderungen.
Beispiel 1
Es sei angenommen, daß während einer Makroinstruktion, die unter der Steuerung der entsprechenden Mikroinstruktionsfolge ausgeführt wurde, in der Anlage keine Unterbrechungsbedingungen auftraten und somit keine Unterbrechungsanforderung gestellt wurde.
Da keine MASCH PRUEF- oder PROG PRUEF-Unterbrechungsanforderungen gestellt wurden, welche eine sofortige Beendigung der Mikroinstruktionsfolge bewirkt hätten, wird die letzte Mikroinstruktion der Folge zur Feststellung benutzt, ob eine Anforderung für eine E/A- oder EXT-Unterbrechung vorliegt. Das auf der Leitung 68 erscheinende Abfragesignal wird zur Schaltung 70 geleitet. Diese Schaltung führt die bereits erwähnte einfache logische Funktion. aus, um eines der Ausgangssignale JA oder NEIN auf den Leitungen 71 bzw. 62 zu erzeugen. Da angenommen wurde, daß keine Unterbrechungsanforderung vorliegt, ist auf der Eingangsleitung UNT AN-GEF 57 kein Signal vorhanden, und die Schaltung 70 gibt ein Signal auf die NEIN-Ausgangsleitung 62. Dieses Signal wird zur Steuerschaltung 60 geleitet und bewirkt hier die Ausführung der nächsten Makroinstruktion des laufenden Programms.
Beispiel 2
Es sei angenommen, daß während der Ausführung einer zu einem Problemprogramm gehörenden Makroinstruktion eine E/A-Unterbrechung vom Kanal 121 (s. Fig. 5) angefordert wurde und daß das Bit 1 der Systemmaske der aktiven PSW, das diesem Kanal entspricht, eine »1« ist und somit die Unterbrechung als erlaubt definiert.
Da keine MASCH PRUEF- oder PROG PRUEF-Unterbrechungsanforderungen gestellt wurden, die eine sofortige Beendigung der Mikroinstruktionsfolge bewirkt hätten, wird die letzte Mikroinstruktion der Folge zur Feststellung benutzt, ob eine Anforderung für eine E/A- oder EXT-Unterbrechung vorliegt. Das Abfragesignal auf Leitung 68 wird zur Schaltung 70 geleitet. Da angenommen wurde, daß eine Anforderung für eine erlaubte Unterbrechung gestellt wurde und dieses durch ein Signal auf der Leitung
57 angezeigt wird, erzeugt die Schaltung 70 auf der JA-Ausgangsleitung 71 einen Impuls, der zur Schaltung 72 geführt wird. Diese Schaltung, die beim Auftreten einer Anforderung für eine EXT-Unterbrechung ein Signal auf der Leitung 58 erhält, übt die erwähnte Funktion, die der der Schaltung 70 entspricht, aus und liefert ein JA- oder NEIN-Ausgangssignal auf den Leitungen 73 bzw. 74. Da angenommen wurde, daß nur eine E/A-Unterbrechung angefordert wurde, liegt kein Signal auf der Leitung
58 und es erscheint ein" Ausgangssignal auf der NEIN-Leitung 74. Für die in F i g. 6 gezeigte Anordnung bedeutet dieses Signal, daß eine' E/AUnterbrechung angefordert wurde; dieses wird an Hand der folgenden Betrachtung klar: ein Signal auf Leitung 57 zeigt an, daß eine Anforderung für eine Unterbrechung irgendeiner Art gestellt wurde, und da in der vorliegenden, in Fig. 6 gezeigten Anord-
15 16
nung nur zwei verschiedene Arten von Unterbre- Da keine Anforderungen für MASCH PRUEF-chungsanforderungen abgefragt werden und ferner oder PROG PRUEF-Unterbrechungen aufgetreten die Abwesenheit eines Signals auf Leitung 58 an- sind, die eine sofortige JBeendigumng der Mikroingibt, daß die vorliegende Anforderung sich nicht auf struktionsfolge bewirkt haben würde, dient die letzte eine EXT-Unterbrechung bezieht, muß es sich not- 5 Mikroinstruktion der Folge zur Feststellung, ob eine wendigerweise um eine Anforderung für eine E/A Anforderung für eine E/A- oder eine EXT-Unter-Unterbrechung handeln. brechung vorliegt. Das Abfragesignal auf der Lei-Die Abfrage der verschiedenen Arten von Unter- tung 68 wird zur Schaltung 70 geleitet, die, wie im brechungsanforderungen wird in der Reihenfolge Beispiel 2 erläutert, ein JA-Ausgangssignal auf der zunehmender Dringlichkeit der Unterbrechungen io Leitung 71 entwickelt. Auf den beiden Eingangsausgeführt. In der in Fig. 6 gezeigten Anordnung leitungen 58 und 71 der Schaltung 72 sind Signale werden nur zwei verschiedene Dringlichkeitsstufen vorhanden, so daß diese Schaltung ebenfalls ein JA-in Betracht gezogen, jedoch kann, ohne das Prinzip Ausgangssignal auf die Leitung 73 gibt, das zur des Verfahrens zu ändern, ein weiter unterteiltes Schaltung HOA weitergeleitet wird. Diese Schaltung Dringlichkeitsschema verwendet werden; so· könnten 15 bewirkt die Einspeicherung des aktiven PSW in die z. B. den verschiedenen E/A-Kanälen unterschied- Hauptspeicherstelle »altes EXT PSW« und die darliehe Prioritäten zugeordnet werden, denen durch auffolgende Überführung des neuen PSW, das für zusätzliche Abfrageschaltungen (entsprechend den die Ausführung des EXT-Programms erforderlich Schaltungen 70 und 72) Rechnung getragen werden ist, von der Hauptspeicherstelle »neues EXT PSW« kann. 20 zum Arbeitsspeicher. Nach Abschluß dieser Über-
Zum angenommenen Beispiel zurückkehrend: das tragungen wird das auf Leitung 6SA entwickelte Si-NEIN-Signal auf der Leitung 74 wird zur Schaltung gnal der Schaltung 70 zugeführt und die Abfrageope-8OJB geleitet, die die Vervollständigung des aktiven ration wiederholt. Da eine zweite Unterbrechungs-PSW steuert und die Überführung des dem unter- anforderung vorliegt, ist auf Leitung 57 ein Signal brochenen Programm zugeordneten alten PSW vom 25 vorhanden, und die Schaltung 70 liefert ein JA-Aus-Arbeitsspeicher in die Hauptspeicherstelle »altes E/A gangssignal auf Leitung 71. Da die Anforderung für PSW« veranlaßt. Da die Abfrage nach EXT- und die EXT-Unterbrechung durch die Überführung des E/A-Unterbrechungsanforderungen am Ende einer entsprechenden PSW in den Arbeitsspeicher bereits Makroinstruktion stattfindet, enthält das aktive PSW berücksichtigt wurde, liegt kein Signal mehr auf der zu dieser Zeit alle Informationen, die zur Wiederauf- 30 Leitung 58, und die Schaltung 72 entwickelt ein nähme des unterbrochenen Programms nach Ab- NEIN-Ausgangssignal auf der Leitung 74. Dieses schluß des Unterbrechungsprogramms erforderlich zeigt an, wie bereits erläutert, daß eine Anforderung sind. Neben der Einspeicherung des aktiven PSW für eine E/A-Unterbrechung vorliegt, und die Schalals altes PSW in den Hauptspeicher sind keine weite- tung 80S steuert die Einspeicherung des alten PSW ren Datenübertragungs- oder Einspeicherungsopera- 35 in die Hauptspeicherstelle »altes E/A PSW«. Es wird tipnen erforderlich. Anschließend wird, weiterhin darauf hingewiesen, daß, dieses alte PSW das dem durch die Schaltung 80 B gesteuert, das für das E/A- noch nicht ausgeführten EXT-Unterbrechungspro-Unterprogramm erforderliche neue PSW von der gramm zugeordnete Kontrollwort ist. Dieses PSW Hauptspeicherstelle »neues E/A PSW« ausgelesen enthält alle Informationen, die erforderlich sind, um und in den Arbeitsspeicher übergeführt. 40 die Ausführung des EXT-Unterbrechungsprogramms
Nach Ausführung dieser PSW-Übertragungen wird . einzuleiten, sobald es wieder in den Arbeitsspeicher
das Ausgangssignal auf der Leitung 68 B zur Schal- übergeführt wird. Dieses geschieht, wie weiter unten
tung 70 geleitet und die oben erläuterte Abfrage- erklärt werden wird, nach Abschluß des E/A-
operation wiederholt. Da angenommen worden ist, Unterbrechungsprogramms, das gegenüber der EXT-
daß keine weiteren Unterbrechungsanforderungen ge- 45 Unterbrechung von höherer Dringlichkeit ist.
stellt wurden, wird ein Signal auf der NEIN-Aus- Nach Einspeicherung des alten (EXT) PSW wird
gangsleitung 62 erzeugt und zur Schaltung 60 weiter- das neue, für das E/A-Unterbrechungsprogramm er-
. geleitet, die ihrerseits die Ausführung des E/A- forderliche PSW aus der Hauptspeicherstelle »neues
Unterbrechungsprogramms einleitet. E/A PSW« ausgelesen und in den Arbeitsspeicher
Nach Abschluß dieses Unterprogramms wird, 50 übergeführt.
wenn keine weitere Unterbrechung angefordert Das nach Abschluß dieser Operation auf der Leiwurde, das aktive PSW, welches das dem E/A- tung 68 B erscheinende Signal wird an die Schaltung Unterbrechungsprogramm zugeordnete PSW ist, in 70 gegeben, und die Abfrageoperation wird erneut die Hauptspeicherstelle »neues E/A PSW« einge- wiederholt. Da angenommen wurde, daß keine weitespeichert, und das PSW, das die für die Wiederauf- 55 ren Unterbrechungsanforderungen gestellt wurden, nähme des unterbrochenen Problemprogramms not- erscheint ein Signal auf der NEIN-Ausgangsleitung wendigen Informationen enthält, wird aus der Spei- 62, das, zur Schaltung 60 geführt, die Ausführung cherstelle »altes E/A PSW« ausgelesen und in den des E/A-Unterbrechungsprogramms einleitet. Arbeitsspeicher übergeführt. Anschließend wird die Nach Abschluß des E/A-Unterbrechungspro-Ausführung des Problemprogramms fortgesetzt. 60 gramms und unter der Annahme, daß keine weiteren . . Unterbrechungsanforderungen aufgetreten sind, wird .Beispiel 3 das aktive (E/A) p§w in die Hauptspeicherstelle
Es sei angenommen, daß während der Ausführung »neues E/A PSW« eingespeichert und das PSW für einer zu einem Problemprogramm gehörenden Ma- das EXT-Unterbrechungsprogramm aus der Speikroinstruktion zwei Anforderungen für Unterbre- 65 cherstelle »altes E/A PSW« ausgelesen und dem chungen unterschiedlicher Dringlichkeit, und zwar Arbeitsspeicher zugeführt. Hierauf erfolgt die Ausfür eine E/A- und für eine EXT-Unterbrechung, auf- führung des zweiten Unterbrechungsprogramms, getreten sind und als erlaubt bestimmt wurden. Nach Abschluß auch dieses Programms und wie-
derum annehmend, daß keine weiteren Unterbrechungsanforderungen aufgetreten sind, wird das jetzt aktive (EXT) PSW in die Hauptspeicherstelle »neues EXT PSW« eingespeichert und das PSW, das die für die Wiederaufnahme des unterbrochenen Problemprogramms erforderlichen Informationen enthält, der Speicherstelle »altes EXT PSW« entnommen und in die Arbeitsspeicher eingegeben. Hierauf wird die Ausführung des unterbrochenen Problemprogramms forgesetzt.
Bei dem beschriebenen Verfahren werden, wenn gleichzeitig mehrere Unterbrechungsanforderungen auftreten, die entsprechenden PSW in der Reihenfolge zunehmender Dringlichkeit der Unterprogramme eingespeichert, das PSW niedrigster Priorität wird zuerst berücksichtigt; hingegen erfolgt die Ausführung der Unterprogramme in der entgegengesetzten Reihenfolge, d. h. das Unterprogramm höchster Dringlichkeit wird zuerst ausgeführt.
Mit Hilfe des angegebenen Verfahrens ist es auch möglich, Unterbrechungsanforderungen zu berücksichtigen, die während der Ausführung eines Unterbrechungsprogramms anderer Art auftreten. Wenn die angeforderte zweite Unterbrechung als erlaubt bestimmt wurde, ermöglicht das System die Unterbrechung des ablaufenden ersten Unterbrechungsprogramms.
Aus dem Vorangegangenen wird ersichtlich, daß, sobald das Monitorprogramm die Ausführung eines Unterbrechungsprogramms eingeleitet und begonnen hat, dieses Unterprogramm nicht durch ein Unterprogramm der gleichen Art unterbrochen werden darf. Würde dieses zugelassen, so würden alle Informationen über das unterbrochene, ursprünglich ablaufende Problemprogramm verloren gehen, da das dem ersten Unterbrechungsprogramm zugeordnete PSW in die »alte« PSW-Speicherstelle eingegeben würde, die bereits das PSW des ursprünglichen Problemprogramms enthält. Diese Situation kann durch geeignete Anwendung der Maskenbits der PSW verhindert werden: handelt es sich beispielsweise bei den nacheinander auftretenden Unterbrechungsanforderungen um E/A-Unterbrechungen, muß die Systemmaske des neuen E/A-PSW, das dem ersten Unterbrechungsprogramm entspricht, alle von anderen E/A-Kanälen angeforderten Unterbrechungen als unerlaubt definieren. Auf diese Weise kann keine weitere E/A-Ünterbrechung eingeleitet werden, bevor nicht das gegenwärtig ablaufende E/A-Unterprogramm zu Ende geführt ist.
MASCH PRUEF- und PROG PRUEF-Unterbrechungen werden sofort nach Auftreten der die Unterbrechungen erfordernden Bedingungen eingeleitet. Auch hier wird das der Kontrolle des zu unterbrechenden Programms dienende alte PSW in den Hauptspeicher übergeführt und das neue, für die Ausführung des Unterbrechungsprogramms erforderliche PSW in den Arbeitsspeicher eingegeben. Das gleiche gilt für die MON RUF-Unterbrechungen, die sich lediglich darin unterscheiden, daß sie durch vom Programmierer vorgesehene Makroinstruktionen eingeleitet werden.
Die durch den in Fig. 6 gezeigten Aufbau der Anlage vorgegebene Prioritätsreihenfolge kann leicht geändert werden, indem man die durch die in den PSW enthaltenen Masken gegebenen Möglichkeiten ausnutzt. Soll z. B. ein Unterbrechungsprogramm, das entsprechend der Schaltung eine niedrigere Priorität aufweist, als ein zweites, gleichzeitig angefordertes Unterbrechungsprogramm, vor diesem zweiten Unterbrechungsprogramm höherer Priorität zur Ausführung gelangen, so kann man die Maskenbits des dem Unterprogramm niedrigerer Priorität entsprechenden PSW, das als erstes in den Arbeitsspeicher eingegeben wird, so wählen, daß das dem die Unterbrechung höherer Priorität anfordernden Kanal entsprechende Maskenbit zu »0« gemacht wird, wodurch diese Unterbrechung als nicht erlaubt definiert wird. Hierdurch ist ein sehr vielseitiges und leicht variierbares Unterbrechungsverfahren gegeben, das Unterbrechungen unterschiedlicher Dringlichkeit in einer vom Programmierer oder vom Programm bestimmten Reihenfolge auszuführen gestattet.

Claims (2)

Patentansprüche:
1. Datenverarbeitungsanlage mit vorranggesteue'rter Programmunterbrechung, mit einem aktiven Programmstatuswort-Register (PSW-Register) für die Aufnahme der das laufende Programm beschreibenden Daten (Programmstatuswort) und mit einer Steuerschaltung zur Steuerung des Programmablaufs und zur Entgegennahme von Unterbrechungsanforderungen, gekennzeichnet durch mehrere inaktive PSW-Register für die im Bedarfsfall gleichzeitige Aufname von Daten zur Beschreibung bereitstehender Unterprogramme oder unterbrochener Programme, durch von der Steuerschaltung (60) zur an sich bekannten Einleitung je eines Unterprogramms unterschiedlicher Priorität erregbare Steuervorrichtungen (80), die in bekannter Weise je einem Unterprogramm zugeordnet sind und die ferner bei Erregung das aktive Programm-■ statuswort ergänzen, in das dem betreffenden Unterprogramm zugeordnete inaktive PSW-Register abspeichern und das diesem Unterprogramm zugeordnete Programmstatuswort in das aktive PSW-Register übertragen.
2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß jedem bereitstehenden Unterprogramm ein Registerpaar (4OD bis 40//) zugeordnet ist, von denen das eine Register (z. B. 40DI) für die Aufnahme des dem zu unterbrechenden Programm zugehörigen Programmstatuswort vorgesehen ist und das andere (z. B. 40 DII) das dem unterbrechenden Unterprogramm zugehörige und in das aktive PSW-Register zu übertragende Programmstatuswort enthält, wobei beim gleichzeitigen Vorliegen einer weiteren Ünterbrechungsanforderung höherer Priorität das Programmstatuswort des zunächst berücksichtigten Unterprogramms aus dem aktiven PSW-Register wieder entnommen und in das eine Register (z. B. 40 EIII) des dem zweiten Unterprogramm zugeordneten Registerpaares (z.B. 40E) eingetragen und aus ,dem anderen Register (z. B. 40 £IV) des zweiten Registerpaares das dem zweiten Unterprogramm zugehörige Programmstatuswort zum aktiven PSW-Register übertragen wird und daß weitere gleichzeitige Unterbrechungsanforderungen in gleicher Weise behandelt werden und der Abbau der Anforderungen in umgekehrter Folge vorgenommen wird.

Family

ID=

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2417795A1 (de) * 1973-04-13 1974-10-24 Int Computers Ltd Datenverarbeitungsanlage
DE2507405A1 (de) * 1974-02-20 1975-08-21 Cii Honeywell Bull Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2417795A1 (de) * 1973-04-13 1974-10-24 Int Computers Ltd Datenverarbeitungsanlage
DE2507405A1 (de) * 1974-02-20 1975-08-21 Cii Honeywell Bull Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage

Similar Documents

Publication Publication Date Title
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
DE2355993C3 (de) Programmierbare Datenverarbeitungsanlage
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2322674C3 (de) Mikroprogramm-Steuereinrichtung
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2714805A1 (de) Datenverarbeitungssystem
DE2411963B2 (de) Datenverarbeitungsanlage
DE1524239A1 (de) Verfahren zur Lokalisierung eines Fehlers in einer Anlage mit mindestens zwei parallel arbeitenden Rechengeraeten
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2339636A1 (de) Programmsteuereinrichtung
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE69130414T2 (de) Prozessor und Verfahren zur parallelen Verarbeitung
DE1269393B (de) Mikroprogramm-Steuerwerk
DE3043653A1 (de) Datenverarbeitungsanlage
DE2536622A1 (de) Mikroprogrammsteuerung mit flexibler auswahl von steuerworten
DE2364323C2 (de) Verfahren zur Behandlung von Unterbrechungsbedingungen in einer Datenverarbeitungsanlage
DE2245284A1 (de) Datenverarbeitungsanlage
DE2854400A1 (de) Anordnung zum wechsel zwischen verzahnt zu verarbeitenden programmen
DE2723706A1 (de) Einrichtung zum adressenvergleich
DE2906685A1 (de) Instruktionsdecodierer
DE2952163C2 (de) Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor
DE1499224C3 (de) Datenverarbeitungsanlage mit Kellerspeichereinrichtungen
DE1499200C (de) Datenverarbeitungsanlage mit vorranggesteuerter Programmunterbrechung