DE2459675A1 - Datenverarbeitungssystem - Google Patents
DatenverarbeitungssystemInfo
- Publication number
- DE2459675A1 DE2459675A1 DE19742459675 DE2459675A DE2459675A1 DE 2459675 A1 DE2459675 A1 DE 2459675A1 DE 19742459675 DE19742459675 DE 19742459675 DE 2459675 A DE2459675 A DE 2459675A DE 2459675 A1 DE2459675 A1 DE 2459675A1
- Authority
- DE
- Germany
- Prior art keywords
- word
- unit
- segment
- address
- interruption
- 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.)
- Ceased
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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Description
Petentanwalt
München 22, Herrnslr. !5, Tel. 29255I
Postanschrift München 26, Postfach 4
Postanschrift München 26, Postfach 4
Mein Zeichen: P, 2071
Anmelder; Honeywell Information Systems Ine,
200 Smith Street
Waltham, Mass.
V. St. A.
Waltham, Mass.
V. St. A.
Datenverarbeitungssystem
Die vorliegende Erfindung bezieht sich generell auf Rechner und insbesondere auf Rechnersysteme mit Emulationseigenschaften.
Im allgemeinen wird jeder Vorgang oder jedes Programm, welches eine Datenverarbeitungsanlage auszuführen hat, in einer völlig
509828/0758
verschiedenen Reihe von Schritten geschrieben. Diese Reihe von Schritten ist durch eine Vielzahl von Variablen festgelegt.
Zwei dieser Variablen sind die Hardware, die innerhalb der Datenverarbeitungsanlage verfügbar ist, und die benutzte
Zeichenkonfiguration. Die Ausführung eines Prozesses oder Programms, das geschrieben ist und das gewöhnlich auf dem
Aufbau einer vorgegebenen Datenverarbeitungsanlage basiert, in der der Prozess abzulaufen hat und die dadurch ein wirtschaftlicheres
System für den Ablauf eines derartigen Prozesses bereitstellt, ist als natürlicher Operationsbetrieb
oder als Maschinenoperationsbetrieb der zugehörigen elektronischen Datenverarbeitungsanlage definiert. Daher kann irgendein
Programm, das für eine bestimmte Verarbeitungsanlage geschrieben worden ist, in dem Maschinenoperationscode der
betreffenden Verarbeitungsanlage ausgeführt werden. Jedesmal, wenn ein weiteres Datenverarbeitungssystem eingeführt· wird,
ergibt sich stets das Problem, ob ein derartiges weiteres Datenverarbeitungssystem mit den Programmen arbeiten wird,
die für den Maschinenoperationsbetrieb des vorgegebenen Datenverarbeitungssystems geschrieben worden sind. Es ist
durchaus selbstverständlich, dass ein derartiges weiteres Datenverarbeitungssystem unterschiedliche Hardwareeinheiten
und Datenflusskonzepte aufweist, die in dem vorgegebenen Datenverarbeitungssystem nicht zu finden sind. Deshalb sind
die für ein anderes System geschriebenen Programme normalerweise nicht in dem Maschinenoperationsbetrieb des vorgegebenen
Systems betreibbar. Vielmehr müssen Einrichtungen bereitgestellt werden, um das andere Datenverarbeitungssystem in
Verbindung mit der vorgegebenen Datenverarbeitungsanlage im Emulationsbetrieb zu betreiben.
In gewissen Fällen sind verschiedene Befehle oder Bedingungen,
die in der im Emulationsbetrieb arbeitenden Zentraleinheit
509826/0758
■ - 3 -
ausführbar sind, während der Emulation in der Zentraleinheit
nicht ausführbar. Dies kann aus einer Reihe von Gründen zutreffen. Ein besonderer Aspekt des Datenverarbeitungssystems,
das auf einen Emulationsbetrieb umgestellt wird, jedoch nicht auf einen Emulaüonsbetrieb umstellbar ist, und zwar weder
durch Auslegung noch durch eine entsprechende Wahl, ist der Maschinenwarte zustand der im Emulationsbetrieb arbeitenden
Zentraleinheit. Während des Wartezustands arbeitet die Verarbeitungsanlage,
die die im Emulationsbetrieb arbeitende Datenverarbeitungsanlage ist, nicht; vielmehr wartet sie auf
das Auftreten eines Ereignisses, so dass sie aus dem Wartezustand bzw. Wartestatus heraus und wieder die Ausführung
von Befehlen fortsetzen kann. Einem derartigen Wartestatus,
der im Emulationsbetrieb arbeitenden Datenverarbeitungsanlage ist eine grosse Organisation zugehörig, und zwar insofern,
als keine.Verarbeitung fortgeführt wird, währenddessen die Maschine sich im Wartezustand befindet. Demgemäss geht die
meiste Ausführungszeit verloren. Darüber hinaus wird der Operator nicht über diesen Zustand informiert, weshalb beträchtliche
Zeit verlorengeht, bevor der Operator entdecken könnte, dass ein derartiger Wartestatuszustand existiert.
Es ist daher wünschenswert, wenn eine derartige Zentraleinheit im Emulationsbetrieb bei Vorliegen einer Wartestatusbedingung
betrieben wird, durch Planung eine Wartezustandssimulation vorzusehen, während der eine weitere Verarbeitung
der Befehle in dem Maschinenbetrieb ermöglicht ist, der der den Emulationsbetrieb bewirkenden Zentraleinheit zugeordnet
ist. Es ist daher erwünscht, auch in dem Fall, dass die im Emulationsbetrieb arbeitende Zentraleinheit sich im
Wartezustand befindet, die Verarbeitung im Maschinenbetrieb fortsetzen zu können, während fortwährend periodisch der
Operator bezüglich der Wartezustandsbedingung der im Emulationsbetrieb arbeitenden Zentraleinheit unterrichtet wird.
509826/0758
Der Erfindung liegt demgemäss die Aufgabe zugrunde, ein Datenverarbeitungssystem
zu schaffen, welches im Emulationsbetrieb mit einer Datenverarbeitungsanlage betrieben werden kann, die
einen Wartezustand besitzt, so dass die einem derartigen Wartezustand zugehörige Verarbeitungsorganisation weitgehend überwunden
ist und der Operator kontinuierlich bezüglich eines derartigen Zustands informiert wird.
Gelöst wird die vorstehend aufgezeigte Aufgabe erfindungsgemäss
durch ein Datenverarbeitungssystem mit einer Zentraleinheit für die Ausführung von Befehlen in einem Maschinenbetrieb
und mit einer Emulationseinheit, die mit der Zentraleinheit verbunden ist, um Befehle in einem Nicht-Maschinenbetrieb auszuführen,
derart, dass die Operation einer weiteren Zentraleinheit im Emulatinsbetrieb erfolgt. Das System enthält ferner
Detektoreinrichtungen, die ansprechen, wenn die im Emulationsbetrieb arbeitende Zentraleinheit sich in ihrem Wartezustand
befindet. Dies dient dazu, eine weitere Verarbeitung in dieser Zentraleinheit zu verhindern. Ausserdem enthält
das System Anzeigeeinrichtungen, die eine Anzeige darüber liefern, ob eine unerledigte zulässige Unterbrechung vorhanden ist.
Darüber hinaus sind Einrichtungen vorgesehen, die aus dem Wartezustand herausführen, um die Emulations-Verarbeitung in
dem Nicht-Maschinenbetrieb fortzusetzen, falls eine derartige unerledigte zulässige Unterbrechung emulatorspezifisch ist,
das heisst falls eine derartige Unterbrechung sich auf ein Ereignis bezieht, welches von dem Emulator beachtet werden
muss. Darüber hinaus sind Einrichtungen vorgesehen, die eine Datenverarbeitung in dem Maschinenbetrieb der im Emulationsbetrieb arbeitenden Zentraleinheit ermöglichen, während die
Zentraleinheit, die im Emulationsbetrieb betrieben worden ist, sich im Wartezustand befindet. Darüber hinaus sind Einrichtungen
vorgesehen, die die Zeitspanne überwachen, während der sich der Wartezustand fortsetzt, und die den Operator
von einem derartigen Wartezustand in bestimmten Intervallen
509826/0 758
informieren. Dadurch ist eine Situation vermieden, in der das System nich^t produktiv ist.
Anhand von Zeichnungen wird die Erfindung nachstehend beispielsweise
näher erläutert.
Fig. 1 zeigt in einem Blockdiagramm ein die Erfindung benutzendes Mehrprogrammsystem.
Fig. 2 zeigt eine schematische Darstellung von verschiedenen Hardwarestrukturen, die von der Erfindung benutzt
werden.
Fig. 3 zeigt eine Zusammenstellung von Ausdrücken, die für
reservierte Speicherbereiche in Registern verwendet werden, wie sie in Fig. 2 angedeutet sind.
Fig. 4 zeigt in einem Diagramm schematisch ein/Prozesssteuerblock.
Fig. 5 zeigt schematisch ein System zur Adressierung eines
Prozess-Steuerblockes
Fig. 6 zeigt ein Diagramm der Systemgrundlage der Erfindung.
Fig. 7A zeigen schematisch ein Stapelsegment bzw. einen Stapel-1111(1 7B
rahmen.
Fig. 8 zeigt schematisch den Aufbau eines Systems zur Adressierung
von G-Segmenten und insbesondere die Schlangenbildung von Prozessen in einem GO-Segment.
Fig. 9 zeigt in einem auseinandergezogenen Diagramm eines GO-Segments eine Schlange von Prozessen sowie eine
Prozessverbindung.
509826/0758
Fig. 10a zeigen in Blockdiagrammen Strukturen in dem Prozessbis 101
steuerblock.
Fig. 11a zeigen Blockdiagramme der Strukturen in der Systembis 11r
grundlage.
Fig. 12 zeigt schematisch Anwenderadressierungs-Prinzipien und Systemsegmente, die die Systemgrundlage und
Prozess-Steuerblockstrukturen verwenden.
Fig. 13 zeigt schematisch die Steuereinheit.
Fig. 14a zeigen Flussdiagramme einer Zuteilereinheit in
bis 141 Firmenware.
Fig. 15 zeigt eine Darstellung eines Maschinenbetriebbefehls für die Umschaltung des Operationsbetriebs der vorliegenden
Erfindung.
Fig. 16 zeigt in einem Flussdiagramm die Umschaltbetriebsoperation
der vorliegenden Erfindung.
Fig. 17 zeigt in einem Funktionsblockschaltbild Hardware und Firmenware, die für die Ausführung der Operationsbetriebsumschaltung
der vorliegenden Erfindung erforderlich ist.
Fig. 18 veranschaulicht in einem generellen Blockdiagramm den generellen Betrieb des Systems gemäss der vorliegenden
Erfindung.
Fig. 19 zeigt in einer Tabelle einen Emulator-Übertragungsbereich der vorliegenden Erfindung.
509826/0 758
■" ■ - 7 -
Fig. 20 zeigt ein Unterbrechungskennzeichen-Wortformat, das
in Verbindung mit der in Fig. 19 dargestellten Tabelle benutzt wird.
Fig. 21 veranschaulicht in einem Flussdiagramm die generelle Operation des Systems der vorliegenden Erfindung.
Fig. 22 zeigt in einem detaillierten Blockschaltbild die
Hardware, Firmenware und Software, die zur Ausführung der Emulation der Wartezustandssimulation in Verbindung
mit dem Emulator und der Zentraleinheit in dem System der vorliegenden Erfindung benutzt wird.
Im folgenden werden bevorzugte Ausführungsformen der Erfindung detailliert beschrieben. Die Erfindung arbeitet in typischer
Weise im Bereich eines nachstehend beschriebenen Hardware-Systems, das durch ein Hardware/Firmenware/Software-Betriebssystem
koordiniert wird. Gemäss Fig. 1 sind Untersysterne
vorgesehen; hierbei handelt es sich um das Zentraleinheitsbzw. Prozessor-Untersystem 101, das Speicher-Untersystem 102
und um ein oder mehrere - bis zu 32 - periphere Untersysteme
103. Das Prozessor-Untersystem enthält eine Zentraleinheit 104 und bis zu vier Eingabe/Ausgabe-Steuereinheiten 105·
Jedes zentrale Untersystern besteht aus einer peripheren
Steuereinheit 106, einer Anzahl von Einrichtungsadaptern 107 und bis zu 256 peripheren Eingabe/Ausgabe-Einrichtungen 108.
Das Speicher-Untersystem 102 besteht aus einem bis vier Halbleiter-Speichermodulen, die jeweils 32 bis 512 Kilobytes
zu speichern vermögen.
In dem Prozessor-Untersystem 101 führt die Zentraleinheit die Grund-Verarbeitungsoperationen für das System aus, und
509826/0758
245967S
ausserdem erfüllt sie S chnittstellenaufgaben zu dem Speicher 102 hin. Die Eingabe/Ausgabe-Steuereinheit 105 steuert
sämtliche Informationsaustausche zwischen dem Speicher-Untersystem 102 und den peripheren Einrichtungen 106.
A. Zentraleinheit
Die Zentraleinheit enthält eine Hauptspeicher-Synchronisiereinrichtung
109, einen Pufferspeicher 110, verschiedene Elemente, die die Recheneinheit 111 bilden, und Emulations-Einrichtungen
112. Die Hauptspeicher-Synchronisiereinrichtung 109 löst Konflikte hinsichtlich der Benutzung des Hauptspeichers
durch die Recheneinheit 111, den Pufferspeicher und die Eingabe/Ausgabe-Steuereinheit 109. Konflikte werden
auf einer Prioritätsgrundlage gelöst: Die Eingabe/Ausgabe-Steuereinheit besitzt die höchste Priorität, gefolgt von
Speichereinschreibvorgängen (von der Recheneinheit) und dann von Speicherlesevorgängen (in dem Pufferspeicher). Die
Haupt-Zentraleinheit enthält ferner die Adressensteuereinheit 131, die die Hauptspeicheradressierung und den assoziativen
Speicher 132 steuert, der dazu herangezogen wird, die jeweils erst unmittelbar zuvor benutzten Adressen des Hauptspeichers
zu speichern. Der Hauptspeicher 110 ist ein kleiner, mit hoher Geschwindigkeit arbeitender Pufferspeicher, der einen
ausgewählten Bereich des Hauptspeichers reproduziert und der als Schnittstelle zu der Recheneinheit wirkt, um die mittlere
Speicherzugriffszeit zu vermindern. Während des jeweiligen Speicherlesevorgangs ist ein Zugriff sowohl zudem Pufferspeicher
als auch dem Hauptspeicher vorhanden. Wenn die abzuholende Information bereits im Pufferspeicher ist, wird
der Hauptspeicher-Lesevorgang beendet, und die Information wird aus dem Pufferspeicher abgeholt. Ansonsten wird aus
dem Hauptspeicher 102 ausgelesen. Jedesmal, wenn dies geschieht, holt die Zentraleinheit 104 insgesamt 32 Bytes ab,
509826/0758
die die gewünschte Information enthalten. Diese Information verbleibt in dem Pufferspeicher für zukünftige Speicher-Bezugnahmen.
Da der Pufferspeicher-für Software transparent ist, kann die Programmsteuerung des Rechners zu irgendeinem
vorgegebenen Zeitpunkt nicht bestimmen, ob die Information, die sie verarbeitet, aus dem Pufferspeicher oder aus dem
Hauptspeicher abgeholt worden ist.
Die Recheneinheit 111 führt die gesamte Datenverarbeitungs-Adressenerzeugung
innerhalb der Zentraleinheit aus. Ein typischer Steuerspeicher 130 innerhalb der Recheneinheit
(siehe in diesem Zusammenhang das Buch mit dem Titel: »Microprogramming: Principles and Pratices", Samir S. Husson,
Prentice Hall, Inc.) enthält Firmenware, die das System voreinstellt, die Zentraleinheit 104 und die Eingabe/Ausgabe-Steuereinheit
105 steuert und einen Befehlssatz (nicht dargestellt) decodiert. Der Steuerspeicher kann fakultativ
technisch-wissenschaftliche Befehle Testratinen, Emulations-Packungen
oder Spezialzweckeigenschaften mit sich bringen, die die Fähigkeiten des Prozessor-Untersystems erweitern.
Gemäss einer Möglichkeit bewirkt die Zentraleinheit die
Emulation von anderen Systemen als dem vorliegenden System. Emulatoren 112 sind Komponenten der Firmenware, Software
und in gewissen Fällen der Hardware.
Die Eingabe/Ausgabe-Steuereinheit 105 ist Teil des Prozessor-Untersystems;
sie stellt einen Datenweg zwischen einem peripheren Untersystem 103 und dem Speicher-Untersystem 102 her.
Dieser Datenweg ermöglicht die Einführung von peripheren Befehlen und die Steuerung der resultierenden Datenübertragungen.
Eine Eingabe/Ausgabe-Steuereinheit kann in typischer
509826/0758
Weise bis zu 32 Kanalsteuereinheiten (nicht gezeigt) bedienen.
In einem peripheren Untersystem 103, wie es in Fig. 1 angedeutet ist, ist die periphere Steuereinheit 106 ein alleinstehender
Mikroprogrammierungs-Prozessor, der die Belastung der Zentraleinheit 104 dadurch erleichtert, dass eine
Steuerung der Eingabe/Ausgabe-Einrichtungen 108 während Eingabe/Ausgabe-Operationen erfolgt. Die periphere
Steuereinheit bewirkt dies durch Ausführung von Befehlen, die in einem Kanalprogramm enthalten sind. Dieses Programm
führt dazu, dass Rechenoperationen, Verknüpfungsoperationen, Transferoperationen, Verschiebeoperationen und Verzweigungsoperationen in der peripheren Steuereinheit ausgeführt werden.
Dabei sind mehrere Arten von peripheren Steuereinheiten vorhanden, und zwar in Übereinstimmung mit der Art der jeweils
steuernden Einrichtung, das sind: Lochkarte, Massen(Platten)
speicher, Magnetband, Nachrichtenverbindung, etc.
Einrichtungsadapter 107 sind zwischen jeder peripheren Steuereinheit und den Einrichtungen vorgesehen, die die
betreffende Steuereinheit steuert. Jeder Adapter enthält die zugehörige Firmenware und die erforderliche Logik, um
Nachrichtenverbindungen mit einer bestimmten Art von Einrichtung zu realisieren. In Abhängigkeit von der Einrichtungsart steuert ein Einrichtungsadapter 107 eine oder mehrere
Einrichtungen.
Die Hauptfunktionen, die von einem peripheren Untersystem 103 ausgeführt werden, sind folgende:
1. Transformieren von Zentraleinheits-Befehlen in eine
Reihe von Befehlen, die von der in Frage kommenden peripheren Einrichtung annehmbar sind.
509 826/0758
- JK -
2. Verdichten und Aufspreizen von Daten in der von der Zentraleinheit oder der in Frage kommenden peripheren
Einrichtung benötigten Form.
3. Ständiges Informieren der Zentraleinheit "bezüglich des
Status des Untersystems und der Einrichtungen, die unter der Steuerung der Zentraleinheit stehen.
4. Unabhängige Auslösung und Verarbeitung von Fehlerund Wiedergewinnungsprozeduren.
5. Zulassen einer schritthaltenden Diagnose einer Einrichtung ohne Störung der gemeinsamen Ausnutzung
der der Einrichtung zugeordneten peripheren Zentraleinheit.
Eine periphere Steuereinheit löst Konflikte bezüglich des
Hauptspeichers zwischen, den an ihm angeschlossenen Einrichtungen;
die Eingabe/Ausgabe-Steuereinheit löst jedoch Konflikte zwischen peripheren Steuereinheiten.
Jedes Speichermodul 1-4 besitzt eine Breite von vier oder acht Bytes. Die Anzahl der Modulen, ihre Grosse und die Datenwegbreite
kann entsprechend der Grosse des Rechners variieren. Speichermodulen sind vierfach verschachtelt, und zwar derart,
dass die vier Modulen sequentiell einen Zugriff erhalten (Modul 1 enthält die ersten acht Bytes, Modul 2 enthält die zweiten
acht Bytes, etc.). Durch die Verschachtelung wird die Anzahl
der Konflikte bezüglich des Zugriffs zu dem Hauptspeicher vermindert. Dadurch wird die mittlere Speicherzugriffzeit
verringert. Der Speicher ist im Falle eines Fehlers hinsichtlich
seiner Konfiguration neu zusammenstellbar. Dies bedeutet,
509826/0758
dass Speicherblöcke innerhalb eines Moduls entfernt werden können, ohne dass die abhängige Adressierung zerstört wird.
Der Hauptspeicher 102 besteht aus einem kapazitiven Speichermedium
in Form von Metalloxidhalbleiter-(MOS)-Chips. Dieses* Speichermedium arbeitet nach dem sogenannten Auffrischprinzip,
um die jeweilige Information beizubehalten. Jeder Speicherplatz wird in typischer Weise zumindest einmal alle zwei Millisekunden
aufgefrischt. Der Aufbau stellt sicher, dass wenige Konflikte zwischen der Auffrischzeitsteuerung und den Speicherzugriffen
auftreten. ( In Konfliktfällen hat die Auffrischung Vorrang).
Ein Bereich am Anfang des Hauptspeichers ist reserviert für Hardware und Firmenware. Die obere Grenze dieses Bereichs
ist definiert durch den Inhalt eines Grenzadress-Registers (BAR), das nachstehend noch näher beschrieben wird und das
für die System-Software greifbar ist. Der Inhalt des Grenz-Adressregisters wird zur System-Auslösungszeit festgesetzt.
De.r Speicherbereich unterhalb der in dem Grenzadressregister bezeichneten Adresse kann Eingabe/Ausgabe-Steuereinheiten-Tabellen
enthalten, die die Konfiguration der peripheren Untersysteme bestimmen. Ferner kann der betreffende Speicherbereich
Firmenware zur Steuerung der Zentraleinheit oder Mikroprogramme und Tabellen für eine Emulation enthalten.
Die Grosse des Bereichs unterhalb der Adresse, die in dem Grenzadressregister bezeichnet ist, hängt von der System-,,
konfiguration ab. Ob Mikroprogramme in dem Hauptspeicher oder in dem Steuerspeicher vorhanden sind, hängt von der
Systemkonfiguration und von den Anwendungen ab, bezüglich welcher das System betrieben ist.
In typischer Weise werden drei Grunddaten-Strukturen in dieser Hardware benutzt: Datenformate, für Software ver-
509826/0758
fügbare Register und Befehlsformate.
Zwischen dem Speicher und der Zentraleinheit erfolgt eine Informationsübertragung in Vielfachen von acht parallelen
Bits. Jede 8-Bit-Informationseinheit wird ein Byte genannt. Ferner werden Paritäts- oder Fehlerkorrekturdaten mit
Daten übertragen; sie können jedoch nicht durch die Software beeinflusst werden. Deshalb schliesst im vorliegenden Fall
der Ausdruck Daten die zugehörigen Paritäts- oder Fehlerkorrekturdaten aus.
B. Bytes
Die innerhalb eines Bytes auftretenden Bits werden von links nach rechts mit Null bis 7 beziffert. Die Bytes werden gesondert
oder in Gruppen verarbeitet. Zwei Bytes stellen ein Halbwort dar, vier Bytes stellen ein Wort dar, acht Bytes
stellen ein Doppelwort dar, und sechzehn Bytes stellen
ein Vierfachwort dar. Dies sind die Grundformate für sämtliche Daten, einschliesslich Befehle.
Sämtliche Daten liegen in Binärform vor; sie können jedoch in Binärform, Dezimalform oder in alphanumerischer Form interpretiert
werden. Datenbits werden in Gruppen von vier Bits als binär codierte Dezimaldaten interpretiert. Acht Bits
werden als alphanumerische Daten interpretiert; sechzehn bis vierundsechzig Bits werden als Binärziffern interpretiert.
Die zuletzt genannten Daten werden als vorzeichenbehaftete
komma komma
FesV- oder Gleit/ -Zahlen in binärer Darstellung interpretiert.
FesV- oder Gleit/ -Zahlen in binärer Darstellung interpretiert.
Irgendeine Anzahl von abhängigen Bits bis zu einem Doppelwort kann überdies als Zeichenreihe gehandhabt bzw. manipuliert
509826/0 7 58
werden, die alphanumerische Zeichenreihe ist in EBCDIC-Darstellungsweise
(erweiterter 8-Bit-BCD-Code) dargestellt. Eine ASCII-Darstellung wird als alternativer Vermittlungscode
geführt.
Byte-Speicherplätze sind in dem Hauptspeicher aufeinanderfolgend von Null aus beginnend numeriert. Jede Zahl ist die
Adresse des Bytes. Eine Gruppe aufeinanderfolgender Bytes wird als bezüglich eines Halbwortes, eines Wortes, eines
Doppelwortes oder eines Vierfachwortes ausgerichtet angesehen, wenn die Adresse des linken Bytes in einer Gruppe ein Vielfaches
von 2, 4, 8 oder 16 ist. Wenn ein Halbwort, ein Wort, ein Doppelwort oder ein Vierfa.chvrort derart ausgerichtet
ist, kann jene Einheit von der betreffenden Adresse abgeholt werden. Die Datenspeicherstelle in dem Hauptspeicher
ist durch einen Datendeskriptor angegeben, zu dem während der Adressenbildung indirekt ein Zugriff vorhanden ist.
In der Zentraleinheit 104 gemäss Fig. 1 sind 33, für den
Anwender verfügbare Register vorhanden, deren Inhalte gemeinsam den Zustand der Zentraleinheit angeben. Dabei sind
vier Arten von Registern vorhanden: (Siehe Fig. 2)
1. Allgemeine Register bzw. Mehrzweckregister,
2. Basisregister,
3. Technisch-Wissenschaftliche Register (fakultativ)
4. Verschiedene Register
Komma
Allgemeine Register 201 werden dazu benutzt, Fesi/-Binärzahlen
und Bitfolgen zu manipulieren. Dabei sind in typischer Weise sechzehn 32-Bit-Mehrzweckregister bzw. allgemeine Re-
509826/0758
gister in der Zentraleinheit 104 vorhanden, nämlich die Register GRO bis GR15. Die allgemeinen Register bzw. Mehrzweckregister
GR8 bis GR15 sind ausserdem als Indexregister
benutzbar. Wenn diese Register als Indesregister benutzt werden, werden sie hier als Register XO bis X7 bezeichnet. Die
Indizierung wird unter Verwendung der in einem Register enthaltenen ganzen 32-Bit-Zweierkomplementzahl ausgeführt.
Basisregister besitzen dasselbe Format wie Befehlszähler und Stapelregister 202, 203· Die Basisregister werden während
der Adressenberechnung benutzt, um einen Teil des Speichers zu definieren. In typischer Weise sind acht 32-Bit-Basisregister
BRO bis BR7 vorhanden.
H. Technisch-Wissenschaftliche Register
Technisch-Wissenschaftliche Register stellen eine fakultative Anlage für die Ausführung einer Berechnung im Zusammenhang
mit Gleitkommazahlen dar. In typischer Weise sind vier technischwissenschaftliche 8-Byte-Register vorhanden, die mit SRO
bis SR3 bezeichnet sind. Die technisch-wissenschaftlichen Register besitzen das Format 204 bis 205 gemäss Fig. 2.
Es gibt noch fünf weitere Register:
Befehlszähler - mit einem Format 202-203, Zustandsregister - mit dem Format207
Stapelregister (T-Register genannt), Grenzadressenregister - mit dem Format 202-203,
Hardware-Steuerausblendregister — mit dem Format 208
Der Befehlszähler ist ein 32-Bit-Register, welches die Adresse des Befehls enthält, der ausgeführt wird. Das Zustandsregister
509826/0758
207 ist ein 8-Bit-Register, welches Tatbestände bezüglich
der gerade ausgeführten Prozedur aufzeichnet, wie zum Beispiel den Tatbestand, ob ein Unterlauf durch die gerade erst ausgeführte
Operation bewirkt worden ist. Das Stapelregister, das auch als T-Register bekannt ist, ist ein 32-Bit-Register,
welches einen Zeiger enthält, der zur Oberseite eines Stapelspeichers hinzeigt, der der geraden aktiven Prozedur zugehörig
ist. Weiter unten noch zu beschreibende Stapelspeicher stellen einen Arbeitsplatz und einen Mechanismus zum Pesthalten von
örtlichen Variablen bereit, erhalten die Prozedureingabe und führen die Information zurück. Das Grenzadressenregister
206 ist ein 28-Bit-Register, welches die niedrigste absolute Hauptspeicheradresse, die durch Software verfügbar ist, angibt*,
dieses Register wird während der System-Initialisierung geladen; es kann lediglich durch Software gelesen werden. Das
Hardware-Steuerausblendregister 208 ist ein 8-Bit-Register, welches die Maschinenzustandsinformation aufzeichnet.
Es gibt etwa 200 Befehle, obwohl mehr oder weniger Befehle verwendet werden können. Jeder Befehl besitzt eine Länge
von vier verschiedenen Längen; meistens besitzen die Befehle jedoch eine gerade Anzahl von Bytes. Die Befehle werden
in aufeinanderfolgenden Speicherplätzen gespeichert. Die Adresse des am weitesten links stehenden Bytes ist
ein Vielfaches von 2; sie stellt die Adresse des Befehls dar.
Die acht Bits höchster Wertigkeit (und in gewissen Fällen die Bits 8 bis 11 oder 12 bis 15) eines Befehls stellen
den Operationscode dar, während die übrigen Bits einen oder mehrere Operanden darstellen. Ein Operand kann ein Register-Bezeichner,
ein Versetzungs-Bezeichner, eine Adressensilbe (Verknüpfungsadresse), ein Literalwert bzw. ein Zwischen-Literalwert
sein. Die Art und Anzahl der Operanden sind durch
509826/0758
das Befehlsformat "bestimmt.
III. Systemorganisation
III. Systemorganisation
Die von dem Rechnersystem auszuführende Arbeit wird extern durch eine Reihe von Job-Schritten über die Job-Steuersprache
festgelegt. Ein Job-Schritt ist eine Arbeitseinheit, der Hardware-Hilfsquellen zugeteilt werden. In typischer Weise umfasst
ein Job-Schritt mehrere Aufgaben. Eine Aufgabe ist die kleinste Einheit der durch den Anwender festgelegten Arbeit, bestehend
aus einem Strom von Befehlen, die parallel ausgeführt werden.
B. Prozess
Die für den Anwender verfügbaren Begriffe des Aufgaben- und
Job-Schritts sind indsr Hardware durch einen Prozess bzw.
eine Prozessgruppe dargestellt. Ein Prozess wird definiert als eine geordnete Folge von Befehlen, die von der Zentraleinheit
asynchron ausgeführt werden können (das bedeutet, dass mehrere Prozesse aktiv sein können und sich Hilfsquellen
teilen, obwohl lediglich ein Prozess tatsächlich zu irgendeinem Augenblick läuft). Eine Prozessgruppe ist ein verbundener
Satz von Prozessen, die zur Ausführung eines Job-Schrittes erforderlich sind.
Da Prozesse die Zentraleinheits-Steuerung an verschiedenen Punkten während ihrer Ausführung aufgeben können, wird ein
Speicherbereich in dem Hauptspeicher für einen Prozess verfügbar gemacht, um den Zustand bzw. Status der Zentraleinheit
festzuhalten. Diese Zustandsinformation wird dazu herangezogen, die Zentraleinheit in einen Vorbedingungszustand zu bringen,
bevor ein Prozess wieder die Steuerung der Zentraleinheit erhält.
50 9 8 26/0758
Der einem Prozess zugeteilte Steuerbereich wird Prozesssteuerblock
400, wie dies in Fig. 4 gezeigt ist, genannt. Die in einem Prozess-Steuerblock enthaltenen Daten umfassen
die Adressen der Speicherbereiche (Speicherplatz), die dem Prozess zugeteilt sind, dem Inhalt sämtlicher einschlägiger
Register und den Zustand des Prozesses. Demgemäss dient der Prozess-Steuerblock als Kurzzeitspeicherbereich für die Information,
die für den Beginn oder Neubeginn eines Prozesses ohne irgendeinen Informationsverlust erforderlich ist. Jeder
Prozess-Steuerblock ist für die Hardware verfügbar. Er kann durch das Betriebssystem über eine Reihe von Hardware-Tabellen
adressiert werden, die während der Systeminitialisierung gebildet und während der Systemoperation (Fig. 5) modifiziert
werden.
Es ist ferner ein absoluter Hauptspeicherberebh vorhanden,
auf den als Systembasis Bezug genommen wird (Fig. 5 und 6). Dieser Bereich wird durch Firmenware gebildet. Zu dem betreffenden
Bereich ist ein Zugriff über das Basis-Adress-Register 501 ermöglicht, welches zwar ausgelesen werden
kann, in welches aber nicht eingeschrieben werden kann. Die Systembasis bzw. -grundzahl 502 erhält eine Anzahl
von Systemeigenschaften, die eine Job-Schritt-Zahl bzw. eine Prozessgruppennummer (J, P) für den gerade laufenden
Prozess einschliessen. Eine weitere Eigenschaft in der Systembasis ist ein Zeiger auf eine durch Hardware definierte
Datenstruktur, die als J-Tabelle 503 bekannt ist. Diese
Tabelle enthält einen Eintrag für jeden in dem System gegenwärtigen Job-Schritt. Jeder Eintrag in der J-Tabelle
zeigt auf eine zugeordnete P-Tabelle 504, die ebenfalls
eine durch Hardware definierte Datenstruktur ist. Diese Tabelle bzw. Tafel definiert eine Prozessgruppe; sie
enthält einen Eintrag für jeden Prozess in der Prozessgruppe. Jeder P-Tabelleneintrag zeigt auf einen Prozess-Steuerblock
400.
509826/0 758
Gemäss Fig. 5 liefert der J-Tabellenzeiger 505, der durch
die J-Zahl über den Rechenteil 506 der" Recheneinheit 111 (Fig. 1)
indiziert ist, einen Zugriff zu einem J-Tabellen-Eintrag 503. Dieser Eintrag enthält einen B-Tabellen-Zeiger, der auf eine
Indizierung durch die P-Zahl über die Recheneinheit 506 einen Zugriff zu einem P-Tabellen-Eintrag 504 liefert. Der
P-Tabellen-Eintrag enthält einen Zeiger 507 auf den Prozesssteuerblock
des gerade laufenden Prozesses. Infolgedessen kann das Betriebssystem einen Zugriff zu dem aktiven Prozesssteuerblock
erhalten, und zwar unter Verwendung des Inhalts des Grenzadressenregisters 501.
Ausserdem kann ein Zugriff zu irgendeinem anderen Prozess-Steuerblock
erfolgen, dessen zugehöriger Verknüpfungsname (J, P)gegeben ist.
In einem Mehrprpzessbereich, wie er hier beschrieben wird,
existieren zu irgendeinem gegebenen Zeitpunkt vier Prozesse in dem Speicher. Diese Prozesse variieren in der Grosse und
benötigen einen Speicher, der ein Speicherzuordnungsproblem bewirkt. Die hier im Zusammenhang mit einem (nicht gezeigten)
Betriebssystem zusammenarbeitende Hardware löst das Problem durch dynamische Zuteilung von Speicherplatz. Aufgrund der
Zufallseigenschaft von Speicheranforderungen ist der Speicher in Segmente variabler Grosse zur Verfügung gestellt. Die
Speicherzuteilung kann dabei während der Prozesslaufzeit neu gebildet werden. Demgemäss kann einem Prozess eine Anzahl
von nicht abhängigen Speichersegmenten zugeteilt werden. Dieses Speicherzuteilungsverfahren wird als Prοgrammunterteilung
bzw. Segmentierung bezeichnet.
Die betreffende Programmunterteilung bringt ein zusätzliches
Problem mit sich, und zwar insofern, als Speicheradressen
509826/0758
zu modifizieren sind, i'ienn ein Teil eines Prozesses oder
der gesamte Prozess verlagert wird. Um dieses Problem zu mildern, stellt das hier beschriebene System ein Verfahren
bereit, durch das die von einem Prozess benutzten Adressen Verknüpfungsadressen anstelle von absoluten Hauptspeicheradressen
sind. Diese Verknüpfungsadressen werden dazu herangezogen,
absolute Adressen zu bilden,.
Die Segmentierung ermöglicht ferner jedem Prozess,einen Zugriff
zu seinen eigenen oder in Beziehung stehenden Speichersegmenten über ein System von Segmentdeskriptoren zu erhalten.
Durch Zugriff zu einem Segmentdeskriptor kann ein Prozess die Adresse eines Segments erhalten. · Die Segmentdeskriptoren
sind in dem Hauptspeicher enthaltenι sie werden durch das
Betriebssystem beibehalten.
Jeder Prozess kann einen Zugriff bis zu 2 068 Speichersegmenten erhalten. Normalerweise würde dies eine gleiche Anzahl
von Segmentdeskriptoren pro Prozess erforderlich machen. Da jedoch Segmente geteilt werden können, teilt das Betriebssystem
die Segmentdeskriptoren in Segmenttabellen auf. Diese Gruppierung basiert auf der Zugänglichkeit durch einen Prozess
(Aufgabe), eine Prozessgruppe (Job-Schritt) oder umfassend (systemweit). Jedem Prozess können bis zu 15 Segmenttabellen
zugeordnet sein. Dieses Verfahren erfordert lediglich einen Segmentdeskriptor für Jedes Segment, zu welchem von einem
Prozess über eine Segmenttabelle ein Zugriff erfolgen kann. Demgemäss ist der für die Segmentdeskriptoren erforderliche
Speicherplatz vermindert. Ausserdem ist die Speieher-Aktualisierung
während der Verschiebung bzw, Neuadressierung vermindert, und ausserdem ist ein gewisser Programmschutz erzielt,
Sin Prozess muss im Stande sein anzugeben* zu welchem Segment
der betreffende Prozess einen Zugriff ermöglicht hat, Demgemäss stellt das System einen Prozess mit zwei Segment»
509826/0758
tabellen-Wortfeidern bereit. Diese Felder enthalten die Adressen
sämtlicher Segmenttabellen, die für einen Prozess zugänglich sind. Dabei existieren zwei Segmenttabellen-Wortfelder pro
Prozess, da zwei Segmentgrössen vorhanden sind, nämlich grosse
Segmente und kleine Segmente. Die grossen Segmente besitzen
22
eine maximale Grosse von 2 Bytes, während die kleinen Seg-
eine maximale Grosse von 2 Bytes, während die kleinen Seg-
1 fi
mente eine maximale Grosse von 2 Bytes besitzen. Sämtliche
Segmente variieren in der Grösse, und zwar in 16-Byte-Stufen
bis zum Maximalwert. Ein System kann in typischer Weise bis zu 28 grosse Segmente und 2 040 kleine Segmente unterbringen.
Die Segmenttabellen-Wortfelder können durch das Betriebssystem neu adressiert werden. Deshalb muss ein Prozess die absolute
Adresse seines zugehörigen Segmenttabellen-Wortfeldes wissen. Der Programmsteuerblock für irgendeinen Pxozess enthält zwei
Worte, die diese Information enthalten. Diese beiden Worte sind als Adressplatzworte ASWO-1 gemäss Fig. 4 bekannt.
Jedes Wort zeigt auf ein Segmenttabellen-Wortfeld STWA. Das Betriebssystem aktualisiert den Inhalt des Adressplatzwortes
ASW, wenn das zugehörige Segmenttabellen-Wortfeld neu adressiert wird. Das Abarbeiten der Kette von Zeigern
und die Decodierung des Segmentdeskriptors ist eine Firmenware-Funktion. Nachdem diese Funktion einmal eingeleitet ist,
ist sie daher nicht verfügbar, und zwar auch nicht für das Betriebssystem.
Die Segmentierung bestimmt über 200 Millionen Adressenplatz-Bytes als für Prozesse verfügbar. Diese Zahl übersteigt
die Kapazität des Hauptspeichers. Daher wird ein Sekundärspeicher (Magnetplatte oder Magnettrommel) in Verbindung mit
dem Hauptspeicher verwendet. Das Betriebssystem ruft das Trugbild hervor, dass das System einen wesentlich grösseren Haupt-
SlJ-S
speicher besitzt/er tatsächlich verfügbar ist. Dieses Konzept wird als virtueller Speicher bezeichnet.
509826/0758
Zu irgendeinem gegebenen Zeitpunkt kann ein definiertes Segment physikalisch im Hauptspeicher vorhanden sein oder nicht.
Der Inhalt eines Segmentdeskriptors zeigt an, ob das zugehörige Segment im Hauptspeicher ist oder nicht. Die Hardware
ermittelt jegliche Versuche seitens des Prozesses, einen Zugriff zu einem Segment zu erhalten, das nicht im Hauptspeicher
ist; die betreffende Hardware zeigt entsprechendes dem Betriebssystem
an. Das Betriebssystem besirkt, dass/erwünschte
Segment aus dem Sekundärspeicher in den Hauptspeicher geladen wird. Sodann bringt das Betriebssystem die Segment-Speicheradresse
in dem. Segmentdeskriptor unter, die den einzigen Platz darstellt, wo die absolute Adresse eines Segments gefunden
werden kann. Diese Operation ist für den Prozess nicht zugänglich, weshalb bei dem betreffenden Prozess nicht bekannt
ist, dass das Segment nicht im Hauptspeicher war oder dass es im Hauptspeicher neu adressiert sein kann.
Das hier beschriebene Rechnersystem bringt einen Daten- und Prozedurschutz mit sich, und zwar dadurch, dass eine gegenseitige
Störung von Prozessen oder eine gegenseitige Teilung des Adressenraumes in einer nicht erlaubten Weise verhindert
ist. Dieser Schutz wird durch Beschränkung der Adressierbarkeit über die Speichersegmentierung bzw. Programmunterteilung
und durch ein Ringsystem bewirkt.
Die Segmenttabellen trennen den Adressenraum der verschiedenen Prozesse in dem System0 Die Prozesse benutzen dabei stets
eine segmentierte Adresse während der Ausführung. Eine segmentierte
Adresse besteht aus einer Segmentnummer und aus einer relativen Adresse innerhalb des Segments (wie dies
an anderer Stelle beschrieben wird). Die Hardware stellt durch Überprüfung fest, dass die von einem Prozes"? benutzte
Adresse Teil des dem Prozess zugeteilten Adressi-nraumes ist.
Befindet sich die Adresse ausserhalb des vorgeschriebenen
509826/0758
Adressenraums, so tritt eine Ablehnung auf. Ein Prozess kann sich nämlich nicht auf Daten innerhalb des Adressenraumes
eines anderen Prozesses beziehen, da die Hardware die Segmenttabellen des bezugnehmenden Prozesses verwendet.
Demgemäss existiert keine Möglichkeit für einen Prozess oder
eine Prozessgruppe, auf eine Gesamtheit bzw. Einheit Bezug zu nehmen, die zu· einer anderen Prozessgruppe gehört.
Im allgemeinen tritt eine Überlappung im Adressenraum in dem System bezüglich jener Segmente auf, die von sämtlichen
Prozessen geteilt werden. Diese allgemeinen Segmente werden durch Systemprogramme hervorgerufen, die eine Prüfung ausführen,
um eine Sicherung gegenüber Adressenkonflikten ' herbeizuführen. Demgemäss schützt die Segmentierung Anwenderprogramme
gegeneinander, und ausserdem schützt sie das Betriebssystem
gegenüber Anwenderprogrammen.
Segmente, die sich mehrere Prozesse teilen, sind vor einem Missbrauch durch einen dieser Prozesse nicht geschützt.
Um dieses Problem zu lösen, wird ein Ringsystem verwendet, wodurch Prozedur- und Datensegmente in a.ner 4-Klassen-HJerarchie
gruppiert sind. Die vier Ringklassen sind mit Null bis 3 numeriert. Jeder Ring stellt eine Ebene des
Systemvorrangs dar; die Ebene Null (innerster Ring) besitzt den höchsten Vorrang, und die Ebene 3 (äusserster Ring)
besitzt den niedrigsten Vorrang. Jede Prozedur in dem System besitzt eine minimale und eine maximale Ausführungsringzahl,
die der betreffenden Prozedur zugeteilt ist und die angibt, wer die Prozedur anfordern kann. Eine Prozedur ist eine
Subroutine bzw. ein Unterprogramm, die bzw. das im Stande ist, weitere Prozeduren aufzurufen und Parameter den betreffenden
Prozeduren zuzuführen. Die allgemeinen Regeln des Ringsystems sind folgende:
1. Eine Prozedur in einem inneren Ring besitzt frei_an
Zugriff zu Daten in einem ausseren Ring, umgekehrt kann
eine Prozedur in einem äusseren Ring keinen Zugriff zu Daten in einem inneren Ring erhalten.
509826/0758
2. Eine Prozedur in einem äusseren Ring kann sich verzweigen
zu einer Prozedur in einem inneren Ring! die Umkehrung
ist jedoch nicht ermöglicht.
3. Jedes Daten enthaltende Segment ist zwei Ringwerten zugeteilt; der eine Wert dient zum Lesen 9 und der andere Wert
dient zum Schreiben. Diese Ringwerte geben den maximalen Ringwert an, in dem eine Prozedur ablaufen kann, wenn ein
Zugriff zu den Daten entweder im Lesebetrieb oder im Schreibbetrieb erfolgt.
Jedesmal, wenn ein Prozedurbefehl ausgeführt wird, wird die Ringnummer der betreffenden Prozedur bzw. des betreffenden
Verfahrens (das ist der effektive Adressenring) im Hinblick auf die Ringnummern geprüft, die dem Segment zugeteilt sind,
welches die Bezugsdaten enthält. Der effektive Adressenring ist die maximale Zahl der Prozessringzahlen in dem Befehlszähler
und sämtlicher Ringzahlen in den Basisregistern und der Datendeskriptoren, die im Adressierungsweg gefunden
werden. Ein Zugriff zu den Daten wird auf der Grundlage eines Vergleichs der Ringzahlen bzw. Ringnummern ermöglicht oder
abgelehnt. Wenn eine Systemtabelle in einem Segment mit einem maximalen Leseringwert von 3 und einem maximalen Schreibring
von 1 beispielsweise existiert9 kann eine im Ring 3 ausgeführte
Anwenderprozedur die Tabelle lesen, nicht aber die Tabelle aktualisieren.
Durch vorherige Festlegung sind die RingeNull und 1 für das Betriebssystem reserviert?und die Ringe 2 und 3 sind
für den Anwender reserviert. Der Ring Null enthält diejenigen Segmente, die für den gesamten Systembetrieb kritisch sind.
Der Ring 1 enthält die Masse der Systemsegmente«, deren Ausfall bzw. Fehler nicht verhängnisvoll^ sondern eine Rückkehr
zulassen würde« Der Anwender kann den Ring 2 für Funktions-
509826/0758
Prüfprogramme verwenden, und der Ring 3 kann für Programmkorrektur
verwendet werden.
Der Prozeduraufruf ist eine bedeutende Funktion in dem hier
beschriebenen System. Prozedur-Aufrufe werden dazu herangezogen, von einer Prozedur auf eine andere Prozedur überzugehen, um
Anwenderprozeduren die Möglichkeit zu geben, Betriebssystemdienste zufoenutzen und um eine modulare Struktur innerhalb
des Betriebssystems zu erzielen. Ein Prozeduraufruf wird
durch Befehle und durch eine durch Hardware erkannte Einheit
bewirkt, die als Stapelspeicher bezeichnet wird (Fig. 7A).
Ein Stapelmechanismus ist ein Mechanismus, der Daten aufzunehmen,
zu speichern und wieder aufzufinden gestattet, und zwar auf der Grundlage, dass die zuletzt eingegebenen Daten
die zuerst ausgegebenen Daten sind. Stapelspeicher finden sich in speziellen Segmenten, die Stapelspeichersegmente
genannt werden. Ein aapelspeichersegment besteht aus einer Anzahl von abhängigen Teilen, die Stapelspeicherrahmen 701
genannt werden (Fig. 7A und 7B), welche der jeweiligen Prozedur dynamisch augeteilt werden. Der erste Stapelspeicherrahmen
wird in die Oberseite des Segments geladen, und die nachfolgenden Rahmen werden danach in das Segment geladen.
Der letzte, in das Segment geladene Rahmen wird als Oberseite des Stapelspeichers betrachtet. Das T-Register 702
legt die Oberseite des Stapelspeichers für den derzeit aktiven Prozess fest. Ein virtuelles T-Register existiert
in dem Prozess-Steuerblock sämtlicher anderer Prozesse in dem System.
Ein Stapelspeicherrahmen 701 gemäss Fig. 7B besteht aus
drei Bereichen: Einem Arbeitsbereich 702, in welchem Variable gespeichert werden, einem Verbindungsbereich bzw. Sicherstellungsbereich
703, in welchem die Inhalte von Registern
509826/0758
sichergestellt werden, undeinem Verständigungsbereich 704, in welchen Parameterzwischenprozeduren einlaufen. Vor einem
Prozeduraufruf muss der Anwender diejenigen Register angeben,
die er zu erhalten wünscht, und ausserdem muss der Anwender in den Verständigungsbereich bzw. Kommunikationsbereich
die Parameter laden, die der gerufenen Prozedur zuzuführen sind. Wenn der Aufruf erfolgt ist, behält die Hardware die
Inhalte des Befehlszählers IC und der bezeichneten Basisregister bei, um eine Rückkehr von einer aufgerufenen Prozedur
zu erleichtern.
Jeder Prozeduraufruf bringt einen Stapelspeicherrahmen innerhalb eines Stapelspeichersegments 701 hervor, und nachfolgende
geschachtelte Aufrufe rufen zusätzliche Rahmen hervor. Jede Ausgabe von einem dieser aufgerufenen Prozeduren bewirkt,
dass ein Stapelspeicherrahmen aus dem Stapelspeicher zu löschen ist. Demgemäss wird eine Entwicklung von Aufrufen
beibehalten, die eine ordnungsgemässe Rückkehr ermöglichen.
Um einen Schutz zwischen Prozeduren sicherzustellen, die in unterschiedlichen Ringen ablaufen, werden unterschiedliche
Stapelspeichersegmente verwendet. Dabei ist ein Stapeispeicherse.gment
entsprechend dem jeweiligen Schutzring pro Prozess vorhanden. Ein Prozess-Steuerblock enthält drei Stapelspeicher-Basisworte,
die zum Anfang der Stapelspeichersegmente für die dem betreffenden Prozess zugehörigen Ringe 0, 1 und 2
hinzeigen, in das Ring-3-Stapelspeichersegment kann von
einem Eingangs-Aufruf her niemals eingetreten werden; deshalb
ist dessen Stapelspeicher-Startadresse in dem Prozess-Steuerblock nicht erforderlich.
IV. Prozessführung und -synchronisation
Das hier beschriebene System führt zu MehrprozLssor-Operationen,
die durch ein Betriebssystem gesteuert werden, welches
509826/0758
eine Kombination von Software, Hardware und Firmenware benutzt, Die Software ruft Prozesse in dem System hervor und hebt sie
nach, dem auf, während die Hardware und die Firmenware / Multiplexprinzip
Prozesse in der Zentraleinheiijablaufen lassen. Darüber hinaus führt eine Kombination der Software, Hardware
und Firmenware zur Synchronisation zwischen den Prozessen.
Prozesse werden normalerweise, nicht jedoch immer, mit der Einleitung und dem Ende von Eingabe/Ausgabe-Operationen
begonnen bzw. stillgesetzt, und zwar während einer damit verbundenen Job-Verarbeitung. Zu anderen Zeitpunkten erfolgt
ein entsprechender Beginn und eine entsprechende Stillsetzung der Prozesse für Zwecke, die von dem Betriebssystem als
erforderlich bewertet werden. Demgemäss ist ein Kommunikationssystem
erforderlich, um effektiv in Beziehung stehende Prozesse zu beginnen und stillzusetzen und zwischen diesen
Prozessen eine Information, übertragen zu lassen. Das Hardware-System
liefert hier interne Nachrichten, die als Semaphore bezeichnet werden, um eine Nachrichtenverbindung zwischen
den Prozessen herbeizuführen.
Ein Prozess kann in einem von vier möglichen Zuständen zu irgendeinem Zeitpunkt sein: Betriebs- oder Laufzustand,
Bereitschaftszustand, Wartezustand oder Unterbrechungszustand. Die Hardware erkennt diese vier möglichen Prozesszustände
und führt verschiedene Firmenware-Prozeduren aus, um die Prozess-Zuteilung und Zustandsänderungen zu bewirken und um
Datenstrukturen beizubehalten, und zwar auf der Grundlage eines Prozesszustands. Der Prozess-Steuerblock enthält ein
Zustandsfeld, welches den gegenwärtigen Zustand seines zugehörigen Prozesses angibt.
5098 2 6/0758
Ein Prozess befindet sich im Laufzustand, wenn der betreffende
Prozess durch die Zentraleinheit gesteuert wird. Dieser Zustand umfasst die Bereitstellung eines Adressenraumes (Segmenttabellen)
und einer Startadresse für die Zentraleinheit. Die Zentraleinheit führt dann Befehle in den Prozedursegmenten des Prozesses
aus. Das Prozessname-J-Tabellenwort (Verknüpfungsadresse)
des Prozess-Steuerblockes für den gerade laufenden Prozess wird in dem laufenden Prozesswort (BAR +60) innerhalb der
Systembasis (Fig. 6) festgehalten (es sei darauf hingewiesen, dass die in Fig. 5 dargestellte Systembasis dieselbe ist, wie
sie in Fig. 6 dargestellt ist, dass allerdings einige Einzelheiten weggelassen sind).
Der Bereitschaftszustand ist dem Laufzustand bzw. Betriebszustand äquivalent; eine Ausnahme hiervon bildet die Tatsache,
dass der Prozess nicht die Steuerung der Zentraleinheit besitzt, da er von der Zentraleinheit nicht erkannt worden
ist. Ein Prozess im Bereitschaftszustand befindet sich für die Zentraleinheit gewissermassen in Konkurrenz mit anderen
Bereitschaftsprozessen und-dem laufenden Prozess.
Ein Prozess befindet sich im Wartezustand, wenn er nicht fortgesetzt
werden kann, bis ein bestimmtes Ereignis auftritt, wie eine Nachricht über ein Semaphor. Sin Warteprozess befindet
sich nicht gewissermassen in einem Wettbewerb um die Zentraleinheit; es kann jedoch gewissermassen ein Wettbewerb
zwischen dem betreffenden Warteprozess und anderen Warteprozessen bezüglich des benötigten Ereignisses vorhanden seil.
Ein aufgeschobener Prozess ist ein Prozess, der für eine Zeitspanne durch Software angehalten worden ist und der
später wieder aufgenommen werden kann. Die Entscheidung bezüglich des Anhaltens und der Wiederaufnahme des Prozesses
erfolgt ausserhalb des Prozesses. Demgemäss ist ein aufgeschobener Prozess nicht aktiv und kann daher nicht Kenntnis
509826/0758
erhalten von dem Auftreten eines Ereignisses. Ausserdem kann der betreffende Prozess die Zentraleinheit nicht benutzen.
Ein Prozess wird unter folgenden Bedingungen unterbrochen:
1. Durch Ausführen eines Beendigungsbefehls (als Ergebnis
des Abschlusses seiner sämtlichen Funktionen),
2. durch Ausführen eines unterbrochenen Befehls durch das Betriebssystem,
3. durch das Auftreten einer Ausnahmebedingung, wodurch die Steuerung auf das Betriebssystem übertragen wird.
Prozesse gehen auf entsprechende Absicht hin von einem Zustand in einen anderen Zustand über, und zwar aufgrund der Wirkung
des laufenden Prozesses oder bei entsprechender Absicht durch die Wirkungen anderer Prozesse. Die als Zuteiler bekannte
Zentraleinheits-Firmenware steuert den Übergang der Prozesse zwischen den Zuständen. Der Zuteiler benutzt eine Reihe von
Schlangen (die später beschrieben werden),um Prozesse zu bedienen,
die sich im Bereitschaftszustand oder in Wartezuständen befinden. Unterbrochene Prozesse werden durch Software
gesteuert.
Gemäss Fig. 6, 8 und 9 wird ein Bereitschafts- oder Warteprozess
durch einen Prozess-Steuerblock und einen speziellen WarteSchlangeneintrag, der als Prozessverbindung bezeichnet
wird, dargestellt. In Fig. 9 ist dabei in einer auseinandergezogenen Darstellungsweise der Inhalt des GO-Segments 802
dargestellt. Der betreffende Segmentinhalt enthält Prozessverbindungsglieder
803a bis 803b und 803c bis 803g von aktiven Prozessen und freie Prozess-Verbindungsglieder 805a
509826/0 758
bis 805c von unterbrochenen Prozessen. Jede Prozessverbindung gibt den Prozessnamen (J, P, ) die Prozesspriorität und
einen Zeiger an, der auf die nächste Prozessverbindung in der Warteschlange hinzeigt. Dabei sind verschiedene Typen
von Warteschlangen vorhanden, wie die Warteschlange 803a-b und die Bereitschafts-Warteschlange 8OJ5c-g.
Eine der J-Tabelle ähnliche Hardware-Einrichtung, die als
G-Tabelle bezeichnet wird (Fig. 6 Und 8)^enthält Zeiger für
setliche (bekannte systemweite) allgemeine Segmente 802
bis 802n. Das erste Element GO der G-Tabelle 801 zeigt auf das Segment 802, welches die Zuteilungs-Warteschlangen enthält.,
Ein zu der G-Tabelle 801 hinzeigender G-Tabellen-Zeiger findet sich in der Systembasis 502 gemäss Fig. 5. Ausserdem
befindet sich in der Systembasis ein Eintrag, der als internes Prozesswarteschlangenwort IPQW bezeichnet wird, welches den
Kopf 805 der Bereitschafts-Warteschlange 803c bis 803g in dem GO-Segment 802 kennzeichnet.
Demgemäss kann der Zuteiler sämtliche Bereitschaftsprozesse
dirch Berücksichtigung der Bereitschafts-Warteschlange 803c-803g überprüfen. Wenn sich Zustände bei dem gerade laufenden Prozess
ändern, beseitigt der Zuteiler die Prozessverbindung am Kopf der Bereitschafts-Warteschlange und benutzt den J,P-Namen für
den Zugriff zu seinem Prozess-Steuerblock. Der durch den Prozess-Steuerblock gekennzeichnete Prozess wird dann der neue laufende
Prozess.
Da mehr als ein Prozess auf dasselbe Ereignis warten kann, existiert für jedes Ereignis eine Warteschlange von wartenden
Prozessen 803a bis 803b. Wartende Prozesse sind ferner über die Prozess-Verbindungsglieder 805 verbunden, die in dem
GO-Segment vorhanden sind. Ein auf den Kopf einer Warteschlange
509826/0758
zeigender Zeiger existiert in einem Semaphor 903, (was
noch beschrieben wird). Ferner ist eine Anzahl von Ereignissen vorhanden, auf die ein Prozess warten kann. Deshalb ist eine
Anzahl von Warteschlangen vorhanden, deren jede ein zugehöriges
Semaphor 903, 904 besitzt.
Die Anzahl der Prozesse, die bereit sind oder warten, ändert
sich dynamisch. Demgemäss ändert sich auch die Anzahl der Prozessverbindungen, die für die Bereitschafts- und Warteschlangen
erforderlich sind. Dieser Umstand bringt ein Speicherbehandlungsproblem für den Zuteiler mit sich. Das
Problem wird durch eine weitere Warteschlange gelöst, die freie Prozessverbindungs-Warteschlange 805a-c genannt
wird. Diese Warteschlange verbindet sämtliche Prozessverbindungsglieder in dem Segment GO, die von den Bereitschaftsoder Warte schlangen nicht'benutzt werden; die betreffende
WarteSchlange kann dazu herangezogen werden, eine bestimmte
Warteschlange der bereiten oder wartenden Prozesse zu erweitern. Ein Zeiger 901 für den bzw. an dem Kopf 902 der
freien Prozessverbindungs-Warteschlange 805 liegt nahe des Anfangs des GO-Segments 802.
Eine Prozess-Synchronisation ist erforderlich, um die Betriebsfunktionen
zweier Prozesse zu koordinieren, die an derselben Aufgabe arbeiten. Die Synchronisation wird unter
Verwendung der Semaphore 903-904 erzielt, die Datenstrukturen sind, welche in dem Adressenraum der Kommunikationsprozesse
enthalten sind. Ein Semaphor wird benutzt, um das Auftreten eines Ereignisses zu signalisieren und Nachrichten-Warteschlangen
zu handhaben. Ein Ereignis in diesem Zusammenhang ist irgendetwas, was von einem Prozess festgestellt wird
und für einen gewissen anderen Prozess von Interesse sein kann.
509826/0758
Das Ereignis kann die Beendigung eines Asynchronbetriebs oder die Verfügbarkeit einer Hilfsquelle sein.
Ein Prozess benutzt zwei Semaphor-Operationen, um das Auftreten eines Ereignisses zu signalisieren. Eine Operation
sendet ein Signal zu einem Semaphor. Die andere Operation nimmt ein Signal von einem Sempahor auf. (Die Sendeoperation
wird häufig als V-Operation bezeichnet; die Empfangsoperation wird als P-Operation bezeichnet). Die Sendeoperation ermöglicht
einem Prozess, Daten oder ein Signal darüber auszusenden, dass Daten bereitstehen. Das Sempahor speichert das
Signal, bis ein weiterer Prozess bereit ist, das Signal aufzunehmen. Demgemäss kann der Sendeprozess ungehindert weitergeführt
werden, da er die Daten ausgesendet hat. Die Empfangsoperation überprüft ein gekennzeichnetes S/emaphor und nimmt
das Signal auf. Wenn ein Signal vorhanden ist, setzt der Empfangsprozess die Ausführung fort. Wenn jedoch kein
Signal bei dem Semaphor vorhanden ist, tritt der Empfangsprozess in den Wartezustand ein. Das Semaphor dient dann
als Zeiger auf den Kopf einer Warteschlange. Der Prozess
verbleibt in dem Wartezustand, der bezüglich des Semaphore in einer Warteschlange ist, bis ein weiterer Prozess ein
Signal zu dem bestimmten Semaphor hin aussendet. Demgemäss kann ein Semaphor ein Signal solange festhalten, bis ein
Prozess das Signal aufnimmt, oder aber ein Semaphor kann einen Prozess solange festhalten, bis ein Signal zu ihm
ausgesendet wird.
Nachrichten können ferner von einem Prozess zu einem anderen Prozess geleitet werden. Eine Nachricht besitzt dieselbe
Darstellungsqualität oder fehlende Darstellungsqualität wie ein Signal mit zusätzlicher Information. Ein Teil der
Information wird von der Hardware geliefert, und ein Teil
509826/0 758
der Information wird von der Prozedur des Verfahrens, das die Nachricht ausgesendet hat, geliefert. Eine Nachricht
trägt den Prozessnamen des sendenden Prozesses. Demgemäss können viele Prozesse eine Information über ein einziges
Semaphor senden, das mit dem Sendernamen gekennzeichnet ist.
Ein Nachrichtensemaphor kann eine wartende Nachrichtenschlange
enthalten, die von Prozessen aufzunehmen ist. Wie bei Signal-Semaphoren steigen und fallen die Anforderungen bezüglich
des Speicherraumes, wodurch sich ein Speicherbehandlungsproblem ergibt. Das Problem wird ebenfalls mittels einer Schlange
von freien Nachrichtenverbindungsgliedern gelöst. Diese Verbindungsglieder sind an einer bekannten Stelle in einem
Segment untergebracht, die ohne weiteres gefunden werden kann, wenn die betreffenden Verbindungsglieder benötigt werden,
um Nachrichtenverbindungen zu schaffen oder aufzunehmen.
Da sich verschiedene Prozesse die Semaphore und die bezüglich dieser gebildeten Schlangen teilen, wird die gesamte Semaphorstruktur
geschützt. Dies wird durch Hardware- und Software-Übereinkünfte vorgenommen, die den Zugriff zu irgendeinem
Segment, welches Semaphore enthält, beschränken. Demgemäss müssen Semaphore in Semaphor-Deskriptor-Segmenten enthalten
sein, von denen einige die G-Segmente sein können (sofern System-Nachrichtenverbindungen notwendig sind). Sämtliche
G-Segmente (Ausnahme GO) sind jedoch Semaphor-Deskriptor-Segmente.
Jeder Semaphor Deskriptor enthält einen Zeiger bezüglich eines Semaphore. Semaphor-Adressen werden über einen Semaphor-Deskriptor
gebildet. Auf diese Weise wird ein zusätzlicher Schutz für das Semaphor erreicht. Ein Semaphor-Segment kann
509826/0758
verknüpfungsmässig adressiert werden, indem eine Segmentnummer
und eine relative Speicherstelle innerhalb des Segments herangezogen werden oder indem direkt die G, D-Zahl verwendet
wird.
In Fig. 4 ist das Format des Prozess-Steuerblockes gezeigt. Der Prozess-Steuerblock 400 ist ein in dem Hauptspeicher
für einen Prozess bereitgestellter Speicherbereich, um den Zustand der Zentraleinheit zu bewahren. Die Adressierung
eines Prozess-Steuerblockes wird, wie oben in Verbindung mit Fig. 5 beschrieben, ausgeführt. Der Prozess-Steuerblock-Zeiger
507 (Fig. 5) zeigt auf den Prozess-Steuerblock PCB an dem Speicherplatz Null gemäss Fig. 4. Es sei darauf hingewiesen,
dass in Abwärtsrichtung weiterlaufend die Speicherplätze
um vier Bytes zunehmen, während im Zuge des Weitergehens nach oben von dem Speicherplatz Null aus die betreffenden
Speicherplätze um acht Bytes zunehmen. Die unteren Speicherplätze werden von Null aus als positiv angesehen,
während die Speicherplätze in der Aufwärtsrichtung von Null aus als in der negativen Richtung liegend angesehen werden.
Die oberen Speicherplätze stehen fakultativ zur Verfügung; sie können gegebenenfalls in dem Prozess-Steuerblock enthalten
sein. Die Speicherplätze 148 bis 176 sind ebenfalls fakultativ. (Es sei darauf hingewiesen, dass die Nummern unter dem Speicherplatz
die Versetzung in Bytes von dem Null-Bezugsspeicherplatz des Prozess-Steuerblockes aus angeben und nicht mit den Bezugszeichen
zu verwechseln sind, die üblicherweise benutzt werden, um Einzelteile in den Zeichnungen zu bezeichnen).
Bei dem Byte Null beginnend und bis zu einer das Byte 16
mit einschliessender Stelle hinlaufend, sind vier· Prozess-Hauptwörter
PMWO bis PMW3 gespeichert, deren jedes eine
Länge von vier Bytes besitzt. Das Prozesshauptwort Null
509826/0 758
nimmt die Bytes Null bis 3 ein; es besteht aus vier Teilen:
einem Fähigkeits-Byte, einem Prioritäts-Byt, einem Zustands-Byfceund
einem sogenannten Dekorerweiterungs-Byt DEXT. In Fig. 10a bis 1Od sind Einzelheiten des Prozesshauptwortes
PMW 0 gezeigt, wobei weitere Einzelheiten des Fähigkeits-Bytes 1001 in Fig. 10b angegeben sind. Gemäss
Fig. 10b ist das erste Bit 1005 das Berechnungsbetrieb-Bit,
das anzeigt, ob Zeitberechnungsfunktionen für den Prozess ausgeführt werden oder nicht. Wenn das Berechnungsbetrieb-Bit
1005 auf eine binäre Null gesetzt wird, wird keine Zeitberechnungsfunktion für den Prozess ausgeführt. Wenn hingegen
das Berechnungsbetrieb-Bit 1005 auf den Binärwert 1 gesetzt wird, wird eine Zeitberechnung durchgeführt. Das Wissenschaftsbetrieb-Bit
1006 zeigt, wenn es auf Null gesetzt ist, an, dass die Einsparung des Wissenschafts-Registers der Maschine
nicht vorgenommen wird und dass der Wissenschafts-Register-Verbindungsbereich,
der bei den Bytes 148 bis 176 gemäss Fig. 4 untergebracht ist, in dem Prozess-Steuerblock PCB
nicht existiert. Wenn das Wissenschaftsbetrieb-Bit 1006 auf 1 gesetzt ist, existiert eine fakultative wissenschaftliche
Eigenschaft, die in dem Prozess benutzt wird; der Wissenschaftsregister-Verbindungsbereich
wird benutzt, um den Inhalt der Wissenschaftsregister erforderlichenfalls sicherzustellen.
Das Codebetrieb-Bit 1007 zeigt an, ob ein Standard-Code
satz oder ein Kompatibilitäts-Codesätz von dem Prozess benutzt·wird oder nicht. Dabei zeigt eine Null an der betreffenden
Stelle an, dass ein Standard-Codesatz benutzt wird, während eine binäre 1 an der dritten Bit-Position
1007 anzeigt, dass ein Kompatibilitäts-Codesätz benutzt wird. Die übrigen Bits des sogenannten Fähigkeits-Bytes
sind auf Null gesetzt.
Einzelheiten des Prioritäts-Bytes 1002 sind in Fig. 10c gezeigt. Gemäss Fig. 10c werden die ersten vier Bits 1008
5 0 9826/0758
des Prioritäts-Bytes 1002 dazu herangezogen, die Prioritätsebene des Prozesses festzusetzen, der einem bestimmten Prozesssteuerblock
zugeordnet ist. Jedem Prozess ist eine Ebene von 16 Prioritätsebenen zugeteilt, die für angeordnete konkurrierende
Prozesse benutzt werden, das heisst
a) für die Wahl des Prozesses,der unter Bereitschaftsprozessen
läuft, und
b) für die Einfügung von Prozessen in Schlangen bzw. Warteschlangen.
Die Priortitäten nehmen von Null bis 15 ab, und bezüglich
einer gegebenen Prioritätsebene gilt die Regel, dass der erste eingegebene Vorgang der erste ausgegebene Vorgang ist.
Die nächsten vier Bits 1009 des Prioritäts-Bytes 1002 sind Nullen.
In Fig. 1Od sind Einzelheiten des Zustands-Bytes IOO3 gezeigt.
Ein Zustands-Byte wird dazu benutzt, eine Information bezüglich <3ss Prozesses zu liefern, der dem Prozess-Steuerblock
400 zugeordnet ist. Das Aktivfeld-Bit A 1010 wird auf den Binärwert 1 gesetzt, wenn der Prozess aktiviert wird. Das
Unterbrechungsfeld S 10i'1 wird auf den Binärwert 1 gesetzt,
wenn der Prozess unterbrochen wird. Das Subzustands-Feld SS 1012 ist ein 2-Bit-Feldj es definiert die folgenden Subzustände
des Prozesses:
a) Wenn es auf den Binärwert 00 gesetzt ist, ist der Prozess nicht aktiv;
b) wenn es auf den Binärwert 01 gesetzt ist, wartet der Prozess in der Bereitschaftsprozess-Schlange Q/PR/RDY);
c) wenn es auf den Binärwert 10 gesetzt ist, wartet der
Prozess auf ein Semaphor in einer Semaphoren-Schlange (Q/PR/S);
509826/0758
d) wenn es auf den Binärwert 11 gesetzt ist, wird der Prozess durch den Prozessor ausgeführt. Das mittlere
Operationsfeld (MOI) 1013 wird auf den Binärwert 1 gesetzt, wenn eine Unterbrechung auftritt. Auf dieses
Feld wird während der Ausführung eines Befehls geachtet, das heisst vor der Beendigung des Prozesses. Das erweiterte
Dekorbetriebs-Bit EXTD 1014 wird auf den Binärwert 1 gesetzt, wenn der Prozess in einem erweiterten
Dekorbetrieb arbeitet, bei dem es sich um einen Emulations betrieb der Maschine handelt. Die Bits 1015 und 1016
sind auf Null gesetzt. Das vierte Byte des Prozesshauptwortes PMWO enthält die Dekorerweiterungsnummer; es
wird benutzt, wenn das System sich im Emulationsbetrieb befindet.
Das Prozesshauptwort PMW1 ist in den Bytes 4-7 des Prozesssteuerblockes
PCB gespeichert. Einzelheiten des Prozesshauptwortes PMW1 sind in Fig. 1Oe gezeigt. Das Zustandsbyte
1016 ist das erste Byte in dem Prozess-Steuerwort PMW1;
es speichert den Zustandsregisterinhalt. Das Mehrprozessor-Byt ΜΡ1Ό18 ist in einer Mehrprozessor-Architektur bedeutsam
bzw. gültig; ansonsten ist dieses Feld Null. Das zweite bis vierte Bytedes Prozesshauptwortes 1 ist durch MBZ-Felder
1017 bzw. 1019 gebildet, die für eine normale Operation Null sein müssen.
Prozesshauptwort PMW2 nimmt die Bytes 8 bis 11 des Prozess-Steuerblockes ein; es ist in Pig. 1Of im einzelnen
gezeigt. Geraäss Fig. 1Of enthält das Feld vom Bit 4 bis zum Bit 31 den örtlichen Namen SEG, SBA 1021 des Sen$$hores,
mit dem der Prozess-Steuerblock verbunden ist, wenn sich der
Prozess entweder im Wartezustand oder im unterbrochenen Zustand befindet. Die Ausnahmeklasse und das Typen-Feld 1023
enthält die Klasse und den Typ der unterbrechungsartigen Ausnahme,
die bewirkt, dass der Prozess nach dner Ausnahme in einen
509826/0758
unterbrochenen Zustand eintritt. Das Feld vom Bit 4 bis zum Bit 15 ist das bedeutungslose Feld 1022, wenn sich, ein Prozess
in einem anderen Zustand befindet als dem oben erwähnten.
Das ProzesshaupSwort PMW3 nimmt die Bytes 12 bis 15 in den
Prozess-Steuerblock 400 ein; es zeigt auf eine Dekorerweiterungstabelle.
Bezugnehmend auf Fig. 10g bezüglich Einzelheiten des Prozesshauptwortes PMW3 sei bemerkt, dass, das
DETSZ-FeId 1024 die Anzahl von Einträgen in der Tabelle angibt. Wenn dieses Feld Null ist, ist keine Dekorerweiterung für den
Prozess ermöglicht· Das DETA-FeId 1025 ist die absolute Adresse
der Dekorerweiterungstabelle in Einheiten von 16 Bytes; es ist lediglich dann bedeutsam, wenn DETSZ nicht Null ist. Die
Dekorerweiterungstabelle wird aus DETSZ-Einträgen gebildet«
Jeder Eintrag besitzt eine Byte-Grösse. Der DEXT-te Eintrag der Tabelle gibt die Fähigkeit des Prozesses an, in dem Dekorerweiterungsbetrieb
DEXT zu arbeiten. Wenn das DEXT-te Byte Null ist, ist die Dekorerweiterungszahl DEXT nicht zugelassen,
während in dem Fall, dass das DEXT-te Byte eine 1 ist, die Dekorerweiterungsnummer bzw. -zahl DEXT zugelassen
ist. Andere Werte als Null und 1 für DEXT sind unzulässig. (Siehe Fig. 10a, DEXT-Nr. 1004).
Die Bytes 16 bis 23 des Programmsteuerblockes 400 enthalten zwei Adressenraumworte ASWO bzw. ASW1· Jedes Adressenraumwort
bzw. Adressenplatzwort enthält einen Zeiger, der auf eine Reihe von Segmenttabellenworten hinzeigt. Die beiden Adressenplatzworte
ASO bzw. ASW besitzen dasselbe Format, wie dies in Fig. 10h gezeigt ist. Die Grosse der Reihe der Segmenttabellenworte
ist durch die Anzahl der Segmenttabellenworte in einer Reihe festgelegt; in typischer Weise umfass? die betreffende
Grosse sechs Segmenttabellenworte für das Adressenraumwort ASWO und acht Segmenttabellenworte für das Adressenraumwort
1. Das STWSZ-FeId 1026 zeigt die Grosse der Reihe
509826/0 758
der Segmenttabellenworte an. Das Segmenttabellenwort-Reihenfeld STWA 1027 , enthält die absolute Adresse STWA der Reihe in
Einheiten von 16 Bytes· Dies bedeutet, dass die absolute Adresse der Reihe das Sechzehnfache von STWA in Bytes ist.
Die Bytes 24 bis 27 in dem Prozess-Steuerblock enthalten ein
Ausnahmewort EXW, das in Fig. 1Oi im einzelnen gezeigt ist. Das Ausnahmewort enthält einen Zeiger (SEG, SRA) 1029, der
auf eine Ausnahmeklasaaitabelle hin zeigt, welche die Maßnahme
angibt, die auf eine Prozessausnahme hin auszuführen ist, und zwar in Übereinstimmung mit dessen Klasse, wie sie in dem
Prozesshauptwort PMW2 gespeichert ist (siehe Fig. 1Of).
Das MBZ-PeId 1028 des Ausnahmewortes EXW muss Null sein.
Das in den Bytes 28 bis 31 des Programmsteuerbloskes untergebrachte
Stapelwort SEW enthält den Wert der Oberseite des T-Registers des Stapelspeichers des Prozesses, wenn der Prozess
nicht läuft. Einzelheiten in diesem Zusanraiehang sind in Pig.
1Oj gezeigt. Gemäss Pig. 1Oj definieren die Bits Null und 1
ein TAG-PeId 1030» Das TAG-PeId bzw. Markierungs-Peld gibt
die Art des Deskriptors durch seinen Inhalt an; es muss für SEW Null sein. Die Bits 2 und 3 des SKW-Wortes enthalten das
Ring-Peld 1031» welches die Ringnummer enthält, die der Segmentadresse
des Stapelspeichers für Schutzzwecke zugeordnet ist und die in diesem Pail Null sein muss. Die Bits 4 bis 31
enthalten die Segmentnummer SEG und die relative Segmentadresse SRA 1032; es handelt sich hierbei um ein PeId, welches
das in der Segmenttabelle beschriebene Segment identifiziert und die relative Segmentadresse innerhalb des Segments. Das
Stapelwort bzw. Stapelspeicherwort SEW wird jedesmal akutalisiert,
wenn der Prozess den Laufzustand verlässt. Das betreffende
Wort wird benutzt, um den T-Register-Inhalt jeweils
dann wieder herzustellen, wenn der Prozess wieder läuft.
509826/07 5 8
In diesem zulsetzt genannten Pall werden das TAG-Feld 1030
und das Ring-Feld 1031 auf Null überprüft. Sind sie nicht Null, so"tritt eine unzulässige Prozess-Steuerblockausnahme
auf«
Die Bytes 32 bis 35 des Prozess-Steuerblockes 400 enthalten das Befehlszählerinhaltswort ICW, das zuweilen auch als
ICC-Wort bezeichnet wird. In Pig. 10k sind Einzelheiten des Befehlszählerwortes ICW gezeigt, wobei das O)AG-PeId 1033
die Binärzahl 00 enthalten muss (dies bedeutet, dass von Null abweichende Werte in dem Befehlszähler unzulässig sind)·
Das gerade gebrachte Eing-Peld 1034 nimmt die Bits 2 und 3 ein; es definiert die gerade zu benutzende Ring-Nummer des
Prozesses, und zwar im Hinblick auf die Bestimmung von Zugriff srechten zu dem Hauptspeicher. Die Bits 4 bis 31 definieren
die Segmentnummer und die relative Segmentadresse (SEG, SRA) 1035; diese definiert die Adresse des nächsten
auszuführenden Befehls.
Das MBZ-PeId in den Bytes 36 bis 39 muss Null sein. (Es
sei darauf hingewiesen, dass das MBZ-PeId stets ein PeId
anzeigt, das Null sein muss). Das MBZ-Worlyiedesmal überprüft,
wenn ein Zugriff zu dem Prozess-Steuerblock von dem Namen J, P erfolgt. Ist das betreffende Wort nicht Null,
so tritt eine unzulässige Prozess-Steuerblock-Ausnahme auf.
Die Stapelspeicher-Basisworte SBWO-2 nehmen die Bits 40
bis 51 in dem Prozess-Steuerblock 400 ein. Diese Worte besitzen dasselbe Format, wie es im einzelnen aus Pig. 101
hervorgeht. Sie werden während der Stapeloperationen benutzt; bei ihrer jeweiligen Benutzung müssen das TAG-PeId 1036
und das Ring-Peld 1037 Null sein, ansonsten tritt eine unzulässige
Prozess-Steuerblock-Ausnahme auf. Die Bits 4 bis enthalten die segmentierte Adresse bzw. Segmentadresse
509826/0758
(SEG, SRA) 1038 der ersten Bytes der Stapelspeicher-Segmente
für den Ring ITuIl, 1 bzw. 2).
Die Bytes 52 bis 83 des Prozess-Steuerblockes 400 befinden sich in einem Speicherplatz, der für den Basis-Register-Verbindungsbereich
(acht Worte) reserviert ist. Die Bytes
84 bis 147 liegen in dem Verbindungs- bzw. Sicherstellungsbereich, der dazu benutzt wird, die Werte sämtlicher allgemeiner
Register (16 Worte) sicherzustellen. Die Bytes 148 bis 179 befinden sich in einem Sicherstellungsbereich, der
dazu benutzt wird, die wissenschaftlichen Register (acht Worte) sicherzustellen.
In dem Prozess-Steuerblock 400 sind oberhalb der Prozess-Steuerblock-ITull-Adresse
fünf Doppelworte vorgesehen, und zwar für Zeitberechnungszwecke, wenn das Berechnungsbetrieb-Bit
in dem PMW-0-Wort gesetzt ist. Diese Worte sind in einem
Bereich von der Prozess-Steuerblock-Adresse -8 bis zur Prozess-Steuerblock-Adresse
-40 untergebracht. Jedes Wort enthält eine Zeit oder ein Zeitintervall, das in Mikrosekunden-Einheiten
in den ersten 52 Bits ausgedrückt ist, wobei die Bits 52 bis 63 mit Nullen ausgefüllt sind. Das restliche
Unterbrechungs-Doppelwort RTO (die ersten acht Bytes oberhalb von Null in dem Prozess-Steuerblock) enthält den Zeitbetrag,
der tatsächlich von dem Prozessor zu Gunsten des Prozesses aufgewandt wird, bevor eine Unterbrechungs-Ausnahme
auftritt. Das RTO-Wort wird auf folgende Weise aktualisiert: Jedesmal, wenn der Prozess den laufzustand beendet, wird
der Prozess-Zeitsteuerungswert in dem RTO-Wort gespeichert. Jedesmal wenn der Prozess in den laufzustand eintritt, wird
der Prozess-Zeitsteuerwert von dem RTO-Wort her geladen.
Das laufzeitberechnungs-RUA-Doppelwort, das in den Bytes
7 bis 15 auftritt, ist ein Zeitzählwort, welches die gesamte
50982ß/07S8
Prozessorzeit angibt, die ein Prozess im laufzustand war.
Die hierfür berechnete Zeit ist die von dem Prozessor zugunsten des Prozesses ausschliesslich aufgewandte Zeit. Das
RUA-Wort wird auf folgende Weise aktualisiert. Jedesmal wenn
der Prozess den Laufzustand beendet, wird der Wert des Prozess-Zeitsteuerwortes
PT gelesen. Die Differenz der Inhalte des RTO-Wortes und des PT-Wortes wird zu dem RUA-Wort hinzuaddiert
(nachfolgend eier PT-Wert in dem TRO-Wort gespeichert).
Es sei darauf hingewiesen, dass die Zeitspanne, während der der Prozess angehalten wird bzw. unterbrochen wird, nicht berechnet
wird. Die Worte RTO und RUA werden auch dann aktualisiert,
wenn das Berechnungsbetrieb-Bit auf UuIl gesetzt ist. Die
Worte CET, RTA und WTA (das zuletzt genannte Wort wird
noch beschrieben werden) sind jedoch in dem Prozess-Steuerblock lediglich dann vorhanden, wenn das Berechnungsbetrieb-Bit
in dem Prozesshauptwort PMWO auf 1 gesetzt ist. Sie werden lediglich in diesem lall aktualisiert.
Das Wartezeit-Berechnungswort WTA nimmt die Bytes 17 bis in einem Echtzeit-Zähler ein, der die gesamte Echtzeit angibt,
während der der Prozess sich im Wartezustand befunden hat. Das WTA-Wort wird auf folgende Weise aktualisiert. Jedesmal,
wenn der Prozess in den Wartezustand übergeht, wird der Zeitpunkt des Tag-Taktwertes TOD (nicht gezeigt) gelesen,
und ausserdem wird der TOD-Wert abzüglich des Wertes des CET-Wortes dem WTA-Wort hinzuaddiert.
Das Bereitschaftszeit-Berechnungswort RTA, das die Bytes 24 bis 31 einnimmt, ist ein Doppelwort; hierbei handelt
es sich um einen Echtzeit-Zähler, der die. gesamte Echtzeit angibt, während der der Prozess sich in dem Betriebsbereitschaf
tszustand befunden hat. Das RTA-Wort wird auf folgende Weise aktualisiert: Jedesmal, wenn der Prozess in den Bereitschaftszustand
übergeht, wird der Zeitpunkt des Tag-Taktwertes TOD .gelesen, und ausserdem wird der Inhalt des
B 0 3 8 2 e / 0 7 5 8
TQD-Wertes abzüglich, des Inhalts des CET-Wortes dem Wort
RTA hinzuaddiert.
Das gültige Eintragzeit-Doppelwort OET, das die Bytes 32 Dis 39 einnimmt, enthält die !Tageszeit, zu dem der Prozess
in einen der folgenden Zustände eingetreten ist: Bereitschaftszustand,
Wartezustand, Laufzustand und Unterbrechungszustand.
Systembasis-Strukturen:
In Fig· 6 ist das Format der Systembasis 600 gezeigt· Die
Systembasis findet sich in dem absoluten Hauptspeicher; sie wird durch. Firmenware gebildet und ist über das Grenzadressenregister
(BAR) zugänglich, das gelesen werden kann, in das aber nicht eingeschrieben werden kann. Das Grenzadressenregister
BAR befindet sich unterhalb eines Bereiches in dem Hauptspeicher, der für Hardware reserviert ist und
der diesen Bereich in dem reservierten Speicher für Hardware und die Systembasis 600 trennt. Gemäss Fig. 6 enthält die
Systembasis 600 eine Anzahl von Systemeigenschaften, die eine Job-Schritt-Nummer, eine Prozessgruppen-Hummer (JP)
für den gerade laufenden Prozess enthalten. Aus dem Verknüpfungsnamen
des Prozesses J1P wird die absolute Adresse des entsprechenden Pr.qzess-Steuerblookes PGB erhalten.
Die Grosse und Adresse der J-Tabelle werden durch den Inhalt
des J-Tabellenwortes (JTW) definiert. Dieses Wort ist an der durch das BAR-Register bezeichneten Adresse
untergebracht. Das Format des JTW-Wortes ist in Fig. 11a
angegeben. Das Grössen-Feld (JTSZ) 1101 oder die J-Tabelle
1204 gemäss Fig. 12 geben die Anzahl der Einträge in
die J-Tabelle 1204 an; diese Zahl kann bis zu 255 Einträgen angeben. Das JTSZ-Wort 1101 ist eine positive
ganze 8-Bit-Zahl; eine J-Tabelle-Ausnahme tritt auf, wenn
J grosser ist als JTSZ. Die absolute Adresse der J-Tabelle 1204 wird dadurch erhalten, dass der J-Tabellen-Zeiger
509826/0758
1102 mit 16 multipliziert wird. Die J-Tabelle 1204 enthält
J-Tabellen-Einträge, deren Format im einzelnen in Pig. 11b
gezeigt ist. Jeder J-Tabellen-Eintrag definiert die absolute Adresse einer P-Tabelle 1205, die dadurch erhalten wird, dass
der P-Tabellen-Zeiger 1104 mit 16 multipliziert wird.
Die Grosse (PISZc) 1103 einer P-Tabelle definiert die Anzahl
der Einträge in die P-Tabelleβ Das PTSZ-Wort ist eine
positive ganze 8-Bit-Zahl, die in typischer Weise variieren
kann von JJuIl bis 255, um die Anzahl der Einträge in die P-Tabelle
anzuzeigen. Eine P-Tabellen-Ausnahme tritt dann auf, wenn P grosser ist als PTSZ. Jeder Eintrag der P-Tabelle
1205 definiert die absolute Adresse eines Prozess-Steuerblockes (PCB) 1206, und zwar durch Multiplizieren des Prozesssteuer-Blockzeigers
1107 mit 16. Ein Anwesenheits-Anzeiger P 1105 zeigt das Fehlen eines Prozess-Steuerblockes 1206
an, wenn er auf den Binärwert UuIl eingestellt ist; er zeigt das Vorhandensein eines Prozess-Steuerblockes an, wenn er
auf den Binärwert 1 eingestellt ist. (Wenn der betreffende Anwesenheits-Anzeiger P 1105 mit Full ermittelt wird, tritt
eine unbesetzte P-Tabellen-Eintrag-Ausnahme auf)· Die Bits
1 bis 7 des P-Tabellen-Anze:g3rs (Fig. 11c) müssen Null (MBZ)
1106 sein, ansonsten tritt eine unzulässige P-Tabellen-Eintragausnahme
auf.
Bei der Adresse BAR+4 der Systembasis 600 ist das Format-Byte
eines G-Tabellen-Wortes (GTW) vorhanden, wie es in Fig. 11d im einzelnen gezeigt ist. Die Grosse und die Adresse
einer G-Segment-Tabelle 1212 gemäss Fig. 12 sind durch
den Inhalt des G-Tabellen-Wortes (GTW) festgelegt. Die Grosse (GTSZ)1108 der G-Tabelle 1212 gibt die Anzahl der Einträge
in die G-Tabelle an; hierbei können in typischer Weise bis zu 255 Einträgen vorliegen. GTSZ ist eine positive ganze
8-Bit-Zahl. Eine G-Tabellen-Ausnahme tritt dabei dann auf,
wenn die G-Zahl grosser ist als GTSZ. die absolute Adresse
509826/0758
der G—Tabelle 1212 wird dadurch erhalten, dass der G-Tabellen-Zeiger
1109 mit 16 multipliziert wird. Das Format
des G-Segment-Tabelleneintrags hat eine 2-Wort-Grösse (8 Bytes);
es wird als G-Segment-Deskriptor bezeichnet. Das Format des
G-Segment-Deskriptors ist in Pig. 11e und 11f im einzelnen gezeigt. Sämtliche G-Segment-Deskriptoren liegen direkt vor,
weshalb das indirekte Bit I, nämlich 1111, Null sein muss, ansonsten tritt nämlich eine unzulässige Segment-Deskriptorausnahme
auf. Das Anwesenheits-Anzeigeglied P 1110 ist ein 1-Bit-3?eld, das im Binär zustand 1 anzeigt, dass ein
Segment im Hauptspeicher bezüglich der Segment-Nummer definiert
ist, der der Deskriptor entspricht. Ist hingegen das betreffende Bit auf Null zurückgesetzt, so ist kein Segment
definiert, und eine Bezugnahme auf den Segmentdeskriptor
ruft eine fehlende Segment-Ausnahme hervor. Das Verfügbarkeitsbit A 1112 ist ein 1-Bit-3?eld, das anzeigt, ob das Segment
verfügbar ist oder nicht. Es wird lediglich geprüft, ob dieses Segment definiert ist (das heisst,dass P gleich einer
binären 1 ist), ansonsten wird dieses Segment unberücksichtigt gelassen. Das benutzte Kennzeichenfeld TJ 1113 zeigt an,
ob zu dem Segment ein Zugriff erfolgt ist oder nicht. Ist das U-Bit auf eine binäre Null gesetzt, so ist zu dem Segment
kein Zugriff erfolgt. Ist hingegen das U-FeId auf den Binärwert 1 gesetzt, so ist ein Zugriff zu dem Segment erfolgt.
Das geschriebene Kennzeichenfeld W 1114 zeigt an, ob das
Segment geschrieben worden ist. Ist ¥ auf den Binärwert Null gesetzt, so ist das Segment nicht geschrieben worden.
Ist hingegen W auf den Binärwert 1 gesetzt, so ist das Segment geschrieben worden. Das Ausblend-Anzeigeglied GS 1115
eines G-Segment-Deskriptors muss auf den Binärwert 01 gesetzt sein, ansonsten tritt nämlich eine unzulässige Segraentdeskriptor-Ausnahme
auf. Der Grund hierfür liegt darin, dass ein G-Segment stets Semaphore enthält (obwohl die Umkehrung
nicht zutrifft, das heisst, dass sämtliche Semaphore nicht in einem G-Segment enthalten zu sein brauchen)·
S 0 9 8 2 8 / 0 7 S 8
Ausserdem erfordern die Befehle bezüglich der Semaphore, dass der GS-Code den Binärwert 01 "besitzt. Die absolute
Adresse der Basis eines Segments 1214 ist in dem G-Segment-Deskriptor
gemäss Pig. 11e durch ein 24-Bit-Basisfeld 1116
definiert. Der Inhalt dieses Feldes wird mit 16 multipliziert, um die absolute Adresse zu erhalten. Das zweite Wort des G-Segment-Deskriptors
gemäss Fig. 11f tritt in der Bit-Position 32-63 in der G-Tabelle 1212 auf. Das RSU-PeId 1117,
das sind die Bits 32 bis 39, ist für die Software-Benutzung umgekehrt. Es wird normalerweise unberücksichtigt gelassen,
wenn es als G-Segment-Deskriptor benutzt wird, und zwar wie in diesem Fall. Das MBZ-PeId 1118 muss Null sein, ansonsten
tritt eine unzulässige Segmentausnahme auf. Da das MBZ-PeId 1118 die Bits 40 bis 51 einnimmt, setzt es das SIZF-PeId
1119, welches das PeId für ein kleines Segment SLZlT ist.
Damit müssen sämtliche G-Segmente vom Typ her das kleine Segment sein. Das Segment SIZlT 1119 ist eine positive ganze
12-Bit-Zahl, die die Anzahl von Bytes in dem Segment angibt
bzw. definiert. Die Segmentgrösse wird als Vielfaches von interpretiert. Demgemäss kann die Segmentgrösse für ein G-Segment
1214 insgesamt 216 Bytes (kleine Segmente) nicht
überschreiten.
Zurückkommend auf die Systembasis 600 gemäss Pig. 6 sei bemerkt, dass dort neun Systemausnahmezellenworte zwischen
dem Grenzadressregister +8 und dem Grenzadressregister +44 untergebracht sind. Das Format der Systemausnahmezellenworte
EXC ist in Fig. 11g gezeigt. Da Semaphore für die Übertragung
von nachrichten zu zugeordneten Prozessen verwendet werden, wenn eine Systemausnahme auftritt, finden sich die
Zeiger, die zu diesen Sempaphoren hinzeigen, in neun Speicherplätzen,
deren jeder als Syetemausnahmezelle bezeichnet wird eine
Zelle pro Klasse der Systemausnahme. Das MBZ-PeId 1120 muss auf den Binärwert Full gesetzt sein, ansonsten tritt
509828/0758.
eine Systemprüfung auf. Jede Ausnähmezelle (EXC) enthält den
Systemnamen G, D 1121 bzw. 1122,
Die in dem G-renzadressregister +44 der System"basis 600 untergebrachte
Kanalausnahmezelle besitzt ein Format, das der zuvor
erläuterten Systemausnahmezelle ähnlich ist; die betreffende
Zelle enthält den Systemnamen G-O eines Semaphores, das für
die Übertragung von Nachrichten zu vorbestimmten Prozessen benutzt wird, wenn eine Kanalausnahme auftritt.
Ein internes Prozessor-Schlangenwort IPQW ist am Anfang des Grenzadresszgisters +48 untergebracht. Einzelheiten
des Formats des betreffenden Wortes sind in Fig. 11h gezeigt.
Das IPQW-Wort zeigt auf den Kopf einer Schlange von Prozessen, die bereitstehen (Q/PR/RDY), wie dies in Fig. 9 durch die
Bezugszeichen 905 und 805 veranschaulicht ist. Die Schlange
der in Bereitschaft stehenden Prozesse (Q/PR/RDY) verbindet sämtliche Prozesse, die sich im Bereitschaftszustand befinden.
Dabei erfolgt eine Bezugnahme durch den Kopf des Q/PR/RDY-Feldes 1124 (Pig. 11h) des IPQW-Wortes. Zu diesem Zweck
wird auf die Oberseite der Bereitschaftsprozess-Schlange gezeigt. Der Köpf des Q/PR/RDY-Peldes 1124 enthält eine
positive ganze 16-Bit-Zahl, die im Hinblick auf das GO-Segment
die Verschiebung von der Basis der G-Segment-Nummer 3JuIl
zu dem ersten Byte von Q/PR/RDY ist. Wenn dieses Q/PR/RDY-Bit-Feld
Null ist, wird die Bereitschaftsschlange als leer angesehen. Das MBZ-PeId 1123 muss Null sein, ansonsten tritt
eine Systemprüfung auf.
Bei dem Grenzadressregister +52 der Systembasis 600 ist der Speicher für die anfänglichen und gegenwärtigen Wiederauf
nähme Zählers tellungen gezeigt, wobei das format im einzelnen
in Pig. 1"1i veranschaulicht ist. Das NPS-PeId 1125
ist ein Speicherfeld ohne Punktion; es wird von der Systera-
5 0 9826/0 7 58
basis nicht benutzt. Das anfängliche Wiederaufnahme-Zählerfeld 1126 und das gegenwärtige bzw. laufende Wiederaufnahme-Zählerfeld 1127 werden dazu benutzt, die Häufigkeit automatisch
zu steuern, in der eine Befehlswiederaufnähme ausgeführt wird,
bevor ein Maschinenfehler gemacht wird, um einen Maschinenfehler-Ausnahmezustand
hervorzurufen. Die betreffenden Felder werden mit derselben Nummer durch eine Rücksetz-Wiederaufnahme-Zählerstellung
(hier nicht gezeigt) geladen.
Das laufende Prozesswort (RPW), das in Fig. 11 j gezeigt ist,
wird in dem Grenzadressregister +56 der Systembasis 600 gespeichert und dazu herangezogen, den Hamen des laufenden
Prozesses mit dessen Priorität im Falle einer sogenannten Monoprozessor-Architektur zu speichern. Die NFS-Felder 1128
bzw. 1131 sind Speicherfelder ohne Funktion; sie können für irgendeinen Zweck verwendet werden, und zwar mittels
werden diese irgendeiner Einrichtung. Im allgemeinen/Felder durch die
Systembasis jedoch nicht benutzt. Die Prioritätsebene eines
laufenden Prozesses wird in dem PRI-FeId 1129 gespeichert. Ein asynchrones nicht programmiertes Sprungbit wird in dem
AB-FeId 1130 gespeichert. Demgegenüber wird ein asynchroner
nicht programmierter Sprungring in dem ARN-FeId 1132 gespeichert.
Der Verknüpfungsname J,P des laufenden Prozesses im Falle einer Monoprozessor-Architektur wird in dem J,P-FeId
1133 gespeichert.
In Fig. 11k ist ein Absolutierungs-Tabellenzeigerwort gezeigt,
das in dem Grenzadressregister +60 in der Systembasis 603 untergebracht ist und das dazu herangezogen wird, bei der
anfänglichen Systemladung die absoluten Adressen in dem Anfangs-Systemladeprogramm (ISL) durch Addieren des Inhalts
des Grenzadressregisters zu sämtlichen absoluten Adressen in dem ISL-Programm voreinzustelien. Der Absolutierungs-Tabellenzeiger
1135 gibt die Stelle einer Absolutierungs-
509826/07 58
tabelle (nicht gezeigt) an. Die Absolutierungstabellengrösse wird durch das ATSZ-PeId 1134 angezeigt.
Das "in Fig. 111 dargestellte Zentraleinheits-Seriennumraerawort
ist ein 4-Byte-Wort, das in dem G-renzadressregister
+64 untergebracht ist und das die Seriennummer der Zentraleinheit in dem Zentraleinheits-Seriennummerafeld 1136 enthält.
Ein in Fig. 11m angegebenes Hauptspeicher-Obergrenzenwort ist in dem Grenzadressregister +68 untergebracht; es gibt
die Hauptspeicher-Obergrenze 1139 ,an, indem die absolute Adresse des letzten verfügbaren Wortes in dem Hauptspeicher
bereitgestellt wird.
In dem Grenzadresaregister 72 ist ein Wort untergebracht,
wie es in Fig. 11n veranschaulicht ist; dieses Wort dient
zur Abgabe der anfänglichen Systemladungs-ISl-Einrichtungskanalnummer
(GN) 1140 und der Hardware-Einrichtungskanalnummer (ClT) 1141.
Der Typ und Untertyp einer in dem Rechnersystem benutzten Einrichtung ist durch Hardware-Einrichtungstypwort (Fig. 11o)
in den Feldern 1143 bzw. 1144 veranschaulicht. Dabei ist das RSU-FeId 1142 für Software reserviert. Dieses Wort findet
sich in der Systembasis in dem Grenzadressregister +76. Ein ähnliches Wort mit einem Format ähnlichen Typs ist in
Fig. 11p dargestellt; es enthält den Typ und Untertyp der
bei der Anfangs-Systemladung benutzten Einrichtung. Dieses Wort ist in dem Grenzadressregister +80 untergebracht.
Wenn eine für den erneuten Start vorgesehene Taste eines Rechners gedrückt wird, wird eine simulierte V-Operation
bezüglich eines Semaphores ausgeführt, und ausserdem wird in den Bereitschaftszustand eingetreten. Ein auf dieses
509826/0758
Semaphor zeigender Zeiger findet sich, in dem Grenzadressregister
+84 der Systembasis 600. Dieser Zeiger wird als Neustart-Zellenwort bezeichnet. Er besitzt ein Format, wie
es in Fig. 11q gezeigt ist. Das Format ist ähnlich der oben beschriebenen Systemausnahmezelle j es enthält den Systemnamen
G,D eines Semaphores in dem G-FeId 1149 bzw. in dem
D-Feld 1150. Das MBZ-FeId 1148 muss M.1 sein.
In dem Fall, dass mehr als ein Prozessor für das Rechnersystem vorhanden ist, wird ein Wort in der Systembasis 600
in dem Grenzadressregister +88 für eine Mehrprozessausweitung vorgesehen. Einzelheiten dieses Wortes sind in Fig. 11r veranschaulicht.
In Fig. 12 ist ein Beispiel dafür gezeigt, wie die Systembasis in Kombination mit dem Prozess-Steuerblock benutzt
werden kann, um ein Anwendersegment, ein Systemsegment oder eine Schlange von Bereitschafts-Segment-Prozessen (Q/PR/RDY)
zu adressieren oder zu diesen Segmenten einen Zugriff zu bewirken. Der Hauptspeicher 1200 besitzt einen für den Hardwaregebrauch
reservierten Teil 1203. Ein Grenzadressregister BAR 1202 trennt die Systembasis 1215 von dem für die Hardware
reservierten Teil des Speichers 1203. Das Grenzadressregister 1202 wird dazu benutzt, einzelne Grossen bzw. Datenworte
in der Systembasis 1215 zu adressieren. Dieses geschieht
dadurch, dass der Inhalt des Grenzadressregisters zu der Versetzung in Vier-Byte-Einheiten des in der Systembasis erwünschten Datenwortes hinzuaddiert wird. Diese
Adresse zeigt dann auf das erste Byte des erwünschten Datenwortes bzw. der erwünschten Grosse in der Systembasis.
In Fig. 12 zeigt das Grenzadressregister 1202 auf das J-Tabellenwort (JTW). Das J-TabeIlenwort besitzt, wie oben
509826/0758
erläutert, einen Zeiger, der auf eine J-Tabelle 1204 zeigt.
Durch Indizieren auf die in Fig. 5 gezeigte J-Zahl wird der J-Tabelleneintrag 1216 erhalten. In dem J-Tabelleneintrag ist
ein P-Tabellenzeiger, der auf die absolute Adresse der P-Tabelle
1205 zeigt. Durch. Indizieren auf die P-Nummer (siehe
Fig. 5) innerhalb der P-Tabelle 1205 wird die absolute Adresse
des Prozess-Steuerblockes 1206 erhalten. Wie zuvor gezeigt, sind in dem Prozess-Steuerblock 1206 bzw. PCB 1206 zwei
Adressenraumworte ASWO und ASW1 vorhanden. Die Bits höherer Wertigkeit des Segmenttabellen-Nummernfeldes STN in dem
Basisregister 1201 wera aazu benutzt, einen Zugriff zu einem
dieser beiden Adressenrauraworte zu erhalten. In diesem Fall
ist dies das Adressenraurawort ASW1, das einen Segmenttabellen-Wortreihenzeiger
STWA besitzt, der auf die Segmenttabellenwortreihe STWA 1208 hinzeigt. Zusammen mit der Segmenttabellen-Nummer
STIT des Basisregisters 1201 erhält man einen Zugriff
zu einem Wort der acht Segmenttabellenworte in der Segmenttabellenwortreihe STWA 1208. Dieses Wort zeigt auf eine der
acht Segraenttabellen 1210. Der Segmenttabelleneintrag STE
von dem Basisregister 1201 wird dann dazu herangezogen, einen Eintrag von 256 Einträgen in die Segmenttabelle 1210 vorzunehmen,
und zwar dort, wo ein Segmentdeskriptor untergebracht ist. Der Segmentdeskriptor wird dann dazu herangezogen, einen
Zugriff zu einem Anwendersegment 1211 zu bewirken.
Um einen Zugriff zu einem Systemsegment 1214 zu bewirken,
das dazu benutzt wird, Semaphore eines G—Tabellenwortes G-TW
zu speichern, ist in der Systembasis 1215 verwendet. Die Adresse des G-Tabellenwortes wird dadurch erhalten, dass die
Verschiebung des G—Tabellenwortes in der Systembasis zu dem
Grenzadressregister BAR1202 hinzuaddiert wird. (Siehe Fig. 6).
Das G-Tabellenwort GTW schliesst einen G-Tabellen-Zeiger
ein, der auf eine G-Tabelle 1212 zeigt. Durch Heranziehen einer G-JJummer, die für das System verfügbar ist, und durch
509826/07S8
Indizieren in der G-Tabelle wird ein Zugriff zu. einem G-Segmentdeskriptor
erhalten, der dazu benutzt wird, ein Systemsegment 1214 zu adressieren.
In ähnlicher Weise wird die Systembasis 1215 benutzt, um
einen Zugriff zu der Schlange von Bereitschaftsprozessen 1213 (Q/PR/RDY) zu erhalten. Dies geschieht dadurch, dass
ein internes Prozessor-Schlangenwort IPQW untergebracht wird, welches auf das Q/PR/RDY-Segment 1213 zeigt.
Steuereinheit
In ,Pig. 13a bis 13c sind Einzelheiten der Steuereinheit
gezeigt. Die Steuereinheit ist, obwohl sie als von der Zentraleinheit CPIJ gesondert dargestellt ist, eigentlich ein Teil
der Zentraleinheit; sie besteht aus einer Steuerspeichereinheit CSU1301, einem Steuerspeicher-Schnittstellenadapter
CIA13O2 und zugehörigen Untereinheiten, einer Steuerspeicher-Ladeeinrichtung
CSIiI 303 und einer Steuer- und Ladeeinheit C1U1304.
Die Steuerspeichereinheit CSU1301 nimmt Mikrobefehle von
der Steuerspeicher-Ladeeinrichtung CSL13O3 über die Steuer-
und Ladeeinheit CLU13O4 und den Steuerspeicher-Schnittstellenadapter
CIA1302 auf. Unter normalen Betriebsbedingungen werden
Mikroprogramme von einer externen Quelle her während der System-Inbetriebsetzung geladen; sie werden zu einer permanenten
Steuerfunktion der Maschine. Die Steuerspeichereinheit CSU1301 besitzt jedoch die Fähigkeit, neu geladen zu werden
und in einer solchen Weise ausgelöst zu werden, dass sie für eine Vielzahl von Operationsmoden der Zentraleinheit 1306
dient. Die folgenden Betriebsarten der Zentraleinheit sind unter der Steuerung der Steuerspeichereinheit CSU1301 verfügbar:
509 82 6/0758
a) Maschinencodebetrieb,
b) Emulationsbetrieb,
c) gleichzeitiger Maschinenbetrieb und Emulationsbetrieb,
d) Diagnosebetrieb.
Diese Fähigkeit ist möglich, da die in der Steuerspeichereinheit vorhandenen Mikrobefehle die Quelle der Mikrοoperationen sind,
die zur Steuerung des Betriebs sämtlicher anderer Zentraleinheits-ÜTunktionseinheiten
verwendet werden, wie der Emulationseinheit 1316, der Rechenverknüpfungseinheit ALU1317, der Befehls-Abholeinheit
1I1UI318, der Adressensteuereinheit ACU1319
und der Datenbehandlungseinheit DMÜ1321. In der Zentraleinheit
1306 sind, wie zuvor beschrieben, ferner allgemeine Register 1307, Basisregister 1308, technisch-wissenschaftliche
Register 1309, T-Register 1310, Zustandsregister 1311, ein
Befehlszähler IC1312 und ein Hardware-Steuerausblendregister
1313 ebenfalls vorgesehen.
In typischer Weise ist die Steuerspeichereinheit CSU1301
ein durch eine bipolare integrierte Schaltung gebildeter programmierbarer 9-K-i'estwertspeicher (PROM), und zwar in
Verbindung mit einem lese/Schreib-Speicher mit wahlfreiem Zugriff (RAM). Die Steuerspeichereinheit besitzt in typischer
Weise einen 150-Nanosekunden-Iiesezyklus und einen 450-lTano-Sekunden-Schreibzyklus.
Jeder Speicherplatz des Steuerspeichers speichert ein 84-Bit-Mikrobefehlswort (das nachstehend noch
beschrieben werden wird), und jedes Mikrobefehlswort steuert einen Zentraleinheits-Zyklus. Auf das Lesen des jeweiligen
Speicherplatzes des Steuerspeichers der Steuerspeichereinheit CSU1301 wird der Inhalt des betreffenden Speicherplatzes
durch Mikrooperations-Dekoder dekodiert, die Mikrooperations-Steuersignale liefern. Jedes dieser Steuersignale bewirkt,
dass eine bestimmte Operation in der Zentraleinheit stattfindet (worauf nachstehend noch eingegangen wird).
509826/0 7 58
Durch Gruppierung der Stellen innerhalb jedes Mikrobefehlswortes (auf das weiter unten noch eingegangen wird) werden
Steuerspeicherfolgen erhalten, die eine bestimmte Zentraleinheits-Operation
oder einen be stimmt,'en Zentraleinheits-Befehl ausführen können. Da jeder Befehl durch die Zentraleinheit
ausgelöst wird, werden bestimmte Bits innerhalb des Operationscodes dazu herangezogen, die Steuerspeicher-Anfangsfolge
zu bestimmen. Die Überprüfung bestimmter (nicht dargestellter) Flipflops, die durch die Befehlsdekodierfunktionen gesetzt
odeijzurückgestellt sind, ermöglicht dem Steuerspeicher, sich
erforderlichenfalls auf eine speziellere Folge zu verzweigen.
Der Steuerspeicher-Schnittstellenadapter OIA13O2 steht mit
der Steuerspeichereinheit 1301, der Datenbehandlungseinheit DMU1321, .der Adressensteuereinheit ACU1319 und der Rechenverknüpfungseinheit
ALU1317 in Nachrichtenverbindung, und
zwar zur leitung der Operation des Steuerspeichers 1333 geraäss Fig. 13b. Der Steuerspeicher-Schnittstellenadapter
CIA1302 enthält eine Verknüpfungsanordnung für eine Steuerspeicher-Adressenmodifikation,
Prüfung, Fehlerüberprüfung und Hardware-Adressenerzeugung. Die Hardware-Adressenerzeugung
wird im allgemeinen für die Bildung der Startadresse von Fehlerfolgen oder für die Initialisierungsfolge herangezogen.
Die Datenbehandlungseinheit DMU1321 stellt die Schnitt-,
stelle zwischen der Zentraleinheit 1306 und dem Hauptspeicher
und/oder Pufferspeicher gemäss Fig. 1 dar. Aufgrund des
Ansprechverhaltens der Datenbehandlungseinheit wird erkannt, welche Einheit die von anderen Einheiten benötigte Information
enthält, und ausserdem wird die Information zum richtigen Zeitpunkt in die Zentraleinheits-Register durch Abtastung
eingeführt. Die Datenbehandlungseinheit DMlJ führt ferner die Ausblendung während Teilschreiboperat±nen aus.
509826/0758
Die Befehlsabholeinheit IFÜ 1318 stellt eine Schnittstelle
zu der Datenbehandlungseinheit 1321, der Adressensteuereinheit 1319, der Rechen- und Verknüpfungseinheit 1317 und
der Steuerspeichereinheit 1301 hin dar; die betreffende Einheit ist verantwortlich dafür, dass dafür gesorgt wird, dass
die Zentraleinheit mit Befehlen versorgt wird. %β Befehlsabholeinheit
weist den nächsten verfügbaren Befehl in ihren Registern auf, und zwar vor der Beendigung des vorliegenden
Befehls. Um diese Fähigkeit zu erzielen, enthalt die Befehlsabholeinheit IFU1318 ein (nicht gezeigtes) 12-Byte-Befehlsregister,
das normalerweise mehr als einen Befehl enthält. Darüber hinaus fordert die Befehlsabholeinheit unter der
Steuerung der Steuerspeichereinheit eine Information (Befehle) aus dem Hauptspeicher an, bevor der Befehl eigentlich benötigt
wird. Auf diese Weise wird das 12-Byte-Befehlsregister der
betreffenden Einheit konstant aktualisiert gehalten. Auf diese Weise werden Befehle in normalerweise nicht benutzten
Speicherzyklen 'vorher abgeholt· Die Befehlsabholeinheit dekodiert
ferner jeden Befehl und informiert die übrigen Ein-
und
heiten bezüglich der IiMnge/des Formats des Befehls,
heiten bezüglich der IiMnge/des Formats des Befehls,
Die Adressensteuereinheit ACU1319 steht mit der Befehlsabholeinheit,
der Rechen- und Verknüpfungseinheit, der Datenbehandlungseinheit
und der Steuerspeichereinheit über den Steuerspeicher-SchnittStellenadapter in Verbindung. Die
Adressensteuereinheit ACUI3I9 ist für die gesamte Adressenbildung
in der Zentraleinheit verantwortlich. Sämtliche Operationen der Adressensteuereinheit, einschliesslich der
Übertragungen zu der Einheit, von der Einheit und innerhalb der Einheit, werden durch eine Steuerspeichereinheits-Mikrooperation
und eine logik in der Einheit geleitet. Der normale Durchlauf von periodischen Arbeitsgängen der Adress-Steuereinheit
hängt von den Arten der Adressen in dem Befehl ab, und zwar vielmehr als von der Art des Mikrobefehls.
509826/0758
in Abhängigkeit von den Adressenarten kann die Adressensteuereinheit
unterschiedliche Operationen bezüglich ;jeder Adresse in einem Befehl ausführen. Die Adressensteuereinheit kann
ausserdem einen assoziativen Speicher 1319a enthalten, der in typischer Weise die Basisadresse der acht gerade erst
benutzten Speichersegmente speichert, und zwar zusammen
mit deren Segmentnummern. Jedesmal, wenn eine Speicheranforderung erfolgt, wird die Segmentnummer mit dqn Inhalt
des assoziativen Speichers verglichen, um zu bestimmen, ob die Basisadresse des Segments bereits gebildet und gespeichert
worden ist. Wenn die Basisadresse in dem assoziativen Speicher 1319a enthalten ist, wird diese Adresse
bei der Bildung der absoluten Adresse benutzt, und ausserdem wird eine beträchtliche Zeitspanne eingespart. Wenn die
Basisadresse nicht in dem assoziativen Speicher 1319a enthalten
ist, wird sie dadurch gebildet, dass ein Zugriff zu Hauptspeichertabellen hin erfolgt· Nachdem die Basisadresse
des Segments gebildet ist, wird sie jedoch in dem assoziativen Speicher zusammen mit der Segmentnummer gespeichert,
und zwar für eine zukünftige Bezugnahme.
Die Rechen- und Verknüpfungseinheit ALU1317 stellt eine
Schnittstelle bezüglich der Adressensteuereinheit AOU, der Befehlsabholeinheit IPU, der Datenbehandlungseinheit
DMU und der Steuerspeichereinheit CSU dar. Ihre Hauptfunktion besteht darin, Rechenoperationen und Datenbehandlungen
bzw«, Datenmanipulationen auszuführen, die von der Zentraleinheit gefordert sind. Die Operationen der Rechenlogikeinheit
hängen vollständig von Mikrooperations-Steuersignalen von der Steuerspeichereinheit CSU1301 her ab.
Der Rechen- und Verknüpfungseinheit ALU1317 und der Steuerspeichereinheit
CSU13O1 ist die Zwischenspeichereinheit
LSUI3I5 zugeordnet (die zuweilen als örtliche Speichereinheit
bezeichnet wird). Sie enthält in typischer Weise einen 256
509826/0758
Speicherplätze (32 Bits pro Speicherplatz) aufweisenden Festkörper-Speicher sowie eine Auswahl- und Lese/Schreib-Logik
für diesen Speicher. Der Zwischenspeicher bzw. Hilfsspeicher
1315 wird dazu benutzt, eine Zentraleinheits-Steuerinformation
und eine Aufrechterhaltungsinformation zu speichern.
Darüber hinaus enthält der betreffende Hilfsspeicher 1315
Arbeitsspeicherplätze, die hauptsächlich für eine Kurzzeitspeicherung von Operanden und Teilergebnissen während der
Datenbehandlung verwendet werden. Ferner ist der Rechen- und Verknüpfungseinheit ALU1317 ein Hilfsspeicher 1317a
zugeordnet, der in typischer Weise aus 64 Flipflops besteht, die für die Speicherung von verschiedenen Zuständen des
Rechnersy stems dienen.
Die Zentraleinheit weist ferner eine Takteinheit 1320 auf;
hierbei handelt es sich im wesentlichen um zwei Taktsysteme
in einem System. Das erste Taktsystem erzeugt die Zeitsteuersignale bzw. -impulse für den Steuer-Schnittstellenadapter
CIAI302, und das zweite Taktsystem erzeugt die Zeitsteuerimpulse
bzw. Taktimpulse für die Operationen der Funktionseinheit innerhalb der Zentraleinheit.
In Fig. 13c ist das Format des Steuerspeicherwortes 1325 gezeigt. Das Steuerspeicherwort besitzt in typischer Weise
eine Breite von 84 Bits; es ist in sechs Hauptfelder unterteilt:
a) Folge-Typenfeld 1326 (3 Bits);
b) Verzweigung und/oder Mikrooperationen 1327 (23 Bits);
c) Konstanten-Erzeugung und-Bestimmung 1328 (I4 Bits);
d) Daten zur Sammelleitung 1329 (8 Bits);
e) Mikrooperationen 1330 (32 Bits);
f) Überprüfung 1331 (4 Bits).
Das 3-Bit-E-Feld des Steuerspeicherwortes 1325 wird als
Folgesteuerfeld benutzt. Dabei sind in typischer Weise
509826/0758
sieben unterschiedliche Folgetypen und ein für das augenblickliche
Rechnersystem reservierter (Typ vorhanden. G-emäss dem Block 1335 in Fig. 13b ergibt sich, dass dann, wenn
das E-FeId binärwertmässig Null, 1 oder 2 ist, das Verzweigungsfeld
A, B, C und I des Mikrobefehls 1325 dazu herangezogen wird, die nächste Adresse zu erzeugen. Die ersten
sechs Bits des KS-Registers 1337 werden zusammen mit dem B-Feld, C-Testergebnissen, D-Testergebnissen und dem !-Feld
dazu herangezogen, die nächste Adresse des nächsten Mikrobefehls zu liefern, der dann in das Adressregister KS 1337
eingeführt wird. Wenn das E-FeId auf den Binärwert 4 gesetzt
ist (siehe Block 1335), wird die nächste ausgewählte Adresse dem Unterbrechungs-Rückkehrregister KA 1339 entnommen.
Die in dem ΚΑ-Register gespeicherte Adresse ist die eine Adresse, die durch die zur Erzeugung der nächsten Adresse
dienenden logik erzeugt wird, wenn die Hardware-Unterbrechung auftritt. Wenn das E-FeId auf den Binärwert 5 gesetzt ist,
wird eine Verzweigung benutzt, um eine Unter-Rückkehr von einer Mikroprogramm-Subroutine auszulösen. Bei derartiger
Ausnutzung des beschriebenen Feldes wird der Inhalt des Rückführregisters ER 1346 als nächste Steuerspeicheradresse
ausgenutzt. Das Rückführregister 1346 wird dadurch geladen, dass ein Steuerspeicherbefehl abgegeben wird, der die vorliegende
Steuerspeicheradresse im KS-Register 1337 zuzüglich einer 1 von einem Inkrementor 1338 in das KR-Register
1346 lädt. Über das KT-Rückkehr-Verzweigungsregister 1347
wird die Fähigkeit einer I-Ebene-Verschachtelungs-Subroutine
erhalten. Jedesmal, wenn das KR-Register 1346 geladen wird, wird der alte Inhalt des KR-Registers zu dem KT-Register 1347
hin übertragen, und zwar jedesmal, wenn die Mikroprogramm-Rückführung angefordert wird. Der Inhalt des KT-Registers
wird zu dem KR-Register hin übertragen. Die Fähigkeit einer Verschachtelungs-Subroutine der dritten Ebene wird durch
das HI-Register 1340 erhalten. Die Fähigkeit einer Verschachtelungs-Subroutine der vierten Ebene wird durch das
509826/0758
KV-Rückkehr-Verzweigungsregister 1349 erhalten. Wenn das E-PeId des Steuerspeichefwortes auf den Binärwert 6 gesetzt
ist, ist das nächste adressierte Steuerspeicherwort gleich die vorliegende Adresse in dem KS-Register 1337 zuzüglich
einer 1 in dem Inkrementor 1338. Wenn das E-FeId auf den
Binärwert 7 gesetzt ist, tritt die Steuerspeichereinheit 1301 in den Diagnosebetrieb ein, und die nächste Adresse
wird die vorliegende Adresse zuzüglich einer 1 sein.
Zusätzlich zu der Ablaufsteuerung der Verzweigung zu der nächsten Steuerspeicheradresse, wie dies oben erläutert
worden ist und im Block 1335 veranschaulicht ist, ist eine durch Hardware hervorgerufene Folgesteuerung im Block 1336
gemäss Fig. 13b vorgesehen. (Es sei darauf hingewiesen,
dass die Blöcke 1335 und 1336 in Aktualitäts-Hardware-Registern enthalten sind, die dargestellt sind, um die unterschiedlichen
Formen zu veranschaulichen, die Mikrobefehlsworte annehmen können)·
Die durch Hardware erzeugten Verzweigungen sind Unterdrückungs-Zustände
(wie Fehler, Auslösung, Steuerspeicherabtastung, etc.), die das E-FeId unterdrücken und eine feste Adresse
in das Steuerspeicheradressregister KS1337 einführen. Die Verzweigung erfolgt dadurch, dass eine Unterbrechungsleitung (nicht gezeigt) für eine Taktperiode freigegeben
wird und dass die Adresse, die unter der Steuerung des Ε-Feldes erzeugt worden wäre, in das KA-Unterbrechungsrückführregister
1339 eingeführt wird. Eine durch Hardware erzeugte Adresse wird in das Steuerspeicher-Adressregister
eingeführt. Bestimmte, durch Hardware/Firmenware erzeugte Unterbrechungen erhalten Priorität, wenn das Unterbrechungsblock-Flipflop
(nicht gezeigt) die Ausführung zusätzlicher Unterbrechungen in ihrer Klasse verhindert, bis der Unterbrechungszustand
erfüllt ist. Eine Firmenware-Mikrooperaticm ist zur Steuerung der Rückstellung des Unterbrechungsblock -
509826/0758
Flipflops vorhanden, und zwar für solche Polgen, die unter der Firmenwaresteuerung stehen. Diejenigen Folgen, die unter
der Hardwaresteuerung stehen, erzeugen automatisch eine Rückstellung des Block-Flipflops am Ende der Folge. Die
folgenden Zustände, die nach Priorität aufgeführt sind, existieren in dieser Kategorie:
a) Steuerspeicher-Iadung,
b) Steuerspeicher-Abtastung,
c) Hardwarefehler,
d) Softwarefehler.
Die übrigen Hardwarezustände bewirken nicht das Setzen des
Unterbrechungsblock-Flipflops; sie rufen jedoch eine unmittelbare Wirkung hervor, wenn sie erzeugt werden. Die folgenden,
nach. Priorität aufgeführten Zustände bzw. Bedingungen existieren in dieser Kategorie:
a) Voreinstellen,
b) Weiche Löschung,
c) Eintritt ins Wartefeld,
d) Eintritt ins Wartefeld,
e) Hard ware-Ausgäbe.
Ein Voreinstellungssignal bewirkt, dass die Steuerspeichereinheit CSU1301 eine Verzweigung zur Binäradresse Null vornimmt,
dass durch Hardware rückstellbare Fehler gelöscht weeden und dass eine Steuerspeicherladeoperation ausgeführt wird,
die von einer Steuerspeicherabtastfolge unter Hardwaresteuerung gefolgt wird. Das betreffende Signal führt ferner die Systemvoreinstellung
bzw. -auslösung aus. Ein weiches löschsignal bewirkt, dass die Steuerspeichereinheit CSUI30I zur Binäradresse
Null hin eine Verzweigung vornimmt, die durch Hardware rückstellbaren Fehler löscht und das Unterbrechungsblock-Flipflop
zurückstellt. Ein den Eintritt in das Wartefeld betreffendes Signal bewirkt, dass die Steuerspeichereinheit
eine Verzweigung zu der Adresse hin vornimmt, die in den
509826/0758
Adressenschaltern der Steuerspeichereinheit in dem Wartefeld (nicht gezeigt) voreingestellt worden ist.
Ein den Eintritt in einen Wartekanal betreffendes Signal
bewirkt, dass die SteuerSpeichereinheit eine Verzweigung zu
einer Adresse hin vornimmt, die über den Wartekanal (nicht gezeigt) erzeugt worden ist. Die Adresse wird von der Warte-Sammelleitung
QMB1344 her geladen, die Teil des Wartekanals
ist; die betreffende Adresse ist rechtsbündig. Ein Hardware-Ausgabesignal bewirkt, dass die Steuerspeichereinheit zur
Binäradresse 2 hin eine Verzweigung vornimmt. Diese Folge wird als Warteeinrichtung benutzt. Am Ende der Folge wird
eine Rückführung ausgelöst, und zwar durch Ausgabe einer E-FeId-Verzweigung,
wobei das E-FeId auf den Binärwert 4 gesetzt wird.
Ein Steuerspeicher-Ladesignal bewirkt, dass die Steuerspeichereinheit
zur Binäradresse Null hin eine Verzweigung vornimmt. Ausserdem schaltet das betreffende Signal das Lesezyklus-Flipflop
der Steuerspeichereinheit (nicht gezeigt) und die
Systemtaktschaltung 1320 aus, und ferner wird die Steuerspeichereinheit
in den Ladezustand gebracht. Im Ladezustand kann die Steuerspeichereinheit von der Steuerspeicher-Ladeeinrichtung
CSL1303, der Eingabe/Ausgabe-Steuereinrichtung 13Q5, dem
Hauptspeicher 102 oder dem Wartefeld 1355 her geladen werden. Erfolgt eine Ladung von der Steuerspeicher-Ladeeinrichtung
her, so wird eine automatische Abtastung am Ende des Ladevorgangs hervorgerufen. Wenn eine Ladung von irgendeiner
anderen Einrichtung her erfolgt, kann eine Abtastung entweder dadurch eingeführt werden, dass ein Mikrooperationssignal
erzeugt wird, oder dadurch, dass der Abtastschalter in dem Wartefeld eingestellt wird. Ein Steuerspeicher-Abtastsignal
bewirkt, dass die Steuerspeichereinheit eine Verzweigung zu einer Binäradresse Null hin vornimmt. Eine
Steuerspeicherabtastung steht unter der Hafdwaresteuerung
509826/0758
während der Dauer der Ablauffolge. Während der Abtastung
ist die Systemtaktschaltung 1320 abgeschaltet; daher können keine Befehle oder Tests ausgeführt werden. Am Ende der Abtastfolge
überträgt die Hardware den Inhalt des Unterbrechungs-Rückführregisters
KA zu dem Adressregister KS, ferner wird die Systemtaktschaltung eingeschaltet, und die Steuerung
kehrt auf die Firmenware zurück.
Ein Hardware-Fehlersignal veranlasst die Steuerspeichereinheit,
eine Verzweigung auf die Binäradresse 4 vorzunehmen. In dem normalen Verarbeitungsbetrieb wird ein Hardware-Fehler, der
in irgendeiner Funktionseinheit der Zentraleinheit ermittelt worden ist, eine Hardware-Fehler^leitung (nicht gezeigt)
aktivieren. Die Steuerspeicherfolge wird dann die Systemzustände überprüfen, um die zutreffende Maßnahme zu bestimmen.
Im Diagnosebetrieb sind Fehlerzustände, die durch Hardware ermittelbar sind, für Mikrofehler-Diagnosen verfügbar. Die
Mikro-Fehlerdiagnosen steuern die zu treffende Maßnahme.
Ein Software-Fehlersignal bewirkt auf der anderen Seite, dass der Steuerspeicher eine Verzweigung zur Binäradresse
hin vornimmt. Diese Adresse ist der Anfang der Software-Fehlerberichtfolge,
die unter Mikroprogrammsteuerung steht.
Bezugnehmend auf Pig. 13c sei bemerkt, dass das E-FeId
1326 ein 3-Bit-Feld für den zuvor beschriebenen Verzweigungs-Code
ist. Das Verzweigungs- und/oder Mikrooperationsfeld
1327 besteht aus den Fehleren A, B, C, D und L (ebenfalls
im Block 1335 gemäss Fig. 13b dargestellt,)wobei das A-FeId
durch die oberen sechs Bits der nächsten Adresse gebildet ist, wobei das B-Feld durch die mittleren vier Bits der
nächsten Adresse des Ausblend-Feldes bei einer 64-fachen Verzweigung gebildet ist, wobei das C-FeId ein 6-Bit-Test-FeId
für einen Test von 64 Tests ist, wobei das D-Feld ein weiteres 6-Bit-Testfeld für einen Test von 64 Tests ist
und wobei das L-FeId das Bit niedrigster Wertigkeit ist.
509826/0 758
Das E-FeId 1328 ist ein 14-Bit-Feld, von welchem sechs Bits
für das Eonstantenfeld vorgesehen sind, während vier Bits ein Eonstanten- oder Steuerungsfeld und vier Bits für- ein
Steuerungsfeld für eine Eonstante vorgesehen sind. Die Daten für das Sammelleitungs- oder Bus-Feld 1329 umfassen das
QA-FeId mit vier Bits für die Steuerung der Information für
den QA-Teil der QMB-Sammelleitung 1344 und das QB-FeId
mit vier Bits für die Steuerung der Information für den QB-Teil der QMB-Sammelleitung 1344. Das F-FeId 1330 ist
ein 32-Bit-Feld, welches so codiert ist, dass Mikrooperations-Unterbefehle
erzeugt werden. Das P-FeId 1331 besteht aus vier Bits, die für eine Prüfung reserviert sind.
Im Betrieb werden die Mikrobefehlsworte in dem Steuerspeicherfeld
1333 gespeichert. Während eines Operationszyklus wird
die Steuerspeicherreihe durch den Inhalt des ES-Adressregisters 1337 adressiert. Dies bewirkt, dass der Inhalt des durch
die Adresse bezeichneten Speicherplatzes in die Gruppe der Lese-Verriegelungsschaltungen 1357 auszulesen ist. Teile
des Wortinhalts der Lese-Verriegelungsschaltungen werden zu Speicherregistern innerhalb jeder der Funktionseinheiten
in der Zentraleinheit verteilt oder übertragen. Jede Funktionseinheit enthält Dekodier-Verknüpfungsschaltungen, die die
erforderlichen Unterbefehle zu erzeugen gestatten, welche durch das Steuerspeicherwort bezeichnet sind, und zwar
gesteuert durch die Sysientaktquelle. Im allgemeinen wird
die Dekodierung innerhalb jeder Funktionseinheit in der Zentraleinheit ausgeführt und nicht zentral, um nämlich
die Dekodierzeit auf einen minimalen Wert zu senken und um die Anzahl an Eabeln zu vermindern, die normalerweise
für die Übertragung von Befehlssignalen erforderlich wären, wenn die Dekodierung zentral ausgeführt würde. Zusätzlich
wird die Dekodierung in jeder Einheit ausgeführt, um Zeitprobleme zu vermeiden, die sich aus unterschiedlichen Eabel-
oder Leitungsverzögerungen ergeben. Durch Dekodieren von
509826/07 6 8
Unterbefehlen mittels der jeweiligen Einheit brauchen im
übrigen jene Signale, die kennzeichnend sind für bestimmte, in der Funktionseinheit vorhandene Zustände, welche für die
Erzeugung bestimmter Unterbefehlssignale benötigt werden, nicht zu der Steuerspeicher-Schnittstellenadaptereinheit
1302 zurückgeführt zu werden. Eine typische Dekodereinheit 1359 ist in Figo 13b gezeigt; sie erhält verschiedene Felder
von Mikrobefehlsworten und erzeugt Mikrooperationssignale a, b, c, d, ...q, r. Ein typischer Mikrooperations-Dekoder
1359 nimmt Befehle aus einem Mikrobefehlswort auf. Das Feld
aus dem Mikrobefehlswort wird dekodiert; es bewirkt, dass eine leitung aus einer Vielzahl von Leitungen s, t, u,
y, ζ ein hohes Potential führt. Eine Matrix wird dabei dadurch gebildet, dass eine bestimmte Steuerleitungsirapedanz
mit den s-z-Leitungen an den Punkten (Λ , β , tf, »α, »ψ , u3 ,
verbunden wird. Wenn das Feld aus einem Mikrobefehl dekodiert wird, führt in typischer Weise eine der Leitungen s-z ein
hohes Potential. Da die schwarzen Punkte, die in der Matrix durch griechische Buchstaben C* bis £ü angegeben sind, die
Impedanz-Yerbindung zwischen zwei Reihen von Leitungen kennzeichnen,
wird irgendeine elektrische Signalausbreitung längs irgendeiner horizontalen Leitung weitergekoppelt, und
zwar derart, dass sich eine Ausbreitung längs der vertikalen Leitung a-r ergibt, wo eine Impedanzkopplung (schwarzer
Punkt) angedeutet ist. Jede vertikale Leitung a-r kann dann als Eingangsleitung mit einem der jeweiligen UND-Glieder
1360 bis 1365 verbunden sein. Weitere Eingangssignale können den UND-Gliedern 1360 bis 1365 zugeführt werden,
umfassend ein Zeitsteuersignal ts von der zentralen Zeitsteuereinheit her. Jedesmal, wenn das Zeitsteuersignal ts
einen hohen Signalwert annimmt, liefern demgemäss diejenigen
Verknüpfungsglieder, deren sämtliche übrige Eingangssignale
mit hohem Signalpegel auftreten und die dadurch übertragungsfähig gemacht sind, Mikrobefehlssignale an bestimmte Funktions-
5 0 9 8 2 6/0758
einheiten in der Zentraleinheit. Wenn zum Beispiel ein Befehl 1341 aus der Lese-Verriegelungsschaltung 1357 dekodiert
wird und wenn eine horizontale Leitung einen hohen Signalwert führt, führen die vertikalen Steuerleitungen a, b,
c und q jeweils einen hohen Signalwert, und die UND-Glieder 1360, 1361, 1362 und 1364 werden übertragungsfähig, wenn
das ts-Zeitsteuersignal diesen Verknüpfungsgliedern sequentiell zugeführt wird. Die Kombination, in der die vertikalen Steuerleitungen
mit der horizontalen Steuerleitung an unterschiedlichen Punkten verbunden sind, die durch die griechischen
Buchstaben cX bis (£ angegeben sind, stellt somit eine permanente
Schaltmatrix dar, die Mikrooperationssignale an die Zentraleinheit abgibt, und zwar zum Zwecke der Steuerung der
Funktionseinheiten innerhalb der Zentraleinheit durch Mikrobefehle, die von der Steuerspeicherrihe bzw. dem Steuerspeicherfeld
1333 geliefert werden. Demgemäss kann eine permanente Firmenware mit der Eigenschaft der Veränderbarkeit in die
Maschine der vorliegenden Erfindung einfach dadurch eingebaut v/erden, dass lediglich die Folge der Mikrooperationen genau
angegeben wird, die als Eigenschaft des Rechnersystems erforderlich
ist.
Unter normalen Bedingungen werden Daten in das Steuerspeicherfeld 1333 über das Schreib-Datenregister der Zentraleinheit
eingeschrieben, das auch als örtliches Register YO1343 bezeichnet wird. Ein Steuer-Flipflop (nicht gezeigt) legt
fest, die obere Hälfte oder die untere Hälfte des Steuerfeldes für das ^anschreiben in Frage kommt. Daten aus der
Steuer- und Ladeeinheit CLU1304 erreichen den Steuerspeicher-Schnittstellenadapter
bzw. die Steuerspeichereinheit über die Wartungs-Bus-Leitung QMB1344; sie v/erden durch, das örtliche
Speicherregister YO1343 gepuffert, bevor sie in das Steuerspeicherfeld
1333 eingeschrieben werden. Das örtliche Speicherregister 1343 ist im Zeitteilbetrieb ausgenutzt, und zwar
sowohl für ein örtliches Leseregister als auch für ein ört-
509826/0758
liches Schreibregister. Die Multiplexeinrichtung bzw. der Multiplexer KQM1345 kann entweder durch das Wartungsfeld 1355 oder durch Mikro-Fehlerdiagnosen gesteuert werden;
er stellt den Ausleseweg von den an ihm angeschlossenen Registern her. Ein Vergleicherregister KP135O ist für einen
Gebrauch ohne Punktion vorgesehen; es wird hauptsächlich für Wartungszwecke herangezogen und zusammen mit der Vergleicherlogik
1352 und der Dekoderlogik 1351 benutzt.
Der Zuteiler ist eine Firmenware/Hardware-Einheit, deren
Hauptaufgabe darin besteht, die verschiedenen Schlangen von Prozessen zu behandeln und zwischen Prozessen umzuschalten.
Die betreffende Einheit umfasst die Aktualisierung der Prozess-Schlangen,der Prozess-Steuerblöcke, des laufenden
Prozesswortes in der Systembasis und der Register eines neuen Prozesses. Sie gibt ferner Nachrichten an einen
Prozess ab, der tatsächlich darauf bezüglich eines Semaphores wartet (nach einer V-Operation, einer simulierten V-Operation
für die Eingabe/Ausgabe-Steuereinrichtung oder für die Ausnahme-Behandlungseinrichtung). Die betreffende Einheit
bewirkt ferner die Schlangenbildung einer Nachricht bezüglich eines Semaphores nach einer P-Operation, die eine
Nachrichtenverbindung freigegeben hat, als ein Prozess auf das freie Verbindungs-Semaphor wartete, um seine Nachricht
abzugeben.
Die Zuteilereinheit fordert ferner im Maschinencodebetrieb
die Befehls-Firmenware an, und zwar nach dem "Einspeichern" eines Prozesses, der eine Ausführung im Maschinencode-Betrieb
vornimmt, oder nach einer "Auseinandersetzung", falls der gegenwärtige Prozess weiterläuft und im Maschinencodebetrieb
ausgeführt wird. Ferner fordert die betreffende Einheit
509826/0758
eine Dekorerweiterungs-Firmenware an, und zwar "bezüglich.:
a) einer kurzzeitigen Anforderung während des Ausspeicherns
eines Prozesses, der "bezüglich der Dekorerweiterung eine Ausführung "bewirkt,
b) einer kurzzeitigen Anforderung während des Einspeicherns eines Prozesses, der "bezüglich der Dekorerweiterung eine
Ausführung "bewirkt,
c) einer definitiven Anforderung am Ende des Einspeicherns eines Prozesses, der "bezüglich der Dekorerweiterung eine
Ausführung "bewirkt und
d) einer definitiven Anforderung nach einer "Auseinandersetzung",
falls der gegenwärtig laufende Prozess weiterläuft und eine Ausführung "bezüglich der Dekorerweiterung
"bewirkt.
Der Zuteiler führt darüberhinaus das System in eine Leerlaufschleife
über, wenn kein laufender Prozess vorhanden ist.
Es gibt verschiedene Möglichkeiten, in den Zuteiler einzutreten
oder diesen zu verlassen. Es sind dies folgende Möglichkeiten:
1) Die Inizialisierungsprozedur (SIP) liefert einen Eintrag als letzten Schritt,
2) der Start- und Unterbrechungsbefehl dient für
den Eintrag in den Zuteiler. Der Startbefehl beginnt ■ einen Prozess, und der Unterbrechungsbefehl beendet
einen Prozess.
3) Die P-Operation und die V-Operation führen zu einem
Eintrag in den Zuteiler. Die P-Operation nimmt eine Nachricht aus einem Seraaptior auf. Wenn keine Nachricht
vorhanden ist, dann geht der Prozess in den ¥artezustand über.
509826/0758
Der Zuteiler ist dann, mit wenigen Worten gesagt, der Hauptmechanisinus,
der die Prozesse führt und deragemäss die Prozess-Steuerblöcke
PCB, und zwar durch die Entscheidung darüber, welcher Prozess zu laufen hat, und durch dann erfolgende
Vornahme der in Präge kommenden Massnahme, wie des Auslesens
dass
des gerade laufenden Prozesses (das heisst/ xn den Prozess-Steuerblock
sämtliche Informationen bezüglich des gerade laufenden Prozesses eingeschrieben werden, welche Informationen
in Hardware-Registern, dem HilfsSpeicher, etc., enthalten sind),
Als geeignete Maßnahme erfolgt ausserdem das Einspeichern des neuen Prozesses. (Dies bedeutet, dass aus dem Prozess-Steuerblock
sämtliche für den Lauf des neuen Prozesses erforderlichen Informationen in die verschiedenen Hardware-Register,
in den HilfsSpeicher, etc. eingeschrieben werden).
Die Darstellung der durch den Zuteiler ausgeführten Funktionen ist in den Plussdiagrammen gemäss Pig. 14a bis 14i wiedergegeben.
Der Block 1402 gemäss Pig. 14a ist zum Beispiel eine Darstellung der Punktion, die von dem Zuteiler ausgeführt
wird; dabei wird ein Mikroprogrammwort von der Steuerspeichereinheit abgegeben. Auf die Dekodierung dieses Wortes durch
den Dekoder 1359 werden die zutreffenden Teile der Zentraleinheit über eine in Präge kommende Reihe von Mikrooperationssignalen
1360, 1361, etc. gesteuert, um das interne Prozess-Schlangenwort IPQW aus der Systembs&s in dem Speicher-Untersystem
102 abzuholen und zu dem Hilfsspeicher 1315
hin zu übertragen. Gleichzeitig holt der Zuteiler 1404 den GO-Segment-Deskriptor (siehe Pig. 12) aus der G-Tabelle
der Segment-Deskriptoren ab, auf den durch das G-Tabellen-Wort
GTW in der Systembasis gezeigt ist. Die Bits 13 bis in dem IPQW-Wort enthalten eine positive ganze 16-Bit-Zahl,
die die Verschiebung von der Basis der G-Segment-Nummer Null, und zwar bezüglich des. GO-Segments, zu dem Kopf (erstes Byte)
509826/0758
der Prozessbereitschaftsschlange Q/PR/RDY hin ist. Wenn
die Bits 16 bis 31 des IPQ¥-¥ortes Hull sind, dann w±fl die Bereitschaftsschlange 1403 als leer betrachtet. Wenn die
Bereitschaftsschlange leer ist, zeigt dies an, dass kein Prozess vorhanden ist, der gerade in der Q/PR/RDY-Schlange
wartet, und dass die Bereitschaftsschlange leer ist. Die nächste, in dem Entscheidungsblock 1405 zu entscheidende
Erage lautet, ob ein Prozess gerade in der Maschine läuft
oder nicht. ^iese Entscheidung erfolgt dazu zu bestimmen,
ob die ITrei-Anzeigeeinrichtung gesetzt ist oder nicht. (Die
Frei-Anzeigeeinrichtung ist ein Flipflop, das in dem Hilfsspeicher
1317a untergebracht ist; sie ist gesetzt, wenn kein laufender Prozess CJP in dem Prozessor läuft). Wenn
die Prei-Anzeigeeinrichtung gesetzt ist (das bedeutet, dass
kein Prozess gerade läuft) und zuvor bestimmt worden ist,
dass kein Prozess in der Bereitschaftsschlange darauf wartet, den Prozessor zu benutzen, dann geht die Maschine in den Leerlaufzustand
1406 über. Wenn jedoch in der Maschine gerade ein Prozess läuft, jedoch kein Prozess darauf wartet, die
Maschine zu benutzen, erhält der laufende Prozess Zugriff zu seinem nächsten Befehl 1407.
Nunmehr sei auf den Entscheidungsblock 1403 des ITussdiagramms
gemäss Fig. 14a Bezug genommen. Wenn eine positive ganze Zahl in dem Zeigerbereich des IPQW-Wortes (das sind
die Bits 16 bis 31) vorhanden ist, wird der Kopf der Bereitschaftsschlange,
auf den durch das IPQW-Wort in dem GO-Segment gezeigt wird, in den Hilfsspeicher abgeholt. (Es sei
auf folgendes hingewiesen: Um eine Wiederholung zu vermeiden und im Interesse der Klarheit werden die Zwischenfunktionen
des Zuteilers in Verbindung mit der Steuereinheit und der Zentraleinheit weggelassen; es dürfte jedoch einzusehen sein,
dass derartige Zwischenfunktionen, wie sie zuvor als Beispiel
509826/0758
beschrieben worden sind, in "typischer Weise vorhanden sind.)
Bis zu diesem Punkt ist bestimmt worden, dass ein gewisser
Prozess vorhanden ist, der in der Bereitschaftsschlange wartet, bevor eine weitere Maßnahme getroffen werden kann,
ist es erforderlich zu bestimmen, ob gerade ein Prozess in der Zentraleinheit läuft. Dies wird in dem Entscheidungs—
block 1410 gemäss der Flussdiagrammdarstellung bestimmt. Wenn kein gerade laufender Prozess in der Zentraleinheit
vorhanden ist (das heisst, dass kein gerade ausgeführter Prozess vorhanden ist), dann wird der Kopf der Bereitschaftsschlange weggeführt (1412). Wenn jedoch in der Zentraleinheit
ein Prozess läuft, muss der Zuteiler bestimmen, wer Priorität besitzt, und zwar entweder der gerade laufende Prozess oder
der Kopf der Bereitschaftsschlange. Demgemäss wird das Prioritätsbyte
des laufenden Prozesses (GJP), das in dem laufenden Prozesswort der Systembasis 600 oder in dem Prozesshauptwort
0,PMWO, des Prozess-Steuerblockes 4OO untergebracht ist,
abgeholt (1413). Sodann wird eine Entscheidung getroffen (1414) um zu bestimmen, ob der gerade laufende Prozess OJP
die geringere Priorität besitzt als der neue Prozess NJP, der am Kopf der Warteschlange wartet. (Siehe Entscheidungsblock 1414)* Wenn der gerade laufende Prozess CJP nicht
eine geringere Priorität besitzt als der neue Prozess KJP, verbleibt es bei der Steuerung des gerade laufenden Prozesses
durch die Zentraleinheit, und die Entscheidungs-Anzeigeeinrichtung
wird zurückgestellt (1415). (Die Entscheidungs-Anzeige· einrichtung ist stets auf ITuIl gesetzt; eine Ausnahme liegt
lediglich dann vor, wenn ein oder mehrere neue Prozesse in die Bereitschaftsschlange eingeführt worden sind, da der
Beginn des letzten Befehls zu Gunsten des gerade laufenden Prozesses CJP ausgeführt wird. Dadurch wird die Möglichkeit
eines Konfliktes hervorgerufen. Unter diesen Bedingungen wird die Entscheidungs-Anzeigeeinrichtung auf den Binärwert
1 gesetzt). Bevor der laufende Prozess CJP jedoch veiterlaufen und weitere Befehle ausführen kann, erfolgt eine Peststellung
509826/0758
dahingehend, ob der gerade laufende Prozess CJP im Dekorerweiterungsbetrieb
1415 läuft oder nicht. Wenn der gerade
laufende Prozess im sogenannten Dekorerweiterungsbetrieb läuft, dann wird der nächste Befehl im Emulationsbetrieb
(das ist eine Dekorerweiterung) ausgeführt. Wenn der gerade laufende Prozess nicht in einem Dekorerweiterungsbetrieb
läuft, dann wird der nächste Befehl im Maschinencodebetrieb ausgeführt. Zurückkommend auf den Entscheidungsblock 1414
sei bemerkt, dass dann, wenn dei/neue Prozess NJP am Kopf
der Bereitschaftsschlange die höhere Priorität besitzt als der laufende Prozess CJP (das heisst, dass dessen Prioritäts-Nummer
niedrigerpLst als die Prioritätsnummer des gerade ■
laufenden Prozesses CJP)?- der gerade laufende Prozess
CJP aus der Maschine "ausgespeichert" und der_ neue Prozess ITJP in die Maschine "eingespeichert"/; Tleragemäss
leitet eine Firmenware-Prioritäts-Subroutine PRIQI4I8
die Überführung des gerade laufenden Prozesses CJP in die Bereitschaftsschlange, und zwar durch die LI3?0-Priorität
und durch die Prioritätszahl der ersten "Ausspeicherung"
des gerade laufenden Prozesses CJP unter der leitung der Firmenware-Subroutine RLLO 1419. Die RLLO-Subroutine leitet
das Einschreiben der Information des laufenden Prozesses CJP, die in den allgemeinen Registern, den Basisregistern,
den technisch-wissenschaftlichen Registern, dem T-Register, den Zustandsregistern und dem Befehlszähler gespeichert ist,
in die in Frage kommenden Speicherbereiche des Prozess-Steuerblockes
PCM in dem Hauptspeicher zurück. 'Ausserdem leitet die betreffende Subroutine die Aktualisierung des RUA-Bereiches.
Darüber hinaus wird die DEXT-Nummer des Prozesshauptwortes
Full (PMVJO) . in dem Prozess-Steuerblock 400 aktualisiert
(1420).
Der neue Prozess UJP ist nunmehr für die "Einspeicherung"
bereit. Der Inhalt des G-renzadressregisters BAR wird abgeholt
(1422), und ausserdem wird das laufende Prozesswort RPW
509826/0758
aus dem Adressregister BAR+56 der Systembasis abgeholt
(siehe Block 1423). Der lame des neuen Prozesses IJP wird
in das laufende Prozesswort RPW geschrieben. Da der Name des neuen Prozesses NJP in die Prozessverbindung PI von
Q/PR/RDI eingeschrieben worden ist, ist der Name in der Prozessverbindung PL somit in RPW untergebracht (siehe
Block 1424). Demgemäss wird der neue Prozess NJP aus der
Bereitschaftsschlange nunmehr der laufende Prozess OJP; er ist berechtigt, die Zentraleinheit zu steuern,und wartet
demgemäss nbht mehr langer in dem Q/PR/RDY-Bereich. Er muss
vielmehr aus der Schlange herausgeführt werden, indem sein Name aus der Prozessverbindung PL von Q/PR/RDY herausgeführt
wird (Block 1425). Wenn dies geschehen ist, wird die Schlange der Bereitschaftsprozesse Q/PR/RDY aktualisiert, und zwar
durch die Firmenware-Subroutine UQLZ (1425a). Demgemäss wird die JP-Nummer des Prozesses, der gerade aus der Maschine
genommen worden war, in eine Prozessverbindung in der Q/PR/RDY-Schlange untergebracht, da der betreffende Prozess nicht mehr
die Maschinensteuerung besitzt, sondern auf diese warten muss
(1426). An dieser Stelle wird die Übertragung dieser Steuerung der Zentraleinheit auf den neuen Prozess und die Unterbringung
des alten Prozesses in einer Bereitschaftsschlange bewirkt. Da ein Prozess (der neue Prozess CJP) durch die Zentraleinheit
gesteuert wird, ist die i'rei-Anzeigeeinrichtung auf
Null gesetzt (1427). Wenn demgegenüber kein neuer Prozess CJP durch die Zentraleinheit gesteuert wird, würde die
Ficei-Anzeigeeinrichtung auf 1 gesetzt werden. An dieser
Stelle ist die Zuteilung des Prozessors beendet, und ein neuer Prozess hat den zentralen Prozessor erreicht, während
der alte Prozess in einer Bereitschaftsschlange untergebracht ist. Der neue Prozess ist jedoch noch nicht bereit, schon
jetzt für die Hardware der Zentraleinheit zu laufen (1306 geraäss Pig. 13a), da nämlich die allgemeinen Register 1307,
die Basisregister 1308, die technisch-wissenschaftlichen Register 1309, das T-Register 1310, die Zustandsregister 1511
509826/0758
und der Befehlszähler 1312 mit einer Steuerinformation von
dem Prozess-Steuerblock des neuen Prozesses her gespeist werden müssen.
Demgemäss steuert die PirnBn ware-Subroutine 1430 die Zentraleinheit
und holt zunächst das.Prozesshauptwort 3 aus dem Prozess-Steuerblock (Pig. 4) für den Hilfsspeicher 1315 ab,
und sodann wird das Prozesshauptwort Hull abgeholt. Das MBZ-PeId des Prozesshauptwortes UuIl wird überprüft (1433).
Wenn das betreffende PeId keine binäre Null ist, tritt eine
unzulässige Prozess-Steuerblock-Ausnahme auf. Wenn das MBZ-PeId des Prozesshauptwortes Null eine Null ist, dann wird
das Prozesshauptwort 1 abgeholt (1434). Das MBZ-PeId des Prozesshauptwortes 1 wird ebenfalls überprüft um festzustellen,
ob es eine binäre Null ist oder nicht. Ist es nicht eine binäre Null, so tritt eine unzulässige Prozess-Steuerblock-Ausnahme
auf. Ist es hingegen gleich Null, so geht der Zuteiler weiter auf C.
Demgemäss wird das Adressenraumwort Null, ASWO, aus dem
in Präge kommenden Platz in dem Prozess-Steuerblock abgeholt, und die Segraenttabellenwortgrösse STWSZ wird überprüft
(1437) um zu bestimmen, ob sie kleiner ist als 7 oder nicht. Ist sie grosser als 7, so ergibt sich ein unzulässiger Prozess-Steuerblock*
Ist sie kleiner als 7 oder gleich 7» so v/ird das Adressenraumwort ASW1 aus dem Prozess-Steuerblock abgeholt
(Block 1438), wobei das STWSZ-PeId dieses Blockes überprüft
wird (1439) um zu bestimmen, ob es kleiner als 8 oder gleich 8 ist. Wenn das betreffende PeId grosser als 8 ist,
dann ergibt sich ein unzulässiger Prozess-Steuerblock. Wenn jedoch das betreffende STWSZ-PeId gleich 8 oder kleiner
als 8 ist, wird das Ausnahmewort EXW abgeholt (1440), und dessen MBZ-PeId wird überprüft um festzustellen, ob es gleich
Null ist oder nicht. Ist das MBZ-Peld nicht gleich Null,
so tritt ein unzulässiger Prozess-Steuerblock auf. Ist hin-
5 0 9 8 2 6/0758
gegen das betreffende Feld gleich Full, so wird das Stapelspeicherwort
SKVi abgeholt (I442), und dessen MBZ-PeId wird
überprüft (1443) um festzustellen, ob es gleich Null ist oder nicht. Wenn das betreffende MBZ-FeId nicht gleich Null
ist, dann tritt ein unzulässiger Prozess-Steuerblock auf. Ist hingegen das betreffende Feld gleich Null, so wird das
Befehlszählerwort ICW aus dem Prozess-Steuerblock abgeholt und in den Befehlszähler IC untergebracht. Ausserdem wird
das !DAG—Feld des betreffenden Wortes überprüft um festzustellen,
ob es gleich Null ist oder nicht (I445). Wenn das TAG-FeId
nicht gleich Null ist, tritt ein unzulässiger Prozess-Steuerblock auf. Wenn das TAG-FeId jedoch gleich Null ist, Wird
das MBZ-Wort abgeholt (I446), und dessen MBZ-FeId (Bits
Null bis 31) wird überprüft um festzustellen, ob es gleich Null ist oder nicht (1447). ist das betreffende Feld nicht
gleich Null, so tritt ein unzulässiger Prozess-Steuerblock auf. Ist es hingegen gleich Null, so werden die Stapelspeicher-Basisworte
0, 1 und 2, SBWO,1,2, abgeholt (1448), Der Inhalt
der acht Basis-Register in dem Basis-Register-Verbindungabereich des Prozess-Steuerblockes wird dann abgeholt (1449)
und in den Basisregistern der Maschine gespeichert (1308). Sodann werden die Inhalte der sechzehn allgemeinen Register
aus dem Allzweck-Register-Verbindungsbereich des Prozess-Steuerblockes abgeholt (1450) und in den Allzweckregistern
der Maschine gespeichert (1307). Bevor die Inhalte der technisch-wissenschaftlichen
Register abgeholt bzw. abgerufen werden, wird jedoch eine Überprüfung bezüglich des Fähigkeits-Bytes
des Prozesshauptworts Null (PMVfO) vorgenommen, um zu bestimmen, ob der technisch-wissenschaftliche Betrieb
benutzt wird oder nicht (1451). WM der technisch-wissenschaftliche Betrieb benutzt, dann werden die Inhalte der
technisch-wissenschaftlichen Register aus dem technischwissenschaftlichen Registerverbindungsbereich des Prozess-Steuerblockes
abgeholt und abgespeichert (1452). Die Firmen-
509826/0758
ware setzt dann die Vornahme einer Überprüfung des Fähigkeits-Bytes
des Prozesshauptwortes PMWO fort um zu bestimmen, ob
ein Berechnungsbetrieb benutzt wird oder nicht (1453). Wird der Berechnungsbetrieb benutzt (das heisst, dass das Berechnungsbit
des Fähigkeits-Bytes auf den Binärwert 1 gesetzt ist), so existieren die Berechnungsworte in dem Prozess-Steuerblock,
und das Bereitschaftszeit-Zählwort RiPA wird aktualisiert. Dann fährt die Firmenware fort um zu bestimmen,
ob die DEXT-Nummer auf Null gesetzt ist oder nicht (1454). Ist die betreffende Nummer bzw. Zahl nicht auf Null gesetzt,
so zeigt dies an, dass die Maschine sich im Emulationsbetrieb befinden kann (das bedeutet, dass die Dekorerweiterungseigenschaft
ausgenutzt ist). Demgemäss wird die DEXT-Nummer
des Prozesshauptworts PMVfO überprüft (1455) um festzustellen, ob sie grosser oder kleiner ist als das DETSZ-FeId
des Prozesshauptwortes 3 oder nicht. Ist sie grosser als das DETSZ-FeId, so ergibt sich eine unzulässige PCB-Ausnahme
(1456), da nämlich in dem Fall, dass die DEXT-Zahl kleiner ist als das DETSZ-FeId, nicht aber gleich Null,
die Maschine im rechtmässigen Emulationsbetrieb arbeitet und auf F weitergeht. Zurückkommend auf den Entscheidungsblock 1454 sei bemerkt, dass dann wenn das DEXT-FeId eine
binäre Null ist, der Maschinencodebetrieb ausgeführt wird.
Ausserdem holt die Maschine das Segmenttabellenwort ab (1457). Das Restzeitsperrenwort RTO des Prozess-Steuerblockes wird abgeholt (1458), und die Prozesszeitsteuereinrichtung
wird geladen, wobei die Zeitspanne begrenzt ist, die der laufende Prozess CJP im Laufzustand sein kann.
Bis zu diesem Zeitpunkt ist entweder a) ein neuer Prozess
NJP "eingespeichert" worden, um die Steuerung der Zentraleinheit zu übernehmen, wenn ein alter Prozess CJP in der
Maschine vorhanden war und wenn der neue Prozess NJP eine höhere Priorität besass als der alte Prozess CJP, oder
50 9 826/0758
b) es ist Ms zu diesem Zeitpunkt kein laufender Prozess CJP unter der Steuerung der Zentraleinheit gewesen, und
der Kopf der Bereitschaftsschlange lief durch. Unter dem Zustand a) wurde, mit wenigen Worten gesagt, der laufende
Prozess CJP aus dem laufenden Prozesswort RPW herausgenommen und in eine ProzessverMndung PI in der Q/PR/RDY-Schlange
untergebracht, und ausserdem wurde der neue Prozess NJP in der Q/PR/RDY-Schlange in dem laufenden Prozesswort
RPW untergebracht. Auf diese Weise wurden die Stellungen der beiden Prozesse wirksam umgeschaltet, mit der Folge,
dass dem neuen Prozess KTJP die Steuerung zugeteilt wurde,
der damit der laufende Prozess CJP wurde, während von dem alten Prozess CJP die Steuerung weggenommen wurde. Sodann
erfolgte der Zugriff zu dem Prozess-Steuerwort des neuen Prozesses NJP, und die für den lauf des neuen Prozesses
NJP (nunmehr JCP) erforderliche Information wurde in den Hilfsspeicher oder in das Feld von Registern in der Adresssteuereinheit
untergebrachte
Befand sich kein laufender Prozess CJP" unter der Steuerung der Zentraleinheit (Zustand b), so wurde der Kopf der Bereitschaf
tsschlange laufengelassen - dies bedeutet, dass der neue Prozess NJP der laufende Prozess CJP wurde, da nämlich der
Zuteiler den neuen Prozess NJP aus der Prozessverbindung PL aus dem Kopf der Bereitschaftsschlange entnimmt und in
das laufende Prozesswort RPW unterbringt. Hierdurch wurde eine Prozessverbindung Pl in der Q/PR/RDI-leergelassen,
wobei erforderlich ist, diese Leerstelle herauszunehmen.
Demgemäss sei nunmehr mit dem Entscheidungsblock 1461 begonnen.
Die Pirmenware bestimmt, ob ein laufender Prozess CJP unter der Steuerung der Zentraleinheit vorhanden war
oder nicht. War eine freie Prozessverbindung (PPLS) vorhanden, so erfolgt ein Zugriff und eine Einfügung in eine Schlange,
509826/0758
und ausserdeiD wird das laufende Prozesswort CJP eingeschrieben.
Ist jedoch kein laufender Prozess CJP unter der Steuerung der Zentraleinheit, so wird das Zustandsbyte des Prozesshauptwortes
PMWO des neuen Prozesses NJP aktualisiert (1460), und ausserdem wird erneut bestimmt, ob der laufende
Prozess CJP in der Maschine war oder nicht (1463). Stand der laufende Prozess CJP nicht unter der Steuerung des Prozessors,
so wird die Prozessverbindung des neuen Prozesses NJP (der in der Q/PR/RDY-Schlange war und sich nunmehr unter
der Maschinensteuerung befindet) aus der Q/PR/RDY-Schlange
herausgeführt (1466), und ferner wird die betreffende Prozessverbindung ein freies Verbindungssemaphor I1LSP und gelangt
nunmehr in die freie Prozessverbindungsschlange hinein (805
wird
in Pig. 9). Ausserdem/die betreffende Verbindung ein Teil der freien Prozessverbindungsschlange 1466a. Der Inhalt des Grenzadressregisters BAR wird abgeholt (1464), und das laufende Prozesswort RPW des neuen Prozesses NJP. (nunmehr des laufenden Prozesses CJP), das in dem Grenzadressregister BAR+56 der Systembasis untergebracht ist, wird aktualisiert. Zu diesem Zweck wird die Identifizierung des neuen Prozesses NJP in das laufende Pr.ozesswort RPW eingegeben (Block 1465). Die Irei-Anzeigeeinrichtung wird in dem Pail auf Null gesetzt, dass kein laufender Prozess CJP vorhanden gewesen ist. Anschliessend wird die Entscheidungs-Anzeigeeinrichtung (das ist ein Flipflop in dem HilfsSpeicher 1317a), das dazu benutzt wird, einen möglichen Konflikt in der Priorität zwischen dem laufenden Prozess CJP und einem Prozess anzuzeigen, der in der Bereitschaftschlange untergebracht ist) auf Null gesetzt (1467). Ausserdem wird eine Segment-Zuordnungseinrichtung (AS132 gemäss Fig. 1), die in typischer Weise ein inhaltsadressierbarer Speicher ist, gelöscht (1471)· Sodann wird in den Prozessbetrieb eingetreten (1470). (Ein Prozessbetrieb zeigt an,' dass Ausnahmen durch den im Prozessor laufenden Prozess behandelt werden anstatt durch das Betriebssystem) . Die Pirmenware fährt dann fort zu CAB1480, und das
in Pig. 9). Ausserdem/die betreffende Verbindung ein Teil der freien Prozessverbindungsschlange 1466a. Der Inhalt des Grenzadressregisters BAR wird abgeholt (1464), und das laufende Prozesswort RPW des neuen Prozesses NJP. (nunmehr des laufenden Prozesses CJP), das in dem Grenzadressregister BAR+56 der Systembasis untergebracht ist, wird aktualisiert. Zu diesem Zweck wird die Identifizierung des neuen Prozesses NJP in das laufende Pr.ozesswort RPW eingegeben (Block 1465). Die Irei-Anzeigeeinrichtung wird in dem Pail auf Null gesetzt, dass kein laufender Prozess CJP vorhanden gewesen ist. Anschliessend wird die Entscheidungs-Anzeigeeinrichtung (das ist ein Flipflop in dem HilfsSpeicher 1317a), das dazu benutzt wird, einen möglichen Konflikt in der Priorität zwischen dem laufenden Prozess CJP und einem Prozess anzuzeigen, der in der Bereitschaftschlange untergebracht ist) auf Null gesetzt (1467). Ausserdem wird eine Segment-Zuordnungseinrichtung (AS132 gemäss Fig. 1), die in typischer Weise ein inhaltsadressierbarer Speicher ist, gelöscht (1471)· Sodann wird in den Prozessbetrieb eingetreten (1470). (Ein Prozessbetrieb zeigt an,' dass Ausnahmen durch den im Prozessor laufenden Prozess behandelt werden anstatt durch das Betriebssystem) . Die Pirmenware fährt dann fort zu CAB1480, und das
509826/0758
asynchrone nicht programmierte Sprungbit AB wird überprüft um festzustellen, ob es auf den Binärwert 1 gesetzt ist oder
nicht (1481). Ist das AB-Bit auf den'Binärwert 1 gesetzt,
so erfolgt eine "Überprüfung (1482) um festzustellen, ob die Prozessringnummer PRN grosser als das asynchrone nicht
programmierte Sprungbit ARlT oder gleich diesem Bit ist. (Das Sprungbit AB und die ARN-Nummer sind in dem Prioritäts-Byte
des Prozess-Steuerblockes des jeweiligen Prozesses untergebracht; sie haben eine Bedeutung, wenn der Prozess sich
im laufzustand befindet; AB und ARN werden aus dem laufenden
Prozesswort RPW erhalten, das in dem G-renzadressregister BAR+56 der Systembasis untergebracht ist). Das AB-Bit und
die ARN-Nummer in dem G-renzadressregister BAR+56 des
laufenden Prozesswortes RPW werden zurückgestellt, da der nächste Schritt 1484 darin besteht, auf eine asynchrone
nicht programmierte Sprungroutine überzugehen. Dies würde die Bedingungen berücksichtigen, die das asynchrone Sprungbit
oder die asynchrone Ringnummer (ARN) an die erste Stelle setzen. Wenn dieses Bit bzw. diese Nummer nicht zurückgestellt
wären, dann würde der nächste Durchlauf durch die Firmenware eine Anzeige darüber liefern, dass etwas fehlerhaft ist,
v/o eigentlich nichts fehlerhaft ist. Demgemäss würde stets ein Übergang auf die asynchrone Sprungroutine 1484 erfolgen,
jedoch würde niemals eine Ausführung erfolgen. Zurückkommend auf die Entscheidungsblöcke 1481 und 1482 sei bemerkt, dass
dann, wenn das AB-Bit nicht gesetzt ist oder dann, wenn das AB-Bit gesetzt ist und PRN nicht grosser ist als ARN,
die Firmenware fortfahren würde, um zu bestimmen, in v/elcher Betriebsart der Prozessor laufen würde - im normalen Betrieb
oder im Maschinencodebetrieb oder im Emulatinsbetrieb.
Demgemäss wird die DEXT-Nummer überprüft um festzustellen, ob sie auf Null gesetzt ist oder nicht. Ist sie auf Null
gesetzt, so läuft der Normalbetrieb der Maschine (1487). Ist die DEXT-Nummer jedoch nicht auf Null gesetzt, so läuft
509826/0758
der Emulationsbetrieb (1486).
Wie zuvor erläutert, kann in den sogenannten Dekorerweiterungsbetrieb
und dadurch in den Emulationsbet.rieb oder in irgendeinen anderen Betrieb oder in eine gewünschte bezeichnete
Funktion bei dem Datenverarbeitungssystem gemäss der vorliegenden
Erfindung auf das Auftreten eines Maschinencode-Betriebsbefehls eingetreten werden, der als Ausführungs-Dekorerweiterungsbefehl
bezeichnet wird und der einen mnemonischen EXDE-Befehl besitzt. Der ΕΧΟΈ-Befehl ist in Fig. 15
gezeigt. Wie oben generell ausgeführt, besitzt der Befehl eine länge von 32 Bits, wobei die ersten acht Bits den
Operationscode als den EXDE-Befehl angeben. Die nächsten
acht Bits geben das DEXT-Feold an, während die letzten
sechzehn Bits das DEA-PeId festlegen. Das DEXT-PeId in den
Bits 8 bis 15 gibt die Dekorerweiterungsnummer bzw. -zahl
an; sie stellt den Verknüpfungsnäräen der Dekorerweiterung
das dar. Wie ersichtlich werden wird, muss/DEXT-Peld von ITuIl
verschieden sein, ansonsten tritt ein unzulässiger Format-Geldzustand
ein. Das DEXT-PeId mit den acht Bits kann bis zu 255 mögliche Dekorerweiterungen oder angegebenen Punktionen
das oder Operationen bezeichnen. Infolgedessen kann/DEXT-PeId,
das gleich 1 ist, der Emulation eines Prozessors eines ersten Typs entsprechen, während ein DEXT-PeId mit einer anderen
Zahl der Emulation eines noch anderen Datenverarbeitungssystems entsprechen kann. Andere, durch das DEXT-PeId angegebene
Zahlen können eine gewisse andere Punktions-Operation durch das in der vorliegenden Erfindung enthaltene
Datenverarbeitungssystem angeben. So können sie zum Beispiel durch eine Hardware-Wahl, die normalerweise nicht in der
Architektur des Systems enthalten ist, bereitgestellt werden.
Das DEA-PeId ist das Dekorerweiterungsargument; es wirkt als
EingangsgrÖsse für die bezeichnete Dekorerweiterungs-Hardware,
509826/0758
wie für die Emulationseinheit. Das DEA-PeId kann zum Beispiel
zwei Unterfelder enthalten, nämlich, das Operationscodefeld,
welches die Bits 16 bis 23 einschliesst, und das Argument-Unterfeld,
welches die Bits 24 bis 31 einschliesst. Das Operationscode-Unterfeld kann zum Beispiel einen Sprungoder Verschiebebefehl anzeigen, und der Argumentteil kann
zum Beispiel die Art und Weise anzeigen, in der eine Verschiebung bzw. Übertragung auszuführen ist. Dies bedeutet,
dass das Operationscode-Unterfeld zum Beispiel einen tiberkann
tragungsbefehl enthalten/J der anzeigt, das.s bestimmte Daten von einem Register zu einem anderen Register in der Datenverarbeitungsvorrichtung übertragen werden müssen, während der Argumentteil die Art und Weise definieren könnte, in der eine solche Übertragung erfolgt,oder die Vorrichtung oder die Route, durch die derartige Daten zwischen zwei Punkten zu übertragen sind.
tragungsbefehl enthalten/J der anzeigt, das.s bestimmte Daten von einem Register zu einem anderen Register in der Datenverarbeitungsvorrichtung übertragen werden müssen, während der Argumentteil die Art und Weise definieren könnte, in der eine solche Übertragung erfolgt,oder die Vorrichtung oder die Route, durch die derartige Daten zwischen zwei Punkten zu übertragen sind.
Wie zuvor erläutert, wird bei dem Datenverarbeitungssystem geraäss der vorliegenden Erfindung mit der Verwendung eines
Prozess-Steuerblockes für jedes Programm oder jeden Prozess, der in dem Datenverarbeitungssystem enthalten ist, gerechnet.
Der Prozess-Steuerblock ist eine Datenstruktur; er enthält
die Information, die zur Angabe des Zustands eines Prozesses zu irgendeinem vorgegebenen Zeitpunkt erforderlich ist.
Der Prozess-Steuerblock enthält Prozesshauptworte PMW Fr. und PMlV Nr. 3 für die Verwendung in Verbindung mit dem
Dekorerweiterungsbefehl. Das Wort PMW Nr. 0 enthält zwei Unterfelder von Byte-Länge, die hier von Interesse sind.
Das DEXT-Byte oder -Unterfeld kann so gekoppelt sein, dass es dieselbe Information enthält wie das DEXT-Byte, wie es
für den EXDE-Befehl definiert ist. Das DEXI-Unterfeld in
dem Wort PMW Nr. 0 wird aus dem EXDE-Befehl während des Umschaltens des Datenverarbeitungssystems vom Maschinencode-Betrieb
in den Nicht-Maschinencodebetrieb für diesen Pail
509826/0 758
geschrieben, in welchem mehr als ein Befehl für die angegebene
Punktion, wie eine Emulation, auszuführen ist. Das EXT-Byte
des Wortes PMW Fr, 0 wird geschrieben und in dem Prozess-Steuerblock,
festgehalten, um sicherzustellen, dass im Falle des Auftretens einer Unterbrechung zum Beispiel der Emulationsprozess später an der Stelle fortgesetzt werden kann, an der
er unterbrochen worden ist. Wie ersichtlich, wird das DEXT-Byte nicht in das Wort PM Nr. 0 auf einen EXDE^geschrieben,
der lediglich einen Nicht-Maschinencode-Betriebsbefehl auf den Austritt von dem Maschinencodebetrieb hin in Betracht
zieht ο In dem Wort PMWJNr. 1 ist ferner ein Zustands-Byte
enthalten, welches ein EXTD-Bit umfasst, das einer binären 1 entspricht, wenn der Prozessor im Dekorerweiterungsbetrieb
betrieben ist. Dieser Betrieb kann, wie zuvor erläutert, der Emulationsbetrieb der Maschine der Datenverarbeitungsanlage
sein. Das EXTD-Bit in dem Zustands-Byte ist ein
weiteres Prüfmittel dafür, ob in dem Nicht-Maschinencode-Betrieb richtig eingetreten worden ist oder nicht. Das betreffende
Bit kann jedoch für die Zwecke der vorliegenden Erfindung ausgeschlossen werden.
Der P'rozess-Steuerblock enthält ferner das Prozesshauptwort
Nr. 3, PMW Nr. 3, das in Pig. 17 dargestellt ist und das einen DETSZ-Unterbefehl und einen DETA-Unterbefehl enthält.
Der DETSZ-Unterbefehl enthält acht Bit-Stellen, während der DETA-Unterbefehl vierundzwanzig Bit-Stellen umfasst.
Der DETSZ-Unterbefehl gibt die Anzahl möglicher Einträge
in die Dekorerweiterungstabelle an, die im folgenden erläutert werden wird. Ist der DETSZ-Unterbefehl eine binäre Null,
so ist eine Verarbeitung im Dekorerweiierungsbetrieb nicht
ermöglicht. Bevor der' DETS Z-Unt erbe fehl und die Dekorerweiterungstabelle
(DET) im einzelnen erläutert werden, sei darauf hingewiesen, dass der DETA-Unterbefehl die absolute
Adresse in dem Speicher der Dekorerweiterungstabelle enthält und benutzt wird; deshalb liegt eine Bedeutung lediglich dann
509826/0758
vor, wenn der DETSZ-Unterbefehl nicht eine binäre Hull ist.
Eine Dekorerweiterungstabelle ist jedem der in der Datenverarbeitungsanlage
geniäss der vorliegenden Erfindung enthaltenen Prozesse zugeordnet. Demgemäss kann eine Übereinstimung bzw.
ein entsprechendes Verhältnis in der Anzahl der Prozess-Steuerblöcke und der Dekorerweiterungstabellen vorhanden sein.
Durch die vorliegende Erfindung ist jedoch vorweggenommen, dass eine Vielzahl von Prozess-Steuerblöcken sich eine Dekorerweiterungstabelle
teilen und demgeraäss auf eine Dekorerweiterungstabelle zeigen kann, was zu einer geringeren
Anzahl von Tabellen als Blöcken führt. Jede Dekorerweiterungstabelle kann zum Beispiel, wie dies durch das vorliegende
System umfasst ist, bis zu 256 Bit-Stellen enthalten. Jede Bit-Stelle definiert, ob ein Dekorerweiterungsbetrieb zugelassen
wird oder nicht. Im Zuge der weiteren Erläuterung sei angenommen, dass die maximale Anzahl an Stellen in der
Dekorerweiterungstabelle dem DEXT-PeId in dem EXDE-Befehl
entspricht. Hat das DEXT-PeId acht Bits, so können infolgedessen 256 Stellen in der Dekorerweiterungstabelle adressiert
v-'erden. Jede der Bit-Stellen in der Dekorerweiterungsjfcabelle
entspricht einer DEXT-Zahl. Demgemäss gibt jede DEXT-Zahl
bzw. -nummer, die, wie zuvor angegeben, einer angegebenen Punktion oder Operation entspricht, wie zum Beispiel der
Emulation eines weiteren Prozessors, durch eine binäre 1 in der betreffenden bestimmten Bit-Stelle in der Dekorerweiterungstabelle
an, dass eine derartige Emulation des anderen Prozessors zulässig ist. Wenn ein bestimmtes Bit
in der Dekorerweiterungstabelle eine binäre Null ist, dann ist der Prozess nicht zugelassen.
en
In bestimmten System/ ist es vollständig möglich, dass mehr
als 256 Funktionen in dem Dekorerweiterungsbetrieb gestaltet werden können. Demgemäss wäre das DEXT-Byte oder -peld in
509826/0758
der Grosse zu erweitern, um die zusätzlichen Funktionen
anzuzeigen. Darüber hinaus wäre die Dekorerweiterungstabelle
auch in der Anzahl der Bit^-Stellen zu vergrössern. Es ist
ausserdem vollständig möglich, in einem System weniger als die Gesamtanzahl von Funktionen einzubeziehen, die von
dem System behandelt werden können. In diesem Fall könnte
das DEXT-FeId bei acht Bit- Länge verbleiben, ohne dass
im allgemeinen übermässige und unnötige Bit-Stellen in dem Speicher verwendet werden, der der Datenverarbeitungsanordnung
gemäss der vorliegenden Erfindung zugehörig ist. Ein bedeutender Anteil des Speicherraumes kann jedoch eingespart
werden, wenn die Dekorervaterungstabellen in der Grosse
reduziert sind. . Wenn zum Beispiel lediglich fünf weitere Datenverarbeitungsanlagen durch die Datenverarbeitungsanordnung
gemäss der vorliegenden Erfindung zu emulieren sitt4 könnte
die Dekorerweiterungstabelle eine Länge von zum Beispiel acht Bits besitzen. In diesem Fall wäre es dann in den meisten
Fällen erforderlich., Felder in "Acht-Bit-Gruppen einzubeziehen.
Demgemäss muss die Art und Weise, in der die Umschaltung
zwischen dem Maschinencodebetrieb und dem Nicht-Maschinencodebetrieb erfolgt, eine Überprüfung einschliessen, um nämlich
sicherzustellen, dass die durch das DEXT-FeId angegebene Funktionsanzahl nicht grosser ist als die Anzahl von Bits
in der dem aktiven Prozess zugehörigen Dekorerweiterungstabelle.
Somit enthält der gerade erläuterte Prozess eine Umschalt- und Prüfvorrichtung für die Einbeziehung in das Datenverarbeitungssystem
der vorliegenden Erfindung, wenn das System von einem Maschinencodebetrieb bzw. Maschinenbetrieb in
einen Nicht-Maschinenbetrieb umgeschaltet wird, wie dies zuvor angedeutet worden ist und wie dies im Zusammenhang
mit dem Flussdiagramm gemäss Fig. 14 allgemein erläutert worden ist. Ermittelt das System demgemäss den EXDE-Befehl
50 9826/0758
2A59675
so wird, bezugnehmend auf Fig. 16, die Programmbetriebs-Umschaltvorrichtung
der vorliegenden Erfindung ausgelöst, wie dies durch den Startblock 1500 in Fig. 16 dargestellt
ist. Nachdem der EXDE-Befehl ermittelt ist, wird dessen
DEXT-Byte mit einer binaren Null verglichen, um sicherzustellen,
dass tatsächlich das Format eines derartigen Feldes richtig ist. Wenn das DEXT-Byte mit einer binären Null übereinstimmt,
wird ein unzulässiges Formatfeld-Fehlerkennzeichen aktiviert. Dadurch wird signalisiert, dass die Datenverarbeitungsanordnung
der vorliegenden Erfindung auf den nächsten aktiven Prozess zurückkehren kann. Ferner wird ein derartiges
unzulässiges Formatfeld dem Operator angezeigt. Dieser Vergleich wird durch den Block 1502 angezeigt, und das unzulässige
Formatfeld-Fehlerkennzeichen wird durch den Block 1503 in Fig. 16 angezeigt. Liegt kein Vergleichsergebnis vom
Block 1502 her vor, so wird in die durch den Block 1504 angegebene Leseoperation eingetreten. Durch die Operation
des Blockes 1504 wird das Wort PMW Nr. 3 des Prozess-Steuerblockes (PCB) ausgelesen, so dass in den Puffern nunmehr
kurzzeitig das DETSZ-FeId und das DETA-FeId des Wortes PMW Nr.
enthalten sind. Wie zuvor ausgeführt, muss das DEXT-Byte, das von dem Befehl aufgenommen worden ist, wie dies durch
Fig. 15 angegeben ist, mit der Anzahl möglicher Einträge (DETSZ) in der diesem bestimmten Prozess-Steuerblock zugeordneten
bzw. zugehörigen Dekorerweiterungstabelle verglichen werden. Wenn das DEXT-Feld-Byte grosser als das DETSZ-FeId
oder gleich diesem Feld ist, so wird, wie dies durch den Block 1506 angegeben ist, demgemäss ein unzulässiges Dekorerweiterungsnummernkennzeichen
in dem Block 1508 angegeben. Auf diese Weise kann- ein Operator informiert werden. Wenn
infolgedessen gemäss dem Block 1506 die Adresse oder Nummer
in dem DEXT-Byte eine Grosse besitzt, die grosser ist als
die Anzahl der Bits in der Dekorerweiterungstabelle, dann wird eine unzulässige Dekorerweiterungszahl angezeigt.
Eine derartige Fehleranzeige wird ebenfalls aktiviert, wenn
509826/0758
das DEXT-Byte gleich dem DETSZ-FeId ist. Dies ergibt sich
aufgrund der Numerierung des bestimmten Bytes und der Bits in der Dekorerweiterungstabelle. Wenn zum Beispiel die
DEXT-Nummer 8 ist und wenn lediglich acht Bit-Stellen in der Dekorerweiterungstabelle vorhanden sind, dann abgibt
sich mit Rücksicht darauf, dass, worauf noch eingegangen wird, der erste Eintrag in die Dekorerweiterungstabelle den Maschinenbetrieb
anzeigt, die übrigen sieben Bit-Stellen in der Dekorerweiterungstabelle nicht ausreichen, um die acht möglichen
Dekorerweiterungsbetriebsarten zu bedienen.
Wenn das DEXT-Byte kleiner ist als die DETSZ-Nummer, dann
wird in den Lesebetrieb des Blockes 1509 eingetreten, und das DEXT-te Bit der Dekorerweiterungstabelle wird gelesen.
Wenn daher die Nummer für das DEXT-FeId 5 beträgt, wird das fünfte Bit (sechste Stelle, wie noch beschrieben werden
wird,) der Dekorerweiterungstabelle gelesen. Danach wird das DEXT-te Bit der Dekorerweiterungstabelle mit der binären
Null verglichen, wie dies im Block 1510 angegeben ist. Ist das betreffende Bit eine binäre Null, so gelangt man
zum Block 1508, durch den als Fehleranzeige eine unzulässige Dekorerweiterungsnummer angezeigt wird. Falls ein derartiger
Vergleich nicht das Vorliegen eines Gleichheitszustandes anzeigt, gelangt man zum Block 1512, und 'die DEXT-Zahl bzw.
-Hummer wird überprüft um sicherzustellen, dass - da sie von dem EXDE-Befehl her empfangen worden ist - die tatsächliche
Dezimalzahl des DEXT-Feldes eine Dekorerweiterung
kennzeichnet, deren Hardware und deren Firmenware in dem Daten-Prozessor des Systems sind. Liefert der Vergleich
keinen Gleichheitszustand, so gelangt man zum Block 1509. Ansonsten wird die Emulationseinheit aktiviert, wie dies
im Block 1514 angegeben ist. Wenn die Emulationseinheit aktiviert ist, wird eine derartige Einheit für einen oder
mehere Befehle verarbeitet, und zwar in Abhängigkeit entweder
509828/0758
vom Maschinenbetriebs-EXDE-Befehl oder von der Emulationseinheit selbst, wie dies nachstehend noch erläutert werden
wird. Diese Verarbeitung der Emulationseinheit erfolgt, nachdem der Fluss gemäss Fig. 16 angehalten ist, wie dies im
Block 1516 gezeigt ist.
Demgemäss ergibt sich, dass das Flussdiagramm gemäss Fig. 16, welches den Programmschaltbetrieb der Vorrichtung gemäss
der vorliegenden Erfindung veranschaulicht, die Überprüfung gemäss dem Block 1502 umfasst, um festzustellen, ob tatsächlich
der EXDE-Befehl in einer völlig falschen Weise benutzt ist. Ferner wird eine Überprüfung durch den Block
1506 vorgenommen, um sicherzustellen, dass tatsächlich die Anzahl der Einträge in der Dekorerweiterungstabelle, die
Anzahl an Bits, die möglicherweise auf eine geringere Anzahl vermindert worden ist als auf die Zahl, die durch das DEXT-Byte
adressiert werden kann, tatsächlich grosser ist als die durch das DEXT-Byte angegebene Zahl. Auf diese Weise kann
die Grosse der Dekorerweiterungstabelle auf einen minimalen Wert gebracht werden. Ferner wird eine Überprüfung vorgenommen
um sicherzustellen, dass tatsächlich durch die minimale Grosse der Dekorerweiterungstabelle nicht ein/Fehlerzustand
auf der Grundlage der DEXT-Zahl zur Folge hat, die grosser
ist als die Anzahl der Einträge in die Dekorerweiterungstabelle. Ferner kann aus dem Block 1508 ersehen werden, dass die
Prüfung vorgenommen wird um festzustellen, ob die Dekorerweiterungstabelle durch das Betriebssystem geladen werden
kann oder ob dem Operator in Verbindung mit der Datenyerarbeitungsanordnung der vorliegenden Erfindung der Eintritt
in einen bestimmten Dekorerweiterungsbetrieb ermöglicht ist. Noch eine weitere Prüfung wird zum Beispiel durch den Block
1512 durchgeführt, gemäss dem die DEXT-Zahl überprüft wird
um sicherzustellen, dass der durch die DEXT-Zahl gekennzeichnete bestimmte Dekorerweiterungsbetrieb in der Firmenware und
509826/0758
Hardware des Systems existiert. Darüber hinaus kann, wie im
Zusammenhang mit Fig. 17 noch ersichtlich werden wird, der Dekorerweiterungsbetrieb für einen Einzelbefehl oder für eine
Vielzahl von Befehlen erlangt werden, bevor eine Verarbeitung im Maschinenbetrieb wieder aufgenommen wird.
In Fig. 17 ist in einem Blockdiagramm die Hardware und die Firmenware dargestellt, die erforderlich ist, um das Programmbetriebs-Umschaltverfahren
der vorliegenden Erfindung auszuführen. In Fig. 17 ist ein Prozess-Steuerblock 400 gezeigt,
der dem aktiven Programm in der Datenverarbeitungsanlage der vorliegenden Erfindung zugeordnet ist. Der Prozess-Steuerblock
400 enthält die Prozesshauptworte PMW Nr. 1 bzw. PMW Nr. 3. Das Wort PMW Nr. 0 enthält das DEXT-FeId,
während das Wort PMW Nr. 3 das DETSZ-FeId und das DETA-FeId
enthält. Auf die Aufnahme eines EXDE-Befehls, wie dies durch
den EXDE-Befehlsdekoder 1518 angezeigt wird, werden die beiden Felder DEXT und DEA kurzzeitig in dem Pufferspeicher 1520
gespeichert. Das DEXT-FeId in dem Puffer 1520 wird augenblicklich mit den Null-Bits 1522 mittels des Vergleichers
1524 verglichen. Liegt eine Übereinstimmung vor, wie dies durch den Block 1502 in Fig. 16 angedeutet ist, so wird
eine unzulässige Formatfeld-Fehleranzeige 1526 gesetzt. Liegt keine Übereinstimmung vor, so erhält die Leitung 1528 ein
Signal, auf das hin das UND-Glied 1530 und das UND-Glied 1532 übertragungsfähig wird. Die Steuerung der beiden
UND-Glieder in den übertragungsiäiigen Zustand ermöglicht,
den Inhalt des DETSZ-Feldes in dem Puffer 1534 unterzubringen
und den Inhalt des DETA-Feldes in den Puffer 1536. Mittels des Vergleichers 1538 werden das von dem Puffer 20
her aufgenommene DEXT-FeId und das von dem Puffer 1534 her aufgenommene DETSZ-FeId verglichen. Der Vergleicher 1538
enthält eine bekannte Logik bzw. Verknüpfungsschaltung, die dazu benutzt wird, Gleichheit der beiden Zahlen festzustellen,
sowie zu bestimmen, welche Zahl grosser ist. Wenn, wie dies durch den Block 1506 in Fig'. 16 angedeutet ist, die DEXT-Zahl
509826/07 5 8
grosser ist als die DETSZ-Zahl oder gleich dieser Zahl, dann
wird eine unzulässige Dekorerweiterungszahl 1540 durch das ODER-Glied 1542 aktiviert. Wenn die DEXT-Zahl kleiner ist
als die DETSZ-Zahl, dann werden die beiden UND-Glieder 1544 und 1546 freigegeben bzw. in den übertragungsfähigen Zustand
gebracht. Die Überführung des UND-Gliedes 1544 in den übertragungsfähigen Zustand ermöglicht die Auswahl der dem Prozess-Steuerblock
400 zugeordneten Dekorerweiterungstabelle 1548. Dies bedeutet, dass die absolute Adresse der Dekorerweiterungstabelle,
wie sie in den DETA-FeId angegeben ist, weitergeleitet werden kann und die richtige DET-Zahl auszuwählen gestattet.
Die Freigabe des UND-Gliedes 1546 ermöglicht, dass mit der durch das DEXT-FeId in dem Puffer 1520 angezeigten Zahl die
Adresse des in Frage kommenden Bits in der Dekorerweiterungstabelle 1548 adressiert wird. Im vorliegenden Fall ist dies
so dargestellt, dass die Auswahl des dritten Bits von links erfolgt. Es sei darauf hingewiesen, dass die Dekorerweiterungstabelle
1548 eine Vielzahl von Bit-Stellen enthält, und zwar beginnend von der Adresse Null (das ist die den Maschinenbetrieb
oder Nicht-Maschinenbetrieb anzeigende Adresse) und endend
bei der Adresse 7 für eine 8-Bit-Dekorerweiterungstabelle. Wenn demgemäss DEXT gleich 2 ist, dann wird die dritte
Stelle von DET, wie dargestellt, adressiert.
Das aus der Dekorerweiterungstabelle 1548 gelesene Bit wird zu dem Vergleicher 1550 hin übertragen, in welchem ein derartiges
Bit mit dem O-Bit 1552 verglichen wird, und zwar entsprechend dem Block 1510 gemäss Fig. 16. Liegt ein positiver
Vergleich vor, so wird ein unzulässiges Dekorerweiterungs-Zahl-Kennzeichen
1540 gesetzt. Liegt keine Übereinstimmung vor, so wird durch das Ausgangssignal des Vergleichers 1550
das UND-Glied 1554 freigegeben bzw. übertragungsfähig gemacht. Die Freigabe des UND-Gliedes 1554 ermöglicht, dass die DEXT-Zahl
nacheinander von den Vergleichern 1556-1 bis 1556-n verglichen wird, wie dies im folgenden erläutert wird.
509826/0758
Die DEXT-Zahl in dem Puffer 1520 wird zunächst mit der DEXT-Zahl
1 entsprechend dem Block 1557 verglichen, um nämlich zu bestimmen, ob die durch diese Zahl gekennzeichnete zugehörige
Hardware und Firmenware in dem System vorhanden ist. Die DEXT-Zahlen in den Blöcken 1557, 1559 und 1562 sind
lediglich dann gesetzt oder vorhanden, wenn die zugehörige Hardware/Firmenware in dem System enthalten ist. Wenn keine
Übereinstimmung vorliegt,wird das UND-Glied 1558 freigegeben, um zu ermöglichen, dass die DEXT-Zahl mit der DEXT-Zahl 2
entsprechend dem Block 1559 verglichen wird. Derartige aufeinanderfolgende Vergleiche werden vorgenommen, bis der
letzte Vergleicher 1556-N: ein Eingangssignal über das UND-Glied 1560 erhält, um nämlich die DEXT-Zahl mit der DETS-Z-Zahl
N entsprechend dem Block 1562 zu vergleichen. Liegt
keine Übereinstimmung vor, so bewirkt das von dem Vergleicher 1556-N auf der Leitung 1564 erzeugte Signal ebenfalls
eine Aktivierung des unzulässigen Dekorerweiterungs-Fehlerkennzeichens über das ODER-Glied 1542. Wenn einer der
Vergleicher 1556 ein Vergleichssignal liefert, dann werden über das ODER-Glied 1556 die UND-Glieder 1568, 1570 und 1572
freigegeben bzw. in den übertragungsfähigen Zustand gebracht. Das UND-Glied 1570 wird freigegebenem den Operationscode
des DEA-Feldes zu der Emulationseinheit zu übertragen, und
wird
das UND-Glied 1572/ freigegeben, um das Argument des DEA-Feldes zu der Emulationseinheit zu übertragen, und zwar
jeweils von dem Puffer 1520 her.
Das andere UND-Glied 1568 leitet auf seine Freigabe hin die DEXT-Zahl zu dem Prozess-Steuerblock 400 hin, um dort
in das Wort PMW Nr. 0 eingeschrieben zu werden. Das UND-Glied
1568 muss ebenfalls über eine zweite Leitung 1574 von dem Detektor 1576 her freigegeben werden. Auf der
Leitung 1574 wird ein Signal erzeugt, wenn der Operationscode des in dem Puffer 1520 empfangenen DEA-Feldes anzeigt,
50 9826/0758
dass vom Maschinenbetrieb in den Nicht-Maschinenbetrieb für mehr als einen Befehl überzugehen ist. In diesem Fall
wird die DEXT-Zahl in dem Prozess-Steuerblock 400 gespeichert,
sojclass im Falle des Auftretens einer Unterbrechung während
der Verarbeitung im Nicht-Maschinenbetrieb bezüglich einer bestimmten bezeichneten Funktion oder Operation ein derartiger
Zustand, wie er durch die DEXT-Zahl angegeben ist, in dem Prozess-Steuerblock 400 für den bestimmten Prozess
erhalten wird. Wenn das DEA-FeId anzeigt, dass lediglich ein Befehl im Nicht-Maschinenbetrieb zu verarbeiten ist, dann
existiert auch keine Forderung dahingehend, die DEXT-Zahl in dem Prozess-Steuerblock 400 zu bewahren. Bei in dem
Prozess-Steuerblock 400 sichergestellter DEXT-Zahl und bei von der Emulationseinheit nunmehr empfangenem Operationscode und Argument von dem Puffer 1520 wirddemgemäss die
Emulationseinheit für die Verarbeitung aktiviert. Sollte das Argument für die Emulatiionseinheit nicht annehmbar sein
oder ausserhalb der Fähigkeiten einer derartigen Emulationseinheit liegen, so wird ferner, ohne dass dies gezeigt ist,
ein Signal von einer Emulationseinheit erhalten, die ein unzulässiges Argument durch Fehlerkennzeichnung anzeigt
und entsprechend dem Operator durch ein unzulässiges Argument-Fehlerkennzeichen angibt. Nach richtiger Aktivierung kann
die Emulationseinheit dann eine Verarbeitung in einem solchen Emulationsbetrieb vornehmen. Danach kann die Emulationseinheit
auf die Steuerung in den Maschinenbetrieb zurückkehren, sofern nicht noch schneller eine Unterbrechung
durch einen Prozess höherer Priorität in dem System erfolgt.
Der in der vorliegenden Zentraleinheit, das heisst der Zentraleinheit 104, enthaltene Emulator besteht aus Firmenware*^
Software- und Hardware-Komponenten. Der Emulator läuft genauso wie zwei Prozesse, wobei der eine Prozess als Schnittstelle
zwischen dem Emulator und dem Operator dient und wobei der
509826/0758
zweite Prozess hauptsächlich verantwortlich ist für die Ausführung
des emulierten zentralen Prozessors (ECP). Entsprechend schaltet da? zweite Prozess zwischen dem ECP-Betrieb
(Nicht-Maschinenbetrieb) und dem Maschinenbetrieb um. Der Emulator ist verknüpfungsmässig in drei Hauptkomponenten
gegliedert J die erste Komponente ist die Pirmenware-Kompatibilitäts-Eigenschaft
(CP), die die meisten ECP-Befehle emuliert und die als Schnittstelle zu den im Maschinenbetrieb benutzten
Pirmenware-Ereigniserkennungs-Mechanismen dient. Eine weitere
Komponente ist die Emulator-Software-Packung (ESP), die sämtliche übrigen Zentraleinheits-Punktionen, sämtliche
verallgemeinerten Eingabe/Ausgabe-Kanalfunktionen und sämtliche speziellen Emulator-Stützfunktionen ausführt.
Die letzte Komponente ist die periphere Umsetz-Packung
(PCP), die nicht gezeigt ist und die sämtliche spezifischen Punktionen des peripheren Untersystems ausführt.
In Pig. 18 sind zwei dieser drei Hauptfunktionskomponenten
gezeigt, die Schnittstellen zwischen diesen Komponenten und die diesen zugeordneten Synchronisations-Semaphore.
Mit CP-1600 ist speziell der Pirmenware-Ieil des Emulators
bezeichnet, der für das Emulaiäons-Hauptprogramm verantwortlich ist und der grundsätzlich eine MASTER-Slave-BeZiehung zu dem
ECP-Prozess (ESP/ECP) besitzt. Dies bedeutet, dass durch
CP für diejenigen Bedienungen, die nicht durch diesen Pirmenware-Teil
ausgeführt-werden, ESP/ECP aufgerufen wird . .
Die grundsätzlichen CP-Yerantwortlichkeiten sind folgende. Zum ersten werden, wie dies oben allgemein erläutert worden
ist, durch CP die meisten ECP-Befehle emulierte Eine zweite
Verantwortlichkeit von CP besteht darin, dass durch CP Maschinenbetriebsfälle
ermittelt werden, die EOP-Unterbrechungen darstellen. Diese Punktion wird durch eineB der Synchronisations-Semaphore
ausgeführt. Eine weitere Verantwortlichkeit
509826/0 758
von GI besteht darin, dass durch CF ECP-Unterbrechungen
verarbeitet werden und dass eine Übertragung eines Wortes ausgeführt wird, was den Zustand des zugehörigen Rechnerprogramms
anzeigt. Das vorliegende Wort zeigt dabei den Zustand des emulierten Prozessors an. Dieses Wort wird nachstehend
definiert und im folgenden als Programmzustandwort PSW bezeichnet werden. Obwohl es hier nicht von Interesse
ist, sei darauf hingewiesen, dass durch CP ferner die gesamte erforderliche Speicher-Schutzkennzeichen-Prüfung in
Verbindung mit Maschinencode-Einrichtungen ausgeführt wird.
Die ESP-Packung 1602 umfasst zwei Prozesse, ESP/CP1606
und ESP/ECP1604. Dabei ist CP der Nachrichtenübertragungsprozess, und ECP ist der Prozess, der beim Emulieren des
Zieles benutzt wird, des (emulierten) zentralen Prozessors. Das Umschalten zwischen den Prozessen wird als Ergebnis von
Ereignissen bewirkt, die dem Operator-Konsol 1608 und
Eingabe/Ausgabe-Untersystemen 1613 zugehörig sind. Die !Punktionen von ESP 1602 umfassen eine Emulator-Steuerfunktion,
die zur Zusammenstellung von Daten verwendet wird, welche zu CP hin zu übertragen sind. Ferner wird
die betreffende Steuerfunktion dazu herangezogen, eine anfängliche Steuerungs-Übertragung zu bewirken. Eine weitere
Punktion von ESP1602 'sind Hilfsdienste, die im allgemeinen
solche Punktionen sind, die durch Cl nicht ausgeführt werden. Dies umfasst einen Bereich von Punktionen, die ESP/ECP
über einen von CF ausgesendeten Eintragcode identifizieren.
Diese Dienste umfassen eine Eingabe/Ausgabe-Befehls-Simulation, die Translation eines Maschinencodeereignisses
in eine ECP-Unterbrechung, die Emulation des ECP-Wartezustands, die Speicherschutz-Abstützungs-Simulation, die
ECP-"Fehler"-Behandlung, die Simulation der ESP/ECP-Anfangsprogrammladung
(IPL) und die Simulation der ECP-Zeitsteuereinrichtung. Von den obigen Punktionen ist die Emulation
509826/0758
des ECP-Wartezustands liier von hauptsächlichem Interesse.
Der Speicher 1605 des ECP-Zielsystems ist durch ein grosses
Zentraleinheits-Speichersegment dargestellt, für das ein Deskriptor zu sämtlichen Zeitpunkten erhalten wird. Da die
Grundeinheit des Speichers in "beiden Systemen, das heisst
in der Zentraleinheit und in dem emulierten zentralen Prozessor ECP, ein 8-Bit-Byte ist, stellt jedes Byte in dem Zentraleinheits-Speicher ein Byte in dem ECP-Speicher dar. Die Zentraleinheits-Adresse
eines Bytes des ECP-Speichers wird dadurch berechnet, dass die ECP-Adresse und der Segmentdeskriptor des
ECP-Speichers verwendet werden. Das gerade laufende Programmzustandswort
(CPSW) des emulierten zentralen Prozessors ist durch ein Doppelwort in dem Emulatorspeicher dargestellt.
Es wird auf Firmenware-Register verteilt, wenn Ci" aktiviert
ist ο Wenn der ESP-/ECP-Prozess die Steuerung erhält, wird das CPSW-Wort in dem Hauptspeicher auf seinen laufenden Wert
durch die Firmenware gesetzt. Die Einstellungen in dem ECP-Register
werden in den äquivalenten Zentraleinheits-Registern "beibehalten, wenn CI1 aktiv ist. Diese und weitere Merkmale
des emulierten zentralen Prozessors (ECP) sind an anderer Stelle weiter erläutert. In diesem Zusammenhang sei beispielsweise
auf das Buch "Computer Organization and the System /370", von Harry Katzan, Jr., Yan Nostrand Reinhold Company,
1971 und auf einen Artikel mit dem Titel "The Structure of System /360, Part I-Outline of the Logical Structure",
von G.A. Blaauw und P.P.Brooks, Jr. IBM Systems Journal, YoI.3» Kr. 2, 1964, hingewiesen.
Die Nachrichtenverbindung zwischen den Firmenware- und Software-Komponenten
des Emulators wird über eine Reihe von Tabellen 1607 in dem Emulatorspeicher bewirkt, der durch die
Software initialisiert und durch Software und Pirmenware unterhalten wird. Diese Tabellen werden im folgenden beschrieben.
5 0 9826/0758
Zusätzlich, zu den System-Eingabe/Ausgabe-Tabellen, die hier
nicht von Interesse sind, enthalten die labeilen 1607 den
Emulator-Nachrichtenverbindungsbereich .(EOR), der aus einer Reihe von Worten besteht, wie sie in Pig. 19 gezeigt sind.
Ein Basisregister von ESP/EGP enthält die segmentierte Adresse dieses Bereichs„ Zusätzlich, zu der Bereitstellung angegebener
Speicherstellen für die Information, die zwischen CP und ESP/ECP geleitet wird, liefert dieses Feld den Platz für
GP, urn den Inhalt sämtlicher ECP-Register zu speichern, wenn
ein Abruf von ESP erfolgt. Die Ausnutzung bestimmter Bereiche in dem PeId ist nachstehend angegeben.
Wort 1- Die segmentierte Adresse des gesamten ECP-Speichers.
Wort 4- Das Emulator-Wahlsteuerwort (EOGW), das die Erzeugung
von Initialisierungsangaben anzeigt. Zustätzlich zu weiteren Punktionen zeigt das Wort an, ob die ECP-Zeitsteuerangabe
vorhanden ist.
Wort 5,6 - Das vorliegende ECP'PSW-Wort (wie nachstehend beschrieben
wird3. In diesem Zusammenhang sei auch auf das oben erwähnte Buch und den oben erwähnten Artikel
zum Zwecke der weiteren Erläuterung hingewiesen.
Wort 7 - Unterbrechungs-Kennzeichenwort (IW) - eine Reihe
von Kennzeichen, die unerledigte ECP-Unterbrechungen
und ihre Quelle anzeigen. Eine detaillierte Beschreibung ist im Zusammenhang rait Pig. 20 gegeben.
Wort 8 - Die segmentierte Adresse des Seraaphor-Deskriptors
für SEM-M.
Wort 9 - Die segmentierte Adresse des Semaphor-Deskriptors
für SEM-G.
Worte 14 - Der Sicherstellungsbereich, in welchem die Inhalte
bis 45 des BaSj_sregiS-(;erSj der Allzweckregister und der
technisch-wissenschaftlichen Register durch CP gespeichert
werden, wenn dadurch ein Abruf von ESP/ECP erfolgt.
Wort 47 - Wartezustands-Eingabeintervall.
Wort 47 - Wartezustands-Eingabeintervall.
509826/0758
Wort 69 - Wartezustands-Gesaratzeit.
Wort 70 - Wartezustands-Überwachungszeit.
Wort 100 - ECP-Zeitsteuerungs-Verringerungswert.
Wort 101 - ECP-Zeitsteuerungs-Yerringerungsperiode.
Worte 102,
103 " - Intervall-Zeitsteuerungs/Prozess-Zeitsteuerungs-Periode.
Das Wort 7 gemass Pig. 19 ist speziell in Pig. 20 als
Kennzeichen enthaltendes Wort gezeigt. Mit SIP sind Systemunterbrechungs-Kennzeichen
bezeichnet; sie werden durch ESP/ ECP so festgesetzt, dass eine noch anhängige Unterbrechung
für die Eingabe/Ausgabe-Kanäle und eine externe Unterbrechung angezeigt werden. Mit TIP ist das Zeitsteuerungs-Unterbrechungs-Kennzeichen
bezeichnet, das durch ESP/ECP gesetzt wird, wenn die ECP-Zeitsteuerung negativ wird. Mit 1KB1 ist das Unterbrechungskennzeichen
bezeichnet, das durch ESP/EOP gesetzt wird, wenn ein Unterbrechungsbefehl über das Operator-Konsol
ausgesendet wird. Mit OSMP ist das Einschrittbe.trieb-Kennzeichen
bezeichnet; es wird durch ESP/EOP gesetzt, wenn ein Abruf von CP erfolgt, um im Einschrittbetrieb einen
Vorgang auszuführen. Mit SCH ist die Bedienungsklassennummer
bezeichnet, die benutzt wird, wenn ein Abruf für ESP/ECP erfolgt.
Der Übergang der Steuerung zwischen den Haupt-Aufbaukomponenten
des Emulators kann in Vierten der Ebene der umfassten Steuerung betrachtet werden. Bei diesen Steuerungsebenen
handelt es sich um die Prozess-Ebene, die Prozedurebene oder die Befehlsebene. Die ESP/ECP- und ESP/CP-Abrufe umfassen
die Prozessebenen-Steuerung. Gemäss Pig. 18 werden die Übergänge der Steuerung zwischen den Prozessen durch einen
Prozess bewirkt, der eine V-Operation oder eine P-Operation
auf eines von zwei Semaphoren hin ausführt, das heisst auf
509826/0758
ein Haupt-Semaphor SEM-M 1617 "bzw* ein Nachriehtenübertragungs-Semaphor
SEM-G 1619. Der Prozess (ESP/CP) mit der höheren Priorität "bewirkt eine Zustandsänderung, und
zwar entweder vom Wartezustand in den BereitSchaftszustand
oder vom Bereitschaftszustand in den Wartezustand. In jedem Falle wird der wartende Prozess zum "bereiten oder laufenden
Prozess. Sämtliche ESP-Anforderungen an CF liegen innerhalb
desselben Prozesses, da sie von ESP/ECP 1604 erzeugt werden. Ein Prozedurebenen-Abruf tritt dann auf, wenn durch ESP/ECP
ein Übergang der Steuerung auf Ci1 erfolgt, um nämlich die
ECP-Befehlsebenen-Emulation wieder aufzunehmen. Der Abruf
v/ird über den EXDE-Befehl ausgeführt. Dss Operandenfeld des EXDE-Befehls zeigt für CP an, dass dieser Abruf eine Änderung
des DBXT-Bytes in dem Prozess-Steuerblock PCB erfordert.
Dadurch wird der Prozess in den ECP-Betrieb gebracht,.das
heisst in den Emulationsbetrieb oder in den Nicht-Maschinenbetrieb.
Anschliessend führt CF die ECP-Befehlsemulation aus,
bis die Bedienungen von ESP/ECP benötigt werden. Diese Art des Übergangs der Steuerung v/ird jedesmal benutzt, wenn ESP
zu CF zurückkehrt, nachdem eine Bedienung erfolgt ist und wenn CI1 anfangs von ESP/ECP aufgerufen bzw. abgerufen wird.
In jedem Falle lädt CP die ECP-Registerwerte von ECR, bevor
die Befehlsemulation wieder aufgenommen wird. Das Dekorerweiterungsargument (DEA) des EXDE-Befehls zeigt die von
CP auszuführende Punktion an.
Der Übergang der Steuerung von CP auf ESP/ECP erfolgt jeweils
dann, wenn CP die Unterstützung von ESP/ECP benötigt, um eine ECP-Bedienung zu erledigen. Der Übergang wird dadurch
bewirkt, dass CP das DEXT-Byte in dem aktiven Prozess-Steuerblock
auf Null setzt und dass die Adresse des ESP/ECP-Eintragpunktes in den Befehlszähler eingegeben wird. Bevor dies
geschieht, stellt CP den Inhalt der ECP-Register in ECR
sicher, aktualisiert das PSW-Wort und führt die Bedienungs-
509826/0758
klassennummer (SCN), das ist der Eintragcode, der den Typ der benötigten Bedienung angibt, in EGR ein.
Im einzelnen besteht das Kompatibilitätsmerkmal (Cl?)
1600 aus Zusätzen zu der Maschinenbetriebs-Pirmenware, die
folgende Punktionen ausführen. EGP-Befehlsausführung, ECP-Unterbreehungssimulation,
Maschinenbetriebs-Pirmenware (NP) /CP-Pirmenware-SchnittStellenbildung und CP/ESP-Schnittstellenbildung.
Der Emulator führt ECP-Befehle derart aus, dass die Ergebnisse weitgehend identisch sind mit jenen
Ergebnissen, die für ECP angegeben sind. Der ECP-Unterbrechungsme±ianismus
wird durch, C]? 1600 und durch. ESP 1602 simuliert. Ci1 ist verantwortlich, für die ECP-Unterbrechungsabtastung;
PSW-Wechsel treten auf, wenn die Unterbrechung zugelassen ist. ESP/ECP ist verantwortlich für die Übersetzung
von Maschinencode-Eingabe/Ausgabe-Unterbrechungsereignissen
in Eingabe/Ausgabe- oder externe Unterbrechungen,
Durch. CP und ESP wird die Simulation der ECP-Eingäbe/Ausgabe-Unterbrechungen
und der externen Unterbrechungen über das Unterbrechungs-Kennzeichawort (IW) koordiniert. Durch
ESP werden Unterbrechungszustände in dem Unterbrechungs-Kennzeichenwort
IPW gesetzt, und CP tastet dieses Wort ab,und bestimmt dann anhand des CPSW-Wortes, ob die Unterbrechung
erlaubt ist. Ist sie erlaubt, so wird das in Präge kommende Anzeigeglied in IW gelöscht. Ansonsten
bleibt der Zustand unerledigt erhalten. Sämtliche Prograram-Ausnahmen-Unterbrechungen
werden vollständig von CP behandelt. Durch CP 1600 wird anfangs die Steuerung auf
ESP 1602 zum Beispiel übertragen, wenn entweder eine
Simulation eines EGP-Befehls erforderlich ist, ein nicht
emulierbarer Befehl erkannt wird, ein Maschinencodebefehl für den Emulator ermittelt wird oder der ECP-Wartezustand
ermittelt wird. Durch ESP wird die Steuerung auf CP unter
509826/075 8
folgenden Bedingungen übertragen: EGP-Initjaierung durch IPL,
Abschluss der BefehlsSimulati on oder Abschluss der ECP-UnterbrechungsSimulation.
Der Ausführungs-Dekorerweiterungsbefehl (EXDE) wird von ESP/EOP zur Aktivierung von CP benutzt.
Wie zuvor angedeutet, erscheint die Emulator-Softwarepackung (ESP) für das Maschinencodesystera als zwei physikalische
Prozesse, die eine Maschinencode-Prozessgruppe enthalten. Der ESP/CP-Prozess ist derjenige Prozess, der die vollständige
Emulations-Sitzung steuert (oder dem Operator eine Steuerung ermöglicht). Dieser Prozess enthält den ersten Ausführungs-
_. , punki
Eintrag; er ist verantwortlich für die Aktivierung des anderen Prozesses. In ähnlicher Weise wird die Beendigung
der Sitzung durch diesen Prozess gesteuert. ESP/CP ist lediglich dann aktiv, wenn EGP nicht läuft, weil es noch
nicht aktiviert v/orden ist oder weil sich eine Operator-Nachrichtenverbindung in Entwicklung befindet. Der ESP/ECP-Prozess
ist eine logische Erweiterung zu der Kompatibilitätseigenschaft. Maschinencode-Prozeduren und OF bewirken eine
Ausführung unter diesem Programm, wobei die Betriebsart durch den Wert des DEXI-Bytes bestimmt ist. Ist der DEXI-Byte-Wert
gegeben mit "0", so zeigt dies eine Verarbeitung im Maschinencodebetrieb
an; liegt beispielsweise ein DEXT-Byte-Wert von "3" vor, so zeigt dies eine CF-Verarbeitung von ECP-Befehlen
an. Nahezu sämtliche Punktionen von ESP/ECP werden durch CP aktiviert, und zwar entweder für die ECP-Befehlssimulation
oder für die Ermittlung eines Maschinencode-Ereignisses.
Zusätzlich zur Bedienung von CF-Anforderungen ist dieser Prozess verantwortlich für die Auslösung von Übergängen
vom Maschinencodebetrieb auf den ECP-Betrieb und für die Beibehaltung der ESP/CP-Schnittstelle. Physikalische
Prozeduren, die diesen Prozess umfassen, enthalten zum Beispiel die CP-Aktivierung, die ECP-SpeicherSchutzsimulation,
die ECP-Wartezustandssiraulation, die ECP-Eingabe/Ausgabe-
509 8 26/0 758
Ausführungssimulation (einschliesslich PCP) und die ECP-Unterbrechungssimulation.
Die ECP-Wartezustandssimulation
ist von hauptsächlichem Interesse und wird nachstehend im einzelnen erläutert werden.
Einige der Emulator-Tragfunktionen werden nachstehend näher
beschrieben» Eine Punktion ist die CP-Anforderungs-Behandlungstragfunktion,
während der ESP/ECP von CP her eingegeben wird, wenn eine Hilfsbedienung erforderlich ist. Um die Übertragung
der Steuerung zu bewirken, speichert CP ein geeignetes SCF-Wort in ECR, ändert das DEXT-Byte auf lull und
tritt in die ESP/ECP-Maschinencode-Software an einem festliegenden Eintrittspunkt ein. Die/Betriebsklassennummern SCH
können wiejfolgt gruppiert sein: Erforderliche Eingabe/Ausgabe-Ausführung,
erforderlicher Speicherschutzdienst, ermitteltes asynchrones Ereignis und ermittelter Ausnahme-ECP-Zustand.
Die letzten beiden SCN-G-ruppen sind von hauptsächlichem
Interesse und werden nachstehend erläutert.
Bei dem auf ein asynchrones Ereignis hin festgestellten Anforderungszustand
bestimmt CP, dass ein Maschinencodeereignis
zu ESP/ECP hin geleitet worden ist, und zwar durch Überprüfen der SEM-M-Semaphor-Zählerstellung, um festzustellen, ob dort
nachrichten enthalten sind. Wenn die ZählerstelLung grosser ist
als Null, speichert CP die in Präge kommende SCN-Nuramer in
ECR und überträgt die Steuerung auf ESP/ECP. Eine Analysierung
der SCN-Nummer führt, dazu, dass ESP/ECP die Nachricht in
SEM-M erhält und die Steuerung auf die in Präge kommende Routine überträgt, und zwar zum Zwecke der Bedienung der
folgenden Ereignistypen. Der erste Typ ist das Eingabe/Ausgabe-Ereignis.
Dieses Ereignis zeigt an, dass eine Aufsichts- oder Abschlussereignis-Meldung in SEM-M übertragen worden ist.
Die Steuerung wird dann zum Zwecke der Bedienung und Abbildung in eine ECP-TJnterbrechung übertragen. Der zweite Ereignistyp
ist eine Prozess-Unterbrechungsausnahme. Der dritte Erelgnis-
509826/07S8
typ ist eine Zwischen-Nachrichtenverbindung. Diese tritt dann
auf, wenn ESP/CP eine Nachricht in SEM-M übertragen hat, um Gl? eine simulierte ECP-Unterbreöhung anzuzeigen. Dieses Yerfahren
wird dazu benutzt, die folgenden Ereignisse zu koordinieren: ECP-Konsol-Abschluss, ECP-Konsol-Beachtung, ECP-Unterbrech.ungs-Kenn
zeichen und ECP-Einteilungs-Zeitsteuereinrichtung.
Der andere, hier interessierende Typ der Emulator-Iragfunktion
besteht darin, dass eine Auslösung auf die Klasse des ECP-Ausnahmezustands
hin erfolgt. Ein Zustand dieses Typs tritt dann auf, wenn CF einen nicht-emulierbaren ECP-Befehl aufgenommen
hat. Dem Operator wird dies angezeigt; er kann die Wahl treffen, den Befehl zu umgehen, oder die Setzung zu
beenden. In den ECP-Ausnahmen ist der ECP-Wariezustand enthalten,
Dieser Zustand wird angezeigt, wenn CI1 das in dem PSW-Wort gesetzte Wartezustandsbit ermittelt hat. Sodann wird eine
Wartezustandssimulation ausgeführt.
Bevor die ECP-Wartezustandssimulation erläutert wird, sei
zunächst die ECP-Zeitsteuerungs-Simulation erläutert. Eine Intervall-Zeitsteuereinrichtung ist als eine Angabe in ECP .
ist
erhältlich; diese Zeit/als vollständiges Wort an einer festliegenden
Speicherstelle in dem Hauptspeicher dargestellt. Wenn das Vorhandensein dieser Zeitsteuereinrichtung in dem
Zielsystem durch das Emulator-Angabesteuerwort angezeigt wird,
erfolgt eine direkte Emulation in dem ECP-Speieher. Die
ECP-Zeitsteuereinrichtung Simulation erfordert, dass ein derartiger festliegender Speicherplatz, das heisst die
ECP-Zeitsteuereinrichtung, um einen gewissen Wert bei einer gegebenen Frequenz verringert wird, währenddessen ECP läuft.
Die Prozess-Zeitsteuereinrichtung bzw. der Prozess-Zeitgeber, die bzw. der ESP/ECP zugeordnet ist, simuliert die in
ECP verstrichene Zeit. Wenn der Prozesszeitgeber abläuft, wird ein Kennzeichen gesetzt. Dadurch, wird angegeben, dass
509826/0758
die Verarbeitung durch, eine Routine in ESP/ECP begonnen
werden kann. Diese Routine trägt eine Nachricht in SEM-C ein, die bewirkt, dass ESP/OP die Steuerung übernimmt.
Der ECP-Zeitgeber wird in dem ECP-Speicher um einen bestimmten Wert verkleinert, und das Ergebnis wird überprüft um festzustellen,
ob sich das Vorzeichen vom positiven Wert zum negativen Wert geändert hat. Dieser Vorzeichenwechsel bewirkt,
dass eine in SEM-M einzutragende Nachricht eine ECP-Zeitgeberunterbreehung simuliert. In jedem Falle bewirken die
Mittel, durch die der Prozesszeitgeber gesetzt v/orden ist, dass ESP/CP eine Schlange in SEM-C bildet, v/odurch das
betreffende Glied selbst in den Maschinencode-Wartezustand
gelangt. ESP/ECP erhält dann die Steuerung wieder zurück und tritt aus einer derartigen Routine aus. Um die in ECP
verstrichene Zeit zu berücksichtigen, währenddessen sich ECP im Wartezustand befunden hat, wird der Intervall-Zeitgeber
verwendet, wie dies nachstehend noch beschrieben wird.
Da die Frequenz der Ausnahmen, die durch das Prozess-Zeitgeberauslaufen
hervorgerufen v/erden, die Emulatorleistung beeinflusst, besitzt der Benutzer die Fähigkeit, das Zeitintervall
zu bestimmen, das in dem Prozess-Zeitgeber benutzt wird, und zwar durch Angabe eines Wertes. Das Prozess-Zeitgeberintervall
muss angegeben werden, und die benutzten stufenweise Verkleinerung ist direkt proportional dem angegebenen Intervall.
Da kein äquivalenter Maschinenzustand der Zentraleinheit
dem Wartezustand von ECP entspricht, ist es bei der ECP-Wartezustandssimulation
schwierig für den Operator zu bestimmen, wann ein derartiger Emulator eine Wartezustandssituation
ermittelt hat. Wenn ESP/ECP einfach in eine Ausführungsschleife unterzubringen wäre, um eine Wartezustandssituation
zu simulieren, könnte darüber hinaus ein weiterer
509826/07 5 8
Bereitschaftsprozess nicht aktiv werden. Aus diesen Gründen überwacht der Emulator den ECP-Wartezustand, um die Wirtssystemleistung,
und das Bewusstwerden des Operators bezüglich der ECP-Aktivität zu optimieren.
Wenn ein Wartezustand als Ergebnis eines PSW-Übergangs ermittelt
wird, wird eine Prüfung bezüglich anhängiger zulässiger Unterbrechungen vorgenommen. Sind keine Unterbrechungen zulässig,
wie dies durch die PSW-Systemausblendung angezeigt wird,
so wird ein sogenannter "harter Wartezustand" eingeführt. Dadurch wird eine Wartezustandssimulation verhindert. Sind
keine Unterbrechungen anhängig, so wird die Wartezustandssimulation
ausgelöst. Ansonsten wird die Steuerung auf CI1
zurückgeführt. Durch ESP/ECP v/ird der Wartezustand überwacht, indem der Intervall-Zeitgeber verwendet wird und indem der
Operator periodisch darüber informiert wird (Wort 47 von ECR),
wie lange (Wort '69 von ECR) der Wartezustand tatsächlich gewesen
ist. Der Operator hat dann die Wahl, das. ECP-Zielprogramm
zu unterbrechen, wenn er einen Zustand vermutet, der ECP daran hindert, den Wartezustand zu verlassen.
Die Warte zustand ssimulation funktioniert damit wie folgt*·
ESP/ECP gibt ein Signal ab, welches den Intervall-Zeitgeber veranlasst, sich, auf einen bestimmten Wert einzustellen und
eine Nachricht in SEM-M einzutragen, v/enn der Intervall-Zeitgeber ausläuft. Sodann bewirkt ESP/ECP eine Schlangenbildung
in SEM-M und nimmt die Ausführung wieder auf, wenn eine Nachricht in SEM-M eingetragen ist. Da jegliche ECP-Unterbrechung,
die einen Austritt aus dem Wartezustand bewirkt, über SEM-M signalisiert wird, hält· diese Massnahme
ESP/ECP "im Wartezustand", während die Ausführung eines
anderen Prozesses ermöglicht ist. Ausserdem wird zu ESP/ECP automatisch gemeldet, wenn ein Austritt aus dem Wartezustand
möglich ist.
509826/075S
Jegliche Massnahme von drei Typen von Massnahmen bewirkt,
dass eine Nachricht in SEM-M eingetragen wird lind dass ESP
/ECP aktiviert wird: Ein Maschinencode-Ereignis, das einer ECP-Unterbrechung entspricht; der das Vorzeichen ändernde
simulierte ECP-Zeitgeber; und der auslaufende Intervall-Zeitgeber. Wenn eine Unterbrechung, die irgendeinem dieser
Zustände entspricht, zulässig ist, wird die Steuerung auf Ci1 für den PSW-Übergang zurückgeführt.
Da der ECP-Zeitgeber aktiv ist, während sich ECP im Wartezustand
befindet, muss der ECP-Zeitgeber aktualisiert werden, um·-die Zeitspanne wiederzugeben, die ESP/ECP in der Schlange
in SEM-M verbringt. Dies erfolgt dadurch, dass der Intervall-Zeitgeber
unter Verwendung desselben Wertes eingestellt wird, der für den ESP/ECP-Prozess-Zeitgeber verwendet wird, wie
dies oben beschrieben worden ist. Wenn der Intervall-Zeitgeber ausläuft, wird der ECP-Zeitgeber aktualisiert und
wie bei ESP/CP überprüft. Wenn der ECP-Zeitgeber einen Vorzeichenwechsel bewirkt, wird die potentielle Unterbrechung
v/ie in ESP/CP verarbeitet. Wird keine zulässige Unterbrechung ermittelt, so wird der Intervall-Zeitgeber dauernd zurückgestellt.
Die gesamte Wartezustandszeit wird akkumuliert, und
ferner wird eine Nachricht an den Operator jeweils dann ausgesendet, wenn ein Eingabeintervall abläuft.
In Pig. 21 ist ein Flussdiagramm der Wartezustandssimulation
gezeigt, wie sie durch die vorliegende Erfindung erfasst wird. Die Wartezustandssimulation wird eingeführt, wenn das PSW-Bit
14 (das W-Bit von PSW im Wort 5 von ECR) auf den Binärwert 1 gesetzt wird. Dadurch wird eine Wartezustandsbedingung
angezeigt. Nach Eintritt in die Wartezustandssimulation gemäss der vorliegenden Erfindung, wie dies durch den
Block 1700 angedeutet ist, gelangt man zum Block 1702, gemäss dem festgestellt wird, ob dies ein "harter" Wartezustand
509826/075
ist. Ein "harter" Wartezustand ist ein solcher Wartezustand, in welchem ein derartiger Zustand, das heisst der Wartezustand
in ECP nicht verlassen werden kann. Dieser Zustand wird durch die Systemausblendung bzw. Systeraraaske in PSW durch binäre
Nullen in jeder ihrer Bit-Stellen angezeigt. Dadurch wird angezeigt, dass keine Unterbrechungen zugelassen sind. Dieser
Zustand kann zum Beispiel in Notfällen oder unter Fehlerbedingungen vorhanden sein. Wenn der harte Wartezustand existiert,
wird demgemäss eine Nachricht an den Operator ausgesendet, die das Vorliegen eines derartigen Zustands bzw. einer derartigen
Bedingung anzeigt, so dass der Operator irgendeine Korrekturmaßnahme treffen kann. Dies ist durch den Block
1704 angezeigt. Wenn der Block 1702 nicht eine harte Wartezustandsbedingung
anzeigt, gelangt man zum Block 1706. Demgemäss wird eine Übaprüfung der SEM-M-Zählerstellung mittels
eines P-Testes vorgenommen. Die SEM-M-Zählerstellung zeigt an, ob irgendwelche Nachrichten in SEM-M vorhanden sind
oder nicht. Dadurch wird angezeigt, dass bei einer Zählerstellung, die grosser ist als Null» Nachrichten in SEM-M
vorhanden sind und dass bei einer Zählerstellung von Null
keine Nachrichten in SEM-M vorhanden sind» Sind keine Nach-,
richten in SEM-M vorhanden, wie dies durch eine Null auf den P-Iest hin angezeigt wird, dann gelangt man zum Block 1708,
und ferner wird der Intervall-Zeitgeber unter Heranziehung des Prozess-Zeitgeberintervalls eingestellt, wie es in EOR
angegeben ist (Worte 102 und 103). Sodann wird ESP in eine Schlange in SEM-M eingereiht, und zwar in Erwartung
der Aufnahme einer Nachricht in SEM-M, einschliesslich der
Anzeige, dass der Intervall-Zeitgeber abgelaufen ist. Wenn eine Nachricht in SEM-M vorhanden ist, wie dies durch eine
Zählerstellung angezeigt wird, die grosser ist als Null,,
dann wird zusätzlich in den Block 1710 eingetreten, so dass der Prozess in eine Schlange in SEM-M eintritt.
509826/07S8
Nach Einfügung des Prozesses in eine Schlange in SEM-M,
wie dies durch den Block 1710 angezeigt ist, und auf die Aufnahme einer Nachricht in SEM-M gelangt man zum Block 1712,
um die Nachrichtenquelle abzufragen. Die Nachrichtenquelle
kann die Anzeige eines Eingabe/Ausgabe-Ereignisses, eines Ablaufens des ECP-Zeitgebers oder eines Ablaufens des Intervall-Zeitgebers
enthalten.
Wenn die Nachrichtenquelle ein Eingabe/Ausgabe-Ereignis ist, dann wird ein dem Eingabe/Ausgabe-Kanal, in dem/Ereignis aufgetreten
ist, entsprechendes Kennzeichen der Eingäbe/Ausgabe-Unterbrechungskennzeichen
in dem Unterbrechungskennzeichenwort angezeigt, wie dies im Block 1716 angegeben ist. Wenn der
ECP-Zeitgeber abgelaufen ist, dann wird das externe Unterbrechungskennzeichen
in dem Unterbrechungs-Kennzeichenwort gesetzt, wie dies im Block 1714 angegeben ist. Wenn der
Intervall-Zeitgeber abgelaufen ist, wird der ECP-Zeitgeber aktualisiert, wie dies im Block 1718 angegeben ist, und
zwar durch den in ECR angegebenen Wert. Vom Block 1718 aus wird sodann eine Prüfung vorgenommen, ob der ECP-Zeitgeber
einen Yorzeichenwechsel vom positiven Wert zum negativen Wert erfahren hat oder nicht. Dies ist durch den Block 1724
angegeben. Ist ein Vorzeichenwechsel aufgetreten, so wird das externe Unterbrechungskennzeichen in dem Unterbrechungskennzeichenwort
gesetzt, wie dies durch den Block 1726 angegeben ist. Nach jedem der Ereignisse, das heisst dem Setzen
eines Kennzeichens in IW, wie dies in den Blöcken 1714,
1716 und 1726 angegeben ist, läuft dann der Prozesslauf weiter zum Block 1720, gemäss dem festgestellt v/ird, ob
eine Unterbrechung zugelassen werden kann oder nicht. Ist die Unterbrechung nicht zugelassen, so v/ird die oben angegebene
Routine wieder am Eingang des Blockes 1706 fortgesetzt. Dies bedeutet, dass eine Überprüfung vorgenommen wird, um
festzustellen, ob eine Nachricht in SEM-M vorhanden ist oder nicht.
509828/07 53
Ist eine Unterbrechung zugelassen,wie dies durch den Block
1720 angegeben ist, so erfolgt ein Übergang der Steuerung über die Kompatibilitätseigenschaft, wie dies durch den Block
1730 angegeben ist. Als nächste Maßnahme bewirkt die Kompatibilitätseigenschaft
die Ausführung eines PSW-Übergangs. Ist das Wartezustands-Bit, das heisst das PSW-Bit 14, eine
binäre 1, so gelangt man wieder zu der Wartezustands-Simulation. Ist das Wartezustands-Bit eine binäre Null, so
läuft der Ausführungsprozess in ECP mit den angegebenen Befehlen weiter. Geht man den Prozesslauf weiter, gemäss
dem der Ablauf des Intervall-Zeitgebers angegeben worden ist, so wird in dem Fall, dass der ECP-Zeitgeber keinen Vorzeichenwechsel
erfahren hat, wie dies im Block 1724 angegeben ist, der Wartezustands-Zähler in seiner ZMhlerstellung erhöht,
wie dies durch den Block 1728 angegeben ist. Wenn die Überwachungsperiode (das ist das Wartezustands-Eingabeintervall
(Wort 47 in ECR) abgelaufen ist, wie dies durch den Block 1732 angezeigt ist, dann wird eine Nachricht dem
Operator zugeführt (Block 1734). Diese Nachricht zeigt dem Operator die Zeitdauer an, während der sich das System
im Wartezustand befunden hat. Wenn die Überwachungsperiode in ECR nicht abgelaufen ist, wird der Prozesslauf vom Block
1732 wie vom Block 1734 zum Eingang des Blockes 1708 fortgeführt.
Dies bedeutet, dass der Intervall-Zeitgeber unter Heranziehung des Prozessgeber-Zeitintervalls eingestellt wird und dass
der Prozess in eine Schlange in SEM-M eingefügt wird. Der in Fig. 21 für die Wartezustandssimulation angegebene
Prozess wird in Verbindung mit Fig. 22 klar hervorgehen. In Fig. 22 sind die Hardware-, Firmenware- und Software-Eigenschaften
des vorliegenden Betriebssystems veranschaulicht, und zwar insbesondere von ESP 1602 und CF 1600.
509826/0758
In Fig. 22 sind die durch die Hardware, Firmenware und Software von CF und ESP vorgesehenen Funktionen angedeutet.
Das für den harten Wartezustand vorgesehene Kennzeichen 1800 wird gesetzt, wenn die UND-Funktion 1802 vollständig
freigegeben ist. Die UND-Funktion 1802 ist dann vollständig freigegeben, wenn die PSW-Systemmaske 1804 anzeigt, dass
in jedem seiner Systemmaskenbits 1 bis 8 binäre Nullen vorhanden sind, und wenn das CPSW-Wartezustandsbit 1850 eine
binäre 1 ist. Demgemäss zeigt die Anzeige des Vorliegens
des harten Wartezustands durch das Kennzeichen 1800 an, dass in eine Wartezustandssimulation nicht eingetreten werden
kann. Demgemäss wird der Operator informiert, wie dies in Fig. 22 und in Fig. 21 durch den Block 1704 angegeben ist.
Wenn das den harten Wartezustand anzeigende Kennzeichen nicht gesetzt ist, ist die UND-Funktion 1902 teilweise freigegeben,
und zwar über die Inverterfunktion 1900. Wie noch ersichtlich werden wird, ist die UND-Funktion 1902 vollständig erfüllt,
wenn das Wartezustandsbit von PSW eine binäre 1 ist.
Das Unterbrechungs-Kennzeichenwort (IFW) 1806 enthält acht Bits. Die ersten sieben Bits entsprechen den Eingabe/Ausgabe-Ereignissen
in sieben entsprechenden Kanälen für die ECP-Operation. Das achte Bit entspricht einer externen Unterbrechung,
die nachstehend noch beschrieben werden wird. Das Setzen irgendeines Bits in IFW 1806 auf den Binärwert 1
und das Setzen eines entsprechend numerierten Bits in der PSW-Systemmaske 1804 auf einen Binärwert 1 zeigt über
die UND-Funktion 1808 an, dass eine während des Wartezustands
anhängige zulässige Unterbrechung vorliegt. Wenn irgendeines der Bits in IFW 1806 mit irgendeinem der entsprechend
numerierten Bits in der Maske 1804 übereinstimmt, ist somit der entsprechende Vergleicher 1812 so eingestellt, dass eine
Übereinstimmung bzw. eine Gleichheit angezeigt wird. Dadurch ist über die ODER-Funktion 1814 der andere Eingang der
509826/0758
UND-Funktion 1808 teilweise freigegeben. Die Anzeige einer
noch unerledigten zulässigen Unterbrechung wird über die UND-Funktion 1808 an die Leitung 1816 vollständig freigegeben,
wenn das Wartezustands-Bit 1850, das ist das CPSW-Bit
Nr. 14, eine binäre 1 ist. Dadurch wird angezeigt, dass sich ECP im Wartezustand befindet.
Um eines der Bits in IFW 1806 in den Binärzustand 1 zu setzen, muss eine Unterbrechung aufgetreten sein. Das Setzen derartiger
Bits in IFW 1806 erfolgt über die Umsetzung oder Dekodierung einer Nachricht in dem SEM-M-Semaphor 1818, und zwar mittels
des Nachrichtendekoders 1820. Die Unterbringung einer Nachricht in SEM-M 1818 erfolgt in Abhängigkeit vom Vorliegen eines
Unterbrechungszustands, einschliesslich einer Eingabe/Ausgabe-Unterbrechung und einer externen Unterbrechung. Eine Eingabe/
Ausgabe-Unterbrechung tritt dann auf, wenn eine Zentraleinheits-Eingabe/Ausgabe-Beendigung
von irgendeinem der ECP zugehörigen sieben Eingabe/Ausgabe-Kanäle auftritt. Dieser Zustand
wird angezeigt, und dadurch wird eine Nachricht in SEM-M 1818 über die ODER-Funktion 1822 gespeichert. Das Ausgangssignal
des diese Funktion erfüllenden Verknüpfungsgliedes zeigt das V-Operationssignal an, welches normalerweise am Ende
des Eingabe/Ausgabe-Ereignisses oder der externen Unterbrechung geliefert wird. Die externen Unterbrechungen werden
ferner über die ODER-Funktion 1822 als Nachricht in bzw. auf SEM-M 1818 geliefert, und zwar über eine zusätzliche
ODER-Funktion 1826, die an ihren Eingängen ein Signal auf die Operation des Operator-Unterbrechungskennzeichens hin
oder des ECP-Zeitgeber-Vorzeichenwechsels hin erhält. Eine für das Ablaufen des Intervall-Zeitgebers sowie für andere
Unterbrechungen kennzeichnende Nachricht kann eberfalls in
SEM-M eingetragen sein. Demgemäss führt irgendeines dieser Ereignisse eine Nachricht in SEM-M 1818 ein, wobei die
Nachrichten mittels eines Nachrichtendekoders 1820 dekodiert werden, wenn die UND-Funktion 1828 durch ein P-Operationssignal
freigegeben ist.
5 0 9826/0758
Um sich die Anzahl der nachrichten in "bzw. auf SEM-M 1818
zu merken, ist ein Zähler 1830 enthalten, der einen Vergrösserungsund
Verkleinerungseingang "besitzt. Der Vergrösserungseingang ist mit dem Ausgang der die ODER-iPunktion
1822 erfüllenden Anordnung verbunden; er ermöglicht eine Erhöhung des Zählerstandes des Zählers 1830 jeweils dann,
wenn eine Nachricht in SEM-M eingetragen wird. In entsprechender Weise wird der Zählerstand des Zählers 1830
jeweils dann verkleinert, wenn eine Nachricht über die UND-Funktion 1828 aus SEM-M entnommen wird. Das Semaphor
SEM-M ist ein Stapelspeicher, bei dem die erste eingegebene Information die erste ausgegebene Information ist. Da eine
derartige Anordnung auf dem vorliegenden Gebiet bekannt ist, braucht sie hier nicht weiter erläutert zu werden. Demgemäss
ist der Zähler 1830 vorgesehen, um anzuzeigen, ob eine Nachricht in SEM-M 1818 vorhanden ist. Dabei werden der
Vergleicher 1832 und die Null-Bits 1834 dazu herangezogen, eine derartige !Funktion zu erfüllen. Sind die Eingangssignale
A und B des Vergleichers 1832 gleich, so wird das die Gleichheit des Signals A mit dem Signal B anzeigende Vergleichersignal
erzeugt. Dadurch wird über die UND-Funktion 1838 das keine Nachricht anzeigende Kennzeichen 1836 gesetzt.
Wenn das Α-Eingangssignal grosser ist als das B-Eingangssignal, wodurch angezeigt wird, dass Nachrichten in
bzw. auf SEM-M 1818 vorhanden sind, dann wird das Nachrichtenverarbeitungs-Freigabekennzeichen
1840 durch die UND-Punktion 1842 gesetzt. Die UND-Funktionen 1838 und
1842 werden durch das Signal auf der Leitung 1801 vollständig freigegeben. Dieses Signal wird dann erzeugt, wenn
die UND-Funktion 1902 vollständig erfüllt ist. Das betreffende
Signal zeigt ferner an, dass ein normaler Wartezustand vorhanden ist, bei dem es sich nichtjum einen harten
Wartezustand handelt. Wenn Nachrichten in SEM-M vorhanden
sind und das Kennzeichen 1840 gesetzt ist, ermöglicht dies
509 82 6/07 5 8
eine P-0perationo Dadurch kann die Nachricht aus SEM-M 1818
abgeholt werden.
Wenn eine zulässige Unterbrechung vorhanden ist, während CPSW den Wartezustand anzeigt, wie dies durch ein Signal
auf der Leitung 1816 angezeigt wird, dann wird das DEA-Argument 1844 in einen Binärzustand 1 gesetzt. Dadurch ist ein
PSW-Übergang ermöglicht, wie dies durch das Kennzeichen
1846 angezeigt wird. Dies gibt die UND-Eunktion 1848 frei
bzwο erfüllt diese Funktion, wodurch ein neues PSW-Bit in
dem gegenwärtigen PSW-Wartezustandbit-Register 1850 über
die ODER-Funktion 1852 eingeführt werden kann. In ähnlicher Weise kann ein neues Wartezustandsbit über die UND-Funktion
1853 durch andere Mittel freigegeben werden (nicht dargestellt), wie auf die Initialisierung in ctem Register 1850'
über die ODER-Punktion 18!?2. Die neue Wartezustands-Anzeige
wird in das Register 1850 eingeführt, und zwar durch Setzen oder Zurückstellen des Registers 1850, das einfach ein Flipflop
sein kann. Wenn das neue Bit eine binäre 1 ist, wodurch der Wartezustand angezeigt wird, ist das Register
1850 gesetzt. Das Register 1850 wird über die Inverter-Funktion 1855 zurückgestellt, wenn das neue Wartezustands-Bit
eine binäre Null ist. Auf diese Weise wird angezeigt, dass sich ECP nicht im Wartezustand befindet. Wenn keine
zulässigen Unterbrechungen vorhanden sind, wie dies durch die Inverter-Binktion 1854 auf der Leitung 1856 angezeigt
wird, und wenn die UND-Punktion 1857 ebenfalls freigegeben bzw. erfüllt ist, und zwar durch Anzeige des Wartezustande,
dann wird ein Steuerkennzeichen 1858 gesetzt. Dadurch ist
zusammen mit dem auf der Leitung 1801 auftretenden Signal die UND-Funktion 1861 freigegeben bzw. erfüllt«
Das Setzen des Steuerkennzeichens 1858 ermöglicht die Maschinencode-Betriebsausführung.
Dadurch ist es nicht er-
509826/07 5 8
forderlich, dass das System im Wartezustand verbleibt und
dass wertvolle Verarbeitungszeit verlorengeht, bis eine
anhängige zulässige Unterbrechung in SEM-M eingetragen ist. Die Erfüllung der UND-Funktion 1861 führet, wie noch ersichtlich
werden wird, dazu, dass dem Operator eine Anzeige bezüglich der Zeitspanne geliefert wird, während der ECP
sich im Wartezustand befunden hat. Ausserdem wird dadurch der Operator bezüglich eines derartigen Systemzustands informiert,
so dass er erforderlichenfalls eine Korrekturmaßnahme treffen kann.
Wie zuvor angegeben, wird der ECP-Zeitgeber in dem emulierten
Prozessor um einen angegebenen Wert auf einen angegebenen Betrag verkleinert. In dem Emulator wird ausserdem der
ECP-Zeitgeber 1870 verkleinert, und ausserdem wird ein Vorzeichenwechsel des Zeitgebers 1870 mittels des Vorzeichenwechsel-Detektors
1874 festgestellt. Dieser Vorzeichenwechsel wird dann an dem einen Eingang der ODER-funktion
1826 als externe Unterbrechung für die Eintragung in SEM-M aufgenommen. Im weiteren Bereich, der in das
Maschinencode-System einbezogen ist, sind zwei Zeitgeber vorgesehen der Zentraleinheits-Intervall-Zeitgeber 1872
und der Prozess-Zeitgeber 1878. Diese Zeitgeber laufen lediglich dann, wenn sich ein derartiger Prozess im aktiven
Zustand befindet. Der Zentraleinheits-Intervall-Zeitgeber 1876 auf der anderen Seite läuft zu sämtlichen Zeitpunkten,
und zwar unabhängig vom Zustand irgendeines Prozesses in dem System. Obwohl der ECP-Zeitgeber kontinuierlich in
seinem eigentlichen Maschinencode-System läuft, wenn der ECP-Zeitgeber 1871 wie hier emuliert ist, wird er bezüglich
seines-Inhalts verkleinert, wenn der Intervall-Zeitgeber abläuft. Dadurch ist ebenfalls dessen Maschinencode-Operation
simuliert. Es sei erneut darauf hingewiesen, dass der ECP-Zeitgeber in dem Pail, dass eine Wahl in dem emulierten
509826/0758
System nicht erfolgt, somit nicht für die Simulation enthalten
ist.
Wenn die ICP-Befehle verarbeitet werden, wird üblicherweise
der ECP-Zeitgeber 1870 verkleinert bzw. bezüglich seines Inhalts verkleinert, und der Prozess-Zeitgeber 1878 wird
ebenfalls verkleinert. Der Prozess-Zeitgeber 1878 wird auf die Freigabe der UND-Funktion 1880 hin verkleinert.
Die UUD-Funktion 1880 wird durch die System-Taktschaltung
1879 freigegeben bzw. erfüllt, die Impulse mit einer gleichmässigen Frequenz abgibt, lusserdem erfolgt die Freigabe
der erwähnten UHD-Funktion durch ein Signal von dem
Register 1850 her. Dadurch wird angezeigt, dass sich EOP nicht im Wartezustand befindet, was bedeutet, dass eine
binäre Null im Register 1850 ist. Die Systemtaktschaltung
1879 wird ferner dazu herangezogen, den Zentraleinheits-Intervall-Zeitgeber 1876 zu verkleinern bzw. hinsichtlich
seines Inhalts zu verkleinern. Ferner wird der Prozess-Zeitgeber 1878 über die UND-Funktion 1882 voreingestellt.
Dies erfolgt durch die in den Worten 102 und 103 von ECR angegebene Periode. Der Zentraleinheits-Intervall-Zeitgeber
1876 wird ferner durch dieselbe Periode eingestellt, und zwar über die UWD-Funktion 1863. Der Zeitgeber
1878 kann unter Anfangsbedingungen voreingesteilt werden
oder, wie dies dargestellt ist, dann, wenn der Detektor 1884 anzeigt, dass das Intervall des Zeitgebers 1878
abgelaufen ist. Wenn das Intervall abgelaufen ist, wie dies durch den Detektor 1884 ermittelt wird, wird darüber
hinaus die UND-Funktion 1886 über die ODER-Funktion 1871 erfüllt. Dadurch ist dem Vorzeichenwechsel-Detektor 1874
ermöglicht, zu arbeiten.
Wenn jedoch ECP in den Wartezustand übergeht, kann der
Prozess-Zeitgeber 1878 nicht verkleinert werden, da nämlich
509826/07 5 8
die UND-Funktion 1880 gesperrt ist und da einige Einrichtungen
gefunden werden müssen, um den Betrag der Zeitspanne anzuzeigen, während der ECP sich im Wartezustand befunden
hat. Erreicht wird dies mit Hilfe des Zentraleinheits-Intervall-Zeitgebers 1876, der über die UND-Funktionen 1861 und
1863 mittels der ECR-Worte 102 und 103 voreingestellt wird. Dem Intervall-Zeitgeber 1876 ist ein das ablaufende Intervall
"ermittelnder Detektor 1888 zugeordnet, der dem Detektor
1884 ähnlich ist. Der Zeitablauf eines derartigen Intervalls, wie er durch den Detektor 1888 angezeigt wird, in
Verbindung mit der Freigabe bzw. Erfüllung der UND-Funktion 1861 gibt die UND-Fuiftion 1890 vollständig frei bzw. erfüllt
diese Funktion. Auf der Grundlage der Tatsache, dass keine Nachricht in SEM-M vorhanden war, wie dies durch das Kennzeichen
1836 angezeigt wird, ist dann die UND-Funktion 1892 vollständig erfüllt. Der ECP-Zeitgeber wird dann, wenn eine
Wahl angegeben ist, verkleinert. Der ECP-Zeitgeber 1870 wird durch den ECP-Zeitgeber-Verkleinerungswert voreingestellt,
der in dem Wort 101 von ECR enthalten ist, wenn die UND-Funktion 1906 erfüllt ist, und zwar auf einen Vorzeichenwechsel
hin, wie er durch den Detektor 1874 festgestellt wird. Ferner wird der Wartezustands-Zähler 1894 in seinem
Wert um den Wert vergrössert, der in den Worten 102 und von ECR enthalten ist. Dies erfolgt über die UND-Funktion
1873, um die lange der Zeitspanne anzuzeigen, während der sich ECP im Wartezustand befunden hat. Der Zähler 1894 erzeugt
den Wert der Wartezustands-Überwachungszeit, die in dem Wort 70 von ECR enthalten ist. Der Wartezustands-Zähler
1894 wird über die ODER-Funktion 1904 zurückgesetzt, und zwar entweder dann, wenn das Wartezustands-Bit in dem
Register 1850 eine binäre Null wird, oder dann,wenn der
Vergleicher 1895 ein Eingabesignal für den Operator erzeugt. Die Wartezustands-Anzeige wird dem Operator in angegebenen
Intervallen zugesendet. Dies bedeutet, dass das Ausgangssignal des Wartezustands-Zählers 1894 mittels des Vergleichers
509826/0 75
1895 mit einem Eingabe-Intervallwert (Wort 47 von ECR)
verglichen wird, so dass eine Nachricht oder ein Eingabe-Signal für den Operator in genau angegebenen Intervallen
erzeugt wird. Dies würde dem Operator zum Beispiel alle 30 Sekunden anzeigen, dass sich ECP im Wartezustand befindet,
so dass der Operator die erforderliche Maßnahme treffen kann, sofern er dies für erforderlich hält. Die gesamte Wartezustandszeit
wird durch den Akkumulator 1897 akkumuliert und in dem ECR-Wort 69 festgehalten. Der Akkumulator 1897 wird
zurückgestellt, wenn das Wartezustands-Bit in dem Register 1850 eine binäre Null wird.
Bezüglich der Art und Weise, in der der Operator von der Wartezustandsbedingung informiert wird, sei zusammenfassend
bemerkt, dass der Intervall-Zeitgeber 1876 hinsichtlich seines Inhalts konstant durch die Systemtaktschaltung 1879
von seinem voreingestelüten Wert verkleinert wird. Der Ablauf
des Intervall-Zeitgebers in Verbindung mit der normalen Wartezustandsbedingung gibt die UND-iunktion 1890 frei,
die ihrerseits die TJND-IPunktion 1892 freigibt, wenn keine
Nachrichten in SEM-M 1818 vorhanden sind. In Abhängigkeit von der Erfüllung der Funktion 1892 wird der Inhalt des
Wartezustands-Zählers 1894 (Wort 70 von ECR) erhöht, und ausserdem wird dessen Wert konstant mit dem Wartezustands-Eingabeintervall
(Wort 47 von ECR) verglichen. Iriegt eine Obereinstimmung vor, so erhält der Operator ein Eingabesignal.
Der Wartezustands-Zähler wird ferner dazu herangezogen, den
Wartezustands-Gesamtzeit-Akkuraulator 1879 (Wort 69 von ECR)
zu aktualisieren. Auf diese Weise wird dem Operator die Gesamtzeitspanne des vorliegenden Wartezustands angegebene
Sowohl der Zähler 1894 als auch der Akkumulator 1897 werden zurückgestelltj wenn der Wartezustand verlassen wird. Das
Wartezustands-Eingabeintervall (Wort 47 von ECR) kann zum
Beispiel 30 Sekunden betragen, und die Intervall-Zeitgeber-
5 09826/0758
Periode (Worte 102 und 103) kann zwei Sekunden betragen.
In einem solchen Pail läuft der Intervall-Zeitgeber 1876
alle zwei Sekunden ab. Dadurch wird der Wert des Zählers 1894 (Wort 70) um zwei Sekunden alle zwei Sekunden vergrössert
und ebenso der Wert in dem Akkumulator 1897 (Wort 69 von
ECR), Infolgedessen besitzt der Zähler 1894 nach zehn Intervall-Zeitgeber-Abläufen
einen Wert von 20 Sekunden· Wenn der Wert des Zählers 1895 30 Sekunden beträgt, wird dieser
Wert mit dem Wort 47 von ECR verglichen, und der Operator
wird hierüber informiert. Gleichzeitig wird der Zähler 1894 zurückgestellt, und der Prozess läuft weiter. Dies bedeutet,
dass der Operator alle 30 Sekunden eine Angabe erhält und dass die Wartezustands-G-esamtzeit erhalten bleibt, bis
der Wartezustand existiert, wie dies durch das Wartezustands-Bit-Register
1850 angezeigt wird. Damit dürfte ersichtlich sein, dass das vorliegende System die Fähigkeit besitzt,
unverzüglich dem Operator das Vorliegen einer harten Wartezustandsbedingung
anzuzeigen. Auf das Auftreten einer normalen Wartezustandsbedingung hin kann, wie ferner ersichtlich sein
dürfte, das System unverzüglich eine Prüfung bezüglich unerledigter, zulässiger Unterbrechungen vornehmen, und auf
diese Überprüfung hin kann das System einen PSW-Übergang
ausführen, um die Verarbeitung im Emulationsbetrieb fortzusetzen. Es dürfte ferner ersichtlich sein, dass in Abhängigkeit
von einer normalen Wartezustandsbedingung und dem Fehlen von noch unerledigten zulässigen. Unterbrechungen das System
zu einer Minimierung der verschwendeten Systemzeit führt, indem der Verarbeitung ermöglicht ist, im Maschinenbetrieb
fortzufahren, bis eine emulatorspezifische unerledigte zulässige Unterbrechung in ein Semaphor eingetragen ist, woraufhin
wieder die Ausführung des Emulationsbetriebs beginnt. Es öürfte ferner ersichtlich sein, dass durch die Anwendung
einer Kombination von Zeitgebern, Zählern, Akkumulatoren, etc., Einrichtungen bereitgestellt sind, die dem Operator die
Länge der Zeitdauer anzeigen, während der der ECP-Warte-
509826/075 8
zustand existiert hat. Auf diese Weise sind im Bereich des
Operators jegliche fälschlichen Sicherheiten vermieden, dass sein System weiterhin im Emulationsbetrieb arbeitet. Ferner
wird dem Operator eine Möglichkeit gegeben, einzugreifen, falls dies die Bedingungen rechtfertigen.
Durch die Erfindung ist also ein Emulator für den Einsatz in einem Datenverarbeitungssystem angegeben, um eine Simulation
des Maschinen-Wartezustands des emulierten zentralen Prozessors zu bewirken. Eine Kombination von Hardware- Firmenware
und Software ist vorgesehen, um eine Verarbeitung im Maschinenbetrieb des Datenverarbeitungssystems zu ermöglichen,
während sich der emulierte Prozessor im Wartezustand befindet. Ferner sind Einrichtungen vorgesehen, die eine schnelle Rückkehr
aus dem Wartezustand zum Emulationsprozess ermöglichen, und zwar auf eine emulatorspezifische, noch unerledigte zulässige
Unterbrechung. Ferner sind Einrichtungen vorgesehen, die dem Operator anzeigen, ob der emulierte Prozessor tatsächlich
aus dem Wartezustand herauskommen kann. Schliesslich sind Einrichtungen vorgesehen, die dem Operator die
Dauer der Zeitspanne anzeigen, während der sich der emulierte Prozessor im Wartezustand befunden hat.
Absolute Adresse Das ist die physikalische Adresse
eines Hardware-Bytes in dem Hauptspeicher.
Adressenbildung Eine Hardwarefunktion, die auf eine
Anzahl von Adressenelementen hin eine absolute Adresse berechnet, welche für die Bezugnahme auf
einen Speicherplatz im Hauptspeicher benutzt wird.
50 9 8 26/0758
Adressierung
Adressenraum Adressenraumwort Adressensilbe
Analysator/ Umsetzer
Asynchrone Verarbeitung Hilfsspeicher
Pestlegen eines Objektes durch irgendeine
Anzahl von virtuellen, logischen und physikalischen Einrichtungen. Derjenige Satz von logischen, segmentierten
Adressen, die einem Prozess entsprechen, gemäss dem der Zentraleinheit
eine Transformierung in absolute Adressen während der Ausführung des Prozesses
ermöglicht ist.
Ein Wort von zwei Worten in einem Prozess-Steuerblock, welches auf das Segmenttabellenwortfeld
zeigt. Das Segmenttabellenwortfeld definiert die Segmenttabellen, die dem Prozess zugeordnet
sind,
Eine Verknüpfungsadresse, die von der Zentraleinheits-Hardware erkannt wird
und die normalerweise einjOperand eines Befehls ist.
Das ist derjenige Teil der statischen Verbindungsglieder, der den Steuersprachenstrom
zu den Verbindungsgliedern hinleitet. Wenn die Steuersprache fehlerfrei ist, setzt der Analysator/Umsetzer
sie in Tabellen und andere Strukturen für zu benutzende statische Verbindungsglieder
um.
Ist die gleichzeitige Aktivierung von mehr als einem Prozess,
Er besteht aus 64 Flipflops für die Speicherung verschiedener Zustände
des Systems; er ist in der Rechen- und Verknüpfungseinheit untergebracht.
509826/0758
Basisregister
Grenzadressregister
Aufruf
Zentraleinheit
Zentraleinheit
Kanalbefehlseintrag
Kanalbefehlswort
Kanalbefehlswort
Kanalprogramm
Das ist das Hauptelement bei der Segmentadressierung, auf das durch die
Nummer in jeder Adressensilbe Bezug genommen wird.
Ist ein verfügbares Hardware-Register, das die niedrigste Speicheradresse angibt,
die für die Firmenware/Software verfügbar ist.
Siehe hierzu Prozeduraufruf - Innenaufruf-Aus s enaufruf.
Das ist ein Teil eines Rechners, der Schaltungen zur Steuerung der Intepretation
und Ausführung von Befehlen enthält.
Ist ein Nachrichtenübertragungsmittel zwischen dem Prozessor-Untersystem und
einem peripheren Untersystem. Es gibt zwei Arten von Kanälen, physikalische und verknüpfungsmässige. Ein physikalischer
Kanal ist eine Hardware-Verbindung zwischen der Eingabe/Ausgabe-Steuereinheit
IOC und der peripheren Steuereinheit PCU, Ein verknüpfungsmässiger
Kanal ist ein Software-Nachrichtenverbindungsweg zwischen dem Hauptspeicher und einer einzelnen peripheren
Einrichtung.
Ist ein Befehl in einem Kanalprogramm. Ist ein Element eines Kanalbefehlseintrage.
Zwei Kanalbefehlsworte bilden
einen Kanalbefehlseintrag. Ist eine Folge von Befehlen, die die Ausführung einer bestimmten Eingabe/Ausgabe-Operation
durch eine periphere Einrichtung bewirken.
09826/0758
Komplementärer Code
Über s e t zungs e inhe it
Gleichzeitigkeit
Bedingungsfeld
Auseinandersetzungs-Anzeige glied
Datenadressenraum
Daten-Deskriptor
Das ist ein Code in bestimmten Befehlen, der zusammen mit dem Operationscode
die Punktion des Befehls angibt· Das ist ein einziges Objekt-Codemodul,
das sich aus der Übersetzung (Compiler-Punktion) oder Assemblierung einer Prozedur in dnem Sprachenprozessor hofer
Ebene ergibt. Die betreffende Einheit ist eine nicht ausführbare Einheit; sie ist verbunden.
Das ist eine offensichtliche GleichzeHigkeit.
Das ist ein 4-Bit-Peld in einem Verzweigungsbefehl.
Jedes Bit des Peldes entspricht einem Setzen des Bedingungscodes in den Zustandsregister-Bits
Null und 1.
Das ist eine Hardware-Struktur, die
im Hilfsspeicher untergebracht ist und die anzeigt, dass ein neuer Eintrag in
die Bereitschaftsschlange eingeführt worden ist, wobei möglicherweise ein
Inhalt für die Priorität vorhanden sein kann.
Das ist der Satz der Verknüpfungs-Aufzeichnungsadressen, zu denen durch
einen Prozess über die Datenbehandlung ein Zugriff möglich ist. Er besteht aus vier Elementen, nämlich Verknüpf ungsfeldern,
Verknüpfungsaufzeichnungen, Datenbasis-Seiten und Dateien. Das ist eine Informationsstruktur, die
bei der indirekten Adressierung und
509826/07 5 8
Dekor
Dekorerweiterungs-Betrieb
Deskriptor
Deskriptorblock
Einrichtungs-Adapter
Einrichtungs-Adapter-Schnittstelle
Einrichtungs-Steuerung
als Deskriptor bei der Daten-Manipulation
benutzt wird.
Das sind die funktioneilen Eigenschaften oder die Architektur eines Rechnersysteme.
Das ist eine Betriebsart, die die Operation des Systems im Emulationsbetrieb
ermöglicht·
Das ist ein 32- oder 64-Bit-Peld, das bei der Bildung der Adresse in irgendeinem
Datenfeld benutzt wird. Es ist ein Zeiger von vielen Zeigern in dem Adressierungsschema der Erfindung.
Das ist ein Datenblock, der irgendeine Anzahl und Vielfalt von Deskriptor-Vereinbarungen
enthält, ausgenommen Semaphor-Deskriptoren. Keine weiteren Daten sind erlaubt.
Das ist die elektronische Schaltung, die eine Anpassung einer bestimmten
Einrichtung an eine periphere Steuereinrichtung vornimmt.
Das ist die Schnittstelle zwischen einem Einrichtungaadapter und dessen zugehöriger
peripherer Steuereinrichtung bzw. dessen zugehörigen peripheren Steuereinrichtungen·
Das ist eine Software-Eigenschaft, die einrichtungsspezifische Eigenschaften
behandelt.
509826/0758
Zuteiler
Zuteilen
Verschiebungs-Adressierung
Dynamische Adressierung
Editor
Effektive Adresse Das ist die JPirmenware, die für Zuteilungsprozesse
in der Zentraleinheit verantwortlich ist. Das ist ein PeId innerhalb des Befehlsformats
oder eines Datendeskriptors, welches eine relative Positionsinformation innerhalb eines Segments liefert.
Das ist eine Form der direkten Adressierung, bei der der Operand eine
Stelle relativ zur Basis des Direktsegmentes oder in Bezug auf den die laufende Stelle anzeigenden Zähler
definiert.
Das ist die Adressierung, die während der Ausführung von Bezugnahmen, die
innerhalb der Prozessgruppe definiert sind, zu einer Auflösung führt. Das ist der Teil des statischen Verbindungsgliedes,
der sämtliche Informationen bildet und ausgibt, die sich aus der Verbindung einer bestimmten
Prozedur ergeben.
Das ist eine verknüpfungsmässige im
Unterschied zur physikalischen Adresse, die aus einer Segmenttabellen-Hummer,
einem Segmenttabellen-Eintrag und einer relativen Segmentadresse besteht.
Diese Elemente zeigen den Weg zu einem bestimmten Segmentdeskriptor, der schliesslich zu dem Segment hinzeigt,
auf das Bezug genommen wird.
826/07 5
Emulationsbetrieb
Ausnahme
Ereignis
Finnenware
GD Haine
G—Segment
G-Tabelle
Das ist eine Operation eines Rechners zum Zwecke der Initiierung eines weiteren
Rechners; die betreffende Operation scheint dabei im Bereich des anderen Rechners zu
arbeiten.
^ine Ausnahme tritt dann auf, wenn die
Hardware das Vorhandensein eines gewissen Zustands feststellt, der als eine spezielle
Behandlung erfordernder Zustand festgelegt worden ist.
Das ist irgendetwas, was in einem System durch einen Prozess beachtet wird und
das für einen gewissen weiteren Prozess von Interesse sein kann. Das ist derjenige Teil einer Hardware-Einheit-Realisierung,
der eine Form einer mikroprogrammierfcen Steuerung benutzt.
Das ist derjenige Name, der von der Hardware benutzt wird, um eine Bezugnahme auf ein Semaphor zu erhalten. G, der
G-Segmentname, ist die Zahl des Eintrags in der G-Tabelle, enthaltend den Segment-Deskriptor;
D ist die relative Adresse in dem Segment.
Das ist ein Segment, welches Semaphore enthält, die unter Verwendung der G,D-Hamensform
adressiert werden können und die einerAbbildungseigenschaft (die G-Tabelle)
zugehörig .sind.
Das ist eine Tabelle, die für die Speicher-Abbildung (Unterbringung eines G-Segments)
benutzt wird, wenn die G,D-Namensform
benutzt wird.
509826/0758
Tastung
Allgemeines Register
Indizierung
Indexregister
Umweg
Umweg
Umweg zur Basis
Das ist eine Eigenschaft zur Steuerung des Eintritts in Prozeduren in einem
(getasteten) Segment durch die Verwendung von Prozedur-Deskriptoren.
Das ist ein 32-Bit-Register, das für ausführende Prozesse verfügbar ist,
die im allgemeinen binäre Daten oder Bitreihen-Daten enthalten. Bestimmte
allgemeine Register können für die Indizierung verwendet werden (GR8
Ms GR15).
Das ist eine Datenstruktur, die aufrechterhalten wird und auf die hin durch das
System gearbeitet wird. Die Struktur ist für den Benutzer lediglich in Grossen
eines Kennzeichens verfügbar, welches er abgibt, um die Verfügbarkeit zu bewirken
oder eine Einstellung auf das Auftreten einer bestimmten Aufzeichnung vorzunehmen.
Das ist die Modifikation einer Adresse um einen gekennzeichneten Rechenwert,
und zwar durch Addieren irgendeiner Grosse zu irgendeiner anderen Grosse.
Ein allgemeines Register, das für die Indizierung benutzt wird (GR8 bis GR15).
Das ist ein Adressierungsverfahren, gemäss
dem eine Adresse benutzt wird, um eine weitere Adresse zu erhalten,anstelle
der eigentlichen Daten.
Die Form eines Umweges, wobei ein Daten-Deskriptor, der eine Basisregisternummer und eine Versetzung enthält, bei der Adresse, auf die Bezug genommen worden ist, ermittelt werden.
Die Form eines Umweges, wobei ein Daten-Deskriptor, der eine Basisregisternummer und eine Versetzung enthält, bei der Adresse, auf die Bezug genommen worden ist, ermittelt werden.
509826/0758
Umweg zum Segment
Indirekter Segment-Deskriptor
Befehl
Befehlszähler
Yerschachtelung
Unterbrechung
Unterbrechungsprozess
Innen-Aufruf
Eingabe/Ausgabe-Steuereinrichtung
Die Form des Umweges, durch die ein Daten-Deskriptor, der eine Segmentadresse
enthält, bei der Adresse ermittelt wird, auf die Bezug genommen ist.
Das ist ein Eyp des Segmentdeskriptors, der eine Information für die Adressierung
eines weiteren Segment-Deskriptors anstelle eines Segmentes enthält. Das ist die Einheit der Ausführung eines
zentralen Prozessors, der für einen Programmierer verfügbar ist· Das ist ein einem ausführenden Prozess
zugeordnetes Register, welches die segmentierte Adresse des nächsten Befehls der Prozedur enthält, die ausgeführt
wird ·
Das ist ein sequentieller Zugriff zu Speichermodulen, um die Speicherzugriffs
zeit zu vermindern· Das ist die Unterbrechung eines Prozesses in dem System aufgrund des Auftretens
eines Ereignisses«
Das ist ein Prozess, der auf eine Unterbrechung hin aktiviert wird·
Wenn eine Prozedur-Ausführung in einer Ringzahl eine weitere Prozedur aufruft, um eine Ausführung in einem Ring niedriger
Nummer zu bewirken·
Das ist eine Einheit, die die Grundsteuerung für ein bestimmtes Eingabe/
Ausgabe-Untersystem bewirkt·
509826/0758
Eingabe/Ausgäbe-Prozessor
J.P.-Tabellen
Job
Job-Steuersprache
Job-Steuersprache
Job-Schritt
Job-S chritt-Tabelle
Verbundenes Modul
Verbindung
Verknüpfungskanal Verknpüfungs-Prozessor
Verknüpfungskanal Verknpüfungs-Prozessor
Das sind mögliche asynchrone System-Prozesse, die hauptsächlich der Verschiebung
von Daten zwischen einem peripheren Speicher oder Eingabe/Ausgabe-Einrichtungen
und einem Hauptspeicher dienen·
Eine Sammlung ;von Verknüpfungsadressen für die Festlegung eines Prozess-Steuerblockes.
Eine Arbeitseinheit für das System. Eine Sprache für die Beschreibung eines
Jobs und dessen Komponententeile. Eine Haupt-Unterteilung eines Jobs, der zur Ausführung eines Programms führt,
welches durch eine JCL-Anweisung definiert ist.
Eine System-Tabelle, die zur Abbildung des ersten Teiles eines Prozessnamens
benutzt ist, das heisst zur Festlegung der Prozessgruppentabelle. Das Ausgangssignal der statischen Verbindungseinrichtung,
Es ist eine vereinigte Gruppe von Umsetzeinheiten (CU), deren Kreuz-Verweisungen durch die
statische Verbindungseinrichtung aufgelöst wurden.
Siehe statische Verbindung« Siehe Kanal
Das ist die Sammlung der Hardware-Hilfsquellen
und der Steuerinformation, die für die Ausführung eines Prozesses erforderlich ist.
509826/07 5 8
Hauptspeicher
Magnetband-Steuer-Einriehtung
Massenspeicher-Steuereinrichtung
Speicher-Management
Nachricht
Mikrobefehl Mikroprogramm
Multiplex
Mehrprogrammbetrieb Maschinencodebetrieb
Der gesamte adressierbare Speicher,
aus dem Befehle ausgeführt werden können
oder aus dem Daten direkt in Register geladen werden können.
Das sind die Elemente des peripheren Untersystems, die sich auf Magnetband-Einrichtungen
beziehen.
Das sind die Elemente des peripheren Untersystems, die sich auf Massenspeicher-Einrichtungen
beziehen.
Das sind die Operationssystem-Einrichtungen für die Zuordnung, Neuzuordnung
und Aufhebung der Zuordnung des physikalischen Speichers« Das ist die von einer Quelle oder zu
einem Bestimmungsort hi übertragene Information - keine Datei. Dasselbe wie ein Mikrobefehlswort und
Steuerspeicherwort
Ein Satz von Maschinencodes, die dazu benutzt werden, die Steuerfunktionen
eines Prozessors auszuführen. Sie dient der leilung einer Hardware-Hilfsquelle,
wie eines Speichers, und zwar gewöhnlich nach dem Zeitmultiplex-Prinzip.
Die gleichzeitige Ausführung von zwei oder mehr Programmen durch einen einzigen
Rechner.
Das ist der Betrieb eines Rechners in seinem Maschinencodebereich.
9826/0758
Versetzung
Betriebssystem
Aus s en-Aufruf
Periphere Steuer-Einheit
Periphere Unter-System-Schnittstelle
Physikalischer Kanal
Physikalische Datenstruktur
Physikalische Eingabe/Ausgabe
Das ist bei der Adressenbildung die Anzahl von Bytes nach dem Beginn des
Segments, bei dem ein adressierter Teil des Segments beginnt.
Das ist ein System der Grund-Software, das so ausgelegt ist, dass es die wirksame Operation der Benutzer-Software stützt. Dieser liegt dann vor, wenn eine Prozedur, die eine Ausführung in einem Ring einer Nummer vornimmt, eine weitere Prozedur anfordert, um in einem Ring einer höheren Nummer eine Ausführung zu bewirken.
Das ist ein System der Grund-Software, das so ausgelegt ist, dass es die wirksame Operation der Benutzer-Software stützt. Dieser liegt dann vor, wenn eine Prozedur, die eine Ausführung in einem Ring einer Nummer vornimmt, eine weitere Prozedur anfordert, um in einem Ring einer höheren Nummer eine Ausführung zu bewirken.
Ein alleinstehender mikroprogrammierter Prozessor, der Kanalprogramme zur Ausführung
von Eingabe/Ausgabe-Operationen ausführt.
Eine Standard-Schnittstelle, die für die Übertragung und Steuerung zwischen freistehenden
peripheren Steuereinheiten und Eingabe/Ausgabe-Steuereinheiten benutzt wird.
Siehe Kanal
Das ist eine vollständige Definition der Organisation von Daten, wie sie
physikalisch auf einem Aufzeichnungsträger aufgezeichnet werden.
Das ist der Teil des Betriebssystems, der die Übertragung von Daten zwischen
dem Speicher und peripheren Einrichtungen oder Endeinrichtungen auslöst und steuert.
509826/0758
Physikalischer Speicher Das ist die Hardware, die für die
Speicherung von Daten benutzt wird. Sie besteht aus verschiedenen Arten
des Aufzeichnungsträgers und der Aufzeichnungs/Lese-Hardware. Das ist ein Maschinenbefehl, der ein
Semaphor umfasst, welches einen Prozess veranlasst, in den Wartezustand einzutreten
oder eine Nachricht aufzunehmen.
P-Operation
Privilegierter Befehl
Prozedur
Prozedur-Aufruf Prozedur-Deskriptor Prozedur-Segment Prozess
Prozess-Adressenraum
Das ist ein Befehl, der im Ring Null ausgeführt werden muss.
Das ist eine bezeichnete Software-Funktion
oder ein Algorithmus, der durch einen Prozess ohne Gleichzeitigkeit ausführbar
ist: Eine Fortran-Subroutine, ein Cobol-Programm, eine PL/1-International-Prozedur.
Das ist ein Mechanismus, der einen Stapelrahmen innerhalb eines Stapelsegments
bildet.
Das ist ein Wort, welches die Stelle und den Eintrittspunkt einer Prozedur
enthält.
Das ist der Typ des Segments, dessen Inhalt eineProzedur, Prozeduren oder
einen Teil eines Prozedurs darstellt. Das ist die geordnete Ausführung von Befehlen ohne Gleichzeitigkeit durch
einen Prozessor, und zwar entweder zentral oder durch Eingabe/Ausgabe. Das sind die Speicheradressen, auf die
Bezug genommen werden kann oder auf die die Steuerung während eines bestimmten Prozesses übertragen werden kann.
509826/0758
Prozess-Steuerblock
Prozessgruppe
Prozessgruppen-Bilder
Prozessgruppen-Ladeeinrichtung
Prozessgruppen-Tabelle
Prozess-Verbindung
Prozess-Verbindung
Prozess-Zustand
Prozess-Schalter
Prozess-Synchronisation
Das ist eine Datenstruktur (durch Hardware festgelegt und auswertbar), die
diejenige Information enthält, die zur •Änga^be des Zustande eines Prozesses
zu irgendeinem bestimmten Zeitpunkt benötigt wird.
Das ist ein verbundener Satz von Prozessen, und zwar üblicherweise
solcher Prozesse, die für die Durchführung eines einzigen Job-Schrittes erforderlich sind.
Das ist derjenige Teil der statischen Verbindungseinrichtung, dessen Maßnahmen
zu dem verbundenen Modul führen.
Das ist eine Betriebssystem-Einrichtung, die Endlösungen in einem verbundenen
Modul hervorruft, um eine ausführbare Prozessgruppe zu bilden, die dann in den Speicher geladen wird und deren
Ausführung dann begonnen wird.
Siehe P-Tabelle
Ein Eintrag in eine Bereitschaftsprozessoder wartende Prozess-Schlange
Das ist der dynamische Zustand eines Zentraleinheits-Prozesses, zum Beispiel Laufen, Bereit, Warten oder Unterbrochen,
Das ist die Hardware-Funktion, die einen Prozess aus dem zentralen Prozessor trennt und einem anderen Prozessor zuordnet.
Das sind diejenigen Funktionen, die eine Koordinierung der asynchronen
Aktivität unter den Prozessen bewirken.
509826/0758
Prozessor
Programm
Programmausführung
Schutz
P-Tabelle
Diese Punktionen umfassen im allgemeinen Semaphore und die P- und V-Operationen.
Das ist eine Einheit, die im Stande ist, Daten aufzunehmen, zu manipulieren, Ergebnisse
abzugeben und deren Operationsfolge in Abhängigkeit von gespeicherten Programmen zu steuern: Kurz für zentralen
Prozessor, generell für zentralenProzessor, peripheren Prozessor oder Hardware/Software-Prozessor.
Das ist die Spezifikation der Prozedur und der zugehörigen Information, die
zur Lösung eines Problems erforderlich ist, das heisss die geordnete Sammlung von Befehlen, die durch den Rechner
ausgeführt werden und die auf Daten hin einen Anwender-Job oder eine gewisse
Phase dieses Jobs ausführen. Das ist die Aktivität eines Prozesses in Übereinstimmung mit der Programmspezifikation.
Das ist die durch Hardware und Software gestärkte Funktion, durch die verhindert
ist, dass sich Prozesse gegenseitig stören oder den Adressenraum in einer nicht erlaubten Weise teilen.
Das ist die durch Hardware festgelegte Datenstruktur, die Einträge enthält, welche jeweils auf den Ursprung eines
Prozess-Steuerblockes zeigen. Der P-Tabellen-Eintragpunkt für den gesamten Satz der Prozess-Steuerblöcke umfasst
eine Prozessgruppe zu irgendeinem gegebenen Zeitpunkt. Ausserdem wird eine
Prozessgruppen-Tabelle aufgerufen.
509826/0758
Q/PR/RDY
Schlange
Schlange
Bereitschaftszustand
Relative Adresse
Neufestlegung
Rückkehr
Schlange von Bereitschaftsprozessen, das heisst eine BereitSchaftsschlange.
Eine geordnete Liste von Einheiten, die eine Information, einen Prozess oder eine Verfügbarkeit erwarten.
Das ist ein Prozess-Zustand, in welchem kein Prozessor zugeordnet ist, bei dem
jedoch sämtliche notwendigen Hilfsquellen, mit Ausnahme eines Prozessors, für den
Übergang in den Laufzustand verfügbar sind.
Das ist die Vergrösserungs/Verkleinerungs-Stelle gewisser Objekte relativ zueinander.
Das ist die Bewegung eines Segments von einer Stelle bzw. von einem Speicherplatz
in dem Hauptspeicher zu einem anderen Speicherplatz, einschliesslich
der Einstellung sämtlicher erforderlicher Bezugnahmen auf den vorhergehenden Speicherplatz.
Das sind die Punktion und die Operation, die zur Wiederaufnahme der Maßnahme einer Prozedur an der Stelle erforderlich
sind, die unmittelbar auf die Stelle folgt, an der in eine gewisse andere Prozedur eingetreten worden ist.
Das ist ein Schutz-Attribut eines Segmentes, welches den Lese-, Schreibund
Ausführungszugriff eines Prozesses auf das betreffende Segment beschränkt. Es ist eine Privileg-Ebene eines Prozesses
für das Lesen, Schreiben oder Ausführen.
509826/07 5-8
Einspeichern Ausspeichern Laufzustand
Hilfsspeicher
Folgeverarbeitung
Technisch/wissenschaftliche Register
Segment
Segmentierung
Segmentierung
Segmentbasis Das ist die Ausführung der Operation, die erforderlich ist, um einem neuen
Prozess die Steuerung eines Prozessors zu geben.
Das ist die Ausführung der Operationen, die erforderlich sind, um die Steuerung
eines Prozessors von einem Prozess wegzunehmen.
Das ist der dynamische Zustand eines ausführenden Prozesses (der mit einer
Zentraleinheit verbunden ist). Das sind 256 Speicherplätze in ALU für die Speicherung einer Zentraleinheits
steuerinformationι der betreffende Speicher wird auch als örtliche Speichereinheit
bezeichnet.
Das ist die Bestimmung der Folge von Operationen.
Das ist die Bestimmung der Folge von Operationen.
Bas ist ein 64-Bit-Register, das bei der Manipulation von binären Gleitkomma-Zahlen
ν erwendet wird. Bei der vorliegenden Erfindung sind vier technischwissenschaftliche Register vorgesehen,
wenn das System die wissenschaftliche Angabe besitzt.
Ein als ein Einheit behandelter abhängiger Hauptspeicherraum.
Das ist die Ausnutzung einer Unterteilung des Hauptspeichers in Verknüpfungsgruppen,
die Segmente genannt werden, anstatt in einen einzigen linearen Speicher. Das ist der gültige Ursprung des Segments.
Dies ist ein Feld der Felder in einem Segmentdeskriptorwort.
50982 6/0758
Segment-De skriptor
Segmentierte Adresse Segmentnummer
Relative Segment-Adresse
Segmenttabelle
Segment-Tabellen-Eintrag
Segmenttabellen-Wort
Das ist ein Eintrag in eine Segmenttabelle, der die Eigenschaft eines
Segments angibt oder auf einen Segment-Deskriptor zeigt.
Siehe effektive Adresse
Das ist die Identifizierung eines bestimmten Segments, bestehend aus einer Segmenttabellen-Nummer (Auswahl einer Tabelle der Segmenttabellen des Prozesses )und aus einem Segmenttabelleneintrag der gewählten Tabelle.
Siehe effektive Adresse
Das ist die Identifizierung eines bestimmten Segments, bestehend aus einer Segmenttabellen-Nummer (Auswahl einer Tabelle der Segmenttabellen des Prozesses )und aus einem Segmenttabelleneintrag der gewählten Tabelle.
Das ist während der Adressenbildung der Endwert, der zu der Segmentbasis
hinzuzuaddieren ist, um die absolute Adresse zu erhalten.
Das ist eine Tabelle, die Segment-Deskriptoren enthält, welche zur Bildung der Adressierbarkeit eines Prozesses auf seine Segmente benutzt werden . Die Sammlung der Segment-Tabellen eines Prozesses definiert den Adressenraum für den betreffenden Prozess.
Das ist eine Tabelle, die Segment-Deskriptoren enthält, welche zur Bildung der Adressierbarkeit eines Prozesses auf seine Segmente benutzt werden . Die Sammlung der Segment-Tabellen eines Prozesses definiert den Adressenraum für den betreffenden Prozess.
Das ist ein Posten in einer Segment-Tabelle. Jeder Segmenttabellen-Eintrag
ist ein Segment-Deskriptor.
Das ist ein Eintrag in ein Segmenttabellenwortfeld, der auf die Segment-Tabellen
eines Prozesses hinzeigt. Auf das betreffende Feld zeigt ein Wort von zwei Adressenraumworten in dem
Prozess-Steuerblock.
509826/0758
Semaphor
Semaphorblock
Stapelspeicher
Stapelspeicher
Stapelspeicher-Aktivbereich
Stapelspeicher-Basisworte
Stapelspeicher-Rahmen
Das sind die zur Steuerung der Nachrichtenverbindung
zwischen Prozessen benutzten Datenstrukturen. Das ist ein Datenblock, der lediglich
Semaphordeskriptor-Erläuterungen enthält. Das ist ein Mechanismus, der Daten aufnimmt,
speichert und eine Wiederauffindung dieser Daten auf der Grundlage ermöglicht, dass die letzten eiijpgebenen
Daten die zuerst ausgegebenen Daten sind. Er besteht aus einer Anzajil von abhängigen
Teilen, die als Stapelspeicherrahmen bezeichnet sind.
Das ist der Teil des gebräuchlichen Stapelspeicherrahmens, der einen Zeiger
auf den SicherStellungsbereich, den Abruf-Befehlszähler, den Parameter-Raum
und auf örtliche Variable enthält. Die Daten des üblichen Rahmens sind,
kurz gesagt, höchstwahrscheinlich brauchbar für die Ausführung der aufgerufenen
Prozedur.
Das ist eine Gruppe von drei Worten in einem Prozess-Steuerblock, der die
segmentierte Adresse der Stapelspeicher-Segmente für die Ringe 0, 1 und 2 enthält,
die dem Prozess zugeordnet sind.
Das ist ein abhängiger Teil des Stapelspeichersegments, der die Daten festhält,
welche für einen einzigen Prozedur-Aufruf gespeichert sind.
509826/0758
Stapelspeicher-Operationen Das sind Stapelspeicher-Operationen
und plötzlich auftauchende Speicher-Operationen sowie die Wiederauffindung
von Informationen für bzw. aus dem Stapelspeicher. In der Praxis wird eine Manipulation der Zeiger benutzt, um
eine Bezugnahme auf die in dem Stapelspeicher gespeicherte Information zu bewirken.
Stapelspeicher-Überlauf
Stapelspeicher-Register
Stapelspeicher-Segment
Stapelspeicher-Segment
Das ist die Maßnahme des Versuchs, mehr
Information in dem Stapelspeicher zu speichern|als der verfügbare Speicherraum festzuhalten vermag. Dies wird
durch Hardware ermittelt.
Siehe T-Register
Statische Verbindung
Das ist das Segment eines Prozesses, das dessen Stapelspeicher enthält.
Das ist ein Zwischenritt zwischen dem Umsetzen einer QueLlen-Prozedur und dem
Ausführen der Gegenstandsform der betreffenden Prozedur; die Verbindung
löst externe Bezugnahmen auf, die zu und von der betreffenden Prozedur
hergestellt worden sind. Das ist ein 8-Bit-Register, welches den Zustand der gerade ausgeführten
Prozedur angibt.
Wechsel bzw. Übergang Das ist die Freigabe des Hauptspeicherraums,
der von einem Segment eingenommen wird, durch Ausschreiben des Segments
in einen Sekundärspeicher. Das eigentliche Einschreiben in den Sekundärspeicher
Zustands-Register
509826/0 758
Synchroni sation
Systembasis
Aufgaben
T-Register
Einheitsaufzeichnungs-Steuer- einrichtung
Anwenderprozess-Gruppe
Frei-Anzeigeeinrichtung
kann unterdrückt werden, wenn das Segment seit dem letzten Zeitpunkt, zu dem
es eingelesen worden ist, nicht modifiziert worden ist.
Das ist eine feste zeitliche Beziehung; es erfolgt eine synchronisierte Ausführung
von zwei oder mehr Prozessen. Ein festliegender Bereich in dem Hauptspeicher, der als Grundlage für sämtliche
Informationsstrukturen wirkt. Das ist die kleinste Einheit der durch den Benutzer definierten Arbeit,umfassend
lediglich einen einzigen Strom von nicht gleichzeitigen Befehlen. Das ist ein für Software verfügbares
Hardware-Register, welches die segmentierte Adresse der Oberseite des Prozedur-Stapelspeichers
enthält.
Das sind die Elemente des peripheren Untersystems, das mit den Einheitsauf
Zeichnungseinrichtungen verknüpft ist, wie mit der Karteneinrichtung, der Papierlochstreifeneinrichtung und
Zeilendruckern.
Das ist die interne Darstellung irgendeines Job-Schrittes, und zwar im Unterschied
zu einer System-Prozessgruppe, die irgendeinen Job unabhängig ausgibt.
Das ist die Hardware-Struktur, die anzeigt, dass der Prozess, der die
Steuerung von CP hatte, sich selbst unterbrochen hat, was bedeutet, dass
509826/0 7 58
Virtueller Speicher
V-Operation
kein CJP in der Zentraleinheit vorhanden ist. Öie betreffende Einrichtung
ist in dem Hilfsregister
von ALU untergebracht.
Das ist ein Adressierungskonzept, welches einem Programmierer ermöglicht, ohne
Bezug auf die physikalische Speichergrösse zu kodieren. Die virtuelle Speicherleitung leitet automatisch
den Austausch von Segmenten zwischen dem Hauptspeicher und dem Sekundärspeicher.
Das ist ein Maschinenbefehl, der für die Zwischenprozess-Signalisierung des Abschlusses eines Ereignisses vorgesehen
ist. Eine V-Operation arbeitet auf ein gekennzeichnetes Semaphor hin.
ACU ALU AS
ASW BAR BCD BR
CCE CCU CMRN CCW CET CIA CJP
Adressensteuereinheit
Rechen- und Verknüpfungseinheit Adressensilbe Adre s senraumwort
Grenzadress-Register Binär kodierter Dezimalwert
Basisregister Kanalbefehlseintrag
KanalSteuereinheit Die maximale Ringnummer des Aufrufs
Kanalbefehlswort Eintragzeit des gegenwärtigen Zustande
Steuerspeicher-Schnittstellen-Adapter Gerade ausgeführter Prozess
826/0758
CPU CU CSU
DMU DA EAR EXW GR GTW IC IFU I/O
IOC IPQW IR ITBB ITS
JCL JTW LCT LIFO LSU MBZ MOS MAXR
MSC MTC Zentraleinheit Umsetzeinheit Steuerspeichereinheit Verschiebung bzw. Versetzung
Daten-Leiteinheit Einrichtungsadapter Effektiver Adressenring Ausnahmewort Allgemeines Register
G-Tabellen-Wort Befehlszähler Befehlsabholeinheit Eingabe/Ausgabe
Eingabe/Ausgabe-Steuereinrichtung Internes Prozess-Schlangenwort Index-Regi ster
Indirekt zum Basis-Register Indirekt zum Segment Job
Job-Steuersprache J-Tabellenwort Verknüpfungskanaltabelle
Letzter herein, erster heraus örtlicher Speicher oder Hilfsspeicher
Muss Null sein Metalloxfdhdbleiter Maximale Ringnummer, bei der eine
Prozedur MAXR ausführen kann, findet sich in dem Segment-Deskriptor von
Massenspeicher-Steuereinrichtung Magnetband-Steuereinrichtung
509826/0 758
NFS NPRN NJP
fee PCT PCU PL/I PMW Q/PR/RDY
RD RHU RPW RSU RTA RTO SBW SEG SZW SEG-
EP
SR SRA SIE STN STR STW STWA
Zustand ohne Funktion Neue Prozess-Ringnummer Neuer Prozess, der an die Stelle des
gerade ausführenden Prozesses tritt Prozess-Steuerblock Physikalische Kanaltabelle
Periphere Steuereinheit Programmierungsspräche/Eins
Prο zes shauptwort
Schlange von Bereitschaftsprozessen Lesering
Für Hardwaregebrauch reserviert Laufendes Prozesswort
Reserviert für Software-Gebrauch Bereitschaftszeit-Berechnung Rest-Zeitsperre Stapelspeicher-Basiswort
S egmentnummer
Stapelspeicherwort
Stapelspeicherwort
Das Segment, welches den Eintrapunkt enthält, wie er in dem Prozedor-Deskriptor
gefunden wird.
Das Segment, welches den Prozedur-Deskriptor enthält. Technisch-wissenschaftliches Register
Relative Segmentadresse Segmenttabelleneintrag Segmenttabellennummer
Zustandsregister Segmenttabellenwort Segmenttabellen-Wortfeld T-Register (Stapelspeicher-Register
509826/0758
TIRC Einheitsauf zeichnungs-Steuereinrichtung
WR SchreitHRing
WTA Wartezeit-Berechnung
509826/0 758
Claims (1)
- PatentansprücheDatenverarbeitungssystem, dadurch gekennzeichnet,a) dass eine Zentraleinheit (104) für die Ausführung von Befehlen in einem Maschinenbetrieb vorgesehen ist,b) dass mit der Zentraleinheit (104) eine Emulations-Einheit (112) verbunden ist, die für die Ausführung von Befehlen eines Prozesses in einem Nicht-Maschinenbetrieb dient, derart, dass die Operation einer weiteren Zentraleinheit emuliert wird,c) dass erste Anzeigeeinrichtungen vorgesehen sind, die eine Anzeige darüber liefern, ob die Emulationseinheit, die die genannte andere Zentraleinheit emuliert, anzeigt, dass sie. im Wartezustand ist, injwelchem keine weitere Emulationseinheitsverarbeitung fortsetzbar ist, undd) dass Preigabeeinrichtungen vorgesehen sind, die eine weitere Verarbeitung im Maschinenbetrieb der Zentraleinheit ermöglichen, während sich die betreffende Emulationseinheit im Wartezustand befindet.2, System nach Anspruch 1, dadurch gekennzeichnet, dass Einrichtungen vorgesehen sind, die den Operator der Zentraleinheit bezüglich des Wartezustands in bestimmten Zeitintervallen informieren.3· System nach Anspruch 1 oder 2, dadurch gekennzeichnet,a) dass zweite Anzeigeeinrichtungen vorgesehen sind, die eine Anzeige darüber liefern, ob eine unerledigte Unterbrechung vorhanden ist,b) dass dritte Anzeigeeinrichtungen vorhanden sind, die eine Anzeige darüber liefern, ob,die Verarbeitung der unerledigten Unterbrechung zulässig ist, undc) dass Einrichtungen vorgesehen sind, die in Abhängigkeit509 826/0758von der zweiten Anzeigeeinrichtung und der dritten Anzeigeeinrichtung die Ausführung in dem Nicht-Maschinenbetrieb in dem EaIl wieder fortzusetzen gestatten, dass die genannte Unterbrechung noch nicht erledigt ist und zulässig ist.System nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet,a) dass ein einen harten Wartezustand anzeigendes Kennzeichen vorgesehen ist, welches eine Anzeige darüber liefert, dass die emulierte Zentraleinheit gerade nicht emulierbar ist,b) dass Anzeigeeinrichtungen vorgesehen sind, die eine Anzeige in dem Pail liefern, dass Unterbrechungen zulässig sind, undc) dass Einstelleinrichtungen vorgesehen sind, die das den harten Wartezustand betreffende Kennzeichen in dem JFaIl einstellen, dass keine Unterbrechungen zulässig sind.Datenverarbeitungssystem, insbesondere nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet,a) dass eine Zentraleinheit für die Ausführung von Befehlen in einem Maschinencodebetrieb vorgesehen ist,b) dass mit der Zentraleinheit eine Emulationseinheit verbunden ist, die Befehle in einem Nicht-Maschinencodebetrieb auszuführen gestattet, derart, dass die Operation einer weiteren Zentraleinheit emuliert wird,c) dass erste Anzeigeeinrichtungen vorgesehen sind, die eine Anzeige darüberh-iefern, ob die durch die betreffende Emulationseinheit emulierte Zentraleinheit im Wartezustand ist,509826/0758in demkeine weitere Emulationseinheitsverarbeitung fortsetzbar ist,d) dass zweite Anzeigeeinrichtungen vorgesehen sind, die eine Anzeige darüber liefern, dass eine unerledigte Unterbrechung vorhanden ist,e) dass dritte Anzeigeeinrichtungen vorgesehen sind, die eine Anzeige darüber liefern, ob die unerledigte Unterbrechung zulässig ist,f) dass Ereigabeeinrichtungen vorgesehen sind, die eine weitere Verarbeitung in dem Maschinencodebetrieb der Zentraleinheit freigeben, während die emulierte Zentraleinheit im Wartezustand ist, undg) dass Einrichtungen vorgesehen sind, die in Abhängigkeit von der zweiten Anzeigeeinrichtung und der dritten Anzeigeeinrichtung eine Ausführung in dem Nicht-Maschinencodebetrieb in dem I&ll wieder aufzunehmen gestatten, dass die betreffende Unterbrechung noch nicht erledigt und zulässig ist.6· System nach Anspruch 5» dadurch gekennzeichnet,a) dass vierte Anzeigeeinrichtungen vorgesehen sind, die die Zeitdauer der betreffenden Wartezustandsbedingung anzeigen,undb) dass Einrichtungen vorgesehen sind, die in Abhängigkeit von den vierten Anzeigeeinrichtungen den Operator der Zentraleinheit über die Wartezustandsbedingung in bestimmten Zeitintervallen informieren,7. System nach Anspruch 5 oder 6, dadurch gekennzeichnet, dass die zweiten Anzeigeeinrichtungena) ein Unterbrechungs-Kennzeichenwort, welches eine Vielzahl von Stellen umfasst, undb) eine Verarbeitungseinrichtung enthalten, die die Unterbrechungen derart zu verarbeiten gestattet, dass zumindest eine noch nicht erledigte Unterbrechung an einer Stelle des Unterbrechungs-Eennzeichenwortes angezeigt wird.509826/07588. System nach Anspruch 7, dadurch gekennzeichnet , dass die Verarbeitungseinrichtung folgende Einrichtungen enthält:a) 3ine Aufnahmeeinrichtung für die Aufnahme einer Viel" zahl von ersten Unterbrechungen, die Eingabe- oder Ausgabeereignisse anzeigen,b) eine Aufnahmeeinrichtung für die Aufnahme einer zweiten Unterbrechung,c) eine Semaphor-Einrichtung für die Speicherung von Nachrichten, enthaltend den Ursprung der ersten und zweiten Unterbrechungen,d) eine Dekodiereinrichtung für die Dekodierung der Nachrichten, unde) eine fünfte Anzeigeeinrichtung für die Anzeige einer Unterbrechung des ersten und zweiten Typs in dem Unterbrechungö-Kennzeichenwort, und zwar in dem EaIl, dass die erste und/oder zweite Unterbrechung Nachrichten enthält, die anzeigen, dass die betreffenden Unterbrechungen der Verarbeitung in der Emulationseinheit zugeordnet oder Ergebnis dieser Verarbeitung sind.9· System nach Anspruch 8, dadurch gekennzeichnet,a) dass eine Generatoreinrichtung vorgesehen ist, die die zweite Unterbrechung auf eine Operator-Anforderung hin oder auf die Zeitsperre eines bestimmten Zeitintervalls hin zu erzeugen gestattet, undb) dass die Stellen in dem Unterbrechungs-Kennzeichenwort jeweils Informationsbits zu speichern vermögen, deren jedes in einem ersten Binärzustand eine unerledigte Unterbrechung anzeigt, wobei eine Vielzahl dieser Informationsbits kennzeichnend ist für die Vielzahl von ersten Unterbrechungen, und wobei zumindest eines dieser Informationsbits kennzeichnend509826/07582453675ist für die zweite Unterbrechung.10. System nach Anspruch 8, dadurch gekennzeichnet, dassdie dritte Anzeigeeinrichtung folgende Einrichtungen aufweist:a) Eine System-Maske mit einer Vielzahl von Stellen, die der Anzahl von Stellen in dem Unterbrechungs-Kennzeichenwort entsprechen,b) eine Vergleichseinrichtung, die entsprechend numerierte Stellen in der System-Maske und in dem Unterbrechungskennzeichenwort vergleicht, undc) eine Generatoreinrichtung, die ein noch nicht erledigtes zulässiges Unterbrechungs-Signa^ in dem Fall erzeugt, dass entsprechend numerierte Stellen ähnliche Binärzustände aufweisen und dass die fünfte Anzeigeeinrichtung eine Unterbrechung des ersten und/oder zweiten Typs anzeigt.11. System nach Anspruch 10, dadurch gekennzeichnet,a) dass ein einen harten Wartezustand betreffendes Kennzeichen abgebbar ist, welches anzeigt, dass die emulierte Zentraleinheit gerade nicht emulierbar ist, undb) dass Setzeinrichtungen vorgesehen sind, die das den harten Wartezustand betreffende Kennzeichen in dem Pail zu setzen gestatten, dass sämtliche Stellen in der System-Maske das Vorliegen eines zweiten Binärzustands anzeigen.12. System nach Anspruch 10, dadurch gekennzeichnet, dass durch das Vorliegen eines ersten Binärzustands an den entsprechend numerierten Stellen des Unterbrechungs-Kennzeichenwortes und der System-Maske eine noch nicht erledigte, zulässige Unterbrechung angezeigt ist und dass durch das Vorliegen eines zweiten Binärzustands50 9 8 26/0758an einer der entsprechend numerierten Stellen das Vorliegen einer nicht erledigten zulässigen Unterbrechung angezeigt ist,13. System nach Anspruch 10, dadurch gekennzeichnet,a) dass ein Zähler vorgesehen ist, der eine Anzeige darüber liefert, ob irgendwelche Nachrichten in den Semaphor-Einrichtungen vorhanden sind, undb) dass Einrichtungen vorgesehen sind, die den Inhalt des Zählers jeweils dann erhöhen, wenn eine Nachricht aus der Semaphor-Einrichtung abgeführt ist, wobei durch eine Null-Zählerstellung des betreffenden Zählers angezeigt wird, dass keine Nachrichten in der Semaphor-Einrichtung vorhanden sind,14. System nach Anspruch 10, dadurch gekennzeichnet,a) dass ein mit einem ersten Programm verbundenes Programmzustandswort vorgesehen ist, welches die System-Maske und die erste Anzeigeeinrichtung enthält, welche ein Wartezustandsbit für die Anzeige des Wartezustands in dem Fall enthält, dass das betreffende Wartezustandsbit sich in einem asten Binärzustand befindet, undb) dass Einrichtungen vorgesehen sind, die auf den ersten Binärzustand des Wartezustandsbits hin und auf die Anzeige einer unerledigten, zulässigen Unterbrechung für die Ausführung eines weiteren Programms anzusprechen vermögen·15. Datenverarbeitungssystem, insbesondere nach einem der Ansprüche 1 bis 14, dadurch gekennzeichnet,a) dass eine Zentraleinheit (104) für die Ausführung von Befehlen in änem Maschinencodebetrieb vorgesehen ist,509826/0758b) dass mit der betreffenden Zentraleinheit (104) eine Emulationseinheit (112) verbunden ist, die Befehle in einem Nicht-Maschinencodebetrieb auszuführen gestattet, derart, dass die Operation einer weiteren Zentraleinheit emulierbar ist,c) dass erste Anzeigeeinrichtungen vorgesehen sind, die eine Anzeige darüber liefern,' ob die durch die betreffende Emulationseinheit emulierte Zentraleinheit im Wartezustand ist, inweichem keine weitere Emulationseinheitsverarbeitung fortsetzbar ist,d) dass Einrichtungen vorgesehen sind, die den Operator der Zentraleinheit von dem Vorliegen der Wartezustandsbedingung in bestimmten Intervallen zu informieren gestattet, unde) dass diese Einrichtungen einen Intervall-Zeitgeber, einen Wartezustands-Zähler, eine Einrichtung zur Änderung des Wertes des Zeitgebers mit einer bestimmten Frequenz, eine Einrichtung zur Erzeugung eines ersten Signals jeweils dann, wenn der Zeitgeberwert sich um einen ersten Wert ändert, eine auf das erste Signal ansprechende Einrichtung zur Änderung des Wertes des Zählers um einen zweiten Wert, eine den Wert des Zählers mit einem dritten Wert vergleichende Vergleichseinrichtung und eine Einrichtung enthalten, die in Abhängigkeit von dieser Vergleichseinrichtung ein Wartezustands-Eingäbesignal an den Operator jeweils dann abgibt, wenn der betreffende Zählerwert gleich dem dritten Wert oder grosser als dieser ist.16. System nach Anspruch 15, dadurch gekennzeichnet. dass der erste Wert gleich dem zweiten Wert ist.5 0 9826/0 75817. System nach Anspruch 15 oder 16, dadurch gekennzeichnet, dass die den Operator informierende^ Einrichtungen folgende Einrichtungen enthalten:a) Einen Akkumulator, der die Gesamtzeit des Wartezustands festhält,b) eine Einrichtung, die in Abhängigkeit von dem Zähler den Wert des Akkumulators im Verhältnis zur Änderung des Wertes des Zählers ändert, und zwar jeweils dann, wenn der Zählerwert um den zweiten Wert geändert wird, undc) eine Rückstelleinrichtung, die den Wert in dem Zähler » jeweils dann zurückstellt, wenn das Eingabesignal abgegeben ist.18. System nach Anspruch 17, dadurch gekennzeichnet, dass die den Operator informierenden Einrichtungen ferner eine Rückstelleinrichtung enthalten, welche die Werte in dem Zähler und in dem Akkumulator jeweils dann zurückstellt, wenn die Emulationseinheit aus dem Wartezustand hesaustritt.509826/0758
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US425661A US3891974A (en) | 1973-12-17 | 1973-12-17 | Data processing system having emulation capability for providing wait state simulation function |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2459675A1 true DE2459675A1 (de) | 1975-06-26 |
Family
ID=23687503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19742459675 Ceased DE2459675A1 (de) | 1973-12-17 | 1974-12-17 | Datenverarbeitungssystem |
Country Status (6)
Country | Link |
---|---|
US (1) | US3891974A (de) |
JP (1) | JPS5939785B2 (de) |
CA (1) | CA1022684A (de) |
DE (1) | DE2459675A1 (de) |
FR (1) | FR2254832B1 (de) |
GB (1) | GB1464650A (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2828544A1 (de) * | 1977-07-08 | 1979-01-25 | Ibm | Anordnung zur behandlung von aufgaben in einem datenverarbeitungssystem |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3944985A (en) * | 1973-10-19 | 1976-03-16 | Texas Instruments Incorporated | Workspace addressing system |
US4300192A (en) * | 1974-04-18 | 1981-11-10 | Honeywell Information Systems Inc. | Method and means for storing and accessing information in a shared access multiprogrammed data processing system |
US4369494A (en) * | 1974-12-09 | 1983-01-18 | Compagnie Honeywell Bull | Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system |
US4025901A (en) * | 1975-06-19 | 1977-05-24 | Honeywell Information Systems, Inc. | Database instruction find owner |
US4042912A (en) * | 1975-06-19 | 1977-08-16 | Honeywell Information Systems Inc. | Database set condition test instruction |
US4024508A (en) * | 1975-06-19 | 1977-05-17 | Honeywell Information Systems, Inc. | Database instruction find serial |
US4044334A (en) * | 1975-06-19 | 1977-08-23 | Honeywell Information Systems, Inc. | Database instruction unload |
US4205371A (en) * | 1975-11-03 | 1980-05-27 | Honeywell Information Systems Inc. | Data base conversion system |
IT1059493B (it) * | 1976-04-22 | 1982-05-31 | Olivetti & Co Spa | Dispositivo per cambiare l ambiente di lavoro di un calcolatore |
US4042914A (en) * | 1976-05-17 | 1977-08-16 | Honeywell Information Systems Inc. | Microprogrammed control of foreign processor control functions |
US4103326A (en) * | 1977-02-28 | 1978-07-25 | Xerox Corporation | Time-slicing method and apparatus for disk drive |
JPS5710807A (en) * | 1980-06-23 | 1982-01-20 | Toshiba Corp | Output control device |
US4545012A (en) * | 1981-05-22 | 1985-10-01 | Data General Corporation | Access control system for use in a digital computer system with object-based addressing and call and return operations |
US4509122A (en) * | 1982-11-18 | 1985-04-02 | International Business Machines Corporation | Method for controlling the file transfer capability of an interactive text processing system that is emulating a host processing system terminal |
US4638423A (en) * | 1985-03-06 | 1987-01-20 | Motorola, Inc. | Emulating computer |
GB2173326B (en) * | 1985-03-18 | 1989-06-21 | Nitsuko Ltd | Data transmission system |
US4972338A (en) * | 1985-06-13 | 1990-11-20 | Intel Corporation | Memory management for microprocessor system |
US4972317A (en) * | 1986-10-06 | 1990-11-20 | International Business Machines Corp. | Microprocessor implemented data processing system capable of emulating execution of special instructions not within the established microprocessor instruction set by switching access from a main store portion of a memory |
US5218691A (en) | 1988-07-26 | 1993-06-08 | Disk Emulation Systems, Inc. | Disk emulation system |
US5070474A (en) * | 1988-07-26 | 1991-12-03 | Disk Emulation Systems, Inc. | Disk emulation system |
US5202976A (en) * | 1988-12-30 | 1993-04-13 | Hewlett-Packard Company | Method and apparatus for coordinating measurement activity upon a plurality of emulators |
JPH02115978U (de) * | 1989-03-02 | 1990-09-17 | ||
EP0453160A3 (en) * | 1990-04-20 | 1993-09-15 | Digital Equipment Corporation | A method and apparatus for analyzing the flow of data through a complex information exchange system |
JPH07334372A (ja) * | 1993-12-24 | 1995-12-22 | Seiko Epson Corp | エミュレートシステム及びエミュレート方法 |
US5553271A (en) * | 1994-07-11 | 1996-09-03 | Hilgraeve Incorporated | Auto-detect system and method for data communication |
US5758140A (en) * | 1996-01-25 | 1998-05-26 | International Business Machines Corporation | Method and system for emulating instructions by performing an operation directly using special-purpose register contents |
US5911059A (en) * | 1996-12-18 | 1999-06-08 | Applied Microsystems, Inc. | Method and apparatus for testing software |
US5930495A (en) * | 1997-01-13 | 1999-07-27 | International Business Machines Corporation | Method and system for processing a first instruction in a first processing environment in response to intiating processing of a second instruction in a emulation environment |
US20010039564A1 (en) * | 1997-10-20 | 2001-11-08 | Victor Hahn | Log on personal computer |
US6449709B1 (en) * | 1998-06-02 | 2002-09-10 | Adaptec, Inc. | Fast stack save and restore system and method |
US20060117274A1 (en) * | 1998-08-31 | 2006-06-01 | Tseng Ping-Sheng | Behavior processor system and method |
US6081890A (en) * | 1998-11-30 | 2000-06-27 | Intel Corporation | Method of communication between firmware written for different instruction set architectures |
US6978312B2 (en) * | 1998-12-18 | 2005-12-20 | Microsoft Corporation | Adaptive flow control protocol |
US6820051B1 (en) * | 1999-02-19 | 2004-11-16 | Texas Instruments Incorporated | Software emulation monitor employed with hardware suspend mode |
US6886111B1 (en) | 2000-03-08 | 2005-04-26 | International Business Machines Corporation | Method and data processing system for software testing of a device driver |
US7251695B2 (en) * | 2000-08-17 | 2007-07-31 | Aspen Technology, Inc. | Computer network communication method and apparatus |
US6795879B2 (en) * | 2001-08-08 | 2004-09-21 | Texas Instruments Incorporated | Apparatus and method for wait state analysis in a digital signal processing system |
US7327673B1 (en) * | 2001-08-31 | 2008-02-05 | At&T Delaware Intellectual Property, Inc. | Asymmetric digital subscriber line provision flow control on digital subscriber line access multiplexer switches |
JP2003162433A (ja) * | 2001-11-27 | 2003-06-06 | Fujitsu Ltd | メモリシステム |
US7107577B2 (en) * | 2002-11-20 | 2006-09-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Software architecture for controlling an apparatus with one or more hardware units |
FR2854263A1 (fr) * | 2003-04-24 | 2004-10-29 | St Microelectronics Sa | Procede d'execution de taches concurrentes par un sous-systeme gere par un processeur central |
US20050071823A1 (en) * | 2003-09-29 | 2005-03-31 | Xiaodong Lin | Apparatus and method for simulating segmented addressing on a flat memory model architecture |
US7421705B2 (en) * | 2003-10-30 | 2008-09-02 | Sprint Communications Company L.P. | System and method for asynchronous processing in COBOL |
US8548429B2 (en) | 2004-03-08 | 2013-10-01 | Rafi Nehushtan | Cellular device security apparatus and method |
US20050289326A1 (en) * | 2004-06-26 | 2005-12-29 | Hong Kong University Of Science & Technology | Packet processor with mild programmability |
US7958436B2 (en) | 2005-12-23 | 2011-06-07 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US8532975B2 (en) * | 2009-06-12 | 2013-09-10 | Cadence Design Systems, Inc. | System and method implementing a simulation acceleration capture buffer |
TWI463320B (zh) * | 2012-11-29 | 2014-12-01 | Mstar Semiconductor Inc | 記憶體存取權限控制方法與相關記憶體管理系統 |
US10261785B2 (en) * | 2017-02-28 | 2019-04-16 | Microsoft Technology Licensing, Llc | Arithmetic lazy flags representation for emulation |
US11360948B2 (en) | 2019-09-27 | 2022-06-14 | Amazon Technologies, Inc. | Inserting owner-specified data processing pipelines into input/output path of object storage service |
US10996961B2 (en) | 2019-09-27 | 2021-05-04 | Amazon Technologies, Inc. | On-demand indexing of data in input path of object storage service |
US11023311B2 (en) * | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | On-demand code execution in input path of data uploaded to storage service in multiple data portions |
US10908927B1 (en) | 2019-09-27 | 2021-02-02 | Amazon Technologies, Inc. | On-demand execution of object filter code in output path of object storage service |
US11386230B2 (en) | 2019-09-27 | 2022-07-12 | Amazon Technologies, Inc. | On-demand code obfuscation of data in input path of object storage service |
US11656892B1 (en) | 2019-09-27 | 2023-05-23 | Amazon Technologies, Inc. | Sequential execution of user-submitted code and native functions |
US11106477B2 (en) | 2019-09-27 | 2021-08-31 | Amazon Technologies, Inc. | Execution of owner-specified code during input/output path to object storage service |
US11394761B1 (en) | 2019-09-27 | 2022-07-19 | Amazon Technologies, Inc. | Execution of user-submitted code on a stream of data |
US11550944B2 (en) | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Code execution environment customization system for object storage service |
US11250007B1 (en) | 2019-09-27 | 2022-02-15 | Amazon Technologies, Inc. | On-demand execution of object combination code in output path of object storage service |
US11055112B2 (en) | 2019-09-27 | 2021-07-06 | Amazon Technologies, Inc. | Inserting executions of owner-specified code into input/output path of object storage service |
US11416628B2 (en) | 2019-09-27 | 2022-08-16 | Amazon Technologies, Inc. | User-specific data manipulation system for object storage service based on user-submitted code |
US11263220B2 (en) | 2019-09-27 | 2022-03-01 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
CN113888842B (zh) * | 2020-07-02 | 2023-03-17 | 上海宝信软件股份有限公司 | 一种铁水脱硫工艺流程实时监测预警系统及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3297999A (en) * | 1963-08-26 | 1967-01-10 | Burroughs Corp | Multi-programming computer |
US3374466A (en) * | 1965-05-10 | 1968-03-19 | Ibm | Data processing system |
US3440612A (en) * | 1966-02-28 | 1969-04-22 | Ibm | Program mode switching circuit |
-
1973
- 1973-12-17 US US425661A patent/US3891974A/en not_active Expired - Lifetime
-
1974
- 1974-12-13 JP JP49142624A patent/JPS5939785B2/ja not_active Expired
- 1974-12-16 CA CA216,105A patent/CA1022684A/en not_active Expired
- 1974-12-16 FR FR7441412A patent/FR2254832B1/fr not_active Expired
- 1974-12-17 DE DE19742459675 patent/DE2459675A1/de not_active Ceased
- 1974-12-17 GB GB5442274A patent/GB1464650A/en not_active Expired
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2828544A1 (de) * | 1977-07-08 | 1979-01-25 | Ibm | Anordnung zur behandlung von aufgaben in einem datenverarbeitungssystem |
Also Published As
Publication number | Publication date |
---|---|
US3891974A (en) | 1975-06-24 |
JPS5093363A (de) | 1975-07-25 |
CA1022684A (en) | 1977-12-13 |
JPS5939785B2 (ja) | 1984-09-26 |
FR2254832B1 (de) | 1978-06-23 |
FR2254832A1 (de) | 1975-07-11 |
GB1464650A (en) | 1977-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2459675A1 (de) | Datenverarbeitungssystem | |
DE2517171A1 (de) | Datenverarbeitungssystem mit erweitertem semaphor-aufbau | |
DE2437200C2 (de) | Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise | |
DE68921775T2 (de) | Prozessorssimulation. | |
DE2718051C3 (de) | Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben | |
DE10085374B4 (de) | Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem | |
DE2846495C2 (de) | Zentraleinheit | |
DE60215007T2 (de) | Multiprozessorsystem und verfahren zum betrieb eines multiprozessorsystems | |
DE3852928T2 (de) | Datenprozessor mit A/D-Umsetzer, um mehrere analoge Eingabekanäle in Digitaldaten umzusetzen. | |
DE2500006A1 (de) | Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE2251876B2 (de) | Elektronische datenverarbeitungsanlage | |
DE2740056A1 (de) | Mulitprozessor-rechnersystem | |
DE2719295A1 (de) | Programmsteuerung | |
DE2459956A1 (de) | Prozessor und diesen verwendendes peripheres verarbeitungssystem | |
EP0333123A2 (de) | Modular strukturiertes ISDN-Kommunikationssystem | |
DE2626703A1 (de) | Intern programmierbares datenverarbeitungssystem | |
DE4011745A1 (de) | Taskverfolgungseinrichtung | |
DE3741850A1 (de) | Ausfuehrungseinheit fuer einen i/o-prozessor | |
DE2316296A1 (de) | Durch mikroprogramme steuerbare verarbeitungseinrichtung | |
DE3228405A1 (de) | Emulator zur erzeugung einer folge von steuersignalen | |
DE2721623A1 (de) | System zur bearbeitung eines zielsystemprogrammes | |
CH629010A5 (de) | Anschlussschaltung fuer eine eingabe/ausgabeschnittstelle in einer datenverarbeitungsanlage. | |
DE1549531A1 (de) | Digitale Rechenanlage | |
DE2617127A1 (de) | Mehrfachprogramm-datenverarbeitungssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8131 | Rejection |