DE2626703A1 - Intern programmierbares datenverarbeitungssystem - Google Patents

Intern programmierbares datenverarbeitungssystem

Info

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

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/961Associative
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database 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
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
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
I. Allgemeine Erläuterung
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
A. Zentraleinheit
Die Zentraleinheit umfaßt einen Hauptspeichersynchronisierer 109, einen Pufferspeicher 110 sowie mehrere die Recheneinheit 111 bildende Elemente und wahlweise Emulatoren 112. Der Hauptspeichersynchronisierer 109 verhindert Schwierigkeiten bei der Benutzung des Hauptspeichers durch die Recheneinheiten 111, dem Pufferspeicher 110 und die Ein/Ausgabe-Steuerung 109. Die Synchronisierung erfolgt aufgrund von Prioritä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.
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.
C. Peripherie-Subsysteme
In einem Peripherie-Subsystem 103 gemäß Figur l ist die Peripherie-Steuereinheit (PCU) 106 ein selbständiger Mikroprogramm-Prozessor, welcher die Belastung der Zentraleinheit 104 dadurch verringert, daß er während der Ein/Ausgabe-Operationen, die. Ein/Ausgabe-Geräte 108 steuert. Die Peripherie-Steuereinheit 106 bewerkstelligt dies durch Ausführung von Befehlen in einem Kanalprogramm. Dieses Programm resultiert in arithmetischen, logischen, 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 .
D. Speicher-Subsystem
Jeder Speichermodul 1-4 ist 4 oder 8 Bytes groß. Die Anzahl der Modulen, ihr Umfang und der Datenverlauf kann sich entsprechend dem Umfang des Rechners ändern. Die Speichermodule sind vierfach in solcher Weise durchschossen, daß vier Module der Reihe nach zugängig sind (Modul 1 enthält die ersten 8 Bytes, Modul 2 enthält die zweiten 8 Bytes usw). Das Durchschiessen verringert die Anzahl von 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.
C. Datendarstellung
Alle Daten liegen in binärer Form vorj aber können als binär , dezimal oder alphanumerisch erklärt werden. Datenbits werden in Vierergruppen als binär kodierte Dezimaldaten interpretiert; in Achtergruppen als alphanumerisch oder 16 bis 64 als Binärziffern. Die letzteren werden als Vorzeichen behaftet, Fest-, oder 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.
D. Byte-Adressen
Die Byte-Speicherstellen im Hauptspeicher sind mit Null beginnend fortlaufend numeriert. Jede Nummer stellt die Adresse des betreffenden Bytes dar. Eine Gruppe aufeinanderfolgender Bytes ist Halbwort-, Wort-, Doppelwort- oder Vierfachwort-zugeordnet, falls die Adresse des linken Bytes in einer Gruppe ein Vielfaches von 2, 4, 8 oder 16 ist. Sobald ein Halbwort, Wort, Doppelwort oder Vierfachwort derart angeordnet ist, kann die Einheit von dieser Adresse abgerufen werden. Der Speicherplatz von Daten im Hauptspeicher wird durch einen Datendescriptor bestimmt, welcher indirekt während der Adressenentwicklung entsteht.
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
I. Verschiedene Register
Es gibt fünf andere Register, nämlich:
Befehlszählwerk mit dem Format 202 bis 203; Statusregister mit dem Format 207;
Stapelspeicherregister genannt T-Register; Grenzadressenregister mit dem Format 202 bis 203 und Hardware-Steuermaskenregister mit dem Format 208.
Das Befehlszählwerk (IC) ist ein 32 Bit-Register, welches die Adressen der auszuführenden Befehle enthält. Das Statusregister (STR) 207 ist ein 8 Bit-Register, welches die Tatsachen über die gegenwärtig ablaufende Prozedur aufnimmt, beispielsweise ob durch die jüngste Operation eine Bereichsunterschreitung erfolgt ist. Bei dem als T-Register bekannten Stapelspeicherregister handelt es sich um ein 32 Bit-Register, welches die Hinweisadressen zur Spitze eines der gegenwärtig aktiven Prozedur zugeordneten abzubauenden 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.
A. Prozess-Zustände
Ein Prozess kann sich zu einer gegebenen Zeit jeweils in einem von vier möglichen Zuständen befinden, nämlich laufend, vorbereitet, wartend oder ausgesetzt. Die Hardware nimmt diese vier möglichen Prozeßzustände zur Kenntnis und führt verschiedene Firmware-Prozeduren durch, um den Prozeß zuzuteilen, den Zustand zu ändern und die auf dem Prozeßzustand beruhenden Datenstrukturen beizubehalten. Der Prozeßsteuerblock enthält ein 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 Ablaufzustandmit 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" ■
B. Prozeß-Zuteilung
Ein Prozeß geht während des Ablaufs aufgrund seiner Aktionen freiwillig von einem auf einen anderen Zustand über oder unfreiwillig aufgrund von Aktionen anderer Prozesse. Die als Zuteiler bekannte Zentraleinheit-Firmware steuert den übergang des Prozesses zwischen seinen Zuständen. Der Zuteiler benutzt eine Gruppe von Warteschlangen, um die Prozesse, die sich im 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.
C. Prozeß-Synchronisierung
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.
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.
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
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.
H. Zuteiler-Firmware zur Steuerung von Prozessen
Der Zuteiler ist eine Firmware/Hardware-Einheit, deren Hauptzweck darin liegt, die verschiedenen Prozeßwarteschlangen zu verwalten und zwischen den Prozessen umzuschalten und umfaßt ferner die Fortschreibung der Prozeß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
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
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.
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)
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)
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.
Statusregister Ein 8-Bit Register, welches den Zustand der gerade ablaufenden Prozedur kennzeichnet.
Auswärtsspeichern
(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.
Mitglied Eine Rolle, die ein Datensatz in Beziehung mit einem Gruppenauftritt
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.
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:
"erstes 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:
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.
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
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
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
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
RPW RSU
RTO SBW SEG
EP
PD
STN STR STW STWA
WR
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
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
60985370755

Claims (5)

  1. — 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 und
    d. 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. 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. 3. System nach Anspruch 2, gekennzeichnet durch einen Vergleicher als 5. Einrichtung.
  4. 4. System nach Anspruch 2, gekennzeichnet durch eine 6. von der
  5. 5. Einrichtung abhängigen Einrichtung zur Anzeige des Endes der Gruppe.
    609853/07 55
    Le
    erse
    it
DE19762626703 1975-06-19 1976-06-15 Intern programmierbares datenverarbeitungssystem Withdrawn DE2626703A1 (de)

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)

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

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

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