DE2459675A1 - Datenverarbeitungssystem - Google Patents

Datenverarbeitungssystem

Info

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
Application number
DE19742459675
Other languages
English (en)
Inventor
Brent W Coulter
Laurence F Migdalek
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2459675A1 publication Critical patent/DE2459675A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; 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
München, den 17. Dez. 197V
Mein Zeichen: P, 2071
Anmelder; Honeywell Information Systems Ine, 200 Smith Street
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.
Prozessor-Untersystem
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.
B. Eingabe/Ausgabe-Steuereinheit
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.
C. Periphere Untersysteme
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.
D, Speicher-Untersvstem
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.
II. Grundmaschinenstrukturen
In typischer Weise werden drei Grunddaten-Strukturen in dieser Hardware benutzt: Datenformate, für Software ver-
509826/0758
fügbare Register und Befehlsformate.
A. Datenformate
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.
C. Datendarstellung
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.
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.
D. Byte-Adressen
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.
E. Verfügbare Register
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
F. Allgemeine 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.
G. Basisregister
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.
I. Verschiedene Register
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.
J. Befehlsformate
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
A. Job-Schritt und-Aufgabe
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.
C. Prozess-Steuerblock und Systembasis
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.
D. Speicher-Programmunterteilung
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-
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.
F. Prozedur-Aufrufe
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.
A. Prozesszustände
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.
B. Prozess-Zuteilung
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.
C. Prozess-Synchronisation
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.
Prozess-Steuerblockstrukturen
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.
Beispiele der Systembasijs und Prozess-Steuerblock-Anwendung
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,
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.
Zuteilungs-girmenware für die Steuerung von Prozessen
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
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.
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.
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.
Verzeichnis von Ausdrücken
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
Kanalbefehlseintrag
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 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.
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-Schritt
Job-S chritt-Tabelle
Verbundenes Modul
Verbindung
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.
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-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
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
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.
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.
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 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-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
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.
Abkürzungsverzeichnis
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
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)

  1. Patentansprüche
    Datenverarbeitungssystem, 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, und
    d) 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, und
    c) dass Einrichtungen vorgesehen sind, die in Abhängigkeit
    509 826/0758
    von 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, und
    c) 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/0758
    in 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, und
    g) 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,und
    b) 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 Anzeigeeinrichtungen
    a) ein Unterbrechungs-Kennzeichenwort, welches eine Vielzahl von Stellen umfasst, und
    b) 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/0758
    8. 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, und
    e) 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, und
    b) 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 kennzeichnend
    509826/0758
    2453675
    ist für die zweite Unterbrechung.
    10. System nach Anspruch 8, dadurch gekennzeichnet, dass
    die 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, und
    c) 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, und
    b) 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ärzustands
    50 9 8 26/0758
    an 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, und
    b) 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, und
    b) 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/0758
    b) 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, und
    e) 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 758
    17. 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, und
    c) 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
DE19742459675 1973-12-17 1974-12-17 Datenverarbeitungssystem Ceased DE2459675A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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