DE2456531A1 - Computer-system - Google Patents
Computer-systemInfo
- Publication number
- DE2456531A1 DE2456531A1 DE19742456531 DE2456531A DE2456531A1 DE 2456531 A1 DE2456531 A1 DE 2456531A1 DE 19742456531 DE19742456531 DE 19742456531 DE 2456531 A DE2456531 A DE 2456531A DE 2456531 A1 DE2456531 A1 DE 2456531A1
- Authority
- DE
- Germany
- Prior art keywords
- devices
- address
- computer system
- processes
- central unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
- 238000000034 method Methods 0.000 claims description 466
- 230000008569 process Effects 0.000 claims description 421
- 230000015654 memory Effects 0.000 claims description 157
- 238000012545 processing Methods 0.000 claims description 30
- 238000004891 communication Methods 0.000 claims description 13
- 239000000725 suspension Substances 0.000 claims description 3
- 238000012384 transportation and delivery Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims 2
- 238000004886 process control Methods 0.000 description 37
- 238000012423 maintenance Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 238000012360 testing method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000011218 segmentation Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000013523 data management Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 230000002853 ongoing effect Effects 0.000 description 4
- 101000916503 Homo sapiens Zinc finger CCHC domain-containing protein 12 Proteins 0.000 description 3
- 102100028878 Zinc finger CCHC domain-containing protein 12 Human genes 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- DQBAHTQWQZRMFH-CRPAWOMZSA-N (3R,5S,6S,7S,8S,9S,10S,13R,14S,17R)-6-ethyl-17-[(2R)-5-hydroxypentan-2-yl]-10,13-dimethyl-2,3,4,5,6,7,8,9,11,12,14,15,16,17-tetradecahydro-1H-cyclopenta[a]phenanthrene-3,7-diol Chemical compound CC[C@@H]1[C@H](O)[C@H]2[C@@H]3CC[C@H]([C@H](C)CCCO)[C@@]3(C)CC[C@@H]2[C@@]4(C)CC[C@@H](O)C[C@@H]14 DQBAHTQWQZRMFH-CRPAWOMZSA-N 0.000 description 1
- 241000606643 Anaplasma centrale Species 0.000 description 1
- 229930091051 Arenine Natural products 0.000 description 1
- 241000251730 Chondrichthyes Species 0.000 description 1
- 241000238557 Decapoda Species 0.000 description 1
- RPNUMPOLZDHAAY-UHFFFAOYSA-N Diethylenetriamine Chemical compound NCCNCCN RPNUMPOLZDHAAY-UHFFFAOYSA-N 0.000 description 1
- 238000012369 In process control Methods 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 244000309464 bull Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000010965 in-process control Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Description
COMPAGNIE HONEYWELL BULL
94, Avenue Gambetta
PARIS. (20)/Frankreich
94, Avenue Gambetta
PARIS. (20)/Frankreich
Unser Zeichen: H 1026
Computer-System
Die vorliegende Erfindung bezieht sich allgemein auf Computer-Systeme und insbesondere auf ein System und
ein Verfahren für die Steuerung von Computer-Prozes-.sen
im Rahmen eines Mehrprogramm/Simultanverarbeitungsbetriebs.
Das System gehört der vierten Generation an und entspricht
folgenden Anforderungen:
1. Das System wird als Kommunikations- und Steuerungssystem
klassifiziert.
2. Das System wird primär durch Daten gesteuert und nicht, wie frühere Maschinen, durch Programme.
3. Die Hardware bestimmt die Kommunikations- und Steuerungsprozeduren;
der Gebrauch von System-Programmen wird wesentlich reduziert oder sogar eliminiert.
Schw/Pe
5 0 9823/0695
24CG531
4. Die Verarbeitung erfolgt überwiegend im Echtzeit-Betrieb; die Operationen an Eingangswerten werden
so schnell ausgeführt, daß die Ausgangswerte innerhalb der verlangten Reaktionszeit zur Verfügung
stehen.
5. Das System ist leicht ausbaufähig. Hardware und Software sind in ihrer Funktion modular strukturiert
.
Die Verarbeitung bei Hardware-Software-Computer-Systemen der ersten Generation war relativ unkompliziert;
der Job bzw. das Programm galt als die grundlegende Verarbeitungs-Einheit.
So oft der Benutzer einen Job (Vorgang, Transaktion) initiierte,lief ein Programm ab, das
im allgemeinen kaum oder gar nicht unterbrochen wurde, bis der Job bzw. Vorgang abgeschlossen war. Viel unkomplizierte
Jobs - etwa die Übersetzung und Ausführung von Programmen, die in einer höheren Programmier-Sprache
wie z.B. FORTRAN geschrieben waren - konnten als ein einziger Prozeß ablaufen und taten dies auch. Kompliziertere
Jobs dagegen erforderten Multi-Tasking und erzeugten in ihrem Verlauf weitere Prozesse. (Terminologisch darf
der "Prozeß", der eine fortdauernde Aktivität zum Ausdruck bringt, nicht mit dem Begriff "Programm" verwechselt
werden; das Programm ist die Beschreibung einer Aktivität und kann von einem oder mehreren Prozessen benutzt
werden. Man kann sagen, daß entweder ein Prozeß öder ein Prozessor ein Programm ausführt.)
Als man dazu überging, den Prozeß als grundlegende Verarbeitungseinheit
zu konzipieren, entsprach dies einem Erfordernis der dritten Computer-Generation mit ihrem Mehrprogramm/Simultanverarbeitungsbetrieb.
Denn in einer
509823/0695
Situation, wo mehrere Benutzer simultan bedient werden möchten, bietet sich die Konzeption einer Vielzahl
von Prozessen an, die um die System-Elemente innerhalb des Computer-Systems konkurrieren.
Dabei besteht jeder Prozeß aus einem Programm (dili.
einer geordneten Sammlung von Befehlen und sonstigen den Befehlen zugeordneten Daten), welches durch den
Computer ausgeführt wird und durch die Bearbeitung von Daten einen Benutzer-Job oder eine Phase eines
solchen Jobs ausführt. Wenn viele solcher Prozesse das System gleichzeitig in Anspruch nehmen, wird die
Aufgabe der Kommunikation mit und zwischen diesen Prozessen sowie der Kontrolle und Zuteilung von Systemelementen
für solche Prozesse - speziell im Hinblick auf die Erfordernisse der vierten Computer-Generation extrem
kompliziert.
Die Burroughs-Computer B-6500 und B-7500 waren Thema
eines Artikels von E.A. Hauch und B.A. Dent mit dem Titel "Burroughs B-6500/B-7500 Stack Mechanism", Proc.
AFIPS Spring Joint Comp. Conf. 1968 (Konferenz-Protokolle des amerikan. Verbandes der Datenverarbeitungs-Gesellschaften),
SS. 245-251, Thompson Washington, D.C, sowie eines Artikels von J.G. Cleary mit dem Titel
"Process Handling on Burroughs B-6500", Proceedings of
fourth Australian Computer Conference Adelaide, South' Australia, 1969 (Konferenz-Protokolle). Diese Computer
bieten bis zu einem gewissen Grad Steuerung von Prozessen in der Weise, daß ein "Stapel" (Stack)-Mechanismus
benutzt wird. Im wesentlichen wird "jedem Prozeß Speicherraum für einen Stapel zugeordnet, in welchem lokale Variable,
Referenzen auf Programm-Prozeduren, Datenfelder und
509823/0695
aktuelle Prozeß-Zustände gespeichert werden ....
dieser Stack arbeitet als LIFO-Speicherbereich (als
letzter hinein, als erster heraus).... ein aktiver
Prozeß wird durch einen aktiven Stapel repräsentiert"
(J„G. Cleary, a.a.O. Seite 231-232). Entsprechend hat
der Stapel die Fähigkeit, die dynamische Entwicklung
eines in Ausführung befindlichen Programms zu speichern.
dieser Stack arbeitet als LIFO-Speicherbereich (als
letzter hinein, als erster heraus).... ein aktiver
Prozeß wird durch einen aktiven Stapel repräsentiert"
(J„G. Cleary, a.a.O. Seite 231-232). Entsprechend hat
der Stapel die Fähigkeit, die dynamische Entwicklung
eines in Ausführung befindlichen Programms zu speichern.
Ein Artikel mit dem Titel "Process Control and Communication"
(Prozeß-Steuerung und Kommunikation) von A.J.
Bernstein, G.D. Detlefsen und R.H. Kerr, veröffentlicht
in Betriebssystem-Symposion des ACM (Verband für Computer-Anlagen) , beschreibt "die Struktur von Prozessen und die Möglichkeit der Interprozeß-Kommunikation in einem
Universal-Betriebssystem".
Bernstein, G.D. Detlefsen und R.H. Kerr, veröffentlicht
in Betriebssystem-Symposion des ACM (Verband für Computer-Anlagen) , beschreibt "die Struktur von Prozessen und die Möglichkeit der Interprozeß-Kommunikation in einem
Universal-Betriebssystem".
Bei diesem System kann ein Prozeß aus bis zu vier Teilen bestehen, die als seine logischen Segmente bezeichnet
werden. Diese Segmente können sich an räumlich auseinanderliegenden Speicherstellen befinden, wenn der Prozeß
im Speicher steht. Verschiebung und Schutz dieser Segmente besorgen vier Register.
werden. Diese Segmente können sich an räumlich auseinanderliegenden Speicherstellen befinden, wenn der Prozeß
im Speicher steht. Verschiebung und Schutz dieser Segmente besorgen vier Register.
Generell werden die Prozesse durch ein Betriebssystem gesteuert, das Grundbefehle (d.h. Pseudobefehle) implementiert,
die der Prozeß erteilt; es wird ein Mechanismus benutzt, der den Prozessen die Kommunikation untereinander
ermöglicht. In erster Linie besteht diese Kommunikation darin, daß sich die Prozesse bestimmte Vorgänge teilen genau
wie bei der gemeinsamen Benutzung einer Datei.
Jeder Prozeß hat KIT-Eintragungen (Known Items Table),
die auf dieselbe AIT-Eintragung (Active Items Table) verweisen, welche eine eindeutige Eintragung für jede momentan geöffnete Datei enthält. Mit Hilfe dieser Struktur
kann ein Prozeß Benachrichtigung anfordern (durch Ausgeben des Grundbefehls NOTIFY), wenn das Ereignis eintritt.
Jeder Prozeß hat KIT-Eintragungen (Known Items Table),
die auf dieselbe AIT-Eintragung (Active Items Table) verweisen, welche eine eindeutige Eintragung für jede momentan geöffnete Datei enthält. Mit Hilfe dieser Struktur
kann ein Prozeß Benachrichtigung anfordern (durch Ausgeben des Grundbefehls NOTIFY), wenn das Ereignis eintritt.
509823/069S
Als Resultat erzeugt das Betriebssystem eine Eintragung in einer Ereignis-Warteschlange für das betreffende Ereignis;
diese Eintragung bezeichnet genau den anfordernden Prozeß, der auf Benachrichtigung wartet. An dieser Stelle
kann der anfordernde Prozeß die Ausführung fortsetzen, oder er kann sich selbst durch Erteilung eines Grundbefehls
BLOCK suspendieren.
Man sagt,.das Ereignis trete ein, wenn ihm ein anderer
Prozeß einen Grundbefehl CAUSE erteilt; es kann dann in der Richtungs-Struktur katalogisiert und bearbeitet
werden, wobei die gleichen Grundbefehle benutzt werden. Dann können Informationen von einem Prozeß zum anderen
transferiert werden, oder die Prozesse kooperieren in sonstiger Weise zur Ausführung einer bestimmten Aufgabe.
Andere Grundbefehle im Betriebssystem erzeugen und produzieren Prozesse oder zerstören sie.
Diese Technik der Prozeß-Kommunikation und -Steuerung
bietet keine geordnete dynamische Entwicklungsgeschichte des in Ausführung befindlichen Programms, enthält jedoch
eine Konzeption der Software-Multiplexierung von Prozessen und des Ereignis-Managements. Auch sieht diese Technik
nicht vor, daß ein Prozeß vor dem anderen durch Privilegierungs-Stufen geschützt wird. Sie bietet auch
keine wirksame Methode zur Weitergabe von Nachrichten von einem Prozeß zum anderen. Darüberhinaus erscheinen
die Adressierung von Prozessen und die Verschiebung als . unzureichend für Systeme der vierten Generatbn. Was man
bei Systemen der vierten Generation braucht, ist ein Firmware/Hardware-System mit effizienter Adressierung
und Verschiebung von Prozessen; es muß zugleich Informations-Strukturen
liefern, die genau den Status des
809823/0695
Prozesses angeben und die außerdem den Prozeß bei der
Kontrolle über diesen Status und beim Schutz vor anderen Prozessen und vor ihm selbst durch Privilegierungs-Stufen
unterstützen; ferner muß es die Prozesse wirkungsvoll einsetzen und mit anderen Prozessen synchronisieren;
schließlich müssen die Benutzer die Möglichkeit haben, ihre Programme modular zu schreiben, so daß man von einem Programm-Modul
zum anderen übergehen kann.
Weiterhin zielt die vorliegende Erfindung auf ein System und eine Methode für die Prozeß-Steuerung, welche die Betriebskosten
senken.
Es ist ein weiteres Ziel der Erfindung, ein System und ein Verfahren für die Prozeß-Steuerung zu liefern, bei denen
die Prozeß-Status-Informationen und Steuerinformationen zentralisiert sind.
Ferner zielt diese Erfindung auf ein System und ein Verfahren für die Abrechnung über die Zeit, die ein Prozeß im
Bereit-, Warte- und Laufstatus zubringt.
Diese und weitere Zielsetzungen der Erfindung werden deutlich in der Beschreibung einer vorzugsweisen Ausführungsform der Erfindung, wenn man sie im Zusammenhang mit den
darin enthaltenen Figur liest.
Bei Prozessen in einer Multiprogramming-rUmgebung gibt es
vier Status-Möglichkeiten: Lauf-, Bereit- (Ready-), "Warte-(Wait-)
und suspendierter Status.
509823/0695
Ein Prozeß befindet sich im Lauf-Status, wenn er die
Kontrolle über die Zentraleinheit (ZE) hat. Der Bereit-Status entspricht dem Lauf-Status, außer daß der Prozeß
hier keine Kontrolle über die ZE hat. Ein Prozeß befindet sich im Warte-Status, wenn er erst bei Eintritt eines
bestimmten Ereignisses fortfahren kann. Ein suspendierter Prozeß ist ein Prozeß, der für eine bestimmte Zeit angehalten
wurde und später fortgesetzt werden kann.
Jedem Prozeß im Computer-System ist eine Hardware-Struktur zugeordnet, die als Prozeß-Steuerblock (PCB für engl.:
Process Control Block) bezeichnet wird; der PCB wirkt als virtueller Prozessor mit o-Geschwindigkeit und enthält
Steuerinformationen, die der Logik-Prozessor benötigt d.h. die Gesamtheit der Hardware-System-Elemente und
Steuer-Informationen, die für die Ausführung eines Prozesses benötigt werden. Der virtuelle Prozessor (PCB)
ersetzt den realen Prozessor (ZE) immer dann, wenn die einzige Aufgabe des Prozessors darin bestehen soll, hinzuhören,
ob der Prozeß ein Signal übermittelt, wenn bzw. nachdem das Signal angekommen ist. Die Umstände, unter
denen ein Prozeß damit beginnt, einen Prozessor ausschließlich
als Abhörgerät zu benutzen,sind folgende:
a) Der Prozeß verläßt den Lauf-Status und betritt den Warte-Status
(Wait), oder
b) der Prozeß verläßt den Lauf-Status und betritt den
suspendierten Status.
In beiden Fällen wird die ZE durch den PGB ersetzt.
Die absolute Adresse eines PCB wird durch zwei Ganzzahlen, J und P, definiert, die manchmal als der logische Name des
B09823/069S
531
Prozesses bezeichnet werden. An einer der Firmware bekannten absoluten Speicherstelle befindet sich eine
Tabelle, die sogenannte J-Tabelle. Die Eintragung J der J-Tabelle enthält die absolute Adresse Pj einer als P-Tabelle
bezeichneten Tabelle. Die Eintragung ρ der P-Tabelle enthält die absolute Speicherstelle des durch den
logischen Namen (J, P) definierten PCB.
Die charakteristischen neuen Merkmale dieser Erfindung sind ausführlich in den beigefügten Patentansprüchen dargestellt.
Am besten versteht man jedoch die Erfindung als solche - Organisation, Operation, weitere Zielsetzungen
und Vorzüge der Erfindung - anhand der folgenden Beschreibung
in Verbindung mit den Figuren.
Figur 1 ist ein Blockdiagramm eines Multiprogramming-Systems, bei dem die vorliegende Erfindung angewendet wird.
Figur 2 ist eine schematische Darstellung verschiedener Hardware-Strukturen, die diese Erfindung benutzt.
Figur 3 enthält eine begriffliche Erläuterung für die reservierten Speicherbereiche in den in Figur 2 dargestellten
Registern.
Figur 4 ist ein Schemabild eines Prozeß-Steuerblocks.
Figur 5 ist ein Schemabild eines Systems für die Adressierung eines Prozeß-Steuerblocks.
Figur 6 ist ein Schemabild der System-Basis der Erfindung.
Figuren 7A und 7B sind eine schematische Darstellung eines Stack-Segmentes bzw. eines Stack-Rahmens.
5 0.9823/0695 original inspected
Figur 8 ist ein Schemabild, eines Systems für die
Adressierung von G-Segmenten und insbesondere der Prozeß-Warteschlange im GO-Segment.
Figur 9'ist ein auseinandergezogenes Schemabild
eines GO-Segments, das die Warteschlange und die Verbindung
von Prozessen illustriert.
Figuren 10a bis 101 sind Bloc_kdiagramme von Strukturen im PCB.
Figuren 11a bis 11r sind Blockdiagramme von Struktu- ·
ren in der System-Basis.
Figur 12 ist ein Schemabild der Adressierung von Benutzer- und System-Segmenten, wobei die Strukturen in
System-Basis und PCB angewendet werden.
Figur 13. ist ein Schemabild des Leitwerks.
Figuren 14a bis I4i sind Flußdiagramme der Dispatcher-Einheit
in der Firmware.
Figur 15a zeigt das Format der Tageszeituhr TOD, des Intervall-Zeitgebers IT und des Prozeßzeitgebers PT.
Figur 15b zeigt das Format.der Abrechnungsworte des PCB.
Figur 16 zeigt die Firmware-Fortschreibung des RUA (Running Time Account, Laufzeit-Abrechnung).
Figur 17 zeigt die Firmware für die Fortschreibung von WTA (Waiting Time Account, Wartezeit-Abrechnung) und RTA
(Ready Time Account, Bereitschaftszeit-Abrechnung).
50 9 823/06 9 5
245S531
Typischerweise operiert diese Erfindung in der nachstehend beschriebenen Hardware-System-Umgebung, die
durch ein Hardware/Firmware/Software-Betriebssystem koordiniert wird. Wie in Figur 1 dargestellt,
sind die Subsysteme das Prozessor-Subsystem 101, das Speicher-Subsystem 102 und eines oder mehrere
(bis zu 32) Peripherie-Subsysteme 103. Das Prozessor-Subsystem enthält eine Zentraleinheit (ZE) 104 und
bis zu 4 Ein/Ausgabe-Steuereinheiten (IOC) 105. Jedes Peripherie-Subsystem besteht aus einem Peripherie-Leitwerk
(PCU) 106, einer Reihe von Einheiten-Anschlüssen (DA) 107 und bis zu 256 Ein/Ausgabe-Peripheriegeräten
108. Das Speicher-Subsystem 102 besteht aus maximal 4 Halbleiter-Speichermodulen mit je 32 bis
512 Kilobyte.
Im Prozessor-Subsystem 101 vollzieht die ZE 104 die grundlegenden Verarbeitungsoperationen für das System und
stellt die Verbindung (Interface) zum Speicher 102 her. Die Steuereinheit IOC 105 kontrolliert den gesamten Informations-Austausch
zwischen dem Speicher-Subsystem 102 und den Peripheriegeräten 106.
Die ZE enthält ein Hauptspeicher-Leitwerk 109, einen Pufferspeicher 110, diverse Elemente, aus denen sich
das Rechenwerk 111 zusammensetzt, sowie als Zusatzeinrichtung den Emulator 112. Das Hauptspeicher-Leitwerk
50982 3/0695
löst Konflikte der Benutzung des Hauptspeichers zwischen Rechenwerk 111, Pufferspeicher 110 und IOC 109. Konflikte
werden nach Vorrang gelöst: Die IOC hat die höchste Priorität, gefolgt von Speicher-Schreiben (aus dem Rechenwerk)
und dann Speicher-Lesen (in dem Pufferspeicher). Die Haupt-ZE
enthält ferner das Adreß-Leitwerk ACU 131, das die Hauptspeicher-Adressierung und den Assoziativ-Speicher
AS 132 für die. Speicherung der zuletzt benutzten Adressen des Hauptspeichers kontrolliert. Der Pufferspeicher 110 ·
ist ein kleiner schneller Pufferspeicher, der eine ausgewählte Region des Hauptspeichers reproduziert und an das
Rechenwerk angekoppelt ist, um die durchschnittliche Speicher-Zugriffszeit zu senken. Bei jedem Speicher-Lesen
erfolgt Zugriff sowohl auf den Pufferspeicher als auch auf den Hauptspeicher. Befindet sich die benötigte
Information bereits im Pufferspeicher, so wird das Hauptspeicher-Lesen beendet und die Information aus dem Pufferspeicher
geholt. Andernfalls wird der Hauptspeicher 102 gelesen. Jedesmal, wenn dies geschieht, ruft die ZE 104
32 Bytes ab, die die gewünschte Information enthalten. Diese Information verbleibt für künftigen Speicher-Zugriff
im Pufferspeicher. Da der Pufferspeicher für die Software transparent ist, kann das Programm, das jeweils
den Computer kontrolliert, nicht feststellen, ob die Information, die es gerade verarbeitet, aus dem Pufferspeicher
oder aus dem Hauptspeicher stammt.
Das Rechenwerk 111 besorgt die gesamte Datenverarbeitung
und Adressenbildung innerhalb der ZE. Ein typisoher Steuerspeicher 130 innerhalb des Rechenwerks (vgl* "Microprogramming:
Principles and Practices",Samir S. Husson,
Prentic Hall, Inc.) enthält Firmware, die das System initialisiert,
die ZE 104 und die IOC 105 steuert und (nicht abgebildet) einen Befehlsvorrat dekodiert. Je nach Tiahl
509823/0 695
24C6531
kann der Steuerspeicher wissenschaftlich-technische Befehle, Test-Routinen, Emulations-Pakete oder SpezialElemente
bieten, die die Funktionsmöglichkeiten des Prozessor-Subsystems erweitern.
Als Zusatzeinrichtung bietet die ZE Emulation von Systemen, die vom augenblicklichen System verschieden sind. Emulatoren
112 sind Komponenten der Firmware, Software und in manchen Fällen Hardware.
Die IOC 105 als Teil des Prozessor-Subsystems liefert einen Datenweg zwischen jedem Peripherie-Subsystem 103 und dem
Speicher-Subsystem 102. Dieser Weg ermöglicht die Initiierung von Peripherie-Befehlen und kontrolliert den sich daraus ergebenden
Daten-Transfer. Eine IOC kann typischerweise bis .zu 32 Kanal-Steuereinheiten bearbeiten (nicht abgebildet).
In einem Peripherie-Subsystem 103, wie in Fig. 1 dargestellt,
ist die Peripherie-Steuereinheit (PCU) 106 ein freistehender Mikroprogramm-Prozessor, der die Belastung
der ZE 104 dadurch vermindert, daß er die Ein/Ausgabe-Einheiten 108 im Verlauf der Ein/Ausgabe-Operationen
steuert. Die PCU tut dies durch Ausführung von Befehlen, die in einem Kanal-Programm enthalten sind. Dieses Programm
hat zum Ergebnis, daß in der PCU arithmetische, logische, Transfer-, Schiebe- und Sprung-Operationen ausgeführt
werden. Es gibt verschiedene PCU-Arten je nach dem
509823/0695 ORIGINAL INSPECTED
Typ der Einheit, den sie jeweils steuern: d.h. Lochkarten-Maschine,
Massenspeicher (Platte), Magnetband, Datenüber-^
tragung usw. Geräte-Anschlüsse 107 vermitteln zwischen jeder PCU und den Geräten, die sie steuert.
Jeder enthält die spezielle Firmware und die zur Implementierung der Kommunikation mit einem speziellen Einheiten-Typ
erforderliche Logik.
Je nach Typ steuert ein Geräte-Anschluß DA 107 ein oder
mehrere Geräte.
Die PCU löst Hauptspeicher-Konflikte zwischen den zu ihr
gehörenden Geräten; hingegen löst die IOC Konflikte zwischen mehreren PCU1s.
Der Hauptspeicher 102 besteht aus einem kapazitiven Speichermedium
in Form von Metalloxyd-Halbleiter-Chips (MOS). Dieses Medium operiert nach dem Wiederauffrischungs-Prinzip zur Aufrechterhai
tung von Informationen. Jede Speicherstelle wird typischerweise wenigstens alle 2 Millisekunden aufgefrischt.
Hierdurch wird sichergestellt, daß es zwischen den Wiederauffrischungs-Takten
und den Speicher-Zugriffen nur wenige Konflikte gibt (im Konfliktsfall hat die Wiederauffrischung
Vorrang).
Am Beginn des Hauptspeichers wird ein Bereich für Hardware und Firmware reserviert. Die obere Grenze dieses Bereiches
wird durch den Inhalt eines später zu beschreibenden Grenzadreß-ftegisters
definiert, das für die System-Software '
60 9823/069
sichtbar ist. Der Inhalt dieses BAR (Boundary Address Register) wird bei der System-Initialisierung gesetzt. Der
Speicherbereich unterhalb der im BAR spezifizierten Adresse kann IOC-Tabellen enthalten, welche die Konfiguration
des Peripher!e-Subsystems, Firmware zur Steuerung
der ZE oder Mikroprogramme und Tabellen für die Emulation definieren. Der Umfang des Bereichs unterhalb der im BAR
definierten Adresse richtet sich nach der System-Konfiguration. Ob man Mikroprogramme im Hauptspeicher oder im
Steuerspeicher unterbringt, richtet sich nach der System-Konfiguration sowie nach dem Anwendungsfall, der auf der
Anlage laufen soll.
Es gibt typischerweise drei Haupt-Datenstrukturen, die bei dieser Hardware verwendet werden: Daten-Formate, Softwaresichtbare Register und die Befehls-Formate.
Der Austausch von Informationen zwischen dem Arbeitsspeicher
und der ZE erfolgt in vielfachen von acht parallelen Bits. Jede aus acht Bits bestehende Informationseinheit bezeichnet
man als "Byte". Zum Datentransfer gehören auch Paritäts- bzw. Fehler-Korrekturdaten, die die Software jedoch
nicht beeinflußen kann. Daher schließt der Begriff "Daten" in der' vorliegenden Beschreibung nicht die zugehörigen
Paritäts- bzw. Fehler-Korrekturdaten ein.
509B23/0695
B. BYTES
Innerhalb eines Bytes werden die einzelnen Bits von links nach rechts von 0-7 durchnumeriert. Bytes werden separat
oder in Gruppen verarbeitet. Zwei Bytes bilden ein Halbwort, vier Bytes ein. Wort, acht Bytes ein Doppelwort und
sechzehn Bytes ein Vierfachwort. Dies sind die Hauptformate für sämtliche Daten einschließlich der Befehle.
Alle Daten erscheinen in Binärform, können aber binär,
dezimal oder alphanumerisch interpretiert werden. Daten-Bits werden in Vierergruppen als binär-codierte Dezimaldaten
interpretiert; in Achtergruppen als alphanumerische Daten; oder in Gruppen zu 16 bis 64 als Binärziffern.
Letztere werden als mit Vorzeichen versehene Festkommazahlen oder Gleitkommazahlen in Binärdarstellung interpretiert.
Jede beliebige Anzahl zusammenhängender Bits bis zu einem Doppelwort kann auch als Kette behandelt
werden. Der alphanumerische Zeichensatz ist in EBCDIC dargestellt. Als Alternativ- und Austausch-Code wird
auch die Darstellung in ASCII unterstützt.
Byte-Stellen im Hauptspeicher sind fortlaufend numeriert, beginnend bei 0; jede Nummer ist die Adresse des betreffenden
Bytes. Von einer Gruppe aufeinanderfolgender Bytes sagt man, daß sie halbwort-, wort-, doppelwort- oder vierfachwort-ausgerichtet
ist, wenn die Adresse des linken Bytes in
509823/0695
2458531
einer Gruppe ein vielfaches von 2, 4, 8 bzw. 16 ist. Immer wenn ein Halbwort, Wort, Doppelwort oder Vierfachwort so
ausgerichtet ist, kann diese Einheit von der betreffenden Adresse abgerufen werden. Die Stelle der· Daten im Hauptspeicher
spezifiziert ein Daten-Descriptor, auf den während der Adressenentwicklung indirekt zugegriffen wird.
Innerhalb der in Figur 1 dargestellten ZE 104 gibt es
dreiunddreißig für den Benutzer sichtbare Register, deren Inhalt insgesamt den Status der ZE definiert. Es handelt
sich um vier Typen (siehe Fig. 2)J
1. allgemeine Register
2. Basisregister
3. wissenschaftliche Register (wahlweise)
4. Register verschiedener Art
Allgemeine Register (GR) 201 dienen der Manipulation binärer Festkommazahlen und Bitketten. Im typischen Fall gibt
es sechzehn allgemeine Register zu je 32 Bits in der ZE - GRO - GR15. Die allgemeinen Register GR8 bis GR15 sind
auch als Index-Register verwendbar. Bei Verwendung als Index-Register werden sie hier als XO bis X7 bezeichnet:
Die Indexierung erfolgt mit der aus 32 Bits bestehenden ganzzahligen Zweier-Komplement-Größe, die in einem Register
enthalten ist.
5 0 9 8 2 3 / 0 6 9 E 0RIQINAL INSPECTED
G. BASISREGISTER
Basisregister (BR) haben dasselbe Format wie die Befehlsadreß-Register
IC und Stapel-Register 202 bis 203. Basisregister dienen während der Adreßrechnung dazu, einen Teil
des Arbeitsspeichers zu definieren. Im typischen Fall sind es acht Basisregister zu je 32 Bits: BRO bis BR7.
Wissenschaftliche Register (SR) sind eine wahlweise Zusatzeinrichtung
für Berechnungen mit binären Gleitkommazahlen. Im typischen Fall sind es vier wissenschaftliche Register
zu je 8 Bytes, die als SRO bis SR3 bezeichnet werden. Wissenschaftliche Register haben das Format 204 bis 205 aus Figur
Es gibt fünf sonstige Register:
- Befehlsadreß-Register: Format 202 - 203;
- Status-Register: Format 207;
- Stack-Register (als T-Register bezeichnet);
- Grenzadreß-Register: Format 202 - 203; und
- Hardware-Kontroll-Maskenregister: Format 208.
Das Befehlsadreß-Register (IC) ist ein 32-Bit-Register, das die Adresse des Befehls enthält, der gerade ausgeführt wird.
Das Status-Register (STR) 207 ist ein 8-Bit-Register, in welchem Informationen über die gegenwärtig in Ausführung
befindliche Prozedur gespeichert werden - z.B., ob die letzte Operation einen Unterlauf verursacht hat.
50 9 823/069 5
Das Stack-Register, das auch als T-Register bezeichnet wird, ist ein 32-Bit-Register, das einen Hinweis (Pointer)
auf die Spitze eines der gegenwärtig aktiven Prozedur zugeordneten Rückstell-Stapels enthält. Die weiter unten zu
beschreibenden Stacks (auch Stapel) bieten einen Arbeitsbereich und einen Mechanismus für die Sicherstellung von
lokalen Variablen und die Bewahrung von Informationen über Prozedur-Einsprung und -Rücksprung. Das Grenzadreß-Register
(BAR) 206 ist ein 28-Bit-Register, in dem die · niedrigste absolute Hauptspeicher-Adresse für den Zugriff
der Software spezifiziert wird. Dieses Register wird während der Initialisierung des Systems geladen und kann nur
von der Software gelesen werden. Das Hardware-Kontroll-Maskenregister
208 ist ein 8-Bit-Register, in welchem Informationen über den Zustand der Maschine gespeichert
werden.
Es gibt etwa 200 Befehle, die allerdings mehr oder weniger benutzt werden mögen. Jeder Befehl hat eine von vielen verschiedenen
Längen, aber stets eine gerade Anzahl Bytes. Die Speicherung der Befehle erfolgt an aufeinanderfolgenden
Speicherstellen. Die Adresse des äußersten linken Byte ist ein vierfaches von zwei; sie ist die Adresse des Befehls.
Die acht höchstwertigen Bits (und in manchen Fällen Bit 8 - 11 oder 12 - 15) eines Befehls stellen den Operations-
Code dar, während die übrigen Bits einen oder mehrere Operanden repräsentieren. Ein Operand kann sein: eine Register-Kennzeichnung,
eine Displacement-Kennzeichnung (relative
509823/0695
Adresse), eine Adreß-Silbe (logische Aaresse), ein Literal-Wert
oder ein direkter Literal-Wert. Art und Anzahl der Operanden richten sich nach dem Befehlsformat.
III. SYSTEM-ORGANISATION ' -
Die vom Computer-System zu leistende Arbeit wird extern durch eine Reihe von Job-Steps beschrieben, und zwar über
eine Job-Kontroll-Sprache. Ein Job-Step ist eine Arbeitseinheit, welcher Hardware-Betriebsmittel zugeteilt werden.
Typischerweise besteht ein Job-Step aus verschiedenen Tasks. Eine Task ist die kleinste Einheit der vom Benutzer definierten
Arbeit; sie besteht aus einem Befehlsstrom, der ohne Parallelismus ausgeführt wird.
B. PROZESS
Die für den Benutzer anschaulichen Konzeptionen von Task und Job-Step werden in der Hardware durch einen Prozeß bzw.
eine Prozeß-Gruppe repräsentiert. Ein Prozeß ist definiert als eine geordnete Folge von Befehlen, die von der ZE asynchron
ausgeführt werden können (das bedeutet: verschiedene Prozesse können aktiv sein und sich die Systemelemente
teilen; aber nur ein Prozeß läuft jeweils tatsächlich.ab).
Eine Prozeß-Gruppe ist eine zusammengehörige Gruppe von Prozessen, die zur Ausführung eines Job-Steps erforderlich
sind.
509 8 23/0695
' Da die Prozesse an verschiedenen Stellen während ihrer Ausführung die Kontrolle über die ZE abgeben können, wird
dem Prozeß im Hauptspeicher ein Speicherbereich zur Verfügung gestellt, um den ZE-Status sicherzustellen. Diese
Status-Information dient dann später dazu, die ZE entsprechend einzustellen, bevor der Prozeß die Kontrolle
über die ZE zurückerhält.
Der einem Prozeß zugeordnete Speicherbereich wird als Prozeß-Steuerblock (PCB) 400 bezeichnet - siehe Figur
Die in einem PCB enthaltenen Daten umfassen die Adressen von Speicherberächen (Adreß-Raum), die dem Prozeß zugeteilt
sind, den Inhalt sämtlicher relevanten Register und dem Status des Prozesses. Infolgedessen dient ein PCB als
Zwischenspeicher-Bereich für Informationen, die für den Start bzw. Wiederanlauf eines Prozesses ohne einen In-
s .formationsverlust erforderlich sind. Jeder PCB ist für
die Hardware sichtbar und kann durch das Betriebssystem adressiert werden, und zwar über eine Reihe von Hardware-Tabellen,
die während der System-Initialisierung entwickelt und während des Betriebs des Systems modifiziert
werden (siehe Figur 5).
Es gibt einen absoluten Hauptspeicher-Bereich, der als System-Basis bezeichnet wird (Figuren 5 und 6). Dieser
Bereich wird durch die Firmware entwickelt; der Zugriff auf ihn ist möglich über das Basis-Adreß-Register (BAR)
501, das man nur lesen, in das man aber nicht hineinschreiben kann. Die Systembasis 502 enthält eine Reihe
von System-Attributen; unter anderem eine Job-Step-Nummer und eine Prozeß-Gruppen-Nummer (J, P) für den gegenwärtig
ablaufenden Prozeß. Ein weiteres Attribut in der System-Basis ist ein Pointer, der auf eine von der Hardware
509823/0695
definierte, als J-Tabelle 503 "bezeichnete Daten-Struktur
verweist. Diese Tabelle enthält eine Eintragung für jeden gegenwärtig im System befindlichen Job-Step. Jede Eintragung
der J-Tabelle 503 verweist auf eine zugehörige P-Tabelle 504, die ebenfalls eine von der Hardware definierte
Daten-Struktur ist. Diese Tabelle definiert eine Prozeß-Gruppe
und enthält eine Eintragung für jeden Prozeß innerhalb der Prozeß-Gruppe. Jede P-Tabellen-Eintragung verweist
auf einen PCB 400.
Wie in Figur 5 dargestellt, vermittelt der J-Tabellen-Pointer
505, indexiert durch die J-Nummer über das Rechenwerk 506,Zugriff auf eine J-Tabellen-Eintragung 503. Diese
Eintragung enthält einen P-Tabellen-Pointer, welcher, wenn
er durch die P-Nummer über das Rechenwerk 506 indexiert
wird, Zugriff auf eine P-Tabellen-Eintragung 504 vermittelt. Die P-Tabellen-Eintragung enthält einen Pointer 507, der auf
den PCB des gegenwärtig ablaufenden Prozesses verweist. Auf diese Weise, kann das Betriebssystem mit Hilfe des Inhalts
des BAR 501 auf den aktiven PCB zugreifen, und es kann auch
auf jeden anderen PCB zugreifen, wenn es den ihm zugeordneten logischen Namen (J, P) kennt.
In einem Simultanverarbeitungsbetrieb wie hier beschrieben, befinden sich jeweils viele Prozesse gleichzeitig im Arbeitsspeicher.
Daß diese Prozesse in Umfang und Speicherbedarf verschieden sind, führt zu einem den Arbeitsspeicher betreffenden
Problem. Die Hardware, die hier beschrieben wird und
mit einem Betriebssystem (hier nicht abgebildet) kooperiert, löst das Problem durch dynamische Zuteilung von Speicherplatz.
' "
50 9 823/069 5
Wegen des stets wechselnden Charakters·des Speicherplatz-Bedarfs
wird Arbeitsspeicher in Segmenten von variabler Größe zugeordnet, und die Speicherplatz-Zuteilung kann
während der Laufzeit eines Prozesses neu strukturiert
werden. So können einem Prozeß z.B. verschiedene nichtzusammenhängende Speicher-Segmente zugeordnet werden.
Diese Methode der Speicherplatz-Zuteilung bezeichnet man als "Segmentierung".
Segmentierung bietet insofern ein.zusätzliches Problem,
als die Arbeitsspeicher-Adressen jedesmal modifiziert werden müssen, wenn ein Prozeß ganz oder zum Teil verschoben
wird. Um dieses Problem zu erleichtern, bietet das hier beschriebene System eine Technik, bei der die von einem
Prozeß benutzten Adressen keine absoluten Hauptspeicher-Adressen sind, sondern logische Adressen. Diese logischen
Adressen dienen dann dazu, absolute Adressen zu entwickeln.
Die Segmentierung ermöglicht ferner jedem Prozeß den Zugriff auf sein eigenes oder damit verwandte Speicher-Segmente,
und zwar über ein System von Segment-Descriptoren (Beschreibungen). Durch Zugriff auf einen Segment-Descriptor
kann ein Prozeß die Adresse eines Segments erfahren. Segment-Descriptoren sind im Hauptspeicher
enthalten und werden vom Betriebssystem geführt.
Jeder Prozeß kann auf bis zu 2068 Speichersegmente zugreifen.
Normalerweise würde dies eine gleichgroße Anzahl von Segment-Descriptoren pro Prozeß erfordern. Da jedoch
gemeinsame Benutzung von Segmenten möglich ist, stellt das Betriebssystem Segment-Descriptoren in Segment-Tabellen
zusammen. Diese Gruppierung basiert auf Zugriffsfähigkeit
509823/0695
durch einen Prozeß (Task), eine Prozeß-Gruppe (Job-Step) oder global (System-Ebene). Jedem Prozeß können bis zu
15 Segment-Tabellen zugeordnet seil.Diese Technik erfordert
lediglich einen einzigen Segment-Descriptor für jedes Segment, auf das der Prozeß über eine Segment-Tabelle
zugreifen kann. Infolgedessen beanspruchen die Segment-Descriptoren
weniger Speicherplatz; die Arbeitsspeicher-Aktualisierung während der Verschiebung wird reduziert;
und es wird ein gewisser Programmschutz geboten (der Hauptmechanismus für den Programmschutz ist das Ringsystem).
Ein Prozeß muß in der Lage sein, festzustellen, auf welche Segmente er zugreifen darf. Entsprechend stattet das System
den Prozeß mit zwei Segment-Tabellen-Wortfeldern (Segment-Table- Word Array - =STWA) aus. Diese Felder enthalten die
Adresse sämtlicher Segment-Tabeilen, auf die ein Prozeß
zugreifen kann. Es gibt für jeden Prozeß zwei Segment-Tabellen-Wortfelder, weil es zwei Segment-Formate gibt:
22 groß und klein. Das große Segment-Format hat maximal 2 Bytes, während kleine Segmente maximal 2 Bytes haben.
Alle Segmente können verschieden groß sei n, mit Inkrementen von je" 16 Bytes bis hinauf zum Maximum. Ein System kann
im typischen Fall bis zu 28 große Segmente und 204Ö kleine Segmente unterbringen.
Segment-Tabeilen-Wortfelder können durch das Betriebssystem
verschoben werden; daher muß der Prozeß die absolute Adresse der ihm zugeordneten STWA1s kennen. Der PCB für jeden Prozeß
enthält zwei V/orte, die diese Information enthalten: dies sind die Adreßraum-V/orte ASWO und ASW1 in Figur 4. Jedes
Wort verweist auf ein Segment-Tabellen-Wortfeld STWA. Das Betriebssystem schreibt den Inhalt der ASW's fort,
so oft die entsprechenden STViA1 s verschoben werden. Abarbeitung
der Pointer-Kette und Dekodierung des Segment-
509823/0695
Descriptors ist eine Firmware-Funktion. Sobald diese
Funktion daher eingeleitet ist, ist sie nicht einmal für das Betriebssystem sichtbar.
Die Segmentierung definiert über 200 Millionen Bytes Adreßraum als für Prozesse verfügbar. Diese Anzahl geht
über die Kapazität des Hauptspeichers hinaus; daher wird in Verbindung mit dem Hauptspeicher ein Nebenspeicher
(Magnetplatte oder Magnettrommel) verwendet. Das Betriebssystem erzeugt die Illusion, daß das System einen viel
größeren Hauptspeicher hat, als den, der tatsächlich zur Verfügung steht. Diese Konzeption bezeichnet man als
"virtuellen Speicher".
Zu einem gegebenen Zeitpunkt kann sich das definierte Segment innerhalb oder außerhalb des HauptspeicheiB befinden
oder nicht. Der Inhalt eines Segment-Descriptors zeigt an, ob sich das entsprechende Segment im Hauptspeicher
befindet oder nicht. Die Hardware erkennt jeden Versuch eines Prozesses, auf ein Segment zuzugreifen, das nicht
im Hauptspeicher steht, und benachrichtigt das Betriebssystem. Das Betriebssystem veranlaßt dann, daß das gewünschte
Segment aus dem Nebenspeicher (Sekundärspeicher) in den Hauptspeicher geladen wird. Dann stellt das Betriebssystem
die Speicheradresse des Segments im Segment-Descriptor ab; dies ist die einzige Stelle, wo die absolute
Adresse eines Segments zu finden ist. Diese Operation ist für den Prozeß als solche nicht sichbar; daher weiß
der Prozeß nicht, daß sich das Segment nicht im Hauptspeicher befand oder daß es etwa innerhalb des Hauptspeichers
verschoben werden muß.
Das hier beschriebene Computer-System schützt Daten und
509823/0695
Prozeduren, indem es die Prozesse daran hindert, einander zu stören oder unbefugt den Adreßraum eines anderen Prozesses
in Anspruch zu nehmen. Dieser Schutz ergibt sich aus der Einschränkung der Adressierbarkeit auf dem Wege der Speicher-Segmentierung
und aus einem Ringsystem.
Die Segment-Tabellen isoljo?en den Adreßraum der verschiedenen
Prozesse im System. Während der Ausführung verwenden Prozesse stets eine segmentierte Adresse. Eine segmentierte
Adresse besteht aus einer Segment-Nummer und relativen Adresse innerhalb des Segments. Die Hardware kontrolliert,
ob die von einem Prozeß benutzte Adresse ein Teil des diesen Prozeß zugewiesenen Adreßraums ist. Liegt die Adresse
außerhalb des vorgeschriebenen Adreßraums, so tritt eine Ausnahmebedingung ein. ~
Ein Prozeß kann nicht die Daten innerhalb des Adreßraums eines anderen Prozesses ansprechen, denn die Hardware
.benutzt die Segment-Tabellen des ansprechenden Prozesses. Es gibt daher keine Möglichkeit für einen Prozeß oder
eine Prozeß-Gruppe, ein Gebilde anzusprechen, das zu einer anderen Prozeß-Gruppe gehört.
Generell tritt im System Überlappung im Adreßraum bei solchen Segmenten ein, die gemeinsam von allen Prozessen benutzt
werden. Diese gleichsam "öffentlichen" Segmente werden
von System-Programmen erzeugt, die durch Kontrollen dafür sorgen, daß keine Adreß-Konflikte entstehen. Daher
schützt die Segmentierung die Benutzer-Programme untereinander und das Betriebssystem vor den Benutzer-Programmen.
Segmente, die von mehreren Prozessen gemeinsam benutzt werden, sind nicht vor Mißbrauch seitens eines dieser Prozesse
509823/0695
geschützt. Um dieses Problem zu lösen, wird ein Ringsystem angewendet, bei dem Prozedur- und Daten-Segmente
in einer Vier-Klassen-Hierarchie zusammengestellt sind. Die vier Ringklassen erhalten die Nummern 0-3. Jeder
Ring' repräsentiert eine Stufe der Syst.em-Privilegierung, wobei Stufe 0 (der innerste Ring) am meisten, Stufe 3
(der äußerste Ring) am wenigsten privilegiert ist. Jeder Prozedur im System wird eine minimale und eine
maximale Ausführungs-Ringnummer zugewiesen, die angibt, wer die Prozedur aufrufen darf. Eine Prozedur ist ein
Unterprogramm mit der Möglichkeit, andere Prozeduren aufzurufen und Parameter an sie weiterzugeben.
Die allgemeinen Regeln des Ringsystems sind wie folgt:
1. Eine Prozedur in einem inneren Ring hat freien Zu-
- griff auf Daten in einem äußeren Ring. Umgekehrt hat eine Prozedur in einem äußeren Ring keinen Zugriff
auf Daten in einem inneren Ring.
2. Eine Prozedur in einem äußeren Ring kann zu einer Prozedur in einem inneren Ring verzweigen; umgekehrt
ist diese Verzweigung nicht zulässig.
3. Jedes Segment, das Daten enthält, erhält zwei Ringwerte zugewiesen: einen für Lesen (Read = RD) und
einen für Schreiben (Write = WR). Diese Ringwerte geben den maximalen Ringwert an, in welchem eine Prozedur
ausgeführt werden kann, wenn der Zugriff auf die Daten entweder im Lese- oder im Schreib-Modus erfolgt.
Bei jeder Ausführung eines Prozedur-Befehls wird die Ringnummer der Prozedur (Effektiv-Adreß-Ring = EAR) mit den
509823/0695
Ringnummern verglichen, die dem die angesprochenen Daten
enthaltenden Segment zugeteilt sind. Die EAR-Nummer ist die höchste Nummer der Prozeß-Ringnummern im Befehlsadreß-Register
sowie sämtlicher Ringnummern in Basis-Registern und -Descriptoren, die im Adressierungsweg
zu finden sind. Zugriff auf die Daten wird aufgrund
eines Vergleichs der Ringnummern gewährt bzw. verweigert. Wenn z.B. eine System-Tabelle in einem Segment
mit einem maximalen Ring-Lesewert 3 und einem maximalen Ring-Schreibwert 1 existiert, dann-kann eine in Ring 3
ablaufende Benutzer-Prozedur die Tabelle zwar lesen, sie aber nicht aktualisieren.
Es ist konstruktiv von vornherein festgelegt, daß Ring und 1 für das Betriebssystem und Ring 2 und 3 für den Benutzer
reserviert sind. Ring 0 enthält die für die Operation des Gesamtsystems kritischen Segmente. Ring 1 enthält
den Großteil der System-Segmente, bei denen ein Versagen keine katastrophalen Folgen hätte, sondern wieder
in Ordnung gebracht werden könnte. Der Benutzer kann Ring 2 für bereits ausgeprüfte Programme und Ring 3 für
solche Programme benutzen, die noch in der Fehlersuche sind.
F. PROZEDUR-AUFRUFE .
Der Prozedur-Aufruf ist eine bedeutende Operation im hier
beschriebenen System. Prozedur-Aufrufe dienen dazu, von einer Prozedur zu einer anderen überzugehen; sie erlauben
es den Benutzer-Prozeduren, die Dienste des Betriebssystems in Anspruch zu nehmen; und man erreicht mit ihnen eine modulare
Struktur innerhalb des Betriebssystems. Ein Prozedur-Aufruf
wird durch Befehle .und durch eine als Stack oder
50 9823/069 5
Stapel (Figur 7a) bezeichnete, von der Hardware erkannte Einrichtung bewerkstelligt.
Ein Stack ist ein Mechanismus, der die Entgegennahme, Speicherung und Wiedergewinnung von Daten auf LIFO-Basis
(last in, first out) erlaubt.
Stacks sind in speziellen Segmenten resident, die man daher als Stack-Segmente bezeichnet. Ein Stack-Segment
besteht aus einer Anzahl zusammenhängender Teile, den sogenannten Stack-Rahmen 701 (Figuren 7a und 7b), die
jeder Prozedur wieder dynamisch zugeordnet werden.
Der erste Stack-Rahmen wird in der Spitze des Segments geladen, und die nachfolgenden Rahmen werden im Anschluß
an ihn geladen. Der zuletzt geladene Rahmen gilt als Spitze des Stacks. Das T-Register 702 lokalisiert die
Spitze des Stacks für den gegenwärtig aktiven Prozeß. .Ein virtuelles T-Register existiert im PCB für alle anderen
Prozesse im System.
Ein Stack-Rahmen 701, wie in Figur 7b gezeigt, besteht aus drei Bereichen: einem Arbeitsbereich 702, in welchem
Variable gespeichert werden, einem Sicherstellungs-Bereich 703, in welchem der Inhalt von Registern bewahrt wird und
einem Übertragungs-Bereich 704, in welchem Parameter zwischen Prozeduren übermittelt werden. Vor einem Prozedur-Aufruf
muß der Benutzer diejenigen Register angeben, deren Inhalt er erhalten möchte, und er muß im Übertragungs-Bereich
diejenigen Parameter haben, die an die aufgerufene Prozedur weitergegeben werden sollen. Wenn der Aufruf erfolgt,
sichert die Hardware den Inhalt des Befehls-Adreß-Registers IC und der angegebenen Basis-Register, um den
Rücksprung aus der aufgerufenen Prozedur zu erleichtern.
509823/0695
Jeder Prozedur-Aufruf erzeugt einen Stack-Rahmen
innerhalb eines Stack-Segments 701, und nachfolgende ineinander
geschachtelte Aufrufe erzeugen zusätzliche Rahmen. Bei federn Ausgang aus einer dieser aufgerufenen Prozeduren
erfolgt Löschung eines Stack-Rahmens im Stack. So wird ständig die Entwicklung der Aufrufe verfolgt und korrekter
Rücksprung erleichtert.
Um zwischen Prozeduren, die in verschiedenen Ringen ablaufen,Schutz
zu gewährleisten, werden verschiedene Stack-Segmente benutzt. Es gibt jeweils ein Stack-Segment, das
jedem Schutzring pro Prozeß entspricht. Ein PCB enthält drei Stackbasis-Worte, die auf den Anfang der Stack-Segmente
für die dem Prozeß zugeordneten Ringe 0, 1 und 2 hinweisen. Das Stack-Segment für Ring 3 kann nie durch
einen inneren Airuf betreten werdenj daher wird seine Stack-Anfangsadresse im PCB nicht benötigt.
Das hier beschriebene System sieht Simultanverarbeitungs- ·
Operationen vor, die durch ein Betriebssystem gesteuert werden, welches eine Kombination von Software, Hardware
und Firmware verwendet. Die Software erstellt und löscht Prozesse innerhalb des Systems, während Hardware und
Firmware das Multiplexieren der Prozesse in der ZE besorgen. Darüberhinaus sorgt eine Kombination aus Soft- .
ware, Hardware und Firmware für die Synchronisation zwischen den Prozessen.
Gestartet und gestoppt werden Prozesse normalerweise - aber nicht immer - bei Beginn und Beendigung von Ein/Ausgabe-Operationen,
während der entsprechenden Job-Bearbeitung und
5098 23/0695
zu anderen Zeiten und zu Zwecken, die das Betriebssystem für erforderlich hält. Daher benötigt man ein
Kommunikations-System, um zusammengehörige Prozesse effizient starten und stoppen und Informationen zwischen'
ihnen austauschen zu können. Das hier beschriebene Hardware-System sieht interne Nachrichten vor,
die als Semaphore bezeichnet werden und ein Kommunikations-Glied zwischen den Prozessen bilden.
Im jeweiligen Augenblick gibt es für den Prozeß vier
Zustände: Lauf-, Ready-, Wait- oder suspendierter Status. Die Hardware erkennt diese vier möglichen Prozeß-Zustände
und führt diverse Firmware-Prozeduren zur ZE-Zuteilung an
die Prozesse, Status-Änderung und Bildung von Daten-Strukturen je nach dem Status des Prozesses aus. Der PCB
enthält ein Statusfeld, das den gegenwärtigen Status des ihm zugeordneten Prozesses definiert.
Ein Prozeß befindet sich im Laufstatus, wenn er die Kontrolle
über die ZE hat. Zu diesem Status gehört, daß der ZE ein Adreßraum (Segment-Tabellen) und eine Anfangsadresse geliefert werden. Die ZE führt dann Befehle in
den Prozedur-Segmenten des Prozesses aus. Das Prozeßnamen- J-Tabeilen-Wort (logische Adresse) des PCB's für den
gegenwärtigen im Laufstatus befindlichen Prozeß wird im "laufenden Prozeßwort" (BAR + 60) innerhalb der System-Basis
verwahrt (siehe Figur 6; zu beachten ist, daß die in Figur 5 gezeigte System-Basis dieselbe ist wie die in
Figur 6 gezeigte, jedoch unter Auslassung einiger Details).
509 823/069 5
Der Ready-Status ist gleichbedeutend mit dem Laufstatus,
außer daß der Prozeß keine Kontrolle über die ZE hat, weil
er von der ZE noch nicht erkannt worden ist. Ein Prozeß im Ready-Status steht mit anderen Ready-Status-Prozessen und
mit dem gerade ablaufenden Prozeß in Konkurrenz um die ZE.
Ein Prozeß befindet sich im Wait-Status, wenn er erst dann
fortfahren kann, wenn ein bestimmtes Ereignis,wie z.B.
eine Nachricht über ein Semaphor,eintritt. Ein in diesem
Sinne wartender Prozeß steht nicht in Konkurrenz um die ZE, kann aber mit anderen Prozessen in Konkurrenz stehen, die
ebenfalls auf das betreffende Ereignis warten.
Ein suspendierter Prozeß ist' ein Prozeß, der von der Software vorübergehend gestoppt wurde und später fortgesetzt
werden kann. Die Entscheidung, den Prozeß zu stoppen bzw. fortzusetzen, erfolgt extern, d.h. außerhalb des Prozesses.
Daraus folgt: ein suspendierter Prozeß ist nicht aktiv und kann daher weder vom Eintritt eines Ereignisses verständigt
werden noch die ZE benutzen.
Ein Prozeß wird unter folgenden Bedingungen suspendiert:
1) Durch Ausführung eines Terminate-Befehls (als Ergebnis
der kompletten Ausführung aller seiner Funktionen).
2) Durch Ausführung eines Suspend-Befehls durch das Betriebssystem.
■ .. .
3) Durch den Eintritt einer Ausnahme-Bedingung, wobei die Kontrolle dem Betriebssystem übertragen wird.
509823/0695
Der Übergang von Prozessen von einem Status in den anderen erfolgt entweder "freiwillig" (durch den ablaufenden Prozeß
selber) oder "unfreiwillig" (durch andere Prozesse). Eine als "Dispatcher" bezeichnete ZE-Firmware steuert die Prozeß-Transaktion
zwischen den verschiedenen Status-Möglichkeiten. Der Dispatcher benützt eine Reihe von Warteschlangen (die
später beschrieben werden) zur Manipulation von Prozessen, die im Ready- oder im Wai't-Status sind. Suspendierte
Prozesse werden durch die Software kontrolliert.
Nun zu Figuren 6, 8 und 9: ein Ready- oder Wait-Prozeß wird dargestellt durch einen PCB und eine als "Process
Link" bezeichnete spezielle Prozeßanschlußeintragung in der.Warteschlange.
Figur 9 zeigt eine auseinandergezogene Darstellung des .Inhalts des GO-Segmentes 802 und enthält Process Links 803a
- 803b und 803c - 803g von aktiven Prozessen sowie freie Process Links 805a - 805c von suspendierten Prozessen.
Jedes Process Link (Prozeß-Anschlußeintragung) gibt den Prozeß-Namen (J, P), die Prozeß-Priorität und einen Pointer
an, der auf das nächste Process Link in der Schlange verweist. Es gibt verschiedene Arten von Warteschlangen wie
z.B. die Wait-Warteschlange 803a-b und die Ready-Warteschlange
803c-g.
Eine der J-Tabelle entsprechende, als G-Tabelle bezeichnete
Hardware-Vorrichtung (Figuren 6 und 8) enthält Pointer für alle generellen (systemweit bekannten) Segmente 802 - 802n.
Das erste Element, GO, der G-Tabelle 801 verweist auf dasjenige
Segment 802, das die Dispatcher-Warteschlangen
enthält. Ein G-Tabellen-Pointer auf die G-Tabelle 801
B09823/0695
findet sich in der System-Bsöls 502, wie in Figur 5 gezeigt.
Ebenfalls in der System-Basis befindet sich eine als IPQW
(internal Process Queue Word) bezeichnete Eintragung: sie identifiziert den Kopf 805 der Ready-Warteschlange 803c 803g
im GO-Segment 802.
Auf diese Weise kann der Dispatcher durch Befragung der
Ready-Warteschlange 803c - 803g alle Ready-Prozesse untersuchen. Wenn der gegenwärtig ablaufende Prozeß den
Status ändert, entfernt der Dispatcher das Process Link
am Kopf der Ready-Warteschlange und benutzt den Namen (J, P) für den Zugriff auf seinen PCB. Der durch den PCB
definierte Prozeß wird dann der neue ablaufende Prozeß.
Da es sein kann, daß mehrere Prozesse auf dasselbe Erreignis warten, gibt es für jedes Ereignis eine Warteschlange
wartender Prozesse (803a - 803b). Wartende Prozesse sind ebenfalls durch Process Links 805, die im GO-Segment residieren,
miteinander verkettet. Ein Pointer, der auf den Kopf einer Wait-Warteschlange verweist, existiert in einem
Semaphor 903 (wird später erläutert).
Es gibt eine Reihe von Ereignissen, auf die ein Prozeß warten kann; infolgedessen gibt es eine Reihe von Wait-Warteschlangen
von denen jede einen ihr zugeordneten Semaphor 903 bzw. 904 besitzt.
Die Anzahl der im Ready- bzw. Wait-Status befindlichen Prozesse ändert sich dynamisch. Daher ändert sich ebenfalls
die Anzahl der Process Links, die man für die Ready- und
Wait-Warteschlangen benötigt. Diese Tatsache führt zu einem Speicher-Management-Problem für den Dispatcher.
Gelöst wird dieses Problem durch eine weitere Warteschlange,
die Warteschlange der freien Process Links (805a - c).
50 9 823/0695
Diese Warteschlange verknüpft alle Process Links in Segment GO, die im Moment weder von den Ready- noch
von den Wait-Warteschlangen benutzt werden und mit
denen man daher eine bestimmte Warteschlange von Ready- bzw. Wait-Prozessen erweitern kann. Ein Pointer
901, der auf den Kopf 902 der Warteschlange 805 der freien Process Links hindeutet, residiert am Anfang
des GO-Segmentes 802.
Prozeß-Synchronisation ist erforderlich, um die Aktivitäten von zwei Prozessen zu koordinieren, die dieselbe
Task bearbeiten. Die Synchronisation erreicht man durch Semaphore 903 - 904: dies sind Daten-Strukturen, die im
Adreß-Raum der miteinander kommunizierenden Prozesse residieren. Ein Semaphor dient dazu, Ereignis-Eintritt zu
signalisieren und Nachrichten-Warte schlangen zu bearbeiten. Ein "Ereignis" in diesem Kontext ist alles, was
ein Prozeß beobachtet und für einen anderen Prozeß von Interesse sein kann. Das Ereignis kann der Abschluß einer
asynchronen Operation oder das Verfügbarwerden einer System-Komponente sein.
Ein Prozeß benutzt zwei Semaphor-Operationen, um einen
Ereignis-Eintritt zu signalisieren. Die eine Operation sendet ein Signal an einen Semaphor; die andere Operation greift
ein Signal von einem Semaphor auf (die Sende-Operation bezeichnet
man oft als V-Operation; die Empfangs-Operation bezeichnet man als P-Operation). Die Sende-Operation ermöglicht
es einem Prozeß,Daten zu übermitteln oder ein Signal zu geben, daß Daten bereitstehen. Der Semaphor speichert
B09823/0695
das Signal, bis ein anderer Prozeß so weit ist, daß er das Signal aufgreifen kann. Entsprechend ist der Sende-Prozeß
frei und kann fortfahren, denn er hat die Daten ja übermittelt. Die Empfangs-Operation untersucht einen
bestimmten Semaphor und greift das Signal auf. Wenn ein Signal vorliegt, setzt der Empfangs-Prozeß die Ausführung
fort. Liegt im Semaphor jedoch kein Signal vor., so betritt der Empfangs-Prozeß den Wait-Status. Der Semaphor
dient dann als Pointer für den Kopf einer Wait-Warteschlange.
■ ·
Der Prozeß verbleibt im Wait-Status~ und wartet am Semaphor
bis ein anderer Prozeß diesem speziellen Semaphor ein Signal
übermittelt. Ein Semaphor kann also ein Signal festhalten, bis ein Prozeß das Signal aufgreift, oder ein
Semaphor kann einen Prozeß festhalten, bis ihm ein Signal übermittelt wird.
Nachrichten können auch von einem Prozeß zum anderen übermittelt werden. Eine Nachricht hat dieselbe Qualität (anwesend
bzw. abwesend) wie ein Signal plus eine weitere Information. Einen Teil dieser Information liefert die
Hardware; einen anderen Teil liefert die Prozedur des Prozesses, der die Nachricht übermittelt hat., Eine Nachricht
enthält den Prozeß-Namen des Sende-Prozesses. Daher kann eine Vielzahl von Prozessen Informationen über
einen einzigen Semaphor senden, geprägt mit dem Namen des Absenders. -
An einem Nachrichten-Semaphor kann' es eine Warteschlange von
Nachrichten geben, die darauf warten, von* Prozessen empfangen zu werden. Wie bei Signal-Semaphoren ändert sich auch hier
der Bedarf an Arbeitsspeicherplatz und führt zu einem Speicher-Management-Problem. Wieder wird das Problem mit
509823/0695
einer Warteschlange von freien Nachrichten-Links gelöst.
Diese Links residieren an einer bekannten Stelle in einem Segment, das leicht zu finden ist, wenn man es benötigt,
um Nachrichten-Links entweder bereitzustellen oder aufzunehmen.
Da die Semaphore und die an ihnen gebildeten Warteschlangen von verschiedenen Prozessen gemeinsam benutzt werden,
genießt die gesamte Semaphoren-Struktur Schutz. Diesem
Schutz dienen Hardware- und Software-Konventionen, die den Zugriff auf jedes Segment beschränken, das Semaphore enthält.
Daher müssen die Semaphore in Semaphor-Descriptor-Segmenten stehen; einige davon können G-Segmente sein (wenn
System-Kommunikation erforderlich ist). Andererseits sind alle G-üegmente (außer GO) Semaphor-Descriptor-Segmente.
Jeder Semaphor-Descriptor enthält einen Pointer für einen Semaphor. Semaphor-Adressen entwickelt man über einen
Semaphor-Descriptor, woraus sich zusätzlicher Schutz für den Semaphor ergibt.
Man kann ein Semaphor-Segment logisch - mit Segment-Nummer und relativer Adresse innerhalb des Segments - oder auch
direkt mit der Nummer (G, D) adressieren.
Figur 4 zeigt das Format des Prozeß-Steuerblocks (PCB). Der Prozeß-Steuerblock 400 ist ein Speicherbereich im
Hauptspeicher, der einem Prozeß zur Verfügung gestellt wird, um den ZE-Status sicherzustellen. Die Adressierung
eines PCB's erfolgt, wie oben im Zusammenhang mit Fig. 5
509823/0695
beschrieben. Der PCB-Pointer 507 (Figur 5) verweist auf den Prozeß-Steuerblock PCB bei Speicherstelle 0 (Figur 4).
Wie man sieht, nehmen die Speicherstellen um je vier Bytes zu, wenn man von Speicherstelle 0 nach unten geht; dagegen
nehmen sie um je 8 Bytes zu, wenn man von Speicherstelle 0 nach oben geht. Die unteren Speicherstellen, wenn
man von 0 an nach unten geht, gelten als positiv, während die Speicherstellen, wenn man von 0 an nach oben geht in
der negativen Richtung liegen. Die oberen Speicherstellen sind wahlweise vorhanden; sie können im Prozeß-Steuerblock
enthalten sein, müssen es aber nicht; ebenfalls wahlweise vorhanden sind auch die Speicherstellen 148-176 (zu beachten
ist also, daß die Zahlenangabe in der Spalte "Speicherstellen·1 die Byte-Distanz gegenüber der Referenz-Stelle 0 des
Prozeß-Steuerblocks PCB spezifizieren).
Von Byte 0 bis ausschließlich Byte 16 sind vier Prozeß-Hauptworte
- = PMW gespeichert: PMW 0 - PMW 3; jedes Prozeß-Hauptwort PMW ist vier Bytes lang. PMW 0 belegt Byte 0-3
und besteht aus vier Teilen: einem Eignungs-Byte, einem Prioritäts-Byte, einem Status-Byte und einem "Decor
Extension Byte" (DEXT). In Figur 10a bis 1Od sind Einzelheiten des Prozeß-Hauptwortes PMW 0 dargestellt; weitere
Einzelheiten zum Eignungsbit 1001 sind aus Figur 10b ersichtlich. Wie aus Figur 10b hervorgeht, ist das erste Bit
1005 das Abrechnungs-Modus-Bit, das anzeigt,, ob Zeit-Ab-1
rechnungs-Funktionen für diesen Prozeß vorgenommen werden oder nicht.
Wenn das Abrechnungs-Modus-Bit 1005 binär 0 ist, wird für diesen Prozeß keine Zeit-Abrechnungs-Funktion durchgeführtj
wenn dagegen das Abrechnungs-Modus-Bit 1005 binär 1 ist, findet eine Zeit-Abrechnung statt. Wenn das Bit 1006
(wissenschaftlicher Modus) 0 ist, so zeigt dies an, daß
509823/0695
keine Sicherstellung der wissenschaftlichen Register der Maschine erfolgt, und der Sicherstellungs-Bereich für die
wissenschaftlichen Register, der in Figur 4 Byte 148 bis 176 belegt, ist im Prozeß-Steuerblick PCB nicht vorhanden.
Wenn Bit 1006 (das Bit für den wissenschaftlichen Modus) binär 1 ist, so existiert diese wissenschaftliche Zusatzeinrichtung,
und sie wird im Prozeß benutzt; und der Sicherstellungsbereich für die wissenschaftlichen Register
wird dazu benutzt, den Inhalt der wissenschaftlichen Register zu erhalten, wenn dies erforderlich ist. Das Code-Modus-Bit
1007 zeigt an, ob von dem Prozeß ein Standard-Code-Vorrat oder ein Kompatibilitäts-Code-Vorrat benutzt
wird oder nicht; binär 0 ah dieser Stelle zeigt an, daß der Standard-Cöde-Vorrat benutzt wird; dagegen zeigt
binär 1 an der dritten Bit-Position 1007 an, daß ein
Kompatibilitäts-Code-Vorrat benutzt wird. Die übrigen Bits des Eignungs-Bytes sind 0.
Einzelheiten zum Prioritäts-Byte 1002 gehen aus Figur 10c hervor. In Figur 10c ist gezeigt, daß die ersten 4 Bits
1008 des Prioritäts-Bytes 1002 dazu dienen, die Prioritätsstufe des dem betreffenden Prozeß-Steuerblock PCB zugeordneten
Prozesses festzulegen. Jedem Prozeß wird eine von 16 Prioritätsstufen zugeordnet, die dazu dient, die konkurrierenden
Prozesse zu ordnen; d.h. dazu, (a)unter den Ready-Prozessen denjenigen auszuwählen, der ablaufen soll
und (b) die Prozesse in Warteschlangen zusammenzustellen.
Die Priorität nimmt von 0 bis 15 ab; für die betreffende Prioritäts-Stufe findet die FIFO-Regel (First-in, first-out)
Anwendung (lineare Verarbeitung). Die nächsten vier Bits
1009 des Prioritäts-Bytes 1002 sind 0.
509823/0695
Nun zu Figur 1Od: dort sind Einzelheiten des Status-Bytes
1003 gezeigt. Ein Status-Byte dient dazu, Informationen
über den dem Prozeß-Steuerblock PCB 400 zugeordneten Prozeß zur Verfugung zu stellen.
Das Aktivfeld-Bit A 1010 ist binär 1, wenn der Prozeß
aktiviert ist. Das Suspendierungsfeld S 1011 ist binär 1, wenn der Prozeß suspendiert ist. Das Substatus-Feld SS 1012
ist ein zwei-Bit-Feld und definiert die folgenden Unterstatus-Möglichkeiten
des Prozesses : (a) binär 00 bedeutet, der Prozeß ist inaktiv; (b)binär 01 bedeutet, der Prozeß
wartet in der Warteschlange der Ready-Prozesse (Q/PR/RDY); (c) binär 10 bedeutet, der Prozeß wartet bei einem Semaphor
in einer Semaphor-Warteschlange (Q/PR/S); (d) binär 11 bedeutet,
der Prozeß wird gerade durch den Prozessor ausgeführt. Das Operations-Mitte-Feld (mid-operation field =
MOI) 1013 ist binär 1, wenn eine Unterbrechung erfolgt;
dieses Feld wird während der Ausführung eines Befehls betreut - d.h. vor Abschluß des Prozesses. Das "Extended
Decor Mode"-Bit (EXTD) 1014 ist 1, wenn der Prozeß in einem" "Extended Decor Mode" abläuft: dies ist ein Emulations-Modus
der Maschine. Bit 1015 und 1016 sind 0. Das vierte Byte des Prozeß-Hauptwortes PMW 0 enthält die Decor-Extension-Nummer
und wird benutzt, wenn das System im Emulations-Modus läuft.
Prozeß-Hauptwort PMW 1 wird in den Bytes 4-7 des Prozeß-Steuerblocks PCB gespeichert. Einzelheiten zum
PMW 1 gehen aus Figur 1Oe hervor. Das Status-Byte 1016 ist das erste Byte in PMW 1 und speichert den Status-Regist
er- Inhalt. Das Multiprocessor-Byte MP 1018 ist nur bei einer Multiprocessor-Architektur signifikant;
sonst ist dieses Feld 0. Das zweite und vierte Byte des
509 8 2 3/0695
Prozeß-Hauptwortes 1 ist das MBZ-FeId 1017 bzw. 1019;
bei Normalbetrieb müssen diese Felder 0 sein.
Prozeß-Hauptwort PMB 2 belegt die Bytes 8-11 des Prozeß-Steuerblocks; es ist ausführlicher in Figur
1Of dargestellt. Wie aus Figur 1Of ersichtlich, enthält das Feld von Bit 4 bis Bit 31 den lokalen Namen SEG, SRA
1021 des Semaphore, mit dem der PCB verknüpft ist, wenn sich der Prozeß entweder in Warte- oder in suspendiertem
Status befindet.
Das Ausnahme-Klassen- und Typ-Feld 1023 enthält Klasse und Typ der unterbrechungsähnlichen Ausnahme, die den Prozeß
dazu veranlaßt, nach einer Ausnahme zum suspendierten Status zu wechseln. Das Feld der Bits 4-15 ist ohne
Bedeutung (1022), wenn sich ein Prozeß in einem anderen Status als dem oben erwähnten befindet.
Das Prozeß-Hauptwort PMW 3 belegt die Bytes 12 - 15 in PCB 400 und verweist auf eine Decor-Extension-Tabelle.
Einzelheiten zu PMV/ 3 sind Figur 10g zu entnehmen; das DETSZ-FeId 1024 definiert die Anzahl der Eintragungen
der Tabelle, und wenn dies Feld 0 ist, ist bei dem betreffenden Prozeß keine "Decor Extension" zulässig. Das
DETA-FeId 1025 ist die absolute Adresse der Decor-Extension-Tabelle
in Einheiten zu je 16 Bytes.Es ist nur dann
signifikant, wenn DETSZ nicht 0 ist. Die Decor-Extension-Tabelle besteht aus DETSZ-Eintragungen. Jede Eintragung
umfaßt ein Byte. Die DEXT-te Eintragung der Tabelle definiert die Fähigkeit des Prozesses, im Decor-Extension-Modus
DEXT zu operieren. Wenn das DEXT-te Byte 0 ist, ist die Decor-Extension-Nummer DEXT nicht zulässig. Wenn dagegen
das DEXT-te Byte 1 ist, ist die Decor-Extension-Nummer DEXT zulässig. Andere Werte als 0 bzw. 1 sind für
DEXT nicht zugelassen (siehe Figur 10a, DEXT-Nummer 1004).
509823/0 69 5
Die Bytes 16 bis 23 von PCB 400 enthalten zwei Adreß-Raum-Worte
ASW 0 bzw. ASV/ 1. Jedes ASW (Address Space Word) enthält einen Pointer auf ein Feld von Segment-Tabellen-Worten.
Sowohl ASW 0 als auch ASW 1 haben dasselbe, in Figur 10h dargestellte Format. Die Größe des
Feldes der Segment-Tabellen-Worte wird durch die Anzahl der Segment-Tabellen-Worte in einem Feld definiert.
Typischerweise beträgt die Größe 6 für ASW 0 bzw. 8 für ASW 1. Das STWSZ-FeId 1026 gibt die Größe des Feldes der'
Segment-Tabellen-Worte an. Das Segment-Tabellen-Wortgruppen-Feld
STWA 1027 (Segment Table Word Array) enthält die absolute Adresse STWA der Feldgruppe in Einheiten zu
je 16 Bytes - die absolute Adresse der Feldgruppe ist also 16 mal STWA in Bytes. " . ,
Die Bytes 24 bis 27 im PCB enthalten ein Ausnahmewort EXW
(Exception Word), das ausführlich in Figur 1Oi dargestellt ist. Das Ausnahmewort enthält einen Pointer (SEG, SRA) 1029,
der auf eine Ausnahme-Klassen-Tabelle verweist, welche ihrerseits festlegt, welche Aktion im Anschluß an eine
Prozeß-Ausnahme erfolgen soll; dies richtet sich nach der im Prozeß-Hauptwort PMW 2 gespeicherten Klasse (siehe
Figur 1Of). Das MBZ-FeId 1028 des Ausnahmewortes EXW muß 0 sein*
Das in den Bytes 28 bis 31 des PCB lokalisierte Stack-Wprt SKW enthält den Viert der Spitze des T-Registers des Stacks
des Prozesses, wenn der Prozeß gerade nicht abläuft; ausführlich ist es in Figur 1Oj dargestellt. Wie aus Figur 1Oj
hervorgeht, definieren die Bits0 und 1 das TAG-FeId 1030.
Das TAG-FeId zeigt den Typ des Descriptors nach seinem Inhalt an und muß für SKW 0 sein. Die Bits 2 und 3 des
509823/0695
SKW-Wortes enthalten das RING-FeId 1031, das zu Schutzzwecken
die Ring-Nummer enthält, die der segmentierten Adresse des Stacks zugeordnet ist; in diesem Fall muß
es 0 sein. Die Bits 4-31 enthalten die Segment-Nummer SEG und Segment-relative Adresse SRA 1032; dieses Feld
bezeichnet das in einer Segment-Tabelle beschriebene Segment und die Segment-relative Adresse innerhalb des
Segments. Das Stack-Wort SKW wird jedesmal dann aktualisiert, wenn der Prozeß den Lauf-Status verläßt. Es dient
dazu, den Inhalt des T-Registers wieder herzustellen, so oft der Prozeß zum Lauf-Status wechselt. Im letzteren
Fall wird getestet, ob TAG 1030 und RING 1031 den Wert 0 ' haben; andernfalls tritt ein Ausnahmezustand wegen PCB-Unzulässigkeit
ein.
Die Bytes 32 bis 35 von PCB 400 enthalten das den Inhalt
des Befehlszählers angebende Befehlszählerwort ICW, das manchmal auch als ICC bezeichnet wird. In Figur 10k sind
Einzelheiten des Befehlszählerworts ICW dargestellt: dabei muß das TAG-FeId 1033 binär 00 enthalten (dies bedeutet,
daß im Befehlszähler andere Werte als 0 unzulässig sind).
Das aktuelle RING-FeId 1043 belegt die Bits 2 und 3 und
definiert die laufende Ring-Nummer des Prozesses, die dazu dient, die Berechtigung zum Zugriff auf den Hauptspeicher
festzulegen. Die Bits 4 bis 31 definieren die Segment-Nummer und die relative Segmentadresse (SEG, SRA) 1035, die die
Adresse des nächsten auszuführenden Befehls definieren.
Das MBZ-FeId in den Bytes 36 bis 39 muß 0 sein (beachte,
daß das MBZ-FeId stets ein Feld anzeigt, das 0 sein muß). Das MBZ-Wort wird jedesmal getestet, wenn auf den PCB üter
den Namen (J, P) zugegriffen wird. Wenn es nicht 0 ist, tritt ein Ausnahmezustand wegen PCB-Unzulässigkeit ein.
509823/069 5
Die Stack-Basis-Worte SBW 0 bis 2 belegen die Bytes 40 - 51 im Prozeß-Steuerblock 400. Diese Worte haben dasselbe,
ausführlich in Figur 101 dargestellte Format. Sie werden im Verlauf von Stack-Operationen benutzt. Wenn
sie benutzt werden, müssen ihr TAG-FeId 1036 und ihr
RING-FeId 1037 stets Ό sein;■andernfalls tritt ein Ausnahmezustand
wegen PCB-Unzulässigkeit ein. Die Bits 4-31 enthalten die segmentierte Adresse (SEG, SRA) 1038 der
ersten Bytes der Stack-Segmente für Ring 0, 1 bzw. 2.
Die Bytes 52 bis 83 des Prozeß-Steuerblocks 400 sind ein für den Basis-Register-Sicherstellungsbereich (8 Worte)
reservierter Raum. Die Bytes 84 bis 147 sind ein Sicherstellungsbereich,
der dazu dient, die Werte aller allgemeinen Register sicherzustellen (16 Worte). Die Bytes
bis 179 sind ein Sicherstellungsbereich, der dazu dient, den Inhalt der wissenschaftlichen«Register (8 Worte)
sicherzustellen.
Fünf Doppelworte stehen in dem PCB 400 oberhalb der PCB-O-Adresse zur Verfügung. Sie dienen zur Zeit-Abrechnung,
wenn das Abrechnungs-Modus-Bit in dem Wort PMW 0 gesetzt ist. Diese Worte sind im Bereich von
PCB-Adresse minus 8 bis PCB-Adresse minus 40 lokalisiert.
Jedes Wort enthält in Mikrosekunden ausgedrückt eine
Zeit oder ein Zeitintervall in seinen ersten 52 Bits, . während die Bits 52 bis 63 mit Nullen gefüllt sind. Das
Doppelwort RTO (Residual Time Out ■- = Restzeitsperre j
die ersten 8 Bytes oberhalb von 0 im PCB) enthalten das Zeitquantum, das der Prozessor faktisch für den Prozeß
aufwendet, bevor eine Zeitsperren-Ausnahme eintritt. Das RTO-Wort wird auf folgende Weise aktualisiert: sooft der
50982 3/0695
Prozeß den Lauf-Status verläßt, wird im RTO-Wort der
Prozeß-Timer-Wert gespeichert. Sobald der Prozeß den Lauf-Status betritt, wird der Prozeß-Timer-Wert aus dem
RTO geladen.
Das Doppelwort für die Zeitabrechnung (RUA) bei den Bytes 7 bis 15 ist ein Zeit-Zähler, der den Gesamtbetrag der
Prozessorzeit spezifiziert, die ein Prozeß im Lauf-Status zugebracht hat. Die hier erfaßte Zeit ist die Zeit, die der
Prozessor tatsächlich exklusiv für den betreffenden Prozeß aufwendet. Das RUA-Wort wird auf folgende Weise aktualisiert:
Sooft der Prozeß den Lauf-Status verläßt, wird der Wert des Prozeß-Timers PT gelesen. Die Differenz zwischen dem Inhalt
von RTO und PT wird auf RUA addfert (anschließend wird der PT-Wert in RTO gespeichert). Zu beachten ist, daß die Zeit,
während der ein Prozeß suspendiert ist, nicht berechnet wird. Die RTO- und RUA-Worte werden auch dann aktualisiert,
wenn das Abrechnungs-Modus-Bit 0 ist. Andererseits stehen die Worte CET, RTA und WTA (die später besprochen werden)
im Prozeß-Steuerblock nur dann zur Verfügung, wenn das Abrechnungs-Modus-Bit im Prozeß-Hauptwort PMW.0 1 ist.
Nur in diesem Fall werden sie aktualisiert.
Das Wort zur Abrechnung der Wartezeit (Waiting Time Accounting = WTA) bei den Bytes 17 bis 23 ist ein Echtzeit-Zähler,
der den Gesamtbetrag der echten Zeit angibt, den der Prozeß im Wartezustand zugebracht hat.
Das WTA-Wort wird wie folgt aktualisiert: Jedesmal wenn der Prozeß den Wait-Status verläßt, wird der Zeitwert der
Tageszeituhr (TOD) gelesen, und der Wert von TOD minus dem Wert des CET-Wortes wird auf das WTA-Wort addiert.
509 8 2 3/0695
Das RTA-Wort (Ready Time Accounting - Abrechnung über die
Ready-Zeit) ist ein Echtzeit-Zähler, der den Gesamtbetrag der echten Zeit angibt, den der Prozeß im Ready-Status
zubrachte. Das RTA-Wort wird wie folgt aktualisiert: Jedesmal, wenn der Prozeß den Ready-Status verläßt, wird
der Wert TOD der Tageszeituhr gelesen, und der Inhalt von TOD minus dem Inhalt von CET wird auf RTA addiert.
Das Doppelwort CET (Current Entry Time - aktuelle Einsprungszeit)
enthält die Tageszeit, in welcher der Prozeß eine der folgenden Status-Möglichkeiten betreten
hat: Ready-, Wait-, Lauf- und suspendierter Status.
Das Format der System-Basis 600 geht aus Figur 6 hervor. Die System-Basis residiert im absoluten Hauptspeicher,
wird von der Firmware entwickelt und erlaubt Zugriff über das Grenzadreß-Register (BAR), das nur gelesen, in
das aber nicht geschrieben werden kann. Das Grenzadreß-Register BAR. ist unterhalb eines Bereiches im Hauptspeicher,
der für die Hardware reserviert ist, und es trennt diesen im Hauptspeicher für die Hardware reservierten
Bereich von der System-Basis 600. Nach Figur 6 enthält die System-Basis 600 eine Anzahl von System-Attributen;
hierzu gehören eine Job-Step-Nummer oder eine Prozeßgruppen-Nummer (J, P) für den gegenwärtig
ablaufenden Prozeß. Aus dem logischen Namen des Prozesses (J, P) ergibt sich die absolute Adresse des entsprechenden
Prozeß-Steuerblocks PCB. Die Größe und Adresse der J-Tabelle wird durch den Inhalt des J-Tabellen-Wortes JTW definiert.
Dieses Wort befindet sich an der vom BAR-Register definierten Adresse. Das Format des JTW ist in Figur 11a dargestellt.
Die Größe (JTSZ) 1101 der J-Tabelle 1204 in
509823/0695
Figur 12 definiert die Anzahl der Eintragungen in der J-Tabelle 1204, die bis zu 255 Eintragungen
umfassen kann. JTSZ 1101 ist eine 8 Bits umfassende positive Ganzzahl; ein außerhalb der J-Tabelle
liegender Ausnahmezustand tritt ein, wenn J größer als JTSZ ist. Die absolute Adresse der J-Tabelle 1204
ergibt sich daraus, daß man den J-Tabellen-Pointer 1102 mit 16 multipliziert.
Die J-Tabelle 1204 enthält J-Tabellen-Eintragungen, deren
Format ausführlicher in Figur 11b dargestellt ist. Jede J-Tabellen-Eintragung definiert die absolute Adresse
einer P-Tabelle t205, die sich daraus ergibt, daß man
den P-Tabellen-Pointer 1104 mit 16 multipliziert. Die
Größe (PTSZ) 1103 einer P-Tabelle definiert die Anzahl der Eintragungen in der P-Tabelle. Die PTSZ ist eine
8 Bitsumfassende, positive Ganzzahl, die im typischen
Fall Werte zwischen 0 und 255 haben kann und die Anzahl der Eintragungen in der P-Tabelle angibt. Ein außerhalb
der P-Tabelle liegender Ausnahmezustand tritt ein, wenn P größer als PTSZ ist. Jede Eintragung der P-Tabelle
1205 definiert die absolute Adresse eines Prozeß-Steuerblocks PCB 1206, die man erhält, wenn nan den Prozeß-Steuerblock
-Pointer 1107 mit 16 multipliziert. Ein Anwesenheits-Indikator P 1105 zeigt die Abwesenheit
eines PCB 1206 an, wenn er binär 0 ist, und zeigt die Anwesenheit eines PCB an, wenn er binär 1 ist (wenn sich
herausstellt, daß der Anwesenheits-Indikator P 1105 den Wert 0 hat, tritt ein Ausnahmezustand weger, fehlender
Eintragung in der P-Tabelle ein). Die Bits 1 bis 7 des P-Tabellen-Indikators (Figur 11c) müssen 0 (MBZ) sein
(1106); andernfalls tritt ein Ausnahmezustand wegen unzulässiger Eintragung in die P-Tabelle ein.
509823/0695
Bei der Adresse BAR plus vier der System-Basis 600 befindet
sich das Format-Byte eines G-Tabellen-Wortes (GTW)» das ausführlicher in Figur 11g dargestellt jst. Größe und
Adresse einer G-Segment-Tabelle 1212 in Figur 12 sind durch den Inhalt des G-Tabellen-Wortes (GTW) definiert.
Die Größe (GTSZ) 1108 der G-Tabelle 1212 definiert die Anzahl der Eintragungen in der G-Tabelle, die im typischen
Fall bis zu 255 Eintragungen umfassen kann. GTSZ ist eine
8 Bi/te umfassende, positive Ganzzahl; ein außerhalb der
G-Tabelle liegender Ausnahmezustand tritt ein, wenn die G-Anzahl größer als die GTSZ ist. Die absolute Adresse
der G-Tabelle 1212 ergibt sich aus der Multiplikation des G-Tabellen-Pointers 1209 mit dem Wert 16. Jede Eintragung
in der.G-Segment-Tabelle hat ein Zweiwort-Format (8 Bytes) und wird als G-Segment-Descriptor bezeichnet.
Das Format des G-Segment-Descriptors ist ausführlich in
Figur 11e und 11f dargestellt. Alle G-Segment-Descriptoren sind direkt und daher muß das Indirektheits-Bit I,
1111 den Wert 0 haben; andernfalls tritt ein Ausnahmezustand
wegen unzulässigen Segment-Descriptors ein. Der Anwesenheits-Indikator P 1110 ist ein Ein-Bit-Feld, das,
wenn es binär 1 ist, anzeigt, daß im Hauptspeicher für die Segmentnummer, welcher der betreffende Descriptor
entspricht, ein Segment definiert ist. Ist dieses Feld dagegen auf 0 gelöscht, so ist kein Segment definiert,
und jede Referenz auf den Segment-Descriptor veranlaßt einen Ausnahmezustand wegen fehlenden Segments. Das
Verfügbarkeits-Bit A 1112 ist ein Ein-Bit-Feld, das anzeigt, ob das Segment verfügbar ist oder nicht; es wird
nur geprüft, wenn dies Segment definiert ist (d.h. P gleich binär 1); andernfalls bleibt dieses Bit unbeachtet.
509823/0695
Das Feld U 1113 (Benutzungs-Kennzeichen) zeigt an, ob Zugriff auf das Segment erfolgt ist oder nicht. Wenn
das U-Bit binär 0 ist, ist kein Zugriff auf das Segment erfolgt. Wenn dagegen das U-FeId binär 1 ist, so ist
auf dieses Segment zugegriffen worden. Das Feld W (Schreib-Kennzeichnung) 1114 zeigt an, ob das Segment
geschrieben worden ist." Wenn W binär Ö ist, so ist das
Segment nicht geschrieben worden. Wenn W aber binär 1 ist, so wurde das Segment geschrieben. Der Gatter-Indikator
GS 1115 eines G-Segment-Descriptors muß binär 01 sein, sonst tritt ein Ausnahmezustand wegen unzulässigen
Segment-Descriptors ein. Dies hat folgenden Grund: ein G-Segment enthält stets Semaphore (dies ist allerdings
niht umkehrbar; keineswegs müssen alle Semaphore sich in einem G-Segment befinden), und Befehle an
Semaphore verlangen, daß der GS-Code binär 01 ist. Die absolute Adresse der Basis eines Segments (1214) wird
im G-Segment-Descriptor von Figur 11e durch das 24-Bit-Basisfeld 1116 definiert; der Inhalt dieses Feldes wird
mit 16 multipliziert und ergibt dann die absolute Adresse.
Das zweite Wort des G-Segment-Descriptors von Figur 11f
besetzt die Bit-Positionen 32 bis 63 in der G-Tabelle 1212,
Das RSU-FeId 1117, die Bits 32 bis 39» ist für die Verwendung
der Software benutzt (Reserved for Software Use) und wird im allgemeinen ignoriert, wenn es wie im vorliegenden
Fall eines G-Segment-Descriptors verwendet wird. Das MBZ-FeId 1118 muß 0 sein, sonst tritt ein Ausnahmezustand
wegen unzulässigen Segments ein. Da das MBZ-FeId 1118 die Bits 40 bis 51 belegt, setzt es das SIZN-FeId
1119, das Feld für ein Klein-Segment-SIZN; daher müssen
alle G-Segmente dem kleinen Segment-Typ angehören. Die Segment-Größe SIZN 1119 ist eine 12-Bifumfassende,
positive Ganzzahl, die die Anzahl der Bytes im Segment
509823/0695
definiert, und die Segment-Größe wird als Vierfaches von ,
16 interpretiert. Daher kann die Segment-Größe für ein G-Segment 1214 nicht größer sein als 2 Bytes (kleine
Segmente).
Wenn wir uns noch einmal der System-Basis 600 von Figur 6,
zuwenden, so gibt es neun System-Ausnahme-Fällen-Wqrte,
die sich zwischen BAR plus 8 und BAR plus 44 befinden. Das Format eines solchen EXC-¥ortes (System Exception Cell)
geht aus Figur 11g hervor. Nun dienen Semaphore·dazu, Nachrichten an Einzel-Prozesse zu übermitteln; wenn daher ein
System-Ausnahmezustand eintritt, befinden sich die Pointer auf diese Semaphore an 9 Stellen des Hauptspeichers, von
denen jede als System-Ausnahme-Zelle bezeichnet wird - eine für jede Klasse der System-Ausnahme. Das MBZ-FeId 1120 muß
binär 0 sein, sonst erfolgt eine System-Überprüfung. Jede Ausnahme-Zelle (EXC) enthält den System-Namen G, D 1121
bzw. 1122.
Die Kanal-Ausnahme-Zelle, die sich an der Stelle BAR plus der System-Basis 600 befindet, hat ein Format, das der eben
beschriebenen,System-Ausnahme-Zelle ähnlich ist. Sie enthält den System-Namen GD eines Semaphors, der dazu dient,
Nachrichten an Einzel-Prozesse zu übermitteln, wenn ein Kanal-Ausnahmezustand eintritt. Ein IPQW-Wort (internal
Processor Queue Word .- internes Prozessor-Warteschlangenf Wort) beginnt bei BAR plis 48, und Einzelheiten zu seinem
Format sind aus Figur 11h ersichtlich. Das IPQW-Wort verweist auf den Kopf einer Warteschlange bereitstehender
Prozesse (Q/PR/RDY)> wie in Figur 9 dargestellt, und zwar
mit den Bezugszeichen 905 bzw. 805. ■·
Die Warteschlange der bereitstehenden Prozesse (Q/PR/RDY)
verkettet alle Prozesse, die sich im Ready-Status befinden.
509823/0695
Sie wird angesprochen durch das Feld 1124 (HEAD OF 0/PR/RDY; Figur 11h)des IPQW-Wortes und zwar durch
Verweis auf die Spitze der Warteschlange der Ready-Status-Prozesse.Das
Feld 1124 (HEAD OF Q/PR/RDY) enthält eine aus 16 Bits bestehende positive Ganzzahl:
dies ist die Distanz zwischen der Basis des G-Segments Nummer 0, das als das Segment GO bezeichnet
wird und dem ersten Byte von Q/PR/RDY. Wenn dieses Q/PR/RDY-Bit-Feld 0 ist, so wird die Ready-Schlange
als leer angesehen. Das MBZ-FeId 1123 muß 0 sein, sonst tritt eine System-Überprüfung ein.
Bei BAR plus 52 der System-Basis 600 ist der Speicherplatz
für die Anfangs- und für die aktuelle Anzahl der Wiederholungsversuche wiedergegeben; das Format ist im
Einzelnen aus Figur 11i ersichtlich. Das WFS-FeId 1125
ist ein nicht-funktionales Speicherfeld und wird von der System-Basis nicht benutzt. Das Feld 1126 (Initial
Retry Count - Anfangszählung der Wiederholungsversuche)
und das Feld 1127 (Current Retry Count - aktueller Zählwert der Wiederholungsversuche) dient zur Kontrolle der
Häufigkeit, mit der automatische Befehls-Wiederholung ausgeführt wird, bevor durch einen Maschinenfehler ein
Maschinenfehler-Ausnahmezustand herbeigeführt wird. In beide Felder wird dieselbe Zahl geladen, und zwar durch
eine Reset-Retry-Count - Zählung (Rückstell/Wiederholungs-Zählung - hier nicht mit dargestellt).
Das in Figur 11 j gezeigte RPV/, das Wort für den laufenden
Prozeß (Running Process Word), ist in BAR plus 56 der System-Basis 600 gespeichert und dient bei einer Monoprozessor-Architektur
dazu, den Namen des laufenden Prozesses mit seiner Prioritätsstufe zu speichern. Die NFS-Felder 1128
bzw. 1131 sind nicht-funktionale Speicherfelder und können
509823/069 5
von jedem System-Element für jeden beliebigen Zweck verwendet
werden; sie werden aber im allgemeinen nicht von der System-Basis verwendet. Die Prioritätsstufe eines
laufenden Prozesses wird im PRI-FeId 1129 gespeichert*
Ein Asynchron-Kontroll-Bit ist im AB-FeId 1130 gespeichert;
ein Asynchron-Kontroll-Ring ist im ARN-FeId 1132 gespeichert.
Der logische Name J, P des laufenden Prozesses im Fall einer Monoprozessor-Architektur ist im J,P-FeId 1133
gespeichert. ' .
Ein in Eigur 11k wiedergegebenes Absolut-Tabellen-PointerWort
befindet sich bei BAR plus 60 in der System-Basis 600. Es dient bei einleitenden System-Laden (initial System Load
- ISL) dazu, die absoluten Adressen im ISL-Programm zu initialisieren, indem der Inhalt von BAR auf alle absoluten
Adressen im ISL-Programm addiert wird. Der Absolut-Tabellen-Pointer
1135 definiert den Speicherplatz einer Absolut-Tabelle (nicht abgebildet). Die Größe (Size) der Absolut-Tabelle
geht aus dem ATSZ-FeId 1134 hervor.
Das in Figur 111 gezeigte Wort "CPU Serial Number" ist ein 4-Byte-Wort, das sich bei BAR plus 64 befindet und die
Seriennummer der ZE im ZE-Seriennummer-Feld 1136 enthält.
Ein in Figur 11m dargestelltes Hauptspeicher-Obergrenzen-Wort
(Main Storage Upper Limit) befindet sich bei BAR plus 68 und zeigt die Hauptspeicher-Obergrenze 1139 in Form der
absoluten Adresse des letzten im Hauptspeicher verfügbaren Wortes an.
Bei BAR plus 72 befindet sich ein in Figur 11n wiedergegebenes
Wort, das die Kanalnummer (CN) 1140 der ISL-Einheit (Initial System Load) und die Kanalnummern (CN) 1141 der
Hardware-Einheit angibt. .
Den Typ und Untertyp einer im Computer-System verwendeten Einheit zeigt ein Hardware-Einheiten-Typ-Wort (Figur 11o),
509823/0695
und zwar in den Feldern 1143 bzw. 1144: hier ist das
RSU-FeId 1142 für Software-Zwecke reserviert. Dieses Wort befindet sich in der System-Basis bei BAR plus
76. Ein in Figur 11p wiedergegebenes entsprechendes Wort mit einem ähnlichen Format enthält Typ und Untertyp
der beim einleitenden System-Laden verwendeten Einheit. Dieses Wort befindet sich bei BAR plus
80.
Wenn die Wiederanlauf-Taste eines Computers gedrückt
wird, wird bei einem Semaphor eine simulierte V-Operation vollzogen, und der Ready-Status wird betreten. Ein
Pointer, der auf diesen Semaphor verweist, befindet sich bei BAR plus 84 der System-Basis 600 und wird als Wiederanlauf-Zellen-Wort
bezeichnet, sein Format ist in Figur 11q dargestellt.
Das Format ist ähnlich wie das der bereits besprochenen System-Ausnahmezelle und enthält den System-Namen (G, D)
eines Semaphore im G-FeId 1149 bzw. D-Feld 1150. Das MBZ-FeId
1148 muß 0 sein.
Wenn im Computer-System mehr als ein Prozessor vorhanden
ist, steht in der System-Basis 600 bei BAR plus 88 für die Multiprocess-Erweiterung ein Wort zur Verfügung. Einzelheiten
zu diesem Wort gehen aus Figur 11r hervor.
In Figur 12 ist ein Beispiel dargestellt, wie man die System-Basis in Verbindung mit dem Prozeß-Steuerblock
zur Adressierung und zum Zugriff auf ein Benutzer-Segment, ein System-Segment oder ein Segment mit einer Warteschlange
509823/0695
von Ready-Prozessen (Q/PR/RDY) benutzen kann. Der Hauptspeicher
1200 hat einen Seil 1203, der für Hardware-Zwecke reserviert ist. Ein Grenz-Adreß-Register BAR 1202 trennt
die System-Basis 1215 vom Speicherteil 1203 der für die Hardware reserviert ist. Das Grenz-Adreß-Register BAR 1202
dient dazu, Elemente in der System-Basis 1215 zu adressieren, indem der Inhalt des Grenz-Adreß-Registers auf die
Distanz (in 4-Byte-Einheiten) des gewünschten Elementes in
der System-Basis addiert wird. Diese Adresse verweist dann auf das erste Byte des Elementes in der gewünschten System-Basis.
In Fig. 12 verweist das Register BAR 1202 auf das J-Tabellen-Wort (JTW). Wie bereits besprochen, hat das
•J-Tabellen-Wort einen Pointer, der auf eine J-Tabelle 1204 Verweist. Durch Indexierung auf die in Pig. 5 dargestellte
J-Nummer wird eine J-Tabellen-Eintragung 1216 ermittelt.
Bei der J-Tabellen-Eintr.agung befindet sich ein P-Tabellen-Pointer,
der auf die absolute Adresse der P-Tabelle 1205 verweist. Durch Indexierung auf die P-Nummer (siehe Fig. 5)
innerhalb der P-Tabelle 1205 wird die absolute Adresse des Prozeß-Steuerblocks 1206 ermittelt.
Wie bereits zuvor gezeigt, gibt es im Prozeß-Steuerblook PCB
1206 zwei Adreß-Raum-Worte ASW 0 und ASW 1. Die höcbsten Bits des Segment-Tabellen-Euramernfeldes STlT im Basis-Register 1201
dienen dazu, auf eines dieser beiden Adreß-Raum-Worte zuzu- · greifen: in diesem Pall ASW 1, das einen STViA-Pointer hat,
der auf ein Segment-Tabellen-Wortfeld STWA 1208 verweist. Zusammen mit der Segment-Tabellen-Nummer STW des Basis-Registers
1201 erfolgt Zugriff auf eines von 8 Segment-Tabellen-Worten
in STWA 1208, das seinerseits auf eine von 3 Segment-Tabellen 1210 verweist. Die Segment-Tabellen-Sintragung
STE aus dem Basis-Register 1201-dient dann dazu,
eine von 256 Eintragungen in der Segment-Tabelle 1210 bereitzustellen, wo sich ein Segment-Descriptor befindet. Der
Segment-Descriptor dient dann zum Zugriff auf ein Benutzer-Segment 1211.
50 98 23/06 9 5
PUr den Zugriff auf ein System-Segment 1214, das zur Speicherung
von Seraaphoren dient, wird ein G-Tabellen-Wort GTW in der System-Basis 1215 benutzt. Die Adresse des G-Tabellen-Wortes
wird ermittelt, indem die Distanz des G-Tabellen-Wortes
in der System-Basis auf das Grenz-Adreß-Register BAR 1202 addiert wird (siehe Pig. 6). Das G-Tabellen-Wort
G-TW umfaßt einen G-Tabellen-Pointer, der auf eine G-Tabelle
1212 verweist. Durch. Nutzung einer für das System verfügbaren G-lTuramer und Indexierung in der G-Tabelle erfolgt
Zugriff auf einen G-Segment-Desoriptor,der dazu benutzt wird, ein System-Segment 1214 zu adressieren.
"Entsprechend wird die System-Basis 1215 dazu benutzt, auf
die V/arteschlange der Ready-Prozesse (q/PR/RDY) 1213 zuzugreifen,
indem ein IPQW (Internal Processor Queue V/ord) lokalisiert wird, welches auf das Q/PR/RDY-Segraent 1213
verweist.
LEITWERK
In Pig. 13a bis 13c sind die Einzelheiten zum Leitwerk dargestellt.
Das Leitwerk ist zwar von der Zentraleinheit (ZE) getrennt dargestellt, ist aber in Wirklichkeit ein Teil der
ZE. Das Leitwerk besteht aus einer Steuerspeicher-Einheit (Control Store Unit - ÖSU) 1301, einem Steuerspeicher-Interface-Anschluß
(Control Store Interface Adapter - CIA) 1302 mit zugehörigen Sub-Einheiten, Steuerspeicher-Lader
(Control Store Loader - CSL) 1303 und Steuer- und Lade-Einheit (Control and Load Unit - CLU) 1304. Die Steuerspeicher-Einheit
CSU 1301 erhält Mikro-Befehle vom Steuerspeicher-Lader
CSL 1303 über die Steuer- und Ladeeinheit CLU 1304 und den Steuerspeicher-Interface-Adapter CIA 1302.
Unter normalen Betriebsbedingungen v/erden die Hikroprogrenrce
während der System-Initialisierung aus einer externen Quelle
509823/0695
geladen und werden zu einer permanenten Steuerfünktion der
Maschine. Allerdings kann die Steuerspeicher-Einheit CSU 1301 in einer Weise neu geladen und initialisiert werden,
die eine Reihe von Betriebsarten der Zentraleinheit (ZE)
CPU 1306 ermöglicht. Unter der Steuerung durch die CSU 1301 stehen die folgenden Betriebsarten der ZE zur Verfügung:
(a) Eigenmodus; ("b) Emulationsmodus; (c) paralleler Eigen-
und Emulations-Modus; (d) Diagnostikmodus. Diese Möglichkeiten beruhen darauf, daß die in der CSU residenten Mikrobefehle
die Quelle von Mikrooperationen sind, die dazu dienen, die Arbeit aller anderen Funktionseinheiten der ZS
zu steuern: z.B. die der Emulationseinheit 1316, des Rechen- ■
werks ALU 1317 (Arithmetic logic Unit), der Befehlsabruf-Einheit IPU 1318 (Instruction letch Unit), der Adreß-Steuereinheit
ACU 1319 (Address Control Unit) und der Daten-Management-Einheit DIiU 1321 (Data Management Unit). Ebenfalls
innerhalb der Zentraleinheit CPU 1306 abgebildet sind die zuvor bereits beschriebenen allgemeinen Register
1307, die Basis-Register 1308, die wissenschaftlich-technischen Register 1309, die !-Register 1310, die Status-Register
1311, das Befehls-Adreß-Register IC 1312 (Instruction Counter) und die Haadi/are-Steuertnasken-Re-gister 1313.
Typischerweise ist die Steuerspeicher-Einheit CSU 1301 ein programmierbarer. 9K-Iestspeieher mit einer bipolaren
integrierten Schaltung (Programmable Read-Only Memory PROM), kombiniert mit einem Lese/Schreib-Random-Speicher
(Random Access Store - RAM).
Im typischen lall hat der Speicher einen Lesezyklus von 150 NanoSekunden und einen Schreibzyklus von 450 Hanosekunden.
Jede Steuerspeicher-Stelle speichert ein 84-Bit-Hikrobefehls-V/ort
(das später ausführlich besprochen wird), und' jedes Miirrobefehls-Yfort steuert einen ZU-Sylclus. - Sobald
509823/0695
die betreffende Steuerspeicher-Stelle innerhalb der Steuerspeicher-Einheit
OSU 1301 gelesen wird, wird ihr Inhalt von
Mikrooperations-Decodierern entschlüsselt: diese liefern Mikrooperations-Steuersignale, von denen jedes dazu führt,
daß innerhalb der ZE eine ganz bestimmte Operation stattfindet (wird an anderer Stelle ausführlich beschrieben).
Durch Gruppierung von Speicherstellen innerhalb jedes Mikrobefehls-Wortes
(wird später ausführlich beschrieben) ergeben sich Steuerspeicher-Sequenzen, die eine spezifische ZE-Operation
vollziehen (d.h. einen Befehl, eine Instruktion, ausführen) können. Indem jeder einzelne Befehl von der ZE
-initiiert wird, dienen bestimmte Bits innerhalb des Operationsschlüssels dazu, die Steuerspeicher-Startfrequenz
festzulegen. Die Prüfung bestimmter (nicht mit abgebildeter) Flip-Flop-Schaltungen, die gesetzt oder gelöscht sein können
durch Befehls-Decodier-Funktionen,erlaubt dem Arbeitsspeicher
der Steuerspeicher-Einheit, gegebenenfalls zu einer spezielleren Sequenz zu verzweigen.
Der Steuerspeicher-Interface-Anschluß CIA 1302 bestimmt in Zusammenarbeit mit der Steuerspeicher-Einheit 1301, der
Daten-Management-Einheit DMU 1321, der Adreß-Steuer-Einheit
ACU 1319 und dem Rechenwerk ALU 1317 die Arbeit des Steuerspeicher-Arbeitsspeichers
1333, wie in Pig. 13b dargestellt. Der CIA 1302 enthält Logik für Steuerspeicher-Adreß-Modifikation,
!Testen, Fehlerprüfung und Hardware-Adreß-Bildung. Die Hardware-Adreß-Bildung dient generell zur Entwicklung
der Staradresse von Fehler-Sequenzen oder für die Initialisierungs-Sequenz.
Die Daten-Management-rEinheit DMU 1321 liefert das Interface
(die Schnittstelle) zwischen der Zentraleinheit CPU 1306 und dem Hauptspeicher und bzw. oder dem Pufferspeicher, wie
in Fig. 1 dargestellt. Es ist die Aufgabe der Da te n-I-Ia na ijement-Einheit,
zu erkennen, welche Einheit die von anderen
509823/0 6 95
Einheiten benötigten Informationen enthält, und diese
Informationen zum richtigen Zeitpunkt in die ZE-Register zu leiten. ■
Die Daten-Management-Einheit DMU "besorgt auch die Ausblendung
(Maskierung) während partieller Schrelb-Operationen.
Die Befehls-Abruf-Einheit IPU 1318 ist mit der DMlJ 1321,
der ACU 1319, der ALU 1317 und der CSIT 1301 gekoppelt und
dafür zuständig, die ZE mit Befehlen zu versorgen. Die Befehls-Abruf-Einheit verfügt in ihren Registern über den
nächsten Befehl, "bevor der gegenwärtige Befehl vollständig
ausgeführt ist. Diese Möglichkeit "beruht darauf, daß die
Befehls-Abruf-Einheit IFU 1318 ein 12-Byte-Befehlsregister
(nicht mit abgebildet) besitzt, das normalerweise mehrere
Befehle enthält. Außerdem fordert die IEU unter Steuerung
durch die OSU Informationen (Befehle, bzw. Instruktionen) vom Hauptspeicher an, bevor der Befehl tatsächlich benötigt
wird: Auf diese ¥eise bleibt das 12-Byte-Befehlsregister der Befehls-Abruf-Einheit ständig auf dem neuesten Stand.
Dieser Vorweg-Abruf von Befehlen erfolgt mit normalerweise nicht benutzten Speicherzyklen. Die Befehls-Abruf-Einheit
decodiert ferner Jeden Befehl und teiltden anderen Einheiten Länge und Format des Befehls mit.
Die Adreß-Steuereinheit AGU 1319 steht in Kommunikation mit
der IEU, ALU, DIiU und der OSU, und zwar auf dem Wege
über den Steuerspeicher-Interface-Anschluß CIA. Die ACU . 1319 ist für die gesamte Adreß-Entwicklung in der ZE zuständig.
Sämtliche Operationen der ACO" - einschließlich Transfer zu, von und innerhalb der Einheit - werden von
CSU-Mikrooperationen und -Logik in der Einheit geleitet.
Der normale Arbeitsablauf der ACU richtet sich nicht nach
dem Befehlntyp, sondern nach dea Typ der Adressen innerhalb
509823/0695
des Befehls. Je nach den Adreß-Iypen kann die AGU verschiedene
Operationen für jede Adresse in einem Befehl ausführen. Die AClT enthält ferner einen Assoziativspeicher
1319a, der im typischen Fall die Basisadresse
der 8 zuletzt benutzten SpeicherSegmente zusammen mit
"den betreffenden Segment-Hummern speichert.. Bei jeder
Speicher-Anforderung wird die Segment-Nummer-mit dem
Inhalt des Assoziativ-Speichers verglichen. Dadurch wird
festgestellt, ob die Basisadresse des Segments bereits entwickelt und gespeichert worden ist. Wenn die Basisadresse
im Assoziativ—Speicher 1319a enthalten ist, wird diese Adresse bei der Bildung der absoluten Adresse verwendet,
woraus sich eine beträchtliche Zeitersparnis ergibt. Ist die Basisadresse noch nicht im Assoziativspeicher
1319a enthalten, wird sie durch Zugriff auf die Hauptspeicher-Sabellen entwickelt. Nachdem die Basisadresse
des Segments aber entwickelt ist, wird sie für künftige Referenz zusammen mit der Segment-Kummer im
Assoziativspeicher abgestellt.
Das Rechenwerk. AIF 1317 ist gekoppelt (Interface) mit ACU,
IPU, DJiU und CSU. Die Hauptaufgabe der AIU 1317 ist die
Vornahme der arithmetischen Operationen und der Daten-Manipulationen,
die von der ZE benötigt werden, die Arbeit
des Rechenwerks ist vollständig abhängig von Mikrooperations-SteuerSignalen
von der Steuerspeicher-Einheit OSU 1301.
Dem AIU 1317 und der CSU 1301 zugeordnet ist der Fotizblockspeicher
1315 (ein schneller HilfsSpeicher), der manchmal als lokale Speichereinheit (local Store Unit - ISU) bezeichnet
wird. Er besteht typischerweise aus einem Pestkörper-Speicher mit 256 Speicherstellen zu je 32 Bit sowie
einer Auswahl- und lese/Schreib-Iogik für diesen Speicher.
509823/0895
Der Notizblockspeicher 131-5 dient zur Speicherung von
ZE-Steuerinformationen und -Wartungs-Informationen. Außerdem enthält der Notizblockspeicher 1315 Zwischenspeicherstellen, die in erster Linie für die Zwischenspeicherung
von Operanden und Teilergebnissen während der Daten-Manipulation benutzt werden. Ebenfalls dem ALU 1317 zugeordnet
ist ein Ergänzungsspeicher 1317a, der typischerweise aus 64 Flip-Flops für die Speicherung verschiedener Zustände
des Computer-Systems besteht.
Die Zentraleinheit ZE besitzt auch eine Zeitgebereinheit
1320; es sind im wesentlichen zwei Taktsysteme in einem: das erste Taktsystem erzeugt den Takt für die Steuerspeicher-Schnittstelle
CIA 1302, während das zweite Taktsystem die Taktimpulse für die Operationen der Funktionseinheit innerhalb der ZE erzeugt.
Nun zu Figur 13c. Dort ist das Format des Steuerspeicher-Wortes
1325 abgebildet. Typischerweise umfaßt das Steuerspeicherwort 84 Bits und ist in sechs Hauptfelder unterteilt:
a) Sequenz-Typ-Feld 1326 (3 Bits);
b) Sprung- und bzw. oder Mikrooperationen 13527 (23 Bits);
c) Konstanten-Bildung und -Benennung 1328 (14 Bits);
d) Daten für den Übertragungsweg (Bus) 1329 (8 Bits);
e) MikroOperationen 1330 (22 Bits); und
f) Prüfung 1331 (4 Bits).
Das aus drei Bits bestehende E-FeId des Steuerspeicher-Wortes
1325 dient als Sequenz-Steuerfeld. Es gibt typischerweise
sieben verschiedene Sequenz-Arten und einen reservierten Typ für das augenblickliche Computer-rSystem. Nun
zu Block 1335 in Figur 13b: wenn das E-FeId binär 0, 1 oder
509823/0695
2 ist, dienen die Sprungfelder A, B, C-, D und L des
Mikrobefehls 1325 dazu, die nächste Adresse zu erzeugen. Die ersten 6 Bits des KS-Registers 1337 werden
zusammen mit dem B-Feld, den C-Test-Ergebnissen, den D-Test-Ergebnissen und dem L-FeId dazu benutzt, die
nächste Adresse des nächsten Mikrobefehls bereitzustellen, die dann im Adreß-Register KS 1337 abgestellt
wird. Wenn das E-FeId binär 4 ist, (siehe Block 1335) wird die nächste Adresse, die gewählt wird, dem Unterbrechungs-Rückkehr-Register
KA 1339 entnommen. Die im ΚΑ-Register gespeicherte Adresse ist diejenige, die
von der Logik zur Bildung der nächsten Adresse erzeugt wird, wenn die Hardware-Unterbrechung eintritt. Wenn
das E-FeId binär 5 ist, dient eine Verzweigung dazu,
einen Sub-Rücksprung aus einer Mikroprogramm-Subroutine
zu initiieren. Gegebenenfalls wird der Inhalt der Rücksprung-Register KR 13^6 als nächste Steuerspeicher-Adresse
benutzt. Das Rücksprung-Register 1346 wird geladen, indem ein Steuerspeicher-Befehl abgegeben wird,
der die gegenwärtige Steuerspeicher-Adresse im KS-Register 1337 plus 1 vom Inkrementor 1338 in das KR-Register
1346 lädt. Die Möglichkeit einer einstufigen Subroutinen-Schachtelung ist über das KT-Rückkehr-Verzweigungs-Register
1347 gegeben.
Jedesmal, wenn das KR-Register 1346 geladen wird, wird
der alte Inhalt des KR-Registers in das KT-Register 1347 umgespeichert, sooft der Mikroprogramm-Rücksprung aufgerufen
wird; der Inhalt des KT-Registers wird in das KR-Register umgespeichert. Die Möglichkeit einer dreistufigen
Sub-Routinen-Schachtelung besteht über das KU-Register 1340; und die Möglichkeit einer vierstufigen
Sub-Routinen-Schachtelung ist durch das XV-Rücksprung-Verzweigungs-Register
1349 gegeben. Wenn das E-FeId des
S09823/0695
Steuerspeicher-Worts binär 6 ist, so ist das als nächste
adressierte Steuerspeicher-Wort identisch mit der gegenwärtigen Adresse im KS-Register 1337 plus 1 im Inkrementor
1338. Wenn das E-FeId binär 7 ist, betritt die Steuerspeicher-Einheit
ESU 1301 den Diagnostik-Modus, und die nächste Adresse ist die gegenwärtige Adresse plus 1.
Zusätzlich zu der Sequenz-Steuerung der Verzweigung' zur
nächsten Steuerspeicher-Adresse wie oben beschrieben und in Block 1335 dargestellt, gibt es die von der Hardware
erzeugte Sequenz-Steuerung, wie in Block 1336, Figur 13b dargestellt. (Beachte: Block 1335 und 1336 sind in Wirklichkeit Hardware-Register, die so dargestellt sind, daß
die unterschiedlichen Formate erkennbar werden, welche die Mikrobefehl-Worte annehmen können). Die von der Hardware
erzeugten Verzweigungen sind Vorrang-Bedingungen (wie z.B. Fehler, Initialisierung, Kontrollspeicher-Abfrage
usw.), welche das E-FeId unterdrücken und im Steuerspeicher-Adreß-Register
KS 1337 eine feste Adresse erzwingen. Die Verzweigung wird in der Weise durchgeführt,
daß eine Unterbrechungsleitung (nicht abgebildet) für die Dauer einer Taktperiode auf einen hohen Signalwert gesetzt
wird, und die Adresse, die unter der Kontrolle des E-FeI-des
gebildet worden wäre, wird im KA-Unterbrechungs-Rücksprung-Register 1339 gespeichert. Eine von der Hardware
gebildete Adresse wird im Steuerspeicheradreß-Register
abgestellt. Bestimmte Hardware/Firmware-erzeugte Unter- ' brechungen haben Vorrang, wenn das Flip-Flop des Unterbrechungsblocks
(nicht abgebildet) gesetzt ist: es ver- ■ hindert, daß zusätzliche Unterbrechunggen in der betreffenden
Klasse ausgeführt werden, bevor die Unterbrechungs-Bedingung erfüllt ist. Eine Firmware-Mikrooperation
ist vorhanden, die das Löschen des Flip-Flops des Unterbrechungsblocks für diejenigen Sequenzen steuert,
509823/0695
die der Firmware-Kontrolle unterliegen. Die der Hardware-Kontrolle
unterliegenden Sequenzen erzeugen automatisch eine Löschung des Block-Flip-Flops am Ende der Sequenz.
In dieser Kategorie gibt es die folgenden, nach Prioritäten zusammengestg Uten Bedingungen:
(a) Steuerspeicher-Laden; (b) Steuerspeicher-Abfrage;
(c) Hardware-Fehler; (d) Software-Fehler. Die übrigen
Hardware-Bedingungen veranlassen nicht, daß das Flip-Flop des Unterbrechungsblocks gesetzt wird, sondern
daß unmittelbar eine Maßnahme getroffen wird, wenn sie erzeugt werden. In der Kategorie gibt es folgende,nach
Prioritäten geordnete Bedingungen:
(a) Initialisierung
(b) Weich-Löschung
(c) Eingang Wartungsfeld
(d) Eingang Wartungskanal
(e) Hardware-Ausgang
Ein Initialisierungs-Signal veranlaßt die Kontrollspeicher-Einheit
CSU 1301, zur Adresse binär 0 zu verzweigen, Fehler,
die von der Hardware gelöscht werden können, zu löschen und bei der Kontrollspeicher-Ladeoperation auszuführen, auf
die eine Steuerspeicher-Abfrage-Sequenz unter Hardware-Kontrolle folgt. Es veranlaßt ebenfalls eine System^·Initialisierung.
Ein "Weich-Löschungs"-Signal veranlaßt die CSU 1301 zur Adresse binär 0 zu verzweigen, Fehler, die von der
Hardware gelöscht werden können, zu löschen und das Flip-Flop des Unterbrechungsblocks zu löschen. Ein Signal "Eingang
Wartungsfeld" veranlaßt die CSU, zu derjenigen Adresse zu verzweigen, die an den CSU-Adreß-Schaltern des Wartungsfeldes voreingestellt wurde (nicht mit abgebildet).
509823/0695
Ein Signal "Eingang Wartungskanal" veranlaßt die CSU, zu der über den Wartungskanal (nicht abgebildet) gebildeten
Adresse zu verzweigen. Die Adresse, die geladen wird, stammt vom Wartungsbus OMB 1344, der ein Teil
des Wartungskanals ist; sie ist rechtsbündig justiert. Ein "Hardware-Ausgang"-Signal veranlaßt die CSU, zur
Binär-Adresse 2 zu verzweigen. Diese Sequenz dient als
Wartungs-Einrichtung. Am Ende der Sequenz wird in der Weise ein Rücksprung initiiert, daß eine Ε-Feld-Verzweigung
abgesetzt wird, wobei'das E-FeId binär 4 ist.
Ein Steuerspeicher-Lade-Signal veranlaßt die CSU, zur Adresse binär Ö zu verzweigen. Es löscht ferner das
Flip-Flop des CSU-Lesezyklus (nicht abgebildet) und
den Systemtaktgeber 1320, und es versetzt die CSU in den Lade-Status. Im Lade-Status kann die CSU über
den Steuerspeicher-Lader CSL 1303, die IOC 1305, den Hauptspeicher 102 oder das Wartungsfeld 1355 geladen
werden.
Wird die Steuerspeicher-Einheit CSU über den Steuerspeicher-Lader CSL geladen, so wird am Ende des Ladens
eine automatische Abfrage erzeugt. Wird sie über ein anderes Medium geladen, so kann man eine Abfrage in der
Weise veranlassen, daß man entweder ein Mikrooperations-Signal
erzeugt oder den Abfrageschalter am Wartungsfeld
setzt. Ein Steuerspeicher-Abfrage-Signal veranlaßt die CSU, zu einer Adresse binär 0 zu verzweigen. Eine Steuerspeicher-Abfrage
erfolgt unter Hardware-Kontrolle für die Dauer der Sequenz. Während der Abfrage ist der Systemtaktgeber
1320 abgestellt, und daher werden keine Befehle oder Tests durchgeführt. Am Ende der Abfragesequenz speichert
die Hardware den Inhalt des Unterbrechungs-Rücksprung-Registers KA in das Adreß-Register KS um, der Taktgeber des
509823/0695
Systems wird wieder angestellt und die Firmware übernimmt wieder die Kontrolle.
Ein Hardware-Fehler-Signal veranlaßt die CSU, zur Adresse binär 4 zu verzweigen. Im normalen Verarbeitungs-Modus
führt die Entdeckung eines Hardware-Fehlers in einer der Funktionseinheiten der ZE dazu, daß
eine Hardware-Fehler-Leitung (nicht abgebildet) aktiviert wird. Die erzeugte Steuerspeicher-Sequenz prüft
die System-Bedingungen um festzustellen, welche Maßnahme erforderlich ist. Im Diagnostik-Modus sind Fehlerzustände,
die von der Hardware erkannt werden können, für die Mikro-Diagnostik sichtbar. Die MikroDiagnostik
steuert die Maßnahme, die zu treffen ist. Andererseits veranlaßt ein Software-Fehler-Signal die
Steuerspeicher-Einheit, zur Adresse binär 1 zu verzweigen. Diese Adresse ist der Anfang der Software-Fehler-Berichts-Sequenz,
die unter Mikroprogramm-Kontrolle abläuft.
Noch einmal zu Figur 13c: Das E-FeId 1326 ist ein 3-Bit-Feld für den Verzweigungs-Code, wie zuvor dargestellt.
Das Verzweigungs- und bzw. oder Mikrooperations-Feld 1327 besteht aus den Feldern A, B, C, D
und L (ebenfalls in Figur 13b, Block 1335 dargestellt); dabei sind: das A-FeId die oberen sechs Bits der
nächsten Adresse, das B-Feld die mittleren vier Bits der nächsten Adresse. des Maskenfeldes bei einer 64-Weg-Verzweigung,
das C-FeId ein sechs-Bit-Testfeld für eine von 64 Prüfungen, das D-Feld ein weiteres sechs-Bit-Testfeld
für eine von 64 Prüfungen und das L-FeId ist das niedrigstwertige Bit.
509823/0695
2*56531
Das PeId K 1328 ist ein 14-Bit-Peld mit sechs Bits für das
Konstanten-Peld, 14 Bits für ein Konstanten- oder Steuerfeld
und 4 Bits als Steuerfeld für eine Konstante. Das "Daten zum Bus"-Peld 1329 besteht aus dem QA-FeId, mit 4 Bits für die
Steuerung von Informationen für den QA-Teil des QMB-Busses
1344, und dem QB-PeId mit 4 Bits für die Steuerung von Informationen
für den QB-Teil des QMB-Busses 1344. Das P-PeId
1330 ist ein 32-Bit-Peld, das zur Erzeugung von Mikrooperations-Unterbefehlen
codiert wird. Das P-PeId 1331 besteht aus 4 Bits, die für Prüfzwecke reserviert sind.
Wenn das System arbeitet, sind die Mikrobefehlsworte im
Steuerspeicher-Feld 1333 gespeichert. Während ein Operationszyklus abläuft, wird das Steuerspe.icher-Feld durch
den Inhalt des KS-Adreß-Registers 1337 angesprochen. Dies führt dazu, daß der Inhalt der von der Adresse definierten
Speicherstelle in die Gruppe der Lese-Speicher 1357 eingelesen
wird. Teile des Wortgehalts der Lese-Speicher werden auf Speicher-Register innerhalb der einzelnen Punktionseinheiten
in der Zentraleinheit ZE verteilt (umgespeichert).
Jede Punktionseinheit enthält logische Decodierschaltungen
für die Erzeugung der erforderlichen, vom Steuerspeicher-Wort spezifizierten Unterbefehle unter der Kontrolle des
Systemtaktgebers. Im allgemeinen wird die Decodierung dezentral innerhalb jeder Punktionseinheit in der ZE durchgeführt und nicht zentral, um die Decodierzeit auf ein
Mindestmaß zu beschränken und um die Anzahl der Kabel zu reduzieren, die normalerweise für die Übermittlung von
Befehlssignalen bei zentraler Decodierung erforderlich wären. Ferner brauchen bei der Decodierung von Unterbefehlen
innerhalb jeder Einheit diejenigen Signale, die repräsentativ für bestimmte, innerhalb der Punktionseinheit
gegebenen Zustände sind, und für die Bildung bestimmter
50 9823/06 9 5
Unterbefehls-Signale benötigt werden, nicht an die Steuerspeicher-Interface-Anschluß-Einheit
CIA 1302 zurückgegeben zu werden.
Eine typische Decodier-Einheit 1359 ist in Pig. 13b dargestellt.
Sie erhält verschiedene Felder von Mikrobefehlsworten und erzeugt Mikrooperations-Signale a, b, c, d, ...
q, r. Ein typischer Mikrooperations-Deoodierer 1359 empfängt Befehle von einem Mikrobefehlswort. Das PeId vom Mikrobefehlswort
wird decodiert und setzt eine von mehreren leitungen s, t, u ... y ζ auf einen hohen Signalwert. Man bildet
eine Matrix, indem eine bestimmte Steuerleitung an der Stelle α,β,γ...ψ,ω impedanzmäßig mit den Leitungen s - ζ gekoppelt
ist. Typischerweise geht'dann, wenn das PeId von einem Mikrobefehl
decodiert wird, das Signal an einer der Leitungen s-z auf einen hohen Wert über. Da die in der Matrix mit
den griechischen Buchstaben α-ω gezeigten schwarzen Punkte
eine Impedanz-Kopplung zwischen den beiden Leitungsgruppen darstellen, wird jedes elektrische Signal, das sich längs
einer horizontalen Leitung ausbreitet., dort, wo eine Impedanz-Kopplung (schwarzer Punkt) angegeben ist, so durchgekoppelt,
daß es sich längs der vertikalen Leitung a - r ausbreitet. Jede vertikale Leitung a - r kann dann als ein
Eingang mit jedem der UND-Schaltungen 1360 bis 1365 gekoppelt werden. Andere Eingangssignale können auch mit den
UND-Schaltungen 1360 bis 1365 gekoppelt werden, einschl.
eines Taktsignals t vom zentralen Taktgeber. Wenn das be-
treffende Taktsignal te einen hohen Wert annimmt, werden
entsprechend diejenigen UND-Schaltungen, bei denen sämtliche
anderen Eingangesignale einen hohen Wert haben, freigegeben
und liefern Mikrobefehls-Signale für vorbestimmte Punktionseinheiten in der ZE. Wenn z.B. ein Befehl 1341 vom
Lese-Speicher 1357 decodiert wird und an einer horizontalen
5 09823/0695 ORiGiNAL INSPECTED
Leitung ein hoher Signalwert liegt, nehmen die Signale an den vertikalen Steuerleitungen a, b, ο und q hohe Werte an,
und die UND-Schaltungen 1360 1361, 1362 und 1364 werden freigegeben, wenn das Taktsignal ts nacheinander an diese
UND-Schaltungen angelegt wird. Daher bildet diese kombination, bei der die vertikalen Steuerleitungen an verschiedenen,
durch die griechischen Buchstaben α-ω repräsentierten
Punkten mit der horizontalen Steuerleitung gekoppelt werden, eine permanente Schalt-Matrix zur Lieferung von Mikrooperations-Signalen
an die Zentraleinheit ZE (CPU). Diese Signale dienen dann zur Steuerung der Funktions-Einheiten innerhalb
der Zentraleinheit durch Mikrobefehle aus dem Steuerspeicher-Feld 1333. Auf diese Weise kann permanente Firmware mit einer
Inderungsmöglichkeit in die hier beschriebene Maschine eingebaut werden; man braucht lediglich die Folge der Mikrooperationen
zu spezifizieren, die als Möglichkeit des Computer-Systems benötigt wird.
Unter normalen Bedingungen erfolgt das Schreiben von Daten im Steuerspeicher-Feld 1333 über das Daten-Schreib-Register
der ZE, das auch als Lokalregister YO 1343 bezeichnet wird. Ein
(nicht abgebildetes) Steuer-Flip-Flop bestimmt, ob das Schreiben in der oberen oder der unteren Hälfte des Speicherfeldes
erfolgen soll. Daten von der Steuer- und Lade-Einheit CLU 1304 gelangen über den Wartungsbus QMB zur CIA/
CSU und werden im lokalen Speicherregister YO 1343 zwischengespeichert,
bevor sie in das Steuerspeicher-Feld 1333 geschrieben werden. Das lokale Speicherregister 1343 wird
gleichzeitig in einem Zeitteilbetrieb als Lokalregister zum Schreiben und zum Lesen verwendet. Der Multiplexer
KQM 1345 kann entweder über das Wartungsfeld 1355 oder mit Mikrodiagnostik gesteuert werden* und er liefert einen Weg
für das Auslesen aus den mit ihm verbundenen Registern. Ein
50982 3/0695
Vergleichsregister KP 1350 dient für nicht-funktionelle
Zwecke; es wird in erster Linie für Wartungszwecke benutzt,
und zwar zusammen mit der Vergleichslogik 1352 und der Decodier-Logik
1351.
Die Punktionen, die der Dispatcher vollzieht, sind in den Plußdiagrammen der Pig. 14a bis 14i dargestellt. Zum Beispiel
stellt Block 1402 in Pig. Ha folgende Dispatcher-Punktion
dar: die Steuerspeicher-Einheit liefert ein Mikroprogramm-Wort; nachdem dieses Wort vom Decodierer entschlüsselt
ist, steuert es die entsprechenden Teile der Zentraleinheit CPU (ZE) über eine entsprechende Serie von Mikrooperations-Signalen
1360, 1361 usw... zur Wiedergewinnung des IPQW aus der System-Basis im Speicher-Subsystem 102, und
es transferiert das IPQW zum Notizblockspeicher 1315. Gleichzeitig ruft der Dispatcher (1404) den GO-Segment-Descriptor
(vergleiche Pig. 12) aus der D-Tabelle der Segment-Descrlptofen ab, auf die durch das G-Tabellen-Wort GTW in der System-Basis
verwiesen wird. Die Bits 16-31 des IPQW-Wortes enthalten eine aus 16 Bits bestehende positive Ganzzahl: dies
ist die Distanz von der Basis des D-Segments Nummer 0, das als GO-Segment bezeichnet wird, zum Kopf (erstes Byte) der
Q/PR/RDY, der Warteschlange der READY-Prozesse. Wenn Bits
16 bis 31 des IPQW-Wortes Null sind (1403) so gilt-die
READY-Warteschlange als leer. Wenn die READI-Warteschlange
leer ist, so zeigt dies an, daß gegenwärtig kein Prozeß in Q/PR/RDI wartet, d.h.,die READY-Warteschlange ist leer.
Die nächste im Entscheidungsblock 1405 zu entscheidende Präge
ist, ob ein Prozeß gegenwärtig in der Maschine abläuft oder nicht; zu diesem Zweck muß festgestellt werden, ob der Vakanz-Indikator
gesetzt ist (der Vakanz-Indikator ist ein im Ergänzungsspeicher 1317a befindliches Plip-Plop; es ist gesetzt,·
wenn gegenwärtig kein Prozeß CJP im Prozessor läuft).
509823/0695
" - 69 -
245B531
Wenn der Vakanz-Indikator gesetzt ist, .(dies bedeutet,
im Moment läuft kein Prozeß) und wenn zuvor ermittelt wurde, daß in der READY-Warteschlange kein Prozeß darauf
wartet, den Prozessor zu benutzen, dann geht die Maschine
in den Leerlauf-Status über (I4O6). Wenn dagegen momentan
in der Maschine ein Prozeß abläuft, aber kein Prozeß darauf wartet, die Maschine zu benutzen, so greift der laufende
Prozeß auf seinen nächsten Befehl zu (I407).
Kehren wir nun zum Entscheidungsblock 14-03 des Flußdiagramms
von J1Ig. 14a zurück. Ist im Pdnter-Bereich des IPQW1 s (d.h.
Bits 16 bis 31) eine positive"Ganzzahl vorhanden, dann wird der Kopf der READT-Warteschlange, auf die das IPQVMvort
im G-O-Segment verweist, zum Notizblockspeicher abgerufen
(Hinweis: Um Wiederholungen zu vermeiden und im Interesse der Klarheit werden hier die Zwischenfunktionen des Dispatchers
in Verbindung mit dem Leitwerk und der Zentraleinheit ZE ausgelassen; man muß sich aber klarmachen, daß
sdbhe Zwischenfunktionen, wie zuvor beispielhaft dargestellt,
typischerweise vorhanden sind). Bis jetzt wurde festgestellt, daß in der EEADY-Warteschlange ein Prozeß :
wartet. Bevor eine weitere Maßnahme erfolgen kann, muß festgestellt Werden, ob im Zentralprozessor gegenwärtig
ein Prozeß abläuft. Diese Feststellung erfolgt am Entscheidungsblock 1410 unserer Flußdiagramra-Darstellung;
wenn gegenwärtig kein Prozeß im Zentralprozessor abläuft (d.h. kein OJP), dann wird der Kopf der READY-Warteschlarige
ausgeführt (1412). Wenn jedoch gegenwärtig ein Prozeß im Zentralprozessor abläuft, muß der Dispatcher ermitteln, ·
welcher Prozeß Vorrang hat - der gegenwärtig ablaufende Prozeß oder der am Kopf der READY-Warteschlange. Infolgedessen
wird das Prioritäts-Byte des laufenden Prozesses (CJP),
509823/0695
das sioh im laufenden Prozeßwort der System-Basis 600 oder
im Prozeß-Hauptwort 0 PMW 0 von Prozeßsteuer-Bloek PCB 400
befindet, abgerufen (1413).
Es wird dann entschieden (1414), ob der gegenwärtig ablaufende Prozeß CJP eine niedrigere Prioritätsstufe hat als
der neue Prozeß (NJP), der am Zopf der READY-Warteschlange wartet (vergleiche Entscheidungsblock 1414). Wenn der gegenwärtige
Prozeß (CJP) keine niedrigere Prioritätsstufe hat als derjneue Prozeß FJP, so behält der CJP die Kontrolle
über den Zentralprozessor und der Konkurrenz-Indikator wircl gelöscht (1415) - der Konkurrenz-r Indikator ist stets
Full, es sei denn, ein oder mehrere neue Prozesse wurden
seit Beginn des letzten für den CJP ausgeführten Befehls in
die READY-Warteschlange eingereiht, woraus sich die Möglichkeit
eines Konflikts ergibt; unter diesen Umständen ist der Konkurrenz-Indikator binär 1. Bevor allerdings der laufende
Prozeß die Erlaubnis zur Fortsetzung und .zur Ausführung weiterer Befehle enthält, erfolgt eine Feststellung, ob
der CJP im Dekor-Erweiterungs-Modus (1415) läuft oder nicht.
Wenn dies der Fall ist, dann wird der nächst Befehl im Emulations-Modus ausgeführt, d.h. Dekor-Erweiterung, und wenn
der laufende Prozeß CJP nicht im Dekor-Erweiterungs-Modus läuft, dann wird der nächste Befehl im Eigen-Modus ausgeführt.
Gehen wir noch einmal zu Entscheidungsblock 1414: Wenn der neue Prozeß NJP an der Spitze der READY-Warteschlange
eine höhere Prioritätsstufe als der CJP (d.h. eine niedrigere Prioritäts-Nummer als der CJP) hat, so wird der
momentan ablaufende Prozeß CJP aus der Maschine ausgespeichert, und der neue Prozeß NJP wird in die Maschine eingespeichert.
Entsprechend dirigiert eine Firmware-Priorität-Unterroutine PRIQ 1418 die Aufnahme des gegenwärtigen
Prozesses CJP in die READY-Warteschlange nach LIFO-Priorität
509823/0695
und nach Prioritäts-Numiaer, wobei der CJP zuerst unter ■
der Leitung der Firmware-Unterroutine RLIO (Rolling-Out)
ausgespeichert wird.(1419). Die RLLO-Unterroutine steuert
folgenden Vorgang: die in den allgemeinen Registern, Basis-Registern, wissenschaftlichen Registern, im {D-Register,
Status-Registern und Befehls-Adreßregister gespeicherten Informationen des CJP werden in die entsprechenden Speicherbereiche
des Prozeßsteuer-Blocks PCB im Hauptspeicher zurückgeschrieben; und die RLLO-Unterroutine steuert die
Aktualisierung des RUA (Laufzeit-Abrechnung). Außerdem
wird die DEX'I-Nummer des Prozeß-Hauptwortes .0 (PMWO) im
Prozeßsteuer-Block 400 aktualisiert (1420).
Der neue Prozeß NJP ist nun-zur Einspeicherung (roll-in),
bereit. Das Grenzadreß-Register BAR wird abgerufen (1422) und das laufende Prozeßwort RPW wird von der Adresse BAR
plus 56 der System-Basis abgerufen. Siehe Block 1423. Der
Name des neuen Prozesses NJP wird als nächstes in das laufende Prozeßwor.t RPW geschrieben und da der Name des neuen
Prozesses NJP im Prozess-Link PL (Prozeß-Yerkettung) der Q/PR/RDY geschrieben wurde, wird nun der Name im Prozess-Link
PL infolgedessen im RPW, Block 1424, abgestellt. Demzufolge wird der neue Prozeß NJP aus der READY-Warteschlange
(Bereit-Warteschlange) nun zum gegenwärtigen Prozeß CJP; er. ist berechtigt, den Zentralprozessor zu kontrollieren; da
er folglich nicht langer in der Warteschlange Q/PR/RDY (Warteschlange der REALT-Prοzesse) wartet, muß er aus der
Warteschlange entfernt werden, indem man seinen Namen aus dem Prozess-Link PL der Warteschlange Q/PR/RDY, Block 1425,
herausnimmt. Wenn dies geschieht, wird die Warteschlange der READY-Prozesse Q/PR/RDY durch die Eirmware-Unterroutine
UQLK, 1425a, aktualisiert. Entsprechend wird die JP-Nummer des Prozesses, der soeben aus der Maschine ausgespeichert
509823/0635
2453531
wurde, in einem Prozess-Link in der Q/PR/RDY abgestellt,"
denn dieser Prozeß hat nicht langer Kontrolle über die Maschine, sondern muß darauf warten (1426). An dieser
Stelle ist die Transformation, d.h. die Übergabe der Kontrolle über den Zentralprozessor an den neuen Prozeß und
die Einreihung des alten Prozesses in eine Bereit-Warteschlange, abgeschlossen; da ein Prozeß (der neue CJP) die
Kontrolle über den Zentral-Prozessor ausübt, ist der Vakanz-Indikator 0 (1427). Wäre andererseits kein GJP vorhanden,
der die Kontrolle über den Zentralprozessor hätte, so wäre
der Vakanz-Indikator 1. An dieser Stelle ist die Zuordnung des Prozessors abgeschlossen, und ein neuer Prozeß hat die
Kontrolle über den Zentralprozessor erhalten, während der alte Prozeß in eine Bereit-Warteschlange eingeordnet wurde;
allerdings ist der neue Prozeß noch nicht ablauffähig, denn die Hardware der Zentraleinheit, 1306 in Pig. 13a, wie z.B.
die allgemeinen Register 1307, die Basis-Register 1308, die wissenschaftlichen Register 1309, das T-Register 1310, die
Status-Register 1311 und das Befehls-Adreßregister 1312 müssen noch Steuerinformationen vom Prozeßsteuerblock POB
des neuen Prozesses erhalten..
Entsprechend ruft die Pirtnware-Uhterroutine 1430 zuerst das
Prozeß-Hauptwort PMW 3 aus dem Prozeßsteuerblock PCB (Pig.4)
zum Notizblockspeicher 1315 ab und holt dann PMW 0. Das MBZ-PeId von PMW 0 wird geprüft (1433), und wenn es nicht
binär 0 ist, so resultiert daraus der Ausnahmezustand "unzulässiger POB". Wenn dagegen das MBZ-PeId von PIiW Null
ist, dann wird PIW 1 abgerufen (1434). Wieder wird das MBZ-PeId
von PIW 1 untersucht um festzustellen, ob es binär 0
ist oder nicht. Wenn es nicht binär 0 ist,- liegt der Ausnahmezustand
"unzulässiger PCB" vor; wenn es dagegen Full ist, so geht der Dispatcher zu C über.
509823/0695
. - 73 -
Entsprechend wird das Adreßraumwort 0 ASW 0 aus dem ent-.
sprechenden Raum im PGB abgerufen und die Segmenttabellen-Wortgröße
STWSZ wird untersucht (1437) um festzustellen, ob es kleiner ist als 7 oder nicht. Wenn es größer als 7
ist, so liegt ein unzulässiger PGB vor. Wenn es nicht größer ist. als 7, so wird dannASW 1 aus dem PCB, Block 1438, abgerufen
,und sein STWSZ-FeId wird untersucht (1439) um festzustellen,
ob es größer als 8 ist oder nicht. Wenn dieses PeId größer als 8 ist, so resultiert daraus "unzulässiger
PGB". Wenn dagegen dieses STWSZ-PeId nicht größer als 8
ist, so wird das Ausnahmewort EXW geholt (1440)., ucd sein
MBZ-PeId wird daraufhin geprüft, ob es gleich Null ist. Wenn sein MBZ-Peid nicht gleich Null ist, so resultiert
daraus "unzulässiger PGB"; wenn es dagegen gleich Null ist, so wird das Staok-Wort SKW abgerufen (1442), und sein MBZ-PeId
wird (1443) daraufhin untersucht, ob es gleich Null ist oder nicht. Ist das MBZ-PeId nicht gleich Null, so
resultiert daraus "unzulässiger PCB"; wenn es dagegen Null
ist, so wird das Befehls-Adreßregister-Wort ICW aus dem PCB geholt und im Befehls-Adreßregister IC abgestellt; und
sein TAG—PeId wird daraufhin untersucht, ob es gleich Null
ist oder nicht (1445). Wenn das TAG-PeId nicht gleich Null
ist ,so resultiert daraus "unzulässiger PCB". Wenn dagegen
das TAG-PeId gleich Null ist, so wird das MBZ-Wort abgerufen
(1446), und sein MBZ-PeId (Bits 0 bis 31) wird daraufhin untersucht, ob es gleich Null ist (1447) oder nicht.
Wenn es nicht gleich Null ist, so resultiert daraus "unzulässiger PCB". . .
Wenn es dagegen Null ist, werden die Stack-Basis-Worte 0,
1 und 2 (SEW O1 1 und 2) geholt (1448). Der Inhalt der acht
Basis-Register im Basis-Register-Sicherstellungsbereich des
Prozeßsteuerblocks PCB wird dann abgerufen (1449) und in den Basis-Registern der Maschine gespeichert (1308). Dann
50.9823/0695
ORIGINAL INSPECTED
2^56531
wird der Inhalt der 16 allgemeinen Register aus dem PCB-Sicherstellungsbereich
für die allgemeinen Register abgerufen (1450) und in den allgemeinen Registern der Maschine
(1307) abgespeichert. Bevor allerdings der Inhalt der wissenschaftlichen·
Register abgerufen wird, erfolgt eine Prüfung .des Eignungs-Bytes des Prozeß-Hauptwortes 0 (PMW 0)
um festzustellen, ob gegenwärtig der wissenschaftliche Modus benutzt wird oder nicht (1451). Wenn der wissenschaftliche
Modus benutzt wird, dann wird der Inhalt der wissenschaftlichen Register aus dem PGB-Sicherstellungs- ·
bereich für die wissenschaftlichen Register abgerufen und gespeichert (1452). Die Firmware prüft dann als nächstes
das Eignungs-Byte von PMW 0 daraufhin, ob der Abrechnungs-Modus
benutzt wird oder nicht (1453)."Wenn der Abrechnungs-Modus
benutzt wird (d.h. das.Abrechnungs-Bit des Eignungs-Bytes ist binär 0), so sind die Abrechnungs-Worte im PCB
vorhanden und das Bereitschaftszeit-Abrechnungswort RTA wird aktualisiert. Als nächstes stellt die Firmware dann
fest, ob die DEXT-Mummer 0 ist (I454). Wenn sie nicht Hull
ist, so zeigt dies an, daß sich die Maschine im Emulations-Modus befinden kann (dies bedeutet, die Dekor-Erweiterungs-Funktion
wird benutzt), und entsprechend wird (1455) die DEXT-iTummer von PIiW 0 daraufhin geprüft, ob sie größer oder
kleiner ist als das DETSZ-FeId des Prozeß-Hauptwortes 3; •ist sie größer als das DETSZ-FeId, so resultiert hieraus
ein Ausnahmezustand "unzulässiger PCB" (1456).Wenn die DEXT-Kummer kleiner ist als das DETSZ-FeId, aber nicht
gleich ITuIl, so arbeitet die Maschine im zulässigen Emulations-Modus
und macht mit F weiter. Kehren wir zu Entscheidungsblock 1454 zurück: Wenn das DEXT-FeId binär 0
ist, dann liegt gegenwärtig Eigen-Hodus vor und die Maschine ruft Segmettabellen-Worte ab (1457). Das Restzeitsperren-Wort
(RTO-Wort) des PCB wird abgerufen (1458) und der Prozeß-Timer wird geladen, und zwar mit der Zeitgrenze, die
509823/0695
ORIGINAL INSPECTED
der CJP (der nun laufende Prozeß) im Laufstatus zubringen
kann.
Bis jetzt wurde (a) entweder ein neuer Prozeß UJP eingespeichert,
um die Kontrolle über die ZE zu übernehmen, wenn sich ein früherer Prozeß OJP in der Maschine-befand und
der neue Prozeß NJP eine höhere Prioritätsstufe als der frühere Prozeß GJP "besaß, oder (Td) kein CJP übte die Kontrolle
über die Zentraleinheit aus, und der Kopf der Bereit-Warteschlange
wurde ausgeführt. Yerkürzt ausgedrückt: im Pail (a) wurde der CJP aus dem RPW (laufendes Prozeßwort)
herausgenommen und in einem Prozess-link PL in der Warteschlange
Q/PR/RDY abgestellt, und der NJP in einem Process-Link PL in der Warteschlange Q/PR/RDY (Warteschlange der
READY-Prozesse) wurde in das. RPW gestellt, wodurch praktisch die Positionen der beiden Prozesse vertauscht wurden und
der NJP die Kontrolle übernah, der nun zum CJP wurde und dem· früheren CJP die Kontrolle abnahm. Dann erfolgte Zugriff
auf den ProzeßsteuerbloGk des NJP, und die zur Ausführung des NJP (des jetzigen CJP) benötigten Informationen wurden
im Notizblockspeicher bzw« im Registerfeld im Rechenwerk ACU gespeichert.
Gab es keinen CJP, der die Kontrolle über die Zentraleinheit
ausübte (Fall b), dann wurde der Kopf der READY-Wartesehlange
abgearbeitet. Dies bedeutet, der NJP wurde deshalb zum CJP, weil der Dispatcher den NJP aus dem Prozess-Link PL am Kopf
der READY-Warteschlange fortnahm und ihn im RPW-Wort speicherte.
Hierdurch blieb in der Warteschlange Q/PR/EDY ein Prozess-Link PL leer zurück und es ist erforderlich, es
herauszunehmen.
Beginnend mit dem Entscheidungs-Block 1461 stellt die Firmware
fest, ob ein gegenwärtig ablaufender ProzeßCJP die
50982 3/0695
Kontrolle über die Zentraleinheit (ZE) (CPU) ausübt oder nicht. Wenn ein freies Prozess-Link (PPIS) vorlag, so erfolgte
Zugriff und Einreihung in die V/arteschlange, und
der GJP wurde dorthin geschrieben. Wenn dagegen kein CJP
Kontrolle über die Zentraleinheit ausübte, so wird das Status-Byte von PMW 0 des NJP aktualisiert (1460) und
wieder erfolgt eine Feststellung, ob sich ein CJP in der Maschine befand oder nicht (1463). Wenn kein CJP die Kontrolle
über den Prozessor ausübte, so wird das Prozess-Link (Prozeß-Yerkettung) des ITJP (der sich in der Warteschlange
Q/PR/RDY befand und nun die Kontrolle über die Maschine ausübt) aus der READY-Warteschlange Q/PR/RDY herausgenommen
(1466), wird zu.einem freien Verkettungs-Semaphor (PLSP) in die Warteschlange der freien Prozeß-Verkettungen
(805 in Pig. 9) aufgenommen und zu einem Teil der Schlange der freien Prozeß-Verkettungen (1466a). Der
Inhalt des Grenzadreß-Registers BAR wird geholt (1464)» und das laufende Prozeßwort PRV/ des EJP (des jetzigen CJP), das
sich bei BAR plus 56 der System-Basis befindet, wird fortgeschrieben,
indem die NJP-Kennung im RPW gespeichert wird (Block 1465). Der Vakanz-Indikator ist Null, falls es keinen
CJP gegeben hatte. Als'nächstes wird der Konkurrenz-Indikator (d.h. ein Plip-Plop im Ergänzungsspeicher 1317a,
das dazu dient, einen möglichen Prioritätskonflickt zwischen dem gegenwärtig ablaufenden Prozeß CJP und einem in
der Bereit-Warteschlange wartenden Prozeß anzuzeigen) auf Null gelöscht (1467) und der Segment-Assoziator (AS 132
in Pig. 1), ein typischer inhaltsadressierter Assoziativspeicher, wird gelöscht (1471); dann erfolgt ein Übergang
zum Verarbeitungs-Modus (1470); Verarbeitungs-Modus bedeutet, daß Ausnahmezustände nicht vom Betriebs-System, sondern
von dem im Prozessor operierenden Prozeß bearbeitet werden Die Firmware geht dann zu CAB 1480 über und das Asynchron-Sprung-Bit
AB wird daraufhin untersucht, ob es binär 1 ist
50982 3/0695
oder nicht (1481). Wenn das AB-Bit /binär 1 ist, dann erfolgt
(1482) eine Prüfung daraufhin, ob die Prozeß-Ringnummer
PRN größer ist als das Asynchron-Sprung-Bit ARN oder ob es gleich ist (das AB und das ARH sind im Prioritäts-Bytes
des Prozeßsteuer-Wortes POB jedes Prozesses untergebracht und sind signifikant, wenn sich der Prozeß
im Lauf-Status befindet; AB und ARH" ergeben sich aus dem
RPW, das sich bei BAR plus 56 der System-Basis befindet). AB und ARN in BAR plus 56 des RPW sind gelöscht; denn der
nächste Schritt (1484) besteht im Übergang zu einer Asynohron-Sprung-Routine,
die die Bedingungen bearbeiten würde, welche überhaupt erst dazu führen wurden, daß das Asynchron-Sprung-Bit
oder die Asynchron-Ringnummer gesetzt wäre. Wären sie nicht gelöscht, so würde dies beim nächsten Arbeitsgang
der Firmware als ein Hinweis darauf verstanden werden, daß etwas nicht in Ordnung war, wo in Wirklichkeit.alles korrekt
war; es müßte immer, mit der Asynchron-Sprung-Routine (1484)
fortgefahren werden und Ausführung wäre unmöglich. Fun zurück zu Entscheidungsblock 1481 und 1482.
Wenn das AB-Bit nicht gesetzt ist, oder das AB ist gesetzt und PRN ist nicht größer als ARN, dann würde die Firmware
als nächstes ermitteln, in welchem Modus der Prozessor arbeiten würde, im Normal-Modus oder im Emulations-Modus.
Entsprechend wird die DEXT-Nuramer daraufhin untersucht,
ob sie Null ist oder nicht. Wenn sie Null ist, so liegt Normal-Modus der Maschine vor (1487), wenn dagegen die
DEXT-Nummer nicht Null ist, so wird im Emulations-Modus
gearbeitet (1486).
B 0 9 8 2 3 / 0 6 9 5
Claims (22)
- PatentansprücheMehrprogramm-Coraputer-Systera mit einer Zentraleinheit, die mehrere Prozesse enthält, von denen ein ausgewählter Prozeß läuft und die Eontrolle über die Zentraleinheit hat, wobei sich ausgewählte weitere Prozesse in einem Bereit-Zustand befinden, der darin besteht, daß ein ausgewählter erster Prozeß dieser weiteren Prozesse für die Erlangung der Kontrolle über die Zentraleinheit bereit ist, nachdem die Zentraleinheit verfügbar geworden ist, in einem Warte-Zustand befinden, der darin besteht, daß ein ausgewählter zweiter Prozeß der weiteren Prozesse das Eintreten eines vorbestimmten Ereignisses benötigt, ehe er die Kontrolle über die Zentraleinheit übernehmen darf, wenn diese verfügbar wird, und in einem Aussetzungs-Zustand befinden, der darin besteht, daß ein ausgewählter dritter Prozeß der weiteren Prozesse inaktiv gemacht worden ist, und mit einem virtuellen Speicher, dadurch gekennzeichnet, daß ein virtueller Prozessor zur Steuerung der Zustände dieser Prozesse (a) in dem virtuellen Speicher erste Einrichtungen 'mit einem vorbestimmten Format zum Speichern von Informationen für die Steuerung der Zustände der Prozesse und (b) in dem virtuellen Speicher zweite Einrichtungen zur Adressierung der ersten Einrichtungen enthält.
- 2. Computer-System nach Anspruch 1, dadurch gekennzeichnet, daß in den zweiten Einrichtungen dritte Einrichtungen zur Angabe des Namens und der Adresse des laufenden Prozesses enthalten sind.
- 3· Computer-System nach Anspruch 2, dadurch gekennzeichnet, daß in den zweiten Einrichtungen mit den dritten Einrichtungen in Verbindung stehende vierte Einrichtungen zum509823/0695ORIGINALSpeichern eines vorbestimmten Abschnitts der Adresse des laufenden Prozesses enthalten sind.
- 4. Computer-System nach Anspruch 3, dadurch gekennzeichnet, daß in den zweiten Einrichtungen, die mit den vierten Einrichtungen in Verbindung-stehen, fünfte Einrichtungen zum Speichern eines zweiten vorbestimmten Abschnitts der Adresse des laufenden Prozesses enthalten sind.
- 5. Computer-System nach Anspruch 4> gekennzeichnet durch mit den vierten und fünften Einrichtungen in Verbindung stehende sechste Einrichtungen zum Kombinieren des ersten und des zweiten vorbestimmten Abschnitts der Adresse des laufenden Prozesses.
- 6. Mehrprogramm-Computer-System nach Anspruch 1 mit wenigstens einem virtuellen Speicher, einer mit dem virtuellen Speicher in Verbindung stehenden Zentraleinheit mit mehreren Allgemein- und Basis-Registern zum Speichern von Informationen für einen Betrieb der Zentraleinheit im Eigen-Modus, mit einem Befehlszählerregister zum Speichern von Informationen über einen Betrieb der Zentraleinheit im Eigen-Modus, mit mehreren wissenschaftlichen Registern zum Speichern von- Informationen über einen Betrieb der Zentraleinheit im wissenschaftlichen Modus, mit einem Befehlszählerregister zum Speichern der Adresse des nächsten von der Zentraleinheit auszuführenden Befehls und mit einem Statusregister zum Speichern von Informationen über den Status der Zentraleinheit, und einem Betriebssystem zur Schaffung oder Löschung von Prozessen, von denen sich ein ausgewählter Prozeß in einem lauf-Zustand befindet, in dem er die Kontrolle über die Zentraleinheit hat, wobei sich ausgewählte weitere Prozesse für die Erlangung der Kontrolle über die Zentraleinheit bereit ist, nachdem die Zentraleinheit verfügbarS09823/0695geworden ist, in einem Warte-Zustand "befinden, der darin besteht, daß ein ausgewählter zweiter Prozeß der weiteren Prozesse das Eintreten eines vorbestimmten Ereignisses benötigt, ehe er die Kontrolle über die Zentraleinheit übernehmen darf, wenn diese verfügbar wird, und in einem Aussetzungs-Zustand befinden, der darin besteht, daß ein ausgewählter dritter Prozeß der weiteren Prozesse inaktiv gemacht worden ist, dadurch gekennzeichnet, daß ein die Zustände der Prozesse steuernder virtueller Prozessor folgende Einheiten enthält:a) erste, eine vorbestimmte Struktur aufweisende und einem vorbestimmten Prozeß zugeordnete Einrichtungen zum Leiten des Zustandes dieses vorbestimmten Prozesse,b) zweite, mit dem Betriebssystem in Verbindung stehende Einrichtungen zur Angabe eines ausgewählten Hamens und" einer ausgewählten Adresse des den ersten Einrichtungen zugeordneten vorbestimmten Prozesses,c) dritte, von den zweiten Einrichtungen adressierte Einrichtungen zur Abgabe eines ersten vorbestimmten Abschnitts der Adresse der ersten Einrichtungen,d) vierte, von den dritten Einrichtungen adressierte Einrichtungen zur Abgabe eines zweiten vorbestimmten Abschnitts der Adresse der ersten Einrichtungen,e) fünfte, mit den dritten und vierten Einrichtungen verbundene Einrichtungen zum Kombinieren des ersten und zweiten vorbestimmten Abschnitts der Adresse der ersten Einrichtungen zur Bildung einer absoluten Adresse der ersten Einrichtungen und50982 3/0695f) sechste, in den ersten Einrichtungen enthaltene Einrichtungen zum Speichern des Inhalts des Befehlszählerregisters.
- 7. Computer-System nach Anspruch 6, dadurch gekennzeichnet, daß in den ersten Einrichtungen siebte Einrichtungen zum Speichern des Inhalts der Allgemein-Register enthalten sind.
- 8. Computer-System nach Anspruch 6, dadurch gekennzeichnet, daß in den ersten Einrichtungen achte Einrichtungen zum Speichern des Inhalts der Basis-Register enthalten sind.
- 9. Computer-System nach Anspruch 6, dadurch gekennzeichnet, daß in den ersten Einrichtungen neunte Einrichtungen zum Speichern des Inhalts der wissenschaftlichen Register enthalten sind.
- 10. Computer-System nach Anspruch 6, dadurch gekennzeichnet, daß in den ersten Einrichtungen zehnte Einrichtungen zum Speichern des Inhalts des Status-Registers enthalten sind.
- 11. Computer-System nach Anspruch 6, dadurch gekennzeichnet, daß in den ersten Einrichtungen elfte Einrichtungen enthalten sind, die anzeigen, ob der ausgewählte eine Prozeß im Emulations-I'lodus ausgeführt werden kann oder nicht.
- 12. Computer-System nach Anspruch 6, dadurch gekennzeichnet, daß in den ersten Einrichtungen zwölfte Einrichtungen enthalten sind, die anzeigen, ob sich die ersten Einrichtungen im Emulations-Modus befinden oder nicht.
- 13. Mehrprogramm-Computer-System nach Anspruch 1 mit wenigstens einem virtuellen Speicher, einer mit dem virtuellen Speicher509823/0695ORIGINAL INSPECTEDin Verbindung stehenden Zentraleinheit, einem Betriebssystem zur Schaffung oder Löschung von Prozessen, von denen sich ein ausgewählter.Prozeß in einem lauf-Zustand befindet, in dem er die Kontrolle über die Zentraleinheit hat, wobei sich ausgewählte weitere Prozesse in einem Bereit-Zustand befinden, der darin besteht, daß ein ausgewählter ersten Prozeß dieser weiteren Prozesse für die Erlangung der Kontrolle über die Zentraleinheit bereit ist, nachdem die Zentraleinheit verfügbar geworden ist, in einem Warte-Zustand befinden, der darin besteht, daß ein ausgewählter zweiter Prozeß der weiteren Prozesse das Eintreteneines vorbestimmten Ereignisses benötigt, ehe er die Kontrolle über die Zentraleinheit übernehmen darf, wenn diese verfügbar wird, und in einem Aussetzungs-Zustand befinden, der darin besteht, daß ein ausgewählter dritter Prozeß der weiteren Prozesse inaktiv gemacht worden ist, dadurch gekennzeichnet, daß eine Abrechnungsanordnung zum Abrechnen der Zeit vorgesehen ist, die jeder Prozeß im Lauf-, Bereit- oder Wartezustand verbringt, wobei diese Abrechnungsanordnung folgende Einheiten enthält:a) erste, eine vorbestimmte Struktur aufweisende und einem vorbestimmten Prozeß zugeordnete Einrichtungen zum Leiten des Zustandes des vorbestimmten Prozesses,b) zweite, mit dem Betriebssystem in Verbindung stehende Einrichtungen zur Angabe eines ausgewählten ITamens und einer ausgewählten Adresse des vorbestimmten, den ersten Einrichtungen zugeordneten Prozesses,c) dritte, von den zweiten Einrichtungen adressierte Einrichtungen zur Angabe der Adresse der ersten Einrichtungen und50 9 823/069 5 ORlfflNAL INSPECTEDd) erste Abrechnungsmoäus-Einriohtungen in den ersten Einrichtungen zur Anzeige der aufgelaufenen Zeit, die der den ersten Einrichtungen zugeordnete Prozeß im Xauf-Zustand verbracht hat.
- 14. Computer-System nach Anspruch 13, dadurch gekennzeichnet, daß in den ersten Einrichtungen zweite Abrechnungsmodus-Anordnungen enthalten sind, die die aufgelaufene Zeit anzeigen, die der den ersten Einrichtungen zugeordnete Prozeß im Bereit-Zustand verbracht hat.
- 15. Computer-System nach Anspruch 14, dadurch gekennzeichnet, daß in den ersten Einrichtungen dritte Abrechnungsmodus-Anordnungen enthalten sind, die die aufgelaufene Zeit anzeigen, die der den ersten Einrichtungen zugeordnete Prozeß im Warte-Zustand verbracht hat.
- 16. Computer-System nach Anspruch 15, dadurch gekennzeichnet, daß in den ersten Einrichtungen Abrechnungseignungs-Anordnungen enthalten sind, die anzeigen, ob sich der den ersten Einrichtungen zugeordnete Prozeß im Abrechnungszustand befindet oder nicht.
- 17. Computer-System nach Anspruch 16, dadurch gekennzeichnet, daß die Zentraleinheit eine erste Zeitgebervorrichtung enthält, die dem Computer-System den laufenden Echtzeitwert in MikrοSekunden angibt.
- 18. Computer-System nach Anspruch 17, gekennzeichnet durch eine zweite Zeitgebervorrichtung, die der Zentraleinheit die Zeitperiode angibt, die ein Prozeß im Lauf-Zustand verbringt.
- 19. Computer-System nach Anspruch 18, dadurch gekennzeichnet, daß der Zentraleinheit vierte, mit der ersten Abrechnungs-5 09823/069 5 ORIGINAL INSPECTED2 'ι ο 6 5 31anordnung und mit der zweiten Taktvorrichtung in Verbindung stehende Einrichtungen zur Aktualisierung der ersten Abreohnungsanordnung enthalten sind.
- 20. Computer-System nach Anspruch 19, dadurch gekennzeichnet, daß in der Zentraleinheit fünfte, mit den zweiten und dritten Abrechnungsanordnungen und mit der ersten Zeitgebervorrichtung in Verbindung stehende Einrichtungen zur Aktualisierung der zweiten und/oder dritten Abrechnungsanordnung enthalten sind.
- 21. Computer-System nach Anspruch 20, dadurch gekennzeichnet, daß die erste Zeitgebervorrichtung ein synchroner Aufwärtszähler ist.
- 22. Computer-System nach Anspruch 21, dadurch gekennzeichnet, daß die zweite Zeitgebervorrichtung ein synchroner Abwärtszähler ist.509823/069 5ORIGINAL INSPECTEDLeerseite
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR7342689A FR2289004A1 (fr) | 1973-11-30 | 1973-11-30 | Bloc de controle de processus |
FR7342690A FR2258113A5 (de) | 1973-11-30 | 1973-11-30 | |
FR7342702A FR2253432A5 (de) | 1973-11-30 | 1973-11-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2456531A1 true DE2456531A1 (de) | 1975-06-05 |
Family
ID=27250213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19742456531 Ceased DE2456531A1 (de) | 1973-11-30 | 1974-11-29 | Computer-system |
Country Status (8)
Country | Link |
---|---|
JP (1) | JPS6052453B2 (de) |
AU (1) | AU501600B2 (de) |
BR (1) | BR7410068A (de) |
CA (1) | CA1020280A (de) |
DE (1) | DE2456531A1 (de) |
GB (1) | GB1491453A (de) |
IT (1) | IT1030848B (de) |
NL (1) | NL7415722A (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE68926043T2 (de) * | 1989-07-20 | 1996-08-22 | Toshiba Kawasaki Kk | Mehrprozessor-Computersystem |
DE19957594B4 (de) * | 1999-11-30 | 2004-08-26 | OCé PRINTING SYSTEMS GMBH | Verfahren zum Synchronisieren von threads eines Computerprogramms |
CN111857995B (zh) * | 2020-06-30 | 2024-05-24 | 海尔优家智能科技(北京)有限公司 | 进程调度方法和装置、存储介质及电子装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3611307A (en) * | 1969-04-03 | 1971-10-05 | Ibm | Execution unit shared by plurality of arrays of virtual processors |
-
1974
- 1974-11-28 AU AU75877/74A patent/AU501600B2/en not_active Expired
- 1974-11-29 DE DE19742456531 patent/DE2456531A1/de not_active Ceased
- 1974-11-29 IT IT3001174A patent/IT1030848B/it active
- 1974-11-30 JP JP49136674A patent/JPS6052453B2/ja not_active Expired
- 1974-12-02 NL NL7415722A patent/NL7415722A/xx not_active Application Discontinuation
- 1974-12-02 CA CA215,184A patent/CA1020280A/en not_active Expired
- 1974-12-02 GB GB5213274A patent/GB1491453A/en not_active Expired
- 1974-12-02 BR BR1006874A patent/BR7410068A/pt unknown
Also Published As
Publication number | Publication date |
---|---|
AU7587774A (en) | 1976-06-03 |
NL7415722A (nl) | 1975-06-03 |
BR7410068A (pt) | 1976-06-08 |
IT1030848B (it) | 1979-04-10 |
JPS6052453B2 (ja) | 1985-11-19 |
GB1491453A (en) | 1977-11-09 |
JPS50117334A (de) | 1975-09-13 |
AU501600B2 (en) | 1979-06-28 |
CA1020280A (en) | 1977-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2722099C2 (de) | ||
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE3280446T2 (de) | Digitales Datenverarbeitungssystem. | |
DE2317870C2 (de) | Schaltungsanordnung zur Steuerung der Datenübertragung zwischen dem Hauptspeicher und mindestens einem E/A-Gerät in einer digitalen Datenverarbeitungsanlage | |
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 | |
DE2416609C2 (de) | Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen | |
DE2846495C2 (de) | Zentraleinheit | |
DE3685913T2 (de) | Vektorenverarbeitung. | |
DE2517171A1 (de) | Datenverarbeitungssystem mit erweitertem semaphor-aufbau | |
DE2517297A1 (de) | Einrichtung zum feststellen eines zu einem zu verhindernden endgueltigen stillstand fuehrenden systemzustandes | |
DE3716229A1 (de) | Mikroprozessorchip mit einem stapelrahmen-cache | |
DE2054835C2 (de) | Steuereinrichtung in einem Prozessor einer Mehrprozessor-Datenverarbeitungsanlage | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE3741850A1 (de) | Ausfuehrungseinheit fuer einen i/o-prozessor | |
DE2459675A1 (de) | Datenverarbeitungssystem | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE2251876B2 (de) | Elektronische datenverarbeitungsanlage | |
DE2500006A1 (de) | Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
DE2626703A1 (de) | Intern programmierbares datenverarbeitungssystem | |
DE2657848A1 (de) | Steuereinheit fuer ein datenverarbeitungssystem | |
CH619309A5 (de) | ||
DE1524102B2 (de) | Elektronische, aus baueinheiten aufgebaute datenverarbeitungsmaschine | |
DE2612054A1 (de) | Verfahren zur adressentwicklung und prozessor zur durchfuehrung des verfahrens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OGA | New person/name/address of the applicant | ||
8110 | Request for examination paragraph 44 | ||
8131 | Rejection |