DE2626703A1 - Intern programmierbares datenverarbeitungssystem - Google Patents
Intern programmierbares datenverarbeitungssystemInfo
- Publication number
- DE2626703A1 DE2626703A1 DE19762626703 DE2626703A DE2626703A1 DE 2626703 A1 DE2626703 A1 DE 2626703A1 DE 19762626703 DE19762626703 DE 19762626703 DE 2626703 A DE2626703 A DE 2626703A DE 2626703 A1 DE2626703 A1 DE 2626703A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- memory
- register
- segment
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/463—Program control block organisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/961—Associative
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Description
Die Erfindung betrifft ein intern programmierbare? Datenverarbeitungssystem
nach dem Gattungsbegriff des Ansprijches 1.
Insbesondere bezieht sich die Erfindung auf eine Verbesserung von Digitalrechnern im Bereich der Datenbank-Operationen.
Die Hardware elektronischer Rechner hat sich von einer ersten Generation, die durch die Verwendung von Elektronenröhren
gekennzeichnet war, über eine zweite Generation, die durch Transistoren cjekennzeichnet war, zu einer dritten
Generation entwickelt, die in der Hauptsache durch
609853/0755
in der Hauptsache durch integrierte Schaltkreise bestimmt ist. In Zusammenhang mit diesen verschiedenen Hardwaregenerationen
wurde von verschiedenen Softwaregenerationen Gebrauch gemacht, wobei die Software der ersten Generation hauptsächlich durch
die Maschinensprache, Assembler und Subroutinen bestimmt war und die Software der zweiten Generation durch höhere Programmiersprachen,
durch Überwachungsprogramme und Makroassembler gekennzeichnet
war. Die Software der dritten Generation ist gekennzeichnet durch Operationssysteme, Online-Echtzeit-Systeme,
Mebrprogrammsysteme und Datenbankverwaltungssysteme.
Die Hardware der ersten Generation zusammen mit der Software der ersten Generation und ebenso die Hardware der zweiten
Generation zusammen mit der Software der zweiten Generation waren in erster Linie auf eine Stapelverarbeitung ausgerichtet,
wobei die Ausführung der Jobs in erster Linie in serieller Weise erfolgte. Weiterhin waren die Hardware/Software-Systeme
der dritten Generation ebenfalls auf eine Stapbeiverarbeitung ausgerichtet, wobei jedoch auf Grund des Aufkommens der Mehrfachprogrammierung
verschiedene Jobs in paralleler anstelle von serieller Weise bearbeitet werden konnten und wobei diese
Systeme die Aufnahme von Eingangsinformation zur Verarbeitung bsi deren Erzeugung erlaubten.
Die Systeme der vierten Generation werden typischerweise als EoiTiiiiunikations- und Steuersysteme klassifiziert v/erden können „
die sich durch breit gestreute Prozessoranwendungen auszeichnen und die in erster Linie durch übertragene Daten anstelle von
Stapelprogrammen angeregt werden. Die Systemsteuerung erfolgt hierbei in erster Linie durch Eingangsinformationen anstelle
vor: Eingriffen des Bedieners, wobei die Informationsunterdrückung
im allgemeinen in Echtzeit erfolgt»
EeI der Entwicklung der oben genannten Generationen von Computersystemen
bestand eine Hauptanforderung darin, effektive Methoden
z'c~u Zugriff auf die Datenbank des Computer systems zu entwickeln.
609853/0755
™" 3 ""
In der Entwicklung der System-Datenbänke kam man anfänglich zu einer großen Anzahl verschiedener Datenbänke entsprechend der
Anwendungsfälle. Als Folge dieser wachsenden Anzahl von Datenbänken
ergaben sich Probleme hinsichtlich der Anforderungen an die Speicher und hinsichtlich der Redundanz der Datenspeicherung,
was zusätzlich durch das Problem erschwert wurde, daß die redundanten Daten zu verschiedenen Zeitpunkten an einer Stelle
in korrekter Weise und an anderer Stelle in inkorrekter Weise auf den neuesten Stand gebracht wurden. Es wurden Schritte
unternommen, um diese Probleme zu beherrschen, indem die vielen Datenbänke eines Systems in einer einzigen Datenbank integriert
wurden. Der integrierte Datenspeicher (IDS) der Firma Honeywell stellt ein Beispiel eines Systems dar, das ausgelegt wurde, um
diese Probleme zu vermeiden. Der integrierte Datenspeicher setzte
sich aus einer zentralen Datenbank zusammen, welche beispielsweise von dem Lagerbestandsführungssystem, den internen Buchungsprozeduren und Lohnabrechnungsprozeduren benutzt werden konnte,
indem jeweils ciuf die relevanten Daten in der Datenbank Zugriff
genommen wurde. In dieser zentralen integrierten Datenbank kann sich ein einziger Datensatz befinden, der eine Information umschreibt,
die verschiedenen funktioneilen Erfordernissen gemeinsam ist. Beispielsweise kann die Lagerbestandsführung und interne
Buchung auf die Nummer eines vorgegegenen Teiles in einem Warenhaus Bezug nehmen.
Unter Heranziehung kontinuierlich verbesserter Softwaretechniken wurden wirksame Techniken zur Benutzung integrierter Datenbanken
entwickelt. Das Gruppenkonzept stellt eine Technik dar, welche den Zugriff auf Datensätze in der integrierten Datenbank auf
der Grundlage von Beziehungen zwischen den Datensätzen gestattet. Eine typische Beziehung stellen beispielsweise alle Angestellten
in einer bestimmten Abteilung dar, beispielsweise in der Produktionsabteilung.
Die Produktionsabteilung kann durch einen Benutzer-Datensatz beschrieben werden und die Angestellten innerhalb
der Abteilung können durch einen Mitglieder-Datensatz beschrieben werden. Auf die Gruppe, welche eine Beziehung, wie beispielsweise
die Mitgliedschaft in einer Abteilung( beschreibt,
609853/0755
kann sodann durch den Benutzer-Datensatz Zugriff genommen werden, was der Software gestattet, alle Mitglieds-Datensätze zu
gewinnen und somit beispielsweise alle Angestellten innerhalb der Abteilung auszudrucken.
Bei diesem Entwicklungsstand kann der integrierte Datenspeicher einige der reinen oben erwähnten Datenprobleme lösen, z. B. das
Problem der redundanten Daten in verschiedenen Datenbänken und das Problem der Ergänzung mehrfacher Kopien von Datensätzen.
Das Problem wurde durch einen einzigen Datensatz gelöst, der somit eine Reduktion der Speichergröße für die Daten und eine
einzige Kopie der Daten gestattet. Andere Probleme hinsichtlich der Datenbänke blieben bestehen. Die Gruppenkonzepte stellten
neue Techniken dar hinsichtlich der Benutzung des Computers, aber es gab von diesem Zeitpunkt an keine spezialisierten
Hardwarebefehle für die Zentraleinheiten der Rechner, um diese neuen Techniken zu unterstützen. Als Folge hiervon kann eine
Gruppenoperation, wie beispielsweise das Auffinden des ersten Mitgliedes einer Gruppe, hinsichtlich der Software nur durch
eine Reihe von Standard-Maschinenbefehlen, wie beispielsweise addieren, laden, speichern usw. verwirklicht werden. Als Ergebnis
ergibt sich eine ziemlich lange Rechenzeit für relativ einfache Gruppenoperationen, wie beispielsweise das Auffinden
des ersten Mitgliedes, das Einsetzen eines Datensatzes in eine Gruppe und andere Gruppenoperationen.
Die Aufgabe, die es durch die Erfindung zu lösen gilt, besteht daher darin, ein Datenbanksystem zu schaffen, das einerseits die
traditionellen Datenprobleme, wie sie bereits durch die integrierten Datentechniken unter Benutzung von Gruppenoperationen
gelöst werden, beherrscht und andererseits die Wirksamkeit der bekannten Datenbanksysteme in Bezug auf die erforderliche Rechenzeit
verbessert. Insbesondere ist es die Aufgabe der vorliegenden Erfindung, Hardware/Firmware-Befehle anzugeben, die prüfen, ob
ein Benutzer-Datensatz irgendwelche laufenden Mitglieder in einer bestimmten Gruppe aufweist und ob ein Datensatz ein Mitglied der
609853/0755
bestimmten Gruppe bildet. Die Lösung dieser Aufgabe gelingt gemäß der im Anspruch 1 gekennzeichneten Erfindung. Weitere
vorteilhafte Ausgestaltungen der Erfindung sind den Unteransprüchen entnehmbar.
Gemäß einem Ausführungsbeispiel der Erfindung wird diese Aufgabe
insbesondere dadurch gelöst, daß zwei Reihen von hardware/ firmwareunterstützten Befehlen vorgesehen werden, die beide einen
Gruppen-Deskriptor abrufen, der zusammen in einem Basisregister den Zugriff zu einem Datensatz gestattet. Hinsichtlich der
Operation "Prüfen, ob Gruppe leer" bildet der aufgegriffene
Datensatz einen Benutzer-Datensatz und es wird eine Prüfung durchgeführt, um festzustellen, ob die Gruppe irgendwelche gerade
ihr zugeordnete Mitglieds-Datensätze aufweist. Hinsichtlich der Operation "Prüfen, ob Mitglied eingefügt", wird der
aufgegriffene Datensatz überprüft, um festzustellen, ob er gerade als ein Mitglied einer bestimmten Gruppe, z.B. als ein
Teil dieser Gruppe, eingefügt ist.
Anhand eines in den Figuren der beiliegenden Zeichnung dargestellten
Ausführungsbeispieles wird die Erfindung im folgenden näher beschrieben. Es zeigen:
Figur 1 ein Blockdiagramm eines Mehrprogrammsystems gemäß der Erfindung,
Figur 2 eine schematische Datstellung verschiedener von der Erfindung
benutzter Hardwarestrukturen, Figur 3 eine Liste von Ausdrücken, die für reservierte Speichergebiete
in Registern gemäß Figur 2 benutzt werden, Figur 4 ein schematisches Diagramm eines Prozeßsteuerblockes
für einen Rechner gemäß der Erfindung, Figur 5 ein schematisches Diagramm eines Systemes zur Adressierung
eines Prozeßsteuerblockes,
Figur 6 ein schematisches Diagramm der Systembasis eines die Erfindung benutzenden Computersystemes,
Figuren 7A und 7B schematische Darstellungen eines Stapelsegmentes und eines Stapelrahmens eines die Erfindung benutzenden
Computersystemes, 609853/0755
Figur 8 ein schematisches Diagramm eines Systemes zur Adressierung
von G-Segmenten und insbesondere der Warteschlange von Prozessen in dem G-O-Segment eines erfindungsgemäßen Computersystems
,
Figur 9 ein erweitertes schematisches Diagramm eines G-O-Segmentes,
welches die Warteschlange von Prozessen und die Prozeßverbindung eines erfindungsgemäßen Computersystems
darstellt,
Figuren 1OA bis 1OL Blockdiagramme von Strukturen in dem
Prozeßsteuerblock,
Figuren 11A bis HR Blockdiagramme von Strukturen in der Systembasis,
Figur 12 ein schematisches Diagramm von Adressierschemen von Benutzer- und Systemsegmenten, die von der Systembasis und
den Prozeßsteuerblock-Strukturen Gebrauch machen r
Figuren 13A bis 13C schematische Diagramme der Steuereinheit gemäß der Erfindung,
Figuren 14A bis 141 Flußdiagramme der Verteilereinheit in der
Firmware des erfindungsgemäßen Computersystemes,
Figuren 15A bis 15H Diagramme der Datensätze und ihrer Hinweisadressen,
wie sie bei den Gruppenbefehlen benutzt werden, Figuren 16A bis 16C Diagramme des Datenbank-Seitenformates
und der Descriptoren, welche diese Seiten beschreiben, Figur 17 ein Flußdiagramm der Firmware wie sie benutzt wird,
um eine Datenbank-Seite im Hauptspeicher abzulegen. Figur 18 ein Blockdiagramm eines Hardwaremechanismus zur
zur Auf f i.ndung einer Datenbank-Seite im Hauptspeicher,
Figuren 19A und 19B Diagramme von Descriptoren, die Gruppen und Datensätze beschreiben, die von den Datenbank-Befehlen
benutzt werden,
Figuren 2OA bis 2OF Diagramme von Befehlsformaten, die von
den Datenbank-Befehlen benutzt werden,
609853/0755
Figur 21 Flußdiagramm des Datenbank-Befehles "Prüfen, ob Gruppe leer" in Firmware/Hardware,
Figur 22 Flußdiagramm des Datenbank-Befehles "Prüfen, ob Mitglied eingefügt" in Firmware/Hardware,
Figur 23 ein logisches Blockdiagramm eines Hardware-Datenbank-Befehles "Prüfen, ob Gruppe leer"-und
Figur 24 ein logisches Blockdiagramm eines Hardware-Datenbank-Befehles "Prüfen, ob Mitglied eingefügt".
609853/0755
I. Einführung
Die verv7Gndeten Hilfsmittel zur Bildung des Direktauffindungs-Datenbank-Befehls
sind in einem großen Computersystem notwendigerweise sehr komplex. Ein volles Verständnis der Lehre
der vorliegenden Erfindung ist im allgemeinen insbesondere nur dann möglich, wenn der Leser mit dem Gebiet der Computertechnik
und der verwendeten Hilfsmittel vertraut ist. Aus diesem Grund soll zunächst kurz der allgemeine Aufbau eines
typischen großen Datenverarbeitungssystems erläutert werden, bei welchem von den Prinzipien der vorliegenden Erfindung
mit Vorteil Gebrauch gemacht werden kann. Zunächst soll das grundlegende Konzept erläutert werden, auf welchem die vorliegende
Erfindung basiert.
Das Datenbank-Gruppenkonzept vereinigt verschiedene Techniken (Tabellen, Listen, Ketten, Ringe, Dateien und Feldanordnungen),
von denen bei den meisten bekannten Computern Gebrauch gemacht wird, insbesondere bei deren Programmierung. Das vorliegende
Konzept ist eine Spezialisierung des allgemeineren mathematischen Gruppenkonzeptes, aus welchem der Name und viele Eigenschaften
der Datenstrukturgruppe ableitbar sind. In der vorliegenden Beschreibung wird das Wort "Gruppe" immer im
Sinne einer Datenstruktur und nicht im mathematischen Sinne benutzt.
Viele Systeme unterstützen das Gruppenkonzept, wobei diese Unterstützung jedoch nur softwaremäßig erfolgt. Im Datenbank-Verwaltungsbereich
hat zuerst das integrierte.Datenspeichersystem (IDS) der Firma Honeywell breiten Gebrauch von dem
Gruppenkonzept gemacht, um komplexe Hersteller- und Bankprobleme zu bearbeiten. Das integrierte Datenspeichersystem
macht von der Kettenform (Ringform) der Gruppenverv/irklichung Gebrauch. Diese grundlegenden Konzepte werden hardware- bzw.
firmwaremäßig verwirklicht und sind in bestehenden Rechnern
vorhanden, so daß neue und verbesserte Digitalrechner geschaffen werden.
609853/0755
Die Gruppe stellt eines von drei komplementären Konzepten (Datensatz, Feld und Gruppe.) dar, die zur Bildung und Speicherung
von Datenstrukturen benötigt werden, wobei diese Datenstrukturen eine Entsprechung in der natürlichen Umwelt
finden. Wird die natürliche Umwelt in Ausdrücken existierender Systemelemente betrachtet, so führen die sie beschreibenden
Eigenschaften und die Beziehungen zwischen ihnen zu folgenden entsprechenden Informationssystemkonzepten: Datensatz, Feld
und Gruppe. In einem einfachen, aus dein Schulbereich genommenen
Beispiel können die Systemelemente beispielsweise die Lehrer und die Kinder beschreiben. Einige der Zuordnungen für den
Lehrer sind beispielsweise durch den Namen, den Ausbildungsstand und den Klassenraum bestimmt. Ebenso können einige
Zuordnungen für das Kind durch den Vornamen, das Alter und den Familiennamen gegeben sein. Zwischen Lehrern und Kindern
besteht eine gewisse Beziehung. In einem Informationssystemmodell für diese natürliche Umwelt können zwei Klassen von
Datensätzen geschaffen werden, wobei eine den Lehrern und eine den Kindern zugeordnet ist. In jedem Lehrer-Datensatz
existiert ein Feld, das den Kamen des Lehrers speichert, sowie ein anderes für den Ausbildungsgrad und ein weiteres für
die Nummer des Klassenraumes. Jeder Kinder-Datensatz enthält
entsprechende Felder für den Vornamen, das Alter und den Familiennamen.
Das Informationssystem kann den Kinder-Datensatz mit dem Lehrer-Datensatz
in verschiedenen Weisen verknüpfen, wobei die entsprechende Verknüpfungsweise zur Verwirklichung des Gruppenkonzepts
ausgewählt werden muß. Dies kann beispielsweise geschehen, indem alle Kinder-Datensätze nach ihrem Lehrer-Datensatz
in der Datei angeordnet v/erden. Eine solche Anordnung bezeichnet man dann als Tabelle oder Datensatz-Anordnung. Die
vorliegende Ausführung macht von der Technik der Ketten- bzw. Ringverwirklichung des Gruppenkonzeptes Gebrauch. In dieser
Form enthält der Benutzer-Datensatz eine Hinweisadresse zu dem ersten Mitglieds-Datensatz. Jeder Mitglieds-Datensatz enthält
seinerseits eine Hinweisadresse auf den folgenden Mitglieds-
609853/0755
Datensatz. Der letzte Mitglieds-Datensatz der Gruppe enthält eine Hinweisadresse der auf den Benutzer-Datensatz zurückverweist.
Variationen sind gestattet, welche den Benutzer-Datensatz oder den Benutzer- und alle Mitglied-Datensätze mit zusätzlichen
Kinweisadressen-Feldern versehen, um die Adresse des vorangegangenen Datensatzes und möglicherweise eine Hinweisadresse
auf den Benutzer-Datensatz für Mitglieds-Datensätze zu speichern.
Das vorstehend beschriebene Datenstruktur-Gruppenkonzept ist eine Verfeinerung des mathematischen Gruppenkonzeptes, d. h.
in der Datenstrukturgruppe ist die Gruppendefinition in dem
Fall der Benutzerrolle enthalten. Die Gruppenmitgliedschaft ist in dem Fall der Mitgliederrolle enthalten. Die Datensätze
können laufend viele Rollen als Benutzer und Mitglieder verschiedener Gruppen enthalten. Diese Eigenschaft erlaubt die
Schaffung und Handhabung von komplexen Strukturen, wodurch die Kompliziertheit der tatsächlichen Umwelt nachbildbar ist. In
dieser Verfeinerung des mathematischen Gruppenkonzeptes kann man umkehrbar entweder von einem Benutzer zu den Mitgliedern
oder von irgendeinem Mitglied zu dem Benutzer gehen, um auf diese Weise die Gruppendefinition wieder herzustellen.
Hinsichtlich der Datenstrukturgruppen basiert die Gruppendefinition
normalerweise auf dem Wert irgendeines Feldes bzw. mehrerer Felder innerhalb des Benutzer-Datensatzes, während
die Mitgliedschaft in der Gruppe in dem Computer durch den angepassten Wert eines äquivalenten Feldes bzw. von äquivalenten
Feldern innerhalb eines potentiellen Mitglieds-Datensatzes wieder hergestellt wird. Ein Vorteil kann häufig aus diesem
Phänomen gezogen v/erden, indem das Feld von den Mitglieds-Datensätzen entfernt wird, welche die angepassten Daten aufweisen
und von dem Benutzer-Datensatz für die Wiedererrichtung abhängen.
609853/0755
— 1Π "-
In dem zuvor erwähnten Schulbeispiel wurde gesagt, daß ein Lehrer die Rolle eines "Benutzers" einer Lehrer/Kinder-Gruppe
besitzt. Um dieses Beispiel zu erweitern, wollen wir zur Kenntnis nehmen, daß in den meisten Schulen die Beziehung
zwischen Lehrer und Kind keine einfache Beziehung (l:n), sondern eine ziemlich komplexe Beziehung (nun) ist, da die
Kinder verschiedene Lehrer für verschiedene Unterrichtsobjekte haben. Diese komplexe Beziehung von Lehrer:Kind kann in ein
neues Beziehungs-Systemelement umgewandelt werden: "Schüler",
so daß sich zwei einfache Beziehungen ergeben; Lehrer:Schüler
und Kind:Schüler. Der Lehrer hat viele Kinder als Schüler seiner Klasse und als Schüler hat das Kind mehrere Lehrer.
Das neue Systemelement "Schüler" hat die Zuordnung "Unterrichtsgegenstand" und "Stunde", welche zur Beschreibung und Unterscheidung
eines Beziehungs-Systemelementes von einem anderen dienen. Ein Kind kann den gleichen Lehrer für verschiedene
Unterrichtsgegenstände haben.
Das Datenstruktur-Gruppenkonzept hat vier grundlegende Eigenschaften:
1. Eine Gruppe hat einen und nur einen einzigen Datensatz in der Benutzerrolle.
2. Eine Gruppe hat null, einen oder mehrere Datensätze in
der Mitgliederrolle und die Anzahl verändert sich zeitlich,
3. Irgendein Datensatz kann der Benutzer von null, einer oder mehreren Gruppen gleichzeitig sein.
4. Irgendein Datensatz kann ein Mitglied in null, einer oder mehreren Gruppen gleichzeitig sein und somit
gleichzeitig durch verschiedene Benutzer-Datensätze benutzt werden. Jeder Datensatz kann nur einmal als
ein Mitglied einer besonderen Gruppe auftreten. Die Mitgliederrollen überschneiden sich nicht mit den Benutzerrollen.
609853/0755
Die Feststellung von "nächst" und "vorangehend" ist von Bedeutung für die Verfahrensalgorithmen, die der Problemlösung
Programm n
xn einem Computer mit gespexcherternyzugrunde lxegen. Zusatzlich
zu der verfahrensmäßigen Beschränkung der Behandlung auf einen Datensatz zur gleichen Zeit ergeben sich wichtigere
vereinfachende Konsequenzen für einen Algorithmus, wenn die Mitglieder-Datensätze innerhalb der Gruppe dem Algorithmus
in einer vorbestimmten geordneten Reihenfolge der Datenwerte oder in einer geordneten Folge der zeitlichen Einfügung (FIFO,
LIFO) angeboten werden können. Die Feststellungen von "zuerst" und "zuletzt" sind wesentlich für den Start und den Stop der
iterativen Ausführung des Datenalgorithmus. Die Ordnung der Mitglieder in einer Gruppe ist somit eine Voraussetzung für
eine rationelle Handhabung der Gruppe.
Der Hauptbeweggrund für die Anordnung von Datensätzen in Gruppen innerhalb einer Datei ist in der Nachbildung von Gegebenheiten
der natürlichen Umwelt zu sehen und in der Erleichterung des Zugriffs auf ausgewählte Datensätze innerhalb der
Datei, die irgendeine besondere Beziehung repräsentieren. Die Methoden zum Zugriff auf Gruppen bewegen sich teilweise zwischen
den bekannten Zugriffsmethoden und ergänzen zum anderen diese bekannten Methoden. Diese Zugriffsmethoden sind in der nachstehenden
Tabelle aufgelistet.
Tabelle I
Zugriffsmethoden
Zugriffsmethoden
Direkt-Zugriffsmethode Aufsuchung eines Datensatzes
Datenschlüssel-Zugriffsmethode Aufsuchung eines Datensatzes Gruppenbenutzer-Zugriffsmethode Aufsuchung eines Datensatzes
Gruppenmitglieds-Zugriffsmethode Iterative Benutzung; Aufsuchung eines jeden Mitgliedes
einer Gruppe
Sequenziell2 Datei-Zugriffs- Iterative Benutzung; Aufsumethode
η η q ο r ο/η ηcς chung eines jeden Datensatzes
innerhalb einer Datei
Die ersten vier Zugriffsmethoden v/erden in erster Linie bei
Abwicklungs- und Suchverfahren benutzt, wo das Erfordernis besteht, den aufgezeichneten Status eines besonderen Systemelementes
bzw. eine verwandte Gruppe von Systemelementen festzustellen oder wenn das Erfordernis besteht, den aufgezeichneten
Status der Systemelemente auf den neuesten Stand zu bringen. Die sequenzielle Datei-Zugriffsmethode wird in erster Linie
bei der Ergänzung von periodischen Stapeldateien benutzt. Es ist möglich, auf den gleichen Datensatz durch alle fünf Methoden
Zugriff zu nehmen, falls die Gelegenheit dies erfordert. Entsprechend ist es möglich, diese Zugriffsmethoden in Kombination ·
zu benutzen, um einen besonderen Effekt zu erzielen.
Greift man das vorangegangene Beispiel auf, so ist es möglich, daß der einem Lehrer zugeordnete Datensatz durch die Datenkennschlüssel-Zugriffsmethode
wieder aufgefunden wird und daß sodann alle Datensätze hinsichtlich der Schüler durch die
Gruppenmitglieds-Zugriffsmethode aufgefunden werden. Für jeden
Schüler-Datensatz kann der Kinder-Datensatz mit der Gruppenbenutzer-Zugriff
smethode aufgefunden v/erden. Alternativ kann die Wiederauffindung der Daten mit dem Datenkennschlüssel-Zugriff
auf den Kinder-Datensatz beginnen und sodann auf alle Datensätze hinsichtlich der Schüler und Lehrer Zugriff nehmen.
Die grundlegenden Wiederauffindungsmöglichkeiten, die sich aus
der Gruppe ableiten lassen, sind in der nachstehenden Tabelle angegeben.
Tabelle II
Wiederauffindungsmöglichkeiten
Wiederauffindungsmöglichkeiten
Gegeben Zugriffsmethode Feststellung
Benutzer Gruppenmitglied Erstes Mitglied oder Feststellung einer .Leergruppe
Benutzer Gruppenmitglied Erstes Mitglied oder Feststellung, daß ciußerhalb
609853/0755 der GruPPG liegend
Benutzer Gruppenmitglied Letztes Mitglied oder
Feststellung einer Leergruppe
Irgendein Gruppenmitglied Nächstes Mitglied oder
Mitglied Feststellung, daß letztes
Mitglied der Gruppe
Irgendein Gruppenmitglied Vorangegangenes Mitglied
Mitglied . oder Feststellung, daß
erstes Mitglied der Gruppe
Irgendein Gruppenbenutzer Benutzer der Gruppe Mitglied
Es gibt eine Reihe von Basisprozedur-Operationen, welche hinsichtlich
der Gruppen Anwendung finden. Diese sind komplementär zu den Basisprozedur-Operationen für die Datensätze und Felder,
welche besser bekannt sind. Die Sammlung von Basisprozeduren (Hardware/Firmware-Befehle) kann in Operationen hinsichtlich
Felder, Datensätze, Gruppen und Verfahrenslogiksteuerung unterteilt
werden.
Die folgende Gruppe von Hardware/Firmware-Befehlen dient der Manipulation von Daten innerhalb von Feldern. Es sei angenommen,
daß die das Feld beschreibende Information, z.B. die Größe, der Speicherplatz und der Aufzeichnungsmodus, die zur Ausführung
einer Operation benötigt wird, als Teil von der Operation zugeordneten Datendescriptoren gegeben ist. Die in dieser Gruppe
enthaltenen Operationen sind z.B.: verschieben, vergleichen, kontrollieren, addieren, subtrahieren, multiplizieren und
dividieren.
Die folgende Gruppe von Hardware/Firmware-Befehlen führt sowohl zu einem direkten, als auch zu einem seriellen Zugriff
bei der Bearbeitung von Daten. Diese Befehle sind für die Bildung eines Datensatzes, seine nachfolgende Wiederauffindung,
609853/0755
seine Modifikation, seine Überprüfung und seine Aufteilung vorgesehen.
Die Firmware/Hardware-Eefehle hinsichtlich des Datensatzes sind folgende: Bildung des Datensatzes, Zerstörung des
Datensatzes, direktes Auffinden des Datensatzes, serielles Auffinden des Datensatzes und Test des Datensatztypes.
Die folgende Gruppe von Hardware/Firinware-Befehlen führt zu
der Grundlage herkömmlicher Datenverarbeitung und zu der Bildung von Blöcken für wciterentwickelte Datenbank- und Nachrichtenverwaltungssysteme.
Sie dienen der Bildung, dem Zugriff, der Handhabung und der Überprüfung von Gruppen. Die Hardware/
Firmware-Befehle sind folgende: Einfügung eines Datensatzes, Entfernung eines Datensatzes, Auffindung eines relativen Datensatzes
(erster, letzter, nächster, vorangehender usw.), Auffindung eines Benutzer-Datensatzes, Testen: ob Gruppe leer,
Testen: ob Mitglied eingefügt, Auslösen Benutzer-Datensatz und Auslösen Mitglied-Datensatz.
Die folgende Gruppe der Basisregister-Hardware/Firmware-Eefehle
ermöglicht die Feststellung und Modifikation des gerade ablaufenden Prozeßzustandes bezogen auf den Datenbank-Zugriff.
Die Kardware-Befehie sind folgende: Entladen der Basisregister, Nullstellen der Basisregister und die zuvor erwähnten "Auffind11-Befehle,
welche ein Basisregister laden.
Ebensogut wie die Gruppen herangezogen werden können, um Datensätze
in einer Anwendungsdatenbank zu organisieren und den Zugriff zu ihnen zu gestatten, können sie auch in einer
großen Vielfalt von System-Softwarebereichen verwendet werden.
Nachstehend ist eine Liste von Bereichen der Systemsoftware tabellarisch aufgeführt, wobei für jeden Bereich des Gruppenkonzeptes
einige Anwendungsfälle aufgezählt sind. Diese Liste stellt nur ein Beispiel für einige augenscheinliche Anwendungsfälle dar und erhebt nicht den Anspruch auf Vollständigkeit.
609853/0755
1. Datenbanksysteme
a. Indexkonstruktion (sequenzieller Index und v/ahlfreier Index)
b. Datenbeschreibungsstrukturen
c. Gemeinnam benutzte Steuerlisten
d. Prozeßabhängige Strukturen
2. Dateisysteme
a. Katalogkonstruktion
b. Zugriffsrecht-Steuerung
3. Nachrichtensysteme
a. Bildung von Briefkastenindizes
b. Warteschlangennachrichten
c. Zugriff auf Mehrelementnachrichten
4. Programmiersysteme
a. Steuerung von Programmbibliotheken
b. Textausgabe
c. Programmsteuerstruktur
d. Symbolreferenz- und Symboldefinitions-Strukturen
für das Zusammenfassen
e. Zwischenprogrammform für Kompilierung
5. Betriebssysteme
a. Warteschlangen von Jobs
b. Systemmittelzuordnungstabellen
c. Feststellung eines endgültigen Stillstandes
d. Warteschlangen von Prozessen, die auf Ereignisse warten
( Eingang/Ausgang-Vervollständigung, Zeitgeber )
e. Verteiler-Warteschlangen
609853/0755
Die Erfindung arbeitet mit einer Hardware-Anlage, welche
durch ein Hardware/Firmware/Software-Betriebssystem
koordiniert wird. In Figur 1 sind das Prozessor-Subsystem 101, das Speicher-Subsystem 102 und ein oder
mehrere bis zu 32 Peripherie-Subsysteme 103 wiedergegeben. Das Prozessor-Subsystem enthält eine Zentraleinheit
(CPU) 104 und bis zu vier Ein-/Ausgabe-Steuereinheiten (IOC) 105. Jedes periphere Subsystem besteht
aus einer Peripherie-Steuereinheit (PCU) 106, einer Anzahl von Geräteadaptern (DA) 107, und bis zu 256
peripheren Ein-/Ausgabe-Geräten 108. Das Speicher-Subsystem 102 besteht aus einem bis vier Kalbleiter-Speichermodulen
mit je 32 bis 512 Kilobyte Speicherkapazität. Im Prozessor-Subsystem 101 führt die Zentraleinheit
die grundlegenden Verarbeitungsoperationen für das System durch und arbeitet mit dem Speicher 102 zusammen. Die
Ein/Ausgabe-Steuerung 105 steuert den gesamten Informationsaustausch zwischen dem Speicher-Subsystem 102 und
den Peripheriegeräten 106.
6098 5 3/0755
41
f
Die Zentraleinheit umfaßt einen Hauptspeichersynchronisierer 109, einen Pufferspeicher 110 sowie mehrere die Recheneinheit 111 bildende
Elemente und wahlweise Emulatoren 112. Der Hauptspeichersynchronisierer 109 verhindert Schwierigkeiten bei der Benutzung
des Hauptspeichers durch die Recheneinheiten 111, dem Pufferspeicher 110 und die Ein/Ausgabe-Steuerung 109. Die Synchronisierung
erfolgt aufgrund von PrioritätenrDie Ein/Ausgabe-Steuerung
hat die höchste Priorität gefolgt von Schreibvorgängen im Speicher (ausgelöst durch die Recheneinheit) und dann gefolgt von
Leseopercitionen im Speicher (Übergabe in den Pufferspeicher). Die Zentraleinheit enthält ferner das Ädressensteuerwerk (ACU) 131,
welches die Hauptspeicheradressierung steuert, sowie den Assoziativspeicher (AS) 132, welcher zur Speicherung zuletzt im Hauptspeicher benutzter Adressen dient. Der Pufferspeicher 110 ist ein reiner Hochgeschwindigkeits-Pufferspeicher, welcher einen ausgewählten Bereich des Hauptspeichers wiedergibt und mit der Recheneinheit im Austausch steht, um die mittlere Speicherzugriffszeit zu verringern. Bei jedem Lesevorgang im Speicher erfolgt ein Zugriff vom Pufferspeicher und zum Hauptspeicher. Wenn sich die
abzurufende Information bereits im Pufferspeicher befindet, wird der Lesevorgang im Hauptspeicher beendet und die Information aus dem Pufferspeicher abgerufen. Andernfalls wird der Hauptspeicher 102 ausgelesen. Jedesmal wenn dies erfolgt, ruft die Zentraleinheit 104 32 Bytes ab, welche die gewünschte Information enthalten. Diese bleibt für eine zukünftige Speicherbezugnahme im Pufferspeicher. Da dieser für Software durchlässig ist, kann das
den Rechner steuernde Programm zu einer gegebenen. Zeit nicht feststellen, ob die von ihm verarbeitete Information vom Pufferspeicher oder vom Hauptspeicher entnommen wurde.
Leseopercitionen im Speicher (Übergabe in den Pufferspeicher). Die Zentraleinheit enthält ferner das Ädressensteuerwerk (ACU) 131,
welches die Hauptspeicheradressierung steuert, sowie den Assoziativspeicher (AS) 132, welcher zur Speicherung zuletzt im Hauptspeicher benutzter Adressen dient. Der Pufferspeicher 110 ist ein reiner Hochgeschwindigkeits-Pufferspeicher, welcher einen ausgewählten Bereich des Hauptspeichers wiedergibt und mit der Recheneinheit im Austausch steht, um die mittlere Speicherzugriffszeit zu verringern. Bei jedem Lesevorgang im Speicher erfolgt ein Zugriff vom Pufferspeicher und zum Hauptspeicher. Wenn sich die
abzurufende Information bereits im Pufferspeicher befindet, wird der Lesevorgang im Hauptspeicher beendet und die Information aus dem Pufferspeicher abgerufen. Andernfalls wird der Hauptspeicher 102 ausgelesen. Jedesmal wenn dies erfolgt, ruft die Zentraleinheit 104 32 Bytes ab, welche die gewünschte Information enthalten. Diese bleibt für eine zukünftige Speicherbezugnahme im Pufferspeicher. Da dieser für Software durchlässig ist, kann das
den Rechner steuernde Programm zu einer gegebenen. Zeit nicht feststellen, ob die von ihm verarbeitete Information vom Pufferspeicher oder vom Hauptspeicher entnommen wurde.
609853/07
Die Recheneinheit 111 erledigt alle Datenverarbeitung und Adressenerzeugung
innerhalb der Zentraleinheit. Ein typischer Steuerspeicher 130 innerhalb der Recheneinheit 111 (vergleiche das
Buch "Microprogramming: Principles and Practices von Samir S. Huason, Prenticse Hall, Inc.) enthält Firmware, die das System
anlaufen läßt, die Zentraleinheit 104 und die Ein/Ausgabe-Steuerung
105 steuert und eine nicht diirgestel] te Befehlsgruppe
dekodiert. Wahlweise kann der Steuerspeicher wissenschaftliche
Befehle, Testroutinen, Emulationspakete oder Spezialzweckmerkmale liefern, welche die Möglichkeiten des Prozessor-Subsystems erweitern.
Als weitere Option ermöglicht die Zentraleinheit die Emulation von anderen Systemen. Die Emulatoren 112 sind Teile von
Firmware oder Software und in manchen Fällen Hardware.
B. Ein/Ausgabe-Steuereinheit
Die Ein/Ausgabe-Steuereinheit 105 des Prozessor-Siibsystems bildet
den Datenweg zwischen jeglichem peripheren Subsystem 103 und dem Speichersubsystem 102. Dieser Weg ermöglichst die Ingangsetzung·
peripherer Befehle und steuert die sich hieraus ergebende Datenübertragung.
Eine Ein/Ausgabe-Steuereinheit kann üblicherweise bis zu 32 im einzelnen nicht dargestellte Kanalsteuereinheiten bedienen.
In einem Peripherie-Subsystem 103 gemäß Figur l ist die Peripherie-Steuereinheit
(PCU) 106 ein selbständiger Mikroprogramm-Prozessor,
welcher die Belastung der Zentraleinheit 104 dadurch verringert, daß er während der Ein/Ausgabe-Operationen, die. Ein/Ausgabe-Geräte
108 steuert. Die Peripherie-Steuereinheit 106 bewerkstelligt dies durch Ausführung von Befehlen in einem Kanalprogramm. Dieses
Programm resultiert in arithmetischen, logischen, Ubertragungs-, Verschiebe-, und Verzweigungsoperationen, welche in der Peripherie-Steuereinheit
durchgeführt werden. Es gibt verschiedene Arten von Peripherie-Steuereinheiten entsprechend der Art von Geräten, die
gesteuert werden: Zum Beispiel Datensatzeinheit, Massenspeicher (Platte), Magnetband, Informationsübertragung usw.
609853/0755
Der Geräteadaptor 107 liegt zwischen jeder Peripherie-Steuereinheit
und den Geräten, die sie steuert. Jeder Adaptor enthält vorgegebene Firmware und logische Schaltkreise, die zur Durchführung
der Nachrichtenverbindung mit einem bestimmten Gerät erforderlich sind. Abhängig vom Typ steuert ein Geräteadaptor 107 ein
oder mehrere Geräte.
Die Ilauptfunktionen des Peripherie-Subsystems 103 sind folgende:
Ί. Umwandlung von CPU-Befehlen in eine Folge von für die entsprechenden
Peripheriegeräte annehmbaren Komnumdos.
2. Verdichten und expandieren von Daten in die von der Zentraleinheit
oder geeigneten Peripheriegeräten erfoarderliche Form.
3.. Informieren der Zentraleinheit über den Zustand des Subsystems
und der unter seiner Steuerung befindlichen Geräte .
4. Unabhängige Einleitung und Durchführung von Fehler-und
Wiederauffindungs-Prozeduren.
5. Ermöglichung von On-Iine-Diagosen ohne Beeinträchtigung
der Möglichkeit der gemeinsamen Gerätebenutzung duDrch
den zugeordneten Peripherie-Prozessor.
Eine Peripherie-Steuereinheit beseitigt für den Hauptspeicher Schwierigkeiten zwischen den ihm zugeordneten Geräten, jedoch löst ■
die Ein/Ausgabe-Steuerung Schwierigkeiten zwischen den Peripherie-Steuereinheiten
.
Jeder Speichermodul 1-4 ist 4 oder 8 Bytes groß. Die Anzahl der Modulen, ihr Umfang und der Datenverlauf kann sich entsprechend
dem Umfang des Rechners ändern. Die Speichermodule sind vierfach in solcher Weise durchschossen, daß vier Module der Reihe nach
zugängig sind (Modul 1 enthält die ersten 8 Bytes, Modul 2 enthält die zweiten 8 Bytes usw). Das Durchschiessen verringert die
Anzahl von Zugriff r.konflikten zum Hauptspeicher und verringert damit
auch die mittlere Speicher zugr if fs zeit.. Der Speicher kann im Fall von Fehlern umgeordnet werden, d.h. Speicherblöokc innerhalb
eines Moduls können ohne Zerstörung der benachbarten \drcssie]rung
G098B3/0755
entfernt werden. Der Hauptspeicher 102 besteht aus einem kapazitiven
Speichermedium in Form von Metalloxyd-Halbleiterchips (MOS) . Dieses Medium arbeitet nach dem Wiederauffrischungsprinzip zur
Aufrechterhaltung der Information. Jeder Speicherplatz wird typiseherweise
mindestens einmal alle 2 ms wieder aufgefrischt. Die Konstruktion gewährleistet, daß wenig Konflikte zwischen der Wiederauffrischzeitfolge
und dem Speicherzugriff entstehen. Im Falle
eines Konflikts hat die Wiederauffrischung Vorrang.
Ein Bereich am Anfang des Hauptspeichers ist für Hardware und Firmware reserviert. Die obere Grenze dieses Bereichs ist durch
den Inhalt eines Grenzadressenregisters (BAR) bestimmt, welches für die System-Software sichtbar ist. Der Inhalt des Grenzadressenregisters
wird bei der Ingangsetzung des Systems festgelegt. Der Speicherbereich unterhalb der im Grenzadressenregister
festgelegten Adresse kann Ein/Ausgabe-Steuertabellen enthalten, die die Konfiguration des peripheren Subsystems, Firmware
zur Steuerung der Zentraleinheit oder Mikroprogramme und Tabellen zur Emulation festlegen. Der Umfang des Bereichs unterhalb der genannten
Adresse hängt von der Systemkonfiguration ab. Ob Mikroprogramme im Hauptspeicher oder im Steuerspeicher liegen, hängt
ebenfalls vom Systemaufbau und der Anwendung des Systems ab.
2. Grundlegende Maschinenstrukturοn_
In dieser Hardware v/erden typischerweise drei grundlegende Datenstrukturen
verwendet: Datenformate, für Software erkennbare Register und Befehlsformate.
A. Datenformate
Die Information wird zwischen dem Speicher und der Zentraleinheit in Vielfachen von 8 Parallelbits übertragen. Jede 8 Bit-Informationseinheit
wird ein Byte genannt. Paritäts- oder Fehlcrkorrekturdaten werden ebenfalls mit den Daten übertrafen, können
jedoch von der software nicht beeinflußt werden. In ei· nachfolgenden
Beschreibung sdiließt der Ausdruck Daten die sich
609853/07 55
zugehörigen Paritäts- und Fehlerkorrekturdaten aus.
B. Bytes
Die Bits innerhalb eines Bytes werden von links nach rechts mit
O bis 7 numeriert. Die Bytes werden getrennt oder in Gruppen verarbeitet. Zwei Bytes bilden ein Halbwort, vier Bytes ein Wort,
acht Bytes ein Doppelwort und 16 Bytes ein Vierfachwort. Diese
bilden die Grundformate für alle Daten einschließlich der Befehle.
Alle Daten liegen in binärer Form vorj aber können als binär , dezimal
oder alphanumerisch erklärt werden. Datenbits werden in Vierergruppen als binär kodierte Dezimaldaten interpretiert; in
Achtergruppen als alphanumerisch oder 16 bis 64 als Binärziffern.
Die letzteren werden als Vorzeichen behaftet, Fest-, oder Fließzahlen in Binärdarstellung angesehen. Jeder Anzahl auseinanderfolgender
Bits bis zu einem Doppelwort kann auch als Bitfolge (string) verarbeitet werden. Die Gruppe alphnumerischer Zeichen
wird in EBCDIC dargestellt. Als alternativer Auswahlkode dient ASCII.
Die Byte-Speicherstellen im Hauptspeicher sind mit Null beginnend
fortlaufend numeriert. Jede Nummer stellt die Adresse des betreffenden Bytes dar. Eine Gruppe aufeinanderfolgender Bytes ist
Halbwort-, Wort-, Doppelwort- oder Vierfachwort-zugeordnet, falls die Adresse des linken Bytes in einer Gruppe ein Vielfaches von
2, 4, 8 oder 16 ist. Sobald ein Halbwort, Wort, Doppelwort oder
Vierfachwort derart angeordnet ist, kann die Einheit von dieser Adresse abgerufen werden. Der Speicherplatz von Daten im Hauptspeicher
wird durch einen Datendescriptor bestimmt, welcher indirekt während der Adressenentwicklung entsteht.
609853/075
E. Erkcnnbare Register
Es befinden sich 33 für den Benutzer erkennbare Register in der Zentraleinheit 104 gemäß Figur 2a, deren Inhalt zusammen den Zustand
der Zentraleinheit definiert. Es gibt vier Typen:
1. Generalregister
2. Basisregister
3. wissenschaftliche Register (als Option)
4. verschiedene Register
F. Generalregister
Die Goneralregister (GR) 201 in Figur 2b werden für die Bearbeitung
von Fest-Binärzahlen und Bitzeichenfolgcn benutzt. Es gibt
typischer Weise sechzehn 32 Bit Generalregister in der Zentraleinheit 104, welche mit GRO bis GR15 bezeichnet sind. Die Generalregister
GR8 bis GR15 sind auch als Indexregister verwendbai:.
In diesem Fall werden sie später mit XO bis X7 bezeichnet. Das Indizieren erfolgt durch Benutzung des in einem Register enthaltenen
ganzzahligen 32 Bit .Zweier-Komplements.
G. Basisregister
Die Basisaregister (BR) haben dasselbe Format als Befehlszähler
(IC) und als Stapelspeicherregister 202 bis 203. Die Basisregister v/erden während der Adressenberechnung zur Bestimmung eines Teils
des Speichers benutzt. Es sind üblicherweise acht 32 Bit Basisregister mit der Bezeichnung BRO bis BR7.
H. Wissenschaftliche Register (Gleitkomma-Register)
Wissenschciftliche Register (SR) stellen eine als Option wählbare
Ausrüstung für die Berechnung mit Fließ-Binärzahlen dar. üblicherweise
sind vier wissenschaftliche Register vom 8 Byte-Typ vorhanden,
die mit SRO bis SR3 bezeichnet werden. Die wissenschaftlichen Register haben das Format 204 bis 205 in Figur 2b.
609 8 B 3 /07 5-5
Es gibt fünf andere Register, nämlich:
Befehlszählwerk mit dem Format 202 bis 203;
Statusregister mit dem Format 207;
Stapelspeicherregister genannt T-Register; Grenzadressenregister mit dem Format 202 bis 203 und
Hardware-Steuermaskenregister mit dem Format 208.
Das Befehlszählwerk (IC) ist ein 32 Bit-Register, welches die
Adressen der auszuführenden Befehle enthält. Das Statusregister (STR) 207 ist ein 8 Bit-Register, welches die Tatsachen über die
gegenwärtig ablaufende Prozedur aufnimmt, beispielsweise ob durch die jüngste Operation eine Bereichsunterschreitung erfolgt ist.
Bei dem als T-Register bekannten Stapelspeicherregister handelt es sich um ein 32 Bit-Register, welches die Hinweisadressen zur
Spitze eines der gegenwärtig aktiven Prozedur zugeordneten abzubauenden
Speicherstapels enthält. Der Stapelspeicher liefert den Arbeitsraum sowie einen Mechanismus zur Sicherstellung örtlicher
Variablen und zur Bereitstellung von Prozedur-Eingangsstellen und Rückkehrinformation. Das Grenzadressenregister (BAR) 206 ist ein
28 Bit-Register, daß die für die Software zugängige niedrigste absolute Hauptspeicheradresse angibt. Dieses Register" wird während
der Ingangsetzung des Systems geladen und kann von der Software nur einmal gelesen werden. Das Hardware-Steuermaskenregister 208
ist ein 8 Bit-Register, daß die Maschinenzustandsinformation aufnimmt
.
J. Befehlsformate
Es gibt etwa 200 Befehle, obwohl auch mehr oder weniger benutzt werden können. Jeder Befehl hat eine von vier verschiedenen Längen
aber hat immer eine geradzahlige Anzahl von Bytes. Befehle werden in aufeinanderfolgenden Speicherplätzen abgelegt. Die Adresse des
am weitesten links stehenden Bytes ist ein Vielfaches von 2 und bildet die Adresse des Befehls. Die acht ersten Bits (und in
609853/0755
manchen Fällen die Bits 8 bis 11 oder 12 bis 15) eines Befehls stellen den Operationskode dar, während die restlichen Bits einem
oder mehreren Operanden entsprechen. Ein Operand kann ein Registerbezeichner, ein Verschiebungsbezeichner, eine Adressilbe
(logische Adresse), ein Literalwert oder einen unmittelbaren Literalwert darstellen. Typ und Anzahl der Operanden sind durch
das Befehlsformat bestimmt.
3„ Systemorganisation
A. Jobschritt und Task (Aufgabe)
Die vom Rechnersystem auszuführende Arbeit wird extern mit Hilfe der Jobsteuersprache durch eine Reihe von Jobschritten bestimmt.
Ein Jobschritt ist eine Arbeitseinheit, der die Hardware-Systemelemente
zugeordnet werden. Typischerweise besteht ein Jobschritt, aus verschiedenen Tasks. Ein Task ist die kleinste Einheit der vom
Benutzer definierten Arbeit und besteht aus einem Fluß von Informationen, der ohne Parallelbetrieb verarbeitet wird.
B. Der Prozeß
Die für den Benutzer erkennbaren Konzepte von Tasks und Jobschritten
werden in der Hardware durch einen Prozeß bzw. Prozeßgruppen dargestellt. Ein Prozeß ist als eine geordnete Folge von Befehlen
definiert, welche asynchron durch die Zentraleinheit ausgeführt v/erden können, d.h. mehrere Prozesse können aktiv sein und Systemelemente
gleichzeitig benutzen. Jedoch läuft zu jeder Zeit jeweils nur ein Prozeß. Eine Prozeßgruppe ist eine miteinander in Beziehung
stehende Gruppe von Prozessen, welche zur Ausführung eines Jobschrittes erforderlich ist.
C. Prozeßsteucrblock und Systembasis
Da Prozesse die Steuerung durch die Zentraleinheit während ihrer Ausführung an verschiedenen Punkten aufgeben können, wird im
Hauptspeicher ein Speicherbereich für den Prozeß zur Sicherung des Zustande der Zentraleinheit zugängig gemacht. Diese Zustands-
609853/07 5 5
information wird zur Voreinstellung der Zentraleinheit benutzt, bevor ein Prozeß erneut die Steuerung der Zentraleinheit übernimmt.
Diese Speichereinheit wird Prozeßsteuerblock (PCB) 400 (siehe Figur 4) genannt. Die Daten im Prozeßsteuerblock enthalten
die Adressen von dem Prozeß zugeordneten Speicherbereichen(Ädressenraum),
den Inhalt aller zugehöriger Register und den Zustand des Prozesses. Somit dient der Prozeßsteuerblock als zeitweiliger
Speicherbereich für die zum Ingangsetzen oder wieder Ingangsetzen eines Prozesses ohne Informationsverlust erforderlichen Informationen.
Jeder Prozeßsteuerblock ist für die Hardware, erkennbar und kann vom Betriebssystem über eine Gruppe von Hardwaretabellen,
welche während der Systemvorbereitung entwickelt und während den Betriebes modifiziert werden, adressiert werden (Figur 5).
Es gibt einen absoluten Hauptspeicherbereich, der als Systembasis bezeichnet wird (Figuren 5 und 6). Dieser Bereich wird durch
Firmware entwickelt und ist über das Basisadressregister (BAR) erreichbar, aus welchem gelesen aber in das nicht eingeschrieben
werden kann. Die Systembasis 502 enthält eine Anzahl von Systemattributen, welche eine Jobschrittnummer unJeine Prozeßgruppennummer
(J, P) für den laufenden Prozeß umfassen. Ein anderes Attribut in der Systembasis ist eine Hinweisadresse auf eine durch
Hardware definierte Datenstruktur, die als J-Tabelle 503 br-kannt ist. Diese Tabelle enthält eine Eingangsstelle für jeden gegenwärtig
im System befindlichen Jobschritt. Jede Eingangsstelle in der J-Tabelle 503 zeigt auf eine zugehörige P-Tabelle 504 hin,
die ebenfalls eine durch Hardware definierte Datenstruktur darstellt. Diese Tabelle bestimmt eine Prozeßgruppe und enthält eine
Eingangsstelle für jeden Prozeß in der Prozeßgruppe. Jede P-Tabellen-Eingangsstelle
zeigt auf einen Prozeßsteuerblock 400.
In Figur 5 liefert die durch die J-Zahl über den arithmetischen
TeiL5O6 der Rechnereinheit 111 (siehe Figur 1 ) indizierte Ilinweisadresse
Zugriff zu einer J-Tabelleneingangsstelle 503. Diese
wiederum enthält eine P-Tabellenhinweisadresse, die wenn sie
609853/0755
durch die P-Zahl über die Recheneinheit 506 indiziert wird, Zugriff
zu einer P-Tabelleneingangsstelle 504 liefert. Letztere enthält eine Hinweisadresse 507 auf den Prozeßsteuerblock des
ablaufenden Prozesses. Somit hat das Betriebssystem Zugriff zum aktiven Prozeßsteuerblock und benutzt hierzu die Inhalte der
Grenzadressenregister 501 und kann jeden anderen Prozeßsteuerblock erreichen, der durch seinen zugeordneten logischen Namen (JP)
gegeben ist.
D. Speicher-Segmentierung
In einer Multiprozeßanlage befinden sich zu einer gegebenen Zeit viele Prozesse im Speicher. Diese Prozesse haben unterschiedlichen
Umfang und unterschiedliche Anforderungen an den Speicher, wodurch ein SpeicherZuordnungsproblem entsteht. Die Hardware in Zusammenarbeit
mit dem nicht dargestellten Betriebssystem löst dieses Problem durch dynamische Zuordnung von Speicherraum. Infolge der
zufälligen Natur von Speicherraumbedarf wird der Speicherraum in Form von Segmenten unterschiedlicher Größe zugeteilt,, und die
Speicherzuordnung kann während der Laufzeit des Prozesses umorganisiert v/erden. Somit können einem Prozeß eine Anzahl nicht aneinandergrenzender
Speichersegmente zugeteilt werden. Diese Art der SpeicherZuordnung nennt man Segmentierung. Sie stellt ein zusätzliches
Problem insofern dar, als die Speicheradressen modifiziert werden müssen, wenn ein Teil oder der gesamte Prozeß umgespeichert
wird. Um dieses Problem zu erleichtern, sieht das vorliegende System eine Technik vor, bei der die von einem Prozeß benutzten
Adressen logische Adressen statt absoluter Hauptspeicheradressen
sind. Diese logischen Adressen werden zur Entwicklung absoluter Adressen benutzt. Die Segmentierung ermöglicht ferner jedem Prozeß
den Zugriff zu seinen eigenen oder ihm zugeordneten Speichersegmenten über ein System von Segmentdescriptoren. Durch Zugriff
zu einem Scgmentdescriptor kann ein Prozeß die Adresse eines Segments erhalten. Segmentdescriptoren sind im Hauptspeicher untergebracht
und werden vom Betriebssystem unterhalten.
•8098S3/0755
Vh- i
Jeder Prozeß kann Zugriff bis zu 2068 Speichersegmenten haben. Normalerweise würde dies eine gleiche Anzahl von Segmentdescrip-toren
pro Prozeß erfordern. Da jedoch die Segmente gemeinsam benutzt werden können, teilt das Betriebssystem die Segmentdescriptoren
in Segmenttabellen ein. Diese Gruppierung basiert auf der Zugriffsmöglichkeit durch einen Prozeß (Task) r eine Prozeßgruppe
(Jobschritt) oder generell, d.h. für das gesamte System. Jedem Prozeß können bis zu 15 Segmenttabellen zugeordnet sein.
Diese Technik erfordert nur einen Segmentdescriptor für jedes Segment, das für den Prczeß über eine .Segmenttabelle zugang ig ist.
Somit wird der für die Unterbringung der Segmeritdescriptoren erforderliche
Speicherraum verringert. Die Speicherfortschreibung während der Umordnung wird reduziert und man erhält einen gewissen
Programmschutz. Den Hauptrnechanismus für den Programmschutz
bildet das Ringsystem, welches Gegenstand älterer Anmeldungen ist.
Ein Prozeß muß bestimmen können, zu welchen Segmenten er Zugriff hat. Folglich versieht das System den Prozeß mit zwei Segmenttabellen-Wortanordnungen
(STWA). Diese Anordnungen enthalten die. Adressen allein Segmenttabellen, die dem Prozeß zugängig sind« Es
sind zwei Segmenttabellen-Wortanordnungen pro Prozeß vorhanden, weil Segmentgrößen gegeben sind, nämlich groß und klein. Große
22 Segmente haben einen Maximalumfang von 2 Bytes, während kleine
1 C
Segmente einen Maximalumfang von 2 Bytes aufweisen. Der Unterschied
in Segmentumfang erfolgt in Schritten von 16 Bytes bis zum Maximalumfang. Ein System kann Im typischen Fall bis zu 28 große
Segmente und 2040 kleine Segmente aufweisen. Die Segmenttabellen-Wortanordnungen
können vom Betriebssystem umgeschichtet werden. Deshalb muß ein Prozeß die absolute Adresse der ihm zugeordneten
Segmenttabellen-Wortanordnungen kennen. Der Prozeßsteuerblock für einen Prozeß enthält zwei Worte, die diese Information enthalten
und als Adressrauir.worte ASWO-1 bekannt sind (Figur 4) .
Jedes Wort zeigt auf eine Segmenttabellen-Wortanordnung STViA hin.
Das Betriebssystem schreibt den Inhalt der Adressraumworte fort, sobald die zugehörigen Segmenttabcllen-Wortanordnungen umgcschich-
609863/0765
tet werden. Das Herabarbeiten längs einer Kette von. Hinweisadressen
und das Dekodieren des Segmentdcscriptors ist eine Firmware-Funktion und ist, wenn sie einmal eingeleitet ist,
nicht einmal für das Betriebssystem erkennbar.
Die Segmentierung definiert über 200 Millionen Bytes and Adressreium
als für den Prozeß zugängig. Diese Menge überschreitet die Kapazität des Hauptspeichers. Deshalb wird in Verbindung mit dem
Hauptspeicher ein Sekundärspeicher (Magnetplatten oder Trommel) eingesetzt. Das Betriebssystem earzeugt den Anschein, daß das
System eine viel größeren Hauptspeicher hat als er tatsächlich zur Verfügung steht. Dieses Konzept nennt man virtuellen Speicher.
Zu jeder gegebenen Zeit kann sich ein definiertes Segment physikalisch
im Hauptspeicher befinden oder nicht. Der Inhalt eines Segmontdescriptors zeigt an, ob das zugehörige Segment im Hauptspeicher
liegt oder nicht. Die Hardware stellt jeden Versuch eines Prozesses fest, Zugriff zu einem Segment zu erhalten, was
nicht im Hauptspeicher liegt, und informiert das Betriebssystem. Dieses läßt das gewünschte Segment aus dem Sekundärspeicher in
den Hauptspeicher umladen. Sodann fügt das Betriebssystem die Speicheradresse des Segments in den Segmentdescriptor ein, der
den einzigen Platz darstellt, wo die absolute Adresse eines Segments gefunden werden kann. Diese Operation ist für den Prozeß
nicht erkennbar und somit ist ihm nicht bewußt, daß das Segment nicht im Hauptspeicher war bzw. in den Hauptspeicher umgeladen
werden mußte.
Das bisher beschriebene Rechnersystem ergibt Daten und Prozedurschutz
dadurch, daß Prozesse daran gehindert werden, sich gegenseitig zu stören oder in unerlaubter Weise den jeweils zugeordneten
7idrcü"scnraum gemeinsam zu nutzen. Dieser Schutz wird durch
eine Beschränkung der Adressierbarkeit mit Hilfe der erwähnten Speicherycgmentierung und durch ein Ringsystem erreicht. Die Segmenttabellon
isolieren den Adressenraum der vcrschiedenenProzcssc
im System, Die Prozesse benutzen während der Ausübung immer oino
609853/0755
30
segmentierte Adresse. Diese besteht aus einer Segmentnummer und
einer relativen Adresse innerhalb des Segments. Die Hardware überprüft,daß
die vom Prozeß benutzte Adresse Teil des dem Prozeß zugeordneten Adressraum ist. Liegt die Adresse außerhalb des genannten
Adressraums, so erscheint ein Ausnähmesignal Ein Piceeß
kann sich nicht auf Daten innerhalb des Adressraums eines anderen Prozesses stützen, weil die Hardware die Segmenttabellen des bezugnehmenden
Prozesses verwendet. Somit ist keine Möglichkeit für einen Prozeß oder eine Prozeßgruppe gegeben, ein Systemelement zu
verwenden, welches zu einer anderen Prozeßgruppe gehört.
Iis allgemeinen ist eine Überlappung von Adressraum im System für
diejenigen Segmente gegeben, welche von allen Prozessen gemeinsam benutzt werden. Diese gewissermaßen öffentlichen Segmente werden
von Systemprogrammen erzeugt, welche überprüfen und eine Sicherung gegen Adressenkonflikte darstellen. Somit schützt die Segmentierung
die Benutzerprogramine gegeneinander und schützt das
Betriebssystem gegen die Benutzerprogramme. Segmente, welche von mehreren Prozessen gemeinsam benutzt v/erden, sind nicht geschützt
gegen den Mißbrauch durch einen dieser Prozesse. Um dieses Problem zu lösen, wird ein Ringsystem verwendet, wobei Prozedur- und Datensegmente in vier Klassen oder Zonen eingruppiert sind. Die vier
Ringzonen sind mit O bis 3 bezeichnet. Jeder Ring stellt einen bestimmten
Grad von Systemprivileg dar, wobei die Zone O, d.h. der
innerste Ring,das höchste Privileg und die Zone 3, der äußerste Ring, das geringste Privileg aufweist. Jeder Prozedur im System
ist eine minimale und eine maximale Ringnummer zur Ausübung zuc:zuordnet,
welche festlegt, wer die Prozedur aufrufen darf. Eine Prozedur ist eine Subroutine, die in der Lage ist, andere Prozeduren
aufzurufen und ihnen Parameter zu überstellen. Die allgemeinen Regeln des Ringschutzsystems sind folgende:
1. Eine Prozedur in einen inneren Ring hat freien Zugang zu
Daten in einem äußeren Ring. Umgekehrt kann eine Prozedur
in einem äußeren Ring Daten in einem inneren Ring nicht erreichen.
609853/0755
Vf
2. Eine Prozedur in einem äußeren Ring kann in eine Prozedur in einem inneren Ring verzweigen; das umgekehrte ist jedoch
nicht erlaubt.
3. Jedem Segment mit Daten sind zwei .Ringwerte zugeordnet,
einer für Lesen (RD) und einer für Schreiben (WR). Diese · Ringwerte bestimmen den maximalen Ringwert, in dem die
Prozedur ausgeführt werden, kann, wenn sie Daten entweder im Lese- oder im Schreibmodus erreicht.
Jedesmal wenn ein Prozedurbefehl ausgeführt wird, wird die Ringnummer
der Prozedur (effektive Ädressringnummer EAR) mit der, dem Segment mit den angewählten Daten zugeordneten Ringnummern verglichen.
Die effektive Adressringnummer stellt die Maximalzahl der Prozessringnummern im Befehlszähler und alle Ringnummern in den
Basisregistern und Datendescriptoren im Adressierweg dar. Abhängig ·
vom Ergebnis des Vergleichs der Ringnummern wird entweder Zugriff zu den Daten gestattet oder verweigert. Wenn beispielsweise
eine Systemtabelle existiert in einem Segment mit eines: maximalen Schreibringnummer 3 und einer maximalen Leseringnummer 1 ,
so kann die Benutzerprozedur im Ring 3 die Tabelle lesen, kann sie
aber nicht fortschreiben. Gemäß Vereinbarung sind die Ringe O und 1 dem Betriebssystem vorbehalten, während die Ringe 2 und 3 für
den Benutzer .rfcserviert sind. Der Ring O enthält jene Segmente,
die für den gesamten Systembetrieb kritisch sind. Ring 1 enthält die Menge der Systemsegmente, deren Fehler nicht zu einer unwiderruflichen
Störung führen, sondern bereinigt v/erden könnte. Der Benutzer kann den Ring 2 für durchgeprüfte Programme und den
Ring 3 für im Test befindliche Programme verwenden.
F. Prozedur-Aufrufe
Der Prozeduraufruf ist eine wichtige Funktion im System. Er wird dazu benutzt, Aufrufe von einer Prozedur zu einer anderen zu leiten,
Benutzerprozeduren, Betriebssystemdienste in Anspruch zu nehmen und um eine Modularstruktur innerhalb des Betriebssystems
zu ermöglich. Ein Prozeduraufruf wird durch Befehle bewirkt sowie durch ein ■ als Hardware angesehenes Systemelement,genannt
Stapelspeicher (Figur 7Λ). Ein Stapelspeicher ist ein Mechanismus,
•6098S3/07B5
-. «ΤΑ
welcher Daten aufnimmt, speichert und zurückliefert nach dem Prinzip, daß die zuletzt eingegebene Information zuerst ausgegeben
wird. Stapelspeicher setzen sich aus besonderen Segmenten, genannt Stapelspeichersegmenten, zusammen. Ein solches besteht
aus einer Anzahl aufeinanderfolgender Teile, genannt Stapelspeicherrahmen 701 (Figuren 7A und 7B), welche jeder Prozedur
dynamisch zugeordnet werden. Der erste Stapelspeicherrahmen wird in den oberen Teil eines Segments gelade^und die nachfolgenden
Stapelspeicherrahmen werden anschließend geladen. Der letzte geladene Stapelspeicherrahmen wird als Spitze des Stapelspeichers
angesehen. Das T-Register 702 stellt die Spitze des Stapelspeichers
für den laufend aktiven Prozeß fest. Ein virtuelles T.Register besteht im Prozeßsteuerblock aller Prozesse im System.
Ein Stapelspeicherrahmen 701 in Figur 7B besteht aus drei Bereichen: Einem Arbeitsbereich 702, in dem die Variablen gespeichert
werden, einem Sicherheitsbereich 703, welcher die Inhalte der Register sicherstellt,und einemjKommunikationsbereich 704, in den
Parameter zwischen den Prozeduren eingegeben werden. Vor eine»1, Prozeduraufruf
muß der Benutzer jene Register angeben, welche er sicherzustellen wünschtjund er muß in den Komiiiunikationsbereich
diejenigen Parameter eingeben, welche der aufgerufenen Prozedur zugeführt werden sollen. Wenn der Aufruf erfolgt, so sichert die
Hardware die Inhalte der Befehlszähler IC und bestimmter Basisregister, um eine Rückkehr aus der aufgerufenen Prozedur zu erleichtern.
Jeder Prozeduraufruf erzeugt innerhalb eines Stape.lspeichersegments
701 einen Stapelspeicherrahmen, .und nachfolgend eingehende Aufrufe erzeugen zusätzliche Stäpelspeicherrahmen. Jeder
Austritt aus einer dieser aufgerufenen Prozeduren führt zur Löschung eines Stapelspeicherrahmens aus dem Stapelspeicher. Somit
wird .ein zeitlicher Ablauf der Aufrufe beibehalten, der ordnungsgemäße
Rücksprünge erleichtert. Um einen Schutz zwischen in verschiedenen Ringen ablaufenden Prozeduren sicherzustellen, werden
unterschiedliche Stapelspeichersegmente benutzt. Es gibt in jedem Prozeß jeweils ein Stapelspeichersegment für jeden Schutzring.
Ein Prozcßsteuerblock enthält drei Stapelspeicherbasisworte,
6098S3/0755
welche auf den Anfang des Stapelspeichersegments für die Ringe O,
1 und 2 hinweisen,die dem Prozeß zugeordnet sind. Das Stapelspeichersegment
für den Ring 3 kann durch einen Einwärtsruf nicht erreicht werden. Folglich wird seine Stapelspeicherstartadresse
im Prozeßsteuerblock nicht benötigt.
4. Prozeßmanagement und Synchronisierung
Das System ermöglicht Multiprozeß-Operationen, welche von einem Betriebssystem gesteuert werden, das eine Konabination von Software,
Hardware und Firmware benutzt. Die Software erzeugt und löscht Prozesse innerhalb des Systems, während Hardware und Firmware die
Multiplexverarbeitung in der Zentraleinheit durchführen. Außerdem sorgt eine Kombination von Software, Hardware und Firmware für
die Synchronisation zwischen den Prozessen. Prozesse werden normalerweise jedoch nicht immer zu Beginn und Ende von Ein/Ausgabe-Operationen
inganggesetzt und angehalten, ferner während der Verarbeitung eines zugehörigen Jobs und zu anderen Zeitpunkten zu
Zwecken, welche das Betriebssystem für notwendig hält. Deshalb ist ein Kommunikationssystem erforderlich, um miteinander in Beziehung
stehende Prozesse wirksam zu starten und anzuhalten und die Information zwischen Ihnen zu vermitteln. Das Hardwaresystem
liefert interne Nachrichten, genannt Semaphoren, um eine Kommunikationsverbindung
zwischen den Prozessen herzustellen.
Ein Prozess kann sich zu einer gegebenen Zeit jeweils in einem von vier möglichen Zuständen befinden, nämlich laufend, vorbereitet,
wartend oder ausgesetzt. Die Hardware nimmt diese vier möglichen Prozeßzustände zur Kenntnis und führt verschiedene Firmware-Prozeduren
durch, um den Prozeß zuzuteilen, den Zustand zu ändern und die auf dem Prozeßzustand beruhenden Datenstrukturen beizubehalten.
Der Prozeßsteuerblock enthält ein Statusfold, welches den
gegenwärtigen Zustand des zugehörigen Prozesses definiert. Ein
6098B3/0755
Prozeß befindet sich im ablaufenden Zustand, wenn er Steuerbefugnis
über die Zentraleinheit hat. Dieser Zustand schließt die Versorgung der Zentraleinheit mit Adressenraum (Segmenttabellen) und
einer Startadresse ein. Die Zentraleinheit führt dann die Befehle in den Prozedursegmenten des Prozesses aus. Das J-Tabellenwort
des Rirozeßnamens (logische Adresse) des Prozeßsteuerblocks für
den laufenden Prozeß wird im laufenden Prozeßwort (BAR + 60) innerhalb der Systembasis aufbewahrt (Figur 6). Die in Figur 5 gszeigte
Systembasis ist fast die gleiche wie in Figur 6, nur sind einige Einzelheiten xveggelassen. Der Vorbereitungszustand entspricht im
wesentlichen dem Ablaufzustand„ mit der Ausnahme, daß der Prozeß
keinen Steuergriff zur Zentraleinheit hat, weil diese den prozeß noch nicht wahrgenommen hat. Ein im "Bereitschaftszushand befindlicher
Prozeß erstrebt wie andere vorbereitete Prozesse, und der gerade ablaufende Prozeß in Konkurrenz Steuerzugriff zur Zentraleinheit.
Ein Prozeß im Wartezustand kann nicht fortfahren, bis ein bestimmtes
Ereignis auftritt, beispielsweise eine Nachricht über ein Semaphor eingeht. Ein wartender Prozeß befindet sich nicht in Zugriff
skonkurrenz zur Zentraleinheit aber er kann hinsichtlich des erwarteten Ereignisses in Konkurrenz mit anderen wartenden Prozessen
stehen.
Ein ausgesetzter Prozeß ist für eine durch die Software bestimmte Zeitspanne unterbrochen und wird später wieder aufgenommen. Die
Entscheidung, den Prozeß anzuhalten und später wieder weiterlaufen zu lassen, liegt außerhalb des Prozesses. Somit ist ein ausgesetzter
Prozeß nicht aktiv und kann keine Informationen über Ereignisauftritte empfangen und kann die Zentraleinheit nicht benutzen.
Ein Prozeß wird unter den folgenden Bedingungen ausgesetzt:
1. In Ausführung eines Beendigungsbefehls, weil alle seine Funktionen erfüllt sind;
2. Als Folge eines Aussetzbefehls vom Betriebssystem und
3. Beim Auftreten eines Ausnahmezustands, wobei die Steuerung
auf das Betriebssystem übertragen wird.
609853/0755
. SS" ■
Ein Prozeß geht während des Ablaufs aufgrund seiner Aktionen freiwillig
von einem auf einen anderen Zustand über oder unfreiwillig aufgrund von Aktionen anderer Prozesse. Die als Zuteiler bekannte
Zentraleinheit-Firmware steuert den übergang des Prozesses zwischen
seinen Zuständen. Der Zuteiler benutzt eine Gruppe von Warteschlangen, um die Prozesse, die sich im Vorbereitungsr oder Wartezustand
befinden, zu verteilen. Ausgesetzte Prozesse werden durch die Software gesteuert.
Unter Bezugnahme auf die Figuren 6, 8 und 9 ist zu bemerken, daß ein vorbereiteter oder wartender Prozeß durch einen Prozeßsteuerblock
und eine besondere Warteschlangen-Eingangsstelle dargestellt wird, genannt Prozeßverbindung. Ficjur 9 zeigt eine auseinandergezogene
Darstellung der Inhalte des GO-Segments 802 und enthält die Prozeßverbindungen 8O3a-8O3b sowie 8O3c-8O3g des aktiven Prozesses
sowie die freien Prozeßverbindungen 8O5a-8O5c ausgesetzter
Prozesse. Jede Prozeßverbindung gibt den Prozeß (J, P), die Prozeßpriorität und eine Hinweisadresse auf die nächste Prozeßverbindung
in der Warteschlange an. Es gibt verschiedene Arten von Warteschlangen, beispielsweise die im Wartezustand befindliche
Warteschlange 803-b und die im vorbereiteten Zustand befindliche
Warteschlange 8O3c-g. Eine Hardwareeinheit ähnlich der J-Tabelle
und unter der Bezeichnung G-Tabelle bekannt (Figuren 6 und 8]f enthält
die Hinweisadressen auf alle allgemeinen, d.h. systemweiten Segmente 8O2-8O2n. Das erste Element GO der G-Tabelle 801 weist,
auf das die Zuteiler-Warteschlange enthaltende Segment 802 hin. Eine G-Tabellenhinweisadresse zur G-Tabelle 801 findet sich in
der Systembasis 502 in Figur 5. Auch die Systembasis weist eine Eingangsstelle auf, welche das interne Prozeß-Warteschlangenwort
(IPQW) genannt wird und den Kopf 805 einer im vorbereiteten Zustand befindlichen Warteschlange 8O3c-8O3g im G0-Segment 802
identifiziert. Somit kann der Zuteiler alle vorbereiteten Prozesse überprüfen, indem er die vorbereitete Warteschlange 803c-803g
abfragt. Wenn der gegenwärtig ablaufende Prozeß seinen
609853/0755
Zustand ändert, so entfernt der Zuteiler die Prozeßverbindung am Kopf der vorbereiteten Warteschlange und benutzt den J, P-Namen
für den Zugriff des Prozeßsteuerblocks. Der durch diesen definierte Prozeß wird dann der als nächster ablaufende Prozeß.
Da mehr als ein Prozeß auf das gleiche Ereignis warten kann, besteht
für jedes Ereignis eine Warteschlange wartender Prozesse 8O3a-8O3b. Die wartenden Prozesse sind ferner über im GO Segment
liegende Prozeßverbindungen 805 miteinander verkettet. Eine Hinweisadresse
zum Kopf einer wartenden Warteschlange ist in einem Semaphor 903 vorhanden. Es gibt eine Anzahl von Ereignissen, auf
die ein Prozeß warten kann. Deswegen ist eine Anzahl von im Wartezustand befindlicher Warteschlangen vorhanden, von denen jeder ein
Semaphor 903, 904 zugeordnet ist.
Die Anzahl der vorbereiteten oder wartenden Prozesse ändert sich dynamisch. Somit ändert sich auch die Anzahl der für die vorbereiteten
und wartenden Warteschlangen erforderlichen- Prozeßverbindungen.
Diese Tatsache stellt für den Zuteiler ein Speichermanagementproblem
dar. Dieses Problem wird durch eine andere Warteschlange-, gelöst, welche als Warteschlange 8O5a-c für eine freie
Prozeßverbindung bezeichnet wird. Diese Warteschlange verkettet alle Prozeßverbindungen im Segment GO, die nicht durch die vorbereiteten
oder wartenden Warteschlangen benutzt werden und kann als Erweiterung einer bestimmten Warteschlange vorbereiteter oder wartender
Prozesse Verwendung finden. Eine Hinweisadresse 901 zum Kopf 902 der Warteschlange 805 für freie Prozeßverbindungen befindet
sich neben dem Anfang des GO Segments 802.
Eine Prozessynchronisierung ist erforderlich, um die Aktivitäten
zweiter an derselben Aufgabe (Task) arbeitender Prozesse zu koordinieren. Sie wir durch den Einsatz der Semaphoren 903-904 erreicht,
welche Datenstrukturen darstellen, die im Adressenraum
6098S3/0755
des Kommunikationsprozesses liegen. Ein Semaphor wird zur Signalisierung
eines Ereignisauftrittes und zur Verarbeitung von Nachrichten-Warteschlangen benutzt. Ein Ereignis in diesem Sinn ist
jede von einem Prozeß beobachtete Erscheinung, die für einen anderen Prozeß von Interesse sein kann. Das Ereignis kann beispielsweise
im Abschluß einer asynchronen Operation oder in der Zugängikeit eines Systemmittels liegen. Ein Prozeß benutzt zwei
Semaphoroperationen, um einen Ereignisauftritt zu signalisieren. Die eine Operation sendet ein Signal zu einen Semaphor, die andere
nimmt das Signal von einem Semaphor auf. Die Sendeoperation wird oft V-Operation genannt, die Empfangsoperation heißt P-Operation.
Die Sendeoperation erlaubt es, einem Prozeß Daten oder ein Signal auszusenden, daß Daten vorbereitet sind. Das Semaphor
speichert das Signalf bis ein anderer Prozeß für die Aufnahme
der Daten vorbereitet ist. Somit ist der abgebende Prozeß frei, weiterzuarbeiten, weil er die Daten abgegeben hat. Die
Empfangsoperation prüft ein bestimmtes Semaphor und nimmt das Signal auf. Ist ein Signal vorhanden, so läuft der empfangende
Prozeß weiter. Ist jedoch kein Signal am Semaphor, sp geht der
empfangende Prozeß in den Wartezustand über. Das Semaphor dient dann als Hinweisadresse zum Kopf einer Warteschlange. Der Prozeß
bleibt in dem durch die Warteschlange am Semaphor bestimmten Wartezustand, bis ein anderer Prozeß ein Signal dem betreffenden
Semaphor zusendet. Somit kann ein Semaphor ein Signal solange festhalten, bis ein Prozeß dieses Signal aufnimmt oder ein Semaphor
kann einen Prozeß anhalten, bis ein Signal ihm zugesandt wird.
Auch Nachrichten können von Prozeß zu Prozeß weitergeleitet werden.
Eine Nachricht weist die gleiche Anwesenheits- oder Abwesenheitseigenschaft wie ein Signal und zusätzlich hierzu Information
auf. Teil der Information wird von der Hardware geliefert und ein Teil durch die Prozedur des Prozesses, welcher die Nachricht aussendet.
Eine Nachricht enthält den Prozeßnamon des aussendenden
Prozesses. Somit können viele Prozesse Informationen durch ein
609853/07 5 5
einziges Semaphor senden, versehen mit dem Namen des Absenders.
Ein Nachrichten-Semaphor kann eine Warteschlange von Nachrichten aufweisen, die darauf warten, von einem Prozeß aufgegriffen zu
werden. Wie bei Signal-Semaphorcn ergeben sich ändernde Anforderungen
an Speicherraum, wodurch ein Speichermanagementproblem entstehen kann. Auch hier wird das Problem durch eine Warteschlange
freier Nachrichtenverbindungen gelöst. Diese Verbindungen befinden sich an einem bekannten Platz in einem Segment,,
welches leicht zu finden ist, wenn Nachrichtenverbindungen aufgenommen
oder geliefert werden sollen. Da Semaphoren und die auf ihnen aufgebauten Warteschlangen von verschiedenen Prozessen gemeinsam
benutzt werden, ist die gesamte Semaphorstruktur geschützt.
Man erreicht dies durch Hardware und Software-Konventionen,,
v/elche den Zugriff zu jedem ein Semaphor enthaltenden
Segments beschränken. Somit müssen Semaphor«? in Semaphor-Descriptorsegmenten
liegen, von denen manche G-Segmente sein können, sofern Systemkommunikation notwendig ist. Jedoch sind alle G-Segmente
mit Ausnahme des Segments GO Semaphor-Descriptorsegmehte. Jeder Semaphordescriptor enthält eine Hinweisadresse auf
ein Semaphor. Semaphoradressen werden mit Hilfe eines Semaphordescriptors
entwickelt, wodurch ein zusätzlicher Schutz für das Semaphor gegeben ist. Ein Semaphorsegment kann logisch unter Benutzung
einer Segmentnummer und einer relativen Lage innerhalb des Segments oder direkt durch Benutzung der G, D-Nummer adressiert
werden.
E. Prozeßsteuerblock-Strukturen
Figur 4 zeigt das Format des Prozeßsteuerblocks (PCB) 400. Dieser
ist ein Speicherbereich im Hauptspeicher, welcher einem Prozeß zugängig gemacht wird, um den Zustand der Zentraleinheit abzusichern.
Die Adressierung des Prozeßsteuerblocks wurde oben bereits in Verbindung mit Figur 5 erläutert. Die Prozeßsteuerblock-Hinweisadresse
507 v/eist auf den Prosoßsteuerblock PCB im
609853/0755
f ·
Spsicherplatz O in Figur 4 hin. Beim Fortschreiten in Richtung
abwärts vergrößern sich die Speicherplätze, um jeweils 4 Bytes, während sie vom Speicherplatz O an aufwärts um 8 Bytes größer
werden. Die unterhalb von Speicherplatz O liegenden Speicherplätze
werden als positiv und die oberhalb liegenden als negativ gerichtet angesehen. Die aufwärts gerichteten Speicherplätze
sind wahlweise vorgesehen und können in den Prozeßsteuerblock einbezogen werden oder nicht. Auch die Speicherplätze 148 bis
176 sind eine Option. Die Zahlen unter den Speicherplätzen geben die Verschiebung in Bytes gegenüber dem Bezugsspeicherplatz O
des Prozeßsteuerblocks an und sollten nicht mit den sonst üblichen Bezugszeichen verwechselt werden. Beginnend beim Byte O
aufwärts bis aber ohne Einschluß von Byte 16 sind vier Prozeß-Hauptworte PMW O bis PMW 3 gespeichert, wobei jedes Prozeß-Hauptwort
4 Bytes lang·ist. Das Prozeßhauptwort O besetzt die
Bytes O bis 3 und besteht aus vier Teilen: Einem Fähigkeitsbyte, einem Prioritätsbyte, einem Zustandsbyte und einem Decorerweiterungsbyte
DEXT. In den Figuren 10a bis 1Od sind Einzelheiten des Prozeßhauptwortes PMW 0 dargestellt, wobei sich weitere
Einzelheiten des Fähigkeitsbytes 1001 aus Figur 10b ergeben. Dort stellt das erste Bit 1005 das Berechnungsmodus-Bit
dar, welches anzeigt, ob Zeitberechnungsfunktionen für den Prozeß durchgeführt werden oder nicht. Ist dieses Bit auf 11O" gesetzt,
so erfolgt für den Prozeß keine Zeitberechnungsfunktion,
während eine solche stattfindet, wenn das Zeitberechnungs-Bit 1005 auf "1" steht. Das Bit 1006 für den wissenschaftlichen Modus
wird auf 0 gesetzt, wenn eine Sicherstellung des wissenschaftlichen Registers der Anlage nicht vorgesehen ist und ein Sicherheitsbereich
für das wissenschaftliche Register bei den Bytes 148 bis 176 in Figur 7 im Prozeßsteuerblock PCB nicht vorhanden
ist. Steht das Bit 1006 für den wissenschaftlichen Modus auf "1", so ist die wissenschaftliche Option vorhanden und wird im Prozeß
benutzt. Der Sicherheitsbereich der wissenschaftlichen Register
wird, sofern nötig, zur Sicherstellung der Inhalte der wissenschaftlichen Register ausgenutzt. Das Bit 1007 für den
-Code-Modus zeigt an, ob eine Standard Code-Gruppe oder eine
Kompatibilitätscode-Gruppe vom Prozeß benutzt wird, wobei "0"
609B53/Q755
bedeutet, daß eine Standardcodegruppe benutzt wird, während "1"
in der dritten Bitstelle 1007 anzeigt, daß eine Kombatiteilltätscode-Gruppe
Verwendung findet. Die üblichen Bits des Fähigkeitsbytes werden auf Null gesetzt.
Einzelheiten des Prioritätsbytes 1002 ergeben sich aus Figur 10c. Die ersten vier Bits 1008 werden zum Einstellen des Prioritätsgrades deo Prozesses verwendet, der dem gegebenen Prozeßsteuerblock
PCB zugeordnet ist. Jedem Prozeß ist einer von 16 Prioritätsgraden
zugeordnet und wird dazu benutzt, miteinander in Konkurrenz stehende Prozesse zu ordnen, d.h. (a) zur Auswahl desjenigen
der vorbereiteten Prozesse der zur Durchführung kommt, (b) für die Einordnung der Prozesse in Warteschlangen. Die Prioritäten
nehmen von 0 bis 15 ab und für einen gegebenen Prioritätsgrad
wird die FIFO Regel angewandt, d.h. der zuerst angekommene
Prozeß wird als erster ausgegeben. Die nächsten vier Bits 1009 des Prioritätsbytes 1002 sind Nullen.
In Figur 1Od sind Einzelheiten des Zustandsbytes 1003 wiedergegeben.
Es liefert Information in Bezu.g auf den mit dem Prozeßsteuerblock PCB 400 verbundenen Prozeß. Ist der Prozeß aktiviert r
so wird das Aktivfeld-Bit A 1010 auf "1" gesetzt. Das Aussetzungsfeld S 1011 wird "1", wenn der Prozeß ausgesetzt ist. Das Unterzustandsfeld
SS 1012 ist ein 2-Bitfeld und bestimmt die folgenden
Unterzustände des Prozesses: (a) im Fall binär 00 ist der Prozeß inaktiv;· (b) im Fall binär 01 v/artet der Prozeß in der Warteschlange
der vorbereiteten Prozesse (Q/PR/RDY); (c) im Fall 10 wartet der Prozeß auf ein Sernaphor in einer Scmaphor-Warteschlange
(Q/PR/S)j (d) im Fall binär 11 wird der Prozeß vom Prozessor ausgeführt.
Das Mitte-Operationsfeld (MOI) 1013 wird auf "1", wenn mitten in der Operation eine Unterbrechung auftritt und wird
während 'der Durchführung eines Befehls berücksichtigt, d.h. vor Abschluß des Prozesses. Das Dekorerweiterungsmodus-Bit EXTD 1014
steht auf "1", wenn der Prozeß in einem erweiterten Dekormodus arbeitet, d.h. in einem Emulationsmodus der Anlage. Die Bits 1015
609853/0755
und 1016 stehen auf "0". Das vierte Byte des Prozeß-Hauptwortes PMW-.0 enthält die Dekorerweiterungsnummer und wird benutzt, wenn
das System im Emulationsmodus arbeitet.
Das Prozeß-Hauptwort PMW 1 wird in den Bytes 4-7 des Prozeßsteuerblocks
PCB gespeichert. Einzelheiten ergeben sich aus Figur 1Oe. Das Zustandbyte 1016 ist das erste Byte im PMW 1
und speichert die Inhalte des Statusregisters. Das Multiprozessor-Byte
MP 1018 ist wichtig für einen Multiprozessoraufbau, sonst ist dieses Feld "0". Das zweite und das vierte Byte im Prozeß- .
Hauptwort PMW 1 sind die MBZ Felder 1017 und 1019, welche bei Norrnalbetrieb Null sein müssen (must be zero) .
Das Prozeß-Hauptwort PMW 2 belegt die Bytes 8 bis 11 des Prozeß-Steuerblocks
und ergibt sich im einzelnen aus Figur 1Of. Das Feld von Bit 4 bis Bit 31 enthält den internen Namen SEG, SRA 1021
des Semaphore, mit dem der Prozeß-Steuerblock verbunden ist, wenn sich der Prozeß entweder im Warte- oder im ausgesetzten Zustand
befindet. Das Feld 1023 für Ausnahmeklasse und Typ enthält Klasse und Typ der ünterbrechungsgleichen Ausnahme, die
nach einem Ausnahmesignal den Prozeß in den ausgesetzten Zustand übergehen läßt. Das Feld 1022 von Bit 4 bis Bit 15 ist bedeutungslos,
wenn sich der Prozeß in einem anderen Zustand als den oben erwähnten befindet.
Das Prozeß-Hauptwort PMW 3 belegt die Bytes 12 bis 15 im Prozeß-Steucrblock
400 und weist auf eine Dekorerweiterungstcibelle hin. Figur 10g zeigt Einzelheiten, wobeiv das Feld 1024, genannt DETSZ
die Anzahl der Eingangsstellen in die Tabelle definiert und im Fall, daß dieses Feld gleich Null ist , dem Prozeß keine Dekorerweiterung
gestattet ist. Das DETA Feld 1025 gibt die absolute Adresse der Dekorerwciterungstabelle in Einheiten von 16 Bytes
an und ist nur dann wichtig, wenn das Feld DETSZ nicht gleich 0 ist. Die Dekorcrweiterungstabolle besteht aus DETSZ-Eingangssteilen,
von denen jede ein Byte lang ist. Der DEXT-Eingang
609853/0755
der Tabelle bestimmt die Fähigkeit des Prozesses im Dekorerweiterungsmodus
DEXT zu arbeiten. Wenn dieses Byte gleich O ist, so ist der Dekorerweiterungsmodus nicht zulässig. Ist hingegen
das DEXT-Byte gleich "1"/ so ist die Dekorerweiterungsnummer
DEXT zulässig. Andere Werte als O und 1 sind für die Dekorerweiterungs-Tabellennummer
1004 unzulässig.
Die Bytes 16 bis 23 des Prozeß-Steuerblocks 400 enthalten zwei Adressraumworte ASW 0 und ASW 1, von denen jedes eine Hinweisadresse
auf eine Anordnung von Segmenttabellenworten aufweist. Beide ASW 0 und ASW 1 haben das gleiche Format gemäß Figur 10h.
Der Umfang der Anordnung von Segmenttabellenworten wird durch die Anzahl der Segmenttabellenworte in einer Anordnung bestimrat
und umfaßt üblicherweise sechs ASW 0 und acht für ASW 1. Das STVJSZ-FeId 1026 gibt den Umfang der Anordnung von Segmenttabellenworten
an. Das Feld STWA 1027 für die Segmenttabellen-Wortanordnung enthält die absolute Adresse STWA der Anordnung in Einheiten
von 16 Bytes, d.h. die absolute Adresse der Anordnung ist 16 mal STWA in Bytes.
Die Bytes 24 bis 27 im Prozeßsteuerblock beinhalten ein Ausnahmewort
EXW, welches im einzelnen aus Figur 1Oi ersichtlich ist. Es enthält eine Hinweisadresse (SEG, SRA) 1029 zu einer Ausnahme-Klassentabelle,
welche diejenige Aktion festlegt, welche ein Prozeß nach einem Ausnahpesignal entsprechend seiner im Prozeß-Hauptwort
PMW 2 gespeicherten Klasse durchführen muß (siehe Figur 1Of). Das MBZ-FeId 1028 des Ausnahmewortes EXW muß "0" sein.
Das Stapelspeicherwort SKW in den Bytes 28 bis 31 des Prozeß-Steuerblocks
enthält den Wert der Spitze des T-Registers des Stapelspeichers des Prozesses, wenn dieser nicht im Ablaufzustand
istjund ergibt sich im einzelnen aus Figur 1Oj. Die Bits 0 und 1
bestimmen das Hinweisfeld (TAG) 1030. Dieses TAG-FeId gibt durch seinen Inhalt des Descriptors an und muß für ein Stapelspcicherwort
SKW gleich "0" sein. Die Bits 2 und 3 des SKW-Wortes enthalten das RING-FeId 1031, welches die der Segmentadrosse des
Stapelspeichers für Schutzzwecke zugeordnete Ringnummer enthält,
609853/0755
und muß in diesem Fall gleich "O" sein. Die Bits 4 bis 31 enthalten
die Segmentnummer SEG, die relative Segmentadresse SRA 1032 und bilden ein Feld, welches das Segment in einer Segmenttabelle
beschreibt sowie die relative Segmentadresse innerhalb des Segments. Das Stapelspeicherwort SKW wird jedesmal foiigeschrieben,
wenn der Prozeß den Ablaufzustand verläßt. Des wird zur Wiederherstellung des T-Register-Inhalts verwendet, sobald
der Prozeß anläuft. In diesem Fall werden das TAG-FeId 1030 und
das RING-FeId 1031 überprüft, ob sie gleich "0" sind. Andernfalls
tritt ein einen unzlässigen Prozeß-Steuerblock kennzeichnendes Ausnahmesigal auf.
ist
In den Bytes 32 bis 35 des Prozeß-Steuerblocks 400 das den Inhalt
des Befehlsspeichers bezeichnende Wort ICW enthalten, welches manchmal auch als ICC bezeichnet wird. Figur 10k zeigt dieses
Befehlszählerinhaltswort ICW, bei dem das TAG-FeId 1033 den
Binärwert 00 haben muß, d.h. andere Werte als Null sind unzulässig. Das laufende RING-FeId 1034 belegt die Bits 2 und 3 und
bestimmt die laufende Ringnummer des Prozesses, welche für die
Bestimmung der Zugriffsrechte zum Hauptspeicher eingesetzt wird.
Die Bits 4 bis 31 bestimmen die Segmentnummer SEG μηα die relative
Segmentadresse SRA 1035, wodurch die Adresse des als nächster auszuführenden Befehls gegeben ist. Das Feld MBZ in den Bytes
36 bis 39 muß gleich "O" sein. Es wird jedesmal getestet, wenn der Prozeßsteuerblock von den Namen J, P Zugriff erhält. Falls
es nicht gleich "0" ist, tritt ein Signal für eine PCB-Ausnahme auf.
Die Stapelspeicher-Basisworte SBW 0-2 besetzen die Bytes 40-51 im Prozeß-Steuerblock 400. Diese Worte haben gleiches Format und
sind im einzelnen in Figur 101 dargestellt. Sie werden während der Stapelspeicheroperationen benutzt und bei jeder Benutzung
muß ihr TAG-FeId 1036 und ihr RING-FeId 1037 gleich Null sein.
Andernfalls entsteht ein Ausnahmosignal. Die Bits 4 bis 31 enthalten
die secjmentierte Adresse 1038 der ersten Bytes der Stapel-
■6 09853/0755
Speichersegment für die Ringe O, 1 bzw. 2. Bytes 52 bis 83 des
Prozeß-Stcucrblocks 400 bilden einen Speicherraum, welcher als
Sicherstcllungsberoich für die Basisregister dient und acht
Worte umfaßt. Die Bytes 84 bis 147 bilden einen Sicherheitsbereich,
der zur Sicherstellung der Vierte aller Generalregister (16 Worte) dient. Schließlich sind auch die Bytes 148 bis 179
ein Sicherheitsbereich, der zur Sichersteilung wissenschaftliche^
Register (8 Worte) verwendet wird.
Fünf Doppelworte sind im Prozeß-- Steuerblock 400 oberhalb der Adresse Null angeordnet und zwar für Zwecke der Zeitberechnung,
wenn das Bit für den Zeitberechnungsraode im Prozeßhauptwort 0 gesetzt ist. Diese Worte liecren zwischen der Prozeßsteuerblockadresse
minus 8 zur Adresse minus 40.. Jedes Wort enthält ein Zeitintervall ausgedrückt in ms-Einheiten in seinen ersten 3 2
Bits, wobei die Bits 52 bis 63 mit Nullen gefüllt sind. Das Restzeit-Doppelwort RTO, bestehend aus den acht ersten Bytes
oberhalb 0 im Prozeßsteuerblock enthält die Zeitmenge, welche tatsächlich vom Preozessor für den Prozeß aufgewandt wurde, ehe
eine Zeitende-Ausnahme auftritt. Das RTO-Wort wird in folgender Weise fortgeschrieben: Jedesmal wenn der Prozeß den Ablaufzustand
verläßt, wird der Stand des Prozeßzeitgebers im RTO-Wort gespeichert. Sobald der Prozeß wieder in den Ablaufzustand übergeht,
wird der Prozeßzeitgeberstand aus dem RTO-Wort geladen.
Das Verarbeitungszeit-Berechnungs-Doppelwort RUA in den Bytes
7 bis 15 ist ein Zeitzähler, der die Gesamtmenge der Prozessorzeit angibt, während der sich ein Prozeß im Ablaufzustand befunden
hat. Die berechnete Zeit ist diejenige, welche der Prozessor ausschließlich für den betreffenden Prozeß aufgewandt hat.
Das RUA-Wort wird folgendermaßen fortgeschrieben: Jedesmal wenn der Prozeß den Ablaufzustand verläßt, wird der Prozeßzeitzäh.ler
PT abgelesen. Der Unterschied der Inhalte des RTO-Wortes und des Zeitzählers PT wird zum RUA-Wort addiert. Anschließend wird der
Prozeßzeitgeberwert PT im RTO-Wort gespeichert. Die Zeit, während der ein Prozeß ausgesetzt ist, wird nicht berechnet. Die RTO- und
609853/0755
RUA-Worte werden auch darm forgcschrieben, wenn das Berechnungsmodus-Bit
auf "O" gesetzt ist. Jedoch werden die später noch zu beschreibenden Wort CET, RTO und WTA im Prozeßsteuerblock nur
dann angetroffen, wenn das Berechnungsmodus-Bit im Prozeßhauptwort PMW 0 auf "1" steht. Sie werden auch nu3r in diesem Falle
fortgeschrieben.
Das Wcirtezeit-Berechnungswort WTA in den Bytes 12 bis 23 ist ein·
Realzeitzähler, welcher die gesamte Zeitdauer bestimmt, in der sich der Prozeß im Wartezustand befunden hat. Das WTA-Wort wird
folgendermaßen fortgeschrieben: Jedesmal wenn der Prozeß den Wartezustand verläßt, wird der Stand TOD einer Tageszeituhr abgelesen
und die Differenz zwischen TOD und dem Wert eines Wortes CET zum Wartezeit-Berechnungswort WTA hinzu addiert.
Das in den Bytes 24 bis 31 befindliche Doppelwort RTA für die Berechnung der Vorbereitungszeit, welches ebenfalls einen Realzeitzähler
darstellt, bestimmt die gesamte Zeitdauer, über die sich der Prozeß im vorbereiteten Zustand befunden hat. Das RTA-Wort
wird folgendermaßen fortgeschrieben: Jedesmal wenn der Prozeß
den Vorbereitungszustand verläßt, wird der Wert TOD der Ta-geszeituhr
abgelesen und ihr Inhalt abzüglich des Inhalts des CET-Wortes zum RTA-Wort addiert. Das CET-Doppelwort in den Bytes 32
bis 39 gibt die Tageszeit an, zu der der Prozeß in einen der folgenden Zustände übergegangen ist: Vorbereitet, wartend, ablaufend
und ausgesetzt. Es bezeichnet also die Eintrittszeit in
den jeweils gerade vorhandenen Ist-Zustand.
Systembasis-Strukturen
Figur 6 zeigt das Format der Systembasis 600. Sie liegt im absoluten
Hauptspeicher und wird von Firmware entwickelt, welche über · das Grenzadressenregister BAR zugängig ist, das wie erwähnt, nur
gelesen aber in das nicht eingeschrieben werden kann. Das Grenzadressenregister BAR liegt unterhalb eines Bereichs im Hauptspeicher,
der für Hardware reserviert ist und trennt diesen Bereich von der Syntembasis 600. Letztere enthält eine Anzahl von
609853/0755
Systemattributen, welche eine Jobsehrittnummer und eine Prozeßgruppennummer
(JP) für den gerade laufenden Prozeß enthalten. Aus dem logischen Namen J, P des Prozesses'wird die absolute Adresse
des entsprechenden Prozeßsteuerblocks PCB abgeleitet. Umfang und Adresse der J-Tabelle sind durch die Inhalte des J-Tabellenworts
(JTW) definiert. Dieses Wort befindet sich an der durch das BAR-Register
bestimmten Adresse. Das Format des J-Tabellenworts ergibt sich aus Figur 11a. Der Umfang (JTSZ) 1101 oder die J-Tabelle
1204 in Figur 12 bestimmen die Anzahl der Eingangsstellen in die J-Tabelle 1204, welche bis 255 Eingänge haben
kann. Das Umfangsfeld JTSZ 1101 ist ein 8-Bit positives ganzzahliges . Ein Ausnahmesignal tritt auf, falls J größer ist als
JTSZ. Die absolute Adresse der J-Tabelle 1204 erhält man durch Multiplikation der J-Tabellenhinweisadresse 1102 mit 16. Die J-Tabella
1204 enthält die J-Tabelleneingänge, deren Format aus'
Figur 11b ersichtlich ist. Jede J-Tabellen-Eingangsstelle bestimmt
die absolute Adresse einer P-Tabelle 12O5r die durch Multiplikation
der P-Tabellenhinweisadresse 1104 mit 16 entsteht. Der Umfang
(PTSZ) 1103 einer P-Tabelle definiert die Anzahl der Eingangsstelle in die P-Tabelle. Dieser Umfang ist ein positives
8-Bit ganzzahliges, welches typischerweise zwischen 0 und 255 liegt und die Anzahl der Eingangsstelle in die P-Tabelle angibt.
Ein Ausnahmesignal, welches anzeigt, daß die Adresse außerhalb der P-Tabelle liegt, erscheint, falls P größer ist als PTSZ.
Jede Eingangsstelle der P-Tabelle 1205 bestimmt die absolute Adresse eines Prozeßsteuerblocks 1206, indem man Mie Hinweisadresse
1107 des Prozeßsteuerblocks mit 16 multipliziert. Ein Anwesenheits-Indikator P 1105 gibt, wenn er auf 11O" steht, das
Fehlen des Prozeßsteuerblocks 1206 an. Ist der Prozeßsteuerblock vorhanden, so steht dieser Anwesenheitindikator auf "1". Ist
dieser Indikator gleich "0", so tritt ein Ausnahmesignal auf, welches auf einen vakanten P-Tabelleneingang hinweist. Die Bits
1 bis 7 des P-Tabeilonindikators (Figur 11c) müssen gleich 0
sein (MBZ-FeId 1106), andernfalls tritt ein einen unzulässigen
Eingang zur P-Tabelle anzeigendes Ausnahmesignal auf.
609853/0755
An der Adresse BAR plus 4 der Systcmbasis 600 befindet sich das
Pormat-Byte des G-Tabellenwortes (GTW), welches im einzelnen aus
Figur 11d ersichtlich ist. Umfang und Adresse einer G-Segmenttabelle
1212 sind durch den Inhalt des G-Tabellenworts definiert.
Der Umfang (GTSZ) 1108 der G-Tabelle 1212 bestimmt die Anzahl der
Eingangsstellen in die G-Tabelle, die üblicherweise bis zu 255 Eingänge hat. Das Umfangsfeld GTSZ ist ein ganzzahliges positives
8-Bit-Feld. Ein Äusnahmesignal zeigt an, daß man sich außerhalb
der G-Tabelle befindet, wenn die G-Nummer größer ist GTSZ. Die absolute Adresse der G-Tabelle erhält man durch Multiplikation
der G-Tabellen-Hinweisadresse 1109 mit 16. Das Format der G-Segmenttabelleneingangsstelle
hat den Umfang zweier Worte (8 Bytes)'und wird G-Segmentdescriptor genannt. Das Format eines
solchen G-Segmentdescriptors ergibt sich aus den Figuren 11e und
11f. Alle G-Segmentdescriptoren sind gerichtet und folglich muß das Indirekt-Bit (I) 1111 gleich "0" sein, andernfalls ein Ausnahmesignal
entsteht, welches einen unzulässigen Segmentdeccriptor anzeigt. Der Anwesenheitsindikator P 1110 ist ein 1-Bit-Feld,
welches, wenn es auf "1" steht, anzeigt, daß ein Segment im Hauptspeicher zu der Segmentnummer gehört, welche dem Descriptor
entspricht. Hat der Anwesenheitsindikator den Wert "0", so ist kein Segment definiert und eine Bezugnahme auf diesen Segmentdescriptor
bewirkt ein Ausnahmesignal dahingehend, daß dieses Segment fehlt. Das Verfügbarkeits-Bit A1112 ist ebenfalls ein
1-Bit-Feld, welches anzeigt, ob das Segment verfügbar ist oder nicht. Es wird nur überprüft, wenn dieses Segment definiert ist,
d.h. wenn P gleich "1" ist. Andernfalls wird es vernachlässigt. Das Benutzungsanzeigefeld (U). 1113'. läßt erkennen, ob das Segment
angewählt wurde oder nicht. Wenn das Bit U auf "0" steht, erfolgte
kein Zugriff zu diesem Segment. Andernfalls steht es auf "1". Das Beschricbenanzeigefeld (W) 1114 zeigt, ob in ein Segment
eingeschrieben worden ist oder nicht. Steht es auf "0", so wurde nichts in das Segment eingeschrieben. Andernfalls steht
es auf "1". Der Zugangsindikator (GS) 1115 eines G-Segmentdescriptors
muß auf "01" stehen, andernfalls erscheint ein
609853/0755
ein Ausgangssignal, welches exnen unzulässigen Segnentdesecxptor
anzeigt. Der Grund hierfür liegt darin, daß ein G-Segment immer Semaphoren enthält und Befehle für ein Semaphor erfordern, daß
der GS-Code "01" ist. Umgekehrt gilt nicht, daß alle Semaphore in einem G-Segment liegen müssen. Die absolute Adresse der Basis
eines Segmentes 1214 wird im G-Segmentdescriptor gemäß Figur He durch ein 24-Bit-Basisfeld 1116 definiert. Der Inhalt dieses Feldes
wird mit 16 multipliziert, um die absolute Adresse zu erhalten. Das zweite Wort des G-Segmentdescriptors in Figur Hf umfaßt
die Bit-Positionen 32 bis 63 in der G-Tabelle 1212. Das RSU-FeId
1117 mit den Bits 32 bis 39 ist für Software-Gebrauch reserviert und wird im allgemeinen ignoriert, wenn es wie im vorliegenden
Fall als G-Segmentdescriptor benutzt wird. Das MBZ-FeId 1118 muß wiederum gleich "O" sein, da andererseits ein Ausnahmesignal auftritt,
welches ein unzulässiges Segment anzeigt. Da das MBZ-FeId 118 die Bits 40 bis 51 belegt, setzt es das Umfangsfeld 1119,
welches das Feld für ein kleines Segment ist. Somit müssen alle G-Segmente zum kleinen Segmenttyp gehören. Der Segmentumfang
1119 ist ein 12-Bit ganzzahliges positives Feld, welches die Anzahl
der Bytes im Segment festlegt. Der Segmentumfang ist in Vielfache von 16 unterteilt. Folglich kann der Segmentumfang für ein
G-Segment 1214 den Wert von 216 Bytes (kleine Segmente) nicht
überschreiten. Wenn auf eine Verschiebung D innerhalb eines G-Segmentes
Bezug genommen wird, wobei D größer als oder gleich äem Segmentumfang 1119 ist, so tritt ein Ausgang aus der Segment-Ausnahme
auf. Die Methode des Zugriffs auf den Hauptspeicher unter Benutzung eines G-Segmentes und einer Verschiebung D innerhalb
des Segmentes wird als G,D-Zugriff bezeichnet. Die verschiedenen Ausnahmen, die während G,D-Speicheroperationen auftreten können,
werden als G,D-Zugriffsausnahmen bezeichnet.
Im folgenden wird erneut auf die Systembasis 600 gemäß Figur 6 Bezug genommen. Es gibt dort neun Systemausnahmezellenworte,
welche in den Plätzen zwischen BAR plus 8 und BAR plus 44 untergebracht
sind. Das Format dieser EXC-Worte ergibt sich aus Figur Hg. Da t wenn eine Systemausnahme auftritt, für die übertragung
von Nachrichten zu bestimmten Prozessen Semaphore benutzt werden, sind die Hinweisadressen zu diesen Semaphoren in
neuen Speicherplätzen des Speichers zu finden, wobei jeder dieser Speicherplätze eine Systemausnahmezelle genannt wird. Es ist jeweils
eine pro Klasse von Systemausnahmen vorhanden. Das MBZ-FeId
1120 muß wiederum auf "0" stehen, weil sonst eine Systemüber-
609853/0755
prüfung erfolgt. Jede Ausnahmezelle EXC enthält den Systemnamen (G, D) 1121 bzw. 1122. Die Kanalausnahmezelle befindet sich in
BAR plus 44 der Systembasis und hat ein Format, welches demjenigen
der Systemausnahmezelle ähnlich ist. Sie enthält den
Systemnamen G, D eines Semaphors, welches für die übertragung
von Nachrichten zu bestimmten Prozessen benutzt wird, wenn das Kanalausnahmesignal auftritt.
Figur 11h zeigt das Format eines Internprozessor-Warteschlangenwortes
IPQW, welches bei BAR plus 48 beginnt. Das IPQW-Wort zeigt auf den Kopf einer Warteschlange von im vorbereiteten Zustand
befindlichen Prozessen (Q/PR/RDY), wie dies in Figur 9 durch die Bezugszeichen 905 und 805 angedeutet ist. Die Warteschlange
im Vorbereitungszustand befindlicher Prozesse verbindet
alle Prozesse, die im Vorbereitungszustand verharren. Sie wird
durch den Kopf des Q/PR/RDY-Feldes 1124 (Figur 11h) des IPQW-Wortes
angewählt, indem man auf die Spitze der Warteschlange der vorbereiteten Prozesse hinweist. Der Kopf des Q/PR/RDY-Feldes 1124
enthält eine 16-Bit positive ganze Zahl, welche die Verschiebung
gegenüber der Basis des G-Segments Nummer 0, genannt das GO-Segment, gegenüber dein ersten Byte des Feld Q/PR/RDY darstellt.
Ist dieses Bit-Feld gleich "0", so wird die Warteschlange als leer betrachtet. Das MBZ-FeId 1123 muß wiederum gleich "0" sein,
da andernfalls ein Signal zur Systemüberprüfung erscheint.
An der Stelle BAR plus 52 der Systembasis 600 liegt der Platz für die anfänglichen und laufenden Wiederversuchsnummern, deren
Format sich aus Figur 111 ergibt. Das NFS-FeId 1125 ist ein nicht
funktionelles Speicherfeld und wird von der Systembasis nicht verwendet. Das Anfangsversuchsnummernfeld 1126 und das laufende
Versuchsnummernfeld 1127 werden benutzt zur Steuerung, wie oft ein Befehl für einen automatischen Wiederversuch ausgeführt
wird, ehe ein Maschinenfehler-Ausnahmcsignal erzeugt wird. Diese Werte werden mit der gleichen Zahl durch einen nicht dargestellten Wiederversuchs-Rückstellzähler geladen.
«509853/0755
Das in Figur 11 j dargestellte Ablaufproζeßwort RPW befindet sich
im Speicherplatz BAR plus 56 der Systembasis und wird zur Speicherung des Namens des laufenden Prozesses und im Fall eines
Monoprozessor-Aufbaus mit seiner Priorität benutzt. Die NFS-Felder 1128 und 1131 sind wiederum nicht funktioneile Speicherfelder
und können für beliebige Zwecke eingesetzt werden, finden jedoch im allgemeinen keine Anwendung in der Systembasis. Der
Prioritätsgrad eines laufenden Prozesses wird im PRI-FeId 1129 gespeichert. Ein asynchrones Abfangbit befindet sich im AB-FeId
1130, während ein asynchroner Abfangring im ARN-FeId 1132
liegt, der logische Name JF P des laufenden Prozesses ist im
Fall eines Monoprozessor-Aufbaus im Jf P-FeId 1133 abgelegt«
Ein Äbsolutisiertabellen-Hinweiswort gemäß Figur 11k liegt an
der Stelle BAR plus 60 in der Systembasis 600 und wird beim anfänglichen Systemladen dazu benutzt, die absoluten Adressen
im Anfangs-Systemladeprogramm ISL dadurch vorzubereiten, daß
der Inhalt des Grenzadressenregisters BAR zu allen absoluten Adressen im ISL-Programm hinzugefügt wird. Die Absolutisiertabelle-Hinweisadresse
1135 bestimmt den Speicherplatz der nicht dargestellten Absolutisiertabelle. Ihr Umfang wird durch
das ATSZ-FeId 1134 bestimmt.
Das Seriennummerwort der Zentraleinheit ist in Figur 111 dargestellt
und besteht aus einem 4-Byte-Wort, welches im Speicherplatz BAR plus 64 liegt. Es enthält außer der Seriennummer der
Zentraleinheit das Seriennummernfeld 1136 der Zentraleinheit. Figur 11m zeigt das die Obergrenze des Hauptspeichers bezeichnende
Wort, welches im Speicherplatz BAR plus 68 abgelegt ist. Dieses Wort 1139 gibt die absolute Adresse des letzten zugängigen
Wortes im Hauptspeicher an. In der Speicherstelle BAR plus 72 liegt das in Figur 11n dargestellte Wort, welches die Geräte-3aiialnummGr
(CN) 1140 für das anfängliche Laden des Systems ISL
und die Hardware-Gerätekanalnummer (CN) 1141 angibt.
609853/0755
Typ und Untertyp eines in dem Rechnersystem benutzten Gerätes wird durch ein Hardware-Gerätetypwort (Figur Ho) in den Feldern
1143 bzw. 1144 angegeben, während das RSU-FeId 1142 für
Software reserviert ist. Dieses Wort findet sich in der
Systembasis an der Stelle BAR plus 76. Ein ähnliches Wort von ähnlichem Format zeigt Figur 11p und enthält Typ und Untertyp des Gerätes, welches beim anfänglichen Laden des Systems benutzt wird. Dieses Wort befindet sich an der Stelle BAR plus 80.
Software reserviert ist. Dieses Wort findet sich in der
Systembasis an der Stelle BAR plus 76. Ein ähnliches Wort von ähnlichem Format zeigt Figur 11p und enthält Typ und Untertyp des Gerätes, welches beim anfänglichen Laden des Systems benutzt wird. Dieses Wort befindet sich an der Stelle BAR plus 80.
der
Wenn bei einem Rechner Wiederstart-Knopf gedrückt wird, läuft eine simulierte V-Operation für ein Semaphor ab und gelangt zum
Vorbereitungszustand. Eine Hinweisadresse auf dieses Semaphor
findet man an der Stelle BAR plus 84 der Systembasis und wird das Wiederstart -Zellenwort genannt. Sie hat das in Figur 11q
dargestellte Format. Es ist dem der Systemausnahmezelle ähnlich und enthält den Namen G, D eines Semaphors im G-FeId 1149 bzw.
B-Feld 1150. Das MBZ-FeId 1148 muß "0" sein. Sind in dem
Computersystem mehr als ein Prozessor vorhanden, so ist in der Systembasis 600 an der Stelle BAR plus 88 ein Wort für Multiprozeß-Erweiterung vorgesehen. Dieses ist in Figur 11r dargestellt.
Computersystem mehr als ein Prozessor vorhanden, so ist in der Systembasis 600 an der Stelle BAR plus 88 ein Wort für Multiprozeß-Erweiterung vorgesehen. Dieses ist in Figur 11r dargestellt.
Beispiele für die Benutzung der Systembasis und des Prozeß-Steuerblocks
Figur 12 zeigt ein Ausführungsbeispiel, wie die Systembasis in Verbindung mit dem Prozeßsteuerblock für die Adressierung und
den Zugriff.zu einem Benutzersegment, einem Systemsegment oder einem Segment mit einer Warteschlange vorbereiteter Prozesse
eingesetzt wird. Der Hauptspeicher 1200 hat einen für Hardware-Benutzung reservierten Teil 1203. Ein Grenzadressenregister BAR 1202 trennt die Systembasis 1215 von dem für Hardware reservierten Teil 1203 des Hauptspeichers. Das Grenzadressenregister BAR 1202 wird dadurch zur Adressierung von Größen in der Systembasis 1215 benutzt, daß man den Inhalt des Grenzadressenregisters der Verschiebung in vier Byte-Einheiten der gewünschten Größe
eingesetzt wird. Der Hauptspeicher 1200 hat einen für Hardware-Benutzung reservierten Teil 1203. Ein Grenzadressenregister BAR 1202 trennt die Systembasis 1215 von dem für Hardware reservierten Teil 1203 des Hauptspeichers. Das Grenzadressenregister BAR 1202 wird dadurch zur Adressierung von Größen in der Systembasis 1215 benutzt, daß man den Inhalt des Grenzadressenregisters der Verschiebung in vier Byte-Einheiten der gewünschten Größe
809853/07 5-S
in der Systembasis hinzuaddiesrt. Diese Adresse weist dann auf
das erste Byte der Größe in der gewünschten Systembasis hin. In Figur 12 weist das Grenzadressenregister 1202 auf das J-Tabellenwort
JTW. Dieses Wort enthält eine Hinweisadresse, welche auf die J-Tabelle 1204 zeigt. Durch Indizieren zur J-Nummer gemäß Figur
erhält man einen J-Tabelleneingang 1216. An diesem Eingang befindet
sich eine P-Tabellenhinweisadresse, welche auf die absolute Adresse in der P-Tabelle 1205 hinweist. Durch Indizieren
zur P-Nummer (siehe Figur 5) innerhalb der P-Tabelle 1205 erhält
man die absolute Adresse des Prozeßsteuerblocks 1206. Wie
bereits beschrieben, befinden sich im Prozeßsteuerblock 1206 zwei Adressraumworte ASVJ 0 und ASW 1. Die höherwertigen Bits des
Segmenttabellennummernfelds STN im Basisregister 1201 werden für den Zugriff zu einem dieser beiden Adressenworte ausgenutzt, in
diesem Fall zum Wort ASW 1, welches eine Hinweisadresse auf eine
Segmenttabellen-Wortanordnung STWA aufweist, die zur Segmenttabellen-Wortanordnung
STWA 1208 führt. Zusammen mit der Segmenttabellennummer
STN des Basisregisters 1201 erfolgt ein Zugriff zu acht Sgmenttabellenworten in der Segmenttabellen-Wortanordnung
1208. Diese Segmenttabellenworte weisen auf eine der acht Segmenttabellen
1210. Die Segmenttabelleneingangsstelle STE von der Basis 1201 wird dann für die Ausführung einer der 256 Eingangsstellen in der Segmenttabelle 1210 verwendet, wo sich ein Segmentdescriptor
befindet. Letzterer wird dann für den Zugriff zum Benutzersegment 1211 eingesetzt.
Um Zugriff zu einem Systemsegment 1214 zu erhalten, das zur Speicherung
von Semaphoren dient, wird ein G-Tabellenwort GTW in der Systembasis 1215 benutzt. Die Adresse des G-Tabellenworts erhält
man durch Hinzufügen der Verschiebung des G-Tabellenwortes in der
Systembasis zum Grenzadressenregister BAR 1202 (vgl. Figur 6). Das G-Tabellenwort GTW enthält eine G-Tabellenhinweisadresse auf
eine G-Tabelle 1212. Durch Verwendung einer im System verfügbaren
G-Nummer und Indizieren in die G-Tabelle erhält man Zugriff zu einem G-Segmentdescriptr, der zur Adressierung eines Systemsegments 1214 dient. In ähnlicher Weise wird die Systembasis für
609853/07 5 5
den Zugriff zu einer Warteschlange von Vorbereitungszustand befindlichen
Prozessen (Q/PR/RDY) 1213 verwendet, indem man ein
internes Prozessor-Warteschlangenwort .'.IPQW aufsucht, welches auf
das Q/PR/RDY Segment 1213 hinweist.
G,-Steuerwerk
Die Figuren 13a bis 13c zeigen Einzelheiten desSteuerwerks. Dieses
ist obwohl es getrennt von der Zentraleinheit CPU dargestellt ist, in Wirklichkeit ein Teil der Zentraleinheit und besteht aus ....
einem Speichersteuerwerk (CSU) 1301, einem Steuerspeicher-Schnittstellenadapter
(CIA) 1302 mit zugehörigen Untereinheiten, .'einem Steuerspeicherlader (CSIj) 1303 sowie einer Steuer- und Ladeeinheit
(CLU)1304. Das Speichersteuerwerk 1301 empfängt Mikrobefehle über die Steuer- und Ladeeinheit 1304 und den Steuerspeicherschnittstellenadapter
1302 vom Steuerspeicherlader 1304. Unter normalen Betriebsbedingungen werden die Mikroprogramme
während des Einleitungsvorgangs des Systems aus einer externen Quelle geladen und v/erden zur dauerhaften Steuerfunktion für die
Maschinen. Jedoch hat das Speichersteuerwerk 1301 auch die Möglichkeit, neugeladen und inganggesetzt zu werden und zwar in
einer Weise, welche eine Vielzahl von Zentraleinheit-Operationsmöglichkeiten vorsieht. Die folgenden Operationsmoden für die
Zentraleinheit sind unter der Steuerwirkung des Speichersteuerwerks 1301 verfügbar:(a) Eigenbereichsmodus; (b) Emulationsmodus; (c) gleichzeitig Eigenbereich und Emulationsmodus; (d)
Überprüfungsmodus. Diese Fähigkeit ergibt sich, weil die Mikrobefehle
im Speichersteuerwerk die Quelle von MikroOperationen sind, welchejzur Steuerung des Betriebs aller anderen Funktionseinheiten der Zentraleinheit dienen, beispielsweise der Emulator
1316, das Rechenwerk 1317, die Befehlsabrufeinheit IFU 1318, das
Adressensteuerwerk ACU 1319 und die Datenverwaltungseinheit DMU
1321. Weiterhin sind innerhalb der Zentraleinheit 1306 die zuvor
beschriebenen Generalregister 1307, Basisregister 1308, wissenschaftlichen Register 1309, T-Register 1310, Zustandsregister 1311,
Befehlszähler IC 1312 und das Hardwarc-Steuermaskenregister 1313 dargestellt.
609853/0755
Im typischen Fall ist das Speichersteuerwerk CSU 1301 ein 9K bipolarer programmierbarer Festwertspeicher PROM in integrierter
Schaltungstechnik ünden mit einem Lese/Schreib-Direktzugriffsspeicher
RAM.Sie haben überlicherweise eine Lesezykluszeit von
150 ns und eine Schreibzykluszeit von 450 ns. Jeder Speicherplatz des Steuerspeichers speichert ein 84 Bit Mikrobefehlswort
und jedes Mikrobefehlswort steuert einen Zentraleinheitzyklus»
Bei jedem Lesen eines Speicherplatzes im Speichersteuerwerk 1301 wird sein Inhalt durch Mikrobefehlsdekodierer dekodiert, welche
ein Mikrooperations-Steuersignai erzeugen, von denen jedes eine
bestimmte Operation innerhalb der Zentraleinheit auslöst. Durch gruppenweises Zusammenfassen von Stellen innerhalb jedes Mikrobefehlswortes
erhält man Steuerspeicherfolgen, welche eine bestimmte
Zentraleinheits-Operation oder einen Befehl ausführen. Da'jeder Befehl durch die Zentraleinheit ausgelöst wird, benutzt
man bestimmte Bits innerhalb des Operationskodes für die Bestimmung
der Startfolge des Steuerspeichers. Durch Überprüfung bestimmter Flip-Flops, welche durch Befehlsdekodierfolgen gesetzt
oder rückgestellt werden, ist es dem Speichersteuerwerk möglich, erforderlichenfalls in eine spezielle Folge abzuzweigen.
Der Steuerspeicher-Schnittstellenadapter 1302 steht im Informationsaustausch
mit dem Speichersteuerwerk 1301, der Datenverwaltungseinheit 1321, dem Adressensteuerwerk ACU 1319 und dem
Rechenwerk 1317, um auf diese Weise den Betrieb des Speichersteuerwerks 1333 in Figur 13d zu bestimmen. Der Steuerspeicher-Schnittstellenadapter
1302 enthält ferner Logikschaltungen für die Modifizierung, überprüfung, Fehlerfeststellung in Steuerspeicheradresse:!
und zur Erzeugung von Hardwareadressen. Letzteres wird allgemein für die Entwicklung einer Anfangsadresse einer
Fehlerfolge oder für die Einleitungsfolge benutzt.
Die Datenverwaltungseinheit 1321 bildet die Schnittstelle zwischen
Zentraleinheit 1306 und dem Hauptspeicher und/oder dem Pufferspeicher
gemäß Figur 1. Die Datenverwaltungseinheit hat die Aufgabe festzustellen, welche Einheit die von anderen Einheiten
609853/0755
benötigten Informationen aufweist und diese Informationen zur richtigen Zeit in die Register der Zentraleinheit zu überführen.
Die Datenverwaltungseinheit sorgt auch für die Maskierung bei bestimmten Schreiboperationen. Die Befehlsabrufeinheit IFU 1318
bildet Schnittstellen mit der Datenverwaltungseinheit 1321 , dem
Adressensteuerwerk 1319, dem Rechenwerk 1317 und dem Speichersteuerwerk
13Oi und ist dafür verantwortlich, daß die Zentraleinheit
mit Befehlen versorgt wird. Die Befehlsabrufeinheit hat jeweils
vor Ablauf des gegenwärtigen Befehls den nächsten Befehl in ihren Registern bereit. Um dies zu ermöglichen, hat die IFU
1318 ein 12-Byte-Befehlsregister, welches normalerweise mehr als
einen Befehl enthält. Zusätzlich fordert die IFU, gesteuert durch das Speichersteuerwerk CSU Informationen aus den Hauptspeicher
an, ehe diese Information tatsächlich benötigt wird. Auf diese Weise schreibt sie ihr -12-Byte-Befehlsregister ständig fort. .Befehle
werden vorabgerufen mit Hilfe normaler Weise nicht benutzter Speicherzyklen. Die IFU dekodiert ferner jeden Befel und informiert
andere Einheiten über Länge und Format des Befehls.
•Das Adresseristeuerwerk ACU 1319 steht über den CIA in Verbindung
mit der IFU, dem ALU, der DMU und dem CSU. Das ACU 1319 ist für die gesamte Adressenentwicklung in der Zentraleinheit verantwortlich.
Alle Operationen des Adressensteuerwerks einschließlich der übertragung zu, von und innerhalb des Steuerwerks werden
durch Mikrobefehle des Speichersteuerwerks und durch logische Schaltkreise bewirkt. Der normale Zyklus des Adressensteuerwerks
hängt von der Art der Adressen im Befehl ab und nicht von der Art der Befehle. In Abhängigkeit vom Adressentyp kann das Adressensteuerwerk
unterschiedliche Operationen für jede Adresse innerhalb eines Befehls ausführen. Das Adressensteuerwerk enthält
ferner einen Assoziativspeicher 1319a, welcher die Basisadresse
der zuletzt benutzen acht Speichersegmente zusammen ihren Segmentnummern speichert. Jedesmal wenn ein Zugriff zu einem Speicher
erfolgen soll, wird die Segmentnummer mit dem Inhalt des Assoziativspeichers verglichen, um festzustellen, ob die Basisadresse
des Segments bereits entwickelt und gespeichert ist.
60985 3/075 5
Befindet sich die Basisadresse im Assoziativspeicher 1319a,so
wird sie für die absolute Adressenentwicklung benutzt, wodurch eine beträchtliche Zeitersparnis gegeben ist. Befindet sich die
Basisadresse nicht im Assoziativspeicher 1319a, so wird sie durch Zugriff zu den Hauptspeichertabellen entwickelt. Jedoch
wird nach der Entwicklung der Basisadresse des Segments diese im Assoziativspeicher zusammen mit ihrer Segmentnummer für
spätere Bezugnahme abgelegt. Das Rechenwerk ALU 1317 arbeitet
mit dem Adressensteuerwerk ACU, der Befehlsabrufeinheit IPU,
der Datenverwaltungseinheit DMU und dem SpeicherSteuerwerk CSU
zusammen. Seine Hauptaufgabe besteht in der Durchführung arithmetischer Operationen und Datenverarbeitungen, welche von der
Zentraleinheit gefordert werden. Die Operationen des Rechenwerks sind völlig von Mikrobefehls-Steuersignalen aus dem Speichersteuerwerk
1301 abhängig. Dem Rechenwerk 1317 und dem Speiebersteuerwerk
1301 zugeordnet ist ein Zwischenspeicher LSU 1315,
welcher manchmal auch als interne Speichereinheit bezeichnet wird, Dieser Zwischenspeicher besteht im typischen Fall aus einem
Festwertspeicher mit 256 Speicherplätzen und 32 Bits pro Speicherplatz
sowie einer Auswahl- und Lese/Schreiblogik für diesen Speicher. Der Zwischenspeicher 1315 wird zum Abspeichern von
Steuer- und Aufrechterhaitungsinformationen der Zentraleinheit
verwendet. Zusätzlich enthält er Arbeitsplätze, die hauptsächlich zum vorübergehenden Speichern von Operanden und Teilergebnissen
während der Datenverarbeitung dienen. Weiterhin ist dem Rechenwerk 1317 ein HilfsSpeicher 1317a zugeordnet, welcher im
üblichen Fall 64 Flip-Flops zur Speicherung verschiedener Zustände des Rechnersystems enthält.
Die Zentraleinheit weist ferner eine Taktgebereinheit 1320 auf, die praktisch aus zwei Taktgebersystemen in einer Einheit besteht.
Das erste Taktgebersystem erzeugt die Taktsignale zur
Steuerung des Schnittstellenadapters 1302, während das zweite Taktsystem die Taktimpulse für die Operationen der Funktions-
609853/07 5 5
einheiten innerhalb der Zentraleinheit liefert.
In Figur 13c ist das Format des Steuerspeicherworts 1325 wiedergegeben.
Dieses ist ein 84-Bit-Wort und in die folgenden äechs
Hauptfelder unterteilt:
■a1. Folgetypfeld 1326 (3 Bits)
b. Verzv/eigungs- und/oder Mikrobefehlsfeld 1327 (23 Bits)
c. Konstantenerzeugung und Bestimmung 1328 (14 Bits)
d. Daten zur Sammelschiene 1329 (8 Bits)
e. Mikrobefehle '1330 (32 Bits
f. Prüfung 1331 (4 Bi'ts)
Das 3-Bit-E-Feld des Steuerspeicherworts 1325 wird als Folgesteuerfeld
verwendet. Es sind üblicherweise sieben verschiedene Steuerfolgen vorhanden und eine für das gegenwärtige·Rechensystem
reserviert. Unter Bezugnahme auf Block 1335 in Figur 13b wird, wenn das E-FeId gleich 0, 1 oder 2 ist, das Verzweigungsfeld A.
B, C, D, und L der Mikrobefehle 1325 benutzt, um die nächste
Adresse zu erzeugen. Die ersten sechs Bits des KS-Register 1337 werden zusammen mit dem B-Feld benutzt, es ergibt sich ein C-Test,
hieraus ein D-Test und das L-FeId liefert die nächste Adresse des nächsten Mikrobefehls, welche dann in das Adressenregister
KS 1337 eingegeben wird. Ist das E-FeId auf binär 4 (siehe Block 1335) gesetzt, so wird die nächste ausgewählte Adresse
vom Unterbrechungs-Rückkehrregister KA 1339 entnommen. Die
Adresse im ΚΑ-Register ist diejenige, welche von der Logikschaltung zur Erzeugung der nächsten Adresse erzeugt wird, wenn eine
Hardware-Unterbrechung auftritt. Ist das E-FeId auf binär 5 gesetzt,
so wird eine Verzweigungsoperation benutzt, um eine Hilfsrückkehropcration
von einer Mikroprogramm-Subroutine zu bewirken. Wenn dies erfolgt, werden die Inhalte der Rückkehrregister KR 1346
als die nächste Steuerspeicheradresse verwendet. Das Rückkehrregister 1346 wird dadurch geladen, daß ein Steuerspeicherbefehl
herausgegeben wird, der die gegenwärtige Steuerspeicheradresse
609853/0755
im KS-Register 1337 zuzüglich 1 vom Fortschalter 1338 in das KR-Register 1346 überführt. Eine Möglichkeit für eine Einebene-Einfügungsroutine
ist gegeben über ein KT-Rückkehrverzweigungsregister 1347. Jedesmal wenn das KA-Register 1346 geladen
wird, wird der alte Inhalt dieses Register in das KT-Register 1347 überführt und jedesmal wenn ein Mikroprogramm-Rückkehrbefehl
aufgerufen wird, wird der Inhalt des KT-Registers in das KR-Register eingegeben. Eine Möglichkeit für eine Einfügungssubroutine
in der dritten Ebene wird durch das Kü-Register 1340 und in der vierten Ebene durch das KV-Rückkehrverzweigungsregister
1349 dargestellt. Wenn das E-FeId des Steuerspeicherworts auf binär 6 steht, so ist das nächste adressierte Steuerspeicher7
wort gleich der gegenwärtigen Adresse im KS-Register 1337 plus 1 im Fortschalter oder Inkrementor 1338. Steht das E-FeId auf binär 7,
so geht das Sj>eichersteuerwerk 1301 in den Überprüfungsmodus über
und die nächste Adresse ist gleich der gegenwärtigen Adresse plus
Zusätzlich zur Folgesteuerung von Verzweigungen zur nächsten Steuerspeicheradresse gemäß Block 1335 ist im Block 1336 von Figur
13b eine durch Hardware erzeugte Folgesteuerung dargestellt.Die
Blocks 1335 und 1336 sind in Wirklichkeit Hardware-Register und derart aufgebaut, daß sie die verschiedenen Formen aufnehmen können,
welche Mikrobefehle haben können. Die hardwarebestimmten Verzweigungen
stellen übersteuernde Zustände dar, solche wie Fehler, Einleitung, Steuerspeicherabtastung usw., die das E-FeId unterdrücken
und eine feste Adresse in das Steuerspeicheradressenregister KS1337 zwangsweise eingeben. Die Verzweigung erfolgt dadurch,
daß eine Leitungsunterbrechung für eine Taktperiode stattfindet und die Adresse, welche an sich unter der Steuerung des E-Feldes
er.zeugt worden wäre, in das KA-Unterbrechungsrückkehrregister 1339 geladen wird. Eine hardwaregesteuerte Adresse wird
in das Steuerspeicheradressenregister eingegeben. Bestimmte durch Hardware oder Firmware erzeugte Unterbrechungen haben Priorität,
wenn der Unterbrechungs-Blockier Flip-Flop gesetzt ist, der die
609853/07B5
Durchführung zusätzlicher Unterbrechungen in ihrer Klasse verhindert,
bis der unterbrechende Zustand erledigt ist. Eine Firware-Mikro-Operation besteht zur Steuerung der Rückstellung
des Unterbrechungs-Blockier Flip Flops für jene Folgen, welche unter Firmware-Einfluß stehen. Diese Folgen bewirken automatisch
eine Rückstellung des Blockier-Flip-Flops am Ende der Folge. Die
nachstehend entsprechend ihrer Priorität aufgeführten Zustände bestehen in dieser Kategorie":: ■ .
(a) Laden des Steuerspeichers; '--'
(b) Abtastung des Steuerspeichers
(c) Hardware-iehler;
(d) Software-Fehlerj
Die verbleibenden Hardware-Zustände setzen den Unterbrechungsblockier
Flip-Flop nicht, aber bewirken bei iherer Erzeugung eine sofortige Aktion. Die nachstehend entsprechend ihrer Priorität
aufgeführten Zustände bestehen in dieser Kategorie:
(a) Einleitung;
(b) Soft-Freigabe;
(c) Eintritt in die Wartungskonsole;
(d) Eintritt in den Wartungskonsole;
(e) Hardware-Ausgang.
Ein Einleitungssignal bewirkt, daß das Speicher-Steuerwerk 1301
zur Adresse binär 0 abzweigt, durch Hardware rückstellbare Fehler geklärt werden und eine Steuerspeicher-Ladeoperation gefolgt von
einer Steuerspeicher-Abtastfolge unter Hardware-Überwachung ausgeführt werden. Außerdem wird die Systemeinleitung durchgeführt.
Ein Signal-Softfreigabe läßt das CSU 1301 zur Adresse binär 0 abzweigen, klärt die durch Hardware zurückstellbaren Fehler und
stellt den Unterbrechungsblockier Flip-Flop zurück. Ein Signal für den Eingang in die Wartungsgruppe bewirkt, daß das Speichersteuerwerk
in die durch die Schalter auf der Artungstafel vorgegebenen Adressen abzweigt. Ein Signal zum Eintritt in den Wartungskanal
läßt das Speichersteuerwerk zu einer Adresse abzweigen, welche über den Wartungskanal erzeugt wird. Die Adresse wird aus
609853/0755
der Wartungssammelschiene QMB 1344 geladen, welche Teil des Wartungskanals
ist. Ein Hardware-Ausgangssignal läßt das Speicher-Steuerwerk zur Binäradresse 2 abzweigen. Diese Folge wird als
Wartungsmöglichkeit benutzt. Am Ende der Folge wird durch Herausgabe eines E-Feld-Verzweigungsbefehls eine Rückkehr inganggesetzt
und das E-FeId auf binär 4 gesetzt.
Ein Steuerspeicherladesignal läßt das Speichersteuerwerk zur Adresse binär O abzweigen. Es schaltet außerdem CSÜ-Lesesyklus
Flip-Flop und den Systemtaktgeber 1320 ab und führt das Speichersteuerwerk in den Ladezustand über. In diesem Zustand kann das
Speichersteuerwerk aus dem Steuerspeicher ladet* CSL 1303, der Ein/ Ausgabesteuerung IOC 1305, dem Hauptspeicher 102 oder der Wartungstafel 1355 geladen werden. Erfolgt eine Ladung aus dem Lader CSL,
so wird eine automatische Abtastung am Ende des Ladens bewirkt. Wird hingegen aus einem anderen Medium geladen, so kann eine Abtastung
entweder durch Erzeugung eines Mikr-o-Operationssignals
oder durch Einstellen des Abtastschalters auf der Wartungstafel erfolgen. Ein Steuerspeicher-Abtastsignal läßt das Speichersteuerwerk
zur Adresse binär 0 abzweigen. Für die Dauer der Folge unterliegt die Abtastung der Steuerung durch Hardware. Während
der Abtastung ist der Systemtaktgeber 1320 abgeschaltet und folglich
werden keine Befehle oder Überprüfungen ausgeführt. Am Ende der Abtastfolge überträgt die Hardware den Inhalt des Unterbrechungsrückkehrregisters
KA in das Adressenregister KS, der Systemtaktgeber wird wieder eingeschaltet.und die Steuerung kehrt zur
Firmware zurück.
Ein Hardware-Fehlersignal bewirkt eine Abzweigung in die Adresse binär 4. Im normalen Prozeßmodus aktiviert ein in irgendeiner
Funktionseinheit der Zentraleinheit festgestellter Hardware-Fehler eine Hardware-Fehlerleitung. Die erzeugte Steuerspeicherfolge
überprüft die Systemzustände im Hinblick auf die einzuleitende Aktion. Im Diagnosemodus sind von der Hardware feststellbare
Fehlerzustände für die Mikrodiagnose erkennbar. Sie steuert
609853/0755
die einzuleitenden Aktionen. Ein Software-Fehlersignal andererseits
läßt den Steuerspeicher zur Adresse binär 1 abzweigen. Diese Adresse stellt den Anfang einer Software-Fehlerberichtsfolge
dar, die unter Mikroprogrammsteuerung steht.
In Figur 13c ist das E-FeId 1326 ein 3-Bit-Feld für den Verzweigungscode.
Das Verzweigungs und/oder Mikrobefehlsfeld 1327 besteht aus den A, B, C, D und L Feldern (vgl. auch Block 1335 in
Figur 13b), wobei das A-FeId die oberen sechs Bits der nächsten Adresse, das B-Feld die mittleren vier Bits der nächsten Adresse
des Maskenfeldes an der 64-Weg-Verzweigung, das C-FeId ein 6-Bit-Prüffeld
für einen von 64 Tests, das D-Feld ein weiteres 6-Bit-Prüffeld für einen von 64 Tests und das L-FeId das am niedrigst
wertige Bit ist. Das K-FeId 1328 ist ein 14-Bit-Feld, von dem
sechs Bits für ein Konstsntenfeld, vier Bits für ein Konstantenoder
Steuerfeld und vier Bits für ein Steuerfeld für eine Konstante dienen. Das Feld 1329 für die Datenweitergabe zur Sammelschiene
besteht aus dem QA-FeId nit 4 Bits zur Steuerung des Informationsflusses
zum QA~Teil der QMB Sammelschiene 1344, während das QB-FeId vier Bits zur Steuerung der Informationsweitergabe zum QB-Teil
der QMB-Samraelschiene 1344 enthält. Das F-FeId 1330 ist ein
32-Bit-Feld und ist zur Erzeugung von Mikoroperations-Unterbefehlen
kodiert. Das B-Feld 1331 besteht aus vier für Prüfzwecke
reservierten Bits.
Im Betrieb werden die Mikrobefehlsworte in einer Steuerspeicheranordnung
1333 gespeichert. Während eines Betriebszyklus wird diese Steuerspeicheranordnung durch den Inhalt des KS-Adressenregisters
1337 adressiert. Hierdurch wird der Inhalt des adressierten Speicherplatzes in die Gruppe von Verriegelungsregistern 1357
eingegeben. Teile des Inhalts dieser Register werden in die Speicherregister innerhalb jeder der Funktionseinheiten der Zentraleinheit
übertragen. Jede funktioneile Einheit enthält logische Dekodierschaltung zur Erzeugung der erforderlichen durch das Steuerspeicherwort
definierten Unterbefehle und zwar unter den Steuereinfluß des Systemtaktgebers. Im allgemeinen wird die Dekodierung
609853/0755
innerhalb jeder funktionellen Einheit durchgeführt und nicht zentral,
damit die Dekodierzeit auf ein Minimum reduziert und die
Anzahl der Leitungen für die übertragung von BefehlsSignalen reduziert
wird. Außerdem vermeidet man durch das Dekodieren innerhalb jeder Einheit Zeitgeberprobleme, welche sich aus unterschiedlichen
Kabelverzögerungszeiten ergeben können. Schließlich brauchen
diejenigen Signale nicht zum Steuerspeicherschnittstellenadapter 1302 zurückgeleitet werden, welche für bestimmte Zustände innerhalb
der Funktionseinheit kennzeichnend sind und für die Erzeugung bestimmter Unterbefehls-Signale erforderlich sind. Ein
typischer Dekodierer 1359 empfängt gemäß Figur 13b verschiedene Felder aus Mikrobefehlsworten und erzeugt Mikrobefehlssignale a,
b, c, d, ...q, r. Ein typischer Mikrobefehlsdecoder 1359 erhält Befehle von einem.Mikrobefehlswort. Das Feld des Mikrobefehlswortes wird dekodiert und stellt eine Mehrzahl von Teilen s, t,
u, .... y, ζ auf des Potentional "1". Eine Matrix mit vorgegebenen Steuerleitungen ist an die s- bis z-Leitungen an den
Punkten oa/Sj^*. ^ * * - Cd angekoppelt. Wenn das Feld
eines Mikrobefehls dekodiert wird, geht eine der Leitungen s bis ζ
auf hohes Potential. Da die in der Zeichnung durch Punkte und griechische Buchstaben gekennzeichneten Verknüpfungspunkte sich
kreuzender Leitungen eine Leitungskopplung darstellen, wird jedes sich längs einer horizontalen Leitung . ausbreitende,. Signal
an denjenigen Stellen, wo ein Kopplungspunkt angegeben ist, auf eine der vertikalen Leitungen a bis r übergehen. Jede der vertikalen
Leitungen kann als Eingang zu einem der UND-Gatter 136Ο 1365
geführt v/erden. Weitere Eingangssignale können ebenfalls an die UND-Gatter 1360 bis 1365 geführt werden, einschließlich eines
Taktsignals t vom zentralen Taktgeber"» Folglich werden jeweils dann, wenn das Taktsignal den Wert "1" annimmt, jene Gatter durchgeschaltet,
deren sämtliche Eingänge ein positives Eingangssignal haben. Diese Gatter liefern Mikrobefehlssignale an vorgegebene
Funktionseinheiten innerhalb der Zentraleinheit. Beispielsweise wenn ein Befehl 1341 vom Leseverriegelungsregister 1357 dekodiert
wird und eine horizontale Leitung auf "1" liegt, so werden die vertikalen Steuerleitungen a, b, c, und q ebenfalls positiv und
die Gatter 1316, 1361, 1362 und 1364 werden beim Auftreten des
609853/0755
έι
Taktsignals nacheinander durchgeschaltet. Folglich stellen die Kombinationen, in denen die vertikalen Steuerleitungen mit der
horizontalen Steuerleitung an verschiedenen, durch griechische
Buchstaben gekennzeichneten Punkten gekoppelt sind, eine bleibende Schaltmatrix für die Zufuhr von Mikrobefehlssignalen an
die Zentraleinheit dar und zwar für die Steuerung der Funktionseinheiten innerhalb der Zentraleinheit durch Mikrobefehle aus
der Steuerspeicheranordnung 1333. Somit kann dauerhafte aber veränderbare Firmware in die Anlage eingebaut werden,indem lediglich
die Folge der Mikrobefehle angegeben wird, Vielehe als Fähigkeit des Rechnersystems benötigt wird.
Unter normalen Bedingungen werden Daten in die Steuerspeicheranordnung
1333 über ein Schreibdatenregister der Zentraleinheit, welches auch unter der Bezeichnung , Internes Register YO 1343
eingegeben,
bekannt ist^ Ein Steuer--Flip-Flop bestimmt, ob in die obere oder in die untere Hälfte der Speicheranordnung eingeschrieben werden soll. Daten aus der Steuer- und Ladeeinheit CLU 1304 kommen am Adaptor CIA bzw. dem Speichersteuerwerk· CSU über die Wartungssammelschiene QMB 1344 an und werden vorübergehend im internen Speicherregister YO 1343 aufbewahrt, ehe sie in die Steuerspeicheranordnung 1333' eingegeben werden. Das interne Register 1343 wird sowohl als örtliches Lese- als auch als örtliches Schreibregister verwendet. Der Multiplexer KQM 1345 kann entweder vom Wartungspult 1355 oder durch Mikrodiagnoseoperationen gesteuert werden und liefert einen Ausspeicherungsweg aus den ihm angeschlossenen Registern. Ein Vergleichsregister KP 1350 wird in erster Linie für Wartungszwecke benutzt und zwar zusammen mit einer Vergleichslogik 1352 und einer Dekodierlogik 1351.
bekannt ist^ Ein Steuer--Flip-Flop bestimmt, ob in die obere oder in die untere Hälfte der Speicheranordnung eingeschrieben werden soll. Daten aus der Steuer- und Ladeeinheit CLU 1304 kommen am Adaptor CIA bzw. dem Speichersteuerwerk· CSU über die Wartungssammelschiene QMB 1344 an und werden vorübergehend im internen Speicherregister YO 1343 aufbewahrt, ehe sie in die Steuerspeicheranordnung 1333' eingegeben werden. Das interne Register 1343 wird sowohl als örtliches Lese- als auch als örtliches Schreibregister verwendet. Der Multiplexer KQM 1345 kann entweder vom Wartungspult 1355 oder durch Mikrodiagnoseoperationen gesteuert werden und liefert einen Ausspeicherungsweg aus den ihm angeschlossenen Registern. Ein Vergleichsregister KP 1350 wird in erster Linie für Wartungszwecke benutzt und zwar zusammen mit einer Vergleichslogik 1352 und einer Dekodierlogik 1351.
Der Zuteiler ist eine Firmware/Hardware-Einheit, deren Hauptzweck
darin liegt, die verschiedenen Prozeßwarteschlangen zu verwalten und zwischen den Prozessen umzuschalten und umfaßt ferner die
Fortschreibung der Prozeßwnrteschlangen, der Prozeßsteuerblöcke,
dem des laufenden Prozeßwortes in der Systembasis und Register eines
.6 09853/0755
neuen Prozesses. Er liefert ferner Nachrichten an einen Prozeß, der an einem Semaphor hierauf wartet (nach einer V-Operation,
einer simulierten V-Operation für die Ein/Ausgabesteuerung oder für einen Ausnahmeverarbeiter). Er ordnet außerdem Nachrichten in
Warteschlangen an einem Semaphor nach einer P-Operation ein, die eine Nachrichtenverbindung freigegeben hat, wenn' ein Prozeß an
einem Verbindiingsfreigabe-Semaphor auf die Weitergabe seiner Nachricht
wartet. Die Zuteilereinheit ruft ferner nach der Steuerungseingabe eines im Eigenbereichsmodus ablaufenden Prozesses oder
nach einem Streit zwischen zwei Prozessen, wenn der Prozeß weiterläuft und sich im Eigenbereichsmodus befindet, die Firmware für
Eigenbereichsbefehle auf. Er ruft darüberhinaus Firmware zur Dekorerweiterung auf für
(a) einen zeitweiligen Aufruf .während der Steuerungswegnahrae
eines Prozesses, der in jener Dekorerweiterung abläuft;
(b) einen zeitweiligen Aufruf während der Steuerungsüberncihme
eines Prozesses, der in jener Dekorerweiterung abläuft;
(c) einen bestimmten Aufruf am Ende der Steuerungsübergabe eines Prozesses, welcher in der Dekorerweiterung abläuft;
und
(d) einen bestimmten Aufruf nach einem Widerstreit, wenn der laufende Prozeß weitergeht und in diesem Dekorerweiterungsmodus
abläuft»
Außerdem versetzt der Zuteiler das System in den Leerlauf, wenn
kein laufender Prozeß vorhanden ist. Es gibt verschiedene Wege, zum Zuteiler zu gelangen oder diesen zu verlassen:
(1) die Einleitungsprozedur SIP ergibt eine Eingangsstelle als letzten Schritt;
(2) der Start- und Aussetzbefehl führt zu einem Zugang zum Zuteiler;
(3) P- und V-Operationen ergeben Zugang zum Zuteiler. Die P-Operation
nimmt eine Nachricht von einem Semaphor auf ( und
wenn keine Nachricht vorhanden ist, geht der Prozeß in den
. Wartezustand über.
609853/0755
2)326703
Kurz gesagt, istder Zuteiler der Hauptmechanismus, welcher die
Prozesse verwaltet und damit auch die Prozeßsteuerblöcke,indem er entscheidet, welcher Prozeß ablaufen soll,und dann die erforderliche
Aktion einleitet, beispielsweise eine Steuerungswegnahme für den gerade laufenden Prozeß. Dies bedeutet, daß er in den Prozeßsteuerblock
alle Informationen, die für den laufenden Prozeß in Hardware-Registern Zwischenspeichern und dergl, enthalten sind,
einschreibt. Außerdem führt zur Steuerungsübergabe an den neuen Prozeß, d.h. er schreibt aus dem Prozeßsteuerblock in die verschiedenen
Hardware-Register,Zwischenspeicher und dgl. alle Informationen
ein, welche für die Durchführung des neuen Prozesses erforderlich sind.
Eine Darstellung der vom Zuteiler ausgeführten Funktionen ergibt sich aus den Flußdiagrammen gemäß-den Figuren 14a bis 14i. Beispielsweise
ist der Block 1402 in Figur 14a eine Darstellung der
von einem Zuteiler ausgeführten Funktion, wobei ein Mikroprogrammwort vom Speichersteuerwerk geliefert wird und nach Dekodierung
im Dekoder 1359 die entsprechenden Teile der Zentraleinheit über .
eine geeignete Folge von Mikrobefehlssignalen 1360, 1361 usw.
steuert, um das Internprozeß-Warteschlangenwort IPQW aus der Systembasis im Speichersubsystem 102 herauszunehmen und in den
Zwischenspeicher 1315 zu übertragen. Gleichzeitig ruft der Zuteiler
den GO-Segmentdescriptor (vgl. Figur 12) aus derjenigen T-Tabelle ab, auf welche das G-Tabellenwort GTW in der Systembasis
hinweist. Die Bits 16 bis 31 des IPQW enthalten ein 16-Bit positives
ganzzahliges, welches die Verschiebung von der Basis des GO-Segments zum Kopf (erstes Byte) der Waiteschlange Q/PR/RDY
vorbereiteter Prozesse darstellt. Sind die Bits 16 bis 31 des IPQW-Wortes gleich 0, so wird die Warteschlange als leer angesehen.
Dies bedeutet, daß gegenwärtig kein Prozeß in der Warteschlange steht. Die nächste im Entscheidungsblock 1405 zu entscheidende
Frage ist, ob ein Prozeß gegenwärtig abläuft. Hierzu wird festgestellt:,
ob der Vakanzindikritor gesetzt ist oder nicht. Ist er gesetzt
und ist, wie soeben festgestellt wurd, kein weiterer Prozeß
609853/0755
in der Warteschlange, so geht die Anlage in den Leerlaufzustand
1406 über. Läuft jedoch gerade ein Prozeß ab und ist kein weiterer im Wartezustand, so nimmt der laufende Prozeß seinen Befehl 1407
auf.
Im Entscheidungsblock 1403 des Flußdiagramms (Figur 14a) wird der
Kopf der durch das IPQW-Wort im GO-Segment angezeigten Warteschlange
in den Zwischenspeicher übernommen, wenn ein positiv ganzteiliger Wert im Hinweisadressenbereich des IPQW, d.h. in den
Bits 16-31 vorhanden ist. Um Widerholungen zu vermeiden, werden hier die Zwischenfunktionen des Zuteilers in Verbindung mit der
Steuereinheit und der Zentraleinheit weggelassen. Es ist jedoch zu beachten, daß solche Zwischenfunktionen typischerweise vorhanden
sind. Bis zu dieser Stelle ist bestimmt worden, daß irgendein Prozeß in der Warteschlange steht. Ehe weitere Aktionen eingeleitet
werden können, ist eine'Bestimmung nötig, ob gegenwärtig ein Prozeß in der Zentraleinheit abläuft. Dies wird mittels des
Bestimmungsblocks "1410 getan. Läuft gegenwärtig kein Prozeß ab,
so wird der Kopf der Warteschlange 1412 in Bearbeitung genommen.
Ist jedoch ein Prozeß im Gangs, so muß der Zuteiler bestimmen, ob der laufende Prozeß oder der Kopf der Warteschlange Priorität hat.
Hierzu wird das Prioritäts-Byte des laufenden Prozesses CJP im laufenden Prozeßwort des Systembasis-Prozeßsteuerblocks 400 bei
1413 abgerufen. Eine Entscheidung wird bei 1414 gefällt, ob der laufende Prozeß CJP von geringerer Priorität ist als der an der
Spitze der Warteschlange stehende neue Prozeß NJP. Hat der laufende Prozeß keine niedrigere Priorität als der neue, so behält
der laufende Prozeß seine Steuerbefugnis über die Zentraleinheit und der Ausscheidungsanzeiger wird bei 1415 zurückgestellt. Dieser
steht immer auf 0, sofern nicht ein oder mehrere neue Prozesse seit Beginn der letzten Befehlsausübung für den alten Prozeß in
die Warteschlange eingereiht wurden und dadurch eine Konfliktmöglichkeit geschaffen worden ist. Nur in diesem Fall wird der
Ausscheidungsanzeiger auf "1" gesetzt. Ehe der laufende Prozeß weitergehen und weitere Befehle ausführen kann, wird bestimmt,
609853/0755
ob er im Dekorerweiterungsrnodus 1415 abläuft. Ist dies der Fall,
so wird der nächste Befehl im Emulationsmodus, d.h. in der Dekorerweiterung ausgeführt. Läuft er hingegen nicht im Dekorerweiterungsmodus
ab, so erfolgt die Ausführung des nächsten Befehls im Eigenbereichsmodus. Hat im Entscheidungsblock 1414 der neue Prozeß
am Kopf der Warteschlange eine höhere Priorität als der alte, so wird dem laufenden Prozeß die Steuerungsbefugnis weggenommen und
dem neuen Prozeß übertragen. Hierzu bewirkt eine Firmware-Prioritätsubroutine PRIQ 1418 die Einordnung des laufenden Prozesses CJP
in die Warteschlange, indem die LIFO-Priorioritäts- und die bv-Prioritätsnummer
zunächst unter der Steuerung der Firmwai-e Subroutine
RLLO 1419 den alten Prozeß absetzen. Die RLLO Subroutine bewirkt das Einschreiben der -in den Generalregistern, Basisregistern,
wissenschaftlichen Registern, T-Registern, Statusregistern und im Befehlszählwerk enthaltenen Informationen des alten Prozesses
zurück in die geeigneten Speicherbereich des Prozeßsteuerblocks im Hauptspeicher und bewirkt die Fortschreibung der VerarbeitungsZeitberechnung.
Außerdem wird die DEXT-Nummer des Prozeßhauptwortes PMWO im Prozeßsteuerblock 400 bei 1420 forlgeschrieben.
Der neue Prozeß NJP ist nunmehr für die Steuerungsübernahme vorbereitet.
Das Grenzadressenregister BAR wird abgerufen bei 1422, und das laufende Prozeßwort RPV? wird von der Adresse BAR plus
der Systembasis bei 1423 abgerufen. Der Name des neuen Prozesses NJP wird zunächst in das laufende Prozeßwort RPW eingeschrieben
und da diesser Name in der Prozeßverbindung PL der Warteschlange Q/PR/RDY steht, wird der Name in der Prozeßverbindung PL im Block
1424 in das laufende Prozeßwort eingegeben. Damit wird der neue Prozeß'aus der Warteschlange der nunmehr laufende Prozeß und ist
in der Lage, die Zentraleinheit zu steuern. Er wartet nicht länger in der Q/PR/RDY-Warteschlange und muß folglich aus dieser
Warteschlange, entfernt werden, indem sein Name an der Stelle 1425
aus der Prozeßverbindung PL dieser Warteschlange herausgenommen wird. Sobald dies erledigt ist, wird die Warteschlange durch eine
Firmware-Subroutine UQLK bei 1425a fortgeschrieben. Die JP-Numiner
des gerade aus der Anlage herausgenommenen Prozesses wird
€09853/0755
in eine Prozeßverbindung in der Q/PR/RDY-Warteschlange eingegeben,
weil er nunmehr nicht langer die Anlage steuert/ sondern bei 1426 auf sie warten muß. Zu diesem Zeitpunkt wird die übergabe der
Steuerung der Zentraleinheit auf den neuen Prozeß und die Einordnung des alten Prozesses in die Warteschlange bewirkt, denn dort
befindet sich der neue Prozeß in der Steuerbefugnis über die Zentraleinheit, der Vakanzanzeiger steht bei 1427 auf "O". Würde kein
laufender Prozeß die Zentraleinheit steuern, so stünde der Vakanzanzfiger
auf "1". Nunmehr ist die Zuordnung des Prozessors beendet, der neue Prozeß arbeitet jetzt mit der Zentraleinheit zusamme^
und der alte Prozeß befindet sich in der Warteschlange. Noch ist jedoch der neue Prozeß noch nicht in der Lage abzulaufen,
weil die Hardware der Zentraleinheit 1306 in Figur 13a wie z.B. die Generalregister 1307, die Basisregister 1308, die wissenschaftlichen
Register 1309, das T-Register 1310, die Zustar.dsregister
1311 und der Befehlszähler 1312 vom Prozesteuerblock des
neuen Prozesses erst mit Steuerinformationen versorgt v/erden müssen.
Hierzu steuert die Firmware-Subroutine 1430 die Zentraleinheit und
ruft zunächst das PMW 3 vom Prozeßsteuerblock (Figur 4) in den Zwischenspeicher 1315 und anschließend das Prozeßhauptwort O ab.
Das MBZ-FeId des PMW 0 wird bei 1433 überprüft und wenn es nicht gleich binär 0 ist, erscheint ein PCB-Ausnahmesignal, Ist jedoch
das MBZ-FeId des PMW 0 gleich Null, so wird das PMW 1 bei 1434
abgerufen. Erneut wird das MBZ-FeId des PMW 1 überprüft, um festzustellen,
ob es gleich 0 ist oder nicht. Ist es nicht gleich 0, so erscheint ein einen unzulässigen Steuerblock anzeigendes Ausgangssignal.
Andernfalls geht der Zuteiler nach C über. Das Adressraumwort ASW 0 wird aus dem entsprechenden Speicher im PCB
abgerufen und der Segmenttabellenwortumfang STWSZ bei 1437 überprüft, um festzustellen, ob er kleiner als 7 ist oder nicht. Ist
er größer als 7, so entsteht ein PCB-Ausnahmesignal. Ist es kleiner oder gleich 7, so wird das ASW 1 bei 1438 aus dem PCB entnommen
und sein STWSZ-FeId bei 1439 überprüft um festzustellen, ob
609853/0755
es kleiner oder gleich 8 ist oder nicht. Ist dieses Feld größer als 8, erscheint ein PCB~Ausnahmesignal.. Ist STWSZ gleich oder
kleiner als 8, so wird bei 1440 das Ausnahmewort EXW abgerufen
und sein MBZ-FeId überprüft um festzustellen, ob es gleich O ist
en oder nicht. Ist es gleich 0, so entsteht ein ein unzulässigen PCB
anzeigendes Ausnahmesignal. Ist es gleich 0, so wird das Stapelspeicherwort SKW bei 1442 abgerufen und sein MBZ-FeId bei 1443
überprüft. Ist das MBZ-FeId nicht 0, so erscheint ein PCB-Ausnahmesign;
andernfalls wird das Befehlszählerwort ICW aus dem PCB abgerufen und in deai Befehlszähler IC eingegeben und sein Hinweisfeld
TAG bei 1445 überprüft, ob es gleich 0 ist oder nicht. Ist es nicht gleich 0, so erscheint ein Signal für einen unzulässigen
PCB. ' Andernfalls wird das MBZ-FeId (Bits 0-31) bei
1446 abgerufen und bei 1447 überprüft, ob es gleich 0 ist oder nicht. Ist es nicht gleich 0, dann erscheint ein PCB-Ausnahmesignal;
ist es jedoch gleich 0, so werden die Stapelspeicherbasisworte SBW 0, 1 und 2 bei 1448 abgerufen. Der Inhalt der acht
Basisregister im Basisregister-Sicherheitsbereich des PCB wird bei 1449 abgerufen und in den Basisregistern 1308 der Anlage abgelegt.
Dann werden die Inhalte der 16 Generalregister aus dem
Generalregister-Sicherstellungsbereich des PCB bei 1450 abgeladen
und in die Generalregister der Zentraleinheit bei 13Q7 eingegeben.
Vor dem Abruf der wissenschaftlichen Register wird das Fähigkeitsbyte de PMW 0 überprüft, um festzustellen, ob der wissenschaftliche
Modus benutzt wird oder nicht (1451). Wird der wissenschaftliche
Modus verwendet, dann werden die Inhalte der wissenschaftlichen
Register aus der entsprechenden Sicherstellungszone des PCB
abgerufen und bei 1452 gespeichert. Die Firmware prüft anschliessend
das Fähigkeitsbyte des PMW 0, um festzustellen, ob der Berechnungsmodus angewandt wird (1453). Ist dies der Fall, d.h.
steht das Fähigkeitsbyte auf binär 1, so besteht im PCB ein Berechnungswort
und das Berechnungswort RTA für die Vorbercitungszeit wird fortgeschrieben. Anschließend überprüft die Firmware,
ob die DEXT-Nummer auf 0 steht - (1454). Ist dies nicht der Fall,
so gibt sie an, daß die Maschine> im Emulationsmodus arbeiten
kann, d.h. die DekororwextGrungsmögliehkeit benutzt wird. Dement-
609853/0755
sprechend wird d-ie DEXT-Nummer des PMW 1 bei 1455 überprüft,
um festzustellen, ob sie größer oder kleiner als das DETSZ-FeId
des Prozeßhauptwortes 3 ist. Ist sie größer, so erscheint bei 1456 eine PCB-Ausnähme. Ist die DEXT-Nummer kleiner als das
DETSZ-FeId aber nicht gleich O, dann läuft die Maschine in einem
zulässigen Emulationsmodus ab und geht zu F über. Wenn im Entscheidungsblock 1455 das DEXT-FeId gleich O ist, so wird der ·
Eigenbereichmodus ausgeführt und die Maschine ruft die Segraent-Tabellenworte STW bei 1457 ab. Das Restzeitwort RTO des Prozeß-Steuerblocks
wird bei 1458 abgerufen und der Prozeßzeitgeber mit derjenigen Zeitspanne geladen, welche der laufende Prozeß im
Arbeitszustand zubringen kann.
Bis zu diesem Zeitpunkt hat entweder(a)ein neuer Prozeß NJP die
Steuerung der Zentraleinheit übernommen, falls ein alter Prozeß CJP'.in der Maschine war und der neue Prozeß eine höhere Priorität
als der alte hat, oder (b) es war kein alter Prozeß in der Zentraleinheit und der Kopfprozeß der Warteschlange wurde verarbeitet.
Unter der Bedingung (a) wurde der alte" Prozeß aus dem laufenden Prozeßwort entfernt und in eine Prozeßverbindung PL in der Warteschlange
eingegeben, während der neue Prozeß in der Prozeßverbindung Q/PR/RDY in das laufende Prozeßwort RPW eingefügt v/urde
und somit die Zustände der beiden Prozesse umgeschaltet worden. Der neue Prozeß wurde zum laufenden Prozeß und erhielt Steuerbefugnis
über die Zentraleinheit, während der alte Prozeß diese Steuerbefugnis abgegeben hat. Dann erfolgt der Zugriff zum PCB
des neuen Prozesses und die Information zur Durchführung des neuen Prozesses wurde in den Zwischenspeicher oder in die Registeranordnung
des Adressensteuerwerks übertragen.
Falls gemäß Zustand (b) kein alter Prozeß die Zentraleinheit steuerte, wurde der Kopfprozeß der Warteschlange der vorbereiteten
Prozesse zur Verarbeitung übernommen und der neue Prozeß zum laufenden Prozeß, weil der Zuteiler dieser von der Prozeßverbindung
PL am Kopf der Warteschlange entnommen und in das RPW-Wort übertragen hat. Hierdurch entstand eine leere Prozeß-
6098B3/07B5
Verbindung PL in der Warteschlange/ die herausgenommen werden
mußte.
Am Entscheidungsblock 1461 bestimmt die Firmware, ob ein laufender
Prozeß Gteuerbefugnis über die Zentraleinheit hatte und falls eine freie Prozeßverbindung FPLS bestand, erfolgte ein Zugriff
hierzu und sie wurde in die Warteschlange eingereiht und der laufende Prozeß eingeschrieben. Wenn jedoch kein laufender Prozeß
die Zentraleinheit steuerte, wird das PMW O des neuen Prozesses bei 1460 fortgeschrieben und erneut bei 1463 überprüft, ob ein
laufender Prozeß in der Maschine ist. Ist dies nicht der Fall, so wird die Prozeßverbindung des neuen Prozesses, welcher sich in
der Warteschlange befand un nun die Maschine steuert, bei 1466 aus der Warteschlange Q/PR/RDY herausgenommen und wird zu einem
FLSP
Verbindungsfreigabesemaphor/und nunmehr in die Warteschlange freier Prozeßverbindungen (805 in Figur 9) eingereiht. Sie wird zu einem Teil der Warteschlange 1466a der freien Prozeßverbindungen. Die Inhalte der Grenzadressenregister BAR werden abgerufen bei I464f und das laufende Prozeßwort RPW des neuen Prozesses, welcher nunmehr der laufende Prozeß ist, wird bei BAR plus 56 der Systembasis abgelegt und dadurch fortgeschrieben, daß die Identifizierung des neuen Prozesses bei 1465 in das laufende Prozeßwort RPW eingeschrieben wird. Der Vakanzindikator wird auf 0 gesetzt, wenn kein laufender Prozeß vorhanden war. Anschließend wird der Ausscheidungsindikator bei 1467 auf 0 gesetzt und der Segmentassoziator AS 132 in Figur!, der ein typischer inhaltsadressierbarer Speicher ist, wird bei 1471 gelöscht. Damit erreicht der Prozeß den Prozeßmodus bei 1470. Dieser zeigt an, daß Ausnahmesignale durch den im Prozessor ablaufenden Prozeß und nicht durch das Betriebssystem verarbeitet werden. Die Firmware schreitet dann zu CAB 1480 fort und ein asynchrones Auffang-Bit AB wird bei 1481 überprüft, ob es auf binär 1 steht oder nicht. Steht das AB-Bit auf 1, dann erfolgt eine überprüfung bei 1482, ob die Prozeringnummer PRN größer oder gleich der asynchronen Ringnummer ARN ist. Das Abfang-Bit AB und die Abfang-Ringnummer ARN befinden sich im Prioritäts-Byte des PCB jedes Prozesses und haben Bedeutung, wenn
Verbindungsfreigabesemaphor/und nunmehr in die Warteschlange freier Prozeßverbindungen (805 in Figur 9) eingereiht. Sie wird zu einem Teil der Warteschlange 1466a der freien Prozeßverbindungen. Die Inhalte der Grenzadressenregister BAR werden abgerufen bei I464f und das laufende Prozeßwort RPW des neuen Prozesses, welcher nunmehr der laufende Prozeß ist, wird bei BAR plus 56 der Systembasis abgelegt und dadurch fortgeschrieben, daß die Identifizierung des neuen Prozesses bei 1465 in das laufende Prozeßwort RPW eingeschrieben wird. Der Vakanzindikator wird auf 0 gesetzt, wenn kein laufender Prozeß vorhanden war. Anschließend wird der Ausscheidungsindikator bei 1467 auf 0 gesetzt und der Segmentassoziator AS 132 in Figur!, der ein typischer inhaltsadressierbarer Speicher ist, wird bei 1471 gelöscht. Damit erreicht der Prozeß den Prozeßmodus bei 1470. Dieser zeigt an, daß Ausnahmesignale durch den im Prozessor ablaufenden Prozeß und nicht durch das Betriebssystem verarbeitet werden. Die Firmware schreitet dann zu CAB 1480 fort und ein asynchrones Auffang-Bit AB wird bei 1481 überprüft, ob es auf binär 1 steht oder nicht. Steht das AB-Bit auf 1, dann erfolgt eine überprüfung bei 1482, ob die Prozeringnummer PRN größer oder gleich der asynchronen Ringnummer ARN ist. Das Abfang-Bit AB und die Abfang-Ringnummer ARN befinden sich im Prioritäts-Byte des PCB jedes Prozesses und haben Bedeutung, wenn
609853/07S5
sich der Prozeß im Verarbeitungszustand befindet. Sie werden
aus dem RPW an der Stelle BRA plus 56 der Systembasis abgeleitet und zurückgestellt, weil der nächste Schritt 1484 zu
einer asynchronen Abfangroutine führt, die jene Zustände berücksichtigt, welche veranlassen, daß das asynchrone Abfang-Bit
oder die asynchrone Ringnummer in die erste Stelle eingegeben v/erden. Würden diese Bits nicht zurückgesetzt, so
würde der nächste Firmware-Durchlauf anzeigen, daß irgendetwas
falsch gelaufen ist, obwohl tatsächlich nichts falsch ist. Folglich würde immer die asynchrone Abfangroutine 1584 auftreten
und niemals eine Durchführung erfolgen. In den Entscheidungsblocks 1481 und 1482 würde, wenn das AB-Bit nicht
gesetzt ist..oder das AB-Bit gesetzt und die Prozeßringnummern nicht größer als die asynchrone Ringnummer ist, die Firmware
übergehen, zu bestimmen, in welchem Modus der Prozessor laufen
würde, nämlich im normalen Modus oder im Emulationsmodus.
Demzufolge wird die DEXT-Nummer überprüft ob sie auf O gesetzt ist und wenn nicht, läuft bei 1487 der Normalmodus der
Maschine an. Ist jedoch die DEXT-Nummer nicht gleich O, so wird bei 1486 der Emulationsmodus eingeleitet.
Detaillierte Beschreibung der Erfindung
Das Hardware/Firmwaresystem kennt zwei grundlegende Typen von Datensätzen, welche in Gruppenoperationen bearbeitet
werden. Diese beiden Arten von Datensätzen sind die virtuellen Speicher-Datensätze gemäß Figur 15A und die Datenbank-Datensätze
gemäß Figur 15B. Die virtuellen Speicher-Datensätze werden im allgemeinen intern für Betriebssystemprozeduren
verwendet, wobei Datensätze durch segmentierte Adressen adressiert werden können. Datenbank-Datensätze werden im
allgemeinen durch Benutzerprogramme benutzt, welche ihre Datensätze durch die Nummer des Bereichs, der Seite und der
Zeile adressieren. Der Bereich bezieht sich auf eine Benutzerdatei, die Seite auf eine Unterteilung innerhalb dieser Datei
609853/07S5
und die Zeilennummer auf einen speziellen Datensatz innerhalb dieser Seite der Datei.
Gemäß Figur 15A besteht der virtuelle Speicher-Datensatz aus folgenden Feldern: Das Typfeld 1501 stellt eine Beschreibung
der Art des Datensatzes dar und wird von dem Datensatzdescriptor dieses Datensatzes hergeleitet. Dies wird später
näher beschrieben. Das D-Umschaltfeld 1502 des virtuellen Speicher-Datensatzes beschreibt den Zustand des Datensatzes«
Der Datensatz kann sich in den folgenden Zuständen befindenι
Aktiv, dies bedeutet, daß der Datensatz augenblicklich gültige Daten enthält; und logisch gelöscht, dies bedeutet, daß der
Datensatz keine gültigen Daten mehr enthält aber weiterhin Speicherraum besetzt hält. Das Längenfeld 1503 beschreibt
die tatsächliche Anzahl von Bytes in dem Datensatz. Der Datensatzkörper 1504 enthält die tatsächlichen Daten des Datensatzes,
Das Hinweisadressen-Folgefeld 1505 bildet einen Teil des Datensatzkörpers und kann die Hinweisadressen auf den nächsten,
den vorangehenden, den ersten und den letzten Datensatz oder auf den Benutzerdatensatz enthalten, wobei diese Datensätze
Teil einer Gruppe sind, in der sie als Benutzer- oder Mitglieds-Datensätze vorliegen.
Der zweite Haupttyp eines Datensatzes, der durch das Hardware/ Firmwaresystem erkennbar ist, wird durch Datenbank-Datensätze
gemäß Figur 15B gebildet. Das Typfeld 1510 beschreibt wiederum die Art des Datensatzes und wird in der nachstehend noch zu
beschreibenden Weise von dem Datensatzdescriptor des Datensatzes abgeleitet. Das Längenfeld 1511 beschreibt die Länge
des Datensatzes in Bytes. Der Datensatzkörper 1512 enthält die tatsächlichen Daten des Datensatzes. Die Hinweisadressenfolgc
1513 enthält die Hinweisadressen auf den nächsten, vorangegangenen, usw. Datensatz der Gruppe. Es gibt ferner ein D-Umschal
tfeld 1604 für jeden Datensatz, welches separat aufgezeichnet ist und nachfolgend noch beschrieben wird.
609853/0 7 55
ty
Die Figuren 15C und 15D beschreiben ferner das Format der Hinweisadressenfolge eines Datensatzes entsprechend der Felder
1505 und 1513 in den Figuren 15Λ und 15B. Das Hardware/Firmwaresystem erkennt zwei verschiedene Formate von Hinweisadressenfolgen,
von denen eines in Figur 15C dargestellt ist und die erkannte Folge für Mitglieds-Datensätze darstellt und von
denen das andere für den Fall eines Benutzer-Datensatzes in Figur 15D dargestellt ist. Hinsichtlich der Mitglieds-Datensätze
(Figur 15C) enthält das Nächst-Hinweisadressenfeld 1520
die Adresse des nächsten Mitglieds innerhalb der Gruppe. Das Vorangehend-Hinweisadressenfeld 1521 enthält die Adresse des
vorangehenden Mitglieds innerhalb der vorliegenden Gruppe. Das Benutzer-Hinweisadressenfeld 1524 enthält die Adresse des Benutzers
der Gruppe. Hinsichtlich der Benutzer-Datensätze ist das durch die Hardware/Firmware erkannte Format der Hinweisadressenfolge
in Figur 15D dargestellt. Das Erst-Hinweisadressenfeld 1532 enthält die Adresse des ersten Mitglied-Datensatzes
der Gruppe. Das Letzt-Hinweisadressenfeld 1533 enthält die Adresse des letzten Mitglied-Datensatzes innerhalb der
Gruppe.
Jede dieser beschriebenen Hinweisadressen (nächst, vorangehend, usw.) ist wahlfrei. Für eine vorgegebene Gruppe sind jedoch
lediglich die folgenden Kombinationen legal:
Fall 1. Keine erste, letzte, nächste oder vorangehende Hinweisadressen für Benutzer- oder Mitglied-Datensätze.
(Die Mitglied-Datensätze besitzen Benutzer-Hinweisadressen)
Fall 2. Der Benutzer-Datensatz besitzt eine Erst-Hinweisadresse und die Mitglieder-Datensätze besitzen
Nächst-Hinweisadressen. (Die Mitglied-Datensätze,
können Benutzer-Hinweisadressen aufweisen oder auch nicht)
609853/0755
Fall 3. Der Benutzer-Datensatz weist Erst- und Letzt-
Hinweisadressen auf und die Mitglied-Datensätze
besitzen Nächst-Hinweisadressen. (Die Mitglied-Datensätze können Benutzer-Hinweisadressen aufweisen
oder nicht)
Fall 4. Der Benutzer-Datensatz besitzt Erst- und Letzt-Hinweisadressen
und die Mitglieder-Datensätze weisen Nächst- und Vorangehend-Hinweisadressen
auf. (Die Mitglieder-Datensätze können Benutzer-Hinweisadressen aufweisen oder auch nicht)
Eine weitere Charakteristik des Hardware/Firmwaresystems besteht in seiner Möglichkeit, vier verschiedene Klassen oder
Formate von Hinweisadressen zu erkennen. Innerhalb eines Datensatzes werden diese Klassen wie folgt bezeichnet: Klasse O,
diese v/erden nur für virtuelle Speicher-Datensätze verwendet; Klasse 1, diese werden ebenfalls nur für virtuelle Speicher-Datensätze
verwendet; Klasse 2, diese werden nur für Daten-Datensätze verwendet und Klasse 3, diese werden nur für Datenbank-Datensätze
verwendet.
Alle vier Hinweisadressen-Klassen weisen eine gemeinsame Bedeutung
hinsichtlich ihrer ersten beiden Bits auf. Das erste Bit, das EOS-Bit ist ein Indikatorbit für das Ende einer Gruppe.
Weist dieses Bit den Wert "1" auf, so verweist die Hinweisadresse per Definition auf einen Benutzer-Datensatz. Das zweite
Bit, das NINS-Bit ist ein Indikatorbit dafür, daß der Datensatz nicht eingefügt wurde. Wenn dieses Bit den Wert "1" einnimmt,
so ist der Datensatz augenblicklich nicht als ein Mitglied der Gruppe, auf die Bezug genommen wird, eingefügt.
Das Format der Hinweisadresse von der Klasse O ist in Figur 15E
dargestellt. Das EOS-Bit 1540 und das NINS-Bit 1541 belegen die erste und zweite Bitposition. Das SRA-FeId 1542 stellt einen
14-Bit-Offset dar, wodurch eine Verschiebung innerhalb eines
vorgegebenen Segmentes angezeigt wird, was auf den in diesem
6 09853/0755
Segment abgespeicherten Datensatz verweist. Das SRA-Feld, das
aus den Hinweisadressen der Klasse O gewonnen wird, ist immer mit einer Segmentnummer verbunden, die im allgemeinen von dem
Basisregister gewonnen wird, das für die Adressierung von Datensätzen über Hinweisadressen der Klasse O benutzt wird.
Die Hinweisadresse der Klasse 1 ist in Figur 15F dargestellt.
Das EOS-Bit 1550 und das NINS-Bit 1551 entsprechen der Standarddefinition.
Das Feld SEG, SRA 1552 setzt sich aus der segmentierten
Standardadresse mit SEG und SRA in der zuvor definierten Weise zusammen. Diese Hinweisadressen werden für die direkte Adressierung
eines Datensatzes benutzt, wobei die Segmentnummer direkt über die Hinweisadresse gewonnen wird.
Hinsichtlich der Hinweisadressen der Klassen 2 und 3, die im Zusammenhang mit Datenbank-Datensätzen verwendet werden, macht
das Firmware/Hardwaresystem von einem Übereinkommen Gebrauch, daß für jedes Basisregister des zuvor beschriebenen Systems
(siehe Figur 2, 202) ein Indexregister zugeordnet ist. Die Generalregister 8 bis 15, 201 entsprechen den Indexregistern
0 bis 7. Die Indexregisternummer IXR. ist an die Basisregisternummer BR. angepasst. Beispielsweise enthält für das Basisregister
BR3 das Indexregister IXR3 (GRlI) eine Hinweisadresse auf eine Bereich-Seite-Zeilennummer (siehe Figur 15H), dessen
laufende SEG, SRA-Adresse in dem Basisregister BR3 enthalten ist. Der Benutzer ist somit in der Lage, seinen Datensatz entweder
über ein Basisregister mit der SEG, SRA-Adresse oder über eine Datenbank-Hinweisadresse, wie sie in dem Indexregister
des Bereich-Seiten-Zeilen-Formats enthalten ist, zu adressieren.
Die Hardware/Firmwarebefehle, die auf die Datenbank-Datensätze einwirken, weisen die Fähigkeit auf, Bereich, Seiten, Zeilen-Hinweisadressen
automatisch in SEG, SRA-Adressen umzuwandeln. Daher benutzen alle tatsächlichen Speicherbezugnahmen durch die
Datenbank-Befehle den Standard-Hardwaremechanismus, der den
609853/0755
Speicher mit Segment und SRA-Nummer adressiert, wobei die Umwandlung
der in einem Indexregister enthaltenen Bereich-Seite-Zeile erforderlichenfalls automatisch durch die Hardware erfolgt.
Es gibt eine zeitweise 1:1 Übereinstimmung zwischen einer Seite in einer Benutzerdatei (Bereich) und einem Segment, v/ie es
durch die Hardware/Firmware identifiziert wird. Die Hardware/ Firmware wandelt daher über einen weiter unten noch zu beschreibenden
Seitendescriptormechanismus jede gegebene Seitennummer in eine Segmentnummer um.
Das Format der Hinweisadresse der Klasse 2 ist in Figur 15G dargestellt. Die Felder 1560 und 1561 weisen das EOS-Bit und
das NINS-Bit auf. Die Seitennummer ist im Feld 1562 enthalten. Die Zeilennummer ist im Feld 1563 abgelegt und stellt die
Nummer eines Datensatzes innerhalb einer Seite in einem Bereich dar. Eine Hinweisadresse auf die vollständige Bereich-Seiten-Zeilennummer
gewinnt man durch Benutzung von Datensätzen der Klasse 2, wobei die Bereichnummer aus dem Indexregister
gewonnen wird, auf das durch den Datenbank-Befehl Bezug genommen wird.
Die Formate der Hinweisadressen der Klasse 3 sind in Figur 15H dargestellt. Die Felder 1570 und 1571 weisen das EOS-Bit und
das NINS-Bit auf. Die Bereichnummer ist im Feld 1572 abgelegt. Diese bezieht sich auf die Benutzer-Dateinummer. Die Seitennummer
1573 und die Zeilennummer 1574 adressieren einen bestimmten Datensatz innerhalb der Benutzerdatei.
Gemäß Figur 16A ist die Seite einer Datenbank dargestellt, welche einen Teil einer Benutzerdatei (Bereich) bildet, wie
sie durch das Hardware/Firmwaresystem identifiziert wird. Die
Datenbank-Seiten enthalten die Datenbank-Datensätze wie zuvor anhand Figur 15B beschrieben. Wie bereits erwähnt, gibt es
609853/0755
eine 1:1 Übereinstimmung zwischen einer Datenbank-Seite und einem Segment zu dem Zeitpunkt, wo die Datenbank-Seite im
Hauptspeicher abgelegt ist.
Die Seiten-Kopfzeile 1601 enthält gewisse Informationen über die Seite, in welcher sie enthalten ist. Beispielsweise kann
sie die Länge der Seite in Bytes beschreiben und ebenfalls einen Hinweis auf die Anzahl der Datensätze (Zeilen) innerhalb
der Seite geben. Sie kann ferner eine Information in Form eines Schreibbits enthalten, welches beim Einschreiben in die Seite
gesetzt v/urde als sie noch im Hauptspeicher enthalten war. Folgend auf die Kopfzeile bildet das Zeilen-Offsetfeld 1602
den nächsten Hauptteil der Datenbankseite. Dieses ist ein Feld von 16-Bit-Elementen, welche auf einer 1:1 Basis mit
gültigen Zeilennummern für die Seite übereinstimmen. Für jedes Element des Zeilen-Offsetfeldes gibt es ein D-Umschaltfeld 1604
von 2 Bit und ein Offset-Feld 1603 von 14 Bit. Das D-Umschaltfeld
beschreibt den Zustand des Datensatzes beispielsweise als inaktiv, logisch gelöscht, physikalisch gelöscht oder aktiv.
Das Offsetfeld stellt eine 14-Bit-Hinweisadresse auf den
Datensatz dar, was einer relativen Verschiebung in Bezug auf den Seitenbeginn entspricht. Es ist ersichtlich, daß die Hardware
in der Lage ist, einen Datenbank-Datensatz in dieser Seite durch Benutzung des Offsets zu adressieren, wobei der Offset
mit der zu dieser Seite gehörigen Segmentnummer verkettet ist. Das Verfahren zur Gewinnung der entsprechenden Segmentnummer
wird weiter unten beschrieben. Der verbleibende Teil der Datenbankseite setzt sich aus den tatsächlichen Datenbank-Datensätzen,
z.B. den Datensätzen 1610 und 1612 zusammen. Diese Datensätze können in irgendeinem Teil der Seite (Segment) angeordnet sein
und befinden sich nicht notwendigerweise in der gleichen Reihenfolge, wie dies ihrer Position in dem Zeilen-Offsetfeld entspricht.
Wenn das D-Umschaltfeld den Datensatz-Zustand als inaktiv oder physikalisch gelöscht beschreibt, so wird das
Offsetfeld auf 0 gesetzt und der Datensatz ist nicht existent.
609853/0755
Die tatsächliche Datenbank-Seite wird durch einen Seitendescriptor
gemäß Figur 16B adressiert. Die Segmentnummer 1625 des Seitendescriptors enthält die Segmentnummer entsprechend
der Seitennummer, nachdem sie in den Hauptspeicher geladen
ist. Die Bereichnummer 1622 enthält die Bereichnummer (Datei) dieser Seite. Die Seitennummer 1624 stellt die tatsächliche
Seitennummer dar. Der Indikator 1626 für die letzte Seite weist hinsichtlich der höchsten Seitennummer für einen vorgegebenen
Bereich den Wert "1" auf. Der Verschiebezahlstand 1623 enthält die Anzahl der Bits der Seitennummer. Das Hardware/Firmwaresystem
identifiziert eine veränderliche Länge der Seitennummer durch Benutzung der Formate der Bereich-Seiten-Zeilen-Hinweisadresse.
Der Nächst-Descriptor 1620 wird zum Hinweis auf den nächsten Seitendescriptor innerhalb einer Kette
von Seitendescriptoren verwendet. Der Vorangehend-Descriptor
1621 verweist auf den vorangehenden Descriptor innerhalb einer Kette von Seitendescirptoren. Die Verwendung dieser Seitendescriptorketten
wird weiter unten beschrieben.
Die Seitendescriptorkette wird durch einen Hardware/Firmwaremechanismus
gebildet, der benutzt wird, um anzuzeigen, welche Seiten innerhalb von Dateien gerade im Hauptspeicher des
Computersystems abgelegt sind. Für jede im Speicher vorhandene
Seite wird ein Seitendescriptor in einer von einem einsigen System identifizierbaren Kette abgelegt, auf welche durch die
integrierte Zugriffssteuerung-Hinweisadresse gemäß Figur 16C
hingewiesen wird. Die integrierte Zugriffssteuerung-Hinweisadresse
stellt eine Einworterweiterung hinsichtlich der zuvor beschriebenen Systembasis dar. Die integrierte Zugriffssteuerung-Hinweisadresse
ist unter der Adresse BAR plus 92 abgelegt, welche Adresse sich ein Wort nach dem Ende der Systembasis befindet.
Das Format der integrierten Zugriffssteuerung-Hinweisadresse IAC enthält ein MBZ-FeId 1630, eine G-Nummer 1631 und
ein Verschiebefeld 1632. Die G-Nummer ist eine Nummer eines G-Segmentes wie zuvor beschrieben. Das Verschiebefeld gibt
eine Verschiebung innerhalb dieses G-Segmentes an, wodurch
6 09853/0755
der Beginn des Seitendescriptorringes angezeigt wird. Die Seitendescriptoren aller in einem Hauptspeicher enthaltene
Seiten werden sodann zusammen im herkömmlichen Kettenformat miteinander verbunden. Die Nächst-Descriptor- und Vorangehend-Descriptor-Felder
bilden die Verbindung.
Figur 17 zeigt das Hardware/Firmware-Flußdiagramm für die Abspeicherung einer Datenbankseite im Hauptspeicher. Die
Firmware wird benutzt, um eine Hinweisadresse für die Bereich-Seite-Zeilenzahl aufzugreifen und zunächst festzustellen, ob
sich die Seite im Hauptspeicher befindet und zweitens, um den
Seitendescriptor für diese Seite zu bilden, falls die Seite als im Hauptspeicher vorhanden gefunden wird. Die Firmware
startet hierbei mit dem Schritt 1701.
Die erste Firmwareaktion tritt im Schritt 1702 auf, wo eine IAC-Hinweisadresse aus dem Hauptspeicher am Speicherplatz
BAR plus 92 abgerufen wird. Die IAC-Hinweisadresse ist in
der Systembasis gemäß Figur 6 enthalten. Als Ergebnis dieses Speicherabrufs kann die Speicherzugriffsausnahme 1703 auftreten.
Beispiele einer Speicherzugriffsausnahme sind gegeben,
wenn sich die abzurufende Größe außerhalb des physikalischen Speichers befindet oder wenn ein Speicherlesefehler auftritt.
Der nächste von der Firmware ausgeführte Schritt 1704 überprüft das MBZ-FeId auf den Wert Null. Wenn das Feld den Wert
Null nicht aufweist, so tritt eine Systemüberprüfung 1705 auf. Beim Αμί^χ^ einer Systemüberprüfung geht das System in einen
Diagnostizierzustand über.
Wenn das MBZ-FeId den Wert Null aufweist, so wird der Schritt
1706 als nächstes ausgeführt. Die G-Nummer des IAC-Feldes wird
in das temporäre Register G übertragen.. Das Verschiebefeld wird in das temporäre Register D übertragen. Die Verschiebung
wird ferner in einem Zwischenspeicher an einen Speicherort übertragen, der als erste Hinweisadresse bezeichnet wird. Der
Schritt 1707 wird als nächstes ausgeführt. Die Abrufung des
609853/0755
FIauptspeichers erfolgt an der Adresse G, D zwecks Abrufung
eines Seitendescriptors (siehe Figur 16B). Dieser Abruf erfolgt in Übereinstimmung mit der zuvor beschriebenen G, D-Adressierung.
Eine G, D-Zugriffsausnahme 1708, kann als Folge dieses Speicherabrufs auftreten. Als nächstes führt die Firmware
den Schritt 1709 aus. Die Bereichsnummer und Seitennummer der Bereich-Seiten-Zeilennummer werden durch die Firmware-Subroutine
geprüft und mit dem Bereichsnummernfeld 1622 und dem Seitennummernfeld 1624 des Seitendescriptors hinsichtlich
Übereinstimmung verglichen. Wenn die Bereich- und Seitennummern übereinstimmen, so wird der Schritt 1720 ausgeführt, in welchem
die Firmwareroutine endet und wobei der gerade aus dem Hauptspeicher abgerufene Seitendescriptor in den Zwischenspeicher
geladen wird.
Wenn die Bereichs- oder Seitennummer des vorliegenden Seitendescriptors
nicht mit der Bereichs- und Seitennummer der gerade 'geprüften Bereich-Seiten-Zeilen-Hinweisadresse übereinstimmt,
so wird der Schritt 1711 ausgeführt. Das Nächst-Descriptorfeld
1620 des Seitendescriptors für die vorliegende Seite wird gegen den Inhalt des temporären Zwischenspeicher-Speicherplatzes, der
die erste Hinweisadresse enthält, geprüft. Wenn diese beiden Werte nicht einander gleich sind, so wird der Schritt 1713
ausgeführt, in welchem das temporäre Register D mit dem Nächst-Descriptorfeld des vorliegenden Seitendescriptors geladen wird.
Auf den Schritt 1713 erfolgt eine Verzweigung durch die Firmware nach dem Schritt 1707, in welchem der neue durch den Nächst-Descriptor
adressierte Seitendescriptor abgerufen wird und der nachfolgend geprüft wird.
Geht man auf den Schritt 1711 zurück, so wird für den Fall, daß der Nächst-Descriptor dem Inhalt der ersten Hinweisadresse
an dem temporären Zwischenspeicherplatz entspricht,angezeigt, daß der gesamte Ring von Seitendescriptoren,der alle im Speicher
vorhandenen Seiten beschreibt, nunmehr herausgeholt worden ist,
609853/0755
- At--
ohne daß die durch die Firmware gesuchte Bereich-Seite aufgefunden
wurde. In diesem Fall tritt im Schritt 1712 eine Seitenausnahme auf, die anzeigt, daß die gesuchte Seite im Hauptspeicher
nicht vorhanden ist. Auf diese Ausnahme hin kann eine geeignete Softwareaktion auftreten, durch die die gesuchte Seite
unter Umständen in den Hauptspeicher gebracht wird.
Gemäß Figur 18 ist ein Blockdiagramm der Hardware dargestellt, die erforderlich ist, um eine Datenbank-Seite im Hauptspeicher
aufzufinden. Der dargestellte Mechanismus wird in Betrieb gesetzt, indem das Seitenauffindungs-Flip-Flop 1851 gesetzt wird,
welches in dem Hilfsspeicher 1317A des Rechenwerks 1317 der Zentraleinheit 104 angeordnet ist. Vor dem Setzen des Seitenauff
indungs-Flip-Flops 1851 wird die Bereichs-Seitennummer, deren
Seitendescriptor zu laden ist, in das Bereichs-Seiten-Register 1852 geladen. Der Inhalt des Bereichs-Seiten-Registers wird sodann
benutzt, um festzustellen, ob der geeignete Bereichs-Seitendescriptor
aufgefunden worden ist.
Das Setzen des Seitenauffindungs-Flip-Flops 1851 in den Zustand
"1" bereitet das UND-Gatter 1854 vor, welches sodann die Übertragung
des Inhalts des Grenzadressregisters 1853 zu dem Addierer 1856 gestattet. Der andere Eingang des Addierers wird durch eine
Konstante mit dem Wert 92 gebildet, welche Konstante in dem Hardwareregister 1885 gespeichert ist. Der Addierer 1856 ist im
Rechenwerk 1317 der Zentraleinheit 104 angeordnet. Der Ausgang des Addierers 1856 ist an ein UND-Gatter 1857 angeschlossen.
Das UND-Gatter 1857 wird durch das Seitenauffindungs-Flip-Flop
1851 vorbereitet. Bei Vorbereitung des UND-Gatters 1857 kann der Inhalt des Addierers 1856 zu dem Speicheradressregister 1858
des Speichersystems 1859 übertragen werden. Auf diese Weise wird eine Adresse-gebildet aus dem Grenzadressregisterinhalt plus 92 —
in das Speicheradressregister 1858 übertragen. Wie weiter vorne beschrieben, bildet diese Adresse die Adresse der integrierten
609853/0755
- TFC -
Zugriffssteuerung-Hinweisadresse die in der Systembasis auffindbar
ist. Die integrierte Zugriffssteuerung-Hinweisadresse IAC
kann aus dem Speichersystem 1859 ausgelesen werden. Das Ausgangssignal des Seitenauffindungs-Flip-Flop. 1851 wird durch den Invertierverstärker
1886 in den Wert "O" invertiert, welcher seinerseits zum Setzen des Lese/Schreib-Flip-Flops 1887 des Speichersystems
benutzt wird und dieses Flip-Flop auf den Wert "0" stellt (Speicher-Leseoperation). Nachdem das Speichersystem das Laden
des Speicheradressregisters 1858 festgestellt hat, kann somit eine Speicher-Leseoperation ausgelöst werden. Als Folge der
Speicher-Leseoperation können Speicher-Zugriffsausnahmen auftreten.
Wie zuvor beschrieben, verursachen die Speicher-Zugriffsausnahrnen
die Aktivierung des Ausnahme-Behandlungsmechanismus. Der Ausnahme-Behandlungsmechanismus wird durch Setzen des Speicher-Zugrif
fsausnahme-Flip-Flops 1860 aktiviert, falls solche Ausnahmen durch das Speichersystem festgestellt werden. Wenn
die Speicheroperation normal abläuft, so wird das Speicheroperation-Beendigungs-Flip-Flop
1861 auf den Wert "1" gesetzt, und der Inhalt der Hinweisadresse IAC aus dem Speicher ausgelesen
und zu dem Speicher-Datenregister 1862 übertragen. Das Speicheroperation-Beendigungs-Flip-Flop 1861 gibt hierbei die
Übertragung des Inhalts des Speicher-Datenregisters über das UND-Gatter 1863 frei. Dieser Inhalt, der die Hinweisadresse IAC
darstellt, besitzt das Format gemäß Figur 16c.
Das MBZ-FeId 1630 der Hinweisadresse IAC wird an einen Vergleicher
1865 abgegeben, der in dem Rechenwerk 1317 enthalten ist. Der Vergleicher 1865 vergleicht das MBZ-FeId mit dem Inhalt
eines Registers 1864, das den Wert "0" speichert. Wenn kein Vergleich vorliegt, so wird das Systemprüfungs-Flip-Flop 1866
auf den Wert "1" gesetzt. Stellt der Vergleicher 1865 den Gleichheitszustand fest, so gibt das Gleichheitssignal die übertragung
der G-Nummer 1631 und des Verschiebefeldes 1632 der Hinweisadresse IAC über das UND-Gatter 1867 nach dem G-Register 1873 und dem D-Register
1874 frei. Die logischen Schaltkreise für die übertragung in das D-Register 1874 werden weiter unten beschrieben.
609853/0755
Das Setzen des Seitenauffindungs-Flip-Flops 1851 seinerseits
verursacht das Setzen eines ersten Zeit-Flip-Flops 1869. Dieses Flip-Flop wird auf den Wert "1" gesetzt, um anzuzeigen, daß das
D-Register 1874 zum erstenmal geladen worden ist. Der Ausgang des Zeit-Flip-Flops 1869 ist zusammen mit dem Ausgang des UND-Gatters
1867 an das UND-Gatter 1871 angeschlossen, wobei das UND-Gatter 1867 das D-Verschiebefeld der Hinweisadresse IAC
enthält, über das UND-Gatter 1871 wird das Verschiebefeld der
Hinweisadresse IAC an ein ODER-Gatter 1872 weitergegeben, das seinerseits das Verschiebefeld in das D-Register 1874 überträgt.
Der Ausgang des Zeit-Flip-Flops 1869 wird zusammen mit dem Ausgang des UND-Gatters 1867 auf das UND-Gatter 1868 gegeben, über
das UND-Gatter 186 8 wird somit das erste Hinweisadressenregister 1870 mit dem anfänglichen Verschiebewert geladen, der aus der
Hinweisadresse erhalten wird. Die Benutzung des ersten Hinweisadressenregisters 1870 wird weiter unten beschrieben. Es sei
weiterhin vermerkt, daß der Ausgang des Zeit-Flip-Flops 1869 auf seinen Rückstelleingang zurückgeführt ist. Das Zeit-Flip-Flop,
das auf den Wert "1" gesetzt worden war und somit das Laden des ersten Hinweisadressenregisters 1870 und des D-Registers
1878 gestattet hat, wird somit anschließend auf den Wert "0" zurückgestellt.
Sind das G-Register 1873 und das D-Register 1874 einmal geladen,
so wird der G, D-Zugriffsmechanismus 1875 aktiviert. Dieser
Mechanismus bewirkt einen Abruf des Hauptspeichers unter der Adresse, die durch die Register G.und D vorgegeben ist, wobei
ein Seitendescriptor abgerufen wird (siehe Figur 16b). Dieser Mechanismus führt den Hautpspeicherabruf gemäß der zuvor beschriebenen
G, D-Adressierung durch. G, D-Zugriffsausnahmen können als Folge dieses Speicherabrufs auftreten (z.B. außerhalb
des Segmentes, illegaler G-D-Segmentdescriptor). Werden solche Ausnahmen festgestellt, so wird das G, D-Zugriffsausnahme-Flip-Flop
1876 auf den Viert "1" gesetzt, wodurch wiederum der Ausnahme-Behandlungsmechanismus aktiviert wird. Andernfalls
609853/0755
überträgt bei Beendigung des G, D-Zugriffes der Mechanismus 1875 die abgerufenen Daten in das Seitendescriptorregister 1877. Die
in das Seitendescriptorregister 1877 übertragenen Daten weisen das Format gemäß Figur 16b auf.
Nach dem Laden des Seitendescriptorregisters 1877 werden die Bereichsnummer 1622 und die Seitennummer 1624 in einen Verglei-·
eher 1878 eingegeben, der in dem Rechenwerk 1317 angeordnet ist. Zu diesem Zeitpunkt wird die Bereichs-Seitennummer, die in dem
Bereichs-Seitenregister 1852 abgelegt ist und die bei der Auslösung
des Seitenauffindungsmechanismus geladen wurde, ebenfalls in den Vergleicher 1878 eingegeben. Stellt der Vergleicher Gleichheit
fest, so ist der gesuchte Seitendescriptor aufgefunden worden und der Mechanismus hat seine Funktion beendet. Die Leitung
"Vergleich erfüllt" des Vergleichers 1878 wird daher an das Seitenauffindungs-Beendigungs-Flip-Flop 1879 angeschlossen. Das
auf dieser Leitung ausgegebene Signal setzt dieses Flip-Flop in den Zustand "1", wodurch die Beendigung des Seitenauffindungsmechanismus
angezeigt wird.
Wenn der Vergleicher 1878 einen nicht erfüllten Vergleich anzeigt,
so bereitet das an der entsprechenden Leitung abgegebene Signal das UND-Gatter 1880 vor und gestattet die Übertragung des nächsten
Descriptors 1620 von dem Seitendescriptorregister 1877 zu dem Vergleicher 1883 sowie zu dem UND-Gatter 1885. Der Vergleicher
1833 vergleicht den nächsten Descriptor 1620 mit dem Inhalt des ersten Hinweisadressenregisters 1870. Ist der Vergleich erfüllt,
so ist die gesamte Hinweisadressenkette von Seitendescriptoren
durchsucht worden und der gesuchte Seitendescriptor ist nicht aufgefunden worden. Unter diesen Bedingungen befindet sich
die gesuchte Bereichsseite nicht im Hauptspeicher und das Gleichheitssignal
des Vergleichers 1883 wird somit zum Setzen des Seiten-Ausnahme-Flip-Flops 1884 benutzt. Der Ausnahme-Behandlungsmechanismus
wird sodann durch das Setzen des Flip-Flops 1884 ausgelöst.
609853/0755
-55"-
Der Ausgang des UND-Gatters 1880, an dem der nächste Descriptor 1620 des Seitendescriptorregisters 1877 ansteht, ist ebenfalls
an das UND-Gatter 1885 angeschlossen. Dieses UND-Gatter wird durch das Signal "Ungleich" des Vergleichers 1883 vorbereitet,
der Ungleich-Zustand tritt auf, wenn das Ende der Seitendescriptorkette
von Hinweisadressen nicht erreicht worden ist. Das nächste Descriptorfeld wird daher von dem UND-Gatter 1883 zu
dem UND-Gatter 1882 übertragen, wenn das Ungleich-Signal den Wert "1" aufweist. Das andere Eingangssignal des UND-Gatters
1882 wird durch das Signal eines Invertierverstärkers 1881 gebildet. Dieses Signal des UND-Gatters 1881 stellt den invertierten
Ausgang des Zeit-Flip-Flops 1869 dar. Der Signalausgang des invertierenden UND-Gatters 1881 nimmt somit den Wert "1" ein,
wenn das Zeit-Flip-Flop 1869 den Wert "0" abgibt und das UND-Gatter 1882 wird hierdurch zur Übertragung des nächsten Descriptorfeldes
1620 zu dem ODER-Gatter 1872 freigegeben, wobei dieses ODER-Gatter seinerseits an das D-Register 1874 angeschlossen ist.
Durch diese Reihe von logischen Gattern wird das nächste Descriptorfeld von dem Seitendescriptorregister 1877 in das D-Register
1874 übertragen und der G, D-Zugriffsmechanismus ist anschließend
bereit, erneut aktiviert zu werden. Der Zyklus des G, D-Zugriffs wird nun erneut in Gang gesetzt und es wird ein neuer Seitendescriptor
abgerufen und in das Seitendescriptorregister 1877 geladen. Diese Operation des Abrufs neuer Seitendescriptoren
wird wiederholt bis entweder der Vergleicher 1878 den gesuchten Seitendescriptor feststellt oder bis der Vergleicher 1883 das
Ende der Seitendescriptorkette feststellt»
Zwei weitere wesentliche Elemente des Hardware/Firmware-Systems sind in den Figuren 19a und 19b dargestellt und werden anschließend
näher beschrieben. Der Gruppendescriptor gemäß Figur 19a wird zur Beschreibung der Eigenschaften einer vorgegebenen Gruppe benutzt.
Gemäß Figur 19a weist das P-FeId 1802 zwei Bit auf, die die Hinweisadressenklasse
(Modus) der Datensatz-Hinweisadressen in dieser Gruppe beschreiben. Alle Datensätze sowohl Benutzer-Datensätze,
609 8 53/0755
als auch Mitglieds-Datensätze besitzen Hinweisadressen der gleichen
Hinweisadressenklasse bezüglich einer vorgegebenen Gruppe. Das Benutzer-Hinweisadressenfeld des Gruppendescriptors 1803
wird auf den Wert "1" gesetzt, wenn Mitglieds-Datensätze eine Benutzer-Hinweisadresse auf den Benutzer-Datensatz (siehe Figur
15c) enthalten. Das andere Hinweisadressen bezeichnende Feld gibt an, ob Benutzer- und Mitglieds-Datensätze erste, letzte,
nächste und vorangehende Hinweisadressen aufweisen. Das Gruppen-Verwirklichungsmodus-Feld
K-1805 beschreibt die Art und Weise der Gruppenherstellung, die hinsichtlich der laufenden Gruppe
benutzt wird. Einzig der Modus der Ring-Gruppen ist in dieser Beschreibung näher erläutert. Es besteht jedoch die Möglichkeit,
der Erweiterung auf andere Moden der Gruppen-Verwirklichung, wie beispielsweise durch Tabellenanordnung oder Listenanordnung. Das
Verschiebefeld 1806 wird zur Anzeige des Offsets des Beginns des Datensatzes im Speicher in Bezug auf den Beginn der Hinweisadressenfolge
in diesem Datensatz benutzt (siehe Figuren 15a und 15b). Auf den Gruppendescriptor gemäß Figur 19a wird immer Zugriff durch
den Datenbank-Befehl genommen, wenn die Hardware/Firmware mit einer Beschreibung der ihr zugeführten Gruppe versorgt wird.
Der Datensatzdescriptor gemäß Figur 19b wird zur Beschreibung gewisser
Eigenschaften des Datensatzes benutzt. Das F-FeId 1820
wird zur Beschreibung des Datensatz-Formates herangezogen. Das Format der Datensätze entspricht entweder einem virtuellen Speicher-Datensatz
oder einem Datenbank-Datensatz, wie dies anhand von Figur 15a und 15b beschrieben wurde. Das Datensatz-Typfeld
1821 zeigt die Art des Datensatzes an und wird unter Umständen in das Typfeld des tatsächlichen Datensatzes im Speicher geladen,
wie dies in den Figuren 15a und 15b dargestellt ist. Das Datensatz-Längenfeld 1822 zeigt die tatsächliche Länge des Datensatzes
im Hauptspeicher an und wird gemäß den Figuren 15a und 15b in die Hauptspeicher-Datensätze geladen.
609853/0755
Die tatsächlichen Datenbank-Befehle weisen eines der sechs in den Figuren 20a bis 2Of dargestellten Formate auf.
Das GROr-Format gemäß Figur 20a enthält den Operationscode 1910,
das Nullfeld 1911, eine Easisregisternummer 1912 und einen Komplementärcode
1912. Das Basisregister enthält die segmentierte Adresse eines Datensatzes. Der Koiaplementärcode wird für eine
v/eitere Differenzierung des besonderen, durch den Operationscode beschriebenen Befehles benutzt.
Das XI-Format gemäß Figur 20b enthält einen Operationscode 19
einen Komplementärcode 19 21, der zur weiteren Differenzierung
des Operationscodes benutzt wird, eine Adressilbe 19 22, ein Nullfeld 19 23, ein logisches Verzögerungsfeld 19 24, ein Hinweisadressen-Modusfeld
1925 und ein BR-FeId 1926. Das Basisregister 1926 enthält eine segmentierte Adresse eines Datensatzes.
Die Adressilbe 1922 verweist bei einigen ihrer Verwendungen auf einen Gruppendescriptor der zu verarbeitenden
Gruppe. Die Adressilbe wird in eine segmentierte Adresse entwickelt gemäß den Regeln der Adressentwicklung, wie sie zuvor
beschrieben wurde.
Das DXDX-Format gemäß Figur 20c setzt sich aus einem Operationscode 1930, einem Komplementärcode 1931, der zur weiteren Differenzierung
des Befehles benutzt wird, einer Adressilbe ASl-1932,
einem Nullfeld MBZl-1933, einem Basisregister BR-1934, einem
zweiten Nullfeld Γ1ΒΖ2-1935 und einer zweiten Adressilbe AS2-1936 zusammen. Das Basisregister enthält wiederum die segmentierte
Adresse eines Datensatzes. Die erste Adressilbe ASl-1932 verweist auf einen Gruppendescriptor. Die zweite Adressilbe AS2-19
36 wird zur Adressierung einer binären ganzen Zahl verwendet.
Das BRX-Format gemäß Figur 2Od enthält einen Operationscode 1940, ein Typfeld 1941, welches zur weiteren Differenzierung des Befehles
benutzt wird, ein Basisregisterfeld 1942 und eine Adresssilbe 1943. Das Basisregister enthält die segmentierte Adresse
609853/0755
eines Datensatzes. Die Adressilbe wird zur Adressierung eines
Gruppendescriptors benutzt.
Das DXGR-Fornat gemäß Figur 2Oe enthält einen Operationscode 1950,
ein Typfeld 19 51, welches zur weiteren Differenzierung des Befehles
benutzt wird, ein erstes Basisregisterfeld BR1-1952, eine Adresssilbe
1953r ein erstes Nullfeld MBZ1-1954, ein zweites Basisregipterfeld
BR2-1955, ein Vor-Kach-Erst-Letzt-Feld 1956 und ein zweites Nullfeld KBZ2-1957. Die beiden Basisregister werden zur
Adressierung zweier verschiedener im Speicher aufgefundener Datensätze
benutzt. Die Adressilbe wird zur Adressierung des Gruppendescriptors
herangezogen. Das Vor-Kach-Erst-Letzt-Feld beschreibt die gesuchte Anordnung eines Datensatzes innerhalb der Gruppe.
Das OPDD-Forirat gemäß Figur 2Of weist einen Operationscode I960,
ein Basis-Feld 1961, das zur Beschreibung einer bestimmten Datenbank-Operation
benutzt wird, ein Typ-Feld 1962, das zur weiteren Differenzierung des Befehls benutzt wird, ein P-FeId 1963, das
zur Beschreibung des Hinweisadresnenfeldes herangezogen wird, ein
Erst-Letzt-Kächst-Vorangehend-Hinweisadressenfeld 1965, das die
andere Hinweisadresse der Benutzer- und Mitgliederdatensätze beschreibt, dar Verschiebefeld 1966, welches den Offset des Beginns
der Hinweisadressenfolge beschreibt und ein BR-FeId 1977 auf, das die Kummer eines Basisregisters enthält. Das Basisregister enthält die segmentierte Adresse eines Datensatzes im
Hauptspeicher.
Die Gruppen-Zustandsprüfbefehle bestehen aus zwei hardware/f j.rmwareverwirklichten
Maschinenbefehlen, die die Operation "Prüfen, ob Gruppe leer" und die Operation "Prüfen, ob Mitglied eingefügt"
ausführen. Beide Befehle rufen einen Gruppendescriptor (siehe Figur 18a) auf, der zusammen mit dem Inhalt eines Basisregisters
BR den Zugriff zu der Hinweisadressenfolge eines Datensatzes gestattet (ein Benutzer-Datensatz für die Operation "Prüfen, ob
Gruppe leer": irgendein Datensatz für die Operation "Prüfen, ob Mitglied eingefügt"). Für den ersten der beiden Befehle zeigt
609855/07BB
- «9Γ-
das Bit EOS (Ende der Gruppe) der Hinweisadresse in der Hinweisadressenfolge
(siehe Figuren 15e bis 15h) an, ob die Gruppe leer ist (keine Mitglieder-Datensätze aufweist). Der Eefehl
"Prüfen, ob Gruppe leer" setzt einen Zustandscode gemäß dem Wert des Bits EOS. Hinsichtlich des zweiten der beiden Befehle
zeigt das Bit NINS (nicht eingefügt) der Hinweisadresse in der Hinweisadressenfolge (siehe Figuren 15e bis 15h) an, ob der
Datensatz,auf den hingewiesen wird, gerade ein Mitglied der
Gruppe ist, auf die Bezug genommen wird. Der Zustandscode wird entsprechend dem Wert des Bits KINS gesetzt. Beide Befehle weisen
das XI-Format gemäß Figur 20b auf.
Figur 21 zeigt das Flußdiagramm für den ersten Befehl der Datenbank-Gruppen-Zustandstestbefehle,
nämlich den Befehl "Prüfen, ob Gruppe leer". Im Schritt 2001 des Firmware-Flußdiagrammes
wird das Format des Befehls geprüft. In den Schritten 2003 bis 2005 wird ein Gruppendescriptor abgerufen, auf den durch die
Adressilbe AS des Befehls hingewiesen wird und es werden bestimmte
vorläufige Prüfungen hinsichtlich dieses Gruppendescriptor s vorgenommen. Im Schritt 2007 wird eine Hinweisadresse
abgerufen, die durch den Inhalt des Basisregisters BR des Befehls adressiert ist und durch die Verschiebung 1806
indiziert ist, Vielehe von dem Gruppendescriptor erhalten wird« Es handelt sich hierbei um den Gruppendescriptor, der der Auffindung
der Hinweisadressenfolge des Datensatzes dient (siehe Figuren 15a, 15b und 19a). Im Schritt 2009 wird eine Prüfung
durchgeführt, um festzustellen, ob der Datensatz auf den durch das Basisregister hingewiesen wird, selbst ein Mitglied einer
Gruppe ist. Diese Prüfung wird bewerkstelligt-durch einen Test
des Bits NINS, der im Schritt 2007 abgerufenen Hinweisadresse. Ist der Datensatz tatsächlich eingefügt, so schreitet die Firmware
zum Schritt 2011 weiter, wo das Bit EOS der im Schritt 2007 abgerufenen Hinweisadresse geprüft wird. Weist das Bit EOS den
Wert "1" auf, so besitzt die Gruppe keine Mitglieder-Datensätze und die Firmware verzweigt zu dem Schritt 2012, wo der Zustandscode
des Statusregisters 207 (siehe Figur 2) auf den Wert "0"
609853/0755
gesetzt wird. Wird das Bit EOS im Schritt 2011 als "O" festgestellt,
so verzweigt die Firmware zu dem Schritt 2014, in welchem der Zustandscode des Statusregisters auf den Wert "1"
gesetzt wird, wodurch angezeigt wird, daß die Gruppe gerade eingefügte Mitglieder-Datensätze aufweist. Der Befehl wird
nach Ausführung der Schritte 2012 oder 2014 in den Schritten 2013 oder 2015 beendet.
Im einzelnen wird gemäß Figur 21 im Schritt 2001 das MBZ-FeId
1923 des Befehls (siehe Figur 20b) auf den Wert "0" überprüft. Diese Prüfung auf den Wert "0" wird durchgeführt, indem der
Befehl von der Befehlabrufeinheit (siehe Figur 13a, IFU 1318) zu einem Register in dem Rechenwerk 1317 übertragen wird. Wenn
die in diesem Register durchgeführte Hardwareüberprüfung feststellt, daß das MBZ-FeId nicht den Wert "0" auf v/eist, so verzweigt
die Firmware zu der Ausnahmebehandlung gemäß Schritt 2002. Diese Ausnahme wird als eine illegale Format-Feld-Ausnahme
bezeichnet.
Weist das MBZ-FeId den Wert "0" auf, so schreitet die Firmware
zu dem Schritt 2003 weiter, wo ein Abruf von 3 Bytes unter einer Adresse im Hauptspeicher erfolgt, die durch die Adressilbe AS-1922
des Befehls vorgegeben ist. Die Adressilbe wird hierbei in eine segmentierte Adresse umgewandelt. Diese Adressentwicklung
wird in der Adressen-Steuereinheit (Figur 13a, ACU 1319) ausgeführt. Infolge des Hauptspeicheraufrufes können Speicherzugriff
s-Ausnahmen auftreten, wie dies im Schritt 2004 dargestellt ist. Einige Beispiele für Speicherzugriffs-Ausnahmen ergeben
sich, wenn der Zugriff außerhalb des Segmentes liegt oder das Segment nicht vorhanden ist oder sich außerhalb des Hauptspeichers
befindet. Die abgerufenen drei Bytes bilden einen Gruppendescriptor wie in Figur 19a dargestellt und beschrieben.
Der nächste Schritt beinhaltet eine Prüfung des K-Bit-1805 des
Gruppendescriptors (siehe Figur 19a), um festzustellen, ob das Bit K den Wert "0" aufweist. Diese Prüfung wird durchgeführt,
6098B3/07B5
indem der aus dem Hauptspeicher abgerufene Gruppendescriptor von der Datenverwaltungseinheit (siehe Figur 13a, DMU-1321)
zu dem Rechenwerk 1317 übertragen wird. Weist das Bit K des Gruppendescriptors einen von "O" verschiedenen Wert auf, so
tritt eine Ausnahme 2006 auf, die auf ein nicht verfügbares Gruppenmerkmal hinweist.
Weist das Bit K den Wert "0" auf, so schreitet die Firmware zu dem Schritt 2007 fort, in welchem ein Aufruf des Hauptspeichers
unter einer Adresse erfolgt, die durch den Inhalt des Basisregisters BR-1926 des Befehls plus dem Verschiebefeld
1806 des Gruppendescriptors (siehe Figur 19a) gegeben ist. Diese Adresse, unter der der Aufruf erfolgt, ist die
Adresse der ersten Hinweisadresse in der Hinweisadressenfolge (siehe Figur 15d) des Datensatzes, auf den durch den
Befehl Bezug genommen wird. Das System ist so ausgelegt, daß die erste Hinweisadresse der Benutzer-Hinweisadressenfolge
auf den Benutzer-Datensatz selbst verweist, falls eine Gruppe, auf die durch eine Benutzer-Hinweisadresse verwiesen wird,
keine gerade eingefügten Mitglieder enthält. In dem Fall, v/o keine Mitglieder in die Gruppe gerade eingefügt sind, wird das
Bit EOS in der ersten Hinweisadresse gesetzt, da die Hinweisadresse auf einen Benutzer-Datensatz verweist. Als Folge dieses
Hauptspeicheraufrufes können Speicherzugriffs-Ausnahmen
im Schritt 2008 auftreten. Die aus dem Hauptspeicher abgerufene Benutzer-Hinweisadresse wird zunächst von dem Hauptspeicher zu
der Datenverwaltungseinheit DMU-1319 als Teil des Hauptspeicher-Abruf
mechanismus und anschließend zu dem Rechenwerk ALU-1319
unter Firmwaresteuerung übertragen. Die Addition des Verschiebefeldes (Figur 19a, 1806) zu dem Inhalt des Basisregisters
wird in der Adressensteuereinheit ACU-1319 durchgeführt.
Die Firmware schreitet sodann zu dem Schritt 2009 weiter, wo das zweite Bit der in dem Schritt 2007 aufgerufenen und zu dem
Rechenwerk übertragenen Hinweisadresse überprüft wird, ob es
6098B3/07B5
den Wert "O" aufweist. Weist dieses Bit NINS der Hinweisadresse
den Wert "L" auf, so ist der durch das Basisregister adressierte Datensatz selbst kein Mitglied der Gruppe (in diesem Fall kein
Benutzer der Gruppe) und die Firmware verzweigt zu der Ausnahmebehandlung 2010,in der die Ausnahme "Nicht eingefügt" festgestellt
wird.
Ergibt sich im Schritt 2009, daß das Bit NINS den Wert "0" aufweist,
so verzweigt die Firmware zu dem Schritt 2011, wo das erste Bit der im Schritt 2007 aufgerufenen Hinweisadresse überprüft
wird. Dieses Bit EOS der Hinweisadresse (siehe Figuren 15e bis 15h) wird in dem Rechenwerk auf seinen Wert überprüft. Stellt
das Rechenwerk fest, daß das Bit EOS den Wert "1" aufweist, so verweist die Hinweisadresse auf einen Benutzer-Datensatz und
die Gruppe weist somit keine gerade eingefügten Mitglieder auf. In diesem Fall verzweigt die Firmware zu dem Schritt 2012, in
welchem der Zustandscode des Statusregisters 207 auf den Viert "0" gesetzt wird. Anschließend verzweigt die Firmware zu dem
Schritt 2013, in welchem der Befehl vervollständigt ist und die Steuerung auf den nächsten Befehl übergeht. Wird im Schritt 2011
festgestellt, daß das Bit EOS den Wert "0" aufweist, so verweist die im Schritt. 2007 aufgerufene Hinweisadresse nicht auf eine
Eenutzer-Hinweisadresse (z.B. wird auf einen Mitglieds-Datensatz verwiesen) und es erfolgt eine Verzweigung zu dem Schritt 2014,
in welchem der Zustandscode auf den Wert "1" gesetzt wird. Die Firmware verzweigt anschließend zu dem Schritt 2015, in welchem
der Befehl beendigt ist und die Steuerung auf den nächsten Befehl übergeht.
Figur 22 zeigt das Flußdiagramm des zweiten Befehles innerhalb der Gruppen-Zustands-Testbefehle, nämlich den Befehl "Prüfen,
ob Mitglied eingefügt". Im Schritt 2101 wird das Format des
Befehls überprüft. Anschließend wird in den Schritten 2103 bis 2105 ein Gruppendescriptor abgerufen, auf den durch die Adresssilbe
AS-1922 des Befehls verwiesen wird und es werden bestimmte
vorläufige Prüfungen hinsichtlich des Gruppendescriptors vorgenommen. Im Schritt 2107 wird eine Ilinweisadresse abgerufen, welche
609853/07B5
durch den Inhalt des Basisregisters BR-1926 des Befehls adressiert
und durch die Verschiebung 1806 indiziert wird und wobei die Verschiebung aus dem Gruppendescriptor erhalten wird,
der die Hinweisadressenfolge des Datensatzes feststellt (siehe Figuren 15a, 15b und 19a). Im Schritt 2109 wird sodann das Bit
NINS der im Schritt 2107 aufgerufenen Hinweisadresse überprüft. Weist dieses Bit den Wert "1" auf, so ist der Datensatz,auf
den durch das Basisregister BR hingewiesen wird, gerade nicht in die Gruppe eingefügt und es erfolgt eine Verzweigung zu dem
Schritt 2112, wo der Zustandscode des Statusregisters auf "1"
gesetzt wird und der Befehl vervollständigt wird. Weist das Bit NINS der Hinweisadresse den Wert "0" auf, so ist der Datensatz,
auf den durch das Basisregister BE. hingewiesen wird, gerade
in eine Gruppe eingefügt und die Firmware verzweigt zu dem Schritt 2110, in welchem der Zustandscode des Statusregisters
auf den Wert "0" gesetzt wird. Durch den Wert "0" im Zustandscode des Statusregisters wird somit angezeigt, daß der Datensatz,
auf den verwiesen wird, in die Gruppe eingefügt ist, auf die Bezug genommen wird. Der Befehl ist somit vervollständigt.
In näheren Einzelheiten wird gemäß Figur 22 im Schritt 2101 das MBZ-FeId 1923 des Befehls (siehe Figur 19b) auf den Wert "0"
überprüft. Diese Prüfung erfolgt durch Übertragung des Befehls von der Befehl-Abrufeinheit (siehe Figur 13a, IFU-1318) zu einem
Register in dem Rechenwerk 1317. Wenn die in diesem Register durchgeführte Hardwareprüfung ergibt, daß das MBZ-FeId
nicht den Wert "0" aufweist, so verzweigt die Firmware zu der im Schritt 2102 angezeigten Ausnahme-Behandlung. Weist das
MBZ-FeId den Wert "0" auf, so schreitet die Firmware zu dem Schritt 2103 fort, in welchem ein Aufruf von 3 Bytes im Hauptspeicher
erfolgt, wobei dieser Aufruf unter einer Adresse erfolgt, die durch die Adressilbe AS-1922 des Befehls vorgegeben
ist. Die Entwicklung der Adressilbe erfolgt in der Adressensteuereinheit ACÜ-1319. Als Folge des Eauptspeicheraufrufes
kann eine Hauptspeicher-Zugriffsausnahme im Schritt 2104 auftreten.
Die aufgerufenen 3 Bytes stellen einen Gruppendescriptor
S09SB3/Ö755
— g 4 —
dar, wie er anhand von Figur 19a beschrieben wurde.
Als nächstes wird im Schritt 2105 überprüft, ob das Bit K-1805
des Gruppendescriptors den Wert "0" aufweist. Diese Prüfung wird durchgeführt, indem der aus dem Hauptspeicher abgerufene
Gruppendescriptor, der sich nunmehr infolge des Hauptspeicher-Abruf
me chanismus in der Datenverwaltungseinheit DMU-1321 befindet,
zu dem Rechenwerk 1317 übertragen \tfird. Weist das Bit
K des Gruppendescriptors nicht den Wert "0" auf, so tritt im Schritt 2106 eine Ausnahme auf, die ein nicht verfügbares
Gruppenmerkmal anzeigt.
Weist das Bit K den Wert "0" auf, so schreitet die Firmware zu dem Schritt 2107 fort, welchem ein Aufruf des Hauptspeichers
unter einer Adresse erfolgt, die durch den Inhalt des Basisregisters BR-1926 des Befehlsformates plus das Verschiebefeld
1806 des Gruppendescriptors gegeben ist. Die Adresse, unter der ein Aufruf erfolgt, ist die Adresse einer Kinweisadresse in
der Hinweisadressenfolge (siehe Figuren 15c und 15d) des Datensatzes, auf den durch den Befehl Bezug genommen wird. Infolge
dieses Hauptspeicheraufrufes können Hauptspeicher-Zugriffsausnahmen
2108 auftreten. Die Addition des Verschiebefeldes 1806 zu dem Inhalt des Basisregisters wird in der Adressensteuereinheit
ACü-1319 durchgeführt.
Die Firmware schreitet sodann weiter zum Schritt 2109, in welchem die im Schritt 2107 aufgerufene Hinweisadresse von der Datenverwaltungseinheit
DMU-1319 zu dem Rechenwerk ALü-1317 übertragen
wird. In dem Rechenwerk wird das zweite Bit der aufgerufenen Hinweisadresse von der Hardware/Firmware auf den Wert
"0" überprüfe. Weist dieses Bit NINS der Hinweisadresse (siehe Figuren 15e bis 15h) den Wert "0" auf, so ist der Datensatz,
auf den Bezug genommen wird, gerade in die Gruppe eingefügt und die Firmware verzweigt zu dem Schritt 2110. Im Schritt 2110 wird
der Zustandscode des Statusregisters 207 auf den Wert "0" gesetzt, wodurch angezeigt wird, daß der Datensatz in eine Gruppe
. 6098B3/0755
eingefügt ist. Nach dem Schritt 2110 verzweigt die Firmware zu dem Schritt 2111, in welchem der Befehl vervollständigt ist und
die Steuerung zu dem nächsten Befehl übergeht. Weist im Schritt 2109 das Bit NINS nicht den Wert "0" auf, wodurch angezeigt
wird, daß der Datensatz, auf den durch den Befehl Bezug genommen
wird, momentan kein Mitglied der Gruppe bildet, so verzweigt die Firmware zu dem Schritt 2112 und setzt den Zustandscode des Statusregisters
auf den Wert "1", um diesen Zustand anzuzeigen. Anschließend wird im Schritt 2113 der Befehl vervollständigt und
die Steuerung geht auf den nächsten Befehl über.
Gemäß Figur 23 ist ein Blockdiagramm der Hardware dargestellt, die erforderlich ist, um den Befehl "Prüfen, ob Gruppe leer"
gemäß der vorliegenden Erfindung zu verwirklichen. Beim Empfang eines solchen Befehles, was durch den Detektor 2301 angezeigt
wird, wird dieser Befehl temporär in dem Befehlspuffer 2302 gespeichert.
Der Befehlspuffer 2302 befindet sich in der Befehl-Abruf einheit IFü-1318 der Zentraleinheit CPU-104. Wie zuvor erläutert,
weist der Befehl "Prüfen, ob Gruppe leer" das XI-Format gemäß Figur 20b auf. Das MBZ-FeId 1923 wird mittels eines Vergleichers
2303 unmittelbar mit den "O"-Bits 2304 verglichen. Gibt der Vergleicher 2303 ein Ungleich-Signal aus, so liegt
eine illegale Format-Feld-Ausnahme vor und es wird das illegale Format-Feld-Flip-Flop 2305 gesetzt, wodurch die Aktivierung des
Ausnahme-Behandlungsmechanismus verursacht wird. In diesem Fall ist die Ausführung des Befehls beendigt. Zeigt der Vergleicher
2303 an, daß die verglichenen Werte übereinstimmen, so wird die Ausführung des Befehls "Prüfen, ob Gruppe leer" -. wie nachstehend
beschrieben - fortgesetzt.
Bei der Feststellung des genannten Befehles durch den Befehlsdetektor 2301 wird ebenfalls der Ausgang eines Descriptor-Lese-Flip-Flops
2308 auf den Wert "1" gesetzt. Der Ausgang dieses Flip-Flops wird als Descriptor-Lesesignal bezeichnet. Ein UND-Gatter
2306 wird durch das Descriptor-Lesesignal und das Gleich-Signal des Vergleichers 2303 vorbereitet und kann im vorbereiteten
6098B3/07BS
Zustand die Adressilbe 1922 zu dem ODER-Gatter 2344 übertragen.
Der Ausgang des ODER-Gatters 2344 ist seinerseits an die Adressensteuereinheit ACü-2307 angeschlossen. Wenn der Adressensteuereinheit
2307 eine Adressilbe zugeführt wird, so übersetzt sie diese Adressilbe in eine Speicheradresse, die zu dem Speicheradressregister
2309 übertragen wird. Der Inhalt des Speicheradressregisters 2309 wird seinerseits zu dem Speicheradressregister
2310 des Speichersystems übertragen.
Der Detektor 2301 ist ferner an ein invertierendes UND-Gatter
2311 angeschlossen, das seinerseits mit dem Lese/Schreib-Flip-Flop
2312 des Speichersystems verbunden ist. Weist das Detektorsignal den Wert "1" auf, so führt dies zu einem Signal "0" am
Ausgang des Gatters 2311, wodurch das Lese/Schreib-Flip-Flop
2312 auf den Wert "0" gesetzt wird. Wenn durch das Speichersystem 2313 festgestellt wird, daß das Speicheradressregister
2310 geladen worden ist, und daß das Lese/Schreib-Flip-Flop 2312 auf den Wert "0" gesetzt worden ist, so wird eine Speicher-Leseoperation
ausgelöst. Als Folge der Speicheroperation können Speicherzugriffsausnahmen auftreten. Treten solche Ausnahmen auf,
so wird das Speicherzugriffsausnahme-Flip-Flop 2314 auf den Wert
"1" gesetzt. Der Ausnahme-Behandlungsmechanismus wird hierdurch
aktiviert. Andernfalls läuft die Speicheroperation normal ab und das Speicheroperation-Beendigungs-Flip-Flop 2315 wird auf
den Wert "1" gesetzt. Beim Übergang des Speicheroperation-Beendigungs-Flip-Flop
2315 auf den Wert "1" ist die Übertragung der aus dem Speichersystem 2313 ausgelesenen Daten zu dem Speicherdatenregister
2316 beendigt.
Durch den Übergang des Speicheroperation-Beendigungs-Flip-Flops
2315 auf den Wert "1" und bei Vorliegen des Descriptor-Lesesignales mit einem Wert "1" wird das UND-Gatter 2317 vorbereitet
und gestattet die übertragung des K-Feldes 1805 (siehe Figur 19a)
zu dem Vergleicher 2318. Der andere Eingang des Vergleichers 2318 wird durch die "O"-Bits 2331 gebildet. Stellt der Vergleicher
2318 fest, daß das K-FeId nicht dein Wert "0" entspricht,
609853/0755
so wir.d durch das Ungleich-Signal das Ausnahme-Flip-Flop 2332
gesetzt, wodurch ein nicht verfügbares Gruppenmerkmal angezeigt wird. Der Ausnahme-Behandlungsmechanismus wird hierdurch aktiviert.
Im anderen Fall bereiten das Gleich-Signal des Vergleichers 2318 zusammen mit dem Descriptor-Lesesignal und dem Speicheroperation-Beendigüngs-Signal
das UND-Gatter 2326 vor, so daß das Verschiebefeld 1806 des gerade gelesenen Gruppendescriptors von dem Speicherdatenregister
2316 zu dem Verschieberegister 2323 übertragen werden kann.
Es sei ferner darauf verwiesen, daß der Ausgang des Speicheroperation-Beendigungs-Flip-Flops
2315 mit dem Rückstelleingang des Descriptor-Lese-Flip-Flops 2308 verbunden ist. Das Lese-Flip-Flop
2308 nimmt somit den Wert "0" ein, wenn das Beendigungs-Flip-Flop 2315 auf den Wert "1" umschaltet. Da das Descriptor-Lesesignal
an das invertierende UND-Gatter 2338 angeschlossen ■ ist, nimmt dieses den Viert "1" ein, wenn das Descriptor-Lesesignal
auf den Wert "0" umschaltet. Das nachgesehaltete Hinweisadressen-Lese-Flip-Flop
2320 wird hierbei auf den Wert "1" gesetzt, da der Ausgang des UND-Gatters 2338 mit dem Setzeingang
des Flip-Flops 2320 verbunden ist. Das Ausgangssignal des Flip-Flops 2320 wird als Hinweisadressen-Lesesignal bezeichnet.
Das Basisregister-Feld 1926 des Befehlspuffers 2302 ist an ein UND-Gatter 2321 angeschlossen. Dieses UND-Gatter wird durch das
Hinweisadressen-Lesesignal vorbereitet. Weist dieses Lesesignal den Wert "1" auf, so erfolgt die Übertragung des Basisregister-Feldes
BR-1926 zu dem Basisregistereingang 2322 der Adressensteuereinheit
2307 über das zwischengeschaltete UND-Gatter 2321. Wenn die Adressensteuereinheit 2307 an ihrem Basisregistereingang
2322 mit einer Basisregisternummer gespeist wird, so hat dies zur Folge, daß der Inhalt desjenigen Basisregisters ausgelesen
wird, dessen Nummer eingegeben wurde. Diese Operation ist eine typische Zwischenspeicher-Leseoperation. Der den Basisregisterinhalt
aufweisende Ausgang der Adressensteuereinheit ist
6098B3/07B5
an ein Ausgangsregister 2324 angeschlossen. Der Ausgang des Basisregister-Ausgangsregisters 2324 ist seinerseits an einen
Addierer 2339 angeschlossen. Der andere Eingang dieses Addierers wird durch den Inhalt des Verschieberegisters 2323 gebildet,
das zuvor geladen wurde. Der Addierer 2339 addiert somit den Inhalt des Basisregisters zu der Verschiebung und gibt
das Ergebnis an ein UND-Gatter 2325, welches durch das Hinweisadressen-Lesesignal
vorbereitet wird und dessen Ausgang an ein ODER-Gatter 2344 angeschlossen ist. Der Ausgang des
ODER-Gatters 2344 ist seinerseits an die Adressensteuereinheit 2307 angeschlossen. Für den Fall, daß aie Adressensteuereinheit
eine segmentierte Adresse angelegt wird, wie sie sich bei der Addition einer Verschiebung zu dem Inhalt eines Easisregisters
ergibt (siehe Figur 2) , übersetzt die Adressensteuereinheit die segmentierte Adresse in eine absolute Speicheradresse.
Der Ausgang der Adressensteuereinheit 2307 bildet somit erneut eine Adresse, die zu dem Speicheradressregister 2309 und anschließend
zu dem Speicheradressregister 2310 des Speichersystems 2313 übertragen wird.
Wenn das Speichersystem 2313 feststellt, daß sein Speicheradressregister
2310 mit einer neuen Adresse geladen worden ist und daß sich das Lese/Schreib-Flip-Flop 2312 in dem Zustand
"0" befindet, so wird erneut eine Speicher-Leseoperation ausgelöst. Als Folge einer Speicher-Leseoperation können wiederum
Speicherzugriffsausnahmen auftreten. Treten solche Ausnahmen
auf, so wird das Speicherzugriffs-Ausnahme-Flip-Flop 2314 auf
den Wert "1" gesetzt. Der Ausnahme-Behandlungsmechanismus wird dadurch aktiviert. Andernfalls läuft die Speicheroperation normal
ab und es wird das Speicheroperation-Beendigungs-Flip-Flop 2315 auf den Wert "1" gesetzt (das Speicheroperation-Beendigungs-Flip-Flop
2315 wird auf den Wert "0" bei der Auslösung einer jeden Speicheroperation zurückgestellt). Nach der Beendigung
der Speicheroperation werden die aus dem Speichersystem gelesenen Daten zu dem Speicherdatenregister 2316 übertragen,
wobei die gelesenen Daten eine Hinweisadresse (siehe Figuren 15e bis 15h) eines virtuellen Speicherdatensatzes oder eines
Datenbank-Datensatzes darstellen.
.609853/0755
Das zweite Bit (Bit-Nummer 1) der gerade aus dem Speichersystem ausgelesenen und zu dem Speicherdatenregister 2316
übertragenen Hinweisadresse ist an das UND-Gatter 2335 angeschlossen. Dieses Bit stellt das Bit NINS der Hinweisadresse
dar (Feld 1541, 1551, 1561 oder 1571). Das UND-Gatter 2335 wird durch das Hinweisadressen-Lesesignal und
das Speicheroperation-Beendigungs-Flip-Flop 2315 vorbereitet und ist an den Vergleicher 2340 angeschlossen. Somit wird bei
Beendigung der während der Ausführung dieses Befehles durchgeführten zweiten Speicheroperation das zweite Bit der Hinweisadresse
in den Vergleicher 2340 eingegeben und mit dem "O"-Bit-2333 verglichen. Wenn das zweite Bit NINS nicht den
Viert "0" aufweist, so setzt das Ungleich-Signal des Vergleichers 2340 das NINS-Ausnahme-Flip-Flop 2341. Der Ausnahme-Behandlungsmechanismus
wird hierdurch aktiviert.
Das erste Bit (Bit-Nummer 0) der gerade aus dem Speichersystem
ausgelesenen und zu dem Speicherdatenregister 2316 übertragenen Hinweisadresse ist an das UND-Gatter 2343 angeschlossen. Das
erste Bit stellt das Bit EOS dar (siehe Figuren 15e bis 15h, Felder 1540, 1550, 1560 und 1570). Das UND-Gatter 2343 wird
durch das Hinweisadressen-Lesesignal und das Speicheroperation-Beendigungs-Flip-Flop
2315 vorbereitet. Bei Vervollständigung der während der Befehlsausführung durchgeführten zweiten Speicheroperation
ist das Bit EOS der Hinweisadresse über das UND-Gatter -2343 zu dem Vergleicher 2327 übertragen worden. Der andere
Eingang des Vergleichers 2327 wird durch ein "l"-Bit-2342 gebildet.
Es sei ferner darauf verwiesen, daß das Speicheroperation-Beendigungs-Flip-Flop
2315 an ein UND-Gatter 2328 angeschlossen ist. Dieses Gatter wird durch das Hinweisadressen-Lesesignal vorbereitet.
Der Ausgang des UND-Gatters 2328 ist an das Satz-Zustandscode-Flip-Flop
2329 angeschlossen. Es ergibt sich somit,
609853/0755
daß dieses Flip-Flop 2329 auf den Wert "1" nach Beendigung der zweiten Speicheroperation gesetzt wird (lesen der durch den
Befehl "Prüfen, ob Gruppe leer" adressierten Hinweisadresse). Der Ausgang des Gruppen-Zustandscode-Flip-Flops 2329 ist an
ein UND-Gatter 2330 angeschlossen. Der andere Eingang des UND-Gatters 2330 wird durch das Ungleich-Signal des Vergleichers
2327 gebildet. Stellt daher der Vergleicher 2327 fest, daß das erste Bit der aus dem Speicher ausgelesenen Hinweisadresse
den Wert "1" aufweist, so v/eist das Ungleich-Signal den Wert "0" auf und es wird somit von dem UND-Gatter 2330 zu dem Zustandscoderegister
2336 der Wert "0" übertragen. Es sei darauf verwiesen, daß das Zustandscoderegister in Wirklichkeit durch die
ersten beiden Bits des Statusregisters 207 gemäß Figur 2 gebildet wird. Ermittelt der Vergleicher 2327 das erste Bit der
ausgelesenen Hinweisadresse mit einem Wert "0", so weist das Ungleich-Signal den Wert "1" auf und es wird somit über das
UND-Gatter 2330 der Wert "1" in das Zustandscoderegister 2336 übertragen.
Die Umschaltung des Gruppen-Zustandscode-Flip-Flops 2329 auf
den Viert "1" veranlaßt das Befehls-Beendigungs-Flip-Flop 2337
zur Annahme des Wertes "1", wobei dies zum gleichen Zeitpunkt geschieht, indem der Wert des Zustandscodes in das Zustandscoderegister
2336 eingeschrieben wird. Das Setzen des Befehls-Beendigungs-Flip-Flops
2337 auf den Wert "1" zeigt an, daß die Ausführung des Befehls "Prüfen, ob Gruppe leer" beendigt ist.
Gemäß Figur 24 ist ein Blockdiagramm der Hardware dargestellt,
die erforderlich ist, um den Datenbank-Befehl "Prüfen, ob Mitglied eingefügt" zu verwirklichen. Beim Empfang eines solchen
Befehles durch einen Detektox* 2401 wird dieser Befehl temporär in dem Befehlspuffer 2402 gespeichert. Der Befehlspuffer ist
in der Befehl-Abrufeinheit 1318 der Zentraleinheit 104 angeordnet.
Wie weiter vorne erläutert, weist der in den Befehlspuffer 2402 übertragene Befehl das XI-Format gemäß Figur 20b auf. Das
609853/0755
MEZ-Feld 1923 des Befehls wird sofort mit den "O"-Bits-24O4
durch den Vergleicher 2403 verglichen. Liefert der Vergleicher 2403 ein Ungleich-Signal, so wird eine illegale Format-Feld-Ausnahme
festgestellt und das illegale Format-Feld-Flip-Flop 2405 gesetzt, wodurch der Ausnahme-Behandlungsmechanismus
aktiviert wird. Die Ausführung des empfangenen Befehles ist somit beendet. Zeigt der Vergleicher 2403 einen erfüllten Vergleich
an, so erfolgt die Ausführung des Befehles "Prüfen, ob Mitglied eingefügt" in der nachstehend beschriebenen Weise.
Bei Feststellung des genannten Befehls durch den Detektor 2401 wird der Ausgang des Descriptor-Lese-Flip-Flops 2408 ebenfalls
auf den Wert "1" gesetzt. Der Ausgang dieses Flip-Flops wird als Descriptor-Lesesignal bezeichnet. Ein UND-Gatter 2406 wird
durch das Descriptor-Lesesignal und das Gleich-Signal des Vergleichers 2403 vorbereitet, so daß die Adressilbe 1922 über ein
ODER-Gatter 2423 zu der Adressensteuereinheit 2407 übertragen wird. Wenn der Adressensteuereinheit 2407 eine Adressilbe zugeführt
wird, so übersetzt sie diese Adressilbe in eine Speicheradresse. Die durch die Adressensteuereinheit 2407 entwickelte
Speicheradresse wird zu dem Speicheradressregister 2409 übertragen. Der Inhalt des Speicheradressregisters 2409
wird seinerseits zu dem Adressregister 2410 des Speichersystems
übertragen.
Der Detektor 2401 ist ferner an das invertierende UND-Gatter 2411 angeschlossen, welches seinerseits mit dem Lese/Schreib-Flip-Flop
2412 des Speichersystems verbunden ist. Weist das Detektorsignal den Wert "1" auf, so führt dies am Ausgang des
Gatters 2411 zu einem Wert "0", was zu einem Setzen des Lese/ Schreib-Flip-Flops 2412 auf den Viert "0" führt. Wenn das Speichersystem
2413 festgestellt hat, daß das Speicheradressregister 2410 geladen worden ist und daß das Lese/Schreib-Flip-Fiop
2412 auf den Wert "0" gesetzt worden ist, so wird eine Speicher-Leseoperation ausgelöst. Als Folge einer Speicher-
609853/0755
operation können Speicherzugriffsausnahmen auftreten. Treten
solche Ausnahmen auf, so wird das Speicherzugriffs-Ausnahme-Flip-Flop
2414 auf den Wert "1" gesetzt. Der Ausnahme-Behandlungsmechanismus wird in diesem Fall aktiviert. Im anderen
Fall läuft die Speicheroperation normal zu Ende und das Speicheroperation-Beendigungs-Flip-Flop 2415 wird auf den
Wert "1" gesetzt. Beim Umschalten des Flip-Flops 2415 auf den Wert "1" sind die aus dem Speichersystem 2413 ausgelesenen
Daten in das Speicherdatenregister 2416 übertragen worden.
Durch den Wert "1" des Speicheroperation-Beendigungs-Flip-Flops 2415 und des Descriptor-Lesesignales wird das UND-Gatter
2417 vorbereitet, so daß das K-FeId 1805 (Gruppen-Verwirklichungsmodus
gemäß Figur 19a) des gerade aus dem Speichersystem ausgelesenen Gruppendescriptors von dem Speicherdatenregister
2416 zu dem Vergleicher 2418 übertragen werden kann. Der andere Eingang des Vergleichers 2418 wird durch
einen Satz von "O"-Bits-2431 gebildet. Stellt der Vergleicher 2418 fest, daß das K-FeId nicht den Wert "0" aufweist, so wird
durch das sich ergebende Ungleich-Signal das Ausnahme-Flip-Flop 2432 gesetzt, durch das ein nicht verfügbares Gruppenmerkmal
angezeigt wird. Das Setzen dieses Flip-Flops aktiviert den Ausnahme-Behandlungsmechanismus. Im anderen Fall wird das
UND-Gatter 2426 durch das Gleich-Signal des Vergleichers 2418 zusammen mit dem Descriptor-Lesesignal und dem Speicheroperation-Beendigungs-Signal
vorbereitet und kann das Verschiebefeld 1806 des gerade gelesenen Gruppendescriptors zu dem Verschieberegister
2435 übertragen.
Es sei darauf verwiesen, daß der Ausgang des Speicheroperation-Beendigungs-Flip-Flops
2415 an den Rückstelleingang des Descriptor-Lese-Flip-Flops
2408 angeschlossen ist. Die Umschaltung des Flip-Flops 2415 auf den Wert "1" verursacht daher die Annahme
des Wertes 11O" hinsichtlich des Flip-Flops 2408. Da das Descriptor-Lesesignal
auf das invertierende UND-Gatter 2438 gegeben
609853/0755
- ΪΘ3—
wird, ergibt sich am Ausgang des invertierenden UND-Gatters 2438 der Wert "1", wodurch das Hinweisadressen-Lese-Flip-Flop
2420 ebenfalls auf den Wert "1" gesetzt wird, da dessen Setzeingang an das UND-Gatter 2438 angeschlossen ist. Der Ausgang
des Flip-Flops 2420 wird als Hinweisadressen-Lesesignal bezeichnet.
Das Basisregisterfeld 1926 des Befehlspuffers 2402 ist an das UND-Gatter 2421 angeschlossen. Dieses UND-Gatter wird durch
das Hinweisadressen-Lesesignal vorbereitet. Nimmt daher dieses Lesesignal den Wert "1" ein, so wird das Basisregisterfeld 1926
zu dem Basisregistereingang 2422 der Adressensteuereinheit 2407 über das zwischengeschaltete UND-Gatter 2421 übertragen. Wenn
die Basisregisternummer auf den Eingang 2422 der Adressensteuereinheit 2407 gegeben wird, so wird der Inhalt des zu
dieser Nummer gehörenden Basisregisters ausgelesen. Diese Operation stellt eine typische Zwischenspeicher-Leseoperation
dar. Der Ausgang des Basisregisterinhalts der Adressensteuereinheit wird in das Ausgangsregister 2424 übertragen. Das
Basisregister-Ausgangsregister 2424 gibt seinerseits mit seinem Inhalt eines der beiden·Eingangssignale für den Addierer 2439
vor. Das andere Eingangssignal für den Addierer 2439 wird durch den Inhalt eines Verschieberegisters 2435 vorgegeben. Der Addierer
2439 addiert die beiden Eingangssignale und überträgt die Summe über das UND-Gatter 2425, das durch das Hinweisadressen-Lesesignal
vorbereitet ist zu dem ODER-Gatter 2423. Der Ausgang des ODER-Gatters 2423 bildet sodann den Eingang der Adressensteuereinheit
2407. Wenn das erhaltene Signal eine segmentierte Adresse darstellt, welche durch Addition des Inhalts eines Basisregisters
und einer Verschiebung erhalten wird, so übersetzt die Adressensteuereinheit die segmentierte Adresse in eine absolute
Speicheradresse. Der Ausgang der Adressensteuereinheit 2407 bildet somit wiederum eine Adresse, die in das Speicheradressregister
2409 und anschließend in das Speicheradressregister 2310 des Speichersystems 2413 übertragen wird.
609853/0755
Wenn das Speichersystem 2413 feststellt, daß sein Speicheradressregister
2410 mit einer neuen Adresse geladen worden ist, und daß das Lese/Schreib-Flip-Flop 2412 den Wert "O" aufweist,
so wird erneut eine Speicher-Leseoperation ausgelöst. Als Folge einer Speicher-Leseoperation können Speicherzugriffsausnahmen
auftreten/ wobei in diesem Fall das Speicherzugriffs-Ausnahme-Flip-Flop
2414 auf den Wert "1" gesetzt wird. Der Ausnahme-Behandlungsmechanismus wird hierbei aktiviert. Im anderen Fall
läuft die Speicheroperation normal ab und das Speicheroperation-Beendigungs-Flip-Flop
2 415 wird auf den Wert "1" gesetzt (das Flip-Flop 2415 wird bei der Auslösung einer jeden Speicheroperation
auf den Wert "0" zurückgestellt). Bei Beendigung der Speicheroperation
sind die aus dem Speichersystem ausgelesenen Daten in das Speicherdatenregister 2416 übertragen worden, wobei die
ausgelesenen Daten eine Hinweisadresse auf einen virtuellen Speicher oder einen Datenbank-Datensatz (Figuren 15e bis 15h)
darstellen.
Das zweite Bit der gerade aus den Speichersystem ausgelesenen und zu dem Speicherdatenregister 2416 übertragenen Hinweisadresse
ist an das UND-Gatter 2433 angeschlossen. Das zweite Bit der Hinweisadresse stellt das Bit NINS dar und nimmt den Viert "1" ein,
wenn ein Datensatz nicht Mitglied einer Gruppe ist. Das UND-Gatter 2433 wird durch das Hinweisadressen-Lesesignal und das Speicheroperation-Beendigungs-Flip-Flop
2415 vorbereitet. Bei der während der Ausführung dieses Befehls sich ergebenden Beendigung der zweiten
Speicheroperation ist somit das zweite Bit der gelesenen Hinweisadresse über das UNEi-Gatter 2433 zu dem Vergleicher 2427 übertragen
worden. Der andere Eingang des Vergleichers 2427 wird durch ein "O"-Bit 2434 gebildet.
Das Speicheroperation-Beendigungs-Flip-Flop 2415 ist ferner an das UND-Gatter 2428 angeschlossen. Dieses Gatter wird durch das
Hinweisadressen-Lesesignal vorbereitet. Der Ausgang des UND-Gatters 2428 ist mit dem Gruppen-Zustandscode-Flip-Flop 2429
609853/0755
verbunden. Daraus folgt, daß das Flip-Flop 2429 auf den Wert "1" gesetzt wird, nachdem die zweite Speicher-Leseoperation
beendigt ist (Lesen der Hinweisadresse, die durch den Befehl "Prüfen, ob Mitglied eingefügt" adressiert wurde). Der Ausgang
des Gruppen-Zustandscode-Flip-Flops 2429 ist an das UND-Gatter
2430 angeschlossen.
Das UND-Gatter 2430 besitzt als weiteren Eingang das Ungleich-Signal
des Vergleichers 2427. Wenn daher das zweite Bit des aus dem Speicher ausgelesenen Datensatzes den Wert 11O" aufweist,
so besitzt das Ungleich-Signal den Wert "0" und der Ausgang des UND-Gatters 2430 weist ebenfalls den Wert "O" auf.
Der Viert "0" wird daher zu dem Zustandscoderegister 2436 übertragen.
Das Zustandscoderegister wird in Wirklichkeit durch die ersten beiden Bits des Statusregisters 207 gemäß Figur 2
gebildet. Wenn das zweite Bit der Hinweisadresse den Wert "1" aufweist, so findet der Vergleicher 2427 den Ungleich-Zustand
vor und das Ungleich-Signal weist den Wert "1" auf. Das UND-Gatter 2430 gibt in diesem Fall am Ausgang den Wert "1" abf
welcher in das Zustandscoderegister 2436 übertragen wird.
Die Umschaltung des Gruppen-Zustandscode-Flip-Flops 2429 auf
den Wert "1IC verursacht ebenfalls das Setzen des Befehls-Beendigungs-Flip-Flops
2437 auf den Wert "1", wobei dies zum gleichen Zeitpunkt geschieht, in dem der Wert des Zustandscodes
in dem Zustandscoderegister 2436 abgelegt wird. Durch das Setzen des Befehls-Beendigungs-Flip-Flops 2437 auf den Wert '3I" wird
die Beendigung des Befehls "Prüfen, ob Mitglied eingefügt" angezeigt.
609853/0755
Begriffsliste
Absolute Adresse Die physikalische Adresse eines Hardwareby.tes im Hauptspeicher.
Adressenentwicklung Adressierung Eine Hardwarefunktion, welche aus einer
Anzahl von Adressenelementen eine absolute Adresse berechnet/äie auf einen
Speicherplatz im Hauptspeicher hinweist.
Lokalisierung eines Objekts durch eine Anzahl virtueller logischer und physikalischer
Mittel.
Adressenraum Eine Gruppe logischer segmentierter
Adressen entsprechend einem Prozeß, welche die Zentraleinheit während der Durchführung des Prozesses in absolute
Adressen umwandeln darf.
Adressenraumwort Eines von zwei Worten in einem Prozeßsteuerblock,
welches auf die Segmenttabellen-Wortanordnung hinweist. Letztere definiert die dem Prozeß zugeordneten
Segmenttabellen.
Adressensilbe Eine von der Hardware der Zentraleinheit feststellbare logische Adresse, normalerweise
der Operand eines Befehls.
.6 09853/0755
Analysierer/Übersetzer Dei"jenige Teil einer statischen Verbindungseinheit,
die zunächst den Fluß der Steuersprache zur Verbindungseinheit
hinleitet; bei fehlerfreier Steuersprache wandelt der Analysierer/Übersetzer diese in Tabellen und andere Strukturen
für die Benutzung durch die statische Verbindungseinheit um.
Asynchrone Abwicklung Gleichzeitige Aktivierung von mehr als
einem Prozeß.
Hilfsspeicher Besteht aus 64 Flipflops zur Speicherung verschiedener Systemzustände und befindet
sich" im Rechenwerk.
Basisregister
Das Hauptelement bei der Segmentadressierung,-wird durch seine Nummer in jeder
Adressensilbe angewählt.
Grenzadressenregister Ein sichtbares Hardwareregister, welches
die niedrigste Speicheradresse definiert r
die für die Firmware/Software zugängig ist.
Aufruf
Siehe Prozeduraufruf - Einwärtsaufrufr
Auswärts aufruf.
Zentraleinheit Teil des Rechners, welcher die Schaltkreise
zur Steuerung der Interpretation und Ausübung von Befehlen enthält.
Kanal
Nachrichtenverbindung zwischen dem Prozessor-Untersystem und einem peripheren Untersystem.
Es gibt physikalische und logische Kanäle. Ein physikalischer Kanal ist die Hardwareverbindung zwischen der
Ein/Ausgabesteuereinheit IOC und der Pe-609853/0755
/03
ι" Em logis
ripheriesteuereinheit PCU7 Ein" logischer
Kanal ist ein Softwareverbindungsweg zwischen dem Hauptspeicher und einem einzelnen
Peripheriegerät.
Kanaleingangsbefehl Befehl in einem Kanalprogramm.
Kanalbefehlswort Ein Element eines Kanaleingangsbefehls.·
Zwei Kanalbefehlsworte bilden einen Kanaleingangsbefehl .
Kanalprogramm Eine Folge von Befehlen, welche die Durchführung einer bestimmten Ein/Ausgabeoperation
durch ein Peripheriegerät bewirken.
Komplementärcode Ein Code in einigen Befehlen, der zusammen mit dem Operationscode die Funktion
des Befehls definiert.
Compiliereinheit Der einzelne Objektcodemodul, welcher sich beim Compilieren oder Assemblierer
einer Prozedur in einem Prozessor mit hoch entwickelter Programmsprache ergibt, Die Compiliereinheit ist eine nicht ausführbare
Einheit, sie ist verbunden.
Gleichzeitigkeit Offensichtliche Gleichzeitigkeit.
Bedingungsfeld (Condition Field) Ein 4~Bit~Feld in einem Verzweigungsbefehl. Jedes Bit in dem Feld entspricht
der Einstellung eines Bedingungscodes in den Zustandsregisterbits O und 1.
Aus s chei dungs anzei ger (Contest Indicator) Eine Hardwarestruktur im Hilfsspeicher,
welche anzeigt daß ein neuer Eingangsbefehl in die Warteschlange eingereiht wurde und ggfs. einen Prioritätsinhalt
hat.
609853/0755
609853/0755
Datenadreßraum
- IW-
Eine Gruppe logischer Datensatzadressen, welche für einen Prozeß über das Datenmanagement
zugängig sind; er bestaht aus vier Elementen: logischen Feldern, logischen
Datensätzen, Datenbasisseiten und
Dateien.
Dateien.
Datendeskriptor Eine Befehlsstruktur, welche bei der indirekten Adressierung für die Beschreibung
einer bestimmten Datenbehandlung verwendet wird.
Decor
Die funktionellen Eigenschaften oder der Aufbau eines Rechnersystems.
Decorerweiterungsmodus Ein Betriebsmodus, der den Betrieb des
Systems im Emulationsmodus ermöglicht.
Deskriptor Ein 32- oder 64-Bit-Feld, welches bei der
Adressenentvricklung jedes Datenfeldes benutzt wird. Es ist nur eine von vielen Hinweisadressen im vorliegenden Adressierungsschema.
Deskriptorblock Ein Datenblock, der eine beliebige Anzahl Verschiedenheit von Deskriptorerklärungen
mit Ausnahme von Semaphor-Deskriptoren enthält. Keine anderen Daten sind erlaubt.
Geräteadapter Elektronische Schaltkreise zur Anpassung eines bestimmten Gerätes an ein Peripheriesteuergerät
.
609853/0755
Geräteadapterschnittstelle
2ß26703
Schnittstelle zwischen einem Geräteadapter und seinem zugehörigen Peripheriesteuergerät.
Ge r ä te s te ue r un g Eine Softwareeinheit zur Verarbeitung
von gerätespezifischen Kenngrößen.
Zuteiler (Dispatcher) Die Firmware, welche für die Zuteilung der Prozesse in der Zentraleinheit zuständig
ist.
Zuteilung Ein Feld innerhalb des Befehlsformates oder eines Datendeskriptors, welches
Information über die relative Lage eines Segments liefert.
Verschiebungsadressierung
Eine Form indirekter Adressierung, bei der der Operand die Lage in Bezug entweder
auf die Basis eines Unmittelbar-■segments oder auf den laufenden Stellenzähler
angibt.
Dynamische Adressierung Ein Adressierverfahren, welches während
der Ausführung zu einer Auflösung von innerhalb der Prozeßgruppe festgelegten
Bezugnahmen führt.
Aufbereiter (Editor) Derjenige Teil einer statischen Verbindungseinheit,
der beliebige oder alle informationen formiert und herausgibt, die sich aus der Verbindung einer bestimmten
Prozedur ergeben.
609853/0755
Effektive Adresse
Im Gegensatz zur physikalischen eine logische Adresse, welche aus einer
Segmenttabellennuinmer, einer Segmentt'abelleneingangsnummer
und einer relativen Seginentadresse besteht. Diese Elemente weisen den Weg zu einem bestimmten
Segmentdeskriptor, der schließlich auf das angewählte Segment hin.wcj.st.
Emulationsmodus Eine Rechnerbetriebsweise, bei der ein anderer Rechner in Gang gesetzt wird und
die als im anderen Rechner ablaufend erscheint.
Ausnahme Eine Ausnahme tritt auf, wenn die Hard-ware das Vorhandensein eines Zustande
feststellt, der eine besondere Bearbeitung erfordert.
Ereignis Irgendetwas, das in einem System von einem
Prozeß festgestellt wird und für einen anderen Prozeß von Interesse sein kann.
Firmware Derjenige Teil eines Hardwareablaufs, der
eine Art Mikroprogramm-Steuerung verwendet.
G, D-Name Der von der Hardware als Hinweis auf ein
Semaphor benutzte Name. Der G-Segmentname ist die Nummer des' Eingangs in die G-Tabelle,
welche den Segmentdeskriptor enthält; D ist die relative Adresse im Segment.
G-Segment Ein Segment, welches die Semaphoren enthält,
die durch Verwendung des Gf D-Namens und zugehörige Speieherumschichtungsmöglichkeiten
(G-Tabelle) adressiert werden können.
609853/0755
G-Tabelle
u& -
Eine Tabelle für die Speicherumschicntung
(Lokalisierung eines G-Segments) , wenn der G, D-Name benutzt wird.
Gattersteuerung (Gating)
Eine Möglichkeit für die Steuerung des Zugangs zu Prozeduren in, einem Segment
durch die Benutzung von Prozedurdes- · kriptoren.
Generalregister Ein zur Ausführung von Prozessen zur Verfügung stehendes 32-Bit Register,
Y7elch.es im allgemeinen binäre Daten oder Daten in Bitform einer Bitzeichenfolge
enthält. Bestimmte Generalregister können für das indizierte Adressi'eren verwendet werden. (GR8 bis .
GR15).
Index
Eine Datenstruktur, welche vom System beibehalten und verarbeitet wird. Die
Struktur erscheint dem Benutzer rur in Form eines Schlüssels, den er zum
Zwecke des Zugangs oder der Positionierung zu einem bestimmten Datensatzvorgang angibt.
Indizieren
Modifizieren einer Adresse durch vorzeichenbehaftete arithmetische Werte,
indem etwas hinzugefügt wird.
Indexregister Ein Generalregister, welches zum Indizieren
benutzt wird (GR8 bis GRl5).
Indirekte Adressierung
Ein Adressierverfahren, bei dem eine Adresse zur Erzeugung einer anderen
Adresse statt für die Ermittlung der tatsächlichen Daten benutzt wird.
Indirekte Basisadressierung Die Art der indirekten Adressierung,
bei der unter der angezogenen Adresse ein Datendeskriptor mit einer'-Basisregistemummer
und einer Verschiebung gefunden wird.
Indirekte.Segmentadressierung Die Art der indirekten Adressierung,
bei der unter einer angewählten Adresse ein Datendeskriptor mit einer Segmentadresse
gefunden wird.
Indirekter Segmentdeskriptor Eine Art von Segmentdeskriptoren,
welche Information für die Adressierung eines anderen Segmentdeskriptors statt
des Segments selbst enthält.
Befehl
Die dem Programmierer erkennbare Arbeitseinheit einer Zentraleinheit.
Befehlszählwe rk
Ein dem ablaufenden Prozeß zugeordnetes Register, welches die Segmentadressen des nächsten Befehls der auszuführenden
Prozedur enthält.
Durchschießen (Interleave) Der aufeinanderfolgende Zugriff zu Speichermodulen,
um die Speicherzugriffszeit zu verringern.
S098S3/07S5
Unterbrechung
Unterbrechungsprozeß
Die Unterbrechung eines Prozesses in dem System infolge des Auftretens einei
Ereignisses.
Ein Prozeß, der beim Auftreten einer Unterbrechung in Gang gesetzt wird.
Einwärts aufruf Wenn eine innerhalb einer Ringzone
ablaufende Prozedur den Ablauf einer Prozedur in einer niedrigeren Ringzone aufruft.
Ein/Ausgabesteuergerät Eine Einheit, die die grundlegende Steuerung für ein spezielles Ein/Ausgabe-Untersystem
bewirkt.
Ein/Äusgabeprozessor J.P.-Tabellen
Potentiell asynchrone Systemprozesse, die in erster Linie mit der Bewegung
von Daten zwisehen peripheren Speichern
oder Ein/Ausgabegeräten und dem Hauptspeicher beschäftigt sind.
Eine Sammlung logischer Adressen für die Lokalisierung eines Prozeßsteuerblocks.
Job
Eine Arbeitseinheit des Systems.
Job-Steuersprache Eine Sprache zum Beschreiben eines Jobs und seiner Teile.
Job-Schritt Der Hauptteil eines Jobs, der zur Ausführung eines durch eine Anweisung in
der Jobsteuersprache definierten Programms führt.
$09853/0755
Job-Schritt-Tabelle
Eine Systemtabelle, welche für die Festlegung des ersten Teils eines
Prozeßnamens, d.h. für die Lokalisierrung der Prozeßgruppentabelle benutzt
wird.
Verknüpfter Modul (Linked Module) Der Ausgang der statischen 'Verbindungseinheit. Es ist eine konsolidierte Gruppe
von Compiliereinheiten, deren Kreuzreferenzen durch die statische Verbindungseinheit
gelöst worden sind.
Logischer Prozessor Eine Ansammlung von Hardwarehilfsmitteln
und Steuerinformationen für die Ausführung eines Prozesses.
Hauptspeicher Der gesamte adressierbare Speicherraum, von dem her Befehle ausgeführt werden
können oder von dem Daten unmittelbar in Register geladen werden können.
Magnetbandsteuergerät
Die Elemente eines Magnetbandgeräten zugeordneten peripheren Untersystems.
Großspeicher-Steuergerät .
Die Großspeichern zugeordneten Elemente einer peripheren Untersystems.
Speichermanagement Betriebssystem-Möglichkeiten für die Zuordnung,
Umordnung undFreigabe eines physikalischen Speichers.
Nachricht
(Message)
(Message)
Die von einer Quelle oder zu einem Bestimmungsort hin übertragene Information,
wobei weder Quelle noch Bestimmungsort eine Datei ist.
609853/075S
Mikrobefehl
Das gleiche wie Mikrobefehlswort und Speichersteuerwort.
Mikroprogramm Eine Gruppe von Maschinencodes, die bei der Ausführung von Steuerfunktionen eines
Prozessors verwendet werden.
Multiplex Die gemeinsame Benutzung von Hilfsmitteln wie z.B. eines Speichers; üblicherweise
erreicht durch zeitliche Unterteilung.
Multi-Programmierung
Die gleichzeitige Ausübung von zwei oder mehreren Programmen durch einen einzigen
Rechner.
Eigenbereichsmodus (Native Mode) Betrieb eines Rechners in seinem eigenen
Wirkungsbereich.
Offset
Bei der Adressenentwicklung die Anzahl der Bytes nach dem Beginn eines Segments,
bei dem ein adressierter Teil des Segments anfängt.
Betriebssystem Ein System grundlegender Software für die Unterstützung des wirkungsvollen
Einsatzes der Benutzersoftware.
Auswärts-Aufruf Wenn eine Prozedur, die in einer Ringzone abläuft, eine andere Prozedur
zur Ausführung in einer höheren Ringzone aufruft.
609853/0755
- IW--
Peripheriesteuereinheit -Ein eigenständiger mikroprogrammierter
Prozessor, welcher Kana!programme für
die Durchführung von Ein/Ausgabeoperationen ausführt.
Peripheriesystem-Schnittsteile
Eine Standardschnittstelle für die Übertragung und Steuerung zwischen
eigenständigen peripheren Steuereinheiten und Ein/Ausgabe-Sinheiten.
Physikalische Datenstruktur Eine vollständige Definition derrDatenorganisation,
wie sie physikalisch auf einem Speichermedium aufgezeichnet ist,
Physikalische Ein/ Ausgabe
Derjenige Teil eines Betriebssystems, der die Übertragung von Daten zwischen
dem Speicher und peripheren oder Endgeräten in Gang setzt und steuert.
Physikalis ehe Speicherung Die zur Datenspeicherung dienende
Hardware. Sie setzt sich aus verschiedenen Arten von Aufzeichnungsmedien
und der Schreib/Lesehardware zusammen»
P-Operation Ein Maschinenbefehl mit einem Semaphor,
welcheö.den Prozeß veranlaßt, den Wartezustand einzunehmen oder eine Nachricht
zu empfangen.
Privilegierter Befehl Ein Befehl, der im Ring O ausgeführt
werden muß.
Prozedur Eine benannte Softwarefunktion oder Gin Algorithmus, der von einem Prozessor
ohne Gleichzeitigkeit ausgeführt werden kann: Eine Fortran-Subroutine, ein Cobol-Programmf eine interne Prozedur
609853/0755
in der Programmsprache I.
Prozeduraufruf Ein Mechanismus für die Erzeugung eines Stapelrahmens innerhalb eines
Stapelsegments.
Prozedur-Deskriptor Ein Wort, das den Platz und die Eingangsstelle einer Prozedur enthält.
Prozedurse gment
Eine Art Segment, dessen Inhalt eine Prozedur, mehrere Prozeduren oder einen Teil einer Prozedur darstellt.
Prozeß
Die geordnete Ausführung von Befehlen durch einen Prozessor ohne Gleichzeitigkeit
entweder zentral oder mit Ein/Ausgabe .
Prozeßadressenraum Speicheradressen, welche während eines
bestimmten Prozesses angewählt werden können oder auf welche.die Steuerung
übertragen werden kann.
Prozeßsteuerblock Eine durch Hardware definierte und feststellbare
Datenstruktur, welche die Informationen enthält, um jederzeit den Zustand eines Prozesses festssteilen
zu können.
Prozeßgruppe Eine Gruppe einander zugeordneter Prozesse üblicherweise jene, welche zur Durchführung
eines einzelnen Jobschrittes nötig sind.
09853/0755
Prozeßgruppenbildner (Process Group Builder) Derjenige Teil der statischen Verbindungseinheit,
dessen Einsatz zum verknüpften Modul führt.
Prozeßgruppenlader (Process Group Loader) Eine Möglichkeit des Betriebssystems,
welches die endgültigen Entscheidungen in einem verknüpften Modul herbeiführt und eine durchführbare Prozeßgruppe
erzeugt, anschließend die Prozeßgruppe in den Speicher lädt und ihre Durchführung
in Gang setzt.
Prozeßverbindung
Eine Eingangsstelle in einem vorbereiteten Prozeß oder eine wartende
Prozeß-Warteschlange.
Prozeßzustand
Der dynamische Zustand eines Zentraleinheit -Prozesses, beispielsweise
laufend, vorbereitet, wartend oder ausgesetzt.
Prozeßumschaltung Die Hardwarefunktion, welche einen Prozeß
von der Zentraleinheit abtrennt und einen anderen damit verbindet.
Prozeßsynchronisierung Die Funktion, welche die asynchrone Tätigkeit zwischen den Prozessen koordiniert.
Diese Funktion enthält im allgemeinen Semaphoren und die P- und V-Operationen.
Prozessor
Eine Einheit, welche Daten empfangen und verarbeiten, Ergebnisse liefern und
ihre Arbeitsfolge in Abhängigkeit von einem gespeicherten Programm steuern
kann; allgemeiner Ausdruck für Zentraleinheit, Peripherieprozessor oder Hard-
609853/0755
■ϋ. JUU"
ware/Softwareprozessor.
Programm
Die Spezifikation von Prozedur bestimmenden und zugehörigen Informationen,
die zur Lösung eines Problems nötig ist, d.h., die geordnete Ansammlung von Befehlen
, welche vom Rechner ausgeführt wird, um einen Benutzerjob oder eine bestimmte
Phase eines solchen Jobs zu erledigen.
Programmaus führung Die Aktivität eines Prozesses in Übereinstimmung
mit der Programmspezifikation.
Schutzfunktion Die durch Hardware und Software gewährleistete Funktion, um gegenseitige Beeinträchtigung
von Prozessen oder die unerlaubte gemeinsame Benutzung von Adreßraum
zu verhindern.
P-Tabelle Eine durch Hardware definierte Datenstuktur
mit Eingangsstellen, von denen jede auf den Ursprung eines Prozeßsteuerblocks hinweist. Die P-Tabelleneingangsstellen
zeigen auch auf die gesamte Gruppe von Prozeßsteuerblöcken, die zu jeder gegebenen Zeit eine Prozeßgruppe
enthalten. Man nennt sie auch Prozeßgruppentabelle.
Q/PR/RDY.
Die Warteschlange eines Prozesses ist vorbereitet.
609853/0755
Warteschlange
All
Eine geordnete Liste von Eingangsgrößen, welche auf Informationen f einen Prozeß
oder auf Zugang warten.
Vorbereitungs zus tand (Ready State) Ein Prozeßzustand, bei dem kein Prozessor
zugeordnet ist,- aber alle notwendigen Hilfsmittel mit Ausnahme des
Prozessors für den übergang in den Ablaufzustand vorbereitet sind.
Relative Adresse
Umordnung (Relocation) Der Schrittweise definierte Platz eines
Objekts in Bezug auf ein anderes.
Die Verschiebung eines Segments von einem Platz im Hauptspeicher auf einen anderen
einschließlich der Anpassung aller erforderlichen Bezugnahmen auf seinen vorhergehenden
Standort.
Rücksprung Die Funktion und die Operationen, welche nötig sind, um die Tätigkeit einer Prozedur
an einer Stelle wieder aufzunehmen, welche unmittelbar derjenigen Stelle
folgt, v/o sie in eine andere Prozedur übergegangen ist.
Ring
Ein Schutzattribut eines Segments, welches den Lese-,Schreib-und Ausführungszugriff eines Prozesses zu jenem Segment
beschränkt. Der Ring stellt ferner den Grad des Privilegs eines Prozesses für das Lesen, Schreiben oder Durchführen
von Operationen dar.
609853/0755
- ISS- -
Steuerungsübergabe (Rolling-in)
Durchführung der notwendigen Operationen, um die Steuerung eines Prozesses auf einen
neuen Prozeß zu übertragen.
Steuerungswegnahme (Rolling-out)
Durchführung der notwendigen Operationen, um die Steuerung eines Prozessors durch
einen Prozeß zu beenden.
Laufender Zustand
Der dynamische Zustand eines an die Zentraleinheit angeschlossenen Prozesses,
welcher gerade abläuft.
Zwischenspeicher (Scratch Pad Memory) 256 Speicherplätze im Rechenwerk zur
Speicherung von Steuerinformationen für die Zentraleinheit, auch als örtlicher Speicher bekannt.
Ablaufplanung (Scheduling) Bestimmung der Folge der einzelnen
Operationen.
Wissenschaftliches Register
Segment
Ein 64-Bit-Register, welches bei der Verarbeitung von binären Fließkommazahlen
verwendet wird. Beim vorliegenden System hat dieses in der wissenschaftlichen Option vier wissenschaftliche Register.
_. zusammenhängender ■ n
Exn Z3 ilauptspexcherraum, welcher
als Einheit behandelt wird.
Segmentierung Die Unterteilung des Hauptspeichers in logische Gruppen genannt Segmente an
Stelle der Unterteilung in einen einzigen linearen Speicherraum.
609853/0755
Segmentbasis Der laufende Ursprung des Segments. Dies ist eines der Felder in einem Segmentdes
criptorwort.
Segmentäescriptor Die Eingangsstelle in eine Segmenttabelle,
welche die Kenngrößen eines Segments definiert oder auf einen Segmentdescriptor
hinweist.
Segmentnummer Die Identifizierung eines bestimmten Segments bestehend aus einer Segmenttabellennummer,,
die eine der Segmenttabellen des Prozesses auswählt, und .einer Segmenttabelleneingangsstelle
der ausgewählten Tabelle.
Relative Segmentadresse Während der Adressenentwicklung der endgültige
Wert,der zur Segmentbasis zu addieren ist, um die absolute Adresse zu
erhalten.
Segmenttabelle
Segmenttabelleneingangsstelle
Segmenttabellenwort Eine Tabelle mit Segmentdescriptoren, welche die Adressierbarkeit eines Prozesses
zu seinen Segmenten festlegt. Die Sammlung von Segmenttabellen eines Prozesses bestimmt den Adressenraum-für
jenen Prozeß..
Eine Stelle in einer Segmenttabelle. Jede Segmenttabelleneingangsstelle ist
ein Segmentdescriptor.
Der Eingang in eine Segmenttabellenwortanordnung, welcher auf die Segmenttabellen
eines Prozesses hinweist. Die An-
609853/0755
— A24
Ordnung wird durch eines von zwei Adreßraumworten im Prozeßsteuerblock bezeichnet.
Semaphor
Datenstrukturen zur Steuerung des Informationsaustausches zwischen Prozessen.
Semaphorblock
Ein Datenblock/ der nur Semaphor-Descriptorerklärungen enthält.
Stapelspeicher
(Stack)
(Stack)
Ein Mechanismus, v/elcher Daten aufnimmt, speichert und ihre Wiedergewinnung ermöglicht
nach dem Prinzip, daß die zuletzt eingegebene Information zuerst ausgegeben wird. Er besteht aus einer
Anzahl benachbarter Teile, welche Stapelspeicherrahmen genannt werden.
Stapelspeicher-Aktivbereich
Stapelspeicherbasisworte
Derjenige Teil eines gerade in Betrieb befindlichen Stapelspeicherrahmens, welcher
einen Hinweis auf einen Reservebereich, das Befehlszählwerk des Aufrufers ,
Parameterraum und örtliche Veränderliche enthält, kurz gesagt, die Daten des gerade
ablaufenden Rahmens, welche mit größter Wahrscheinlichkeit für die Ausführung der aufgerufenen Prozedur nützlich sind.
Eine Gruppe von drei Worten in einem Prozeßsteuerblock, die die segmentierten
Adressen der Stapelspeichersegmente für die dem Prozeß zugeordneten Ringe O, 1
und 2 enthält.
5 3/0755
Stapelspeicherrahmen
Ab f
Ein fortlaufender Teil des Stapelspeichersegments, welcher die gespeicherten
Daten für einen einzigen Prozeduraufruf enthält.
Stapelspeicherbetrieb Die Operationen zum Speichern und Wiedergewinnen
von Informationen im und aus dem Stapelspeicher. In der Praxis die Verarbeitung von Hinweisadressen
auf die in dem Stapelspeicher enthaltenen Informationen.
Stapelspeicher-Überlauf Der Versuch mehr Information in den Stapel
speicher einzuspeichern als in diesem Speicherraum vorhanden ist. Dieser Zustand
wird von der Hardware festgestellt«
Stapelspeicherregister Siehe T-Register.
Stapelspeichersegment· Das Segment eines Prozesses, welches
dessen Stapelspeicher enthält.
Statische Verbindungseinheit
(Static Linking) Ein Zwischenschritt zwischen dem Compilieren einer Quellenprozedur und der Ausführung der Objektform einer solchen Prozedur. Die Verbindung löst die externen Bezugnahmen auf und von dieser Prozedur.
(Static Linking) Ein Zwischenschritt zwischen dem Compilieren einer Quellenprozedur und der Ausführung der Objektform einer solchen Prozedur. Die Verbindung löst die externen Bezugnahmen auf und von dieser Prozedur.
Statusregister Ein 8-Bit Register, welches den Zustand der gerade ablaufenden Prozedur kennzeichnet.
Auswärtsspeichern
(Swapping)
(Swapping)
Die Entlastung des von einem Segment besetzten Hauptspeicherraums durch Umladen
609853/0755
Ϊ26 —
in ι des Segments in einen Sekundärspeicher.
Das tatsächliche Umschreiben in den Sekundärspeicher kann unterdrückt werden, falls das Segment seit dem letzten
Auslesen nicht geändert worden ist.
Synchronisierung
Eine feste zeitliche Zuordnung, beispielsweise die synchronisierte Durchführung
von zwei oder mehr Prozessen.
Systembasis Ein fest vorgegebener Bereich im Hauptspeicher,
der als Wurzel für alle Informationsstrukturen dient.
Task
Kleinste Einheit der vom Benutzer bestimmten Arbeit, welche nur aus einem
einzigen Strom nicht gleichzeitig auftretender Befehle steht.
T-Register Ein für die Software sichtbares Hardwareregister,
welches die segmentierte Adresse der Spitze eines Prozedurstapelspeichers enthält.
Aufzeichnungsgerät-Steuereinheit Die Elemente des peripheren üntersystems ,
die mit Aufzeichnungsgeräten wie Karten-Stanzer und -Lesern, Streifen- Stanzern und-Lesern sowie Zeilendruckern in Verbindung
stehen.
Benutzer-Prozeßgruppe Die interne Darstellung irgendeines Jobschrittes im Gegensatz zu einer Systemprozeßgruppe,
die unabhängig von irgendeinem Job besteht.
609853/0755
Vakanzänzeiger
Eine Hardwarestruktur, welche anzeigt, daß der Prozeß, welcher in der Zentraleinheit
ablief, sich selbst ausgesetzt hat, d.h., daß kein gerade ablaufender Prozeß sich in der Zentraleinheit befindet.
Er befindet sich dann in einem Hilfsregister des Rechenwerks.
Virtueller Speicher Ein Adressierverfahren, welches dem Programmierer eine Codierung ohne Rücksicht
auf den physikalischen Umfang des Speichers erlaubt. Ein Virtualspeicher-Steuersystem
sorgt für den Austausch von Segmenten zwischen dem Hauptspeicher und dem Sekundärspeicher.
V-Operation
Ai> fan <j- S emäpho r
Ein Maschinenbefehl für die Mitteilung des Abschlusses eines Ereignisses innerhalb
des Prozesses. Eine V-Operation erfolgt auf ein bestimmtes Semaphor.
Semaphor mit nicht-progranimiertem
Sprung bzw. Haltepunkt.
Feldklasse
Eine Gruppe ähnlicher Feldwerte, von denen jeder Feldwert aus einem verschiedenen
Datensatz in der gleichen Datensatzklasse stammt und wobei die Feldwerte zur Speicherung der gleichen
Eigenschaft benutzt werden. Beispielsweise alle Feldwerte für das Alter innerhalb der Datensatzklasse für die
Angestellten.
609853/0755
Feldwert
Ein Datenelement, das einem Datensatz zugeordnet ist, welches den Wert
irgendeiner Eigenschaft des durch
den Datensatz repräsentierten Systemelementes darstellt. Der Wert kann
durch eine Zeichenfolge, eine Nummer, einen Bool*sehen Wert oder irgendwelche Daten dargestellt werden,
welche als der Wert interpretiert
werden können oder welche indirekt
zu dem Wert führen.
irgendeiner Eigenschaft des durch
den Datensatz repräsentierten Systemelementes darstellt. Der Wert kann
durch eine Zeichenfolge, eine Nummer, einen Bool*sehen Wert oder irgendwelche Daten dargestellt werden,
welche als der Wert interpretiert
werden können oder welche indirekt
zu dem Wert führen.
Mitglied Eine Rolle, die ein Datensatz in Beziehung mit einem Gruppenauftritt
spielt.
spielt.
Hinweisadresse Ein Informationselement, das zum
Identifizieren eines Systemelementes innerhalb einer Informationsstruktur verwendet wird. Der Inhalt der Hinweisadresse kann ein eindeutiges
Symbol sein, welches das Systemelement oder die Adresse des Systemelementes in irgendeinem Adressbereich identifiziert.
Identifizieren eines Systemelementes innerhalb einer Informationsstruktur verwendet wird. Der Inhalt der Hinweisadresse kann ein eindeutiges
Symbol sein, welches das Systemelement oder die Adresse des Systemelementes in irgendeinem Adressbereich identifiziert.
Datenbank-Hinweisadresse Eine Hinweisadresse, deren Inhalt
auf einem Adressbereich basiert, v/elcher von dem normalen Adressierbereich
des Computers verschieden ist. Typischerweise sind Datenbank-Hinweisadressen mit Adressbereichen ausgestattet,
welche größer als die hardwareunterstützten Adressen sind und sie bieten daher einige Möglichkeiten
der indirekten Adressierung, wodurch das Problem des fortlaufend unbenutzten Speicherplatzes umgangen wird.
609853/0755
Zwischensegment-Hinweisadresse
Virtuelle Speicher-Hinweisadresse
Eine Hinweisadresse, deren Inhalt durch die teilweise virtuelle Speicheradresse des
zu adressierenden Systemelementes gebildet ist„ Der fehlende
Segmentteil der virtuellen Speicheradresse ist der gleiche,
wie der des Segmentes der Zwischensegment-Hinweisadresse und ist somit implizite bekannt«
Eine Hinweisadressef deren
Inhalt durch die virtuelle Speicheradresse des zu adressierenden Systemelementes gebildet
wird.
Datensatz
Ein Datenelement, welches ein Objekt der tatsächlichen Umwelt umschreibt. Beispielsweise repräsentiert
ein "personeller" Datensatz einen Angestellten.
Datensatzklasse
Datensatzdescriptor Eine Gruppe von ähnlichen Datensätzen, die so definiert
sind, daß jeder Datensatz nur einer einzigen Datensatzklasse genügt. Beispielsweise alle
"personellen"'Datensätze.
Eine Informationsstruktur, welche bei der Bildung, Erkennung und Zerstörung von
Datensatzstrukturen benutzt wird. Der Datensatzdescriptor bezieht sich auf eine einzelne
Datensatzklasse.
609853/0755
Gruppe
Eine Gruppe ist eine Zusammenstellung von einem oder mehreren
Datensätzen. Sie benutzt einen
"Benutzer"-Datensatz, der die
Gruppe definiert. Sie weist ferner null, einen oder mehrere "Mitglied"· Datensätze auf. Eine Gruppe kann so geordnet sein, daß sie auf folgendes verweist:
Datensätzen. Sie benutzt einen
"Benutzer"-Datensatz, der die
Gruppe definiert. Sie weist ferner null, einen oder mehrere "Mitglied"· Datensätze auf. Eine Gruppe kann so geordnet sein, daß sie auf folgendes verweist:
"erstes Mitglied"
"letztes Mitglied"
"nächstes Mitglied"
"vorangegangenes Mitglied"
"letztes Mitglied"
"nächstes Mitglied"
"vorangegangenes Mitglied"
Gruppenklasse Gruppendescriptor Eine Gruppenklasse ist eine mit
Namen versehene Sammlung von Gruppen, basierend auf Regeln für:
Namen versehene Sammlung von Gruppen, basierend auf Regeln für:
Gruppenrollen
Gruppenauftrittauswahl
Gruppenordnung
Eine Gruppe kann ein Mitglied von nur einer einzigen Gruppenklasse
sein. Ein Datensatz kann ein Mitglied nur von einer Gruppe innerhalb einer Gruppenklasse sein.
sein. Ein Datensatz kann ein Mitglied nur von einer Gruppe innerhalb einer Gruppenklasse sein.
Eine Informationsstruktur, welche
bei der Auslösung, der Einfügung, der Wiederauffindung und dem Entfernen
von Datensätzen in Beziehung auf Gruppenstrukturen benutzt wird. Ein Gruppendescriptor bezieht sich
auf eine einzige Gruppenklasse.
SO9863/07E5
Abkür ziui gen:
ACU (address control unit)
ALU (arithmetic and logic unit)
AS (address syllable)
Asw (address space V7ord)
BAR (boundary address register)
BCD (binary coded decimal)
BR (base register)
CCE (channel command entry)
CCU (channel control unit)
CMRN (the callers maximum ring number)
CCW (channel command word)
CET (current state entry time)
CIA (control store interface adapter)
CJP (currently executing process)
CPU (central process unit)
CU (compilation unit)
CSU (control store unit)
D (displacement)
DMU (data management unit)
DA (device adapter)
EAR (effective address ring)
EXW (exeption word)
GR (general register)
GTW (G-table word)
IC (instruction counter)
IFU (instruction fetch unit)
Adre s s ens te ue rwe rk Rechenwerk
Adreßsilbe
Adressenraumwort Adressengrenzregister
Adreßsilbe
Adressenraumwort Adressengrenzregister
Binär codierte Dezimalziffer
Basisregister
Kanaleingangsbefehl Kanalsteuereinheit
maximale Ringnummer des Aufrufers
Kanalbefehlswort
Eingangszeit des laufenden Zustandes
Steuerspeicher-Schnittstellenadapter gerade ablaufender Prozeß Zentraleinheit
Compilersinheit Speichersteuerwerk
Verschiebung
Datenmahagementeinheit Geräteadapter
effektiver Adreßring Au s ηahmewort
Generalregister G-Tabellenwort Be feh1s ζ ählwe rk Befehlsabrufeinheit
Datenmahagementeinheit Geräteadapter
effektiver Adreßring Au s ηahmewort
Generalregister G-Tabellenwort Be feh1s ζ ählwe rk Befehlsabrufeinheit
609863/07S-S
I/O (input/output)
IOC (input/output controller)
IPQW (internal process queue word)
IR (index register)
ITBR (indirect to base register)
ITS (indirect to segment)
J (job)
JCL (job control language)
JTW (J-table word)
LCT (logical channel table)
LIFO (last-in-first-out)
LSU (local store memory or scratch pad memory)
MBZ (must be zero)
MOS (metal oxide semiconductor)
MAXR (maximum ring number)
MSC (mass storage controller) MTC (magnetic tape controller)
NFS .(non-functional status)
NPRN (new process ring number) NJP (new process replacing the
currently executing process)
PCB (process control block)
PCT (physical channel table)
PCU (peripheral control unit)
PL/I (programming language/one)
PMW (process main word)
Eingabe/Ausgabe Ein/Ausgabe-Steuerung
Internprozeß-Warteschlangenwort
Indexregister
Register für indirekte Basisadressierung
indirekte Segmentadressierung
Job
Jobs teuerspräche
J-Tabellenwort logische Kanaltabelle
zuletzt eingegeben/als erster entnommen örtlicher Speicher oder Zwischenspeicher
muß Null sein
Metalloxyd-Halbleiter
Metalloxyd-Halbleiter
maximale Ringnummer, bei der eine Prozedur ausgeführt werden kann. Sie wird
im Segmentdeskriptor SEG p gefunden.
Großspeicher-Steuergerät Magnetbandgeräts teuereinhei t
nicht-funktioneller Zustand
neue Prozeßringnummer
neuer Prozeß als Ersatz für den ablaufenden Prozeß Prozeßsteuerblock
physikalische Kanaltabelle Peripheriesteuereinheit
Programmsprache/l Prozeßhauptwort
6Q9&S3/0766
JCJJ
Q/PR/RDY (queue of processes ready)
RD
RUU
RUU
RPW RSU
RTO SBW SEG
EP
PD
STN STR STW STWA
WR
WTA
WTA
(read ring)
(reserved for hardware use)
(running process word) (reserved for software use)
(ready time accounting)
(residual time out) (stack base word) (segment number) (stack word)
(segment containing entry point) -
(segment containing procedure descriptor)
(scientific register) (segment relative address) (segment table entry)
(segment table number) (status register) (segment table word) (segment table word array)
(T-registerr stack register) (unit record controller)
•<write ring)
(waiting time accounting) Warteschlange des Prozesses
vorbereitet
Lesering
reserviert für Hardware— benutzung
laufendes Prozeßwort
reserviert für Softwarebenutzung
Bereitschaftszeitberechnung
Restzeitablauf
Stapelspeicherbasiswort Segmentnummer
Stapelspeicherwort
Stapelspeicherbasiswort Segmentnummer
Stapelspeicherwort
das Segment, welches die im Prozedurdeskriptor gefundene Eingangssteile
aufweist
Segment, welches den Prozedurdeskriptor auf v/eist
wissenschaftliches Register relative Segmentadresse
Segmenttabelleneingangsstelle
Segmenttabellennummer Statusregister
Segmenttabellenwort
Segraenttabellenwortan-Ordnung
T-registerf Stapelspeicherregister
Äufzeichnungsgerät-Steuereinheit
Schreibring
Wartezeitberechnung
Wartezeitberechnung
60985370755
Claims (5)
- — WL34" —Patentansprüche/ 1.) Intern programmierbares DV-System mit einem mehrere adressierbare Speicherplatzsegmente aufweisenden Speicher, wobei jedes Segment eine Segmentnummer aufweist, durch obere und untere Grenzen begrenzt ist, vorbestimmte Segmente mehrere Dateien von in Gruppen unterteilten Datenbank-Datensätzen speichern, jede Gruppe einen Benutzer-Datenbank-Datensatz aufweist, jeder Datenbank-Datensatz wenigstens eine Hinweisadresse zur Verbindung vorbestimmter Datenbank-Datensätze mit anderen Datenbank-Datensätzen bzw. Gruppen von solchen aufweist,.jedem Datenbank-Datensatz ein Datensatz-Descriptor zur Beschreibung des Datensatzes zugeordnet ist und wobei die Descriptoren in weiteren Segmenten gespeichert sind, mit einem Rechenwerk zur Ausführung arithmetischer und logischer Operationen mit Daten und Adressen der Segmente, den Datenbank-Datensätzen und den Descriptoren, mit einer Systembasis, der die absoluten Adressen der Segmente, der Datenbank-Datensätze und der Descriptoren entnehmbar sind, gekennzeichnet durch eine Befehls-Hardware, die in Abhängigkeit von einem Gruppen-Prüfbefehl feststellt, ob ein ausgewählter Datenbank-Datensatz mit bestimmten anderen Datenbank-Datensätzen verbunden ist, wobei diese Befehls-Hardware umfaßt:a. eine erste Einrichtung zum Abruf des jeweils ausgewählten Datenbank-Datensatzes in das Rechenwerk (ALU),b. eine zweite Einrichtung zum Abruf des zugeordneten Descriptors zu dem ausgewählten Datenbank-Datensatz,c. eine dritte von der ersten und zweiten Einrichtung abhängige Einrichtung zur Speicherung der Hinweisadresse des ausgewählten Datenbank-Datensatzes undd. eine vierte von der dritten Einrichtung abhängige Einrichtung zur Feststellung, ob der ausgewählte Datenbank-Datensatz mit anderen ausgewählten Datenbank-Datensätzen verbunden ist oder nicht.6098B3/07SS
- 2. System nach Anspruch 1, dadurch gekennzeichnet , daß die Hinweisadresse einen errichtbaren Code zur Anzeige des Endes derjenigen Gruppe aufweist, in der der ausgewählte Datenbank-Datensatz ein Mitglied bildet und daß eine 5. Einrichtung vorgesehen ist, die auf diesen Code anspricht und das Ende der Gruppe feststellt.
- 3. System nach Anspruch 2, gekennzeichnet durch einen Vergleicher als 5. Einrichtung.
- 4. System nach Anspruch 2, gekennzeichnet durch eine 6. von der
- 5. Einrichtung abhängigen Einrichtung zur Anzeige des Endes der Gruppe.609853/07 55Leerseit
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/588,436 US4042912A (en) | 1975-06-19 | 1975-06-19 | Database set condition test instruction |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2626703A1 true DE2626703A1 (de) | 1976-12-30 |
Family
ID=24353840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19762626703 Withdrawn DE2626703A1 (de) | 1975-06-19 | 1976-06-15 | Intern programmierbares datenverarbeitungssystem |
Country Status (7)
Country | Link |
---|---|
US (1) | US4042912A (de) |
JP (1) | JPS603652B2 (de) |
BE (1) | BE843166A (de) |
CA (1) | CA1074452A (de) |
DE (1) | DE2626703A1 (de) |
FR (1) | FR2315123A1 (de) |
GB (1) | GB1536043A (de) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4205371A (en) * | 1975-11-03 | 1980-05-27 | Honeywell Information Systems Inc. | Data base conversion system |
US4468732A (en) * | 1975-12-31 | 1984-08-28 | International Business Machines Corporation | Automated logical file design system with reduced data base redundancy |
US4190885A (en) * | 1977-12-22 | 1980-02-26 | Honeywell Information Systems Inc. | Out of store indicator for a cache store in test mode |
US4488254A (en) * | 1980-03-26 | 1984-12-11 | Ncr Corporation | Method and apparatus for efficient data storage |
US4383298A (en) * | 1980-04-10 | 1983-05-10 | Ciba-Geigy Corporation | Plant maintenance control system |
JPS57185545A (en) * | 1981-05-11 | 1982-11-15 | Hitachi Ltd | Information processor |
US4454579A (en) * | 1981-09-11 | 1984-06-12 | Data General Corporation | System for performing call and return operations |
US4494189A (en) * | 1982-04-26 | 1985-01-15 | International Business Machines Corporation | Method and means for switching system control of CPUs |
US4498145A (en) * | 1982-06-30 | 1985-02-05 | International Business Machines Corporation | Method for assuring atomicity of multi-row update operations in a database system |
US4539637A (en) * | 1982-08-26 | 1985-09-03 | At&T Bell Laboratories | Method and apparatus for handling interprocessor calls in a multiprocessor system |
US4670839A (en) * | 1982-09-27 | 1987-06-02 | Data General Corporation | Encachement apparatus using two caches each responsive to a key for simultaneously accessing and combining data therefrom |
US4652995A (en) * | 1982-09-27 | 1987-03-24 | Data General Corporation | Encachement apparatus using multiple caches for providing multiple component values to form data items |
US4531186A (en) * | 1983-01-21 | 1985-07-23 | International Business Machines Corporation | User friendly data base access |
US5210832A (en) * | 1986-10-14 | 1993-05-11 | Amdahl Corporation | Multiple domain emulation system with separate domain facilities which tests for emulated instruction exceptions before completion of operand fetch cycle |
JP3183736B2 (ja) * | 1992-12-28 | 2001-07-09 | 富士通株式会社 | データベース論理データ構造の動的変更方式 |
JP2002334092A (ja) * | 2001-05-11 | 2002-11-22 | Hitachi Ltd | 情報関連付け方法、情報閲覧装置、情報登録装置、情報検索装置、課金方法、およびプログラム |
US7554978B1 (en) * | 2004-03-30 | 2009-06-30 | Extreme Networks, Inc. | System for accessing content-addressable memory in packet processor |
US7822780B1 (en) * | 2004-10-20 | 2010-10-26 | Embarq Holdings Company, LP | Computerized method and system for generating procedures capable of being used with multiple databases |
US7774299B2 (en) * | 2005-05-09 | 2010-08-10 | Microsoft Corporation | Flow computing |
US8605732B2 (en) | 2011-02-15 | 2013-12-10 | Extreme Networks, Inc. | Method of providing virtual router functionality |
CN117056149B (zh) * | 2023-10-08 | 2024-02-02 | 飞腾信息技术有限公司 | 一种内存测试方法、装置、计算设备及存储介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL6815506A (de) * | 1968-10-31 | 1970-05-04 | ||
US3821708A (en) * | 1969-05-20 | 1974-06-28 | B Sokoloff | Electronic control unit for the linking of symmetrical closed chains of words in a random access memory |
US3656123A (en) * | 1970-04-16 | 1972-04-11 | Ibm | Microprogrammed processor with variable basic machine cycle lengths |
GB1329721A (en) * | 1970-05-26 | 1973-09-12 | Plessey Co Ltd | Data processing devices |
US3686641A (en) * | 1970-09-30 | 1972-08-22 | Burroughs Corp | Multiprogram digital processing system with interprogram communication |
US3916387A (en) * | 1971-04-23 | 1975-10-28 | Ibm | Directory searching method and means |
US3829837A (en) * | 1971-06-24 | 1974-08-13 | Honeywell Inf Systems | Controller for rotational storage device having linked information organization |
US3693165A (en) * | 1971-06-29 | 1972-09-19 | Ibm | Parallel addressing of a storage hierarchy in a data processing system using virtual addressing |
US3878513A (en) * | 1972-02-08 | 1975-04-15 | Burroughs Corp | Data processing method and apparatus using occupancy indications to reserve storage space for a stack |
US3728693A (en) * | 1972-04-28 | 1973-04-17 | Burroughs Corp | Programmatically controlled interrupt system for controlling input/output operations in a digital computer |
US3900834A (en) * | 1972-09-05 | 1975-08-19 | Bunker Ramo | Memory update apparatus utilizing chain addressing |
FR2200988A5 (de) * | 1972-09-26 | 1974-04-19 | Honeywell Bull Soc Ind | |
US3889243A (en) * | 1973-10-18 | 1975-06-10 | Ibm | Stack mechanism for a data processor |
US3916385A (en) * | 1973-12-12 | 1975-10-28 | Honeywell Inf Systems | Ring checking hardware |
US3891974A (en) * | 1973-12-17 | 1975-06-24 | Honeywell Inf Systems | Data processing system having emulation capability for providing wait state simulation function |
FR122199A (de) * | 1973-12-17 | |||
US3909798A (en) * | 1974-01-25 | 1975-09-30 | Raytheon Co | Virtual addressing method and apparatus |
-
1975
- 1975-06-19 US US05/588,436 patent/US4042912A/en not_active Expired - Lifetime
-
1976
- 1976-05-12 CA CA252,341A patent/CA1074452A/en not_active Expired
- 1976-06-11 FR FR7617895A patent/FR2315123A1/fr active Granted
- 1976-06-15 DE DE19762626703 patent/DE2626703A1/de not_active Withdrawn
- 1976-06-17 GB GB25122/76A patent/GB1536043A/en not_active Expired
- 1976-06-18 BE BE168113A patent/BE843166A/xx not_active IP Right Cessation
- 1976-06-19 JP JP51071718A patent/JPS603652B2/ja not_active Expired
Also Published As
Publication number | Publication date |
---|---|
BE843166A (fr) | 1976-10-18 |
CA1074452A (en) | 1980-03-25 |
JPS522241A (en) | 1977-01-08 |
FR2315123A1 (fr) | 1977-01-14 |
US4042912A (en) | 1977-08-16 |
GB1536043A (en) | 1978-12-20 |
JPS603652B2 (ja) | 1985-01-30 |
FR2315123B1 (de) | 1981-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2626703A1 (de) | Intern programmierbares datenverarbeitungssystem | |
DE2517171A1 (de) | Datenverarbeitungssystem mit erweitertem semaphor-aufbau | |
DE2517297A1 (de) | Einrichtung zum feststellen eines zu einem zu verhindernden endgueltigen stillstand fuehrenden systemzustandes | |
DE69730276T2 (de) | Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes | |
DE2119063C2 (de) | Datenverarbeitungseinrichtung mit einer Einrichtung zur Steuerung von Programmunterbrechungsanforderungen | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE2459675A1 (de) | Datenverarbeitungssystem | |
DE2555963C2 (de) | Einrichtung zur Funktionsmodifizierung | |
DE2458065C2 (de) | Datenverarbeitungsanlage | |
DE69839194T2 (de) | Gerät und verfahren zum initieren hardwarevorrangsmanagement durch softwarekontrollierten registerzugriff | |
DE2209282A1 (de) | Datenverarbeitungsanlage | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE2500006A1 (de) | Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen | |
DE2417795C2 (de) | Datenverarbeitungsanlage | |
DE2251876B2 (de) | Elektronische datenverarbeitungsanlage | |
DE2719295A1 (de) | Programmsteuerung | |
DE2847934A1 (de) | Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE2806024A1 (de) | Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit | |
EP1975821A2 (de) | Verfahren zur digitalen Speicherung von Daten auf einem Datenspeicher mit beschränktem verfügbarem Speicherplatz | |
DE2837872A1 (de) | Digitalrechner mit ueberlappender betriebsweise unter verwendung einer bedingten steuerung zur minimierung von zeitverlusten | |
DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
DE2459956A1 (de) | Prozessor und diesen verwendendes peripheres verarbeitungssystem | |
DE2629459A1 (de) | Datenverarbeitungssystem | |
DE2744251A1 (de) | Mehrprogramm/mehrprozess-computersystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8130 | Withdrawal |