DE2114128A1 - Datenverarbeitungssystem mit einer mehrstufigen Prioritaets-Unterbrechungseinrichtung - Google Patents

Datenverarbeitungssystem mit einer mehrstufigen Prioritaets-Unterbrechungseinrichtung

Info

Publication number
DE2114128A1
DE2114128A1 DE19712114128 DE2114128A DE2114128A1 DE 2114128 A1 DE2114128 A1 DE 2114128A1 DE 19712114128 DE19712114128 DE 19712114128 DE 2114128 A DE2114128 A DE 2114128A DE 2114128 A1 DE2114128 A1 DE 2114128A1
Authority
DE
Germany
Prior art keywords
storage area
gate
interrupt
area
pointer
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
DE19712114128
Other languages
English (en)
Inventor
Talmadge Richard Bennett
Pinnell Martin Coxwell
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
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2114128A1 publication Critical patent/DE2114128A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Description

Böblingen, 18. März 1971 jo~fr
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
Amtl. Aktenzeichen: Neuanmeldung
Aktenzeichen der Anmelderin: Docket UK 969 027
Datenverarbeitungssystem mit einer mehrstufigen Prioritäts-Unterbrechungseinrichtung
Die Erfindung betrifft ein Datenverarbeitungssystem mit einer mehrstufigen Prioritäts-Unterbrechungseinrichtung.
Bei den bisher bekanntgewordenen Datenverarbeitungssystemen war es nicht möglich, bestimmte Datenverarbeitungsoperationen zu unterbrechen, wenn sie einmal vom System gestartet worden waren. Zu solchen Routinen zählen vor allem jene, durch die gespeicherte Daten verändert werden sollen. Wenn solche Routinen unterbrochen werden, kann es dazu führen, daß die Daten nur unvollständig geändert werden und sie somit zu Fehlern führen, wenn sie bei der weiteren Verarbeitung benutzt werden. Daten die in dieser Weise benutzt werden, haben die Bezeichnung: "seriell wiederverwendbar".
Zur Erleichterung der Bezugnahme wird eine aufgerufene Datenverarbeitungsroutine, die das exklusive Recht des Zugangs zu einer Datenstruktur (das ist eine Anzahl von Datensätzen, die als Ganzes zu sehen sind und daher begrifflich zusammengefaßt sind) erfordert, als "Anforderer11 zu solchen Zeitpunkten bezeichnet, zu denen sie dieses Recht nicht besitzt. Als "Inhaber" wird dagegen eine angeforderte Datenverarbeitungsroutine bezeichnet, die dieses Recht zu dem betrachteten Zeitpunkt besitzt. Eine Datenstruktur, die einen Inhaber besitzt, kann auch als "besetzt"
109842/1651
- 2 bezeichnet werden.
Bei bekannten Datenverarbeitungssystemen, wie beispielsweise bei dem IBM System /360 Modell 44 kann das Ergebnis von Unterbrechungen, die gesperrt werden, nachdem einmal ein Inhaber aufgetreten ist, dazu führen, daß unerwünschte Zeitverluste bei der Verarbeitung im Datenverarbeitungssystem auftreten.
Es ist daher eine Aufgabe der vorliegenden Erfindung diesen Nachteil zu vermeiden und insbesondere die Unversehrtheit der "Inhaberschaft" aufrechtzuerhalten, wodurch das Risiko von beträchtlichen Zeitverlusten verringert wird.
Für ein Datenverarbeitungssystem mit einer mehrstufigen Prioritäts-Unterbrechungseinrichtung besteht die Erfindung darin, daß eine Pseudo-Unterbrechungseinrichtung vorgesehen ist, durch die eine Pseüdo-Unterbrechung erzeugt wird, welche die Bearbeitung des Anforderers einer Datenstruktur aussetzt und die Ausführung einer Routine des Inhabers dieser Datenstruktur bis zum Ende oder einem Punkt erzwingt, an welchem der Inhaber besagte Struktur freigibt, wenn ein Inhaber einer Datenstruktur bei der Ausführung einer Routine unterbrochen wird und anschließend ein von einer Unterbrechung mit höherer Priorität eingeleitetes Verfahren dieselbe Datenstruktur anfordert.
Weitere Merkmale, vorteilhafte Ausgestaltungen und Weiterbildungen des Gegenstandes der Erfindung sind den Unteransprüchen zu entnehmen.
Der mit der Erfindung erzielbare Vorteil liegt darin, daß eine Maschinenausstattung die "Toreingang"- und "Torausgang"-Funktionen mit Hilfe einer einzigen Instruktion, anstelle einer vollständigen Unterroutine durchführt. Hierdurch ergibt sich eine beträchtliche Verringerung der Ausführungszeit.
Die Maschinenausstattung gibt ferner einem Benutzer die Möglich-Docket UK 969 027 10 9 8 4 2/1651
2114T28
keit des direkten Eingangs in das System, ohne, wie üblich, diesen Eingang über einen Überwacher durchführen zu müssen.
Im folgenden wird die Erfindung anhand von durch Zeichnungen erläuterten Ausführungsbeispielen näher beschrieben. Es zeigen:
Fig. 1 ein Diagramm eines Prioritätsvektors für ein
neues PSW,
Fig. 2 ein Diagramm eines Unterbrechungs-Aufbewahrungs-
bereiches und
Fig. 3 ein Diagramm eines anderen Aüsführungsbeispieles
des ünterbrechungs-Aufbewahrungsbereiches.
I. ALLGEMEINE EINFÜHRUNG
Obwohl die vorliegende Erfindung ein Datenverarbeitungssystem betrifft sind in Wirklichkeit nur die Anordnungen für die Handhabung einer Unterbrechung von Interesse. Demzufolge ist die nachfolgende Beschreibung auf eine solche Unterbrechungseinrichtung gerichtet und als Grundsystem wird ein IBM System /360 Modell 44 angenommen. Ein solches System enthält ein Prioritäts-Unterbrechungssystem jedoch keine Unterbrechungsbehandlungseinrichtungen der nachstehend beschriebenen Art.
Im System /360 gehört zur Behandlung einer Unterbrechung die Speicherung des Zustandes der zentralen Verarbeitungseinheit (CPU) zum Zeitpunkt der Annahme der Unterbrechung, die Einnahme eines neuen Zustandes und die Einleitung der Unterbrechungsverarbeitung entsprechend diesem Zustand.
Der laufende Zustand eines Verfahrens zeigt sich bekanntlich teilweise in den im Speicher stehenden Daten und teilweise im Inhalt einzelner Register der CPU. Eine genaue Auflistung solcher einzelnen Register ändert sich von einem System zum anderen, grundsätz-
Docket UK 969 O27 109842/1651
lieh umfassen im System /360 diese Register jedoch ein Programm-Status-Wort-Register (PSW)-Register, allgemeine Register (G-Register) und Gleitkommaregister (FLP-Register). Bei einer Unterbrechung muß der gesamte unterbrochene Zustand im Speicher aufbewahrt werden, da der vorgeschriebene Registersatz benötigt wird, um den neuen Zustand wiederzugeben. Demzufolge wird der sich . auf das unterbrochene Verfahren beziehende Inhalt des angegebenen Registersatzes in einen Aufbewahrungsbereich des Speichers übertragen und dort aufbewahrt.
Der notwendige neue Zustand wird in die CPU eingegeben und ein neuer Aufbewahrungsbereich gewählt. Wenn das neue aus der Unterbrechung resultierende Verfahren selbst wieder unterbrochen wird, wird der obige Vorgang wiederholt. Wenn das neue Verfahren ohne Unterbrechung abgeschlossen ist, wird der abgeschlossene Zustand durch den Zustand ersetzt, der in dem zuletzt aufgefüllten Aufbewahrungsbereich steht und die Verarbeitung läuft weiter. Es wird also ganz allgemein eine Reihe von Aufbewahrungsbereichen mit sich dauernd ändernder Länge belegt, wobei die Länge mit jeder angenommenen Unterbrechung zu- und mit dem Abschluß eines Verfahrens jedesmal abnimmt. Diese Vorgänge werden manchmal auch als aufsteigend und absteigend bezeichnet.
Diese Arbeitsweise bietet keinerlei Schwierigkeiten, solange nicht das ausschließliche Zugriffsrecht zu einer Datenstruktur betroffen ist. Ist ein solches ausschließliches Zugriffsrecht jedoch betroffen, wird der Zugriff durch ein zu dieser Datenstruktur -gehörendes Tor geschützt.
Wenn ein Inhaber Zugriff zu einer Datenstruktur erhält, wird ein Tor geschlossen und wenn diese Datenstruktur dann angefordert wird, führt der Versuch, das geschlossene Tor zu durchlaufen, zur Erzeugung einer Pseudo-Unterbrechung. Dadurch wird der anfordernde Zustand in den Aufbewahrungsbereich für den laufenden Zustand eingegeben, ein neuer Aufbewahrungsbereich wird als laufender Aufbewahrungsbereich gewählt und der Inhaberzustand wieder
Docket UK 969 027 109842/1651
ORIGINAL INSPECTED
copy .-■ ■
21U 128
in die CPU eingegeben. Dieses Verfahren kann als "Aufwertung des Inhabers" bezeichnet werden und der neue Aufbewahrungsbereich für den laufenden Zustand als "aufgewerteter Aufbewahrungsbereich". Der Inhaber wird weiterbedient (verarbeitet), bis das Tor geöffnet wird. Zu diesem Zeitpunkt wird der laufende Zustand in der CPU, nämlich der des alten Inhabers in seinen ursprünglichen Aufbewahrungsbereich zurückgeführt. Der laufende Aufbewahrungsbereich wird dann freigegeben und der Zustand des anfordernden in die CPU eingegeben. Das führt dazu, daß das Tor erneut geschlossen wird. Wenn die Pseudo-Unterbrechung während ihrer Verarbeitung ebenfalls unterbrochen wird, bleibt das Tor geschlossen, so daß lediglich darauf zu achten ist, daß der Zustand des Inhabers aus seinem laufenden aufgewerteten Aufbewahrungsbereich entnommen werden muß, wenn ein weiterer Anforderer auftauchen sollte.
II. GENAUE BESCHREIBUNG - ERSTES AUSFÜHRUNGSBEISPIEL
Die nachfolgende Beschreibung bezieht sich auf ein System, welches sowohl bevorzugte als auch nicht bevorzugte Operationen hat, wobei die bevorzugten Operationen ungültig sind, solange das System nicht in einem sogenannten bevorzugten Zustand läuft. In der Praxis be deutet das, daß ein Aufgabenverteiler oder -regler bevorzugt sein kann oder nicht, da jeder Teil eines überwachungsprogrammes bevorzugt ist, während ein Benutzerprogramm grundsätzlich nicht bevorzugt ist.
(1) PRIORITÄTS-UNTSRBRECHUNGSANFORDERER
Die CPU verfügt über eine Anzahl von Prioritäts-Unterbrechungs-Anforderungsverriegelungen, zusammenfassend PIREQ genannt. Jede Verriegelung kann durch einen bestimmten Impuls von einer externen Schnittstelle gesetzt werden oder durch Ausführung der Instruktion "Unterbrechungsanforderung einstellen" (SIR). Die PIREQ-Verriegelungen werden gemeinsam zurückgestellt bei der "anfänglichen Programmladung" (IPL) und einzeln wenn die angeforderte Unterbrechung angenommen wird. Die PIREQ-Verriegelungen können auch durch Ausführung der Instruktion "Unterbrechungsanforderung
109842/165 1
Docket UK 969 027
"~~ ORiGiNAL INSPECTED
rückstellen" (RIR) zurückgestellt werden. Die Instruktionen SIE UND RIR sind beide bevorzugt. Für SIR werden die dem Einer-Bit im Speicheroperanden entsprechenden PIREQ-Riegel gesetzt und erzeugen eine oder mehrere laufende Unterbrechungen. Für RIR werden die den Einer-Bits im Speicheroperanden entsprechenden PIREQ-Riegel zurückgesetzt und heben die laufenden Unterbrechungen auf.
Wenn ein Unterbrechungs-Anforderungsriegel durch RIR zum selben Zeitpunkt zurückgestellt wird, zu welchem ein externes Signal versucht, diesen Anforderungsriegel zu setzen, läßt sich nicht vorher sagen, ob die Unterbrechung bestehen bleibt oder nicht, Laufende Unterbrechungsanforderungen, die dem Null-Bit im Speicheroperanden des RIR entsprechen, gehen jedoch durch die Ausführung der RZR-Instruktion niemals verloren.
(2) PRIQRITJiTS-UM^ERBRECHUIJGSSTUFENMASKS
Ein Steuerregister (mit der Bezeichnung PIMASK) ist dafür vorgesehen, Prioritäts-Unterbrechungsstufenmaskenbits zu liefern, und zwar eines für jede Stufe.
Der Registerinhalt kann geladen oder gespeichert werden durch die Instruktionen "Lade Steuerung" oder "Speichere Steuerung" und bei IPL auf Null zurückgestellt werden. Jedes Stufenmaskenbit entspricht im Verhältnis -1 ; I einem Prioritäts-Unterbrechungs-Anför- derungsriegel im PIBEQ. Eine angeforderte Unterbrechung bleibt bestehen (d.h. ihre Annahme wird ausgesetzt), wenn ihr StufenmaskenNull ist,
Mit PIMASK soll dem Programmierer die Möglichkeit gegeben werden, die Erkennung bestimmter Unterbrechungssignale zu ignorieren oder zu verschieben. Die Handhabung von PIMASK ist niemals erforderlich für die Systemfunktion der Verstärkung serieller Wiederverwendung von Daten.
Docket UK 969 027 109842/1651
: 21ΗΊ28
(3) ASYNCHRONE UNTERBRECHUNGSSTEÜERUNG
Ein Bit des PSW dient als asynchrone Unterbrechungsmaske (AIM-Bit) Solange dieses Bit auf Null steht, kann keine Priorität, E/A, externe- oder Aufzeichnungs-Wiedergewinnungsunterbrechung auftreten. Wenn dieses Bit auf Eins steht, können diese Unterbrechungen in Abhängigkeit von der Erfüllung der verschiedenen einzelnen Maskierungsbedingungen auftreten.
Das AIM-Bit kann verändert werden durch Unterbrechung mittels des "Lade PSW", durch "Setze Systemmaske" oder durch die Sonderinstruktionen "Sperre Unterbrechungen" und "Nehme Unterbrechungen wieder auf".
Die beiden zuletzt gegenannten Instruktionen sind nur im überwachungszustand gültig. Die Ausführung der Instruktion "Sperre Unterbrechungen" setzt das AIM-Bit auf Null während das Bit durch die andere Instruktion auf Eins gesetzt wird. Das laufende PSW wird in anderer Hinsicht nicht verändert. Die beiden Instruktionen gestatten Unterroutinen im Überwachungsprogramm seriell wiederverwendbarer Folgen vor der Unterbrechung zu schützen, ohne daß bekannt sein muß, welche speziellen asynchronen Unterbrechungen tatsächlich eingeschaltet sind.
(4) PRIORITÄT DER UNTERBRECHUNGEN
Synchrone Unterbrechungen, definiert als Unterbrechungen, für welche die Instruktionsadresse des alten PSW maßgebend ist, müssen vor laufenden asynchronen Unterbrechungen erfolgen, die als Unterbrechungen definiert sind, für die die Instruktionsadresse nicht maßgebend ist. Wenn zwei oder mehr asynchrone Unterbrechungen angefordert und eingeschaltet werden, gilt folgende Reihenfolge: Prioritätsunterbrechungen, 31 gefolgt durch Extern, gefolgt von Eingabe/Ausgabe.
Docket UK 969 027 109842/1651
(5) FESTE STELLEN
Zwei feste Stellen werden im unteren Kern zugeordnet, jedes auf einer Wortgrenze und sie enthalten eine Speicheradresse mit Doppelwortauflösung. Diese Stellen werden PRIPSW und ISAVE genannt.
PRIPSW legt eine Tabelle fest, deren Länge sich mit der Anzahl der Prioritatsunterbrechungsstufen ändert. Fig. 1 zeigt eine Tabelle von 542 Bytes Länge entsprechend 32 Unterbrechungsstufen.
Bei einem negativen Verlagerungswert von dem durch das PRIPSW adressierten Ursprung werden vier neue PSW-Stellen benutzt für die Mikroprogramm-Softwareverbindungen während der Unterbrechungsverarbeitung :
Aufbewahrungsbereich geleert;
Aufgabenschalter;
Toreingang;
Torausgang.
An dem durch PRIPSW adressierten Vierer-Wort und 16 Byteintervalle hinterher stehen neue PSW-Stellen, die zu den Prioritatsunterbrechungsstuf en gehören. Neben jedem neuen Prioritäts-PSW steht ein Register-Aufbewahrungssteuerfeld und ein Kennsatz. Beide werden in einen Unterbrechungsaufbewahrungsbereich kopiert, der der Prioritätsstufe zugeordnet ist. Das Register-Aufbewahrungssteuerfeld bestimmt, welche allgemeinen und welche Gleitkommaregister aufzubewahren sind, wenn diese Prioritätsstufe selbst unterbrochen wird. Der Kennsatz wird für die Systemprograminierung reserviert.
Der Inhalt des ISAVE legt den läufenden Aufbewahrungsbereich für die Asynchronunterbrechung fest. Der laufende Aufbewahrungsbereich ist der Bereich, in welchem der Zustand des laufenden Programmes aufbewahrt wird, wenn eine asynchrone Unterbrechung erfolgt oder wenn ein privilegiertes Unterbrechungsprogramm eine
10 9 8 4 2/1651
Docket UK 969 027
"Bewahre Zustand"-Instruktion abgibt. ISAVE wird eingeleitet durch das Programmausstattungs-Steuerprogramm, um auf den untersten Aufbewahrungsbereich einer Kette von Aufbewahrungsbereichen zu zeigen. Das Format eines Aufbewahrungsbereiches ist in Fig. 2 gezeigt.
IFWD lokalisiert den nächsten vorderen Aufbewahrungsbereich in der Kette und ist für die Doppelwortauflösung erforderlich. Die Einleitung sollte durch das Steuerprogramm erfolgen, die Benutzung, jedoch keine Veränderung, erfolgt durch Mikroprogramm. Das IFWD-FeId des letzten vom System vorgesehenen Aufbewahrungsbereiches sollte durch das Steuerprogramm auf Null gesetzt werden. Dadurch kann das Mikroprogramm die Bedingung feststellen, bei welcher das System mehr Stufen der verschachtelten Unterbrechung eingeschaltet hat, als Aufbewahrungsbereiche vorgesehen sind. Wenn diese Bedingung festgestellt wird, lädt die Maschinenausstattung das neue PSW "Aufbewahrungsbereiche geleert".
IBKW lokalisiert den nächsten rückwärtigen Aufbewahrungsbereich in der Kette der Aufbewahrungsbereiche und den Zustand des Programmes, an welches die Steuerung beim Absteigen abgegeben wird. Da die Neueinteilung der Unterbrechungen auf Kosten von Torkonflikten die Reihenfolge der rückwärtslaufenden Kette beeinflußt, wird dieses Feld vollkommen durch Maschinenausstattung gesteuert. Sein Inhalt braucht nicht durch das System initialisiert zu werden mit Ausnahme des untersten Aufbewahrungsbereiches. Das IBKW-FeId des untersten Aufbewahrungsbereiches sollte bei Null durch das SteuerprograBBß initialisiert werden. Die Maschinenausstattung benutzt diese Initialisierung dazu, einen Absteig-Versuch durch eine von der PrograiBmausstattung vorgeschriebene Aufgabe festzustellen,
GCTL (für Torsteuerungy wird durch den Unterbrechungsmechanismus dazu benutzt, die logische Reihenfolge der Unterbrechungsbeförderung zu steuern, wo diese aufgrund eines Torkonfliktes sich von der physikalischen Priorität unterscheidet. GCTL sollte durch das Steuerprogramm in allen Aufbewahrungsbereichen als Selbstzei-
Docket UK 969 O27 109842/ 1651
21ΚΊ28
ger, der die Adresse des Ursprunges des Aufbewahrungsbereiches enthält, initialisiert werden. Sein Inhalt wird durch Maschinenausstattung benutzt, jedoch niemals verändert. Wenn Programme durch Torkonflikte aufgewertet werden, soll die Aufwertungsroutine das GCTL so verändern, daß es auf den ersten Aufbewahrungsbereich des aufgewerteten Programmes zeigt. Bei der Abwertung sollte GCTL als Selbstzeiger zurückgespeichert werden.
Ein Doppelwort wird durch Maschinenausstattung dazu benutzt, das PSW aufzubewahren, wenn eine Unterbrechung aufgestellt wird, die den Aufbewahrungsbereichsvorrat benutzt.
Wenn eine Unterbrechung stattfindet, wird das aus Rl, R3 und F-Kennsatz bestehende Feld in den neuen Aufbewahrungsbereich kopiert. Bei Prioritätsunterbrechungen'wird das Feld aus dem Wort im PRIPSW aus der Tabelle kopiert, die dem neuen PSW für diese Stufe folgt. Bei dem "Bewahre Zustand" wird es aus dem explizit adressierten Operanden der Instruktion kopiert. Die Maschinenausstattung verändert das Feld im untersten Aufbewahrungsbereich des Vorrates niemals, so daß dieses Feld durch das Steuerprogramm initialisiert werden sollte. Das aus Rl, R3, F-Kennsatz bestehende Feld wird durch die Maschinenausstattung in allen Aufbewahrungsbereichen benutzt. Der Inhalt des Wortbereiches ist folgender:
Bits 0-7; Rl, R3 - definiert die aufzubewahrenden allgemeinen Register, wenn der Zustand in diesem Aufbewahrungsbereich gespeichert ist, d.h. wenn das laufende Programm asynchron unterbrochen wird. Das durch Rl angegebene Register wird im Aufbewahrungsbereich + 32 gespeichert. Bit 8t F - gibt in Nullstellung an, daß kein Gleitkommaregister aufzubewahren ist, wenn das laufende Programm unterbrochen wird. Gibt in einer Stellung an, daß alle Gleitkommaregister, beginnend bei Aufbewahrungsbereieh + 96, aufzubewahren sind.
Bits 9-15: Null - für spätere Benutzung reserviert. Bits 16-31: Kennsatz wird nur für Verwendung durch Systemprogrammierer geliefert und durch Maschinenausstattung nicht benutzt. Er kann z.B. dazu benutzt werden, dem System die
109842/1651
Docket UK 969 027
21H128
Bezeichnung des Programmes zu ermöglichen, welches den laufenden Aufbewahrungsbereich benutzt. Sein Wert im untersten Aufbewahrungsbereich sollte durch das Steuerprogramm initialisiert werden, da dieses Wort durch die Maschinenausstattung im untersten Aufbewahrungsbereich niemals verändert wird. GCOUNT - (für Torzahl) und TSW werden hauptsächlich durch Maschinenausstattung bearbeitet, erfordern jedoch eine bestimmte Beachtung durch das Steuerprogramm. Nur Bits 0-7 des Wortes werden benutzt und diese sollten in allen Aufbewahrungsbereichen bei Null initialisiert werden. Bits 0-3; GCOUNT wird durch Maschinenausstattung benutzt, um die Zahl der geschlossenen Tore auf jeder asynchronen Programmstufe beizubehalten. Die Zahl wird bei einer erfolgreichen "Schließe Tor"-Instruktion erhöht und bei "öffne Tor" erniedrigt. Der Zustand von GCOUNT ist für das Steuerprogramm bei synchronen Unterbrechungen wichtig, da eine Programmprüfung, SVC, oder Aufgabenschalter-Anforderung innerhalb eines geleiteten Codes besondere Aufmerksamkeit erfordern kann.
Bits 4-7: TSW - liefert vier Bits, die durch das Programm zum Steuern der Zeiteinteilung der Programmausstattungs-Aufgabenschaltung gesetzt werden können. Die Bits werden durch Maschinenausstattung niemals verändert, jedoch geprüft, sobald eine Absteige- oder "Öffne Tor"-Instruktion die Steuerung in dem Programm beläßt, welches den untersten Aufbewahrungsbereich des Vorrates benutzt. Im untersten Aufbewahrungsbereich sollten eines oder mehrere PSW-Bits auf Eins gesetzt werden, wenn das Steuerprogramm einen Aufgabenschalter von einer durch Programmsteuerung geregelten Aufgabe zu verzögern wünscht. Alle TSW-Bits sollten auf Null gesetzt sein, wenn das Steuerprogramm einen Aufgabenschalter bei der ersten Gelegenheit ausführen will.
Die gemeinsame Nullstellung von GCOUNT und TSW werden von der Maschinenausstattung gefordert, bevor ein neues Aufgabenschalter-PSW geladen werden kann. Wenn ein Bit auf Eins steht, wird die
Docket UK 969 027 109842/16S1
Aufgabenschalterunterbrechung unterdrückt. Während der Ausführung der Instruktionen Absteigen und "öffne Tor" werden die Bits immer durch Maschinenausstattung geprüft. Die Aufbewahrungsbereiche für die allgemeinen und die Gleitkommaregister erklären sich von selbst.
(6) EINSTELLUNG DER ASYNCHRONEN UNTERBRECHUNG
Asynchrone Unterbrechungen können eingesetzt werden entweder durch eine Maschinenausstattungsaktion alleine im Falle Prioritätsunterbrechungen oder durch ein zweistufiges Verfahren einer PSW-Vertauschung und einer "Bewahre Zustand"-Instruktion für grundlegende 360 Unterbrechungen. In beiden Fällen erwartet die Maschinenausstattung, daß der Inhalt der ISAVE-Stelle einen leeren Aufbewahrungsbereich an einer Doppelwortgrenze adressiert.
Bei irgendeiner eingeschalteten Prioritäts-Unterbrechungsanforderung reagiert die CPU wie folgt: (irgendeine eingeschaltete Anforderung bedeutet, daß irgendeine PIREQ-Verriegelung gesetzt, das entsprechende PIMASK-Bit auf Eins und alle Verarbeitungsriegel für diese und alle höheren Ebenen ausgeschaltet sind; außerdem muß PSW-Bit 3 auf Eins stehen und die CPU bei der Instruktionsausführung an einem Punkt angelangt sein, an welchem eine Unterbrechung möglich ist):
Der Inhalt der ISAVE-Stelle wird abgerufen und auf Doppelwortauflösung untersucht. Wenn sie außerhalb der Grenzen liegt, bleibt die Unterbrechungsanforderung bestehen und eine "System-Spezifikation"-Ausnahme wird über eine Programmunterbrechung angezeigt.
Wenn der ISAVE-Inhalt eine Doppelwortauflösung enthält, nimmt die CPU sie als die Adresse des laufenden Aufbewahrungsbereiches an. Die Stellen innerhalb des laufenden Aufbewahrungsbereiches werden im nachfolgenden Text entweder als (Aufbewahrungsbereich + n) oder als XXXXX (ISAVE) bezeichnet, was die Adresse η Bytes über den Ursprung des laufenden Aufbewahrungsbereiches hinaus bedeutet, der der Name XXXXX
1O 9 8 Λ 2/1651
Docket UK 969 027
zugeordnet wird. Die CPU speichert das laufende PSW im Doppelwort bei PSW (ISAVE).
Die CPU ruft das Rl, R3 Byte vom Aufbewahrungsbereich + 24 ab und speichert den Inhalt der allgemeinen Register von Rl bis einschließlich R3, beginnend bei Aufbewahrungsbereich + 32.
Die CPU holt das F Byte, Bit 0 des (Aufbewahrungsbereiches + 25) und prüft es. Steht es auf Eins, werden die Gleitkommaregister, beginnend bei (Aufbewahrungsbereich + 96), gespeichert. Steht es auf Null, werden keine Gleitkommaregister gespeichert.
Die CPU ruft das durch das ISAVE adressierte Wort (nämlich IFWD (ISAVE)) und prüft es auf Null. Bei Null lädt die CPU das neue PSW für Aufbewahrungsbereiche geleert bei (PRIPSW) 32 und beginnt die Instruktionsausführung unter Steuerung dieses PSW. Alle angeforderten Prioritätsunterbrechungen bleiben bestehen. Wenn das Wort von Null verschieden ist und nicht auf einer Doppelwortgrenze steht, zeigt die CPU eine "System-Spezifikation"-Ausnahme durch eine Programmunterbrechung an. Wenn IFWD (ISAVE) von Null verschieden ist und eine Doppelwortauflösung aufweist, schaltet die CPU den ISAVE-Zeiger in der Reihe der Aufbewahrungsbereiche weiter vor. Der Inhalt von ISAVE wird nach IBKW (IFWD(ISAVE)) kopiert, dem Rückwärtszeigerwort des nächsten Aufbewahrungsbereiches und der Inhalt von IFWD(ISAVE) wird in die feste ISAVE-Stelle kopiert, wodurch der "nächste" Aufbewahrungsbereich zum "laufenden" Aufbewahrungsbereich gemacht wird.
Jetzt wählt die CPU die eingeschaltete Unterbrechungsanforderung mit der höchsten Priorität, d.h. den gesetzten Unterbrechungsanforderungsriegel mit dem niedrigsten Wert, dessen PIMASK-Bit auf Eins steht und dessen Verarbeitungsriegel ausgeschaltet ist und erzeugt den binären Wert für diese
109842/ 1651
Unterbrechungsstufe. Der Anforderungsriegel für diese Stufe wird zurückgestellt und der Verarbeitungsriegel gesetzt.
- Die CPU ruft den Inhalt der festen Stelle PRIPSW ab und addiert zu ihm 16mal den Inhalt der Unterbrechungsstufe, um die Adresse des neuen PSW für diese Stufe festzulegen.
- Die CPU kopiert das Rl, R3 und F-Kennsatz-Wort für die neue Unterbrechungsstufe aus der PRIPSW-Tabelle in den neuen laufenden Aufbewahrungsbereich bei (Aufbewahrungsbereich + 24) .
- Die CPU lädt das neue PSW für die Prioritätsstufe und beginnt die Ausführung der Instruktion.
(7) STATUS-AUFBEWAHRUMGSINSTRUKTIONEN
Für einen gemeinsamen Unterbrechungsmechanismus gestattet die "Bewahre Zustand"-Instruktion dem FLIH für eine grundlegende asynchrone /360-Unterbrechung den Zustand im selben Format aufzubewahren, wie er durch das Prioritäts-Unterbrechungs-Mikroprograium benutzt wird. Die Instruktion kann die erste durch das grundlegende neue /360 PSW adressierte Instruktion sein, deren AIM-Bit Null sein sollte.
Die Instruktion ist nur im Überwachungszustand gültig. Diese Instruktion verfügt über zwei Operanden, wovon der erste ein altes PSW lokalisiert, das in den laufenden Aufbewahrungsbereich zu setzen ist (typischerweise Stelle 56 für ein E/A FLIH oder Stelle 24 für ein externes FLIH). Der zweite Operand lokalisiert ein Wort (normalerweise im unteren Kern) des Formates Rl, R3 F-Kennsatz, welches in den nächsten Aufbewahrungsbereich zu kopieren ist, den man aus der Kette der Aufbewahrungsbereiche erhält. Die Ausführung der Instruktion besteht aus einer Variation des Prioritäts-Unterbrechungsprogrammes wie folgt:
Docket UK 969 027 109842/1651
21U128
Der Inhalt der ISAVE-Stelle wird abgerufen und auf Doppelwortauflösung getestet. Steht er außerhalb der Grenzen, wird eine "System-Spezifikations"-Ausnahme über eine Programmunterbrechung angezeigt. Hat der ISAVE-Inhalt eine Doppelwortauflösung, akzeptiert die CPU ihn als die Adresse des laufenden Aufbewahrungsbereiches.
Die CPU kopiert das Doppelwort aus der Stelle des ersten Operanden in den laufenden Aufbewahrungsbereich bei PSW (ebenfalls ISAVE).
Die CPU ruft das Rl, R3-Byte aus dem (Aufbewahrungsbereich +24) ab und speichert sie in die allgemeinen Register von Rl bis einschließlich R3, beginnend beim (Aufbewahrungsbereich + 32) .
Die CPU ruft das F-Byte, Bit 0 des (Aufbewahrungsbereiches + 25) ab und prüft es. Steht es auf Eins, werden die Gleitkommaregister gespeichert, beginnend bei (Aufbewahrungsbereich + 96). Steht das Byte auf Null, werden keine Gleitkommaregister gespeichert. Die CPU ruft IFWD (ISAVE) ab und prüft es auf Null. Ist es Null wird das laufende PSW an der Stelle 32 im unteren Kern gespeichert (die Adresse des SVC altes PSW) und ein neues PSW erhält von (PRIPSW) - 32, dem PSW "Aufbewahrungsbereiche geleert".
Wenn IFWD (ISAVE) von Null verschieden ist und eine Doppelwortauflösung aufweist, schaltet die CPU den ISAVE-Zeiger in der Kette der Aufbewahrungsbereiche weiter vor. Der Inhalt von ISAVE wird nach IBKW (IFWD(ISAVE)) kopiert, dem Rückwärtszeigerwort des "nächsten" Aufbewahrungsbereiches, und der Inhalt von IFWD (ISAVE) wird in die festgelegte ISAVE-Stelle kopiert, wodurch der "nächste" Aufbewahrungsbereich zum "laufenden" Aufbewahrungsbereich gemacht wird.
Die CPU kopiert den zweiten Operanden der "Bewahre Zustand"-Instruktion (Rl R3 F-Kennsatz) in den neuen laufenden Aufbe-
109842/Ί 651
21 HI 28
- 16 wahrungsbereich bei (Aufbewahrungsbereich + 24).
CPU nimmt die Instruktionsausführung hinter der "Bewahre Zustand"-Instruktion wieder auf oder nimmt eine weitere asynchrone Unterbrechung an, wenn das PSW-Bit 3 auf Eins steht, wodurch dieses PSW eingeschaltet wird.
Das System kann also, ohne daß die Integrität verlorengeht unmittelbar nachdem eine Prioritätsunterbrechung oder der "Bewahre Zustand" eingeschaltet ist, unterbrochen werden, vorausgesetzt, daß wiederholte Unterbrechungen auf derselben Stufe verhindert werden. Das muß explizit für E/A und externe Unterbrechungen mit Hilfe von Maskenbits im neuen PSW gesteuert werden, um ihre entsprechenden Unterbrechungscodestellen zu schützen. Wiederholte Unterbrechungen auf Prioritätsstufen werden implizit durch die Verarbeitungsriegel gesteuert. Daher kann das neue PSW für eine Prioritätsunterbrechung sowohl das Bit 3 für weitere Prioritätsunterbrechungen als auch das Bit 15 für den Problemzustand auf Eins gesetzt haben.
Die Instruktion "Bewahre Zustand indirekt" ist ein Variante der "Bewahre Zustand"-Instruktion, die dem Unterbrechungsregler gestatten kann, ein Program abzuwerten, welches durch einen geleiteten Code gestoßen wurde. Die Instruktion ist nur im überwachungszustand gültig. Der Operand lokalisiert ein altes PSW (typischerweise die Stelle 40, wo das alte PSW gespeichert wird, bevor das neue "Tor-Ausgang" PSW geladen wird). Die Instruktion verschiebt das bezeichnete alte PSW in den vom GCTL-FeId des laufenden Aufbewahrungsbereiches adressierten Aufbewahrungsbereich und ferner in Aufbewahrungsregister in diesem indirekt adressierten Aufbewahrungsbereich. Das Rl R3 F-FeId, welches die aufbewahrten Register steuert, wird aus dem indirekt adressierten Aufbewahrungsbereich entnommen.
Der Inhalt der ISAVE-Stelle wird abgerufen und auf Doppelwortauflösung geprüft. Liegt er außerhalb der Grenzen, wird
Docket UK 969 027 109842/ 165V
2114T28
eine System-Spezifikations-Ausnahme über eine Programmunterbrechung angezeigt. Hat der ISAVE-Inhalt Doppelwortauflösung, nimmt die CPU ihn als die Adresse des laufenden Aufbewahrungsbereiches an.
Der Inhalt des GCTL-Feldes des laufenden Aufbewahrungsbereiches wird abgerufen und wird zur Adresse des Aufbewahrungsbereiches, in welchen der Zustand zu speichern ist.
Die CPU kopiert das Doppelwort aus der Stelle des ersten Operanden nach PSW (GCTL(ISAVE)).
Die CPU ruft das Rl R3 Byte vom durch GCTL (ISAVE) adressierten Aufbewahrungsbereich ab und speichert die allgemeinen Register von Rl bis einschließlich R3, beginnend bei (Aufbewahrungsbereich + 32). Die CPU ruft das F-Byte, Bit des (Aufbewahrungsbereiches + 25) ab und prüft es. Steht es auf 1 werden die Gleitkommaregister gespeichert, beginnend bei (Aufbewahrungsbereich +96). Steht das Bit auf Null, werden keine Gleitkommaregister gespeichert.
An diesem Punkt ist die Instruktion "Bewahre Zustand indirekt" fertig und die CPU ruft die nächste Instruktion in der Reihe ab.
(8) BEENDIGUNG DER ASYNCHRONEN UNTERBRECHUNGEN
Alle über die Kette der Aufbewahrungsbereiche für die asynchrone Standardunterbrechung eingestellten Unterbrechungen müssen den Vorgang bei Beendigung durch "Eliminieren" des Stapels umkehren. Der Vorgang läuft unterschiedlich ab bei der Beendigung der Prioritätsunterbrechung und der Beendigung einer E/A oder externen Unterbrechung, weil die Ablaufverriegelung zurückgesetzt werden muß, um die Prioritäts-Ünterbrechungsaktion umzukehren. Daher sind zwei Versionen der "Absteig"-Instruktion vorgesehen zusammen mit einer Variante der Instruktion "Bewahre Zustand indirekt"
Docket UK 969 027 109842/1651
21ΗΪ28
- 18 analog zu "Speichere Zustand indirekt".
Die nicht bevorrechtigte "Absteig"-Instruktion, die dem Programmierer zur Verfügung steht, muß zur Beendigung eines Prioritätsunterbrechungsprogrammes verwendet werden. Die bevorrrechtigte "Absteig"-Instru]ction ist im Problemzustand ungültig und kann dazu benutzt werden, ein prioritätsloses ünterbrechungsprogramm zu beenden, welches die Unterbrechung mit dem "Bewahre Zustand" einstellte.
Bei beiden Versionen prüft die CPU am Anfang die Gültigkeit der Instruktion, dann ruft sie den Inhalt der festgelegten ISAVE-Stelle ab und prüft den Rückwärtszeiger des ersten zum laufenden Aufbewahrungsbereich gehörenden Aufbewahrungsbereiches auf Null. Ist der Zeiger Null, handelt es sich bei dem Programm um eine softwaregeregelte Aufgabe und nicht um eine Unterbrechung und die CPU signalisiert eine Spezifikationsausnahme über eine Programmunterbrechung. Im andern Falle ruft die CPU das GCOUNT-FeId des ersten Aufbewahrungsbereiches, und zwar die Bits 0-3, ab und prüft sie auf Null. Wenn dieser Wert für Null verschieden ist, versucht das Programm ohne öffnung eines oder mehrere Tore, die es geschlossen hat, zu Ende zu kommen und die CPU signalisiert ebenfalls eine Spezifikationsunterbrechung.
Zu diesem Zweck muß das Steuerprogramm die Übereinkunft beachten* daß GCTL in einem primären Aufbewahrungsbereich ein Selbstzeiger ist und daß bei Aufwertung eines Programmes GCTi» aus dem primären in einen sekundären Aufbewahrungsbereich kopiert wird. Die Maschinenaus stättung ändert GCTL niemals, sondern benutzt es und nimmt an, daß es diese Bedeutung hat.
Nach Feststellung der Gültigkeit der "Absteig"-Instruktion stellt die CPU jedoch nur im Falle der nicht bevorrechtigten Version den Verarbeitungsriegel mit der niedrigsten Zahl zurück, der vorher gesetzt würde.
Die CPU prüft jetzt auf eine Prioritäts-Unterbrechungsanforderung,
1.0 9842/1651
Docket UK 969 027
21ΗΊ28
die bei der neuen Einstellung der Verarbeitungsriegel ermöglicht wird. Wenn eine solche Anforderung vorliegt, tritt die CPU in das Mikroprogramm für die Einstellung der Prioritätsunterbrechung ein, indem sie die Unterbrechungsanforderung mit der höchsten Priorität auswählt.
Ist keine Prioritätsunterbrechung angefordert und eingeschaltet, kopiert die CPU den Rückwärtszeiger des laufenden Aufbewahrungsbereiches, IBKW (ISAVE) in die festgelegte ISAVE-Stelle und macht den vorhergehenden Aufbewahrungsbereich zum laufenden Aufbewahrungsbereich.
Die CPU lädt das PSW vom neuen laufenden Aufbewahrungsbereich, ruft die Steuerungen Rl R3 und F vom (Aufbewahrungsbereich + 24) ab und lädt die angegebenen allgemeinen und Gleitkommaregister aus dem (Aufbewahrungsbereich + 32) und (Aufbewahrungsbereich + 96).
Die CPU ruft den Rückwärtszeiger des neuen laufenden Aufbewahrungsbereiches ab und prüft ihn auf Null. Ist er von Null verschieden, wurde die Steuerung auf eine asynchrone Unterbrechungsroutine zurückgegeben oder auf die geleitete Folge in einer softwaregesteuerten Aufgabe und die CPU nimmt die Instfuktionsausführung unter Steuerung des neu geladenen PSW wieder auf. Wenn der Rückwärtszeiger des neuen laufenden Aufbewahrungsbereiches auf Null stand heißt das, daß das System zu einem softwaregeregelten Programm herabgestiegen ist und die CPU ruft das komplette Byte GCOUNT und TSM bei (Aufbewahrungsbereich +28) ab und prüft es auf Null. Wenn es Null ist, wurde im Laufe irgendeines Unterbrechungsprogrammes eine Bedingung für einen Aufgabenschalter angezeigt und anstatt die Instruktionsfolge wieder aufzunehmen, speichert die CPU das laufende PSW in der Stelle 32 (die alte PSW-Stelle für SVC) und lädt das PSW bei (PRIPSW) - 24, dem Aufgabenschalter des neuen PSW.
Das Ziel dieses Aufgabenschalters ist die Einleitung einer Auf-
109842/1 β 51
Docket UK 969 027
21H128
gabenverteilung. Da hierzu die Erhaltung des gesamten Zustandes einer Aufgabe und das Laden des gesamten Zustandes einer neuen Aufgabe gehört, können während dieser Zeit aus gutem Grund Prioritätsunterbrechungen erfolgen. Zu diesem Zweck kann der Aufgabenverteiler vor der Einschaltung der Unterbrechungen ein Tor auf einem privaten Torwort schließen. Dadurch wird GCOUNT im laufenden (unteren) Aufbewahrungsbereich erhöht und eine erneute Unterbrechung am Aufgabenschalter PSW verhindert. Es kann aber durch diesen Vorgang auch eines der TSW-Bits für diesen Zweck reserviert werden.
Die dritte Variante der DESCEND-Instruk'tion fordert, daß die Adresse eines bestimmten Sicherheitsbereiches gegeben wird. Diese Instruktion ist nur im Überwachungszustand gültig.
Die effektive Adresse für die Instruktion lokalisiert einen Sicherheitsbereich, aus welchem der Zustand zu laden ist, wobei die Steuerung dem zugehörigen Programm übergeben wird. Die Verarbeitungsverriegelungen werden nicht anders eingestellt und der Inhalt der festgelegten ISAVE-Stelle bleibt ebenfalls unverändert .
Die CPU lädt das PSW vom adressierten Aufbewahrungsbereich, ruft die Steuerungen Rl R3 und F vom (Aufbewahrungsbereich + 24) ab und lädt die angegebenen allgemeinen und Gleitkommaregister aus dem (Aufbewahrungsbereich + 32) und (Aufbewahrungsbereich + 96). Die Instruktionsausführung wird unter Steuerung des gerade geladenen PSW wieder aufgenommen.
(9) TORSTEUERUNG
Die Leitinstruktionen arbeiten bei einem Vollwortoperanden im Speicher, der hier mit Torwort bezeichnet wird. Um die serielle Wiederverwendung geteilter Daten zu verstärken, gehört zu can Daten ein Torwort, welches mit Null initialisiert wird. In diesem Zustand kann jedes Programm weiterlaufen, welches die Daten au
Docket UK 969 027 1098A2/ 1 651
COPY
benutzen wünscht und "Schließe Tor" gibt. Die Ausführung der Instruktion speichert die Adresse des laufenden Aufbewahrungsbereiches im Torwort. Bei Abschluß seiner Benutzung der Daten gibt das Programm "öffne Tor", wodurch der Inhalt des Torwortes auf Null zurückgestellt wird.
Ein Torkonflikt, angezeigt dadurch, daß der Inhalt des Torwortes von Null verschieden ist, entsteht normalerweise nur nach einer asynchronen Unterbrechung. Die Auflösung eines Torkonfliktes erfordert eine neue Regelung der Reihenfolge der Ausführung von Unterbrechungsprogrammen.
Die Maschinenausstattungsregelung von Unterbrechungsprogrammen fordert die einfachste mögliche Reihenfolgedisziplin: "Führe nach Möglichkeit das Programm mit der höchsten Priorität aus wenn dieses Programm durch ein Tor angehalten wird, führe das Programm aus, welches das Tor geschlossen hält". Die Reihenfolgedisziplin kann vollständig im Mikroprogramm implementiert werden. Bei "Schließe Tor" handelt es sich jedoch um eine nicht bevorrechtigte Instruktion und im Interesse der Systemintegrität muß sie auf ihre Gültigkeit geprüft werden. Die Gültigkeitsprüfung eines angeblichen Torkonfliktes erfordert eine Menge Zeit, die vom Grad der Verschachtelung der Unterbrechungen und dem Grad der Verschachtelung der Tore abhängt. Im Mikroprogramm der "Schließe Tor"-Instruktion ist daher nur für die Feststellung eines Torkonfliktes enthalten: Die Gültigkeitsprüfung und die Auflösung des Konfliktes wird einem bevorrechtigten Programm überlassen. Somit bleibt das Ausmaß der Gültigkeitsprüfung und das Auflösungsverfahren dem Programmiersystem überlassen. Das Programm kann vollständig in sich abgeschlossen und von anderen Komponenten des überwachungsprogrammes unabhängig sein, wie es im nachfolgenden Abschnitt 10 gezeigt ist.
Die "Schließe Tor"-Instruktion ist im Problemzustand und im über-. wachungszustand gültig. Die effektive Adresse ist für die Vollwortauflösung erforderlich.
Das Speicherwort an der effektiven Adresse wird abgerufen
1 09842/1651
Docket UK 969 027
COPY
und auf Null geprüft. Ist es Null ruft die CPU den Inhalt der festgelegten ISAVE-Stelle ab und kopiert den Inhalt des GCTL (ISAVE) in das Torwort. Der Inhalt des GCOUNT-Feldes des ersten Aufbewahrungsbereiches (insbesondere GCOUNT GCTL ISAVE) wird abgerufen, um Eins erhöht und in den Aufbewahrungsbereich zurückgespeichert. Wenn ein übertrag nach außen des vierten Bitfeldes festgestellt wird, wird eine Programmunterbrechung eingestellt, um anzuzeigen, daß die Aufgabe versucht hat, mehr als 15 Tore auf einmal zu schlie-. ßen. Wird kein übertrag festgestellt, ist die Instruktion beendet.
Wird nach der Prüfung auf Null festgestellt, daß der Inhalt des Torwortes von Null verschieden, speichert die CPU dieselbe Information in das Torwort im Speicher zurück, um zu prüfen, daß die Stelle nicht vor Veränderungen durch den Schutzschlüssel des laufenden PSW geschützt ist. Wenn die Instruktion an diesem Punkt durch eine Speicherschutzverletzung nicht beendet ist, subtrahiert die CPU die Zahl 4 von der Instruktionsadresse im PSW (so daß diese auf die "Schließe Tor"-Instruktion oder auf "Ausführe"-Instruktion zeigt und "Schließe Tor" ausführt), speichert das PSW an der Stelle 40 (die alte PSW-Stelle für Programmunterbrechungen) , kopiert den Inhalt des Torwortes in eine gewählte festgelegte Kernspeicherstelle und lädt das "Tor Eingang" PSW von der Stelle PRIPSW - 16.
Wenn keine Unterbrechung vorliegt, wird der Bedingungscode während "Schließe Tor" nicht verändert. Die Unterbrechungsverfahren für "Tor Eingang"/"Tor Ausgang" können den Bedingungscode festhalten und zurückspeichern, wenn die Steuerung an das Programm zurückgegeben wird, welches die "Schließe Tor"-Instruktion abgegeben hat.
Die "Schließe Tor"-Instruktion ist im Problemzustand und im Überwachungszustand gültig. Die effektive Adresse ist für die VoIl-
Docket UK 969 027 1 O 9 8 A 2 / 1 6 5 1
COPV
21 U 128
wortauflösung erforderlich.
Die CPU ruft den Inhalt der festgelegten ISAVE-Stelle ab und setzt die Adresse des primären Aufbewahrungsbereiches fest, der zu dem laufenden Aufbewahrungsbereich gehört, nämlich GCTL (ISAVE). Die CPU ruft den Inhalt des durch die Instuktion adressierten Torwortes und vergleicht die beiden Mengen miteinander. Bei gleich speichert die CPU Nullen in die Torwortstelle und ruft das GCOUNT-FeId des primären Aufbewahrungsbereiches ab, GCOUNT, GCTL, ISAVE. Das GCOUNT-FeId wird dekrementiert und in den Aufbewahrungsbereich zurückgespeichert. Wenn die Dekrementierung dieses vier Bit großen Feldes zu einer Wertänderung von 0 auf -1 führt, ist die Instruktion mit einer Programmunterbrechung beendet.
Die CPU prüft jetzt, ob das die Instruktion "Öffne Tor" gebende Programm auf einer ungewöhnlichen Prioritätsstufe läuft, weil eine Unterbrechungsroutine mit höherer Priorität diese geleitete Quelle anforderte. Das wird dadurch angezeigt, daß der Inhalt von Aufbewahrungsbereich + 8 von der Adresse des Aufbewahrungsbereiches GCTL ISAVE und ISAVE verschieden ist.
Bei einem ungleichen Ergebnis speichert die CPU das laufende PSW mit richtig fortgeschriebener Instruktionsadresse nach der "öffne Tor"-Instruktion in die Stelle 40 (das alte PSW für Programmunterbrechungen) und lädt das "Tor-Ausgang"-PSW von PRIPSW - 8.
Wenn das die Instruktion "öffne Tor" gebende Programm auf seiner normalen Prioritätsstufe lief (Inhalt von ISAVE gleich Inhalt von GCTL (ISAVE)), prüft die CPU, ob es sich bei diesem Programm um ein softwaregeregeltes Programm handelt und ob ein Aufgabenschalter gesetzt ist. Speziell IBKW und GCOUNT, TSW (ISAVE) werden auf Null geprüft. Wenn eines dieser Feld von Null verschieden ist, nimmt die CPU die
Docket UK 969 027 109842/1651
_M - 21U129
Instruktionsausführung bei der nächstfolgenden Instruktion nach "öffne Tor" wieder auf. Wenn beide Null sind, speichert die CPU das laufende PSW mit der nach der "öffne Tor"-Instruktion richtig fortgeschriebenen Instruktionsadresse in die Stelle 32 (das alte PSW für SVC) und lädt das "Aufgabenschalter11 -PSW von PRIPSW - 24.
(10) "TOR-EINGANG"-PROGRAM
Die Umgebung des "Tor-Eingang"-Verfahrens wurde beschrieben und seine Anfangsbedingungen in einer Formalanweisung gegeben. Wenn das neue PSW für "Tor-Eingang" geladen wird, liegt, kurz gesagt, folgende Situation vor:
(a) das alte an der Stelle 40 gespeicherte PSW enthält eine Instruktionsadresse, die so zurückgesetzt wurde, daß sie auf eine erfolglose "Schließe Tor"-Instruktion (oder auf die eine solche Instruktion adressierende "Ausführe"-Instruktion) zeigt;
(b) der Inhalt des von "Schließe Tor" adressierten Torwortes wurde in eine untere Kernstelle kopiert;
(c) die Maschinenausstattung hat geprüft, daß die Torwortstellen gegenüber einer Veränderung durch das unterbrochene Programm nicht geschützt gespeichert waren.
Es folgt ein Programmbeispiel für ein Aufwertungsverfahren, das zur Lösung von Torkonflikten benutzt werden kann. Dabei wird:
(a) die Register des die Instruktion "Schließe Tor" gebenden Programmes aufbewahrt und ein neuer Aufbewahrungsbereich erhalten, so daß das Aufwertungsverfahren selbst an ja3er Prioritätsstufe unterbrochen werden kann, die höher liegt als die letzte asynchrone Unterbrechung;
(b) das Programm selbst in einem Sekundär-Aufbewahrungsbereich festgelegt, indem der Torwortinhalt in sein eigenes GCTL--FeId gespeichert wird;
(c) auf Ablaufblockierung geprüft, indem die Kette der Unter«-
109842/16B1
Docket UK 969 027
brechungsaufbewahrungsbereiche rückwärts abgesucht und geprüft wird, daß kein GCTL-FeId gleich dem Inhalt des Torwortes ist, bis mindestens ein primärer Aufbewahrungsbereich durchlaufen worden ist;
(d) auf eine ungültige "Schließe Tor"-Instruktion geprüft, wo kein Aufbewahrungsbereich gefunden wird, dessen GCTL-FeId gleich dem Inhalt des Torwortes ist;
(e) beim Finden des ersten rückwärtigen Aufbewahrungsbereiches, dessen GCTL-FeId gleich dem Inhalt des Torwortes ist die Steuerung dem Programm übergeben, dessen Zustand dort gefunden wird, vorausgesetzt, daß dieses Programm asynchron unterbrochen wurde. Wurde dieses Programm nicht asynchron unterbrochen (angezeigt durch Ungleichheit zwischen seinem IFWD-FeId und seinem GCTL-FeId), übergibt das Aufwertungsverfahren die Steuerung dem letzten Programm zur Steuerung auf der Prioritätsstufe des gefundenen Aufbewahrungsbereiches .
Das neue PSW für Gate Entry verfügt über ein AIM-Bit gleich Null und eine Instruktionsadresse STARTl und schaltet damit alle asynchronen Unterbrechungen ab, wobei der erste Bedingungscode Null ist. Das Programm sieht dann in Form der /360-Assembler-Sprache wie folgt aus:
STARTl SST
40,RSAVE
Register im laufenden Aufbewahrungsbereich aufbewahren und PSW dort hinsetzen. Neuen Aufbewahrungsbereich holen. Die Instruktion kann zu einer Unterbrechung wegen aufgebrauchter Aufbewahrungsbereiche führen und die Unterbrechungsroutine für diese Bedingung soll den Bedingungscode des alten PSW auf 01 ändern.
Docket UK 969 027
tO98A2/i651
BALR 15,0
Benütze *,15
L 13,144
BZ Schlfe 1
Ab
steig
SR
13,13
Schlfe 2 INH
L
Torwortinhalt nach GRl3 holen.
Die bevorrechtigte Form der "Absteig"-Instruktion gibt Steuerung zur Wiederholung der "Schließe Tor"-Instruktion zurück, wenn eine Unterbrechung wegen aufgebrauchter Aufbewahrungsbereiche erfolgte.
Schlfe 1 L 14, ISAVE Torwort in eigenes GCTL
ST 13,GCTL(14) kopieren.
L 13,IBKW(14) Systemmaske i des die Ins
SSM 16(13)
12,ISAVE tion "Schließe Tor" gebenden Programmes aufnehmen, um sicherzustellen, daß die Aufwertungsroutine denselben Grad der Unterbrechbarkeit wie das anfordernde Programm. Dieses sollte außerdem PSW-Bit 3 auf Null setzen, da "Schließe Tor" durch Umwandlung nicht mehr innerhalb des vollabgeschalteten Code gegeben wird. Initialisierte ein Register zur Verwendung bei Ermittlung einer Ablaufblockierung.
Setzt PSW AIM-Bit auf Null. Wenn unterbrechbar, kann
Docket UK 969 027
109842/1651
L 14,IBKW(14)
LTR 14,14
BZ Fehler 1
die Aufwertungsroutine selbst aufgewertet werden, daher muß ISAVE neu abgerufen werden.
Schlfe 3 L 14,IBKW(14) Rückwärtsabtastung der
Aufbewahrungs-Bereichskette beginnen.
Wenn ein IBKW-FeId mit dem Wert Null gefunden wird, enthält die Kette der Aufbewahrungsbereiche keinen Aufbewahrungsbereich mit GCTL gleich dem Torwort und die "Schließe Tor"-Instruktion war ein Programmfehler.
CLC GCTL(14,12)GCTL(14)
BE Änp. 1 Verzweige beim Auffinden
des ersten Aufbewahrungsbereiches, dessen GCTL gleich dem Inhalt des Torwortes ist.
CL 14,GCTL(14)
BNE Schlfe 3 Ist der überprüfte Aufbe
wahrungsbereich ein sekundärer, Abtastung fortsetzen.
RSM Setze PSW AIM-Bit auf Eins
um Unterbrechungen nur bei Adressierung eines primären Aufbewahrungsbereiches durch Register 14 zu gestatten.
LR 13,14
B Schlfe 2 Adresse eines primären Auf
bewahrungsbereiches einfrieren und Kette weiter rückwärts abtasten.
Docket UK 969 027 109842/1651
21H128
Anp. 1 RSM
LTR BZ
Anp. 2
13,13 Fehler 2
INH 14,IBKW(13)
CL Anp. 2
BE 13,IBKW(IS)
L 13,GCTL(13)
L Schlfe 1
B .
PSW AIM-Bit auf Eins setzen um Unterbrechungen zu gestatten beim Auffinden des aufzuwerteten Aufbewahrungsbereiches.
Wenn Register 13 Null ist, wurde kein primärer Aufbewahrungsbereich überlaufen und somit zweimal versucht, dasselbe Tor auf einer Prioritätsstufe zu schließen. Nach den Systemvereinbarungen kann das eine Ablaufblockierung anzeigen.
Wenn darauf gefundene Aufbewahrungsbereich nicht asynchron unterbrochen wurde, muß stattdessen das Programm aufgewertet werden, welches auf derselben Prioritätsstufe asynchron unterbrochen wurde. Dieses Programm ist bezeichnet vom IBKW-FeId des letzten zu überlaufenden primären Aufbewahrungsbereiches .
RSM 14,GCTL{14) Setze PE
CL LSTAT
BE IBKW(4,13)
NVC IBKW(14)
Docket UK 969 027
109842/1651
COP?
ST
14,GCTL(14)
LSTAT
INH L
L
MVC
12,ISAVE 13,IBKW(12) 24,(4,12) ,24(14)
MVC
12(1,14),PSW(14)
MVC
PSW(I,14),PSW(13)
LSTl
0(14)
RSAVE
DS DC
OP
X'DFOO' Wenn der aufzuwertende Aufbewahrungsbereich ein sekundärer ist, wird er aus der rückwärtigen Kette gelöscht und sein GCTL-FeId erneut als Selbstzeiger initialisiert.
Setze PSW AIM-Bit auf Null.
Verschiebe Register-Aufbewahrungssteuerungen und Kennsatzfeld aus aufzuwertendem Aufbewahrungsbereich in laufenden Aufbewahrungsbereich.
Systemmaske des aufzuwertenden Programmes in Byte 12 seines Aufbewahrungsbereiches aufbewahren und in die Systemmaske des Programmes verschieben, welches die Instruktion "Schließe Tor" gibt, so daß die Aufwertung erfolgt, während der letzte unterbrechbare Zustand in Kraft ist. "Lade Zustand indirekt" veranlaßt Steuerungsübergabe and das Programm, dessen Zustand im adressierten Aufbewahrungsbereich steht.
Docket UX 969 Regi s teraufbewahrungs s teuerungen für Gate Entry: Da nur Register 13-15 benutzt werden, brauchen sie nicht
10 9 842/ 1651
COPY
DC
aufbewahrt werden, wenn das Aufwertungsverfahren unterbrochen ist.
Ein Kennsatzfald zur Verwendung durch Systemprograminierung, wo der für ein Aufwertungsverfahren benutzte Aufbewahrungsbereich bezeichnet werden muß.
IFIVD EQU 0
IFKW EQU 4
GCTL EQU 8
PSW EQU 16
(11) "TOR-AUSGANG"-PROGRAMM
Die Umgebung des TorausgangsVerfahrens wurde beschrieben und eine Formalanweisung ihre Einleitungsbedingungen gegeben. Wenn das neue PSW für Torausgang geladen ist, liegt, kurz gesagt folgende Situation vor:
(a) das alte an der Stelle 40 gespeicherte PSW enthält die nächstfolgende Instruktionsadresse hinter der "Öffne Tor"-Instruktion (oder eine "Ausführen"-Instruktion, die sich auf eine solche Instruktion bezieht);
(b) die "Öffne Tor"-Instruktion öffnete gültig ein Tor, das durch das Namensprogramm geschlossen wurde (oder durch eine synchrone Unterbrechungsroutine, die für dieses Programm arbeitete) ;
(c) die "Öffne Tor"-Instruktion wurde durch ein aufgewertetes Programm gegeben und der dann laufende Aufbewahrungsbereich war ein sekundärer Aufbewahrungsberaieh. Das laufende GCTL-FeId adressiert den primären Aufbewahrungsbereich für dieses Programm.
Das folgende Programm ist ein Beispiel eines Abwertungsverfahrens, das neben dem Aufwertungsverfahren des vorhergehenden Abschnittes
Docket UK 969 027
109342/165 1
besteht. Dabei geschieht folgendes:
(a) das Program bewahrt das PSW und die Register des Programmes im primären von diesem Programm benutzten Aufbewahrungsbereich auf, welches die Instruktion "Öffne Tor" gibt;
(b) speichert die Systemmaske des jetzt abgewerteten Programmes auf sein Zustand vor der Aufwertung zurück;
(c) initialisiert den laufenden Aufbewahrungsbereich wieder als primären Aufbewahrungsbereich;
(dj gibt die Steuerung an das letzte Programm zurück, welches
eine erfolglose "Schließe Tor"-Instruktion abgab.
Das neue PSW für Torausgang hat ein AIM-Bit von Null und die
Instruktionsadresse START2.
START2 SSTI
L
MVC
ST
13,GCTL(12) PSW(I,13),12(13)
12,GCTL(12)
GCTL
PSW
EQU EQU
8 16
Die Instruktion "Speichere Zustand indirekt" speichert die Register und verschiebt das alte PSW in den durch das GCTL-FeId des laufenden Aufbewahrungsbereiches adressierten Aufbewahrungsbereich. Das ISAVE-FeId wird nicht verändert.
Ursprüngliche Systemmaske in primären Aufbewahrungsbereich zurückspeichern. "Absteig" setzt den ISAVE-Zeiger zurück und übergibt die Steuerung dem Programm, dessen Zustand im vorhergehenden Aufbewahrungsbereich steht, ohne Verarbeitungsriegel· zurückzustehen.
Docket UK 969
1098^2/1651
21U128
III. GENAUE BESCHREIBUNG - ZWEITES AUSFÜHRUNGSBEISPIEL
Es folgt eine kurze Beschreibung eines anderen Ausführungsbeispieles der Erfindung in der Programmausstattung eines grundlegenden Datenverarbextungssystemes, wobei angenommen wird, daß alle mit der Unterbrechungsverarbeitung zusammenhängenden Operationen in einem bevorrechtigten Zustand ausgeführt werden. Die im vorhergehenden Ausführungsbeispiel aufgeführten Prüfungen sind nicht alle erforderlich, dafür ist eine zusätzliche Eintragung (PCTL) im ISAVE-Bereich notwendig. Somit wird das GCTL-FeId des vorhergehenden Ausführungsbeispieles ersetzt durch die beiden Felder GCTL und PCTL.
(Ij UlNfTERBRECHUNGS -AUFBEWAHRUNGSBEREICHE
Wenn eine asynchrone Unterbrechung auftritt, werden die Maschinenbedingungen im Aufbewahrungsbereich, dem sogenannten ISAVE-Bereich des in Fig. 3 gezeigten Formates aufbewahrt und aus diesem Bereich zurückgespeichert. In dieser Figur bedeuten: IFWD die Lage des Aufbewahrungsbereiches für die nächsthöhere Unterbrechungsstufe. Die Lage belegt die am weistesten rechts stehenden drei Bytes des ersten Wortes.
IBKW Lage des ISAVE-Bereiches für die nächstniedere Unterbrechungsstufe. Die Lage belegt die am weitesten rechts stehenden drei Bytes des zweiten Wortes.
GCTL, PCTL zwei Wörter, die eine Funktion in Verbindung mit den Unterbrechungssteuertoren haben und ungefähr dem GCTL des vorigen Ausführungsbeispieles gleichkommen. PSW Inhalt der PSW-Stelle entsprechend der Unterbrechung. GREGS Speicher für Festpunktregister mit insgesamt 16 Wörtern. Aufbewahrung und Rückspeicherung der Register gehören zur Verantwortlichkeit jeder primären Unterbrechungsroutine .
FPREGS Speicherung für Gleitkommaregister mit insgesamt acht Wörtern.
ISAVE-Bereiche umfassen somit insgesamt 3O Wörter und sind immer
1 0 9 8 A 2 / 1 6 5 1
Docket UK 96 9 027
21H128
auf eine Doppelwortgrenze ausgerichtet. (2) VERKETTUNG VON ISAVE-BEREICHEN
ISAVE-Bereiche werden unabhängig von Unterbrechungsroutinen bereitgestellt und aufrechterhalten. Der Vorwärtszeiger in der Kette IFtVD wird voreingestellt, damit der nächste verfügbare Aufbewahrungsbereich während einer Unterbrechungs-Aufbewahrungsfolge schnell lokalisiert werden kann. Ein Null-Zeiger gibt das Ende der Unterbrechungsbereichskette an. Wenn der Null-Zeiger bei der Ausführung auftaucht, wird er durch eine ISGET genannte Unterroutine behandelt, die einen Kern für einen zusätzlichen Aufbewahrungsbereich anfordert und den vorhergehenden letzten Bereich mit dem neuen Bereich verkettet.
Die Rückwärtszeiger in der Kette IBKW werden dynamisch durch die Aufbewahrungsfolgen gesetzt. Dadurch soll der vorhergehende Aufbewahrungsbereich des UnterbrechungsVorrates während einer Rückspeicherfolge lokalisiert werden. Der unterste Bereich des Vorrates enthält einen Null-Zeiger, der normalerweise bei der Rückspeicherung nicht zu sehen ist. Wenn die Bedingung abgefühlt wird, zeigt er an, daß eine Programmschalteranforderung aufgetreten ist und die Rückspeicherfolge wird durch eine übertragung auf das Überweisungsprogramm beendet, wobei die Rückspeicherdaten im Bereich intakt gelassen werden.
Eine Anfangsgruppe von ISAVE-Bereichen wird assembliert. Die Nummer der Bereiche in seiner Gruppe ist ein Assembler Parameter und kann somit als eine Funktion der Anwendungsanforderungen angegeben werden. Wenn mehrere Bereich benötigt werden, erhält man sie durch eine ISGET-Routine.
(3) EINFACHE UNTERBRECHUNGSOPERATION
Maschinenbedingungen für asynchrone Unterbrechungen werden aufbe wahrt und zurückgespeichert durch einen durch die Standardmakros
Docket UK 969 027 10 9 8 4 2/1651
-34- 21 U 128
ISAVE und IEXIT erzeugten offenen Code. Diese Makros benutzen zwei Wörter im unteren Kern, die ohne Basisregister adressiert werden können.
Ein Doppelwort TSAVE, welches während einer abgeschalteten Reihenfolge als vorübergehender Speicher dient; ein Wort ISAVE, welches immer fortgeschrieben wird, um auf den laufenden Aufbewahrungsbereich zu zeigen.
Wenn ein geplantes Programm in den Ausführungszustand versetzt wird, speichert der Programmausstattungsverteiler die Stelle des laufenden Aufbewahrungsbereiches in ein LISAVE genanntes Feld, welches zu dem Program gehört. Zu diesem Zeitpunkt gibt die Verkettung der Aufbewahrungsbereiche, wobei der Einfachheit halber eine Gruppe von drei Bereichen gewählt wurde, folgendes Bild ab:
ISAVE ISAVEl ISAVE2 ' ISAVE3
ISAVEl
ISAVE2 ISAVE 3 0
0
laufen nicht nicht
der Be benutzt benutzt
reich für
Speicher
Wenn eine asynchrone Unterbrechung auftritt, speichert die Aufbewahrungsfolge in den Bereich ISAVEl und ruft die Stelle ISAVE2 als neuen laufenden Bereich auf. Eine typische Erweiterung des ISAVE-Makros, in welchem Festpunktregister aufbewahrt sind, ist folgende:
ST 12,TSAVE
L 12,ISAVE
STM 13,11,GREGS(12)
LM 13,14,CLDPSW
L 15,TSAVE
STM 13,15,PSW(12)
BALR 15,0
Docket UK 969 027 109842/1651
Benutze *,15
L l4,IFrtD(12)
LTR 14,14
BIiS A
(Verzweige nach ISGET)
Λ ST 12,IBKU(14)
ST 14,ISAVE
bei dieser Erweiterung ist OLDPS'.? die absolute Kernstelle des : .en P3V; vor der Unterbrechung, während die anderen Symbolnamen den vorherbeschriebenen Feldern entsprechen. ITach Ausführung dieser Reihenfolge ändert sich das obige Bild wie folgt:
ISAVE ISAVEl ISAVE2 ISAVE3
ISAVE2 ISAVE2 ISAVE3 0
0 ISAVEl
PSW und laufender nicht
Register Bereich benutzt
für Unter für Spei
brechung 1 cherung
gespeichert
Die vor der Stelle A stehenden Instruktionen prüfen die Kette der Aufbewahrungsbereiche vorwärts auf das Ende hin und ISGET wird aufgerufen, wenn der laufende Bereich der letzte war. ISGET erhält einen neuen Bereich und kehrt zur Reihenfolge an der Prüfstelle zurück. Ungeachtet dessen, ob die Endbedingung nun festgestellt wird oder nicht, setzen die beiden Instruktionen an der Stelle A daher die Rückspeicherkette fest und gehen zum neuen Aufbewahrungsbereich über.
Am Ende der Aufbewahrungsreihenfolge kann irgendein Satz von Unterbrechungsbedingungen erneut eingeschaltet werden. Das kann zu einem Unterbrechungsvorrat beliebiger Tiefe mit einer Verkettungsstruktur der Aufbewahrunqsbereiche führen, die wie erwartet vom
Docket UK 969 027 1 0 9 8 A 2 / 1 G 5 1
vorhergehenden Bild v/eiterläuft. Die Auflösung dieses Vorrates erfolgt nach dem Prinzip "zuletzt herein, zuerst hinaus". Eine typische Erweiterung des IEXIT-Makros für eine Rückspeicherreihenfolge, die die vorige Aufbewahrungsreihenfolge komplementiert, ist folgende:
SSM ZERO
L 12, ISAVE
L 12,LBKW(12)
N 12,Maske
BNZ B
(LPSW nach MSUP)
ST 12,ISAVE
LM 13,14,PSW(12)
STM 13,14,TSAVE
LM 12,11,GREGS(12)
LPSW TSAVE
worin Null ein Null-Byte, MASK ein die Adressmaske enthaltendes Wort und MSUP der Eingangspunkt für das Überwachungsprogramm der Programmausstattung ist.
Aus dieser Reihenfolge ist zu ersehen, daß der laufende Bereich, dessen Stelle in ISAVE steht, die Rückspeicherinformation nicht selbst enthält, sondern einen Zeiger zum Rückspeicherbereich. Außerdem legt die Kette dieser Rückwärtszeiger die Reihenfolge des Unterbrechungsstapels fest. Diese Kette ist nur dann die Umkehrung der vorwärtslaufenden Kette, wenn die Verarbeitung des Unterbrechungsstapels unter einfachen Bedingungen abgeschlossen ist, d.h. wenn weder eine Programmschalter-Anforderung auftritt noch das Programm erneut in ein Unterbrechungssteuertor einläuft.
(4) PROGRAMMSCHALTER
Die Anfangsinstruktion der IEXIT-Instruktionsfolge prüft auf eine Null-Zeigerbedingung, die einen Programmschalter charakterisiert. Diese Prüfung wird durchgeführt, weil die Standard-Ausgangspoli-
Docket IJK 9G9 027 109842/ 165 1
tik zum unterbrochenen Programm zurückkehren muß, wenn die Unterbrechungsroutine keine Bedingung erkennt, für die ein Programmschalter auftreten sollte. Die Bedingung kann grundsätzlich für alle Programme gelten, wie z.B. eine Grundunterbrechung wegen Ablauf der Zykluszeit oder sie kann für ein Programm spezifisch sein. Jedenfalls fordert die Unterbrechungsroutine einen Schalter, indem sie die PUSWCH-Unterroutine aufruft.
Die Umschaltung wird von dieser Unterroutine unter Verwendung der folgenden Grundalgorithmen vorgenommen:
1. Eine Null ist im Rückwärts-Zeigerfeld des ISAVE-Bereiches vor dem Bereich im Vorrat gespeichert,, der zu dem gerade ausgeführten geregelten Programm gehört;
2. Die Gleitkommaregister sind in dem FPREGS-Teil des zugehörigen Bereiches aufbewahrt. Eine Null wird dann im vordersten Zeigerfeld des Bereiches gespeichert und trennt diesen von dem Vorrat.
Bei der Ausführung von PUSWCH brauchen Unterbrechungen nicht abgeschaltet zu werden und die Aktion ist ungeachtet der Unterbrechungstiefe dieselbe.
Die Wirkungsweise dieses Algorithmus wird an zwei Beispielen gezeigt. Im ersten Beispiel wird eine Taktgeberunterbrechung angenommen, während ein Programm läuft. Nach der Aufbewahrungsreihenfolge ergibt sich dann folgendes Bild:
ISAVE ISAVE_1 I.SAVE2
ISAVE2 ISAVE2 ISAVE3
0 ISAVEl
PSW und laufender
Register Aufbewah-
durch Zeit- rungsbe-
geberunter- reich
br. gespeichert
1 0 B ö ■!> Ί 1 \ y '! 1
21 U128
— 3ο —
Die Routine für die Taktgeberunterbrechung ruft PUSViCH auf. Nach Rückkehr von dort ergibt sich folgendes Bild:
I§AVE1 ISAVE 2
ISAVE2 O ISAVE3
O O
PSW und laufender
Register Aufbewah-
durch Zeit- rungsbe-
geberunter- reich br. gespeichert
und die Rückspeicherfolge für die Taktgeberunterbrechung, die eine Null im zweiten Wort des laufenden Aufbewahrungsbereiches ISAVE2 findet, verzweigt direkt zum überwachungsprogramm zurück.
Wenn vor der Taktgeberunterbrechung eine Unterbrechung auftrat, ergibt sich bei Rückkehr vom PUSWCH folgendes Bild:
ISAVE ISAVEl ISAVE-? ISAVE3
ISAVE3 0 ISAVE3 ISAVE4
O 0 ISAVE2
Bedingun- Bedingun- laufender
gen für gen für Aufbewah-
Program, erste Un- rungsbe-
gespeichert terbr., ge- reich
durch erste speichert
Unterbr. durch Takt-
geberunterbr.
und der Eintritt in das überwachungsprogramm erfolgt, wenn die Rückspeicherreihenfolge für die erste Unterbrechung die Null im zweiten Wort des Bereiches ISAVE2 findet.
l· > k- Uk ObJ -υτ/ 1 0 9 8 Λ 2 / 1 €" 5 1
Der abgetrennte Bereich wird in die Aufbewahrungsbereichskette zurückgesetzt, wenn das Programm als nächstes die Steuerung durch den Verteiler erhält. Wenn das noch läuft, ist der Bereich jedoch weiter dem Programm zugeordnet und dient jetzt dazu, den anstehenden Informationstatus zu halten. Somit verfügen geregelte Programme nicht dynamisch über Aufbewahrungsbereiche, sondern die Zuordnung hält nur so lange an, wie das ausgeführt wird oder erwartet eine neue Wahl nach einer Umschaltung.
D /leichzeitig mehr als ein Programm ausstehen kann, ist der laufende Sicherheitsbereich nicht unbedingt derjenige, welcher dem zugehörigen Bereich in der ursprünglichen Reihenfolge in der Kette der Aufbewahrungsbereiche vorwärts folgt. Die vorwärtige Reihenfolge in der Kette kann daher im Laufe der Ausführung verändert werden.
(5) UHTERBRECHUNGS-STEUERTORE
Für seriell wiederverwendbare Daten wird ein Unterbrechungs-Steuertor verwendet. Ein solches Tor besteht aus einem zu diesen Daten (oder dem Code) gehörenden Wort, dessen Lage der Routine bekannt ist, für die der Wiedereintritt gesteuert wird.
Das Tor ist geöffnet, wenn Null und geschlossen, wenn Null verschieden. Es wird durch die Unterroutinen GETTER und GEXIT betätigt, um folgendes zu erreichen;
Wenn die Daten für die Routine, die aufgerufen wird, nicht vom Inhaber belegt sind (Tor offen), wird die Inhaberschaft-Anforderung direkt gewährt. Wenn die Daten für die Routine vom Inhaber belegt sine. (Tor geschlossen), wird die laufende (unterbrochene) Inhaberroutine bis zu einer Stufe ausgeführt, auf der das Tor gültig geöffnet und die Ausführung ausgesetzt werden kann und die Inhaberschaft wird dem anfordernden Programm gewährt.
Die Tor-Steuerroutinen werden durch den angeforderten Code aufge-Docket UK 969 027 1 0 9 8 A 2 / 1 f; 5 1
rufen und somit braucht die aufrufende Routine nicht zu wissen, ob der aufgerufene Code die Wiedereintrittssteuerung benutzt oder nicht.
Die ünterroutinen GENTER UND GEXIT benutzen die ISAVE-Bereiche zum Aufbewahren und Rückspeichern der Maschinenbedingungen. Die Felder GCTL und PCTL dieser Bereiche enthalten Informationen, die für den Schutz der richtigen Reihenfolge beim Abbau des Unterbrechungsvorrates wichtig sind.
(6) TORBEISPIEL: MEHRERE ZUGRIFFSANFORDERUNGEN
Wenn ein Code, der eine Routine auf einer gegebenen Unterbrechungsstufe ausführt, in einen Abschnitt gerät, der durch ein offenes Tor gesteuert wird, wird das Tor geschlossen, indem die Lage des laufenden Aufbewahrungsbereiches hineingespeichert wird. Das Torwort gibt effektiv den Aufbewahrungsbereich an, wo Maschinenbedingungen gespeichert werden, wenn eine Unterbrechung während der Ausführung des geleiteten Code auftritt. Nach Rückkehr von GENTER liegen dann folgende Bedingungen vor:
ISAVE ISAVEl" £SAVE2 ISAVE3
ISAVEl ISAVE2 ISAVE3 ISAVE4
0 0 0
TORWORT 0 0 0 1 ISAVEl 1 ISAVEl 1 ISAVE2 1 ISAVE3
laufender nicht nicht
Bereich benutzt benutzt für Speicherung
Das GCTL-FeId aller Bereiche ist Null und das PCTL-FeId ein Selbstzeiger mit einer Eins im oberen Byte. Dieses sind die normalen Werte für die Felder. Ein Tor wird immer geschlossen, indem das ganze PCTL-FeId des laufenden Aufbewahrungsbereiches
Docket UK 969 027 1098Λ2/ 1 ΓΒ1
hineingespeichert wird.
Wenn die Unterbrechung A während des geleiteten Codes auftritt und die Steuerung dem Unterbrechungsverarbeitungsgerät A (IPA) übertragen wird, führt diese Verarbeitungseinheit eine ISAVE-Makroreihenfolge aus und hinterläßt den Aufbewahrungsbereich wie folgt:
ISAVE ISAVEl ISAVE2 ISAVE3
ISAVE2 ISAVE2 ISAVE3 ISAVE4
0 ISAVEl 0
TORWORT 0 0 0
1 ISAVEl 1 ISAVEl 1 ISAVEl 1 ISAVE3
Bedingun laufender nicht
gen ge Bereich benutzt
speichert
für gelei
teten Code
Es wird angenommen, daß IPA jetzt Zugriff zu Daten fordert, die von demselben Tor gesteuert werden. Wenn GENTER aufgerufen wird, findet diese Routine das Tor geschlossen vor und unternimmt daher folgende Schritte:
1. Bedingungen für den Anforderer (IPA) im laufenden Aufbewahrungsbereich (ISAVE2) aufbewahren und zum nächsten Bereich vorschalten.
2. Bedingungen für den Torbereich (ISAVEl) zurückspeichern.
3. Die Lage des neuen laufenden Bereiches (ISAVE3) in das GCTL-FeId des Torbereiches speichern.
4. Das PCTL-FeId des neuen laufenden Bereiches so setzen, daß
es ein oberes Byte von 2 und eine Adresse enthält, die gleich der Adresse des Torbereiches ist.
Docket UK 969 027
1 0 9 8 A 2 / 1 6 5 1
Der ISAVE-Bereich erhält dann folgendes Bild
ISAVE ISAVEl1 ISAVE2 ISAVE3
ISAVE3 ISAVE2 ISAVE3 ISAVE4
Ο ISAVEl ISAVE2
TORWORT Ι S AVE 3 O O
1 ISAVEl 1 ISAVEl 1 ISAVE2 2 ISAVEl
ausgesetz Bedingun laufender
ter Be gen aufbe Bereich
reich wahrt für
IPA durch
GEcITER
Dieser Algorithmus gibt die Steuerung deiu ursprünglichen Inhaber des geleiteten Code zurück, ausgenonmen den Fall, daß die Benutzung des ursprünglichen Aufbewahrungsbereiches (ISAVEl) vorübergehend zugunsten eines Unterbrechungsbereiches (ISAVE3) ausgesetzt wurde, der im Vorrat der Aufbewahrungsbereiche up. eine Stufe höher steht als der höchste Bereich (ISAVI,2) , der zu dem auf einen Toreingang v/artenden Code gehört. Diese Verschiebung auf einen höheren Bereich wird Aufwertung genannt,- da der ursprüngliche Beleger effektiv auf eine höhere Priorität aufgewertet wurde als der Anforderer. Wenn eine solche Aufwertung erfolgt, dienen GCTL und PCTL zu folgenden Zwecken:
Das GCTL-FeId des Torbereiches lokalisiert den Bereich, wo die Bedingungen aufbewahrt werden, wenn eine andere Unterbrechung des geleiteten Code auftritt. Er ersetzt daher die Information im Torwort und aus diesem Grund wird er Torsteuerung genannt.
Das PCTL-FeId eines Bereiches gibt an, ob es sich um einen normalen Bereich (oberes Byte gleich 1) oder einen aufgewerteten Bereich (oberes Byte gleich 2) handelt und aus diesem Grund wird das V/ort Aufwertungssteueruna (PCTL)
Docket UK 969 027
10 9 8 4 2/1651
21U128
genannt. Der Adressteil der PCTL zeigt immer auf den Bereich, für den der gegebene Bereich ein Ersatz ist. Das ist wichtia für die Steueraktion, wenn mehr als ein Tor betroffen ist und zur Feststellung des Tor-Wiedereintritts auf derselben UnterbrechuncTsstufe (in diesem Beispiel nicht gezeigte Punkte)
Wenn eine Unterbrechung B erfolgt, wird als nächstes die Steuerung dem Unterbrechungsverarbeitungsgerät E (IPB) übergeben, bevor der ursprünglich geleitete Code beendet ist und das von J~ ausgeführte ISAVE-Makro erzeugt folgende Struktur der Aufbewahrungsbereiche :
ISAVE ISAVEl
ISAVE4 ISAVE2
0
TORWORT ISAVE3
1 ISAVEl 1 ISAVEl
ausgesetz
ter Be
reich
ISAVE2
ISAVE3 ISAVEl
ISAVE2 durch GENTER aufbewahrte Bedingungen für IPA
ISÄVE3
ISAVE4 ISAVE2
ISAVEl gespeicher-Bedingungen für geleiteten Code
ISAVE4
ISAVE5
ISAVE6
ISAVE5 ISAVE6 ISAVE7
ISAVE3 0 0
0 0 0
1 ISAVE4 1 ISAVE5 1 ISAVE6
laufender nicht nicht
Bereich benutzt benutzt
Es wird wiederum angenommen, daß IPB Zugriff durch dasselbe Tor anfordert. Wenn GETTER aufgerufen wird, findet die Routine
0 9 8 U 2 I 1 f B 1
21 H128
das Tor geschlossen vor und ebenfalls das GCTL-Wort des Torbereiches (ISAVEl) von Null verschieden und somit handelt es sich um den aufgewerteten Bereich (ISAVE3), der selbst aufzuwerten isi Die Unterschiede zwischen dieser und der gewöhnlichen Aufwertung sind folgende:
1. Bedincungen v/erden aus dem aufgewerteten Bereich (ISAVE3) zurückgespeichert.
2. Dieser Bereich wird aus der aktiven Verwendung in Vorrat herausgenommen inden man seinen Rückwärtszeiger (Feld IBKW mit Mert ISAVE2) in den Rückwärtszeiger des nächsten vorhergehender. Bereiches im Verrat (ISAVE4) speichert.
3. Das PGTu-FeId des Bereiches wird auf seinen nornalen Wert zurückgespeichert.
Der ISAVE-Bsr^ich erhält dann folgendes Bild:
ISAVE
ISAVEI
ISAVE2
ISAVE3
ISAVE5
TOR'vORT
I ISAVEl
ISAVE2
ISAVE5 1 ISAVEl
ausgesetzter Bereich
ISAVE3 ISAVEl ISO
ISAVE2 durch GETTER aufbewahrte Bedingunqen für IPA
ISAVE4 ISAVE2
1 ISAVE3 außer Betrieb
Docket 'JK '"1^O )2~
1 Q
GOPY BAD ORIGINAL
21 H 123
ISAVS4 ISAVE5 ISAVE6
ISAVE5 ISAVE6 ISAVE7
ISAVE2 ISAVE4 O
O O O
ISAVE4 2 ISAVEl 1 ISAVE6
durch laufender nicht
GENTER Bereich benutz
aufbewahr
te Bedin
gungen für
IPA
Dadurch wurde effektiv die Steuerung dem ursprünglichen Besitzer des geleiteten Code ein zweites Mal zurückgegeben, wenn jetzt angenommen wird, daß die Ausführung des Codes zur Beendigung kommt und der ursprüngliche Inhaber Ausgang aus dem Tor hat;, ist die GEXIT-ünterroutine folgende:
1. Tor öffnen.
2. Das GCTL-Wort des Torbereiches ist von Null verschieden und zeigt somit an, dai3 eine Anforderung auf höherer Stufe aussteht. Daher speichert das Wort Bedingungen für den ursprünglichen Anforderer zurück in den Torbereich (ISAVEl), löscht das GCTL-FeId dieses Bereiches und speichert das PCTL-FeId des laufenden Bereiches auf normal zurück.
3. Ausführung und ΙΞΧΓΤ-Makro-Reihenfolge. Durch diesen Algorithiaus wird IPB in der Ausführung von dem Punkt an zu Ende geführt, v/o die Instruktion aurch GETTER ausgesetzt wurde, wobei die Aufbewahrungsbereiche folgendes Jiid haben:
Docket UK 369 027
1 0 9 S i 2 / 1
COPY BAD
ISAVEl - 46 - I5AVE2 21H128
ISAVE ISAVE2 ISAVE3 ISAVE3
ISAVE4 O O ISAVE4
O O ISAVE2
TORWORT 1 ISAVEl 1 ISAVE2 O
O Bedingun Bedingun 1 ISAViJS
gen für gen aufbe außer
Original wahrt für Betrieb
inhaber IPA durch
gespei- GENTER
für GEXIT
ISAVE5 ISAVE_6
ISAVE4 ISAVE6 ISAVE7
ISAVE5 ISAVE4 O
ISAVE2 O O
O 1 ISAVE5 1 ISAVE6
1 ISAVE4 nicht nicht
laufender benutzt benutzt
Bereich
Die für IPB durch GENTER gespeicherten Bedingungen waren so, daß die erste Aktion darin besteht, wieder Zugriff zu den geleiteten Codes anzufordern. Da Tor jetzt geöffnet ist, schließt GENTER es einfach auf normale Weise und gewährt den Zugriff. Das Bild der Aufbewahrungsbereiche ist dann dasselbe wie oben, lediglich der Wert ISAVE4 wurde im Torwort gespeichert.
Wenn angenommen wird, daß IPB den geleiteten Code beendete und ohne Unterbrechung ausging, findet die GEXIT-Routine dieses Mal, daß der Torbereich (ISAVE4) ein GCTL-FeId vom Wert Null hat. Daher wird das Tor einfach geöffnet und das ISAVE-BiId auf das vorige Bild zurückgesetzt und IPB mit der Ausführung fortfahren gelassen. An irgendeinem Punkt steigt IPB schließlich mit einem lEXIT-Makro aus und zeigt die Beendigung dieser Unterbrechungsverarbeitung
an.
Docket UK 969 027
109842/1651
21U128
Da der Rückwärtszeiger des dann laufenden Bereiches (ISAVE4) so geändert wurde, daß er über den vorher aufgewerteten Bereich (ISAVE3) hinwegspringt, werden die Bedingungen jetzt vom Bereich ISAVE2 zurückgespeichert. Der resultierende Aufbewahrungsbereich hat dann folgende Konfiguration:
ISAVE
ISAVEl
ISAVE2
ISAVE3
ISAVE2
TORWORT
O
ISAVE2 ISAVE3 ISAVE4
O ISAVEl ISAVE2
0 O O
ISAVEl 1 ISAVE2 1 ISAVE3
Bedingun laufender nicht
gen des Bereich benutzt
Original
inhabers
aufbewahrt
durch GEXIT
und IPA befindet sich in der Ausführung an der Stelle, wo sie durch GENTER ausgesetzt wurde. Unter der Annahme, daß IPA den geleiteten Code beendet hat und ohne Unterbrechung ausstieg, wird der Stapel an Sicherheitsbereichen auf die vorige Bedingung zurückgesetzt als IPA die IEXIT-Makrofolge ausführte. Zu diesem Zeitpunkt wird der ursprüngliche Inhaber des geleiteten Code an der Stelle wieder aufgenommen, wo er durch die GEXIT-Routine ausgesetzt wurde.
(7) TORBEISPIEL; MEHRERE TORE
Es gibt zahlreiche Situationen, in denen mehr als ein Tor gleichzeitig auf derselben Unterbrechungsstufe benutzt werden. Ein Beispiel dafür ist eine E/A-Routine, die innerhalb eines Tores die Kanaltätigkeit steuert und bei Verarbeitung einer Achtungsunterbrechung eine Kernzuordnungsroutine aufrufen kann, die dann ein Kern-Managementtor schließt.
Docket UK 969 027
109842/1651
Wenn eine Reihe von Toren auf einer gegebenen Stufe zu schließen ist, kann allgemein erwartet werden, daß Unterbrechungen auftreten, welche Routinen aufrufen, die einen Zugriff zu den Toren einzeln oder in einem anderen Muster anfordern. Da Unterbrechungen willkürlich auftreten, finden sich Aufrufe, die erfordern, daß das Endergebnis der Reihenfolge unveränderlich ist, mit weit streuenden Anfangsbedingungen für den Torzustand und den Vorrat an Aufbewahrungsbereichen. Als Beispiel soll die folgende Reihenfolge dienen:
1. Auf einer gegebenen Stufe wird das Tor 1 und anschließend das Tor 2 geschlossen.
2. Eine Unterbrechung tritt auf, die Tor 1 aufruft.
3. Nachdem der ursprüngliche Inhaber zurückgestellt ist und vor dem Ausgang von Tor 2 tritt eine zweite Unterbrechung auf, die Tor 2 aufruft.
Diese Reihenfolge kann man vergleichen mit der nachfolgenden Reihenfolge:
1. Tor 1 ist geschlossen.
2. Die Unterbrechung tritt auf, die Tor 1 aufruft. Der ursprüngliche Inhaber wird zurückgestellt und schließt Tor 2.
3. Die Unterbrechung tritt auf, die Tor 2 aufruft.
Die beiden Folgen müssen dasselbe Ergebnis zeitigen, wenn das System richtig arbeitet, sie sind im Ausführungsdetail jedoch unterschiedlich. Bei der zweiten Folge wird Tor 2 geschlossen, wenn der laufende Bereich als Ergebnis eines versuchten Einganges zu Tor aufgewertet wurde, während bei der ersten Reihenfolge das Tor geschlossen wird, wenn der laufende Bereich der Torbereich für Tor 1 ist.
Die beiden Folgen haben jedoch dasselbe Ergebnis aufgrund des Einflusses des Aufwertungssteuerwortes. Dabei sind bekanntlich
Docket UK 969 027 1 0"9 8 A 2 / 1 6 5 1
folgende Umstände gegeben:
(a) Der Adressteil des PCTL-Wortes eines gegebenen Bereiches zeigt auf den Bereich, wenn es sich nicht um einen aufgewerteten Bereich handelt, oder auf den Torbereich, wenn der gegebene Bereich als ein aufgewerteter dient.
(b) Ein Tor wird immer durch Speichern des Inhaltes des PCTL-Feldes in den laufenden ISAVE-Bereich in das Tor geschlossen.
Demzufolge ist der Bereich, auf welchen ein Tor zeigt, unabhängig davon, ob das Tor während der Aufwertung geschlossen ist oder nicht, so daß die Aufwertung keinen wesentlichen Einfluß auf das Ergebnis der geleiteten Code-Ausführung haben kann. Das Bild des Aufbewahrungsbereich-Stapels kann jedoch sehr unterschiedlich sein, wie sich aus genauer Betrachtung der beiden oben aufgeführten Folgen ergibt.
Docket UK 969 027 10 9-842/1651

Claims (11)

  1. PATENTANSPRÜCHE
    Datenverarbeitungssystem mit einer mehrstufigen Prioritäts-Unterbrechungseinrichtung, dadurch gekennzeichnet, daß eine Pseudo-ünterbrechungseinrichtung vorgesehen ist, durch die eine Pseudo-Unterbrechung erzeugt wird, welche die Bearbeitung des Anforderers einer Datenstruktur aussetzt und die Ausführung einer Routine des Inhabers dieser Datenstruktur bis zum Ende oder einem Punkt erzwingt, an welchem der Inhaber besagte Struktur freigibt, wenn ein Inhaber einer Datenstruktur bei der Ausführung einer Routine unterbrochen wird und anschließend ein von einer Unterbrechung mit höherer Priorität eingeleitetes Verfahren dieselbe Datenstruktur anfordert.
  2. 2. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, daß die mehrstufige Prioritäts-Unterbrechungseinrichtung Einrichtungen für die Durchführung folgender Funktionen enthält:
    zur Erzeugung einer geordneten Reihenfolge von Aufbewahrungsbereichen,
    zur Bezeichnungsentfernung von laufenden Aufbewahrungsbereichen ,
    zur Speicherung des Systemzustandes eines unterbrochenen Programms im laufenden Aufbewahrungsbereich,
    zur Rückstellung der Bezeichnungsentfernungseinrichtung zur Entfernung des Zeichens des nächsten nicht benutzten Aufbewahrungsbereichs der Folge,
    zum Laden für die Rückstellung der Bezeichnungsentfernungseinrichtung zwecks Entfernung der Be-
    Docket UK 969 027 109842/1651
    -si- 21H128
    zeichnung vom zuletzt benutzten Aufbewahrungsbereich und Eingabe des Systemzustandes aus diesem Bereich in das System,
    zur Prioritätssteuerung für die Signalisierung einer Unterbrechungsanforderung, wenn eine Unterbrechungsanforderung eine höhere Priorität besitzt, als sowohl die laufende Unterbrechungsstufe, als auch irgend eine laufende Unterbrechungsanforderung ,
    zur Unterbrechung auf die Signale der Prioritätseinrichtung hin, für die Betätigung der Speichereinrichtung und Eingabe des Zustandes, der der signalisierten Unterbrechungsanforderung in das System entspricht und schließlich
    für die Feststellung, in Abhängigkeit von einer Programmendeanzeige, für die Erkennung, daß kein anderer Aufbewahrungsbereich verwendet wird und für die Sperrung der Operation der Ladeeinrichtung.
  3. 3. Datenverarbeitungssystem nach Anspruch 2, dadurch gekennzeichnet, daß die Einrichtung zur Erzeugung einer geordneten Reihenfolge von Aufbewahrungsbereichen eine Einrichtung für die Eingabe eines Vorwärtszeigers, der den nächsten Aufbewahrungsbereich in der Folge angibt, in jeden erzeugten Aufbewahrungsbereich, enthält.
  4. 4. Datenverarbeitungssystem nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Einrichtung zur Bezeichnungsentfernung eine Einrichtung für die Eingabe eines Rückwärtszeigers auf den nächstfrüheren Aufbewahrungsbereich und eines Selbstzeigers auf den Aufbewahrungsbereich enthält, dessen Bezeichnung entfernt wurde, wann immer ein unbenutzter Aufbewahrungsbereich von seiner Kennzeichnung befreit wird und für die Entfernung der Auf-
    Docket UK 969 027 109842/1651
    _52_ 21H128
    bewahrung enthält, wann immer ein gerade benutzter Aufbewahrungsbereich von seiner Bezeichnung befreit wird, wobei der nächsthöhere Aufbewahrungsbereich derjenige ist, der von dem Vorwärtszeiger im laufenden Aufbewahrungsbereich identifiziert wird und wobei der nächstfrühere Aufnahmebereich von dem Rückwärtszeiger im laufenden Aufbewahrungsbereich bezeichnet wird.
  5. 5. Datenverarbeitungssystem nach einem oder mehreren der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die Einrichtung zur Erzeugung einer geordneten Reihenfolge von Aufbewahrungsbereichen derart auf die Bezeichnungsentfernungseinrichtung anspricht, daß, wenn diese keinen nächsten unbenutzten Aufbewahrungsbereich in der Folge findet, sie eine neue Folge von Aufbewahrungsbereichen erzeugt.
  6. 6. Datenverarbeitungssystem nach einem oder mehreren der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß "Schließe Tor"-Instruktionen in den Programmen vorgesehen sind, um anzugeben, daß die Inhaberschaft einer Datenstruktur erforderlich ist und "öffne Tor"-Instruktionen in den Programmen vorgesehen sind, um anzugeben, daß die Inhaberschaft einer Datenstruktur aufgegeben wird, wobei die Pseudo-Unterbrechungseinrichtung Torschaltungen für jede Datenstruktur besitzt, daß ferner eine Signaleinrichtung vorgesehen ist, die auf eine "Schließe Tor "-Instruktion anspricht, urn anzugeben, wenn die zugehörige Torschaltung geöffnet oder ge- . schlossen ist, daß ferner eine Torschaltungsschließeinrichtung vorgesehen ist, die auf ein "Schließe Tor"-Signal für das Schließen des entsprechenden Tores und für die Eingabe eines Zeigers, der auf die Identität des Inhabers hinweist, anspricht, daß eine Toröffnungseinrichtung vorgesehen ist, die auf ein "öffne Tor"-Signal anspricht, für die Öffnung des entsprechenden Tores und für die Löschung des hier enthaltenen Zeigers und daß schließlich die Pseudo-Unterbrechungserzeugungseinrichtung auf ein !Tor geschlos-
    Docket UK 969 027 109842/16 5 1
    21H128
    sen"-Signal für die Erzeugung einer Pseudo-ünterbrechung und die Betätigung der Speichereinrichtung anspricht.
  7. 7. Datenverarbeitungssystem nach einem oder mehreren der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die Pseudo-Unterbrechungserzeugungseinrichtung eine Identifizierungseinrichtung für die Untersuchung jedes benutzten Aufbewahrungsbereichs auf einen Systemzustand, der die Identität des Inhabers besitzt, der auf das entsprechende Tor festgelegt ist und für die Identifizierung solcher Bereiche mit höchster Ordnung enthält, daß ferner eine Aufwertungsvorrichtung vorgesehen ist, die auf die Identifizierungseinrichtung anspricht, um den Systemzustand des höchsten identifizierten Aufbewahrungsbereichs in das System einzugeben und daß schließlich eine Abwertungsvorrichtung vorgesehen ist, die auf eine "öffne Tor"-Instruktion anspricht, um den Systemzustand des niedrigsten festgestellten Aufbewahrungsbereichs einzugeben, um die Toröffnungseinrichtung und die Ladeeinrichtung zu betätigen.
  8. 8. Datenverarbeitungssystem nach einem oder mehreren der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß ferner eine Rückstelleinrichtung für die Feststellung, ob der höchste und niedrigste festgestellte Bereich sich unterscheiden, vorgesehen ist und die, wenn das der Fall ist, den Rückwärtszeiger im nächsthöheren Aufbewahrungsbereic auf den höchsten festgestellten Aufbewahrungsbereich zurückstellt, um auf den nächstniedrigeren Aufbewahrungsbereich zu dem höchsten festgestellten Aufbewahrungsbereich zu zeigen.
  9. 9. Datenverarbeitungssystem nach einem oder mehreren der Ansprüche 6 bis 8, dadurch gekennzeichnet, daß die in das Tor eingegebene Inhaberidentität ein Zeiger ist, der auf den laufenden Aufbewahrungsbereich hinweist.
    Docket UK 969 027 1 0 9 8 A 2 / 1 6 5 1
  10. 10. Datenverarbeitungssystem nach Anspruch 9, dadurch gekennzeichnet, daß die Aufwertungseinrichtung so angeordnet ist, daß sie den Selbstzeiger in dem Aufbewahrungsbereich zurückstellt, der von dem Torzeiger identifiziert wird, um auf den laufenden Aufbewahrungsbereich zu zeigen.
  11. 11. Datenverarbeitungssystem nach einem oder mehreren der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß die Rückstelleinrichtung feststellt, ob die höchsten und niedrigsten festgestellten Bereiche unterschiedlich sind, indem sie prüft, ob der Selbstzeiger in dem Aufbewahrungsbereich, auf den der Zeiger im Tor zeigt (der niedrigste Aufbewahrungsbereich) auf einen anderen Aufbewahrungsbereich (den höchsten Aufbewahrungsbereich) zeigt.
    Docket UK 969 027 10 9 0 4 2/1651
DE19712114128 1970-03-25 1971-03-24 Datenverarbeitungssystem mit einer mehrstufigen Prioritaets-Unterbrechungseinrichtung Withdrawn DE2114128A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1446870A GB1240978A (en) 1970-03-25 1970-03-25 Data processing systems

Publications (1)

Publication Number Publication Date
DE2114128A1 true DE2114128A1 (de) 1971-10-14

Family

ID=10041750

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19712114128 Withdrawn DE2114128A1 (de) 1970-03-25 1971-03-24 Datenverarbeitungssystem mit einer mehrstufigen Prioritaets-Unterbrechungseinrichtung

Country Status (3)

Country Link
CA (1) CA948324A (de)
DE (1) DE2114128A1 (de)
GB (1) GB1240978A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2335991A1 (de) * 1972-07-17 1974-02-14 Sperry Rand Corp Logische schaltung zur lenkung der zur unterbrechung auffordernden signale in einem rechenautomaten

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4001783A (en) * 1975-03-26 1977-01-04 Honeywell Information Systems, Inc. Priority interrupt mechanism
US3984820A (en) * 1975-06-30 1976-10-05 Honeywell Information Systems, Inc. Apparatus for changing the interrupt level of a process executing in a data processing system
US4410940A (en) 1980-12-05 1983-10-18 International Business Machines Corporation Transfer of control method and means among hierarchical cooperating sequential processes
CA1273114A (en) * 1985-11-04 1990-08-21 Johannnes H. Den Boef Multiprocess computer and method for operating same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2335991A1 (de) * 1972-07-17 1974-02-14 Sperry Rand Corp Logische schaltung zur lenkung der zur unterbrechung auffordernden signale in einem rechenautomaten

Also Published As

Publication number Publication date
GB1240978A (en) 1971-07-28
CA948324A (en) 1974-05-28

Similar Documents

Publication Publication Date Title
DE69731998T2 (de) Informationsverarbeitungsvorrichtung und Verfahren
DE2716051C2 (de) Datenverarbeitungsanlage mit einem oder mehreren Prozessoren mit mindestem einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden
DE2430127C2 (de) Einrichtung zur Steuerung des Speicherzugriffs konkurrierender Benutzer
DE2414311C2 (de) Speicherschutzeinrichtung
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
CH619309A5 (de)
DE2161886C2 (de) Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle
DE1499200A1 (de) Datenverarbeitungsanlage mit vorranggesteuerter Programmunterbrechung
DE2720578A1 (de) Rechnersystem mit mehrprogrammbetrieb/mehrprogrammverarbeitung sowie verfahren zum betrieb eines solchen rechnersystems
DE1437698A1 (de) Verfahren und Einrichtung zum UEbertragen von Informationen
DE2449547A1 (de) Computer- und datenverarbeitungsanlage
DE2611598A1 (de) Uebersetzungseinrichtung fuer speicheradressen
DE1915818A1 (de) Elektronisches Datenverarbeitungssystem
CH615521A5 (de)
DE112005002402T5 (de) Hybride Hardware-/Software-Implementierung eines Transaktionsspeicherzugriffs
DE4104781A1 (de) Speicherzugriffsverfahren und -vorrichtung
EP0635792A2 (de) Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE1549531A1 (de) Digitale Rechenanlage
DE2101949A1 (de) Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage
DE2144051A1 (de) Programm Unterbrechungsanordnung für eine Datenverarbeitungsanlage
WO2005003960A2 (de) Prozessorarchitektur für exakte zeigeridentifizierung
DE2364323C2 (de) Verfahren zur Behandlung von Unterbrechungsbedingungen in einer Datenverarbeitungsanlage
WO2001040931A2 (de) Verfahren zum synchronisieren von programmabschnitten eines computerprogramms
DE2114128A1 (de) Datenverarbeitungssystem mit einer mehrstufigen Prioritaets-Unterbrechungseinrichtung

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee