DE2617127A1 - Mehrfachprogramm-datenverarbeitungssystem - Google Patents

Mehrfachprogramm-datenverarbeitungssystem

Info

Publication number
DE2617127A1
DE2617127A1 DE19762617127 DE2617127A DE2617127A1 DE 2617127 A1 DE2617127 A1 DE 2617127A1 DE 19762617127 DE19762617127 DE 19762617127 DE 2617127 A DE2617127 A DE 2617127A DE 2617127 A1 DE2617127 A1 DE 2617127A1
Authority
DE
Germany
Prior art keywords
address
memory
word
segment
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19762617127
Other languages
English (en)
Inventor
John J Bradley
Benjamin S Franklin
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 DE2617127A1 publication Critical patent/DE2617127A1/de
Withdrawn legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)

Description

5101546 Ge 13. April 1976
HONEYWELL INFORMATION SYSTEMS INC.
200 Smith Street Waltham, Mass., USA
Mehrfachprogramm-DatenverarLeitungssystem
Die Erfindung bezieht sich auf DV-Systeme und dabei insbesondere auf den Informationsaustausch zwischen Hardware und Software in einer Mehrfachprogramm-/Mehrprozeß-Anordnung. Solche Systeme benötigen hierfür einen Informationsaustauschbereich im Hauptspeicher. Die Systembasis befindet sich normalerweise an einer bestimmten Stelle im Hauptspeicher, obwohl dieser Platz bei Verwendung eines Grenzadressregisters BAR geändert oder verschoben werden kann. Bei DV-Systemen hoher Leistung ist es notwendig, Teile der Systembasis in internen Zwischenspeicherregistern abzuspeichern, statt im Hauptspeicher, so daß diese Teile für die das System steuernde Software nicht erkennbar und nicht zugreifbar sind. Möchte die Software bzw. der Programmierer Information in der Systembasis ändern und befindet sich diese Information in internen Zwischenspeicherregistern der Zentraleinheit, zu denen die Software keinen Zugriff hat, so ergibt sich hieraus ein Problem.
INSPBCTED
6098*5/0732
Dieses Problem hat man im Stand der Technik auf zwei verschiedene Weisen zu lösen versucht. Beim ersten Verfahren wird das gesamte System erneut in Gang gesetzt und die Systembasis als Ergebnis eines neuen Ingangsetzungsprozesses mit unterschiedlichen Inhalten geladen. Dieses Verfahren ist sehr zeitraubend und unerwünscht. Eine zweite Methode besteht darin, daß die Software zur Änderung der Systembasis besondere maschinenabhängige Eigenschaften aufweist. Dies bedeutet jedoch, daß die Software auf eine bestimmte Maschine zugeschnitten ist, ein Zustand, welcher ebenfalls vielfach unerwünscht ist.
Die Erfindung sucht folglich nach einem Weg, um Informationen in der Systembasis sowohl im Hauptspeicher, als auch in internen Zwischenspeicherregistern zu ändern, indem die Software Zugriff zur Systembasis im Zwischenspeicher erhält, aber die Systembasis für die Software nicht erkennbar ist, also von ihr nicht ausgelesen werden kann. Die Aufgabe der Erfindung besteht folglich darin, ein verbessertes Verfahren für die Änderung von Informationen in der Systembasis eines DV-Systems zu schaffen.
Diese Aufgabe wird gelöst durch die im Anspruch 1 gekennzeichnete Erfindung. Durch sie erhält man die Möglichkeit mit Hilfe eines modellunabhängigen Befehls in fest programmierter Form (Firmware) bei dessen Durchführung Information in der Systembasis zu ändern und zwar Information, welche sowohl im Hauptspeicher als auch in internen Zwischenspeicherregistern untergebracht ist. Im Prinzip besteht die Erfindung darin, daß die an vom Grenzadressregister BAR bestimmten Speicherplätzen im Hauptspeicher liegende Systembasis in einen neuen Speicherplatz im Hauptspeicher übertragen wird, wobei bestimmte Teile der Information geändert werden. Dies erfolgt in einfacher Weise durch das Betriebssystem. Der Systembasis-Umschaltbefehl überträgt dann die im neuen Speicherplatz befindliche Information der Systembasis, in den vom Adressengrenzregister BAR bestimmten Speicherplatz und außerdem auch denjenigen Teil der Systembasis, der sich im Zwischenspeicher befindet.
609845/0732
Vorteilhafte Weiterbildungen der Erfindung ergeben sich aus den Unteransprüchen. Zur Erläuterung der Erfindung wird nachfolgend auf die Zeichnungen Bezug genommen. Hierin zeigt
Figur 1 ein Blockschaltbild eines Mehrfachprogramm-Systems bei Anwendung der Erfindung; Figur 2 eine schematische Darstellung verschiedener Hardwarestrukturen;
Figur 3 die zugehörige Begriffsliste für die reservierten Speicherbereiche in den Registern gemäß Figur 2; Figur 4 eine schematische Darstellung eines Prozeßsteuerblocks ;
Figur 5 ein schematisches Diagramm eines Systems zum Adressieren eines Prozeßsteuerblocks; Figur 6 eine schematische Darstellung der Systembasis des Rechnersystems gemäß der Erfindung; die Figuren 7A und 7B schematische Darstellungen eines Stapelspeichersegments bzw. eines Stapelspeicherrahmens; Figur 8 schematisch die Darstellung eines Systems zum Adressieren von G-Segmenten und insbesondere der Warteschlange von Prozessen in dem GO-Segment; Figur 9 in auseinandergezogener Darstellung ein GO-Segment, welches die Warteschlange von Prozessen und die Prozeßverbindung veranschaulicht; die Figuren 10a bis 101 Blockdiagramme von Strukturen im Prozeßsteuerblock;
die Figuren 11a bis Hr Blockdiagramme von Strukturen in der Systembasis;
Figur 12 eine schematische Darstellung von Adressierschemata für Benutzer- und Systemsegmente, welche die Systembasis- und Prozeßsteuerblock-Struktüren verwenden; Figur 13 ein schematisches Diagramm der Steuereinheit; die Figuren 14a bis 141 Flußdiagramme der Zuteilereinheit in Form von Firmware;
S098ÄS/0732
Figur 15a eine Struktur äes Systembasis-Umschaltbefehls; und
die Figuren 15b und 15c Flußdiagramme des Systembasis-Umschaltbefehls in Form von Firmware.
Beschreibung eines Ausführungsbeispiels
1. Allgemeines
Die Erfindung arbeitet mit einer Hardware-Anlage/ welche durch ein Hardware/Firmware/Software-Betriebssystem koordiniert wird. In Figur 1 sind das Prozessor-Subsystem 101, das Speicher-Subsystem 102 und ein oder mehrere bis zu 32 Peripherie-Subsysteme 103 wiedergegeben. Das Prozessor-Subsystem enthält eine Zentraleinheit (CPU) 104 und bis zu vier Ein-/Ausgabe-Steuereinheiten (IOC) 105. Jedes periphere Subsystem besteht aus einer Peripherie-Steuereinheit (PCU) 106, einer Anzahl von Geräteadaptern (DA) 107, und bis zu 256 peripheren Ein-/Ausgabe-Geräten 108. Das Speicher-Subsystem 102 besteht aus einem bis vier Halbleiter-Speichermodulen mit je 32 bis 512 Kilobyte Speicherkapazität. Im Prozessor-Subsystem 101 führt die Zentraleinheit 104 die grundlegenden Verarbeitungsoperationen für das System durch und arbeitet mit dem Speicher 102 zusammen. Die Ein/Ausgabe-Steuerung 105 steuert den gesamten Informationsaustausch zwischen dem Speicher-Subsystem 102 und den Peripheriegeräten 106.
809845/0732
A. Zentraleinheit
Die Zentraleinheit umfaßt einen Hauptspeichersynchronisierer 109, einen Pufferspeicher 110 sowie mehrere die Recheneinheit 111 bildende Elemente und wahlweise Emulatoren 112. Der Hauptspeichersynchronisierer 109 verhindert Schwierigkeiten bei der Benutzung des Hauptspeichers durch die Recheneinheiten 111, dem Pufferspeicher 110 und die Ein/Ausgabe-Steuerung 109. Die Synchronisierung erfolgt aufgrund von Prioritäten:Die Ein/Ausgabe-Steuerung hat die höchste Priorität gefolgt von Schreibvorgängen im Speicher (ausgelöst durch die Recheneinheit) und dann gefolgt von
Leseoperationen im Speicher (übergabe in den Pufferspeicher). Die Zentraleinheit enthält ferner das Adressensteuerwerk (ACU) 131,
welches die Hauptspeicheradressierung steuert, sowie den Assoziativspeicher (AS) 132, welcher zur Speicherung zuletzt im Hauptspeicher benutzten Adressen dient. Der Pufferspeicher 110 ist ein reiner Hochgeschwindigkeits-Pufferspeicher, welcher einen ausgewählten Bereich des Hauptspeichers wiedergibt und mit der Recheneinheit im Austausch steht, um die mittlere Speicherzugriffszeit zu verringern. Bei jedem Lesevorgang im Speicher erfolgt ein Zugriff zum Pufferspeicher und zum Hauptspeicher. Wenn sich die
abzurufende Information bereits im Pufferspeicher befindet, wird der Lesevorgang im Hauptspeicher beendet und die Information aus dem Pufferspeicher abgerufen. Andernfalls wird der Hauptspeicher 102 ausgelesen. Jedesmal wenn dies erfolgt, ruft die Zentraleinheit 104 32 Bytes ab, welche die gewünschte Information enthalten. Diese bleibt für eine zukünftige Speicherbezugnahme im Pufferspeicher. Da dieser für Software durchlässig ist, kann das
den Rechner steuernde Programm zu einer gegebenen Zeit nicht feststellen, ob die von ihm verarbeitete Information dem Pufferspeicher oder dem Hauptspeicher entnommen wurde.
6098&S/0732
261712?
Die Recheneinheit 111 erledigt alle Datenverarbeitung und Adressenerzeugung innerhalb der Zentraleinheit. Ein typischer Steuerspeicher 130 innerhalb der Recheneinheit 111 (vergleiche das Buch "Microprogramming: Principles and Practices von Samir S. Husson, Prenticse Hall, Inc.) enthält Firmware, die das System anlaufen läßt, die Zentraleinheit 104 und die Ein/Ausgabe-Steuerung 105 steuert und eine nicht dargestellte Befehlsgruppe dekodiert. Wahlweise kann der Steuerspeicher Gleitkomma-Befehle, Testroutinen, Emulationspakete oder Spezialzweckmerkmale liefern, welche die Möglichkeiten des Prozessor-Subsystems erweitern. Als weitere Option ermöglicht die Zentraleinheit die Emulation von anderen Systemen. Die Emulatoren 112 sind Teile von Firmware oder Software und in manchen Fällen Hardware.
B. Ein/Ausgabe-Steuereinheit
Die Ein/Ausgabe-Steuereinheit 105 des Prozessor-Subsystems bildet den Datenweg zwischen jeglichem peripheren Subsystem 103 und dem Speicher subsystem 1O2. Dieser Weg ermöglichst die Ingangsetzung peripherer Befehle und steuert die sich hieraus ergebende Datenübertragung. Eine Ein/Ausgabe-Steuereinheit kann üblicherweise bis zu 32 im einzelnen nicht dargestellte Kanalsteuereinheiten bedienen.
C. Peripherie-Subsysteme
In einem Peripherie-Subsystem 103 gemäß Figur l ist die Peripherie-Steuereinheit (PCU) 106 ein selbständiger Mikroprogramm-Prozessor, welcher die Belastung der Zentraleinheit 104 dadurch verringert, daß er während der Ein/Ausgabe-Operationen, die Ein/Ausgabe-Geräte 108 steuert. Die Peripherie-Steuereinheit 106 bewerkstelligt dies durch Ausführung von Befehlen in einem Kanalprogramm. Dieses Programm resultiert in arithmetischen, logischen, übertragungs-, Verschiebe-, und Verzweigungsoperationen, welche in der Peripherie-Steuereinheit durchgeführt werden. Es gibt verschiedene Arten von Peripherie-Steuereinheiten entsprechend der Art von Geräten, die gesteuert werden: Zum Beispiel Datensatzeinheit, Massenspeicher (Platte), Magnetband, Informationsübertragung usw.
£09845/0732
Der Geräteadaptor 107 liegt zwischen jeder Peripherie-Steuereinheit und den Geräten, die sie steuert. Jeder Adaptor enthält vorgegebene Firmware und logische Schaltkreise, die zur Durchführung der Nachrichtenverbindung mit einem bestimmten Gerät erforderlich sind. Abhängig vom Typ steuert ein Geräteadaptor 107 ein oder mehrere Geräte.
Die Hauptfunktionen des Peripherie-Subsystems 103 sind folgende:
1. umwandlung von CPU-Befehlen in eine Folge von für die entsprechenden Peripheriegeräte annehmbaren Koituncindos.
2. Verdichten und expandieren von Daten in die von der Zentraleinheit oder geeigneten Peripheriegeräten erforderliche Form.
3..· Informieren der Zentraleinheit über den Zustand des Subsystems und der unter seiner Steuerung befindlichen Geräte.
4. Unabhängige Einleitung und Durchführung von Fehler-und Wiederauffindungs-Prozeduren.
5. Ermöglichung von On-line-Diagosen ohne Beeinträchtigung der Möglichkeit der gemeinsamen Gerätebenutzung durch den zugeordneten Peripherie-Prozessor.
Eine Peripherie-Steuereinheit beseitigt, für den Hauptspeicher Schwierigkeiten zwischen den ihm zugeordneten Geräten, jedoch löst die Ein/Ausgabe-Steuerung Schwierigkeiten zwischen den Peripherie-Steuereinheiten.
D. Speicher-Subsystem
Jeder Speichermodul 1-4 ist 4 oder 8 Bytes groß. Die Anzahl der Modulen, ihr Umfang und der Datenverlauf kann sich entsprechend dem Umfang des Rechners ändern. Die Speichermodule sind vierfach in solcher Weise durchschossen, daß vier Module der Reihe nach zugängig sind (Modul 1 enthält die ersten 8 Bytes, Modul 2 enthält die zweiten 8 Bytes usw). Das Durchschiessen verringert die Anzahl von Zugriffskonflikten zum Hauptspeicher und verringert damit auch die mittlere Speicherzugriffszeit. Der Speicher kann im Fall von Fehlern umgeordnet werden, d.h. Speicherblöcke innerhalb eines Moduls können ohne Zerstörung der benachbarten Adressierung
609845/0732
entfernt werden. Der Hauptspeicher 102 besteht aus einem kapazitiven Speichermedium in Form von Metalloxyd-Halbleiterchips (MOS). Dieses Medium arbeitet nach dem Wiederauffrischungsprinzip zur •Aufrechterhaltung der Information. Jeder Speicherplatz wird typischerweise mindestens einmal alle 2 ms wieder aufgefrischt. Die Konstruktion gewährleistet, daß wenig Konflikte zwischen der Wiederauffrischzeitfolge und dem Speicherzugriff entstehen. Im Falle eines Konflikts hat die Wiederauffrischung Vorrang.
Ein Bereich am Anfang des Hauptspeichers ist für Hardware und Firmware reserviert. Die obere Grenze dieses Bereichs ist durch den Inhalt eines Grenzadressenregisters (BAR) bestimmt, welches für die System-Software sichtbar ist. Der Inhalt des Grenzadressenregisters wird bei der Ingangsetzung des Systems festgelegt. Der Speicherbereich unterhalb der im Grenzadressenregister festgelegten Adresse kann Ein/Ausgabe-Steuertabellen enthalten, die die Konfiguration des peripheren Subsystems, Firmware zur Steuerung der Zentraleinheit oder Mikroprogramme und Tabellen zur Emulation festlegen. Der Umfang des Bereichs unterhalb der genannten Adresse hängt von der Systemkonfiguration ab. Ob Mikroprogramme im Hauptspeicher oder im Steuerspeicher liegen, hängt ebenfalls vom Systemaufbau und der Anwendung des Systems ab.
2. Grundlegende Maschinenstrukturen
In dieser Hardware werden typischerweise drei grundlegende Datenstrukturen verwendet: Datenformate, für Software erkennbare Register und Befehlsformate.
A. Datenformate
Die Information wird zwischen dem Speicher und der Zentraleinheit in Vielfachen von 8 Parallelbits übertragen. Jede 8 Bit-Informationseinheit wird ein Byte genannt. Paritäts- oder Fehlerkorrekturdaten werden ebenfalls mit den Daten übertragen, können jedoch von der software nicht beeinflußt werden. In der nachfolgenden Beschreibung schließt der Ausdruck Daten die an sich
$33865/0732 *
zugehörigen Paritäts- und Fehlerkorrekturdaten aus.
B. Bytes
Die Bits innerhalb eines Bytes werden von links nach rechts mit 0 bis 7 numeriert. Die Bytes werden getrennt oder in Gruppen verarbeitet. Zwei Bytes bilden ein Halbwort, vier Bytes ein Wort, acht Bytes ein Doppelwort und 16 Bytes ein Vierfachwort. Diese bilden die Grundformate für alle Daten einschließlich der Befehle.
C. Datendarstellung
Alle Daten liegen in binärer Form vorj aber können als binär, dezimal oder alphanumerisch erklärt werden. Datenbits werden in Vierergruppen als binär kodierte Dezimaldaten interpretiert; in Achtergruppen als alphanumerisch oder 16 bis 64 als Binärziffern. Die letzteren werden als Vorzeichen behaftet, Fest-, oder Gleitkommazahlen in Binärdarstellung angesehen. Jeder Anzahl auseinanderfolgender Bits bis zu einem Doppelwort kann auch als Bitfolge (string) verarbeitet werden. Die Gruppe alphnumerischer Zeichen wird in EBCDIC dargestellt. Als alternativer Auswahlkode dient ASCII.
D. Byte-Adressen
Die Byte-Speicherstellen im Hauptspeicher sind mit Null beginnend fortlaufend numeriert. Jede Nummer stellt die Adresse des betreffenden Bytes dar. Eine Gruppe aufeinanderfolgender Bytes ist Halbwort-, Wort-, Doppelwort- oder Vierfachwort-zugeordnet, falls die Adresse des linken Bytes in einer Gruppe ein Vielfaches von 2, 4, 8 oder 16 ist. Sobald ein Halbwort, Wort, Doppelwort oder Vierfachwort derart angeordnet ist, kann die Einheit von dieser Adresse abgerufen werden. Der Speicherplatz von Daten im Hauptspeicher wird durch einen Datendescriptor bestimmt, welcher indirekt während der Adressenentwicklung entsteht.
6Q986S/0732
E. Erkennbare Register
Es befinden sich 33 für den Benutzer erkennbare Register in der Zentraleinheit 104 gemäß Figur 1 , deren Inhalt zusammen den Zustand der Zentraleinheit definiert. Es gibt vier Typen:
1. Generalregister
2. Basisregister
3. wissenschaftliche Register (als Option)
4. verschiedene Register
F. Generalregister
Die Generalregister (GR) 201 in Figur 2 werden für die Bearbeitung von Fest-Binärzahlen und Bitzeichenfolgen benutzt. Es gibt typischer Weise sechzehn 32 Bit Generalregister in der Zentraleinheit 104, welche mit GRO bis GR15 bezeichnet sind. Die Generalregister GR8 bis GR15 sind auch als Indexregister verwendbar. In diesem Fall werden sie später mit XO bis X7 bezeichnet. Das Indizieren erfolgt durch Benutzung des in einem Register enthaltenen ganzzahligen 32 Bit Zweier-Komplements.
G. Basisregister
Die Basisregister (BR) haben dasselbe Format als Befehlszähler (IC) und als Stapelspeicherregister 202 bis 203. Die Basisregister werden während der Adressenberechnung zur Bestimmung eines Teils des Speichers benutzt. Es sind üblicherweise acht 32 Bit Basisregister mit der Bezeichnung BRO bis BR7.
H. Wissenschaftliche Register (Gleitkomma-Register) Wissenschaftliche Register (SR) stellen eine als Option wählbare Ausrüstung für die Berechnung mit Fließ-Binärzahlen dar. üblicherweise sind vier wissenschaftliche Register van 8 Byte-Typ vorhanden, die mit SRO bis SR3 bezeichnet werden. Die wissenschaftlichen Register haben das Format 204 bis 205 in Figur 2.
009845/0732
I. Verschiedene Register
Es gibt fünf andere Register, nämlich:
Befehlszählwerk mit dem Format 202 bis 203; Statusregister mit dem Format 207;
Stapelspeicherregister genannt T-Register; . Grenzadressenregister mit dem Format 202 bis 203 und Hardware-Steuermaskenregister mit dem Format 208.
Das Befehlszählwerk (IC) ist ein 32 Bit-Register, welches die Adressen der auszuführenden Befehle enthält. Das Statusregister (STR) 207 ist ein 8 Bit-Register, welches die Tatsachen über die gegenwärtig ablaufende Prozedur aufnimmt, beispielsweise ob durch die jüngste Operation eine Bereichsunterschreitung erfolgt ist. Bei dem als T-Register bekannten Stapelspeicherregister handelt es sich um ein 32 Bit-Register, welches die Hinweisadressen zur Spitze eines der gegenwärtig aktiven Prozedur zugeordneten abzubauenden Speicherstapeis enthält. Der Stapelspeicher liefert den Arbeitsraum sowie einen Mechanismus zur Sicherstellung örtlicher Variablen und zur Bereitstellung von Prozedur-Eingangsstellen und Rückkehrinformation. Das Grenzadressenregister (BAR) 206 ist ein 28 Bit-Register, daß die für die Software zugängige niedrigste absolute Hauptspeicheradresse angibt. Dieses Register wird während der Ingangsetzung des Systems geladen und kann von der Software nur einmal gelesen werden. Das Hardware-Steuermaskenregister 208 ist ein 8 Bit-Register, daß die Maschinenzustandsinformation aufnimmt .
J. Befehlsformate
Es gibt etwa 200 Befehle, obwohl auch mehr oder weniger benutzt werden können. Jeder Befehl hat eine von vier verschiedenen Längen aber hat immer eine geradzahlige Anzahl von Bytes. Befehle werden in aufeinanderfolgenden Speicherplätzen abgelegt. Die Adresse des am weitesten links stehenden Bytes ist ein Vielfaches von 2 und bildet die Adresse des Befehls. Die acht ersten Bits (und in
609845/0732
manchen Fällen die Bits 8 bis 11 oder 12 bis 15) eines Befehls stellen den Operationskode dar, während die restlichen Bits einem oder mehreren Operanden entsprechen. Ein Operand kann ein Registerbezeichner, ein Verschiebungsbezeichner, eine Adressilbe (logische Adresse), ein Literalwert oder einen unmittelbaren Literalwert darstellen. Typ und Anzahl der Operanden sind durch das Befehlsformat bestimmt.
3. Systemorganisation
A. Jobschritt und Task (Aufgabe)
Die vom Rechnersystem auszuführende Arbeit wird extern mit Hilfe der Jobsteuerspräche durch eine Reihe von Jobschritten bestimmt. Ein Jobschritt ist eine Arbeitseinheit, der die Hardware-Systemelemente zugeordnet werden. Typischerweise besteht ein Jobschritt aus verschiedenen Tasks. Ein Task ist die kleinste Einheit der vom Benutzer definierten Arbeit und besteht aus einem Fluß von Informationen, der ohne Parallelbetrieb verarbeitet wird.
B. Der Prozeß
Die für den Benutzer erkennbaren Konzepte von Tasks und Jobschritten werden in der Hardware durch einen Prozeß bzw. Prozeßgruppen dargestellt. Ein Prozeß ist als eine geordnete Folge von Befehlen definiert, welche asynchron durch die Zentraleinheit ausgeführt werden können, d.h. mehrere Prozesse können aktiv sein und Systemelemente gleichzeitig benutzen. Jedoch läuft zu jeder Zeit jeweils nur ein Prozeß. Eine Prozeßgruppe ist eine miteinander in Beziehung stehende Gruppe von Prozessen, welche zur Ausführung eines Jobschrittes erforderlich ist.
C. Prozeßsteuerblock und Systembasis
Da Prozesse die Steuerung durch die Zentraleinheit während ihrer. Ausführung an verschiedenen Punkten aufgeben können, wird im Hauptspeicher ein Speicherbereich für den Prozeß zur Sicherung des Zustands der Zentraleinheit zugängig gemacht. Diese Zustands-
609845/0732
information wird zur Voreinstellung der Zentraleinheit benutzt, bevor ein Prozeß erneut die Steuerung der Zentraleinheit übernimmt. Diese Speichereinheit wird Prozeßsteuerblock (PCB) 400 (siehe Figur 4) genannt. Die Daten im Prozeßsteuerblock enthalten die Adressen von dem Prozeß zugeordneten Speicherbereichen(Aäressenraum), den Inhalt aller zugehöriger Register und den Zustand des Prozesses. Somit dient der Prozeßsteuerblock als zeitweiliger Speicherbereich für die zum Ingangsetzen oder wieder Ingangsetzen eines Prozesses ohne Informationsverlust erforderlichen Informationen. Jeder Prozeßsteuerblock ist für die Hardware erkennbar und kann vom Betriebssystem über eine Gruppe von Hardwaretabellen, welche während der Systemvorbereitung entwickelt und während des Betriebes modifiziert werden, adressiert werden (Figur 5).
Es gibt einen absoluten Hauptspeicherbereich, der als Systembasis bezeichnet wird (Figuren 5 und 6). Dieser Bereich wird durch Firmware entwickelt und ist über das Basisadressregister (BAR) erreichbar, aus welchem gelesen aber in das nicht eingeschrieben werden kann. Die Systembasis 502 enthält eine Anzahl von Systemattributen, welche eine Jobschrittnummer und eine Prozeßgruppennummer (J, P) für den laufenden Prozeß umfassen. Ein anderes Attribut in der Systembasis ist eine Hinweisadresse auf eine durch Hardware definierte Datenstruktur, die als J-Tabelle 503 bekannt ist. Diese Tabelle enthält eine Eingangsstelle für jeden gegenwärtig im System befindlichen Jobschritt. Jede Eingangsstelle in der J-Tabelle 503 zeigt auf eine zugehörige P-Tabelle 504 hin, die ebenfalls eine durch Hardware definierte Datenstruktur darstellt. Diese Tabelle bestimmt eine Prozeßgruppe und enthält eine Eingangsstelle für jeden Prozeß in der Prozeßgruppe. Jede P-Tabellen-Eingangssteile zeigt auf einen Prozeßsteuerblock 400.
In Figur 5 liefert diß durch die J-Zahl über den arithmetischen Teil5O6 der Rechnereinheit 111 (siehe Figur 1 ) indizierte Hinweisadresse Zugriff zu einer J-Tabelleneingangsstelle 503. Diese wiederum enthält eine P-Tabellenhinweisadresse, die wenn sie
609845/0732
durch die P-Zahl über die Recheneinheit 506 indiziert wird, Zugriff zu einer P-Tabelleneingangssteile 504 liefert. Letztere enthält eine Hinweisadresse 507 auf den Prozeßsteuerblock des ablaufenden Prozesses. Somit hat das Betriebssystem Zugriff zum aktiven Prozeßsteuerblock und benutzt hierzu die Inhalte der Grenzadressenregister 501 und kann jeden anderen Prozeßsteuerblock erreichen/ der durch seinen zugeordneten logischen Namen (JP) gegeben ist.
D. Speicher-Segmentierung
In einer Multiprozeßanlage befinden sich zu einer gegebenen Zeit viele Prozesse im Speicher. Diese Prozesse haben unterschiedlichen Umfang und unterschiedliche Anforderungen an den Speicher, wodurch ein SpeicherZuordnungsproblem entsteht. Die Hardware in Zusammenarbeit mit dem nicht dargestellten Betriebssystem löst dieses Problem durch dynamische Zuordnung von Speicherraum. Infolge der zufälligen Natur von Speicherraumbedarf wird der Speicherraum in Form von Segmenten unterschiedlicher Größe zugeteilt,und die Speicherzuordnung kann während der Laufzeit des Prozesses umorganisiert werden. Somit können einem Prozeß eine Anzahl nicht aneinandergrenzender Speichersegmente zugeteilt werden. Diese Art der Speicherzuordnung nennt man Segmentierung. Sie stellt ein zusätzliches Problem insofern dar, als die Speicheradressen modifiziert werden müssen, wenn ein Teil oder der gesamte Prozeß umgespeichert wird. Um dieses Problem zu erleichtern, sieht das vorliegende System eine Technik vor, bei der die von einem Prozeß benutzten Adressen logische Adressen statt absoluter Hauptspeicheradressen sind. Diese logischen Adressen werden zur Entwicklung absoluter Adressen benutzt. Die Segmentierung ermöglicht ferner jedem Prozeß den Zugriff zu seinen eigenen oder ihm zugeordneten Speichersegmenten über ein System von Segmentdescriptoren. Durch Zugriff zu einem Segmentdescriptor kann ein Prozeß die Adresse eines Segments erhalten. Segmentdescriptoren sind im Hauptspeicher untergebracht und werden vom Betriebssystem unterhalten.
S098S5/0732
zu
Jeder Prozeß kann Zugriff bis zu 2068 Speichersegmenten haben. Normalerweise würde dies eine gleiche Anzahl von Segmentdescriptoren pro Prozeß erfordern. Da jedoch die Segmente gemeinsam benutzt werden können, teilt das Betriebssystem die Segmentdescriptoren in Segmenttabellen ein. Diese Gruppierung basiert auf der Zugriffsmöglichkeit durch einen Prozeß (Task), eine Prozeßgruppe (Jobschritt) oder generell, d.h. für das gesamte System. Jedem Prozeß können bis zu 15 Segmenttabellen zugeordnet sein. Diese Technik erfordert nur einen Segmentdescriptor für jedes Segment, das für den Prtzeß über eine Segmenttabelle zugängig ist. Somit wird der für die Unterbringung der Segmentdescriptoren erforderliche Speicherraum verringert. Die Speicherfortschreibung während der Umordnung wird reduziert und man erhält einen gewissen Programmschutz. Den Hauptmechanismus für den Programmschutz bildet das Ringsystem, welches Gegenstand älterer Anmeldungen ist.
Ein Prozeß muß bestimmen können, zu welchen Segmenten er Zugriff hat. Folglich versieht das System den Prozeß mit zwei Segmenttabellen-Wortanordnungen (STWA). Diese Anordnungen enthalten die Adressen aller Segmenttabellen, die dem Prozeß zugängig sind. Es sind zwei Segmenttabellen-Wortanordnungen pro Prozeß vorhanden, weil Segmentgrößen gegeben sind, nämlich groß und klein. Große
22
Segmente haben einen Maximalumfang von 2 Bytes, während kleine
Segmente einen Maximalumfang von 2 Bytes aufweisen. Der Unterschied in Segmentumfang erfolgt in Schritten von 16 Bytes bis zum Maximalumfang. Ein System kann im typischen Fall bis zu 28 große Segmente und 2040 kleine Segmente aufweisen. Die Segmenttabellen-Wortanordnungen können vom Betriebssystem umgeschichtet werden. Deshalb muß ein Prozeß die- absolute Adresse der ihm zugeordneten Segmenttabellen-Wortanordnungen kennen. Der Prozeßsteuerblock für einen Prozeß enthält zwei Worte, die diese Information enthalten und als Adressraumworte ASWO-1 bekannt sind (Figur 4). Jedes Wort zeigt auf eine Segmenttabellen-Wortanordnung STWA hin. Das Betriebssystem schreibt den Inhalt der Adressraumworte fort, sobald die zugehörigen Segmenttabellen-Wortanordnungen umgeschich-
6O984S/0732
tet werden. Das Herabarbeiten längs einer Kette von Hinweisadressen und das Dekodieren des Segmentdescriptors ist eine Firmware-Funktion und ist, wenn sie einmal eingeleitet ist, nicht einmal für das Betriebssystem erkennbar.
Die Segmentierung definiert über 200 Millionen Bytes and Adressraum als für den Prozeß zugängig. Diese Menge überschreitet die Kapazität des Hauptspeichers. Deshalb wird in Verbindung mit dem Hauptspeicher ein Sekundärspeicher (Magnetplatten oder Trommel) eingesetzt. Das Betriebssystem erzeugt den Anschein, daß das System eine viel größeren Hauptspeicher hat als er tatsächlich zur Verfügung steht. Dieses Konzept nennt man virtuellen Speicher.
Zu jeder gegebenen Zeit kann sich ein definiertes Segment physikalisch im Hauptspeicher befinden oder nicht. Der Inhalt eines Segmentdescriptors zeigt an, ob das zugehörige Segment im Hauptspeicher liegt oder nicht. Die Hardware stellt jeden Versuch eines Prozesses fest, Zugriff zu einem Segment zu erhalten, was nicht im Hauptspeicher liegt, und informiert das Betriebssystem. Dieses läßt das gewünschte Segment aus dem Sekundärspeicher in den Hauptspeicher umladen. Sodann fügt das Betriebssystem die Speicheradresse des Segments in den Segmentdescriptor ein, der den einzigen Platz darstellt, wo die absolute Adresse eines Segments gefunden werden kann. Diese Operation ist für den Prozeß nicht erkennbar und somit ist ihm nicht bewußt, daß das Segment nicht im Hauptspeicher war bzw. in den Hauptspeicher umgeladen werden mußte.
Das bisher beschriebene Rechnersystem ergibt Daten und Prozedurschutz dadurch, daß Prozesse daran gehindert werden, sich gegenseitig zu stören oder in unerlaubter Weise den jeweils zugeordneten Adressenraum gemeinsam zu nutzen. Dieser Schutz wird durch eine Beschränkung der Adressierbarkeit mit Hilfe der erwähnten SpeicherSegmentierung und durch ein Ringsystem erreicht. Die Segmenttabellen isolieren den Adressenraum der verschiedenenProzesse im System. Die Prozesse benutzen während der Ausübung immer eine
809845/0732
segmentierte Adresse. Diese besteht aus einer Segmentnummer und einer relativen Adresse innerhalb des Segments. Die Hardware überprüft ,daß die vom Prozeß benutzte Adresse Teil des dem Prozeß zugeordneten Adressraum ist. Liegt die Adresse außerhalb dos genannten Adressraums, so erscheint ein Ausnähmesignal. Ein Prozeß kann sich nicht auf Daten innerhalb des Adressraums eines anderen Prozesses stützen, weil die Hardware die Segmenttabellen des bezugnehmenden Prozesses verwendet. Somit ist keine Möglichkeit für einen Prozeß oder eine Prozeßgruppe gegeben, ein Systemelement zu verwenden, welches zu einer anderen Prozeßgruppe gehört.
Im allgemeinen ist eine Überlappung von Adressraum im System für diejenigen Segmente gegeben, welche von allen Prozessen gemeinsam benutzt werden. Diese gewissermaßen öffentlichen Segmente werden von Systemprogrammen erzeugt, welche überprüfen und eine Sicherung gegen Adressenkonflikte darstellen. Somit schützt die Segmentierung die Benutzerprogramme gegeneinander und schützt das Betriebssystem gegen die Benutzerprogramme. Segmente, welche von mehreren Prozessen gemeinsam benutzt werden, sind nicht geschützt gegen den Mißbrauch durch einen dieser Prozesse. Um dieses Problem zu lösen, wird ein Ringsystem verwendet, wobei Prozedur- und Datensegmente in vier Klassen oder Zonen eingruppiert sind. Die vier Ringzonen sind mit 0 bis 3 bezeichnet. Jeder Ring stellt einen bestimmten Grad von Systemprivileg dar, wobei die Zone 0, d.h. der innerste Ring,das höchste Privileg und die Zone 3, der äußerste Ring, das geringste Privileg aufweist. Jeder Prozedur im System ist eine minimale und eine maximale Ringnummer zur Ausübung zugeordnet, welche festlegt, wer die Prozedur aufrufen darf. Eine Prozedur ist eine Subroutine, die in der Lage ist, andere Prozeduren aufzurufen und ihnen Parameter zu überstellen. Die allgemeinen Regeln des Ringschutzsystems sind folgende:
1. Eine Prozedur in einen inneren Ring hat freien Zugang zu Daten in einem äußeren Ring. Umgekehrt kann eine Prozedur in einem äußeren Ring Daten in einem inneren Ring nicht erreichen .
8038^5/0732
2. Eine Prozedur in einem äußeren Ring kann in eine Prozedur in einem inneren Ring verzweigen; das umgekehrte ist jedoch nicht erlaubt.
3. Jedem Segment mit Daten sind zwei Hingwerte zugeordnet, einer für Lesen (RD) und einer für Schreiben (WR). Diese Ringwerte bestimmen den maximalen Ringwert, in dem die Prozedur ausgeführt werden kann, wenn sie Daten entweder im Lese- oder im Schreibmodus erreicht.
Jedesmal wenn ein Prozedurbefehl ausgeführt wird, wird die Ringnummer der Prozedur (effektive Adressringnummer EAR) mit den dem Segment mit den angewählten Daten zugeordneten Ringnummern verglichen. Die effektive Adressringnummer stellt die Maximal zahl der Prozessringnummern im Befehlszähler und aller Ringnummern in den Basisregistern und Datendescriptoren im Adressierweg dar. Abhängig
. vom Ergebnis des Vergleichs der Ringnummern wird entweder Zugriff zu den Daten gestattet oder verweigert. Wenn beispielsweise eine Systemtabelle existiert in einem Segment mit einer maximalen Schreibringnummer 3 und einer maximalen Leseringnummer 1 , so kann die Benutzerprozedur im Ring 3 die Tabelle lesen, kann sie aber nicht fortschreiben. Gemäß Vereinbarung sind die Ringe 0 und 1 dem Betriebssystem vorbehalten, während die Ringe 2 und 3 für den Benutzer reserviert sind. Der Ring O enthält jene Segmente, die für den gesamten Systembetrieb kritisch sind. Ring 1 enthält die Menge der Systemsegmente, deren Fehler nicht zu einer unwiderruflichen Störung führen, sondern bereinigt werden könnte. Der Benutzer kann den Ring 2 für durchgeprüfte Programme und den Ring 3 für im Test befindliche Programme verwenden.
F. Prozedur-Aufrufe
Der Prozeduraufruf ist eine wichtige Funktion im System. Er wird dazu benutzt, Aufrufe von einer Prozedur zu einer anderen zu leiten, Benutzerprozeduren, Betriebssystemdienste in Anspruch zu nehmen und um eine Modularstruktur innerhalb des Betriebssystems zu ermöglich. Ein Prozeduraufruf wird durch Befehle bewirkt sowie durch ein ~ als Hardware angesehenes Systemelement,genannt Stapelspeicher (Figur 7A) . Ein Stapelspeicher ist ein Mechanismus,
609845/0732
welcher Daten aufnimmt, speichert und zurückliefert nach dem Prinzip, daß die zuletzt eingegebene Information zuerst ausgegeben wird. Stapelspeicher setzen sich aus besonderen Segmenten, genannt Stapelspeichersegmenten, zusammen. Ein solches besteht aus einer Anzah-1 aufeinanderfolgender Teile, genannt Stapelspeicherrahmen 701 (Figuren 7A und 7B), welche jeder Prozedur dynamisch zugeordnet werden. Der erste Stapelspeicherrahmen wird in den oberen Teil eines Segments geladen,und die nachfolgenden Stapelspeicherrahmen werden anschließend geladen. Der letzte geladene Stapelspeicherrahmen wird als Spitze des Stapelspeichers angesehen. Das T-Register 702 stellt die Spitze des Stapelspeichers für den laufend aktiven Prozeß fest. Ein virtuelles T-Register besteht im Prozeßsteuerblock aller Prozesse im System. Ein Stapelspeicherrahmen 701 in Figur 7B besteht aus drei Bereichen: Einem Arbeitsbereich 702, in dem die Variablen gespeichert werden, einem Sicherheitsbereich 703, welcher die Inhalte der Register sicherstellt,und einemKommunikationsbereich 704, in den Parameter zwischen den Prozeduren eingegeben werden. Vor eine»» Prozeduraufruf muß der Benutzer jene Register angeben, welche er sicherzustellen wünscht,und er muß in den Kommunikationsbereich diejenigen Parameter eingeben, welche der aufgerufenen Prozedur zugeführt werden sollen. Wenn der Aufruf erfolgt, so sichert die Hardware die Inhalte der Befehlszähler IC und bestimmter Basisregister, um eine Rückkehr aus der aufgerufenen Prozedur zu erleichtern. Jeder Prozeduraufruf erzeugt innerhalb eines Stapelspeichersegments 701 einen Stapelspeicherrahmen, und nachfolgend eingehende Aufrufe erzeugen zusätzliche Stapelspeicherrahmen. Jeder Austritt aus einer dieser aufgerufenen Prozeduren führt zur Löschung eines Stapelspeicherrahmens aus dem Stapelspeicher. Somit wird ein zeitlicher Ablauf der Aufrufe beibehalten, der ordnungsgemäße Rücksprünge erleichtert. Um einen Schutz zwischen in verschiedenen Ringen ablaufenden Prozeduren sicherzustellen, werden unterschiedliche Stapelspeichersegmente benutzt. Es gibt in jedem Prozeß jeweils ein Stapelspeichersegment für jeden Schutzring. Ein Prozeßsteuerblock enthält drei Stapelspeicherbasisworte,
- $©3845/0732
welche auf den Anfang des Stapelspeichersegments für die Ringe 0, 1 und 2 hinweisen,die dem Prozeß zugeordnet sind. Das Stapelspeichersegment für den Ring 3 kann durch einen Einwärtsruf nicht erreicht werden. Foljlich wird seine Stapelspeicherstartadresse im Prozeßsteuerblock nicht benötigt.
4. Prozeßmanagement und Synchronisierung
Das System ermöglicht Multiprozeß-Operationen, welche von einem Betriebssystem gesteuert werden, das eine Kombination von Software, Hardware und Firmware benutzt. Die Software erzeugt und löscht Prozesse innerhalb des Systems, während Hardware und Firmware die Multiplexverarbeitung in der Zentraleinheit durchführen. Außerdem sorgt eine Kombination· von Software, Hardware und Firmware für die Synchronisation zwischen den Prozessen. Prozesse werden normalerweise jedoch nicht immer zu Beginn und Ende von Ein/Ausgabe-Operationen inganggesetzt und angehalten, ferner während der Verarbeitung eines zugehörigen Jobs und zu anderen Zeitpunkten zu Zwecken, welche das Betriebssystem für notwendig hält. Deshalb ist ein Kommunikationssystem erforderlich, um miteinander in Beziehung stehende Prozesse wirksam zu starten und anzuhalten und die Information zwischen Ihnen zu vermitteln. Das Hardwaresystem liefert interne Nachrichten, genannt Semaphoren, um eine Kommunikationsverbindung zwischen den Prozessen herzustellen.
A. Prozess-Zustände
Ein Prozess kann sich zu einer gegebenen Zeit jeweils in einem von vier möglichen Zuständen befinden, nämlich laufend, vorbereitet, wartend oder ausgesetzt. Die Hardware nimmt diese vier möglichen Prozeßzustände zur Kenntnis und führt verschiedene Firmware-Prozeduren durch, um den Prozeß zuzuteilen, den Zustand zu ändern und die auf dem Prozeßzustand beruhenden Datenstrukturen beizubehalten. Der Prozeßsteuerblock enthält ein Statusfeld, welches den gegenwärtigen Zustand des zugehörigen Prozesses definiert. Ein
609845/0732
Prozeß befindet sich im ablaufenden Zustand, wenn er Steuerbefugnis über die Zentraleinheit hat. Dieser Zustand schließt die Versorgung der Zentraleinheit mit Adressenraum (Segmenttabellen) und einer Startadresse ein. Die Zentraleinheit führt dann die Befehle in den Prozedursegmenten des Prozesses aus. Das J-Tabellenwort des Erozeßnamens (logische Adresse) des Prozeßsteuerblocks für den laufenden Prozeß wird im laufenden Prozeßwort (BAR + 60) innerhalb der Systembasis aufbewahrt (Figur 6). Die in Figur 5 gezeigte Systembasis ist fast die gleiche wie in Figur 6, nur sind einige Einzelheiten weggelassen. Der Vorbereitungszustand entspricht im wesentlichen dem Ablaufzustand, mit der Ausnahme, daß der Prozeß keinen Steuergriff zur Zentraleinheit hat, weil diese den Prozeß noch nicht wahrgenommen hat. Ein im Isereitschaftszustand befindlicher Prozeß erstrebt wie andere vorbereitete Prozesse und der gerade ablaufende Prozeß in Konkurrenz Steuerzugriff zur Zentraleinheit.
Ein Prozeß im Wartezustand kann nicht fortfahren, bis ein bestimmtes Ereignis auftritt, beispielsweise eine Nachricht über ein Semaphor eingeht. Ein wartender Prozeß befindet sich nicht in Zugriff skonkurrenz zur Zentraleinheit aber er kann hinsichtlich des erwarteten Ereignisses in Konkurrenz mit anderen wartenden Prozessen stehen.
Ein ausgesetzter Prozeß ist für eine durch die Software bestimmte Zeitspanne unterbrochen und wird später wieder aufgenommen. Die Entscheidung, den Prozeß anzuhalten und später wieder weiterlaufen zu lassen, liegt außerhalb des Prozesses. Somit ist ein ausgesetzter Prozeß nicht aktiv und kann keine Informationen über Ereignisauftritte empfangen und kann die Zentraleinheit nicht benutzen. Ein Prozeß wird unter den folgenden Bedingungen ausgesetzt:
1. In Ausführung eines Beendigungsbefehls, weil alle seine Funktionen erfüllt sind;
2. Als Folge eines Aussetzbefehls vom Betriebssystem und
3. Beim Auftreten eines Ausnahmezustands, wobei die Steuerung auf das Betriebssystem übertragen wird.
609845/0732
B. Prozeß-Zuteilung
Ein Prozeß geht während des Ablaufs aufgrund seiner Aktionen freiwillig von einem auf einen anderen Zustand über oder unfreiwillig aufgrund von Aktionen anderer Prozesse. Die als Zuteiler bekannte Zentraleinheit-Firmware steuert den übergang des Prozesses zwischen seinen Zuständen. Der Zuteiler benutzt eine Gruppe von Warteschlangen, um die Prozesse, die sich im Vorbereitungs- oder Wartezustand befinden, zu verteilen. Ausgesetzte Prozesse werden durch die Software gesteuert.
Unter Bezugnahme auf die Figuren 6,8 und 9 ist zu bemerken, daß ein vorbereiteter oder wartender Prozeß durch einen Prozeßsteuerblock und eine besondere Warteschlangen-Eingangsstelle dargestellt wird, genannt Prozeßverbindung. Figur 9 zeigt eine auseinandergezogene Darstellung der Inhalte des GO-Segments 802 und enthält die Prozeßverbindungen 8O3a-8O3b sowie 8O3c-8O3g des aktiven Prozesses sowie die freien Prozeßverbindungen 8O5a-8O5c ausgesetzter Prozesse. Jede Prozeßverbindung gibt den Prozeß Tu, P), die Prozeßpriorität und eine Hinweisadresse auf die nächste Prozeßverbindung in der Warteschlange an. Es gibt verschiedene Arten von Warteschlangen, beispielsweise die im Wartezustand befindliche; Warteschlange 803-b und die im vorbereiteten Zustand befindliche Warteschlange 8O3c-g. Eine Hardwareeinheit ähnlich der J-Tabelle und unter der Bezeichnung G-Tabelle bekannt (Figuren 6 und 8J enthält die Hinweisadressen auf alle allgemeinen, d.h. systemweiten Segmente 8O2-8O2n. Das erste Element GO der G-Tabelle 801 weist auf das die Zuteiler-Warteschlange enthaltende Segment 802 hin. Eine G-Tabellenhinweisadresse zur G-Tabelle 801 findet sich in der Systembasis 502 in Figur 5. Auch die Systembasis weist eine Eingangsstelle auf, welche das interne Prozeß-Warteschlangenwort (IPQW) genannt wird und den Kopf 805 einer im vorbereiteten Zustand befindlichen Warteschlange 8O3c-8O3g im GO-Segment 802 identifiziert. Somit kann der Zuteiler alle vorbereiteten Prozesse überprüfen, indem er die vorbereitete Warteschlange 803c-803g abfragt. Wenn der gegenwärtig ablaufende Prozeß seinen
809845/0732
Zustand ändert, so entfernt der Zuteiler die Prozeßverbindung am Kopf der vorbereiteten Warteschlange und benutzt den J, P-Namen für den Zugriff des Prozeßsteuerblocks. Der durch diesen definierte Prozeß wird dann der als nächster ablaufende Prozeß.
Da mehr als ein Prozeß auf das gleiche Ereignis warten kann, besteht für jedes Ereignis eine Warteschlange wartender Prozesse 8O3a-8O3b. Die wartenden Prozesse sind ferner über im GO Segment liegende Prozeßverbindungen 805 miteinander verkettet. Eine Hinweisadresse zum Kopf einer wartenden Warteschlange ist in einem Semaphor 903 vorhanden. Es gibt eine Anzahl von Ereignissen, auf die ein Prozeß warten kann. Deswegen ist eine Anzahl von im Wartezustand befindlicher Warteschlangen vorhanden, von denen jeder ein Semaphor 903, 904 zugeordnet ist.
Die Anzahl der vorbereiteten oder wartenden Prozesse ändert sich dynamisch. Somit ändert sich auch die Anzahl der für die vorbereiteten und wartenden Warte sch lang en erforderlichen Prozeßverbindungen. Diese Tatsache stellt für den Zuteiler ein Speichermanagementproblem dar. Dieses Problem wird durch eine andere Warteschlange, gelöst, welche als Warteschlange 8O5a-c für eine freie Prozeßverbindung bezeichnet wird. Diese Warteschlange verkettet alle Prozeßverbindungen im Segment GO, die nicht durch die vorbereiteten oder wartenden Warteschlangen benutzt werden und kann als Erweiterung einer bestimmten Warteschlange vorbereiteter oder wartender Prozesse Verwendung finden. Eine Hinweisadresse 901 zum Kopf 902 der Warteschlange 805 für freie Prozeßverbindungen befindet sich neben dem Anfang des GO Segments 802.
C. Prozeß-Synchronisierung
Eine Prozessynchronisierung ist erforderlich, um die Aktivitäten zweiter an derselben Aufgabe (Task) arbeitender Prozesse zu koordinieren. Sie wird durch den Einsatz der Semaphoren 903-904 erreicht, welche Datenstrukturen darstellen, die im Adressenraum
609845/0732
des Konununikationsprozesses liegen. Ein Semaphor wird zur Signalisierung eines Ereignisauftrittes und zur Verarbeitung von Nachrichten-Warteschlangen benutzt. Ein Ereignis in diesem Sinn ist jede von einem Prozeß beobachtete Erscheinung, die für einen anderen Prozeß von Interesse sein kann. Das Ereignis kann beispielsweise im Abschluß einer asynchronen Operation oder in der Zugängikeit eines Systemmittels liegen. Ein Prozeß benutzt zwei Semaphoroperationen, um einen Ereignisauftritt zu signalisieren. Die eine Operation sendet ein Signal zu einen Semaphor, die andere nimmt das Signal von einem Semaphor auf. Die Sendeoperation wird oft V-Operation genannt, die Empfangsoperation heißt P-Operation. Die Sendeoperation erlaubt es, einem Prozeß Daten oder ein Signal auszusenden, daß Daten vorbereitet sind. Das Semaphor speichert das Signalfbis ein anderer Prozeß für die Aufnahme der Daten vorbereitet ist. Somit ist der abgebende Prozeß frei, weiterzuarbeiten, weil er die Daten abgegeben hat. Die Empfangsoperation prüft ein bestimmtes Semaphor und nimmt das Signal auf. Ist ein Signal vorhanden, so läuft der empfangende Prozeß weiter. Ist jedoch kein Signal am Semaphor, so geht der empfangende Prozeß in den Wartezustand über. Das Semaphor dient dann als Hinweisadresse zum Kopf einer Warteschlange. Der Prozeß bleibt in dem durch die Warteschlange am Semaphor bestimmten Wartezustand, bis ein anderer Prozeß ein Signal dem betreffenden Semaphor zusendet. Somit kann ein Semaphor ein Signal solange festhalten, bis ein Prozeß dieses Signal aufnimmt oder ein Semaphor kann einen Prozeß anhalten, bis ein Signal ihm zugesandt wird.
Auch Nachrichten können von Prozeß zu Prozeß weitergeleitet werden. Eine Nachricht weist die gleiche Anwesenheits- oder Abwesenheitseigenschaft wie ein Signal und zusätzlich hierzu Information auf. Teil der Information wird von der Hardware geliefert und ein Teil durch die Prozedur des Prozesses, welcher die Nachricht aussendet. Eine Nachricht enthält den Prozeßnamen des aussendenden Prozesses. Somit können viele Prozesse Informationen durch ein
609845/0732
einziges Semaphor senden, versehen mit dem Namen des Absenders. Ein Nachrichten-Semaphor kann eine Warteschlange von Nachrichten aufweisen, die darauf warten, von einem Prozeß aufgegriffen zu werden. Wie bei Signal-Semaphoren ergeben sich ändernde Anforderungen an Speicherraum, wodurch ein Speichermanagementproblem entstehen kann. Auch hier wird das Problem durch eine Warteschlange freier Nachrichtenverbindungen gelöst. Diese Verbindungen befinden sich an einem bekannten Platz in einem Segment, welches leicht zu finden ist, wenn Nachrichtenverbindungen aufgenommen oder geliefert werden sollen. Da Semaphoren und die auf ihnen aufgebauten Warteschlangen von verschiedenen Prozessen gemeinsam benutzt werden, ist die gesamte Semaphorstruktur geschützt. Man erreicht dies durch Hardware und Software-Konventionen, welche den Zugriff zu jedem ein Semaphor enthaltenden Segment beschränken. Somit müssen Semaphore in Semaphor-Descriptorsegmenten liegen, von denen manche G-Segmente sein können, sofern Systemkommunikation notwendig istr-Jedoch sind alle G-Segmente mit Ausnahme des Segments GO Semaphor-Descriptorsegmehte. Jeder Semaphordescriptor enthält eine Hinweisadresse auf ein Semaphor. Semaphoradressen werden mit Hilfe eines Semapbordescriptors entwickelt, wodurch ein zusätzlicher Schutz für das Semaphor gegeben ist. Ein Semaphorsegment kann logisch unter Benutzung einer Segmentnummer und einer relativen Lage innerhalb des Segments oder direkt durch Benutzung der G, D-Nummer adressiert werden.
E. Prozeßsteuerblock-Strukturen
Figur 4 zeigt das Format des Prozeßsteuerblocks (PCB) 400. Dieser ist ein Speicherbereich im Hauptspeicher, welcher einem Prozeß zugängig gemacht wird, um den Zustand der Zentraleinheit abzusichern. Die Adressierung des Prozeßsteuerblocks wurde oben bereits in Verbindung mit Figur 5 erläutert. Die Prozeßsteuerblock-Hinweisadresse 507 weist auf den Prozeßsteuerblock PCB im
609845/0732
Speicherplatz O in Figur 4 hin. Beim Fortschreiten in Richtung abwärts vergrößern sich die Speicherplätze, tun jeweils 4 Bytes, während sie vom Speicherplatz 0 an aufwärts um 8 Bytes größer werden. Die unterhalb von Speicherplatz O liegenden Speicherplätze werden als positiv und die oberhalb liegenden als negativ gerichtet angesehen- Die aufwärts gerichteten Speicherplätze sind wahlweise vorgesehen und können in den Prozeßsteuerblock einbezogen werden oder nicht. Auch die Speicherplätze 148 bis 176 sind eine Option. Die Zahlen unter den Speicherplätzen geben die Verschiebung in Bytes gegenüber dem Bezugsspeicherplatz 0 des Prozeßsteuerblocks an und sollten nicht mit den sonst üblichen Bezugszeichen verwechselt werden. Beginnend beim Byte O aufwärts bis aber ohne Einschluß von Byte 16 sind vier Prozeß-Hauptworte PMW 0 bis PMW 3 gespeichert, wobei jedes Prozeß-Hauptwort 4 Bytes lang ist. Das Prozeßhauptwort O besetzt die Bytes 0 bis 3 und besteht aus vier Teilen: Einem Fähigkeitsbyte, einem Prioritätsbyte, einem Zustandsbyte und einem Decorerweiterungsbyte DEXT. In den Figuren 1Oa bis 1Od sind Einzelheiten des Prozeßhauptwortes PMW O dargestellt, wobei sich weitere Einzelheiten des Fähigkeitsbytes 1OO1 aus Figur 1Ob ergeben. Dort stellt das erste Bit 1OO5 das Berechnungsmodus-Bit dar, welches anzeigt, ob Zeitberechnungsfunktionen für den Prozeß durchgeführt werden oder nicht. Ist dieses Bit auf "O" gesetzt, so erfolgt für den Prozeß keine Zeitberechnungsfunktion, während eine solche stattfindet, wenn das Zeitberechnungs-Bit 1005 auf "1" steht. Das Bit 1006 für den wissenschaftlichen Modus wird auf 0 gesetzt, wenn eine Sicherstellung des wissenschaftlichen Registers der Anlage nicht vorgesehen ist und ein Sicherheitsbereich für das wissenschaftliche Register bei den Bytes 148 bis 176 in Figur 7 im Prozeßsteuerblock PCB nicht vorhanden ist. Steht das Bit 1006 für den wissenschaftlichen Modus auf "1", so ist die wissenschaftliche Option vorhanden und wird im Prozeß benutzt. Der Sicherheitsbereich der wissenschaftlichen Register wird, sofern nötig, zur Sicherstellung der Inhalte der wissenschaftlichen Register ausgenutzt. Das Bit 1OO7 für den Code-Modus zeigt an, ob eine Standard Code-Gruppe oder eine Kompatibilitätscode-Gruppe vom Prozeß benutzt wird, wobei "0"
609845/0732
bedeutet, daß eine Standardcodegruppe benutzt wird, während "1" in der dritten Bitstelle 1007 anzeigt, daß eine KombatLbilitätscode-• Gruppe Verwendung findet. Die üblichen Bits des Fähigkeitsbytes werden auf Null gesetzt.
Einzelheiten des Prioritätsbytes 1002 ergeben sich aus Figur 10c. Die ersten vier Bits 1008 werden zum Einstellen des Prioritätsgrades des Prozesses verwendet, der dem gegebenen Prozeßsteuerblock PCB zugeordnet ist. Jedem Prozeß ist einer von 16 Prioritätsgraden zugeordnet und wird dazu benutzt, miteinander in Konkurrenz stehende Prozesse zu ordnen, d.h. (a) zur Auswahl desjenigen der vorbereiteten Prozesse der zur Durchführung kommt, (b) für die Einordnung der Prozesse in Warteschlangen. Die Prioritäten nehmen von 0 bis 15 ab und für einen gegebenen Prioritätsgrad wird die FIFO Regel angewandt, d.h. der zuerst angekommene Prozeß wird als erster ausgegeben. Die nächsten vier Bits 1009 des Prioritätsbytes 1002 sind Nullen.
In Figur 1Od sind Einzelheiten des Zustandsbytes 1003 wiedergegeben. Es liefert Information in Bezug auf den mit dem Prozeßsteuerblock PCB 400 verbundenen Prozeß. Ist der Prozeß aktiviert, so wird das Aktivfeld-Bit A 1010 auf "1" gesetzt. Das Aussetzungsfeld S 1011 wird "1", wenn der Prozeß ausgesetzt ist. Das Unterzustandsfeld SS 1012 ist ein 2-Bitfeld und bestimmt die folgenden Unterzustände des Prozesses: (a) im Fall binär 00 ist der Prozeß inaktiv; (b) im Fall binär 01 wartet der Prozeß in der Warteschlange der vorbereiteten Prozesse (Q/PR/RDY)? (c) im Fall 10 wartet der Prozeß auf ein Semaphor in einer Semaphor-Warteschlange (Q/PR/S) ; (d) im Fall binär 11 wird der Prozeß vom Prozessor ausgeführt. Das Mitte-Operationsfeld (MOI) 1013 wird auf "1", wenn mitten in der Operation eine Unterbrechung auftritt und wird während der Durchführung eines Befehls berücksichtigt, d.h. vor Abschluß des Prozesses. Das Dekorerweiterungsmodus-Bit EXTD 1014 steht auf "1", wenn der Prozeß in einem erweiterten Dekormodus arbeitet, d.h. in einem Emulationsmodus der Anlage. Die Bits 1015
609845/0732
und 1016 stehen auf "0". Das vierte Byte des Prozeß-Hauptwortes PMW-.0 enthält die Dekor erweiterungs nummer und wird benutzt, wenn das System im Emulationsmodus arbeitet.
Das Prozeß-Hauptwort PMW 1 wird in den Bytes 4-7 des Prozeßsteuerblocks PCB gespeichert. Einzelheiten ergeben sich aus Figur 1Oe. Das Zustandbyte 1016 ist das erste Byte im PMW 1 und speichert die Inhalte des Statusregisters. Das Multiprozessor-Byte MP 1018 ist wichtig für einen Multiprozessoraufbau, sonst ist dieses Feld "0". Das zweite und das vierte Byte im Prozeß-Hauptwort PMW 1 sind die MBZ Felder 1017 und 1019, welche bei Normalbetrieb Null sein müssen (must be zero).
Das Prozeß-Hauptwort PMW 2 belegt die Bytes 8 bis 11 des Prozeß-Steuerblocks und ergibt sich im einzelnen aus Figur 1Of. Das Feld von Bit 4 bis Bit 31 enthält den internen Namen SEG, SRA 1021 des Semaphors, mit dem der Prozeß-Steuerblock verbunden ist, wenn sich der Prozeß entweder im Warte- oder im ausgesetzten Zustand befindet. Das Feld 1023 für Ausnahmeklasse und Typ enthält Klasse und Typ der ünterbrechungsgleichen Ausnahme, die nach einem Ausnahmesignal den Prozeß in den ausgesetzten Zustand übergehen läßt. Das Feld 1022 von Bit 4 bis Bit 15 ist bedeutungslos, wenn sich der Prozeß in einem anderen Zustand als den oben erwähnten befindet.
Das Prozeß-Hauptwort PMW 3 belegt die Bytes 12 bis 15 im Prozeß-Steuerblock 400 und weist auf eine Dekorerweiterungstabelle hin. Figur 10g zeigt Einzelheiten, wobeitdas Feld 1024, genannt DETSZ die Anzahl der Eingangsstellen in die Tabelle definiert und im Fall, daß dieses Feld gleich Null ist , dem Prozeß keine Dekorerweiterung gestattet ist. Das DETA Feld 1025 gibt die absolute Adresse der Dekorerweiterungstabelle in Einheiten von 16 Bytes an und ist nur dann wichtig, wenn das Feld DETSZ nicht gleich 0 ist'. Die Dekorerweiterungstabelle besteht aus DETSZ-Eingangs-Btellen, von denen jede ein Byte lang ist. Der DEXT-Eingang
$03845/0732
der Tabelle bestimmt die Fähigkeit des Prozesses im Dekorerweiterungsmodus DEXT zu arbeiten. Wenn dieses Byte gleich 0 ist, so ist der Dekorerweiterungsmodus nicht zulässig. Ist hingegen das DEXT-Byte gleich "1", so ist die Dekorerweiterungsnummer DEXT zulässig. Andere Werte als 0 und 1 sind für die Dekorerweiterungs-Tabellennummer 1004 unzulässig.
Die Bytes 16 bis 23 des Prozeß-Steuerblocks 400 enthalten zwei Adressraumworte ASW 0 und ASW 1, von denen jedes eine Hinweisadresse auf eine Anordnung von Segmenttabellenworten aufweist. Beide ASW 0 und ASW 1 haben das gleiche Format gemäß Figur 10h. Der Umfang der Anordnung von Segmenttabellenworten wird durch die Anzahl der Segmenttabellenworte in einer Anordnung bestimmt und umfaßt üblicherweise sechs ASW 0 und acht für ASW 1. Das STWSZ-FeId 1026 gibt den Umfang der Anordnung von Segmenttabellenworten an. Das Feld STWA 1027 für die Segmenttabellen-Wortanordnung enthält die absolute Adresse STWA der Anordnung in Einheiten von 16 Bytes, d.h. die absolute Adresse der Anordnung ist 16 mal STWA in Bytes.
Die Bytes 24 bis 27 im Prozeßsteuerblock beinhalten ein Ausnahmewort EXW, welches im einzelnen aus Figur 1Oi ersichtlich ist. Es
enthält eine Hinweisadresse (SEG, SRA) 1029 zu einer Ausnahme- !
Klassentabelle, welche diejenige Aktion festlegt, welche ein Pro- !
zeß nach einem Ausnahpesignal entsprechend seiner im Prozeß- j
Hauptwort PMW 2 gespeicherten Klasse durchführen muß (siehe Fi- ,
gur 1Of). Das MBZ-FeId 1028 des Ausnahmewortes EXW muß "0" sein. j
Das Stapelspeicherwort SKW in den Bytes 28 bis 31 des Prozeß- } Steuerblocks enthält den Wert der Spitze des T-Registers des i Stapelspeichers des Prozesses, wenn dieser nicht im Ablaufzustand ist und ergibt sich im einzelnen aus Figur 1Oj. Die Bits 0 und 1 bestimmen das Hinweisfeld (TAG) 1030. Dieses TAG-FeId gibt durch
den Typ
seinen Inhalt des descriptors an und muß für ein Stapelspeicherwort SKW gleich "0" sein. Die Bits 2 und 3 des SKW-Wortes enthalten das RING-FeId 1031 , welches die der Segmentadresse des Stapelspeichers für Schutzzwecke zugeordnete Ringnummer enthält, j
609845/0732 !
und muß in diesem Fall gleich "0" sein. Die Bits 4 bis 31 enthalten die Segmentnummer SEG, die relative Segmentadresse SRA 1032 und bilden ein Feld, welches das Segment in einer Segmenttabelle beschreibt sowie die relative Segmentadresse innerhalb des Segments. Das Stapelspeicherwort SKW wird jedesmal foifeeschrieben, wenn der Prozeß den Ablaufzustand verläßt. Es wird zur Wiederherstellung des T-Register-Inhalts verwendet, sobald der Prozeß anläuft. In diesem Fall werden das TAG-FeId 1030 und das RING-FeId 1031 überprüft, ob sie gleich "0" sind. Andernfalls tritt ein einen unzlässigen Prozeß-Steuerblock kennzeichnendes Ausnahmesigal auf.
ist
In den Bytes 32 bis 35 des Prozeß-Steuerblocks 400 das den Inhalt des Befehlsspeichers bezeichnende Wort ICW enthalten, welches manchmal auch als ICC bezeichnet wird. Figur 10k zeigt dieses Befehlszählerinhaltswort ICW, bei dem das TAG-FeId 1033 den Binärwert 00 haben muß, d.h. andere Werte als Null sind unzulässig. Das laufende RING-FeId 1034 belegt die Bits 2 und 3 und bestimmt die laufende Ringnummer des Prozesses, welche für die Bestimmung der Zugriffsrechte zum Hauptspeicher eingesetzt wird. Die Bits 4 bis 31 bestimmen die Segmentnummer SEG und die relative Segmentadresse SRA 1035, wodurch die Adresse des als nächster auszuführenden Befehls gegeben ist. Das Feld MBZ in den Bytes 36 bis 39 muß gleich "0" sein. Es wird jedesmal getestet, wenn der Prozeßsteuerblock von den Namen J/ P Zugriff erhält. Falls es nicht gleich "0" ist, tritt ein Signal für eine PCB-Ausnahme auf.
Die Stapelspeicher-Basisworte SBW 0-2 besetzen die Bytes 40-51 im Prozeß-Steuerblock 400. Diese Worte haben gleiches Format und sind im einzelnen in Figur 101 dargestellt. Sie werden während der Stapelspeicheroperationen benutzt und bei jeder Benutzung muß ihr TAG-FeId 1036 und ihr RING-FeId 1037 gleich Null sein. Andernfalls entsteht ein Ausnahmesignal. Die Bits 4 bis 31 enthalten die segmentierte Adresse 1038 der ersten Bytes der Stapel-
S0964S/0732
speichersegment für die Ringe O, 1 bzw. 2. Bytes 52 bis 83 des Prozeß-Steuerblocks 400 bilden einen Speicherraum, welcher als Sicherstellungsbereich für die Basisregister dient und acht Worte umfaßt. Die Bytes 84 bis 147 bilden einen Sicherheitsbereich, der zur Sicherstellung der Werte aller Generalregister (16 Worte) dient. Schließlich sind auch die Bytes 148 bis 179 ein Sicherheitsbereich, der zur Sicherstellung wissenschaftliche:^ Register (8 Worte) verwendet wird.
Fünf Doppelworte sind im Prozeß-- Steuerblock 400 oberhalb der Adresse Null angeordnet und zwar für Zwecke der Zeitberechnung, wenn das Bit für den Zeitberechnungsmode im Prozeßhauptwort 0 gesetzt ist. Diese Worte liegen zwischen der Prozeßsteuerblockadresse minus 8 zur Adresse minus 40. Jedes Wort enthält ein Zeitintervall ausgedrückt in ms-Einheiten in seinen ersten 32 Bits, wobei die Bits 52 bis 63 mit Nullen gefüllt sind. Das Restzeit-Doppelwort RTO, bestehend aus den acht ersten Bytes oberhalb 0 im Prozeßsteuerblock enthält die Zeitmenge, welche tatsächlich vom Prozessor für den Prozeß aufgewandt wurde, ehe eine Zeitende-Ausnahme auftritt. Das RTO-Wort wird in folgender Weise fortgeschrieben: Jedesmal, wenn der Prozeß den Ablaufzustand verläßt, wird der Stand des Prozeßzeitgebers im RTO-Wort gespeichert. Sobald der Prozeß wieder in den Ablaufzustand übergeht, wird der Prozeßzeitgeberstand aus dem RTO-Wort geladen.
Das Verarbeitungszeit-Berechnungs-Doppelwort RUA in den Bytes 7 bis 15 ist ein Zeitzähler, der die Gesamtmenge der Prozessor- ' zeit angibt, während der sich ein Prozeß im Ablaufzustand befunden hat. Die berechnete Zeit ist diejenige, welche der Prozessor ausschließlich für den betreffenden Prozeß aufgewandt hat. Das RUA-Wort wird folgendermaßen fortgeschrieben: Jedesmal wenn der Prozeß den Ablaufzustand verläßt, wird der Prozeßzeitzähler PT abgelesen. Der Unterschied der Inhalte des RTO-Wortes und des Zeitzählers PT wird zum RUA-Wort addiert. Anschließend wird der Prozeßzeitgeberwert PT im RTO-Wort gespeichert. Die Zeit, während der ein Prozeß ausgesetzt ist, wird nicht berechnet. Die RTO- und
809845/0732
!■32-
RUA-Worte werden auch dann forgeschrieben, wenn das Berechnungsmodus-Bit auf "0" gesetzt ist. Jedoch werden die später noch zu beschreibenden Wort CET, RTO und WTA im Prozeßsteuerblock nur dann angetroffen, wenn das Berechnungsmodus-Bit im Prozeßhauptwort PMW 0 auf "1" steht. Sie werden auch nur in diesem Falle fortgeschrieben.
Das Wartezeit-Berechnungswort WTA in den Bytes 12 bis 23 ist ein Realzeitzähler, welcher die gesamte Zeitdauer bestimmt, in der sich der Prozeß im Wartezustand befunden hat. Das WTA-Wort wird folgendermaßen fortgeschrieben: Jedesmal wenn der Prozeß den Wartezustand verläßt, wird der Stand TOD einer Tageszeituhr abgelesen und die Differenz zwischen TOD und dem Wert eines Wortes CET zum Wartezeit-Berechnungswort WTA hinzu addiert.
Das in den Bytes 24 bis 31 befindliche Doppelwort RTA für die Berechnung der Vorbereitungszeit, welches ebenfalls einen Realzeitzähler darstellt, bestimmt die gesamte Zeitdauer, über die sich der Prozeß im vorbereiteten Zustand befunden hat. Das RTA-Wort wird folgendermaßen fortgeschrieben: Jedesmal wenn der Prozeß den Vorbereitungszustand verläßt, wird der Wert TOD der Tageszeituhr abgelesen und ihr Inhalt abzüglich des Inhalts des CET-Wortes zum RTA-Wort addiert. Das CET-Doppelwort in den Bytes 32 bis 39 gibt die Tageszeit an, zu der der Prozeß in einen der folgenden Zustände übergegangen ist: Vorbereitet, wartend, ablaufend und ausgesetzt. Es bezeichnet also die Eintrittszeit in den jeweils gerade vorhandenen Ist-Zustand.
F. Systembasis-Strukturen
Figur 6 zeigt das Format der Systembasis 600. Sie liegt im absoluten Hauptspeicher und wird von Firmware entwickelt, welche über das Grenzadressenregister BAR zugängig ist, das wie erwähnt, nur gelesen aber in das nicht eingeschrieben werden kann. Das Grenzadressenregister BAR liegt unterhalb eines Bereichs im Hauptspeicher, der für Hardware reserviert ist und trennt diesen Bereich von der Systembasis 600. Letztere enthält eine Anzahl von
809845/0732
Systemattributen, welche eine Jobschrittnummer und eine Prozeßgruppennummer (JP) für den gerade laufenden Prozeß enthalten. Aus dem logischen Namen J, P des Prozesses wird die absolute Adresse des entsprechenden Prozeßsteuerblocks PCB abgeleitet. Umfang und Adresse der J-Tabelle sind durch die Inhalte des J-Tabellenworts (JTW) definiert. Dieses Wort befindet sich an der durch das BAR-Register bestimmten Adresse. Das Format des J-Tabellenworts ergibt sich aus Figur 11a. Der Umfang (JTSZ) 1101 oder die J-Tabelle 1204 in Figur 12 bestimmen die Anzahl der Eingangsstellen in die J-Tabelle 1204, welche bis 255 Eingänge haben kann. Das Umfangsfeld JTSZ 1101 ist ein 8-Bit positives ganzzahliges . Ein Ausnahmesignal tritt auf, falls J größer ist als JTSZ. Die absolute Adresse der J-Tabelle 1204 erhält man durch Multiplikation der J-Tabellenhinweisadresse 1102 mit 16. Die J-Tabelle 1204 enthält die J-Tabelleneingänge, deren Format aus Figur 11b ersichtlich ist. Jede J-Tabellen-Eingangsstelle bestimmt die absolute Adresse einer P-Tabelle 1205, die durch Multiplikation der P-Tabellenhinweisadresse 1104 mit 16 entsteht. Der Umfang (PTSZ) 1103 einer P-Tabelle definiert die Anzahl der Eingangsstelle in die P-Tabelle. Dieser Umfang ist ein positives 8-Bit ganzzahliges, welches typischerweise zwischen 0 und 255 liegt und die Anzahl der Eingangsstelle in die P-Tabelle angibt. Ein Ausnahmesignal, welches anzeigt, daß die Adresse außerhalb der P-Tabelle liegt, erscheint, falls P größer ist als PTSZ. Jede Eingangsstelle der P-Tabelle 1205 bestimmt die absolute Adresse eines Prozeßsteuerblocks 1206, indem man die Hinweisadresse 1107 des Prozeßsteuerblocks mit 16 multipliziert. Ein Anwesenheits-Indikator P 1105 gibt, wenn er auf "0" steht, das Fehlen des Prozeßsteuerblocks 1206 an. Ist der Prozeßsteuerblock vorhanden, so steht dieser Anwesenheitindikator auf "1". Ist dieser Indikator gleich "0", so tritt ein Ausnahmesignal auf, welches auf einen vakanten P-Tabelleneingang hinweist. Die Bits 1 bis 7 des P-Tabellenindikators (Figur 11c) müssen gleich 0 sein (MBZ-FeId 1106), andernfalls tritt ein einen unzulässigen Eingang zur P-Tabelle anzeigendes Ausnahmesignal auf.
609846/0732
An der Adresse BAR plus 4 der Systembasis 600 befindet sich das Format-Byte des G-Tabellenwortes (GTW), welches im einzelnen aus Figur 11d ersichtlich ist. Umfang und Adresse einer G-Segmenttabelle 1212 sind durch den Inhalt des G-Tabellenworts definiert. Der Umfang (GTSZ) 1108 der G-Tabelle 1212 bestimmt die Anzahl der Eingangsstellen in die G-Tabelle, die üblicherweise bis zu 255 Eingänge hat. Das Umfangsfeld GTSZ ist ein ganzzahliges positives 8-Bit-Feld. Ein Ausnahmesignal zeigt an, daß man sich außerhalb der G-Tabelle befindet, wenn die G-Nummer größer ist GTSZ. Die absolute Adresse der G-Tabelle erhält man durch Multiplikation der G-Tabellen-Hinweisadresse 1109 mit 16. Das Format der G-Segmenttabelleneingangsstelle hat den Umfang zweier Worte (8 Bytes)*und wird G-Segmentdescriptor genannt. Das Format eines solchen G-Segmentdescriptors ergibt sich aus den Figuren 11e und 11f. Alle G-Segmentdescriptoren sind gerichtet und folglich muß das Indirekt-Bit (I) 1111 gleich "0" sein, andernfalls ein Ausnahmesignal entsteht, welches einen unzulässigen Segmentdescriptor anzeigt. Der Anwesenheitsindikator P 1110 ist ein 1-Bit-Feld, welches, wenn es auf "1" steht, anzeigt, daß ein Segment im Hauptspeicher zu der Segmentnummer gehört, welche dem Descriptor entspricht. Hat der Anwesenheitsindikator den Wert 11O", so ist kein Segment definiert und eine Bezugnahme auf diesen Segmentdescriptor bewirkt ein Ausnahmesignal dahingehend, daß dieses Segment fehlt. Das Verfügbarkeits-Bit A1112 ist ebenfalls ein 1-Bit-Feld, welches anzeigt, ob das Segment verfügbar ist oder nicht. Es wird nur überprüft, wenn dieses Segment definiert ist, d.h. wenn P gleich "1" ist. Andernfalls wird es vernachlässigt. Das Benutzungsanzeigefeld(UX1113^ läßt erkennen, ob das Segment angewählt wurde oder nicht. Wenn das Bit U auf "0" steht, erfolgte kein Zugriff zu diesem Segment. Andernfalls steht es auf "1". Das Beschrxebenanzeigefeld (W) 1114 zeigt, ob in ein Segment eingeschrieben worden ist oder nicht. Steht es auf "0", so wurde nichts in das Segment eingeschrieben. Andernfalls steht es auf "1". Der Zugangsindikator (GS) 1115 eines G-Segmentdescriptors muß auf "01" stehen, andernfalls erscheint ein
ein Ausnahmesignal, welches einen unzulässigen Segmentdescriptor anzeigt. Der Grund hierfür liegt darin, daß ein G-Segment immer Semaphoren enthält und Befehle für ein Semaphor erfordern, daß der GS-Code "01" ist. Umgekehrt gilt nicht, daß alle Semaphore in einem G-Segment liegen müssen. Die absolute Adresse der Basis eines Segments 1214 wird im G-Segmentdescriptor gemäß Figur 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-Segmentdescriptors in Figur 11f umfaßt die Bit-Positionen 32 bis 63 in der G-Tabelle 1212. Das RSU-FeId 1117 mit den Bits 32 bis 39 ist für Software-Gebrauch reserviert und wird im allgemeinen ignoriert, wenn es wie im vorliegenden Fall als G-Segmentdescriptor benutzt wird. Das MBZ-FeId 1118 muß wiederum gleich "0" sein, da andererseits ein Ausnähmesignal auftritt, welches ein unzulässiges Segment anzeigt,
.das MBZ-FeId 1118 die Bits 40 bis 51 belegt, setzt es das Umfangsfeld 1119, welches das Feld für ein kleines Segment ist. Somit müssen alle G-Segmenten zum kleinen Segmenttyp gehören. Der Segmentumfang 1119 ist ein 12-Bit ganzzahliges positives Feld, welches die Anzahl der Bytes im Segment festlegt. Der Segmentumfang ist in Vielfache von 16 unterteilt. Folglich kann der Segmentumfang für ein G-Segment 12 (kleine Segmente) nicht überschreiten.
der Segmentumfang für ein G-Segment 1214 den Wert von 2 Bytes
Im folgenden wird erneut auf die Systembasis 600 gemäß Figur Bezug genommen. Es gibt dort neun Systemausnahmezellenworte, welche in den Plätzen zwischen BAR plus 8 und BAR plus 44 untergebracht sind. Das Format dieser EXC-Worte ergibt sich aus Figur 11g. Da wenn eine Systemausnahme auftritt, für die Übertragung von Nachrichten zu bestimmten Prozessen Semaphore benutzt werden, sind die Hinweisadressen zu diesen Semaphoren in neuen Speicherplätzen des Speichers zu finden, wobei jeder dieser Speicherplätze eine SystemausnahmezeHe genannt wird. Es ist jeweils eine pro Klasse von Systemausnahmen vorhanden. Das MBZ-FeId 1120 muß wiederum auf "0" stehen, weil sonst eine Systemüber-
809845/0732 °*'g/nal inspected
prüfung erfolgt. Jede Ausnahmezelle EXC enthält den Systemnamen (G, D) 1121 bzw. 1122. Die Kanalausnahmezelle befindet sich in BAR plus 44 der Systembasis und hat ein Format, welches demjenigen der Systemausnahmezelle ähnlich ist. Sie enthält den Systemnamen G, D eines Semaphors, welches für die übertragung von Nachrichten zu bestimmten Prozessen benutzt wird, wenn das Kanalausnahmesignal auftritt.
Figur 11h zeigt das Format eines Internprozessor-Warteschlangenwortes IPQW, welches bei BAR plus 48 beginnt. Das IPQW-Wort zeigt auf den Kopf einer Warteschlange von im vorbereiteten Zustand befindlichen Prozessen (Q/PR/RDY), wie dies in Figur 9 durch die Bezugszeichen 905 und 805 angedeutet ist. Die Warteschlange im Vorbereitungszustand befindlicher Prozesse verbindet alle Prozesse, die im Vorbereitungszustand verharren. Sie wird durch den Kopf des Q/PR/RDY-Feldes 1124 (Figur 11h) des IPQW-Wortes angewählt, indem man auf die Spitze der Warteschlange der vorbereiteten Prozesse hinweist. Der Kopf des Q/PR/RDY-Feldes 1124 enthält eine 16-Bit positive ganze Zahl, welche die Verschiebung gegenüber der Basis des G-Segments Nummer 0, genannt das GO-Segment, gegenüber dem ersten Byte des Feld Q/PR/RDY darstellt. Ist dieses Bit-Feld gleich "0", so wird die Warteschlange als leer betrachtet. Das MBZ-FeId 1123 muß wiederum gleich "0" sein, da andernfalls ein Signal zur Systemüberprüfung erscheint.
An der Stelle BAR plus 52 der Systembasis 600 liegt der Platz für die anfänglichen und laufenden Wiederversuchsnummern, deren Format sich aus Figur 11i ergibt. Das NFS-FeId 1125 ist ein nicht funktionelles Speicherfeld und wird von der Systembasis nicht verwendet. Das Anfangsversuchsnummemfeld 1126 und das laufende Versuchsnummernfeld 1127 werden benutzt zur Steuerung, wie oft ein Befehl für einen automatischen Wiederversuch ausgeführt wird, ehe ein Maschinenfehler-Ausnahmesignal erzeugt wird. Diese Werte werden mit der gleichen Zahl durch einen nicht dargestellten Wiederversuchs-Rückstellzähler geladen.
Das in Figur 11 j dargestellte Ablaufprozeßwort RPW befindet sich im Speicherplatz BAR plus 56 der Systembasis und wird zur Speicherung des Namens des laufenden Prozesses und im Fall eines Monoprozessor-Aufbaus mit seiner Priorität benutzt. Die NFS-Felder 1128 und 1131 sind wiederum nicht funktionelle Speicherfelder und können für beliebige Zwecke eingesetzt werden, finden jedoch im allgemeinen keine Anwendung in der Systembasis. Der Prioritätsgrad eines laufenden Prozesses wird im PRI-FeId 1129 gespeichert. Ein asynchrones Abfangbit befindet sich im AB-FeId 1130, während ein asynchroner Abfangring im ARN-FeId 1132 liegt, der logische Name J, P des laufenden Prozesses ist im Fall eines Monoprozessor-Aufbaus im J, P-FeId 1133 abgelegt.
Ein Absolutisiertabellen-Hinweiswort gemäß Figur 11k liegt an der Stelle BAR plus 60 in der Systembasis 600 und wird beim anfänglichen Systemladen dazu benutzt, die absoluten Adressen im Anfangs-Systemladeprogramm ISL dadurch vorzubereiten, daß der Inhalt des Grenzadressenregisters BAR zu allen absoluten Adressen im ISL-Programm hinzugefügt wird. Die Absolutisiertabelle-Hinweisadresse 1135 bestimmt den Speicherplatz der nicht dargestellten Absolutisiertabelle. Ihr Umfang wird durch das ATSZ-FeId 1134 bestimmt.
Das Seriennummerwort der Zentraleinheit ist in Figur 111 dargestellt und besteht aus einem 4-Byte-Wort, welches im Speicherplatz BAR plus 64 liegt. Es enthält außer der Seriennummer der Zentraleinheit das Seriennummernfeld 1136 der Zentraleinheit. Figur 11m zeigt das die Obergrenze des Hauptspeichers bezeichnende Wort, welches im Speicherplatz BAR plus 68 abgelegt ist. Dieses Wort 1139 gibt die absolute Adresse des letzten zugängigen Wortes im Hauptspeicher an. In der Speicherstelle BAR plus 72 liegt das in Figur 11n dargestellte Wort, welches die Gerätelanalnummer (CN) 1140 für das anfängliche Laden des Systems ISL und die Hardware-Gerätekanalnummer (CN) 1141 angibt.
Typ und Untertyp eines in dem Rechnersystern benutzten Gerätes wird durch ein Hardware-Gerätetypwort (Figur 11ο) in den Feldern 1143 bzw. 1144 angegeben, während das RSU-FeId 1142 für Software reserviert ist. Dieses Wort findet sich in der
Systembasis an der Stelle BAR plus 76. Ein ähnliches Wort von ähnlichem Format zeigt Figur 11p und enthält Typ und Untertyp des Gerätes, welches beim anfänglichen Laden des Systems benutzt wird. Dieses Wort befindet sich an der Stelle BAR plus 80.
der
Wenn bei einem Rechner Wiederstart-Knopf gedrückt wird, läuft eine simulierte V-Gperation für ein Semaphor ab und gelangt zum Vorbereitungszustand. Eine Hinweisadresse auf dieses Semaphor findet man an der Stelle BAR plus 84 der Systembasis und wird das Wiederstart -Zellenwort genannt. Sie hat das in Figur 11q dargestellte Format. Es ist dem der Systemausnahme ze He ähnlich und enthält den Namen G, D eines Semaphore im G-FeId 1149 bzw. B-Feld 1150. Das MBZ-FeId 1148 muß "0" sein. Sind in dem
Computer sy s tem mehr als ein Prozessor vorhanden, so ist in der Systembasis 600 an der Stelle BAR plus 88 ein Wort für Multiprozeß-Erweiterung vorgesehen. Dieses ist in Figur 11r dargestellt.
Beispiele für die Benutzung der Systembasis und des Prozeß-Steuerblocks
Figur 12 zeigt ein Ausführungsbeispiel, wie die Systembasis in Verbindung mit dem Prozeßsteuerblock für die Adressierung und den Zugriff zu einem Benutzersegment, einem Systemsegment oder einem Segment mit einer Warteschlange vorbereiteter Prozesse eingesetzt wird. Der Hauptspeicher 1200 hat einen für Hardware-Benutzung reservierten Teil 1203. Ein Grenzadressenregister BAR 1202 trennt die Systembasis 1215 von dem für Hardware reservierten Teil 1203 des Hauptspeichers. Das Grenzadressenregister BAR 1202 wird dadurch zur Adressierung von Größen in der Systembasis 1215 benutzt, daß man den Inhalt des Grenzadressenregisters der Verschiebung in vier Byte-Einheiten der gewünschten Größe
803345/0732
in der Systembasis hinzuaddiert. Diese Adresse weist dann auf das erste Byte der Größe in der gewünschten Systembasis hin. In Figur 12 weist das Grenzadressenregister 1202 auf das J-Tabellenwort JTW. Dieses Wort enthält eine Hinweisadresse, welche auf die J-Tabelle 1204 zeigt. Durch Indizieren zur J-Nummer gemäß Figur erhält man einen J-Tabelleneingang 1216. An diesem Eingang befindet sich eine P-Tabellenhinweisadresse, welche auf die absolute Adresse in der P-Tabelle 1205 hinweist. Durch Indizieren zur P-Nummer (siehe Figur 5) innerhalb der P-Tabelle 1205 erhält man die absolute Adresse des Prozeßsteuerblocks 1206. Wie bereits beschrieben, befinden sich im Prozeßsteuerblock 1206 zwei Adressraumworte ASW 0 und ASW 1. Die höherwertigen Bits des Segmenttabellennummernfelds STN im Basisregister 1201 werden für den Zugriff zu einem dieser beiden Adressenworte ausgenutzt, in diesem Fall zum Wort ASW 1 , welches eine Hinweisadresse auf eine Segmenttabellen-Wortanordnung STWA aufweist, die zur Segmenttabellen-Wort anordnung STWA 1208 führt. Zusammen mit der Segmenttabellennummer STN des Basisregisters 1201 erfolgt ein Zugriff zu acht Sgmenttabellenworten in der Segmenttabellen-Wortanordnung 1208. Diese Segmenttabellenworte weisen auf eine der acht Segmenttabellen 1210. Die Segmenttabelleneingangsstelle STE von der Basis 1201 wird dann für die Ausführung einer der 256 Eingangsstellen in der Segmenttabelle 1210 verwendet, wo sich ein Segmentdescriptor befindet. Letzterer wird dann für den Zugriff zum Benutzersegment 1211 eingesetzt.
Um Zugriff zu einem Systemsegment 1214 zu erhalten, das zur Speicherung von Semaphoren dient, wird ein G-Tabellenwort GTW in der Systembasis 1215 benutzt. Die Adresse des G-Tabellenworts erhält man durch Hinzufügen der Verschiebung des G-Tabellenwortes in der Systembasis zum Grenzadressenregister BAR 1202 (vgl. Figur 6). Das G-Tabellenwort GTW enthält eine G-Tabellenhinweisadresse auf eine G-Tabelle 1212. Durch Verwendung einer im System verfügbaren G-Nummer und Indizieren in die G-Tabelle erhält man Zugriff zu einem G-Segmentdescriptor, der zur Adressierung eines Systemsegments 1214 dient. In ähnlicher Weise wird die Systembasis für
den Zugriff zu einer Warteschlange von Vorhereitungszustand befindlichen Prozessen (Q/PR/RDY) 1213 verwendet, indem man ein internes Prozessor-Warteschlangenwort ..IPQW aufsucht, welches auf das Q/PR/RDY Segment 1213 hinweist.
G.-Steuerwerk
Die Figuren 13a bis 13c zeigen Einzelheiten desSteuerwerks. Dieses ist obwohl es getrennt von der Zentraleinheit CPU dargestellt ist, in Wirklichkeit ein Teil der Zentraleinheit und besteht aus einem Speichersteuerwerk (CSU) 1301, einem Steuerspeicher-Schnittstellenadapter (CIA) 1302 mit zugehörigen Untereinheiten, !einem Steuerspeicherlader (CSIj) 1303 sowie einer Steuer- und Ladeeinheit (CLU)1304. Das Speichersteuerwerk 1301 empfängt Mikrobefehle über die Steuer- und Ladeeinheit 1304 und den Steuerspeicherschnittstellenadapter 1302 vom Steuerspeicherlader 1304. Unter normalen Betriebsbedingungen werden die Mikroprogramme während des Einleitungsvorgangs des Systems aus einer externen Quelle geladen und werden zur dauerhaften Steuerfunktion für die Maschinen. Jedoch hat das Speichersteuerwerk 1301 auch die Möglichkeit, neugeladen und inganggesetzt zu werden und zwar in einer Weise, welche eine Vielzahl von Zentraleinheit-Operationsmöglichkeiten vorsieht. Die folgenden Operationsmoden für die Zentraleinheit sind unter der Steuerwirkung des Speichersteuerwerks 1301 verfügbar:(a) Eigenbereichsmodus; (b) Emulationsmodus; (c) gleichzeitig Eigenbereich und Emulationsmodus; (d) Überprüfungsmodus. Diese Fähigkeit ergibt sich, weil die Mikrobefehle im Speichersteuerwerk die Quelle von MikroOperationen sind, welchejzur Steuerung des Betriebs aller anderen Funktionseinheiten der Zentraleinheit dienen, beispielsweise der Emulator 1316, das Rechenwerk 1317, die Befehlsabrufeinheit IFU 1318, das Adressensteuerwerk ACU 1319 und die Datenverwaltungseinheit DMU 1321. Weiterhin sind innerhalb der Zentraleinheit 1306 die zuvor beschriebenen Generalregister 1307, Basisregister 1308, wissenschaftlichen Register 1309, T-Register 1310, Zustandsregister 1311 , Befehlszähler IC 1312 und das Hardware-Steuermaskenregister 1313 dargestellt.
■' 8098^5/0732 · *
Im typischen Fall ist das Speichersteuerwerk CSU 1301 ein 9K bipolarer programmierbare*" Pestwertspeicher PROM in integrierter
verb
Schaltungstechnik fänden mit einen. Lese/Schreib-Direktzugriffsspeicher RAM.Sie haben überlicherweise eine Lesezykluszeit von 150 ns und eine Schreibzykluszeit von 450 ns. Jeder Speicherplatz des Steuerspeichers speichert ein 84 Bit Mikrobefehlswort und jedes Mikrobefehlswort steuert einen Zentraleinheitzyklus. Bei jedem Lesen eines Speicherplatzes im Speichersteuerwerk 1301 wird sein Inhalt durch Mikrobefehlsdekodierer dekodiert, welche ein Mikrooperations-Steuersignal erzeugen, von denen jedes eine bestimmte Operation innerhalb der Zentraleinheit auslöst. Durch gruppenweises Zusammenfassen von Stellen innerhalb jedes Mikrobefehlswortes erhält man Steuerspeicherfolgen, welche eine bestimmte Zentraleinheits-Operation oder einen Befehl ausführen. Da*jeder Befehl durch die Zentraleinheit ausgelöst wird, benutzt man bestimmte Bits innerhalb des Operationskodes für die Bestimmung der Startfolge des Steuerspeichers. Durch überprüfung bestimmter Flip-Flops, welche durch Befehlsdekodierfolgen gesetzt oder rückgestellt werden, ist es dem Speichersteuerwerk möglich, erforderlichenfalls in eine spezielle Folge abzuzweigen.
Der Steuerspeicher-Schnittstellenadapter 1302 steht im Informationsaustausch mit dem Speichersteuerwerk 1301, der Datenverwaltungseinheit 1321, dem Adressensteuerwerk ACU 1319 und dem Rechenwerk 1317, um auf diese Weise den Betrieb des Speichersteuerwerks 1333 in Figur 13d zu bestimmen. Der Steuerspeicher-Schnittstellenadapter 1302 enthält ferner Logikschaltungen für die Modifizierung, überprüfung, Fehlerfeststellung in Steuerspeicheradressen und zur Erzeugung von Hardwareadressen. Letzteres wird allgemein für die Entwicklung einer Anfangsadresse einer Fehlerfolge oder für die Einleitungsfolge benutzt.
Die Datenverwaltungseinheit 1321 bildet die Schnittstelle zwischen Zentraleinheit 1306 und dem Hauptspeicher und/oder dem Pufferspeicher gemäß Figur 1. Die Datenverwaltungseinheit hat die Aufgabe festzustellen, welche Einheit die von anderen Einheiten
809845/0732
benötigten Informationen aufweist und diese Informationen zur richtigen Zeit in die Register der Zentraleinheit zu überführen. Die Datenverwaltungseinheit sorgt auch für die Maskierung bei bestimmten Schreiboperationen. Die Befehlsabrufeinheit IFU 1318 bildet Schnittstellen mit der Datenverwaltungseinheit 1321, dem Adressensteuerwerk 1319, dem Rechenwerk 1317 und dem Speichersteuerwerk 1301 und ist dafür verantwortlich, daß die Zentraleinheit mit Befehlen versorgt wird. Die Befehlsabrufeinheit hat jeweils vor Ablauf des gegenwärtigen Befehls den nächsten Befehl in ihren Registern bereit. Um dies zu ermöglichen, hat die IFU 1318 ein 12-Byte-Befehlsregister, welches normalerweise mehr als einen Befehl enthält. Zusätzlich fordert die IFU, gesteuert durch das Speichersteuerwerk CSU Informationen aus den Hauptspeicher an, ehe diese Information tatsächlich benötigt wird. Auf diese Weise schreibt sie ihr 12-Byte-Befehlsregister ständig fort. Befehle werden vorabgerufen mit Hilfe normaler Weise nicht benutzter Speicherzyklen. Die IFU dekodiert ferner jeden Befel und informiert andere Einheiten über Länge und Format des Befehls.
Das Adressensteuerwerk ACU 1319 steht über den CIA in Verbindung mit der IFU, dem ALU, der DMU und dem CSU. Das ACU 1319 ist für die gesamte Adressenentwicklung in der Zentraleinheit verantwortlich. Alle Operationen des Adressensteuerwerks einschließlich der Übertragung zu, von und innerhalb des Steuerwerks werden durch Mikrobefehle des Speichersteuerwerks und durch logische Schaltkreise bewirkt. Der normale Zyklus des Adressensteuerwerks hängt von der Art der Adressen im Befehl ab und nicht von der Art der Befehle. In Abhängigkeit vom Adressentyp kann das Adressensteuerwerk unterschiedliche Operationen für jede Adresse innerhalb eines Befehls ausführen. Das Adressensteuerwerk enthält ferner einen Assoziativspeicher 1319a, welcher die Basisadresse der zuletzt benutzen acht Speichersegmente zusammen ihren Segmentnummern speichert. Jedesmal wenn ein Zugriff zu einem Speicher erfolgen soll, wird die Segmentnummer mit dem Inhalt des Assoziativspeichers verglichen, um festzustellen, ob die Basisadresse des Segments bereits entwickelt und gespeichert ist.
0093*5/0732
Befindet sich die Basisadresse im Assoziativspeicher 1319a,so wird sie für die absolute Adressenentwicklung benutzt, wodurch eine beträchtliche Zeitersparnis gegeben ist. Befindet sich die Basisadresse nicht im Assoziativspeicher 1319a, so wird sie durch Zugriff zu den Hauptspeichertabellen entwickelt. Jedoch wird nach der Entwicklung der Basisadresse des Segments diese im Assoziativspeicher zusammen mit ihrer Segmentnummer für spätere Bezugnahme abgelegt. Das Rechenwerk ALU 1317 arbeitet mit dem Adressensteuerwerk ACU, der Befehlsabrufeinheit IFU, der Datenverwaltungseinheit DMU und dem Speichersteuerwerk CSU zusammen. Seine Hauptaufgabe besteht in der Durchführung arithmetischer Operationen und Datenverarbeitungen, welche von der Zentraleinheit gefordert werden. Die Operationen des Rechenwerks sind völlig von Mikrobefehls-Steuersignalen aus dem Speichersteuerwerk 1301 abhängig. Dem Rechenwerk 1317 und dem Speichersteuerwerk 1301 zugeordnet ist ein Zwischenspeicher LSU 1315, welcher manchmal auch als interne Speichereinheit bezeichnet wird. Dieser Zwischenspeicher besteht im typischen Fall aus einem Festwertspeicher mit 256 Speicherplätzen und 32 Bits pro Speicherplatz sowie einer Auswahl- und Lese/Schreiblogik für diesen Speicher. Der Zwischenspeicher 1315 wird zum Abspeichern von Steuer- und Aufrechterhaltungsinformationen der Zentraleinheit verwendet. Zusätzlich enthält er Arbeitsplätze, die hauptsächlich zum vorübergehenden Speichern von Operanden und Teilergebnissen während der Datenverarbeitung dienen. Weiterhin ist dem Rechenwerk 1317 ein Hilfsspeicher 1317a zugeordnet, welcher im üblichen Fall 64 Flip-Flops zur Speicherung verschiedener Zustände des Rechnersystems enthält.
Die Zentraleinheit weist ferner eine Taktgebereinheit 1320 auf, die praktisch aus zwei Taktgebersystemen in einer Einheit besteht. Das erste Taktgebersystem erzeugt die Taktsignale zur Steuerung des Schnittstellenadapters 1302, während das zweite Taktsystem die Taktimpulse für die Operationen der Funktions-
einheiten innerhalb der Zentraleinheit liefert.
In Figur 13c ist das Format des SteuerSpeicherworts 1325 wiedergegeben. Dieses ist ein 84-Bit-Wort und in die folgenden äechs Hauptfelder unterteilt:
•a". Folgetypfeld 1326 (3 Bits)
b. Verzweigungs- und/oder Mikrobefehlsfeld 1327 (23 Bits)
c. Konstantenerzeugung und Bestimmung 1328 (14 Bits)
d. Daten zur Sammelschiene 1329 (8 Bits)
e. Mikrobefehle 1330 (32 Bits
f. Prüfung 1331 (4 Bits)
Das 3-Bit-E-Feld des Steuerspeicherworts 1325 wird als Folgesteuerfeld verwendet. Es sind üblicherweise sieben verschiedene Steuerfolgen vorhanden und eine für das gegenwärtige Rechensystem reserviert. Unter Bezugnahme auf Block 1335 in Figur 13b wird, wenn das E-FeId gleich 0, 1 oder 2 ist, das Verzweigungsfeld A. B, C, D, und L der Mikrobefehle 1325 benutzt, um die nächste Adresse zu erzeugen. Die ersten sechs Bits des KS-Register 1337 werden zusammen mit dem B-Feld benutzt, es ergibt sich ein C-Test, hieraus ein D-Test und das L-FeId liefert die nächste Adresse des nächsten Mikrobefehls, welche dann in das Adressenregister KS 1337 eingegeben wird. Ist das E-FeId auf binär 4 (siehe Block 1335) gesetzt, so wird die nächste ausgewählte Adresse vom Unterbrechungs-Rückkehrregister KA 1339 entnommen. Die Adresse im ΚΑ-Register ist diejenige, welche von der Logikschaltung zur Erzeugung der nächsten Adresse erzeugt wird, wenn eine Hardware-Unterbrechung auftritt. Ist das E-FeId auf binär 5 gesetzt, so wird eine Verzweigungsoperation benutzt, um eine Hilfsrückkehroperation von einer Mikroprogramm-Subroutine zu bewirken. Wenn dies erfolgt, werden die Inhalte der Rückkehrregister KR 1346 als die nächste Steuerspeicheradresse verwendet. Das Rückkehrregister 1346 wird dadurch geladen, daß ein Steuerspeicherbefehl herausgegeben wird, der die gegenwärtige Steuerspeicheradresse
$09845/0732
■im KS-Register 1337 zuzüglich 1 vom Fortschalter 1338 in das KR-Register 1346 überführt. Eine Möglichkeit für eine Einebene-Einfügungsroutine ist gegeben über ein KT-Rückkehrverzweigungsregister 1347. Jedesmal wenn das KA-Register 1346 geladen wird, wird der alte Inhalt dieses Register in das KT-Register 1347 überführt und jedesmal wenn ein Mikroprogramm-Rückkehrbefehl aufgerufen wird, wird der Inhalt des KT-Registers in das KR-Register eingegeben. Eine Möglichkeit für eine Einfügungssubroutine in der dritten Ebene wird durch das Kü-Register 1340 und in der vierten Ebene durch das KV-Rückkehrverzweigungsregister 1349 dargestellt. Wenn das E-FeId des Steuerspeicherworts auf binär 6 steht, so ist das nächste adressierte Steuerspeicherwort gleich der gegenwärtigen Adresse im KS-Register 1337 plus 1 im Fortschalter oder Inkrementor 1338. Steht das E-FeId auf binär 7, so geht das Speichersteuerwerk 1301 in den Überprüfungsmodus über und die nächste Adresse ist gleich der gegenwärtigen Adresse plus
Zusätzlich zur Folgesteuerung von Verzweigungen zur nächsten Steuerspeicheradresse gemäß Block 1335 ist im Block 1336 von Figur T3b eine durch Hardware erzeugte Folgesteuerung dargestellt.Die Blocks 1335 und 1336 sind in Wirklichkeit Hardware-Register und derart aufgebaut, daß sie die verschiedenen Formen aufnehmen können, welche Mikrobefehle haben können. Die hardwarebestimmten Verzweigungen stellen übersteuernde Zustände dar, solche wie Fehler, Einleitung, SteuerSpeicherabtastung usw., die das E-FeId unterdrücken und eine feste Adresse in das Steuerspeicheradressenregister KS1337 zwangsweise eingeben. Die Verzweigung erfolgt dadurch, daß eine Leitungsunterbrechung für eine Taktperiode stattfindet und die Adresse, welche an sich unter der Steuerung des E-Feldes erzeugt worden wäre, in das KA-Unterbrechungsrückkehrregister 1339 geladen wird. Eine hardwaregesteuerte Adresse wird in das Steuerspeicheradressenregister eingegeben. Bestimmte durch Hardware oder Firmware erzeugte Unterbrechungen haben Priorität, wenn der Unterbrechungs-Blockier Flip-Flop gesetzt ist, der die
609845/0732
Durchführung zusätzlicher Unterbrechungen in ihrer Klasse verhindert, bis der unterbrechende Zustand erledigt ist. Eine Firware-Mikro-Operation besteht zur Steuerung der Rückstellung des Unterbrechungs-Blockier Flip Flops für jene Folgen, welche unter Firmware-Einfluß stehen. Diese Folgen bewirken automatisch eine Rückstellung des Blockier-Flip-Flops am Ende der Folge. Die nachstehend entsprechend ihrer Priorität aufgeführten Zustände bestehen in dieser Kategorier s. .
(a) Laden des Steuerspeichers;
(b) Abtastung des Steuerspeichers
(c) Hardware-iehler;
(d) Software-Fehlerj
Die verbleibenden Hardware-Zustände setzen den ünterbrechungsblockier Flip-Flop nichtj aber bewirken bei ihrer Erzeugung eine sofortige Aktion. Die nachstehend entsprechend ihrer Priorität aufgeführten Zustände bestehen in dieser Kategorie:
(a) Einleitung;
(b) Soft-Freigabe;
(c) Eintritt in die Wartungskonsole;
(d) Eintritt in den Wartungskonsole·
(e) Hardware-Ausgang.
Ein Einleitungssignal bewirkt, daß das Speicher-Steuerwerk 1301 zur Adresse binär 0 abzweigt, durch Hardware rückstellbare Fehler geklärt werden und eine Steuerspeicher-Ladeoperation gefolgt von einer Steuerspeicher-Abtastfolge unter Hardware-Überwachung ausgeführt werden. Außerdem wird die Systemeinleitung durchgeführt. Ein Signal-Softfreigabe läßt das CSU 13O1 zur Adresse binär 0 abzweigen, klärt die durch Hardware zurückstellbaren Fehler und stellt den Unterbrechungsblockier Flip-Flop zurück. Ein Signal für den Eingang in die Wartungsgruppe bewirkt, daß das Speichersteuerwerk in die durch die Schalter auf der Wartungstafel vorgegebenen Adressen abzweigt. Ein Signal zum Eintritt in den Wartungskanal läßt das Speichersteuerwerk zu einer Adresse abzweigen, welche über den Wartungskanal erzeugt wird. Die Adresse wird aus
der Wartvmgssammelschiene QMB 1344 geladen, Vielehe Teil des Wartungskanals ist. Ein Hardware-Ausgangssignal läßt das Speicher-Steuerwerk zur Binäradresse 2 abzweigen. Diese Folge wird als Wartungsmöglichkeit benutzt. Am Ende der Folge wird durch Herausgabe eines E-Feld-Verzweigungsbefehls eine Rückkehr inganggesetzt und das E-FeId auf binär 4 gesetzt.
Ein Steuerspeicherladesignal läßt das Speichersteuerwerk zur Adresse binär 0 abzweigen. Es schaltet außerdem CSü-Lesesyklus Flip-Flop und den Systemtaktgeber 1320 ab und führt das Speichersteuerwerk in den Ladezustand über. In diesem Zustand kann das Speichersteuerwerk aus dem Steuerspeicherlader CSL 1303, der Ein/ Ausgabesteuerung IOC 1305, dem Hauptspeicher 102 oder der Wartungstafel 1355 geladen werden. Erfolgt eine Ladung aus dem Lader CSL, so wird eine automatische Abtastung am Ende des Ladens bewirkt. Wird hingegen aus einem anderen Medium geladen, so kann eine Abtastung entweder durch Erzeugung eines Mikr-o-Operationssignals oder durch Einstellen des Abtastschalters auf der Wartungstafel erfolgen. Ein Steuerspeicher-Abtastsignal läßt das Speichersteuerwerk zur Adresse binär 0 abzweigen. Für die" Dauer der Folge unterliegt die Abtastung der Steuerung durch Hardware. Während der Abtastung ist der Systemtaktgeber 1320 abgeschaltet und folglich werden keine Befehle oder Überprüfungen ausgeführt. Am Ende der Abtastfolge überträgt die Hardware den Inhalt des Unterbrechungsrückkehrregisters KA in das Adressenregister KS, der Systemtaktgeber wird wieder eingeschaltet und die Steuerung kehrt zur Firmware zurück.
Ein Hardware-Fehlersignal bewirkt eine Abzweigung in die Adresse binär 4. Im normalen Prozeßmodus aktiviert ein in irgendeiner Funktionseinheit der Zentraleinheit festgestellter Hardware-Fehler eine Hardware-Fehlerleitung. Die erzeugte Steuerspeicherfolge überprüft die Systemzustände im Hinblick auf die einzuleitende Aktion. Im Diagnosemodus sind von der Hardware feststellbare Fehlerzustände für die Mikrodiagnose erkennbar. Sie steuert
-609845/0732
-' 48 -
die einzuleitenden Aktionen. Ein Software-Fehlersignal andererseits läßt den Steuerspeicher zur Adresse binär 1 abzweigen. Diese Adresse stellt den Anfang einer Software-Fehlerberichtsfolge dar, die unter Mikroprogrammsteuerung steht.
In Figur 13c ist das E-FeId 1326 ein 3-Bit-Feld für den Verzweigungscode. Das Verzweigungs und/oder Mikrobefehlsfeld 1327 besteht aus den A, B, C, D und L Feldern (vgl. auch Block 1335 in Figur 13b), wobei das A-FeId die oberen sechs Bits der nächsten Adresse, das B-Feld die mittleren vier Bits der nächsten Adresse des Maskenfeldes an der 64-Weg-Verzweigung, das C-FeId ein 6-Bit-Prüffeld für einen von 64 Tests, das D-Feld ein weiteres 6-Bit-Prüffeld für einen von 64 Tests und das L-FeId das am niedrigst wertige Bit ist. Das K-FeId 1328 ist ein 14-Bit-Feld, von dem sechs Bits für ein Konstaritenfeld, vier Bits für ein Konstantenoder Steuerfeld und vier Bits für ein Steuerfeld für eine Konstante dienen. Das Feld 1329 für die Datenweitergabe zur Sammelschiene besteht aus dem QA-FeId mit 4 Bits zur Steuerung des Informationsflusses zum QA-Teil der QMB Sammelschiene 1344, während das QB-FeId vier Bits zur Steuerung der Informationsweitergabe zum QB-Teil der QMB-Sammelschiene 1344 enthält. Das F-FeId 1330 ist ein 32-Bit-Feld und ist zur Erzeugung von Mikoroperations-Unterbefehlen kodiert. Das B-Feld 1331 besteht aus vier für Prüfzwecke reservierten Bits.
Im Betrieb werden die Mikrobefehlsworte in einer Steuerspeicheranordnung 1333 gespeichert. Während eines Betriebszyklus wird diese Steuerspeicheranordnung durch den Inhalt des KS-Adressenregisters 1337 adressiert. Hierdurch wird der Inhalt des adressierten Speicherplatzes in die Gruppe von Verriegelungsregistern 1357 eingegeben. Teile des Inhalts dieser Register werden in die Speicherregister innerhalb jeder der Funktionseinheiten der Zentraleinheit übertragen. Jede funktionelle Einheit enthält logische Dekodierschaltung zur Erzeugung der erforderlichen durch das Steuerspeicherwort definierten Unterbefehle und zwar unter den Steuereinfluß des Systemtaktgebers. Im allgemeinen wird die Dekodierung
8038^5/0732
innerhalb jeder funktioneilen Einheit durchgeführt und nicht zentral, damit die Dekodierzeit auf ein Minimum reduziert und die Anzahl der Leitungen für die übertragung von Befehlssignalen reduziert wird. Außerdem vermeidet man durch das Dekodieren innerhalb jeder Einheit Zeitgeberprobleme, welche sich aus unterschiedlichen Kabelverzögerungszeiten ergeben können. Schließlich brauchen diejenigen Signale, nicht zum SteuerspeicherSchnittstellenadapter 1302 zurückgeleitet werden, welche für bestimmte Zustände innerhalb der Funktionseinheit kennzeichnend sind und für die Erzeugung bestimmter Unterbefehls-Signale erforderlich sind. Ein typischer Dekodierer 1359 empfängt gemäß Figur 13b verschiedene Felder aus Mikrobefehlsworten und erzeugt Mikrobefehlssignale a, bf c, d, ...q, r. Ein typischer Mikrobefehlsdecoder 1359 erhält Befehle von einem Mikrobefehlswort. Das Feld des Mikrobefehls--Wortes wird dekodiert und stellt eine Mehrzahl von Teilen s, t, u, .... y, ζ auf das Potential "1". Eine Matrix mit vorgegebenen Steuerleitungen ist an die s- bis z-Leitungen an den Punkten (ß{ J***. ^ · * - CO angekoppelt. Wenn das Feld
eines Mikrobefehls dekodiert wird, geht eine der Leitungen s bis ζ auf hohes Potential. Da die in der Zeichnung durch Punkte und griechische Buchstaben gekennzeichneten Verknüpfungspunkte sich kreuzender Leitungen eine Leitungskopplung darstellen, wird jedes sich längs einer horizontalen Leitung . ausbreitende.· Signal an denjenigen Stellen, wo ein Kopplungspunkt angegeben ist, auf eine der vertikalen Leitungen a bis r übergehen. Jede der vertikalen Leitungen kann als Eingang zu einem der UND-Gatter 1360 1365 geführt werden. Weitere Eingangssignale können ebenfalls an die UND-Gatter 1360 bis 1365 geführt werden, einschließlich eines Taktsignals t vom zentralen Taktgeber» Folglich werden jeweils
dann, wenn das Taktsignal den Wert "1" annimmt, jene Gatter durchgeschaltet, deren sämtliche Eingänge ein positives Eingangssignal haben. Diese Gatter liefern Mikrobefehlssignale an vorgegebene Funktionseinheiten innerhalb der Zentraleinheit. Beispielsweise wenn ein Befehl 1341 vom Leseverriegelungsregister 1357 dekodiert wird und eine horizontale Leitung auf "1" liegt, so werden die vertikalen Steuerleitungen a, b, c, und q ebenfalls positiv und die Gatter 1316, 1361, 1362 und 1364 werden beim Auftreten des
609845/0732 '
Taktsignals nacheinander durchgeschaltet. Folglich stellen die Kombinationen, in denen die vertikalen Steuerleitungen mit der horizontalen Steuerleitung an verschiedenen, durch griechische Buchstaben gekennzeichneten Punkten gekoppelt sind, eine bleibende Schaltmatrix für die Zufuhr von Mikrobefehlssignalen an die Zentraleinheit dar und zwar für die Steuerung der Funktionseinheiten innerhalb der Zentraleinheit durch Mikrobefehle aus der Steuerspeicheranordnung 1333. Somit kann dauerhafte aber veränderbare Firmware in die Anlage eingebaut werden,indem lediglich die Folge der Mikrobefehle angegeben wird, welche als Fähigkeit des Rechnersystems benötigt wird.
Unter normalen Bedingungen werden Daten in die Steuerspeicheranordnung 1333 über ein Schreibdatenregister der Zentraleinheit, welches auch unter der Bezeichnung , Internes Register YO 1343
eingegeben,
bekannt istf Ein Steuer-Flip-Flop bestimmt, ob in die obere oder in die untere Hälfte der Speicheranordnung eingeschrieben werden soll. Daten aus der Steuer- und Ladeeinheit CLU 1304 kommen am Adaptor CIA bzw. dem Speichers teuerwerk CSU über die Wartungssammelschiene QMB 1344 an und werden vorübergehend im internen Speicherregister YO 1343 aufbewahrt, ehe sie in die Steuerspeicheranordnung 1333' eingegeben werden. Das interne Register 1343 wird sowohl als örtliches Lese- als auch als örtliches Schreibregister verwendet. Der Multiplexer KQM 1345 kann entweder vom Wartungspult 1355 oder durch Mikrodiagnoseoperationen gesteuert werden und liefert einen Ausspeicherungsweg aus den ihm angeschlossenen Registern. Ein Vergleichsregister KP 1350 wird in erster Linie für Wartungszwecke benutzt und zwar zusammen mit einer Vergleichslogik 1352 und einer Dekodierlogik 1351.
H. Zuteiler-Firmware zur Steuerung von Prozessen
Der Zuteiler ist eine Firmware/Hardware-Einheit, deren Hauptzweck darin liegt, die verschiedenen Prozeßwarteschlangen zu verwalten und zwischen den Prozessen umzuschalten und umfaßt ferner die Fortschreibung der Prozeßwarteschlangen, der Prozeßsteuerblöcke,
des des laufenden Prozeßwortes in der Systembasis und Registers eines
6098*5/0732
neuen Prozesses. Er liefert ferner Nachrichten an einen Prozeß, der an einem Semaphor hierauf wartet (nach einer V-Operation, einer simulierten V-Operation für die Ein/Ausgabesteuerung oder für einen Ausnahmeverarbeiter). Er ordnet außerdem Nachrichten in Warteschlangen an einem Semaphor nach einer P-Operation ein, die eine Nachrichtenverbindung freigegeben hat, wenn ein Prozeß an einem Verbindungsfreigabe-Semaphor auf die Weitergabe seiner Nachricht wartet. Die Zuteilereinheit ruft ferner nach der Steuerungseingabe eines im Eigenbereichsmodus ablaufenden Prozesses oder nach einem Streit zwischen zwei Prozessen, wenn der Prozeß weiterläuft und sich im Eigenbereichsmodus befindet, die Firmware für Eigenbereichsbefehle auf. Er ruft darüberhinaus Firmware zur Dekorerweiterung auf für
(a) einen zeitweiligen Aufruf während der Steuerungswegnahme eines Prozesses, der in jener Dekorerweiterung abläuft;
(b) einen zeitweiligen Aufruf während der Steuerungsübernahme eines Prozesses, der in jener Dekorerweiterung abläuft;
(c) einen bestimmten Aufruf am Ende der Steuerungsübergabe eines Prozesses, welcher in der Dekorerweiterung abläuft; und
(d) einen bestimmten Aufruf nach einem Widerstreit, wenn der laufende Prozeß weitergeht und in diesem Dekorerweiterungsinodus abläuft.
.Außerdem versetzt der Zuteiler das System in den Leerlauf, wenn kein laufender Prozeß vorhanden ist. Es gibt verschiedene Wege, zum Zuteiler zu gelangen oder diesen zu verlassen:
(1) die Einleitungsprozedur SIP ergibt eine Eingangsstelle als letzten Schritt;
.... (2) der Start- und Aussetzbefehl führt zu einem Zugang zum Zuteiler;
(3) P- und V-Operationen ergeben Zugang zum Zuteiler. Die P-Operation nimmt eine Nachricht von einem Semaphor auf f und wenn keine Nachricht vorhanden ist, geht der Prozeß in den Wartezustand über.
509845/0732
Kurz gesagt, istder Zuteiler der Hauptmechanismus, welcher die Prozesse verwaltet und damit auch die Prozeßsteuerblöcke,indem er entscheidet, welcher Prozeß ablaufen soll,und dann die erforderliche Aktion einleitet, beispielsweise eine Steuerungswegnahme für den gerade laufenden Prozeß. Dies bedeutet, daß er in den Prozeßsteuerblock alle Informationen, die für den laufenden Prozeß in Hardware-Registern,'Zwischenspeichern und dergl. enthalten sind, einschreibt. Außerdem führt zur Steuerungsübergabe an den neuen Prozeß, d.h. er schreibt aus dem Prozeßsteuerblock in die verschiedenen Hardware-Register,Zwischenspeicher und dgl. alle Informationen ein, welche für die Durchführung des neuen Prozesses erforderlich sind.
Eine Darstellung der vom Zuteiler ausgeführten Funktionen ergibt sich aus den Flußdiagrammen gemäß den Figuren 14a bis 14i. Beispielsweise ist der Block 1402 in Figur 14a eine Darstellung der von einem Zuteiler ausgeführten Funktion, wobei ein Mikroprogrammwort vom Speichersteuerwerk geliefert wird und nach Dekodierung im Dekoder 1359 die entsprechenden Teile der Zentraleinheit über eine geeignete Folge von MikrobefehlsSignalen 1360, 1361 usw. steuert, um das Internprozeß-Warteschlangenwort IPQW aus der Systembasis im Speichersubsystem 102 herauszunehmen und in den Zwischenspeicher 1315 zu übertragen. Gleichzeitig ruft der Zuteiler den GO-Segmentdescriptor (vgl. Figur 12) aus derjenigen T-Tabelle ab, auf welche das G-Tabellenwort GTW in der Systembasis hinweist. Die Bits 16 bis 31 des IPQW enthalten ein 16-Bit positives ganzzahliges, welches die Verschiebung von der Basis des GO-Segments zum Kopf (erstes Byte) der Warteschlange Q/PR/RDY vorbereiteter Prozesse darstellt. Sind die Bits 16 bis 31 des IPQW-Wortes gleich 0, so wird die Warteschlange als leer angesehen. Dies bedeutet, daß gegenwärtig kein Prozeß in der Warteschlange steht. Die nächste im Entscheidungsblock 1405 zu entscheidende Frage ist, ob ein Prozeß gegenwärtig abläuft. Hierzu wird festgestellt, ob der Vakanzimlikrifcor gesetzt ist oder nicht. Ist er gesetzt und ist, wie soeben festgestellt wurd, kein weiterer Prozeß
6098*5/0732
in der Warteschlange, so geht die Anlage in den Leerlaufzustand 1406 über. Läuft jedoch gerade ein Prozeß ab und ist kein weiterer im Wartezustand, so nimmt der laufende Prozeß seinen Befehl 1407 auf.
Im Entscheidungsblock 1403 des Flußdiagramms (Figur 14a) wird der Kopf der durch das IPQW-Wort im GO-Segment angezeigten Warteschlange in den Zwischenspeicher übernommen, wenn ein positiv ganzteiliger Wert im Hinweisadressenbereich des IPQW, d.h. in den .Bits 16-31 vorhanden ist. Um Wiederholungen zu vermeiden, werden hier die Zwischenfunktionen des Zuteilers in Verbindung mit der !Steuereinheit und der Zentraleinheit weggelassen. Es ist jedoch zu beachten, daß solche Zwischenfunktionen typischerweise vorhanden sind. Bis zu dieser Stelle ist bestimmt worden, daß irgendein Prozeß in der Warteschlange steht. Ehe weitere Aktionen eingeleitet werden können, ist eine Bestimmung nötig, ob gegenwärtig ein Prozeß in der Zentraleinheit abläuft. Dies wird mittels des Bestimmungsblocks 1410 getan. Läuft gegenwärtig kein Prozeß ab, .so wird der Kopf der Warteschlange 1412 in Bearbeitung genommen. Ist jedoch ein Prozeß im Gange, so muß der Zuteiler bestimmen, ob der laufende Prozeß oder der Kopf der Warteschlange Priorität hat. Hierzu wird das Prioritäts-Byte des laufenden Prozesses CJP im .laufenden Prozeßwort des Systembasis-Prozeßsteuerblocks 400 bei 1413 abgerufen. Eine Entscheidung wird bei 1414 gefällt, ob der laufende Prozeß CJP von geringerer Priorität ist als der an der Spitze der Warteschlange stehende neue Prozeß NJP. Hat der laufende Prozeß keine niedrigere Priorität als der neue, so behält der laufende Prozeß seine Steuerbefugnis über die Zentraleinheit und der Ausscheidungsanzeiger wird bei 1415 zurückgestellt. Dieser steht immer auf 0, sofern nicht ein oder mehrere neue Prozesse seit Beginn der letzten Befehlsausübung für den alten Prozeß in die Warteschlange eingereiht wurden und dadurch eine Konfliktmöglichkeit geschaffen worden ist. Nur in diesem Fall wird der Ausscheidungsanzeiger auf "1" gesetzt. Ehe der laufende Prozeß weitergehen und weitere Befehle ausführen kann, wird bestimmt,
ob er im Dekorerweiterungsmodus 1415 abläuft. Ist dies der Fall, so wird der nächste Befehl im Emulationsmodus, d.h. in der Dekorerweiterung ausgeführt. Läuft er hingegen nicht im Dekorerweiterungsmodus ab, so erfolgt die Ausführung des nächsten Befehls im
Eigenbereichsmodus. Hat im Entscheidungsblock 1414 der neue Prozeß am Kopf der Warteschlange eine höhere Priorität als der alte, so wird dem laufenden Prozeß die Steuerungsbefugnis weggenommen und dem neuen Prozeß übertragen. Hierzu bewirkt eine Firmware-Prioritätsubroutine PRIQ 1418 die Einordnung des laufenden Prozesses CJP in die Warteschlange, indem sie gemäß LIFO-Priorität und Prioritätsnummer zunächst unter der Steuerung der Firmware Subroutine RLLO 1419 den alten Prozeß absetzt. Die RLLO Subroutine bewirkt das Einschreiben der in den Generalregistern, Basisregistern, wissenschaftlichen Registern, T-Registern, Statusregistern und im Befehlszählwerk enthaltenen Informationen des alten Prozesses zurück in die geeigneten Speicherbereich des Prozeßsteuerblocks im Hauptspeicher und bewirkt die Fortschreibung der Verarbeitungszeitberechnung. Außerdem wird die DEXT-Nummer des Prozeßhauptwortes PMWO im Prozeßsteuerblock 400 bei 1420 forigeschrieben.
Der neue Prozeß NJP ist nunmehr für die Steuerungsübernahme vorbereitet. Das Grenzadressenregister BAR wird abgerufen bei 1422/ und das laufende Prozeßwort RPW wird von der Adresse BAR plus der Systembasis bei 1423 abgerufen. Der Name des neuen Prozesses NJP wird zunächst in das laufende Prozeßwort RPW eingeschrieben und da dieser Name in der Prozeßverbindung PL der Warteschlange Q/PR/RDY steht, wird der Name in der Prozeßverbindung PL im Block 1424 in das laufende Prozeßwort eingegeben. Damit wird der neue Prozeß" aus der Warteschlange der nunmehr laufende Prozeß und ist in der Lage, die Zentraleinheit zu steuern. Er wartet nicht länger in der Q/PR/RDY-Warteschlange und muß folglich aus dieser Warteschlange entfernt werden, indem sein Name an der Stelle 1425 aus der Prozeßverbindung PL dieser Warteschlange heraus genommen wird. Sobald dies erledigt ist, wird die Warteschlange durch eine Firmware-Subroutine UQLK bei 1425a fortgeschrieben. Die JP-Nummer dos gerade aus der Anlage herausgenommenen Prozesses wird
in eine Prozeßverbindung in der Q/PR/RDY-Warteschlange eingegeben, weil er nunmehr nicht langer die Anlage steuert, sondern bei 1426 •auf sie warten muß. Zu diesem Zeitpunkt wird die Obergabe der Steuerung der Zentraleinheit auf den neuen Prozeß und die Einordnung des alten Prozesses in die Warteschlange bewirkt, denn dort befindet sich der neue Prozeß in der Steuerbefugnis über die Zentraleinheit, der Vakanzanzeiger steht bei 1427 auf "0". Würde kein laufender Prozeß die Zentraleinheit steuern, so stünde der Vakanzanza.ger auf "1". Nunmehr ist die Zuordnung des Prozessors beendet, der neue Prozeß arbeitet jetzt mit der Zentraleinheit zusammenjUnd der alte Prozeß befindet sich in der Warteschlange. Noch ist jedoch der neue Prozeß noch nicht in der Lage abzulaufen, weil die Hardware der Zentraleinheit 1306 in Figur 13a wie z.B. die Generalregister 1307, die Basisregister 1308, die wissenschaftlichen Register 1309, das T-Register 1310, die Zustandsregister 1311 und der Befehlszähler 1312 vom Prozesteuerblock des neuen Prozesses erst mit Steuerinformationen versorgt werden müssen.
Hierzu steuert die Firmware-Subroutine 1430 die Zentraleinheit und ruft zunächst das PMW 3 vom Prozeßsteuerblock (Figur 4) in den Zwischenspeicher 1315 und anschließend das Prozeßhauptwort 0 ab. Das MBZ-FeId des PMW 0 wird bei 1433 überprüft und wenn es nicht gleich binär 0 ist, erscheint ein PCB-Ausnahmesignal, Ist jedoch das MBZ-FeId des PMW 0 gleich Null, so wird das PMW 1 bei 1434 abgerufen. Erneut wird das MBZ-FeId des PMW 1 überprüft, um festzustellen, ob es gleich 0 ist oder nicht. Ist es nicht gleich 0, so erscheint ein einen unzulässigen Steuerblock anzeigendes Ausgangssignal. Andernfalls geht der Zuteiler nach C über. Das Adressraumwort ASW 0 wird aus dem entsprechenden Speicher im PCB abgerufen und der Segmenttabellenwortumfang STWSZ bei 1437 überprüft, um festzustellen, ob er kleiner als 7 ist oder nicht. Ist er größer als 7, so entsteht ein PCB-Ausnahmesignal. Ist es kleiner oder gleich 7, so wird das ASW 1 bei 1438 aus dem PCB entnommen und sein STWSZ-FeId bei 1439 überprüft um festzustellen, ob
609845/0732
es kleiner oder gleich 8 ist oder nicht. Ist dieses Feld größer als 8, erscheint ein PCB-Ausnahmesignal.. Ist STWSZ gleich oder kleiner als 8, so wird bei 1440 das Ausnahmewort EXW abgerufen und sein MBZ-FeId überprüft um festzustellen, ob es gleich O ist
en oder nicht. Ist es gleich 0, so entsteht ein ein unzulässigen PCB anzeigendes Ausnahmesignal. Ist es gleich Ö, so wird das Stapelspeicherwort SKW bei 1442 abgerufen und sein MBZ-FeId bei 1443 überprüft. Ist das MBZ-FeId nicht 0, so erscheint ein PCB-Ausnahmesignal;andernfalls wird das Befehlszählerwort ICW aus dem PCB abgerufen und in dem Befehlszähler IC eingegeben und sein Hin-. weisfeld TAG bei 1445 überprüft, ob es gleich 0 ist oder nicht. Ist es nicht gleich 0, so erscheint ein Signal für einen unzulässigen PCB. " Andernfalls wird das MBZ-FeId (Bits 0-31) bei 1446 abgerufen und bei 1447 überprüft, ob es gleich 0 ist oder nicht. Ist es nicht gleich 0, dann erscheint ein PCB-Ausnahmesignal; ist es jedoch gleich 0, so werden die Stapelspeicherbasisworte SBW 0, 1 und 2 bei 1448 abgerufen. Der Inhalt der acht Basisregister im Basisregister-Sicherheitsbereich des PCB wird bei 1449 abgerufen und in den Basisregistern 1308 der Anlage abgelegt. Dann werden die Inhalte der 16 Generalregister aus dem Generalregister-Sicherstellungsbereich des PCB bei 1450 abgeladen und in die Generalregister der Zentraleinheit bei 13Q7 eingegeben. Vor dem Abruf der wissenschaftlichen Register wird das Fähigkeitsbyte desPMW 0 überprüft, um festzustellen, ob der wissenschaftliche Modus benutzt wird oder nicht (1451). Wird der wissenschaftliche Modus verwendet, dann werden die Inhalte der wissenschaftlichen Register aus der entsprechenden Sicherstellungszone des PCB abgerufen und bei 1452 gespeichert. Die Firmware prüft anschliessend das Fähigkeitsbyte des PMW 0, um festzustellen, ob der Berechnungsmodus angewandt wird (1453). Ist dies der Fall, d.h. steht das Fähigkeitsbyte auf binär 1, so besteht im PCB ein Berechnungswort und das Berechnungswort RTA für die Vorbereitungszeit wird fortgeschrieben. Anschließend überprüft die Firmware, ob die DEXT-Nummer auf 0 steht.(1454). Ist dies nicht der Fall, so gibt sie an, daß . die Maschine' im Emulationsmodus arbeiten kann, d.h. die Dekorerweiterungsmöglichkeit benutzt wird. Dement-
809845/0732
sprechend wird die DEXT-Nummer des PMW 1 bei 1455 überprüft, um festzustellen, ob sie größer oder kleiner als das DETSZ-FeId des Prozeßhauptwortes 3 ist. Ist sie größer, so erscheint bei 1456 eine PCB-Ausnähme. Ist die DEXT-Nummer kleiner als das DETSZ-PeId aber nicht gleich 0, dann läuft die Maschine in einem zulässigen Emulationsmodus ab und geht zu F über. Wenn im Entscheidungsblock 1455 das DEXT-FeId gleich 0 ist, so wird der Eigenbereichmodus ausgeführt und die Maschine ruft die Segment-Tabellenworte STW bei 1457 ab. Das Restzeitwort RTO des Prozeß-Steuerblocks wird bei 1458 abgerufen und der Prozeßzeitgeber mit derjenigen Zeitspanne geladen, welche der laufende Prozeß im Arbeitszustand zubringen kann.
Bis zu diesem Zeitpunkt hat entweder(a)ein neuer Prozeß NJP die Steuerung der Zentraleinheit übernommen, falls ein alter Prozeß CJP ".in der Maschine war und der neue Prozeß eine höhere Priorität als der alte hat, oder (b) es war kein alter Prozeß in der Zentraleinheit und der Kopfprozeß der Warteschlange wurde verarbeitet. Unter der Bedingung (a) wurde der alte; Prozeß aus dem laufenden Prozeßwort entfernt und in eine Prozeßverbindung PL in der Warteschlange eingegeben, während der neue Prozeß in der Prozeßverbindung Q/PR/RDY in das laufende Prozeßwort RPW eingefügt wurde und somit die Zustände der beiden Prozesse umgeschaltet wurden. Der neue Prozeß wurde zum laufenden Prozeß und erhielt Steuerbefugnis über die Zentraleinheit, während der alte Prozeß diese Steuerbefugnis abgegeben hat. Dann erfolgt der Zugriff zum PCB des neuen Prozesses^und die Information zur Durchführung des neuen Prozesses wurde in den Zwischenspeicher oder in die Registeranordnung des Adressensteuerwerks übertragen.
Falls gemäß Zustand (b) kein alter Prozeß die Zentraleinheit steuerte, wurde der Kopfprozeß der Warteschlange der vorbereiteten Prozesse zur Verarbeitung übernommen und der neue Prozeß zum laufenden Prozeß, weil der Zuteiler dieser von der Prozeßverbindung PL am Kopf der Warteschlange entnommen und in das RPW-Wort übertragen hat. Hierdurch entstand eine leere Prozeß-
609845/0732
verbindung PL in der Warteschlange, die herausgenommen werden mußte.
Am Entscheidungsblock 1461 bestimmt die Firmware, ob ein laufender Prozeß Steuerbefugnis über die Zentraleinheit hatte und falls eine freie Prozeßverbindung FPLS bestand, erfolgte ein Zugriff hierzu und sie wurde in die Warteschlange eingereiht und der laufende Prozeß eingeschrieben. Wenn jedoch kein laufender Prozeß die Zentraleinheit steuerte, wird das PMW 0 des neuen Prozesses bei 1460 fortgeschrieben und erneut bei 1463 überprüft, ob ein laufender Prozeß in der Maschine ist. Ist dies nicht der Fall, so wird die Prozeßverbindung des neuen Prozesses, welcher sich in der Warteschlange befand und nun die Maschine steuert, bei 1466 aus der Warteschlange Q/PR/RDY herausgenommen und wird zu einem
FLSP
VerbindungsfreLgabesemaphor,'und nunmehr in die Warteschlange freier Prozeßverbindungen (805 in Figur 9) eingereiht. Sie wird zu einem Teil der Warteschlange 1466a der freien Prozeßverbindungen. Die Inhalte der Grenzadressenregister BAR werden abgerufen bei 1464( und das laufende Prozeßwort RPW des neuen Prozesses, welcher nunmehr der laufende Prozeß ist, wird bei BAR plus 56 der Systembasis abgelegt und dadurch fortgeschrieben, daß die Identifizierung des neuen Prozesses bei 1465 in das laufende Prozeßwort RPW eingeschrieben wird. Der Vakanzindikator wird auf 0 gesetzt, wenn kein laufender Prozeß vorhanden war. Anschließend wird der Ausscheidungsindikator bei 1467 auf 0 gesetzt und der Segmentassoziator AS 132 in Figur], der ein typischer inhaltsadressierbarer Speicher ist, wird bei 1471 gelöscht. Damit erreicht der Prozeß den Prozeßmodus bei 1470. Dieser zeigt an, daß Ausnahmesignale durch den im Prozessor ablaufenden Prozeß und nicht durch das Betriebssystem verarbeitet werden. Die Firmware schreitet dann zu CAB 1480 fort und ein asynchrones Auffang-Bit AB wird bei 1481 überprüft, ob es auf binär 1 steht oder nicht. Steht das AB-Bit auf 1f dann erfolgt eine Überprüfung bei 1482, ob die Prozeßringnummer PRN größer oder gleich der asynchronen Ringnummer ARN ist. Das Abfang-Bit AB und die Abfang-Ringnummer ARN befinden sich im Prioritäts-Byte des PCB jedes Prozesses und haben Bedeutung, wenn
609845/0732
sich der Prozeß im Verarbeitungszustand befindet. Sie werden aus dem RPW an der Stelle BRA plus 56 der Systembasis abgeleitet und zurückgestellt, weil der nächste Schritt 1484 zu einer asynchronen Abfangroutine führt, die jene Zustände berücksichtigt, welche veranlassen, daß das asynchrone Abfang-Bit oder die asynchrone Ringnummer in die erste Stelle eingegeben werden. Würden dies Bits nicht zurückgesetzt, so würde der nächste Firmware-Durchlauf anzeigen, daß irgendetwas falsch gelaufen ist, obwohl tatsächlich nichts falsch ist. Folglich würde immer die asynchrone Abfangroutine 1584 auftreten und niemals eine Durchführung erfolgen. In den Entscheidungsblocks 1481 und 1482 würde, wenn das AB-Bit nicht gesetzt ist oder das AB-Bit gesetzt und die Prozeßring- ' nummern nicht größer als die asynchrone Ringnummer ist, die Firmware übergehen, zu bestimmen, in welchem Modus der Prozessor laufen würde, nämlich im normalen Modus oder im Emulationsmodus. Demzufolge wird die DEXT-Nummer überprüft ob sie auf 0 gesetzt ist und wenn nicht, läuft bei 1487 der Normalmodus der Maschine an. Ist jedoch die DEXT-Nummer nicht gleich 0, so wird bei 1486 der Emulationsmodus eingeleitet.
Der Systembasis-Umschaltbefehl
Figur 15a zeigt den Aufbau des Systembasis-Umschaltbefehls. Der Operationscode OP 1501 ist ähnlich dem Operationscode anderer Befehle und zeigt die auszuführende Operation an. Der komplementäre Code C 1502 wird in Verbindung mit dem Operationscode 1501 benutzt, sofern der Operationscode mehr als einen Befehl 1501 mit benutzt, wobei der komplementäre Code 1502 den Befehl genau bestimmt. Die P- und V-Operationen haben 12 Befehle und benutzen einen Operationscode. Der komplementäre Code zusammen mit dem Op-Code bestimmt, welche der 12 P- und V-Befehle auszuführen ist. Die Adressilbe AS 1503 des Basisumschaltbefehls ist die Adresse, welche auf eine neue Kopie der Systembasis hinweist, welche in den Hauptspeicher und den Zwischenspeicher geladen werden soll. Folglich weist diese Adresse auf eine völlig neue Systembasis hin. Im typischen Fall
609845/0732
wird eine 60 Byte-Zone, welche mit der durch das Adressenfeld des Systembasis-Umschaltbefehls bestimmten Adresse beginnt, in den Systembasisbereich übertragen, der mit der Adresse BAR anfängt. Diese Übertragung erfolgt auch in den Zwischenspeicher. Diese Zone ist somit die neue Systembasis, welche die vorhergehende Systembasis ersetzt. Der ablaufende Prozeß verschwindet somit, weil sein Prozeßsteuerblock nicht weiter fortgeschrieben wird und keine Verbindungsoperation ausgeführt wird. Der Prozessor wird in den Vakanzzustand überführt und der Zuteiler angewählt.
Es ist Aufgabe der Systemsoftware, die neue Information für die Systembasis und das neue GO-Segment vorzubereiten, ehe der Umschaltbefehl ausgeführt wird. Hierzu muß der SWSB-Befehl bei gesperrtem Hardwaregatter HG begonnen werden, weil es andernfalls einen Zustandscode CC zurückgibt, ohne tätig zu werden. Bei Erledigung des SWSB-Befehls verbleibt das Hardwaregatter HG im ungesperrten Zustand. Auch wird der Vakanzschalter auf "1" gesetzt. Dies zeigt an, daß kein Prozeß abläuft. Folglich geht das System zum Kopf der Bereitschaftswarteschlange für das interne Prozeß-Warteschlangenwort IPQW über und sucht die Hinweisadresse auf die Warteschlange vorbereiteter Prozesse heraus. Es schreitet dann zum Kopf der Bereitschaftswarteschlange weiter und beginnt mit einem neuen Prozeß. Der Prozeß, welcher den Systembasisumschaltbefehl SWSB ausgeführt hat, wird beendet, weil ein Vakanzzustand in den Vakanzanzeiger eingegeben ist. Dies bedeutet, daß kein ablaufender Prozeß vorhanden ist.
Anhand der Figuren 15b und 15c soll nachfolgend der Systembasis-Umschaltbefehl in Form von Hardware näher beschrieben werden. Der Befehl beginnt bei 1504,und im Punkt 1505 wird festgestellt, ob die Prozeßringnummer PRN gleich 0 ist. Dies ist nötig, so daß der Systembasis-Umschaltbefehl in der höchsten Privilegebene abläuft. Ist die Prozeßringnummer PRN nicht gleich Null, dann tritt
609845/0732
261712? j
ein Vorzugsbefehl-Ausnahmesignal bei 1506 auf. Ist hingegen die Prozeßringnummer PRN gleich Null, so wird das Hardwaregatter im Hilfsspeicher 1317a des Rechenwerks 1317 bei 1507 überprüft, um festzustellen, ob es gesperrt ist oder nicht. Es ist wichtig, daß dieses Hardwaregatter während der Ausführung des Systembasis-Umschaltbefehls gesperrt ist. In diesem Zustand sind keine Ein/Ausgabeunterbrechungen oder Ausnahmeoperationen zugelassen. Tritt ein solcher Ausnahmeoder Fehlerzustand auf, während das Hardwaregatter verriegelt ist, so fällt das System ganz zusammen. Ein solcher Systemzusammenfall (crash) ist während der Systembasisänderung eher erwünscht als eine Unterbrechung, bei der die Systembasis nur halb geändert wird. Folglich wird, wenn das Hardwaregatter nicht verriegelt ist, der Zustandscode CC in einem der Zustandsregister bei 1508 auf 2 gesetzt und zeigt an, daß das Hardwaregatter HG nicht verriegelt ist.
Der Systembasis-Umschaltbefehl ist dann bei 1509 nicht zulässig, solange das Hardwaregatter nicht verriegelt ist. Ist andererseits das Hardwaregatter HG gesperrt, so wird festgestellt, ob das neue Systembasiswort, d. h. die Adressilbe AS auf ein Vierfachwort ausgerichtet ist. Ist die Adressilbe AS nicht in Bezug auf ein Vierfachwort ausgerichtet, so wird der Zustandscode CC auf gesetzt und zeigt an, daß der Systembasis-Umschaltbefehl bei 1509 aufhört. Auf der anderen Seite wird, wenn die Adressilbe AS auf ein Vierfachwort ausgerichtet ist, der Zustandscode bei 1512 auf 0 gesetzt und gibt an, daß der Systembasis-Umschaltbefehl erfolgreich war. Anschließend kann die Verschiebeoperation 1513 von der Abbildung der neuen Systembasis in den Systembasisbereich bei BAR erfolgen. Schließlich wird nach dem übertragen der neuen Systembasis in die BAR-Systembasis das Hardwaregatter HG bei 1514 entsperrt, der Vakanzindikator im Hilfsspeicher 1317a bei 1515 auf 1 gesetzt und damit angezeigt, daß kein Prozeß abläuft, und schließlich der Befehl bei 1516 beendet.
£098*5/0732
261712?
Figur 15c zeigt das Flußdiagramm des Blocks 1513 im einzelnen. In diesem Schritt wird das Abbild der neuen Systemmbasis in den BAR-Systembasisbereich übertragen. Er enthält das Laden des Zwischenspeichers SPM mit Information aus der neuen Systembasisabbildung. Der Beginn 1517 des Systembasis-Umschaltbefehls liegt in Wirklichkeit im Block 1513 der Figur 15b. Im typischen Fall werden 60 Bytes des in der Adressilbe AS befindlichen Abbild der neuen Systembasis bei 1518 in die Systembasis übertragen, deren Adresse durch das Grenzadressregister BAR angezeigt wird. Ein neues G-Tabellenwort GTW aus dem neuen Systembasisabbild wird bei 1519 in den Zwischenspeicher SPM des Hilfsspeichers 1317a geladen. Anschließend wird ein neues J-Tabellenwort JTW bei 1520 in den Zwischenspeicher geladen. Schließlich erfolgt das Einladen eines internen Prozessor-Warteschlangenwortes IPQW bei 1521 in den Zwischenspeicher. Dieser Teil des Befehls ist bei 1516 abgeschlossen und geht zum Block 1514 über, wie dies zuvor beschrieben wurde.
Hinsichtlich der in der Beschreibung verwendeten Begriffe und Abkürzungen wird auf die Begriffsliste und das AbkürzungsVerzeichnis der älteren Patentanmeldung gemäß DT-OS 25 17 171 (dort Seiten 210 bis 234) verwiesen, wobei unter Q/PR/RDY eine Warteschlange von Prozessen im Bereitschaftszustand zu verstehen ist.

Claims (6)

  1. Patentansprüche
    /IJ Mehrfachprogramm-Datenverarbeitungssystem mit einer Zentraleinheit , mehreren Gruppen von im Ablauf-, Bereitschafts-, Warte- oder Aussetzzustand befindlichen Prozessen, einem Betriebssystem zur Erzeugung und Ausschaltung von Prozessen, Einrichtungen zum Informationsaustausch zwischen den Prozessen und dem Betriebssystem sowie mit nur für das Betriebssystem erkennbaren Zwischenspeicherregxstern, gekennzeichnet durch
    a) erste Mittel innerhalb der genannten Einrichtungen, welche im Informationsaustausch mit dem Betriebssystem stehen und eine Adresse für einen ausgewählten Prozeß liefern;
    b) zweite Mittel als Teil der ersten Mittel, welche die Priorität des ausgewählten Prozesses in Bezug auf andere Prozesse anzeigen, um wenn vorbereitet, Steuerbefugnis über die Zentraleinheit zu erlangen;
    c) dritte Mittel innerhalb der genannten Einrichtung, welche im Informationsaustausch mit dem Betriebssystem stehen und eine Adresse für eine ausgewählte Gruppe von Prozessen liefern;
    d) vierte, an die ersten Mittel und an die Zwischenspeicher angeschlossene Mittel zum Ändern der Information in den ersten Mitteln und in den Zwischenspeicherregistern.
    ^09845/0732
  2. 2. DV-System, insbesondere nach Anspruch I1InIt einer in einem vorgegebenen Bereich des Hauptspeichers vorgesehenen Informationsaustauschzentrale, einem Informationen hierfür liefernden Betriebssystem sowie einem Zwischenspeicher in der Zentraleinheit, der gesteuert durch das Betriebssystem Teile der in der Informationszentrale befindlichen Information speichert, gekennzeichnet durch
    a) erste Mittel zur Erzeugung eines Abbilds der Informationszentrale an einer anderen Stelle des Hauptspeichers;
    b) vom Betriebssystem abhängige zweite Mittel zur Änderung der Information im genannten Abbild und damit zur Erzeugung eines neuen Informationsabbildes;
    c) auf einen der Prozesse ansprechende dritte Mittel, welche das neue Abbild in die Informationszentrale und den Zwischenspeicher übertragen.
  3. 3. DV-System nach Anspruch 2, dadurch gekennzeichnet , daß die dritten Mittel durch einen fest programmierten (Firmware) Systembasis-Umschaltbefehl gegeben sind.
  4. 4. DV-System nach Anspruch 3, dadurch gekennzeichnet , daß das Rechenwerk der Zentraleinheit einen Hilfsspeicher aufweist.
  5. 5. DV-System nach Anspruch 4, dadurch gekennzeichnet , daß der Hilfsspeicher ein einen Sperrzustand und einen ungesperrten Zustand aufweisendes Gatter aufweist, wobei im entsperrten Zustand interne Unterbrechungen oder externe Ausnahmezustände möglich und im Sperrzustand unmöglich sind.
    $09845/0732
  6. 6. DV-System nach Anspruch 5, dadurch gekennzeichnet , daß das Gatter durch den Systembasisümschaltbefehl bei dessen Ausführung gesperrt und nach Ablauf der Ausführung entsperrt wird.
    SQ9845/0732
DE19762617127 1975-04-21 1976-04-17 Mehrfachprogramm-datenverarbeitungssystem Withdrawn DE2617127A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/570,331 US4351024A (en) 1975-04-21 1975-04-21 Switch system base mechanism

Publications (1)

Publication Number Publication Date
DE2617127A1 true DE2617127A1 (de) 1976-11-04

Family

ID=24279230

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19762617127 Withdrawn DE2617127A1 (de) 1975-04-21 1976-04-17 Mehrfachprogramm-datenverarbeitungssystem

Country Status (4)

Country Link
US (1) US4351024A (de)
JP (1) JPS51149737A (de)
DE (1) DE2617127A1 (de)
FR (1) FR2308987A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2060225B (en) * 1979-09-29 1983-05-25 Plessey Co Ltd Multi-programming data processing system process suspension
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
US4507730A (en) * 1981-10-01 1985-03-26 Honeywell Information Systems Inc. Memory system with automatic memory configuration
US4494189A (en) * 1982-04-26 1985-01-15 International Business Machines Corporation Method and means for switching system control of CPUs
JPS593642A (ja) * 1982-06-30 1984-01-10 Fujitsu Ltd 制御レジスタ処理方式
US4562538A (en) * 1983-05-16 1985-12-31 At&T Bell Laboratories Microprocessor having decision pointer to process restore position
US4787031A (en) * 1985-01-04 1988-11-22 Digital Equipment Corporation Computer with virtual machine mode and multiple protection rings
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
US6219830B1 (en) * 1993-03-23 2001-04-17 Apple Computer, Inc. Relocatable object code format and method for loading same into a computer system
US5619702A (en) * 1994-05-25 1997-04-08 National Instruments Corporation Method and apparatus for programming registers using simplified commands
US5909574A (en) * 1997-12-23 1999-06-01 Northern Telecom Limited Computing system with exception handler and method of handling exceptions in a computing system
EP1174794A1 (de) * 2000-07-21 2002-01-23 Abb Research Ltd. Verwaltung der Prozessorzeit, die einem von mehreren Programm-Tasks für dessen Ausführung auf einem Prozessor zugeteilt wird
US6772240B1 (en) * 2003-03-04 2004-08-03 Faraday Technology Corp. Method for saving register space in a conventional high-level function call process
US7958436B2 (en) 2005-12-23 2011-06-07 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
TWI463320B (zh) * 2012-11-29 2014-12-01 Mstar Semiconductor Inc 記憶體存取權限控制方法與相關記憶體管理系統

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3665487A (en) * 1969-06-05 1972-05-23 Honeywell Inf Systems Storage structure for management control subsystem in multiprogrammed data processing system
US3670307A (en) * 1969-12-23 1972-06-13 Ibm Interstorage transfer mechanism
US3651473A (en) * 1970-03-27 1972-03-21 Burroughs Corp Expandable interlock exchange for multiprocessing systems
GB1329721A (en) * 1970-05-26 1973-09-12 Plessey Co Ltd Data processing devices
US3735364A (en) * 1970-06-03 1973-05-22 Nippon Electric Co Data handling system for handling data in compliance with normal and special descriptors
US3786427A (en) * 1971-06-29 1974-01-15 Ibm Dynamic address translation reversed
US3725876A (en) * 1972-02-08 1973-04-03 Burroughs Corp Data processor having an addressable local memory linked to a memory stack as an extension thereof
US3889243A (en) * 1973-10-18 1975-06-10 Ibm Stack mechanism for a data processor

