DE2617127A1 - Mehrfachprogramm-datenverarbeitungssystem - Google Patents
Mehrfachprogramm-datenverarbeitungssystemInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
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
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.
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.
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.
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.
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.
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.
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
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
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 o£(ß{ 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.
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.
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
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)
- 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 durcha) 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. 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 durcha) 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. DV-System nach Anspruch 2, dadurch gekennzeichnet , daß die dritten Mittel durch einen fest programmierten (Firmware) Systembasis-Umschaltbefehl gegeben sind.
- 4. DV-System nach Anspruch 3, dadurch gekennzeichnet , daß das Rechenwerk der Zentraleinheit einen Hilfsspeicher aufweist.
- 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. 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
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)
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)
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 |
-
1975
- 1975-04-21 US US05/570,331 patent/US4351024A/en not_active Expired - Lifetime
-
1976
- 1976-04-17 DE DE19762617127 patent/DE2617127A1/de not_active Withdrawn
- 1976-04-19 JP JP51044417A patent/JPS51149737A/ja active Pending
- 1976-04-21 FR FR7611713A patent/FR2308987A1/fr active Granted
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 |