DE2114128A1 - Datenverarbeitungssystem mit einer mehrstufigen Prioritaets-Unterbrechungseinrichtung - Google Patents
Datenverarbeitungssystem mit einer mehrstufigen Prioritaets-UnterbrechungseinrichtungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task 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.
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.
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
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
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
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
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
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.
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.
eine erfolglose "Schließe Tor"-Instruktion abgab.
Das neue PSW für Torausgang hat ein AIM-Bit von Null und die
Instruktionsadresse START2.
Instruktionsadresse START2.
START2 SSTI
L
MVC
MVC
ST
13,GCTL(12) PSW(I,13),12(13)
12,GCTL(12)
GCTL
PSW
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)
L l4,IFrtD(12)
LTR 14,14
BIiS A
(Verzweige nach ISGET)
Λ ST 12,IBKU(14)
ST 14,ISAVE
Λ 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
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
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
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)
- PATENTANSPRÜCHEDatenverarbeitungssystem 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. 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- 21H128zeichnung 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ßlichfü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. 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. 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_ 21H128bewahrung 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. 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. 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 121H128sen"-Signal für die Erzeugung einer Pseudo-ünterbrechung und die Betätigung der Speichereinrichtung anspricht.
- 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. 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. 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. 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. 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
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)
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)
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 |
-
1970
- 1970-03-25 GB GB1446870A patent/GB1240978A/en not_active Expired
-
1971
- 1971-03-24 CA CA108,547A patent/CA948324A/en not_active Expired
- 1971-03-24 DE DE19712114128 patent/DE2114128A1/de not_active Withdrawn
Cited By (1)
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 |