Also Published As

Publication number Publication date
FR2308987B1 (de) 1981-03-20
JPS51149737A (en) 1976-12-22
FR2308987A1 (fr) 1976-11-19
US4351024A (en) 1982-09-21

Similar Documents

Publication Publication Date Title
DE2722099C2 (de)
DE2517171A1 (de) Datenverarbeitungssystem mit erweitertem semaphor-aufbau
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE2716051C2 (de) Datenverarbeitungsanlage mit einem oder mehreren Prozessoren mit mindestem einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden
DE2517297A1 (de) Einrichtung zum feststellen eines zu einem zu verhindernden endgueltigen stillstand fuehrenden systemzustandes
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE3850181T2 (de) Logische Betriebsmittelaufteilung für ein Datenverarbeitungssystem.
DE3587622T2 (de) Emulationseinrichtung in einem Datenverarbeitungssystem.
DE3607889C2 (de)
DE2517276A1 (de) Datenverarbeitungssystem
DE69622832T2 (de) Vorrichtung und verfahren für kooperative unterbrechungen in einer preemptiven prozessablauffolgeplanungsumgebung
DE69839194T2 (de) Gerät und verfahren zum initieren hardwarevorrangsmanagement durch softwarekontrollierten registerzugriff
DE2417795C2 (de) Datenverarbeitungsanlage
DE2251876B2 (de) Elektronische datenverarbeitungsanlage
DE2617127A1 (de) Mehrfachprogramm-datenverarbeitungssystem
DE2801563C2 (de)
DE2714805A1 (de) Datenverarbeitungssystem
DE2626703A1 (de) Intern programmierbares datenverarbeitungssystem
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE2718051A1 (de) Datenverarbeitungsanlage mit einrichtungen zur wechselnden bearbeitung mehrerer aufgaben
DE2430127A1 (de) Einrichtung zur steuerung des speicherzugriffs konkurrierender benutzer
DE4011745A1 (de) Taskverfolgungseinrichtung
DE2500006A1 (de) Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen
DE2719295A1 (de) Programmsteuerung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8130 Withdrawal