DE3854616T2 - Nichthierarchischer Programmberechtigungsmechanismus. - Google Patents

Nichthierarchischer Programmberechtigungsmechanismus.

Info

Publication number
DE3854616T2
DE3854616T2 DE3854616T DE3854616T DE3854616T2 DE 3854616 T2 DE3854616 T2 DE 3854616T2 DE 3854616 T DE3854616 T DE 3854616T DE 3854616 T DE3854616 T DE 3854616T DE 3854616 T2 DE3854616 T2 DE 3854616T2
Authority
DE
Germany
Prior art keywords
program
entry
access
value
address space
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.)
Expired - Fee Related
Application number
DE3854616T
Other languages
English (en)
Other versions
DE3854616D1 (de
Inventor
Richard Irwin Baum
Terry Lee Borden
Justin Ralph Butwell
Carl Edward Clark
Alan George Ganek
James Lum
Michael Gerard Mall
David Richard Page
Kenneth Ernst Plambeck
Casper Anthony Scalzi
Richard John Schmalz
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3854616D1 publication Critical patent/DE3854616D1/de
Application granted granted Critical
Publication of DE3854616T2 publication Critical patent/DE3854616T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

    Technische Grundlagen der Erfindung
  • Die vorliegende Erfindung betrifft einen Berechtigungsmechanismus für ein multivirtuelles System (MVS), das die Berechtigung für ein in einem Datenverarbeitungssystem ausgeführtes Programm bereitstellt, so daß das Programm auf mehrere virtuelle Adreßräume gleichzeitig zugreifen kann, und betrifft insbesondere einen solchen Berechtigungsmechanismus, bei dem die Berechtigung nichthierarchisch ist, das heißt, das aufgerufene Programm muß keine gleiche oder höhere Berechtigung als das aufrufende Programm haben.
  • Datenverarbeitungssysteme, die eine virtuelle Adressierung in mehreren virtuellen Adreßräumen verwenden, wie die IBM System/370 Systeme, die eine MVS-gesteuerte Programmierung verwenden, sind wohlbekannt. Die Aspekte der Organisation und der Hardware/Architektur des IBM System/370 werden in "IBM System/370 Betriebsgrundlagen", Formularnummer SA22-7085-1 beschrieben. Das beschriebene MVS-System umfaßt eine Zentraleinheit (CPU), die die Folgesteuerungs- und Verarbeitungseinrichtungen zur Instruktionsausführung, für Unterbrechungsmaßnahmen, Zeitsteuerungsfunktionen, anfängliches Programmladen und andere mit Maschinen zusammenhängende Funktionen enthalten. Außerdem ist ein Hauptspeicher darin enthalten, der direkt adressierbar ist und eine Hochgeschwindigkeitsverarbeitung von Daten durch die CPU bereitstellt. Der Hauptspeicher kann entweder physisch in die CPU integriert sein oder aus eigenständigen Einheiten bestehen.
  • In einem Register in der Maschine befindet sich ein Programmstatus-Wort (PSW), das die Instruktionsadresse und andere Informationen, die zur Steuerung der Instruktionsfolgesteuerung und zur Bestimmung des Status der CPU verwendet werden, beinhaltet. Instruktionen können Informationen in einem oder mehreren von 16 allgemeinen Registern bezeichnen, die als Basisadressenregister und Indexregister bei der Adressenberechnung und als Akkumulatoren bei der allgemeinen Berechnung und bei logischen Operationen verwendet werden können. Die allgemeinen Register werden durch die Ziffern 0 bis 15 gekennzeichnet und werden durch ein Vier- Bit-Registerfeld in einer Instruktion bezeichnet. Einige Instruktionen stellen die Adressierung mehrerer Allgemeinregister bereit, indem sie mehrere Registerfelder aufweisen.
  • Die CPU stellt 16 Steuerregister bereit, von denen jedes 32 Bitpositionen aufweist. Die Bitpositionen in den Steuerregistern werden bestimmten Einrichtungen im System, zum Beispiel der Programmereignisaufzeichnung, zugewiesen und werden entweder zur Konditionierung oder Einschränkung von Operationen oder zur Lieferung von bestimmten, von der Einrichtung benötigten Informationen benötigt.
  • Die US-Patentschrift Nummer RE27 251 von G. M. Amdahl mit dem Titel "Speicherschutzsystem", die dem Anmelder der vorliegenden Erfindung zugewiesen ist, beschreibt einen in vier Bits codierten Speicherschutzschlüssel, der mit physischen Blöcken des Speichers verbunden ist. Der Schutzschlüssel wird mit einem PSW- Schlüssel verglichen, der zur Steuerung des Zugriffs auf Daten mit einem Programm verbunden ist.
  • Die US-Patentschrift Nummer 4 096 573 von A. R. Heller et al. mit dem Titel "DLAT Synonym Control Means for Common Portions of All Address Spaces" und die US-Patentschrift Nummer 4 136 385 von P. M. Gannon et al. mit dem Titel "Synonym Control Means for Multiple Virtual Storage Systems", die beide dem Anmelder der vorliegenden Erfindung zugewiesen sind, stellen MVS-Systeme vor, in denen der Hauptspeicher als Adreßräume zur Verwendung durch mehrere Benutzer zugeordnet werden kann, wobei jeder Adreßraum einen Teil enthält, der als allen Benutzern gemeinsam definiert wird. Infolgedessen kann ein Benutzer Programme oder Daten von anderen Benutzern isolieren, indem er sie in einen "privaten" Teil des den Benutzern zugeordneten Adreßraums stellt, oder er kann sie für alle anderen Benutzer zugreifbar machen, indem er die Programme oder Daten in den "gemeinsamen" stellt. In einem solchen System können die Daten zwischen zwei Adreßräumen übertragen werden, indem sich ein Programm im ersten Adreßraum befindet, das die Daten aus seinem privaten Bereich in den gemeinsamen überträgt und anschließend einem Programm im anderen Adreßraum signalisiert, daß es mit den Daten arbeiten oder sie weiter übertragen kann. Die Verwendung des gemeinsamen Bereichs als Kommunikationsbereich zwischen Adreßräumen erhöht die Größe des gemeinsamen Bereichs und verringert folglich die Größe des für alle Benutzer verfügbaren privaten Bereichs. Das Signalisieren von einem Programm zu einem anderen kann nur durch Subsysteme oder durch das Steuerprogramm ausgeführt werden. Die Daten werden durch Speicherschutzschlüssel geschützt. Es gibt jedoch nur 16 solche Schlüssel, was nicht ausreichend ist, um zu garantieren, daß die Informationen vor einer unbeabsichtigten Speicherung durch ein anderes Subsystem oder ein berechtigtes Programm geschützt sind, da die Informationen allgemein adressierbar sind.
  • Die US-Patentschrift Nummer 4 355 355 von Butwell et al. mit dem Titel "Address Generating Mechanism for Multiple Virtual Spaces", die dem Anmelder der vorliegenden Erfindung zugewiesen ist, beschreibt Zugriffsregister (AR), die mit den Allgemeinregistern (GPR) in einem Datenprozessor verbunden sind. Die ARs können jeweils mit einer Adreßraumkennung, beispielsweise einer eindeutigen Segmenttabellenbezeichnung (STD) geladen werden. Es können jeweils 16 ARs mit den 16 GPRs in einem Prozessor verbunden sein. Die Adreßraumkennung in einem AR wird für die Adressenumsetzung ausgewählt, wenn das zugeordnete GPR als ein Speicheroperanden-Basisregister ausgewählt wird, wenn es zum Beispiel das durch das Feld B in einer IBM System/370 Instruktion ausgewählte GPR ist. Der Inhalt der Adreßraumkennung eines ARs wird jedoch nicht für eine Adressenumsetzung ausgewählt, falls das zugeordnete GPR für einen anderen Zweck als ein Speicheroperanden-Basisregister ausgewählt wird, falls ein GPR beispielsweise als ein Index-(X-)Register oder als ein Datenquellen- oder Datensenken-Register (R) für eine Instruktion ausgewählt wird. Die beschriebene Erfindung enthält außerdem die Berechtigung für den Zugriff von jedem Programm auf jeden Adreßraum, indem jedem AR außerdem ein AR-Steuervektor-(ARCV-)Register zugeordnet wird, um die Art des Zugriffs, der auf den zugeordneten Adreßraum durch ein ausführendes Programm gestattet wird, zu steuern. Ein bestimmtes Feld in einem AR oder in seinem zugeordneten ARCV kann anzeigen, ob der AR-Inhalt aktiviert wird, und enthält dadurch eine verwendbare Adreßraumkennung; oder wird so inaktiviert, daß die Adreßraumkennung anderswo erhalten werden muß. Dieses bestimmte Feld bei jedem AR gestattet, daß das GPR von einem beliebigen inaktivierten AR einen Basiswert, der dem von einem anderen AR definierten Adreßraum zugeordnet ist, angeben kann; d. h. das GPR eines inaktivierten ARs kann eine Basisadresse für Daten in dem durch AR0 definierten Programmadreßraum angeben.
  • Die US-Patentschrift Nummer 4 430 705 von Cannavino et al. mit dem Titel "Authorization Mechanism for Establishing Addressability to Information in Another Address Space", die dem Anmelder der vorliegenden Erfindung zugewiesen ist, beschreibt eine Verbesserung des früheren MVS-Systeirts. Es wird ein Doppeladreßraum- (DAS-) System beschrieben (siehe auch US-Patentschrift Nr. 4 366 537 und 4 500 952), in dem Problemprogramme die Fähigkeit haben, die Adressierbarkeit zu einem anderen Adreßraum zu erhalten, falls sie durch eine dem anderen Adreßraum zugeordnete Berechtigungstabelle gestattet wird. Wie es bei den früheren MVS-Systemen der Fall war, verwendet das beschriebene DAS-System Steuerregister, Allgemeinregister und ein PSW. Ein Bit im PSW wird zugewiesen, um die DAS-Betriebsart anzuzeigen.
  • Das DAS macht zwei Adreßräume, einen primären Adreßraum und einen sekundären Adreßraum, zur Verwendung durch ein halbbevorrechtigtes Programm verfügbar. Es werden drei Instruktionen für Übertragungsinformationen hinzugefügt. Die Instruktion ZUM PRI- MÄREN ÜBERTRAGEN (MVCP) überträgt Daten aus dem sekundären Adreßraum zum primären Adreßraum, die Instruktion ZUM SEKUNDÄREN ÜBERTRAGEN (MVCS) überträgt Daten aus dem primären Adreßraum zum sekundären Adreßraum, und die Instruktion MIT SCHLÜSSEL ÜBERTRA- GEN (MVCK) überträgt Daten zwischen unterschiedlich geschützten Bereichen in demselben Adreßraum. Die CPU kann sich im primären Modus, in dem Instruktionen und die als logisch definierten Operandenadressen den primären Adreßraum betreffen, oder im sekundären Modus befinden, in dem die als logisch definierten Operandenadressen den sekundären Adreßraum betreffen. Im sekundären Modus ist es jedoch nicht vorhersehbar, ob Instruktionen aus dem primären Adreßraum oder aus dem sekundären Adreßraum abgerufen werden. Folglich werden Programme, die im sekundären Modus ausgeführt werden, in einen allgemeinen Teil des Adreßraums gestellt, der vom primären Adreßraum und vom sekundären Adreßraum gemeinsam genutzt wird.
  • Der DAS gestattet, daß Programme, die auf verschiedenen Berechtigungsebenen operieren, direkt ohne Aufrufen des Supervisors verbunden werden. Die Instruktionen PROGRAMMAUFRUF und PROGRAMM- ÜBERTRAGUNG stellen einen geschützten Mechanismus zur Übertragung der Steuerung zwischen Programmen, die auf verschiedenen Ebenen oder auf derselben Ebene operieren, bereit. Ein PROGRAMM- AUFRUF durch ein Programm in einem Adreßraum zu einem Programm in einem anderen Adreßraum wird als Programmaufruf mit einem Raumumschaltungs- (PC-ss-)Vorgang bezeichnet. Ein PROGRAMMAUFRUF zu einem Programm in demselben Adreßraum ohne Raumumschaltung wird als Programmaufruf zum aktuellen primären (PC-cp-)Vorgang bezeichnet. Sowohl der PC-cp- als auch der PC-ss-Vorgang stellen eine Änderung zu einer höheren Ebene der Berechtigung und des Zugriffsrechtes bereit. Durch eine Instruktion PROGRAMMÜBERTRAGUNG wird eine Rückführungsfunktion ausgeführt, die den aktuellen primären (PT-cp-)Vorgang betreffen kann oder mit einem Raumumschaltungsvorgang(PT-ss) verbunden sein kann.
  • Zur Ausführung einer Übertragung der Steuerung richtet das DAS verschiedene Tabellen ein. Eine Verbindungstabelle wird zur Verwendung durch den Programmaufrufvorgang eingerichtet, wobei jeder Verbindungstabelleneintrag eine Eintragstabellenadresse enthält. Bei der Eintragstabellenadresse wird eine Eintragstabelle eingerichtet, deren Einträge Eintragsinformationen für ein aufzurufendes Programm enthalten. Für jeden Programmaufrufvorgang erzeugt das DAS eine PC-Nummer, die aus einem Verbindungsindex (LX) und einem Eintragsindex (EX) zusammengesetzt wird. Der LX indiziert in die Verbindungstabelle, um eine Eintragstabellenadresse zu erhalten, und der EX indiziert bei dieser Adresse in die Eintragstabelle, um Eintragsinformationen für das aufgerufene Programm zu erhalten. Die Eintragstabellen-Eintragsdaten beinhalten eine Adreßraumnummer (ASN), die zur Kennzeichnung des Adreßbereichs des jeweiligen Programms verwendet wird.
  • Das DAS richtet außerdem eine ASN-Ersttabelle und eine ASN- Zweittabelle ein, die zur Umsetzung des im Eintragstabellen-Eintrag gefundenen ASN-Wertes verwendet werden. Die dem Adreßraum zugeordnete ASN besteht aus einem ASN-Ersttabellenindex (AFX) und einem ASN-Zweittabellenindex (ASX). Der AFX indiziert in die ASN-Ersttabelle zu einem ASN-Ersttabelleneintrag, der eine ASN- Zweittabellenbezeichnung enthält. Falls der ASN-Ersttabelleneintrag gültig ist, indiziert der ASX-Wert in die ASN-Zweittabelle. Der so lokalisierte ASN-Zweittabelleneintrag (ASTE) beinhaltet einen Segmenttabellenursprung (STO), der von einer Einrichtung zur dynamischen Adressenumsetzung (DAT) verwendet wird, um die realen Adressen des Zieladreßraums zu bestimmen.
  • Die Bits einer PSW-Schlüsselmaske (PKM) im Steuerregister 3 werden im Problemstatus verwendet, um zu steuern, welche Schlüssel und Eingangspunkte für das Programm berechtigt werden. Die PKM wird durch PROGRAMMAUFRUF und PROGRAMMÜBERTRAGUNG geändert und wird durch eine Instruktion ADRESSRAUMPARAMETER LADEN geladen. Die PKM wird im Problemstatus verwendet, um die PSW-Schlüsselwerte zu steuern, die im PSW mittels einer halbbevorrechtigten Instruktion gesetzt werden können, um die PSW-Schlüsselwerte zu steuern, die für die MVCP-, MVCS- und MVCK-Instruktionen, die einen zweiten Zugriffsschlüssel angeben, gültig sind, und um die Eintragspunkte, die mit Hilfe des PROGRAMMAUFRUFS aufgerufen werden können, zu steuern.
  • In einem PROGRAMMAUFRUF wird die PSW-Schlüsselmaske mit einer Berechtigungsschlüsselmaske (AKM) im Eintragstabellen-Eintrag logisch UND-verknüpft. Falls das Ergebnis von Null verschieden ist, wird das Programm zur Ausgabe der PC-Instruktion berechtigt. Der Eintragstabellen-Eintrag enthält eine Eintragsschlüsselmaske (EKM), die zusätzliche Schlüssel enthalten kann, zu denen das aufgerufene Programm berechtigt wird. Die EKM wird mit der PKM im Steuerregister 3 logisch ODER-verknüpft, wenn die PC-Routine die Steuerung empfängt. Dies kann die durch die PKM bereitgestellte Berechtigung erhöhen.
  • In einer PROGRAMMÜBERTRAGUNG wird die PKM im Steuerregister 3 mit einer PSW-Schlüsselmaske, die als Operand angegeben wird, logisch UND-verknüpft, und das Ergebnis ersetzt die PHM im Steuerregister 3. Dies kann die durch die PKM bereitgestellte Berechtigung vermindern.
  • In den MVCP-, MVCS- und MVCK-Instruktionen wird der Zugriff den primären Adreßraum durch den PSW-Schlüssel beim PC-Vorgang berechtigt. Im Falle der MVCP- und MVCS-Instruktionen gibt ein Operand einen Zugriffsschlüssel, der zum Zugriff auf den sekundären Adreßraum verwendet werden muß. Im Problemstatus wird ein MVCP- oder MVCS-Vorgang nur ausgeführt, falls das PKM-Bit im Steuerregister 3, das dem Sekundärraum-Zugriffsschlüssel des Operanden entspricht, Eins ist. Im Falle der MVCK-Instruktion gibt ein Operand einen Zugriffsschlüssel an, der zum Zugriff auf den Quellendatenbereich verwendet werden muß. Im Problemstatus wird ein MVCK-Vorgang nur ausgeführt, falls das PKM-Bit im Steuerregister 3, das dem Quellendatenbereich-Zugriffsschlüssel des Operanden entspricht, Eins ist.
  • Die ASN-Berechtigung ist der Vorgang des Prüfens, ob es dem dem aktuellen Berechtigungsindex zugeordneten Programm gestattet ist, einen bestimmten Adreßraum unter Verwendung eines Berechtigungsindexes (AX) einzurichten. Die ASN-Berechtigung wird als ein Teil eines PT-ss-Vorgangs oder eines Vorgangs SEKUNDÄRE ASN SETZEN mit Raumumschaltung (SSAR-ss), der den sekundären Adreßraum auf irgendeinen gewünschten Adreßraum setzt, ausgeführt. Jedem Adreßraum wird eine Berechtigungstabelle (AT) zugeordnet, die für jeden verwendeten AX einen Eintrag enthält. Der AX-Eintrag in der AT gibt die Berechtigung von unter diesem AX ausgeführten Programmen zur Ausgabe von PT- und SSAR-Instruktionen zum Adreßraum an. Die ASN-Berechtigung wird sowohl für den Supervisorstatus als auch für Problemprogramme benötigt. Der bezüglich der AT zu prüfende AX befindet sich im Steuerregister 4, und der Berechtigungstabellenursprung (ATO) für den Adreßraum befindet sich im ASTE des Zieladreßraums. Jeder Eintrag der Berechtigungstabelle besteht aus zwei Bits, einem P-Bit und einem S-Bit. Dem Programm mit einem AX, der dem AX-Eintrag in der AT entspricht, wird es gestattet, den Adreßraum als seinen primären Adreßraum einzurichten, falls das entsprechende P-Bit Eins ist, und es wird ihm gestattet, den Adreßraum als seinen sekundären Adreßraum einzurichten, falls das entsprechende S-Bit Eins ist.
  • Die Verwendung der DAS-Einrichtung unterliegt mehreren Einschränkungen. Die MVCP- und MVCS-Instruktionen können nur Daten zwischen den primären und sekundären Adreßräumen übertragen. Die DAS-Einrichtung kann keine Daten zwischen zwei willkürlichen Adreßräumen übertragen, die keine primären oder sekundären Adreßräume sind. Alle in einem Adreßraum ausgeführten Programme verwenden den dem Adreßraum zugeordneten Berechtigungsindex. Die Verwendung des sekundären Modus durch ein Programm macht es erforderlich, daß sich das Programm im allgemeinen Bereich befindet. Ein häufiges Umschalten zwischen dem primären Modus und dem sekundären Modus, um sowohl auf Daten im primären Adreßraum als auch im sekundären Adreßraum zuzugreifen, vermindert die Leistung erheblich. Eine PC-Instruktion führt nur eine Verbindung vom hierarchischen Typ aus. Es ist nicht praktisch, die PC-Instruktion zu verwenden, um die Steuerung von einem Supervisorstatus-Programm zu einem Problemstatus-Programm zu übergeben, weil die PT-Instruktion nicht zur Rückführung verwendet werden kann. Die PC-Instruktion kann lediglich die PSW-Schlüsselmaske durch eine Erhöhung ihrer Berechtigung ändern. Die PC-Instruktion zur Raumumschaltung gibt dem aufgerufenen Programm stets den Zugriff auf den Adreßraum des aufrufenden Programms. Schließlich ändert die PC-Instruktion den PSW-Schlüssel nicht, folglich kann der abrufgeschützte Code nicht aufgerufen werden.
  • Die US-Patentschrift Nr. 4 037 214 von Birney et al. mit dem Titel "Key Register Controlled Accessing System", die dem Anmelder vorliegenden Erfindung zugewiesen ist, zeigt ein horizontales Adressiersystem, in dem drei Zugriffsschlüsselregister (AKRs) den Adreßraum eines Speicherzugriffs jeweils in Abhängigkeit von einer Instruktionsadresse, einer Senken-Operandenadresse und einer Quellen-Operandenadresse berechtigen.
  • Die US-Patentschrift Nr. 4 521 846, die demselben Anmelder wie die vorliegende Erfindung zugewiesen ist, mit dem Titel "Mechanism for Accessing Multiple Virtual Spaces", zeigt einen anderen Mechanismus zur Steuerung des Zugriffs auf mehrere virtuelle Adreßräume in einer Mehrspeicher-Realisierung, wobei auf Daten in einem nicht bevorrechtigten Status zugegriffen werden kann und wobei eine Allgemeinregister-Maske bereitgestellt wird, die den jeweiligen Allgemeinregistern, die zugewiesen werden, um einen Basiswert zur Berechnung von logischen Adressen innerhalb der Adreßräume zu enthalten, vorbezeichnete Adreßräume zuordnet.
  • Die US-Patentschrift Nr. 3 787 813 von Cole et al. mit dem Titel "Data Processing Devices Using Capability Registers", die dem Anmelder der vorliegenden Erfindung zugewiesen ist, zeigt das Konzept von Datenverarbeitungseinheiten, die Berechtigungsregister verwenden. Das Patent zeigt eine Datenverarbeitungseinheit mit einer Zentraleinheit und einer Speichereinheit, wobei die Informationen in der Speichereinheit in Segmenten angeordnet werden und die Zentraleinheit eine Vielzahl von Berechtigungsregistern aufweist, die jeweils zur Speicherung von Deskriptorinformationen, die die Basis- und Begrenzungsadressen eines Informationssegmentes anzeigen, angeordnet werden. Eines der Berechtigungsregister wird zur Zwischenspeicherung von Informationen angeordnet, die die Basis- und Begrenzungsadressen eines Informationssegmentes definieren, das eine Segmentzeigertabelle, die für das zum gegenwärtigen Zeitpunkt von der Zentraleinheit ausgeführte Programm bestimmt ist, enthält. Ein weiteres der Register wird zur Zwischenspeicherung von Informationen angeordnet, die die Basis- und Begrenzungsadressen eines Informationssegmentes definieren, das eine Hauptberechtigungstabelle mit einem Eintrag für jedes Informationssegment in der Speichereinheit, die aus die Basis- und Begrenzungsadressen definierenden Informationen zusammengesetzt ist, enthält. Die Segmentzeigertabelle enthält eine Liste von Datenwörtern, die als Zeiger verwendet werden, um verschiedene Einträge in der Hauptberechtigungstabelle zu definieren.
  • Die US-Patentschrift Nr. 4 366 536 von Kohn mit dem Titel "Modular Digital Computer System for Storing and Selecting Data Processing Procedures and Data", die dem Anmelder der vorliegenden Erfindung zugewiesen ist, zeigt ein digitales Computersystem zum Auswählen und Verbinden von mehreren, separat gespeicherten Datenverarbeitungsprozeduren, die aus Befehlen der Assemblerebene bestehen, und zum Auswählen eines veränderlichen Datenbereichs aus einer Vielzahl von veränderlichen Datenbereichen. Das System beinhaltet Speicher zum Speichern der Datenverarbeitungsprozeduren, der veränderlichen Datenbereiche und der Verbindungsadressen; einen Programmzähler zum Zugriff auf den die gespeicherten Datenverarbeitungsprozeduren enthaltenden Speicher; Register zum Zugriff auf die die Daten und Verbindungsadressen enthaltenden Speicher; und eine Hardware-Einheit, die zur Ausführung der Befehle der Assemblerebene, die gemäß der Befehle der Assemblerebene in der ausgeführten Datenverarbeitungsprozedur und den zuvor ausgewählten Adressen in den ausgewählten Datenverarbeitungsprozeduren enthalten sind, geeignet ist.
  • Die US-Patentschrift Nr. 4 268 903 von Miki et al. mit dem Titel "Stack Control System and Method for Data Processor", die dem Anmelder der vorliegenden Erfindung zugeordnet ist, beschreibt eine Stapelspeicher-Steuerregistergruppe zur Steuerung eines Stapelspeicherbereichs. Ein Datenstapelspeicher-Zeigerregister speichert die Startadresse des Datenstapelspeicherbereichs, der in der Stapelspeichereinrichtung gebildet wird und direkt vom Benutzerprogramm gesteuert wird.
  • Die US-Patentschrift Nr. 4 454 580 mit dem Titel "Programm Call Method and Call Instruction Execution Apparatus", die demselben Anmelder wie die vorliegende Erfindung zugewiesen ist, beinhaltet ein Verfahren der Übergabe der Ausführung von einem Programm in einem logischen Adreßraum zu einem anderen Programm in einem neuen logischen Adreßraum. Das aufrufende Programm steuert die selektive Zuordnung von Segmenten zum aufgerufenen Programm, das aufgerufene Programme steuert jedoch die Längen der zugeordneten Segmente. Auf diese Weise können rekursive Aufrufe zu demselben Programm die Funktion oder die Daten von anderen Programmen oder von demselben Programm in einem früheren Aufruf nicht beeinflussen. Die Zuordnung von Datensegmenten kann außerdem zurückgestellt werden, bis die Ausführung zu einer flexibleren Ausführung von Programmen, die ohne Kenntnis der Einzelheiten von anderen gleichzeitig ausführenden Programmen geschrieben werden, führt.
  • Die US-Patentschrift Nr. 4 297 743 mit dem Titel "Call and Stack Mechanismen for Procedures Executing in Different Rings" zeigt eine Architektur, die auf einer Hierarchie von Ringen beruht, wobei jeder Ring eine andere Ebene der Bevorrechtigung darstellt. Es werden Verzweigungen zu Ringen mit einer niedrigeren Bevorrechtigung gestattet, und es wird gestattet, daß Bevorrechtigungsebenen für den Nur-Lese-Status im Gegensatz zum Lese- und Schreib-Status verschieden sind. Das Patent zeigt eine Stapelspeicherrahmen mit drei Bereichen: einen Arbeitsbereich zur Speicherung von Variablen, einen Speicherbereich zur Speicherung des Inhalts des Registers und einen Kommunikationsbereich zur Übergabe von Parametern zwischen Prozeduren. Vor einem Prozeduraufruf muß der Benutzer die zu speichernden Register angeben, und der Benutzer muß die zur aufgerufenen Prozedur zu übergebenden Parameter in den Kommunikationsbereich laden. Das System stellt ein Protokoll von Aufrufen in einer Folge von Stapelspeicherrahmen bereit, so daß eine Rückführung ausgeführt werden kann.
  • Die US-Patentschrift Nr. 4 044 334 mit dem Titel "Database Instruction Unload" zeigt ein System zum Abrufen eines Datenbankzeigers zum Auffinden von Datenbankeinträgen in einem aus einer Vielzahl von Segmenten von adressierbarem Speicherbereich.
  • In die US-Patentschrift Nr. 4 731 734, die am 15. März 1988 von Gruner et al. herausgegeben wurde, wurde durch Bezugnahme die am 19. Juni 1984 von Baxter 111 et al. herausgegebene US-Patentschrift Nr. 4 455 602 aufgenommen. Diese Patente beschreiben ein Datenverarbeitungssystem mit einer Steuerung auf mehreren Ebenen und einem Stapelspeichermechanismus, der den systeminternen Mechanismus vor einer Beeinflussung durch Benutzer schützt.
  • Das Speichersystem ist in Objekten, die Datenelemente enthalten, organisiert. Jedes Objekt wird durch eine Objektkennung gekennzeichnet. Positionen von Datenelementen im Speichersystem werden mit Hilfe der Objektkennung für das Objekt, das das Datenelement und einen das Bit, bei dem das Datenelement im Objekt beginnt, angebenden Relativzeiger enthält, angegeben.
  • Der Zugriff auf die Datenelemente im Objekt wird gesteuert. Wenn das digitale Computersystem Daten in einem Objekt verarbeitet, erfolgt dies für ein Subjekt, das eine das Computersystem verwendende Instanz darstellt. Eine jedem Objekt zugeordnete Zugriffssteuerliste definiert Sätze von Subjekten und einen Satz von Speicheroperationen, die ein Subjekt in einem gegebenen Satz von Subjekten mit Datenelementen im Objekt ausführen kann. Eine Speicheroperation mit einem Datenelement in einem Objekt ist nur erfolgreich, falls es einen dem Objekt zugeordneten Zugriffssteuerlisten-Eintrag gibt, der dem Subjekt, für das der Prozessor die Speicheroperation ausführt, die Ausführung dieser Operation mit den Daten im Objekt gestattet.
  • Die Datenelemente beinhalten Instruktionen, die vom Prozessor ausgeführt werden können. In den Instruktionen werden Operanden durch Namen dargestellt. Jeder Name in einer Prozedur entspricht einem Namentabelleneintrag. Die einem Namen entsprechenden Daten im Namentabelleneintrag geben an, wie der Prozessor die logische Adresse des durch den Namen dargestellten Operanden ableiten muß.
  • Das Speichersystem antwortet erstens auf eine Speicheroperations-Spezifikation, die aus einem Speicherbefehl, zum Beispiel "Daten lesen" oder "Daten schreiben", einer logischen Adresse, die eine Darstellung einer Objektkennung enthält, einem Relativzeiger und einer Länge in Bit besteht, und zweitens auf einen Wert, der das Subjekt, für das der Prozessor gegenwärtig eine Prozedur ausführt, darstellt. Als Antwort auf jede Speicheroperations-Spezifikation führt das Speichersystem eine Prüfung durch, um zu bestimmen, ob das aktuelle Subjekt die im Speicherbefehl angegebene Operation mit Daten, die in dem durch die logische Adresse angegebenen Objekt enthalten sind, ausführen kann.
  • IBM Technical Disclosure Bulletin, Januar 1982, Band 24, Nr. 8, Seiten 4401 bis 4403, mit dem Titel "Method of Revoking a Capability Containing a Pointer-type Identifier without Accessing the Capability" handelt von einer Adreßraumnummer (ASN) als einer zeigerähnlichen Kennung für die Adreßraumberechtigung. Diese Veröffentlichung betrifft die duale Adreßraumeinrichtung und die Tatsache, daß nicht in den Adreßraum eingetreten werden muß, um zu bestimmen, ob der Zugriff gültig ist, da diese Information unter Verwendung des ASN-Zweittabelleneintrags (ASTE), der mit der Adressenumsetzung verbunden ist, bestimmt werden kann. Im allgemeinen wird der Zugriff auf ein Objekt mittels der Berechtigung nur gestattet, wenn die eindeutigen Codes in der Berechtigung und im Objekt gleich sind. Die Berechtigung kann einfach widerrufen werden, indem der eindeutige Code im Objekt ohne die Notwendigkeit des Lokalisierens und Zugreifens auf die Berechtigung geändert wird.
  • Zusammenfassung der Erfindung
  • Die Mehradreßraum-(MAS-)Einrichtung der vorliegenden Erfindung stellt 16 32-Bit-Zugriffsregister, die von 0 bis 15 numeriert sind, bereit. Im Zugriffsregistermodus, der vorliegt, wenn die DAT eingeschaltet ist und die PSW-Bits 16 und 1- den Binärwert 01 aufweisen, bezeichnet ein Instruktionsfeld B oder R, das zur Angabe der logischen Adresse eines Speicheroperanden verwendet wird, nicht nur ein Allgemeinregister, sondern auch ein Zugriffsregister. Das bezeichnete Allgemeinregister wird auf die übliche Weise zur Bildung der logischen Adressen des Speicheroperanden verwendet. Das bezeichnete Zugriffsregister wird verwendet, um den Adreßraum, auf den sich die logische Adresse bezieht, durch die Angabe einer Segmenttabellenbezeichnung, die von der DAT zur Umsetzung der logischen Adresse für den Adreßraum verwendet wird, anzugeben.
  • Ein Zugriffsregister kann die jeweils in den Steuerregistern 1 oder 7 gespeicherten primären oder sekundären Segmenttabellenbezeichnungen angeben, oder es kann eine in einem ASTE enthaltene Segmenttabellenbezeichnung (STD) angeben. Im letzteren Fall bezeichnet das Zugriffsregister mittels eines Zugriffslisteneintrag-Tokens (ALET) einen Eintrag in einer als Zugriffsliste bezeichneten Tabelle, und der bezeichnete Zugriffslisteneintrag bezeichnet seinerseits den ASTE.
  • Die Zugriffsliste kann entweder eine Zugriffsliste einer zuteilbaren Einheit (DUAL) oder eine Primärraum-Zugriffsliste (PSAL) sein. Obwohl eine Zugriffsliste entweder einer zuteilbaren Einheit oder einem primären Adreßraum zugeordnet wird, ist es vorgesehen, daß die gültigen Einträge in der Liste den verschiedenen Programmen zugeordnet werden, die in einer bestimmten Reihenfolge ausgeführt werden, um die Verarbeitungsvorgänge der zuteilbaren Einheit auszuführen. Es ist vorgesehen, daß jedes Programm eine bestimmte Berechtigung haben kann, die die Verwendung von nur denjenigen Zugriffslisteneinträgen gestattet, die dem Programm zugeordnet werden. Die Berechtigung wird durch einen erweiterten 16-Bit-Berechtigungsindex (EAX) im Steuerregister 8 dargestellt. Andere, im betreffenden Berechtigungsmechanismus verwendete Elemente sind ein privates Bit im Zugriffslisteneintrag, ein Zugriffslisteneintrags-Berechtigungsindex (ALE- AX) im Zugriffslisteneintrag und die S-Bits der von der zuvor erwähnten DAS-Einrichtung bereitgestellten Berechtigungstabelle.
  • Das private Bit und das ALEAX-Feld im Zugriffslisteneintrag stellen einen Hochleistungs-Berechtigungsmechanismus bereit, um den Zugriff eines Programms auf einen durch den ALE dargestellten Adreßraum zu erteilen oder zu verhindern. Das private Bit kann 0 sein, wodurch allen mit der Zugriffsliste ausführenden Programmen der Zugriff auf den durch den ALE dargestellten Adreßraum gestattet wird. Das private Bit des ALE kann 1 sein, und der EAX des Benutzers im Steuerregister 8 kann gleich dem ALEAX-Feld sein. Dies gestattet Programmen mit einem bestimmten EAX den Zugriff auf den durch den ALE dargestellten Adreßraum. Schließlich kann das private Bit des ALE Eins sein, und der EAX im Steuerregister 8 des Benutzers kann einen Eintrag in der Berechtigungstabelle des Zielraums wählen, bei dem das S-Bit gleich Eins ist. Dies gestattet, daß mehrere Programme, die mit verschiedenen EAX-Werten ausgeführt werden, auf den durch den ALE dargestellten Adreßraum zugreifen.
  • Eine Verbindungsstapelspeicher-Einrichtung gestattet, daß Programme, die auf willkürlich verschiedenen Berechtigungsebenen operieren, ohne den Eingriff des Steuerprogramms direkt verbunden werden können. Der Berechtigungsgrad von jedem Programm in einer Folge von aufrufenden und aufgerufenen Programmen kann willkürlich verschieden sein, wodurch eine nichthierarchische Organisation von einzurichtenden Programmen gestattet wird. Optionen einschließlich der EAX-Änderungsoption, der PSW-Schlüsseloption und derjenigen, die die PSW-Schlüsselmaske und den sekundären Adreßraum betreffen, stellen Mittel zur Zuordnung verschiedener Berechtigungen zu verschiedenen Programmen oder zu demselben aufgerufenen Programm bereit. Die Berechtigung von jedem Programm wird in den Eintragstabellen vorgeschrieben, und diese werden vom Steuerprogramm verwaltet. Indem die Eintragstabellen so eingestellt werden, daß dasselbe Programm mit Hilfe verschiedener PC-Nummern aufgerufen werden kann, können dem Programm in Abhängigkeit von der zum Aufruf verwendeten PC-Nummer verschiedene Berechtigungen zugewiesen werden.
  • Das Stapeln von PROGRAMMAUFRUF- und PROGRAMMRÜCKFÜHRUNGS-Verbindungsvorgängen, das von einer Verbindungs-Stapelspeichereinrichtung bereitgestellt wird, kann Programme, die sich in verschiedenen Adreßräumen befinden und verschiedene Berechtigungsebenen aufweisen, verbinden. Der Ausführungsstatus und die Inhalte der Allgemeinregister und der Zugriffsregister werden während der Ausführung einer Stapelinstruktion für PROGRAMMAUFRUF gespeichert und werden während der Ausführung einer Instruktion PRO- GRAMMRÜCKFÜHRUNG partiell rückgespeichert. Ein Verbindungsstapelspeicher stellt ein effizientes Mittel zur Speicherung und Rückspeicherung von sowohl dem Ausführungsstatus als auch dem Inhalt der Register während der Verbindungsvorgänge bereit.
  • Es ist ein Hauptziel der vorliegenden Erfindung, eine Architektur zur Berechtigung von Programmen zum Abrufen von Instruktionen aus einem Adreßraum und zum Abrufen oder Speichern von Operanden in einem oder mehreren anderen willkürlichen Adreßräumen bereit zustellen.
  • Es ist ein anderes Ziel der vorliegenden Erfindung, einen Berechtigungsmechanismus bereitzustellen, wobei die Berechtigung je nach Wunsch entweder hierarchisch oder nichthierarchisch sein kann.
  • Es ist ein anderes Ziel der vorliegenden Erfindung, einen nichthierarchischen Berechtigungsmechanismus bereitzustellen, bei dem die Fähigkeit zum Zugriff auf Adreßräume allen Programmen in der Programmaufruffolge erteilt wird oder auf Programme mit nur einer bestimmten Berechtigungsebene begrenzt wird oder für verschiedene Berechtigungsebenen gestattet wird.
  • Es ist ein anderes Ziel der vorliegenden Erfindung, einen Prüfvorgang bereitzustellen, bei dem die Berechtigungsebene des Adreßraums überprüft werden kann, um zu bestimmen, ob ein ALET auf den primären Adreßraum des Aufrufers, die DUAL oder die PSAL, Bezug nimmt, und um zu bestimmen, ob solche Bezugnahmen für einen gegebenen EAX berechtigt werden.
  • Diese und andere Ziele und Vorteile der Erfindung gehen aus der folgenden Beschreibung in Verbindung mit den beigefügten Zeichnungen hervor, die eine Ausführungsform der vorliegenden Erfindung zeigen.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 ist eine Diagrammdarstellung der Verwendung eines Zugriffsregisters in Adressieroperanden;
  • Fig. 2 ist eine Diagrammdarstellung einer Zugriffsregisterumsetzung des Inhalts eines Zugriffsregisters aus Fig. 1;
  • Fig. 3 stellt die Organisation und die Inhalte der Steuerregister zur Verwendung mit der MAS-Einrichtung der vorliegenden Erfindung dar;
  • Fig. 4 stellt den Inhalt des PSWs zur Verwendung mit der MAS- Einrichtung dar;
  • Fig. 5 stellt das Format eines Zugriffslisteneintrag-Tokens zur Verwendung mit der MAS-Einrichtung dar;
  • Fig. 6 stellt das Format eines Zugrifflisteneintrags zur Verwendung mit der MAS-Einrichtung dar;
  • Fig. 7 stellt das Format eines Verbindungstabelleneintrags dar;
  • Fig. 8 stellt das Format eines Eintragtabellen-Eintrags zur Verwendung mit der MAS-Einrichtung dar;
  • Fig. 9 ist eine Diagrammdarstellung eines Verbindungs-Stapelspeichers zur Verwendung mit der MAS-Einrichtung;
  • Fig. 10 stellt das Format eines Eintrags des Verbindungs-Stapelspeichers aus Fig. 9 dar;
  • Fig. 11 stellt das Format eines ASN-Ersttabelleneintrags dar;
  • Fig. 12 stellt das Format eines ASN-Zweittabelleneintrags zur Verwendung mit der MAS-Einrichtung dar;
  • Fig. 13 stellt das Format eines Eintrags einer Berechtigungstabelle zur Verwendung mit der MAS-Einrichtung dar;
  • Fig. 14 stellt das Format einer Steuertabelle einer zuteilbaren Einheit zur Verwendung mit der MAS-Einrichtung dar;
  • Fig. 15 ist eine Diagrammdarstellung des logischen Flusses einer PC-Nummer-Umsetzung eines PROGRAMMAUFRUF-Vorgangs;
  • Fig. 16 ist eine Diagrammdarstellung des logischen Flusses eines Stapelspeichervorgangs einer Stapelspeicherinstruktion PROGRAMMAUFRUF;
  • Fig. 17 ist eine Diagrammdarstellung des logischen Flusses einer ASN-Umsetzung eines PROGRAMMAUFRUF-Vorgangs;
  • Fig. 18 ist eine Diagrammdarstellung des logischen Flusses einer Zugriffsregisterumsetzung aus Fig. 2;
  • Die Fig. 19A und 19B bilden, wenn sie zusammengesetzt werden, ein Flußdiagramm eines Zugriffsregister-Umsetzungsvorgangs und von Ausnahmebedingungen; und
  • Fig. 20 ist eine Darstellung der Verwendung der Instruktion ZUGRIFFSREGISTER PRÜFEN zur Verwendung mit der MAS- Einrichtung.
  • Beschreibung der bevorzugten Ausführungsform
  • Die Mehradreßraum-(MAS-)Einrichtung der vorliegenden Erfindung ist eine Verbesserung der Doppeladreßraum-Einrichtung und des Zugriffsregistersystems. Die MAS-Einrichtung ist so gestaltet, daß sie kompatibel mit und zusätzlich zu der DAS-Einrichtung ausgeführt werden kann und, mit bestimmten Änderungen und Verbesserungen, zum größten Teil dieselben Tabellen und Registeranordnungen wie die DAS-Einrichtung verwendet. Das Zugriffsregisterumsetzungs- (ART-) System ist eine Verbesserung, die die vollständige Nutzung des Zugriffsregistersystems durch den Benutzer gestattet, während eine Isolierung und ein Schutz der Maschinenadressierfunktionen gegenüber dem Benutzer bereitgestellt werden. Die Verwendung eines ART-Umsetzpuffers (ALB) verbessert die Leistung der ART.
  • Ein Servicegeber besitzt im typischen Fall einen oder mehrere Adreßräume, die Daten oder Programme oder beides enthalten, die der Servicegeber für Benutzer verfügbar machen möchte. Der Servicegeber macht Programme für Benutzer verfügbar, indem er ihnen Programmaufruf-(PC-)Nummern zuweist. Dieser Zuweisungsvorgang umfaßt die Einrichtung von Verbindungen zur Übertragung der Programmsteuerung, zur Angabe der von den Serviceaufrufern benötigten Berechtigungsmerkmale und der Zuweisung der Berechtigungsmerkmale der Programme des Servicegebers. Die Übertragung der Programmsteuerung kann von einem Adreßraum zu einem anderen erfolgen oder kann in demselben Adreßraum bleiben. In jedem Fall kann sie die Berechtigung von einer Ebene zu einer anderen ändern, um eine höhere, eine geringere oder eine andere Berechtigung bereitzustellen. Der Servicegeber kann mit einer Berechtigungsebene ablaufen, die von der Ebene des Aufrufers verschieden ist, was den Routinen des Servicegebers den Zugriff auf Daten in Adreßräumen, auf die der Aufrufer nicht zugreifen kann, gestattet. Der Benutzer und der Servicegeber können auf alle Räume auf der Zugriffsliste, die nicht als private Adreßräume bezeichnet wurden, zugreifen. Außerdem kann der Servicegeber Zugriff auf ausgewählte Adreßräume haben, auf die der Benutzer nicht zugreifen kann, und dem Servicegeber kann der Zugriff auf ausgewählte Adreßräume, auf die der Benutzer zugreifen kann, verweigert werden.
  • Die Ausführung einer Programminstruktion kann geeigneterweise in zwei Vorgänge unterteilt werden. Der erste Vorgang ist das Abrufen der auszuführenden Instruktion. Der zweite Vorgang ist die Adressierung von Operanden für den Abruf und die Speicherung von Daten, mit denen die Instruktion während ihrer Ausführung arbeitet. Im MAS- oder im AR-Modus wird die Instruktion von jenem Adreßraum, der als ihr primärer Adreßraum eingerichtet wurde, abgerufen. Die Einrichtung des primären Adreßraums kann einen Raumumschaltungs-Vorgang erforderlich machen.
  • Fig. 1 zeigt die Verwendung eines Zugriffsregisters gemäß der vorliegenden Erfindung in Adressieroperanden. Der Prozeß der Verwendung des Inhalts eines Zugriffsregisters zum Erhalten einer STD zur Verwendung in einer dynamischen Adressenumsetzung wird als Zugriffsregisterumsetzung- (ART-) Vorgang bezeichnet, der allgemein bei 10 bezeichnet wird. Eine Instruktion 12 beinhaltet einen Operationscode, ein Feld B, das ein eine Basisadresse enthaltendes Allgemeinregister 14 bezeichnet, und eine Abweichung D, die, wenn sie durch einen Addierer 15 mit der Basisadresse des Allgemeinregisters 14 verbunden wird, eine logische Adresse eines Speicheroperanden bildet. In dem zu erläuternden Zugriffsregistermodus bezeichnet das Feld B außerdem ein Zugriffsregister 16, das ein ALET enthält, das, wenn es bei der ART 10 umgesetzt wird, die STD für den Adreßraum, in dem die Daten gespeichert sind, bereitstellt. Die STD von der ART 10 kann mit der logischen Adresse vom Addierer 15 verbunden werden, und stellt, wenn sie beim Vorgang der dynamischen Adressenumsetzung (DAT), der allgemein bei 18 bezeichnet wird, zusammen umgesetzt werden, die reale Adresse des Operanden zur Verwendung durch das System bereit. Anstelle des in Fig. 1 gezeigten Feldes B und der Abweichung D kann ein Feld R zur Bezeichnung eines Allgemeinregisters, das eine logische Adresse eines Speicheroperanden enthält, verwendet werden.
  • Die Verwendung eines Zugriffsregisters der vorliegenden Erfindung kann desweiteren durch die folgende Übertragungs-(MVC-) Instruktion veranschaulicht werden:
  • MVC 0(L,1), 0(2)
  • Der zweite Operand dieser Instruktion mit der Länge L muß zur Position des ersten Operanden übertragen werden. Die logische Adresse des zweiten Operanden befindet sich im Allgemeinregister 2, und die logische Adresse der Position des ersten Operanden befindet sich im Allgemeinregister 1. Der Adreßraum, der den zweiten Operanden enthält, wird durch das ALET im Zugriffsregister 2 angegeben, und der Adreßraum des ersten Operanden wird durch das ALET im Zugriffsregister 1 angegeben. Diese beiden Adreßräume können verschiedene Adreßräume sein, und jeder kann vom Adreßraum der aktuellen Instruktion verschieden sein.
  • Fig. 2 liefert eine Übersicht, die die Umsetzung eines ALETs zu einer realen Adresse zeigt. Bei 20 wird eine Gruppe von Allgemeinregistern gezeigt, die von 0 bis 15 numeriert sind. Eine Gruppe 22 von Zugriffsregistern, die ebenfalls von 0 bis 15 numeriert sind, wird so angeordnet, daß jedes Zugriffsregister mit einem entsprechenden Allgemeinregister der Gruppe 20 paarweise angeordnet ist, wie es zuvor in Verbindung mit Fig. 1 beschrieben wurde. Eine Zugriffslisten-Eintragsnummer (ALEN) im ALET wählt einen Eintrag in einer der Zugriffslisten 24 oder 25. Die Zugriffsliste 24 ist die DUAL, und die Zugriffsliste 25 ist die PSAL. Im Beispiel von Fig. 2 zeigt die ALEN des Zugriffsregisters 2 auf den Eintrag 3 der PSAL 25. Der Ursprung der DUAL wird durch eine Zugriffslistenbezeichnung der zuteilbaren Einheit (DULAD) 26 angegeben, die, wie erläutert werden wird, durch eine Decodierung eines Eintrags im Steuerregister 2 ermittelt wird. Der Ursprung der PSAL wird durch eine Zugriffslistenbezeichnung des primären Raums (PSALD) 27 angegeben, die, wie erläutert wird, durch die Decodierung eines Eintrags im Steuerregister 5 ermittelt wird. Die bei der ART verwendete Zugriffslistenbezeichnung ist als die effektive Zugriffslistenbezeichnung (ALD) bekannt.
  • Jeder Eintrag der Zugriffsliste beinhaltet eine ASTE-Adresse, die auf einen ASN-Zweittabelleneintrag (ASTE) 98 zeigt, der sich in einer ASN-Zweittabelle (AST) 30 befinden kann oder nicht. Jeder ASTE ist ähnlich wie der in der DAS-Einrichtung verwendete und umfaßt einen STD-Wert zur Bestimmung der realen Adresse durch die DAT 18, wie in Verbindung mit Fig. 1 erläutert wird.
  • Einem Programm stehen zwei Zugriffslisten gleichzeitig zur Verfügung. Ein Bit im ALET bestimmt, ob die ALEN des ALETs auf einen Eintrag in der DUAL 24 oder in der PSAL 25 zeigt. Jeder Eintrag in den Zugriffslisten 24 und 25 stehen zur Verwendung durch die Programme zur Verfügung. Es ist vorgesehen, daß die DUAL 24 ständig dem "Task" oder dem "Prozeß" der zuteilbaren Einheit für das oder die Programme, die zur Durchführung der Verarbeitungsvorgänge der zuteilbaren Einheit ausgeführt werden, zugeordnet wird. Für jede zuteilbare Einheit im System gibt es gibt es eine eindeutige DUAL 24. Die DUAL 24 für eine zuteilbare Einheit ändert sich nicht, obwohl die Verarbeitungsvorgänge der zuteilbaren Einheit durch die Ausführung von Programmen in vielen verschiedenen Adreßräumen durchgeführt werden können. Die PSAL 25 wird einem primären Adreßraum zugeordnet. Alle in einem primären Adreßraum ausgeführten Programme nutzen die PSAL 25 des Adreßraums gemeinsam. Dies gestattet, daß Programme, die innerhalb eines primären Raums ausgeführt werden, den Zugriff auf einen allgemeinen Satz von Adreßräumen gemeinsam nutzen. Die PSAL 25 ändert sich, wenn sich der primäre Adreßraum ändert, zum Beispiel bei einem Raumumschaltungs-PC-Vorgang. Falls ein Benutzer ein gültiges ALET hat, kann er entweder auf einen Zugriffslisteneintrag auf der DUAL 24 oder auf der PSAL 25 zugreifen, und dieser Eintrag gibt den gewünschten Adreßraum an.
  • Der Modus der CPU wird, wie erläutert werden wird, durch Bits im PSW bezeichnet. Wenn die Instruktionen sich im Zugriffsregistermodus befinden, bezieht sich ein ALET von 0(X'0000000') auf den primären Adreßraum, und ein ALET von 1(X'0000001') bezieht sich auf den sekundären Adreßraum. Befindet sich die CPU im Lokalmodus, ist der Lokaladreßraum die Quelle der auszuführenden Instruktionen und der Daten. Der Lokaladreßraum ist als der Adreßraum mit den Supervisor-Steuerinformationen für das ausgeführte Programm definiert. Üblicherweise weist das Betriebssystem jedem Lokalraum ein ALET von 2(X'00000002') zum Zwecke des Datenzugriffs zu, und die STD für den Lokalraum wird über eine ART für einen solchen Zugriff erhalten. Wie bei 28 gezeigt wird, wird die STD aus dem Steuerregister 1 erhalten, falls das ALET gleich 0 ist, und falls das ALET gleich 1 ist, wird die STD aus dem Steuerregister 7 erhalten. Da die STD-Werte für die primären und die sekundären Adreßräume auf diese Weise jeweils in den Steuerregistern 1 und 7 gehalten werden (siehe Fig. 3), werden die Zugriffslisteneinträge 0 und 1 nicht verwendet. Bei der Realisierung werden die Einträge 0, 1 und 2 in der PSAL 25 nicht verwendet.
  • Ein ART-Umsetzpuffer (ALB) 199 empfängt und speichert Eingänge vom AR 22, von der AL 25 und von der AST 30 zur Speicherung der aus der ART resultierenden STD. Wenn erneut auf dasselbe ALET zugegriffen wird, liefert der ALB 199 den korrekten Ausgang direkt zur DAT 18, so daß die ART nicht wiederholt werden muß.
  • Die Fig. 3 und 4 zeigen jeweils die Steuerregister und das PSW zur Bereitstellung von Informationen für die Steuerung eines Programms und des Status der CPU während einer Instruktionsausführung.
  • Fig. 3 zeigt die Inhalte der Steuerregister 0 bis 15 für die MAS-Einrichtung der vorliegenden Erfindung. Es werden nicht alle Inhalte der Steuerregister von Fig. 3 erläutert, da die Mehrzahl von ihnen die identischen Funktionen der Steuerregister der zuvor erwähnten DAS-Einrichtung aufweisen und folglich bekannt sind. Folglich werden nur jene Änderungen, die zur Bereitstellung der MAS-Einrichtung notwendig sind, erläutert. Eine Eins im Bit 15 des Steuerregisters Null zeigt an, daß die MAS-Einrichtung aktiv ist. Die MAS-Einrichtung umfaßt neue Formate für den Eintragstabellen-Eintrag, den ASN-Zweittabelleneintrag, die Verfügbarkeit eines Verbindungsstapelspeichers und die Fähigkeit zum Eintritt in den Zugriffsregistermodus. Die Bits 1 bis 25 des Steuerregisters 2 bezeichnen den Ursprung der Steuertabelle der zuteilbaren Einheit (DUCTO), der, wie erläutert werden wird, von der MAS-Einrichtung zum Lokalisieren der DUALD verwendet wird. Die Bits 1 bis 25 des Steuerregisters 5 bezeichnen den Ursprung des primären ASTE (PASTEO). Wie erläutert werden wird, zeigt der Eintrag im Steuerregister 5 auf den ASTE-Eintrag zum Ermitteln des PSAL-Ursprungs und anderer Informationen im ASTE für den primären Adreßraum.
  • Die Bits 0 bis 15 des Steuerregisters 8 enthalten einen erweiterten Berechtigungsindex (EAX) zur Verwendung durch die MAS- Einrichtung der vorliegenden Erfindung. Wie erläutert werden wird, kann der EAX geändert werden, wie es durch die Biteinträge im Eintragstabellen-Eintrag unter der Steuerung des Servicegebers angegeben wird, so daß die Berechtigung zum Zugreifen auf Adreßräume durch ein Programm geändert werden kann.
  • Das Steuerregister 13 enthält eine Lokalsegmenttabellen-Bezeichnung (HSTD), worin die Bits 1 bis 19 den Ursprung der Lokalsegmenttabelle (HSTO) enthalten, und die Bits 25 bis 31 enthalten die Länge der Lokalsegmenttabelle (HSTL). Die Bits 1 bis 28 des Steuerregisters 15 enthalten die Adresse eines Verbindungsstapelspeicher-Eintrags, wie er im letzten Verbindungsstapelspeicher-Vorgang definiert wird, was erläutert werden muß.
  • Fig. 4 zeigt das Format des Programmstatus-Wortes (PSW) . Das Bit 5 des PSW ist ein DAT-Modusbit (T), das definiert, ob die DAT 18 der Fig. 1 und 2 aktiv ist. Ist die DAT aktiv, definieren die Kombinationen der Bits 16 und 17, ob sich die CPU im primären Modus (00), im sekundären Modus (10), im Zugriffsregistermodus (01) oder im Lokalmodus (11) befindet. Das Bit 32 des PSW ist ein Adressiermodusbit, das das Format der Instruktionsadresse in den Bits 33 bis 63 des PSW definiert. Die Funktion und das Format der restlichen Felder im PSW sind wohlbekannt und für Operationen des IBM System/370 definiert.
  • Die Fig. 5 und 6 zeigen das Format des ALETs und des Zugriffslisteneintrags zur Definition des Zusammenhangs zwischen einem Zugriffsregister und einem Adreßraum.
  • Fig. 5 zeigt das Format des in Verbindung mit Fig. 2 erläuterten ALETs. In dem ALET ist das Bit 7 ein Primärlistenbit, das, wenn es Eins ist, anzeigt, daß sich die ALEN auf eine PSAL bezieht. Wenn das Primärlistenbit 7 0 ist, bezieht sich die ALEN auf die DUAL. Die Bits 16 bis 31 enthalten die ALEN, auf die in Fig. 2 Bezug genommen wird. Wenn die ALEN mit 16 multipliziert wird, ist das Produkt gleich der Anzahl von Bytes vom Beginn der effektiven Zugriffsliste bis zum bezeichneten Zugriffslisteneintrag. Während der ART wird eine Ausnahme erkannt, falls die ALEN einen Eintrag bezeichnet, der sich außerhalb der effektiven Zugriffsliste befindet, oder falls die 7 am weitesten links gelegenen Bits des ALETs nicht alle Nullen sind. Der Zugriffslisteneintrag befindet sich außerhalb der effektiven Zugriffsliste, falls die ALEN auf eine Adresse hinter dem Ende der Zugriffsliste, wie es durch die Zugriffslistenlänge (ALL) der effektiven ALD bestimmt wird, zeigt. Die ALL ist in Fig. 14 zu sehen. Das beschriebene Format des ALETs stimmt nicht, wenn das ALET den hexadezimalen Wert 00000000 oder 00000001 hat, wie es in Fig. 2 bei 28 gezeigt wird.
  • Ein ALET kann in einem Zugriffsregister, in einem Allgemeinregister oder im Speicher vorhanden sein, und es ist nicht vor Manipulationen durch das Problemprogramm eines Benutzers geschützt. Durch die Verwendung von Instruktionen kann jedes Programm den Wert von einem ALET zwischen den Zugriffsregistern, den Allgemeinregistern und dem Speicher hin und her übertragen. Ein aufgerufenes Programm kann den Inhalt der Zugriffsregister in jedem ihm zur Verfügung stehenden Speicherbereich speichern, laden und die Zugriffsregister für seine eigenen Zwecke verwenden und anschließend den ursprünglichen Inhalt der Zugriffsregister vor der Rückführung zu seinem Aufrufer erneut speichern. Die Bits 8 bis 15 des ALETs enthalten eine Folgennummer des Zugriffslisteneintrags (ALESN). Da das ALET nicht vor dem Problemprogramm geschützt wird und ein Benutzer seinen Inhalt unbeabsichtigt zu einem beliebigen Wert ändern kann, ist die ALESN als ein Zuverlässigkeitsmechanismus, der während einer ART überprüft wird, im ALET enthalten.
  • Fig. 6 stellt das Format eines Zugriffslisteneintrags (ALE) dar. Das Bit 0 des ALEs ist ein ungültiges Bit, das anzeigt, wann der ALE ungültig ist. Das Bit 7 ist ein privates Bit, das, wenn es 0 ist, angibt, daß irgendein Programm zur Verwendung dieses Zugriffslisteneintrags bei einem ART-Vorgang berechtigt ist. Wenn das Bit 7 1 ist, wird ein Wert in den Bits 16 bis 31 des ALE für einen erweiterten Berechtigungsindex der Zugriffsliste (ALEAX) verwendet, um zu bestimmen, ob ein Programm zur Verwendung dieses Zugriffslisteneintrags berechtigt ist. Der ALE beinhaltet einen ALESN-Wert in den Bits 8 bis 15, der, wie in Verbindung mit Fig. 5 erläutert wird, zur Durchführung einer Gültigkeitsprüfung mit dem ALESN-Wert des bezeichnenden ALETs verglichen wird. Die Bits 65 bis 89 des ALEs enthalten die entsprechende ASTE-Adresse des zugeordneten Adreßraums. Eine ASTE-Folgennummer (ASTESN) befindet sich in den Bits 96 bis 126 des ALEs zur Verwendung als eine Gültigkeitsprüfung in Verbindung mit dem ASTE, was erläutert wird.
  • Es ist vorgesehen, daß Einträge auf den Zugriffslisten 24 und 25 vom Steuerprogramm bereitgestellt werden, so daß sie vor einer direkten Manipulation durch ein Problemprogramm geschützt werden kann. Dieser Schutz kann mittels eines schlüsselgesteuerten Schutzes oder durch das Stellen der Zugriffslisten in einen realen Speicher, der nicht durch ein Problemprogramm mittels der DAT zugreifbar ist, erhalten werden. Wie es durch das Bit 0 im Eintrag bestimmt wird, ist ein ALE entweder gültig oder ungültig. Ein gültiger ALE gibt einen Adreßraum an, der von einem Programm, das zum Zugriff auf diesen Adreßraum entsprechend berechtigt ist, verwendet werden kann. Ein ungültiger ALE ist zur Zuordnung oder zur erneuten Zuordnung als ein gültiger Eintrag verfügbar. Das Steuerprogramm stellt Dienste bereit, die gültige ALEs zuordnen und die zuvor zugeordnete ALEs ungültig machen.
  • Die Zuordnung eines ALEs besteht aus den folgenden Schritten. Ein Problemprogramm übergibt die Kennung eines Adreßraums an das Steuerprogramm und übergibt eine Meldung, die aus dem P-Bit der primären Liste (Bit 7), das entweder die DUAL 24 oder die PSAL 25 angibt, besteht. Das Steuerprogramm überprüft anschließend die Berechtigung des Problemprogramms zum Zugriff auf den Adreßraum, wie erläutert werden wird. Falls das Programm berechtigt ist, wählt das Steuerprogramm einen ungültigen Eintrag in der angegebenen Zugriffsliste, ändert ihn zu einem gültigen Eintrag, schließt die ASTE-Adresse und die ASTESN mit ein, wodurch der vorliegende Adreßraum angegeben wird, und gibt den Wert eines ALETs, das den nun zugeordneten ALE bezeichnet, zurück zum Problemprogramm. Anschließend kann das Problemprogramm das neue ALET in ein Zugriffsregister stellen, um auf den Adreßraum zuzugreifen. Später kann der ALE, der zugeordnet wurde, durch die Verwendung des Ungültigkeitsdienstes des Steuerprogramms ungültig gemacht werden.
  • Auf diese Weise kann ein bestimmter ALE zugeordnet, anschließend ungültig gemacht und anschließend erneut zugeordnet werden, wobei er diesmal einen anderen Adreßraum angibt, als bei der ursprünglichen Zuordnung angegeben wurde. Zum Schutz vor einer falschen Verwendung eines ALETs, das einen konzeptionell falschen Adreßraum angibt, wird die ALESN sowohl im ALET als auch im ALE gespeichert. Wenn das Steuerprogramm einen ALE zuordnet, stellt es dieselbe ALESN sowohl in den ALE als auch in das bezeichnete ALET, das es zum Steuerprogramm zurückleitet. Wenn das Steuerprogramm einen ALE erneut zuordnet, ändert es den Wert der ALESN im erneut zugeordneten ALE so, daß der Wert der ALESN von zuvor bezeichneten ALETs nicht mehr mit der ALESN im neuen ALE übereinstimmt.
  • Obwohl der ASTESN-Teil des ALEs in Verbindung mit dem ASTE und den damit verbundenen Figuren weiter erläutert wird, ist es wichtig, hier darauf hinzuweisen, daß der Vergleich des ASTESN- Wertes im ALE mit dem Wert im ASTE der Mechanismus ist, durch den die ALE-Berechtigung zur Bezeichnung des ASTE bestätigt wird. Folglich kann ein ASTE erneut zugewiesen und eine andere ASTESN zur Steuerung seiner Verwendung zugewiesen werden, ohne daß alle ALE-Einträge, die sich auf den ASTE bezogen, zurückverfolgt werden müssen. Durch die Verwendung der ASTESN muß das Steuerprogramm nicht jedes Programm oder jede zuteilbare Einheit, das bzw. die den ASTE verwenden konnte, zurückhalten. Auf diese Weise kann die Berechtigung durch eine Änderung der ASTESN und der Ausnahmebedingungen und Unterbrechungen, die bei einem Versuch, den ASTE ohne die korrekte ASTESN zu verwenden, erzeugt werden, geändert werden.
  • Die Fig. 7, 8 und 10 stellen die Formate von Einträgen jeweils in der Verbindungstabelle, der Eintragstabelle und dem Verbindungsstapelspeicher dar. Diese Tabellen werden von der MAS-Einrichtung verwendet, um eine Verbindung zur Übertragung der Steuerung zwischen Programmen in entweder demselben oder in verschiedenen Adreßräumen einzurichten.
  • Wie zuvor beschrieben wurde, kennzeichnet eine PC-Nummer die bestimmte PC-Routine, die das System aufrufen muß, und wird von einem Servicegeber erstellt. Jeder Servicegeber, der PC-Routinen bereitstellt, weist eine oder mehrere Eintragstabellen zur Definition der Routinen des Servicegebers auf. Die Eintragstabellen sind mit Verbindungstabellen von denjenigen Adreßräumen, die den Zugriff auf die PC-Routinen benötigen, verbunden. Jeder Eintrag in einer Eintragstabelle definiert eine PC-Routine, einschließlich ihres Eingangspunktes, der Betriebsmerkmale, und ob die PC- Instruktion ein Stapel-PC ist. Fig. 7 stellt das Format eines Verbindungstabelleneintrags dar, wobei jeder Eintrag ein ungültiges Bit beim Bit 0, einen Eintragstabellenursprung (ETO) und eine Eintragstabellenlänge (ETL) beinhaltet, die zusammen eine Eintragstabellenbezeichnung definieren.
  • Fig. 8 stellt das Format des Eintrags der Eintragstabelle dar, auf den durch den Verbindungstabelleneintrag von Fig. 7 gezeigt wird. Die Bits 0 bis 15 des Eintragstabellen-Eintrags enthalten eine Berechtigungsschlüsselmaske (ARM), die verwendet wird, um zu bestätigen, ob das die PC-Instruktion ausgebende Programm zum Aufruf dieses Eingangspunktes berechtigt ist, wenn es sich im Problemstatus befindet. Die Bits 16 bis 31 enthalten eine Eintrags-Adreßraumnummer (EASN), die anzeigt, ob ein PC-ss- oder ein PC-cp-Vorgang stattfinden muß. Wenn die EASN aus Nullen besteht, wird ein PC-cp-Vorgang angegeben. Wenn die EASN nicht nur aus Nullen besteht, wird ein PC-ss-Vorgang angegeben, und die EASN kennzeichnet die Adreßraumnummer (ASN), die die primäre ASN (PASN) ersetzt. Das Bit 32 ist ein Adressiermodusbit, das das Adressiermodusbit im PSW als ein Teil des PC-Vorgangs ersetzt. Die Eintrags-Instruktionsadresse ist die Instruktionsadresse, die die Instruktionsadresse im PSW als ein Teil des PC-Vorgangs ersetzt. Das Bit 63 ist ein Eintrags-Problemstatusbit, das das Problemstatusbit, das Bit 15 des aktuellen PSWs, als ein Teil des PC-Vorgangs ersetzt. Die Bits 64 bis 95 sind ein Eintragsparameter, der als ein Teil des PC-Vorgangs in das Allgemeinregister 4 gestellt wird. Die Bits 96 bis 111 sind eine Eintragsschlüsselmaske (EKM), die, wie erläutert werden wird, in Abhängigkeit vom Wert des M-Bits mit dem Inhalt des Steuerregisters 3 logisch ODER-verknüpft werden oder diesen ersetzen kann. Das Bit 128 ist ein Bit (T) vom PC-Typ, das, wenn es 1 ist, angibt, daß die Programmaufruf-Instruktion die Durchführung eines Stapelvorgangs ist. Das Bit 131 ist eine PSW-Schlüsselsteuerungs-Bit (K), das, wenn es 1 ist, angibt, daß der Eintragsschlüssel (EK) der Bits 136 bis 139 den PSW-Schlüssel im PSW als ein Teil des Stapel-PC-Vorgangs ersetzen muß. Wenn das K-Bit 0 ist, bleibt der PSW-Schlüssel unverändert. Das Bit 132 ist eine PSW-Schlüsselmasken-Steuerung (M), die, wenn sie 1 ist, angibt, daß die EKM die PSW-Schlüsselmaske im Steuerregister 3 als ein Teil des Stapel-PC-Vorgangs ersetzen muß. Wenn dieses Bit 0 ist, wird die EKM als ein Teil des Stapel-PC-Vorgangs mit der PSW-Schlüsselmaske im Steuerregister 3 logisch ODER-verknüpft. Das Bit 133 ist eine Steuerung (E) des erweiterten Berechtigungsindex, die, wenn sie 1 ist, angibt, daß+der Eintrags-EAX der Bits 144 bis 159 den aktuellen EAX im Steuerregister 8 als ein Teil des Stapel-PC-Vorgangs ersetzen muß. Wenn das E-Bit 0 ist, bleibt der aktuelle EAX im Steuerregister 8 unverändert. Das Bit 134 ist eine Steuerung (C) der Adreßraumsteuerung, die, wenn sie 1 ist, angibt, daß das Bit 17 des aktuellen PSW als ein Teil des Stapel-PC-Vorgangs auf 1 gesetzt werden muß. Wenn dieses Bit 0 ist, wird das Bit 17 des aktuellen PSW auf 0 gesetzt. Weil die CPU sich entweder im Primärraummodus oder im Zugriffsregistermodus befinden muß, wenn ein Stapel-PC-Vorgang ausgegeben wird, führt dieses C-Bit dazu, daß die CPU in den Zugriffsregistermodus versetzt wird, falls das Bit 134 1 ist, oder in den Primärraummodus, falls das Bit 134 0 ist. Das Bit 135 ist eine Sekundär-ASN- Steuerung (S), die, wenn sie 1 ist, angibt, daß die EASN-Bits 16 bis 31 die neue sekundäre ASN werden müssen, und eine neue sekundäre Segmenttabellenbezeichnung (SSTD) muß als ein Teil des Stapel-PC-ss-Vorgangs gleich der neuen primären Segmenttabellenbezeichnung (PSTD) gesetzt werden. Wenn dieses Bit 0 ist, werden die neue sekundäre Adreßraumnummer (SASN) und die SSTD jeweils gleich der alten primären Adreßraumnummer (PASN) und der PSTD des aufrufenden Programms gesetzt. Wenn die EASN nicht nur aus Nullen besteht, bildet die ASTE-Adresse der Bits 161 bis 185 mit sechs auf der rechten Seite angehängten Nullen die reale ASTE- Adresse, die aus der Anwendung der ASN-Umsetzung der EASN resultiert. Auf diese Weise ist zu erkennen, daß die EASN- und ASTE- Adresseneinträge im Eintragstabellen-Eintrag auf einen Eintrag in der die STD enthaltenden AST 30 zeigen, wie in Verbindung mit Fig. 2 gezeigt wird. Es ist nicht vorhersehbar, ob eine ASN-Umsetzung der EASN ausgeführt wird, um eine ASTE-Adresse zu erhalten, oder ob die ASTE-Adresse der Bits 161 bis 185 verwendet wird, um ihren bezeichneten ASTE zu lokalisieren. Die CPU kann den letzteren Vorgang durchführen, um eine verbesserte Leistung zu erreichen.
  • Fig. 9 zeigt einen Verbindungsstapelspeicher 35, der vom Steuerprogramm für jede zuteilbare Einheit gebildet werden kann. Der Verbindungsstapelspeicher wird zur Speicherung des Ausführungsstatus und der Inhalte der Allgemeinregister und Zugriffsregister während eines Stapelvorgangs verwendet. Der Verbindungsstapelspeicher wird außerdem zur Rückspeicherung eines Teils des Ausführungsstatus und der Inhalte der Allgemeinregister und Zugriffsregister während eines Rückführungsvorgangs verwendet. Ein Verbindungsstapelspeicher befindet sich im virtuellen Speicher, wobei sich der Verbindungsstapelspeicher für eine zuteilbare Einheit im Lokaladreßraum für diese zuteilbare Einheit befindet. Wie in Verbindung mit den Steuerregistern von Fig. 3 erläutert wurde, wird der Lokaladreßraum durch die HSTD im Steuerregister 13 bezeichnet.
  • Es ist vorgesehen, daß der Verbindungsstapelspeicher vor Problemstatusprogrammen geschützt wird,. so daß diese Programme die im Verbindungsstapelspeicher gespeicherten Informationen außer mittels bestimmter Extrahierungs- und Änderungsinstruktionen nicht überprüfen oder verändern können. Der Verbindungsstapelspeicher 35 kann aus einer Anzahl von Verbindungsstapelspeicher- Abschnitten 36, 37 und 38 bestehen, die durch Vorwärtszeiger und Rückwärtszeiger verkettet werden.
  • Es gibt drei Arten von Einträgen im Verbindungsstapelspeicher: Vorsatzeinträge 40 mit einem Rückwärtszeiger, Nachsatzeinträge 42 mit einem Vorwärtszeiger und Statuseinträge 43 (siehe Verbindungsstapelspeicher-Abschnitt 36). Ein Vorsatzeintrag und ein Nachsatzeintrag befinden sich jeweils am Anfang und am Ende eines Verbindungsstapelspeicher-Abschnitts und werden zur Verkettung der Verbindungsstapelspeicher-Abschnitte verwendet. Vorsatzeinträge und Nachsatzeinträge werden durch das Steuerprogramm erzeugt, und ein Statuseintrag zum Enthalten des Ausführungsstatus und der Registerinhalte, die beim Stapelvorgang gespeichert werden, wird hinzugefügt. Die Adresse des Verbindungsstapelspeicher-Eintrags im Steuerregister 15 zeigt entweder auf den aktuellen Statuseintrag 44 oder, falls der letzte Statuseintrag im Abschnitt nicht gestapelt wurde, auf den Vorsatzeintrag für den aktuellen Abschnitt. Fig. 10 stellt den Inhalt eines Verbindungsstapelspeicher-Statuseintrags dar, der die Inhalte der Allgemeinregister, die Inhalte der Zugriffsregister, die PSW-Schlüsselmaske, die Nummer des sekundären Adreßraums, den EAX aus dem Steuerregister 8, die Nummer des primären Adreßraums und den Inhalt des PSW, alles am Anfang einer Stapelinstruktion, und die verwendete PC-Nummer bei einem PC-Stapelvorgang enthält. Im Falle einer Instruktion VERZWEIGEN UND STAPELN (die erläutert werden muß) würden das Adressiermodusbit und die Verzweigungsadresse anstelle der PC-Nummer gespeichert werden.
  • Jede Art von Verbindungsstapelspeicher-Eintrag weist eine Länge auf, die ein Vielfaches von acht Byte ist. Ein Vorsatzeintrag und ein Nachsatzeintrag haben jeweils eine Länge von 16 Byte. Ein Statuseintrag hat eine Länge von 168 Byte (wie durch die Ziffern in Fig. 10 gezeigt wird) . Jede Art von Eintrag weist an ihrem Ende eine Acht-Byte-Eintragsbeschreibung auf (bei 46 in Fig. 10 für einen Verbindungsstapelspeicher-Eintrag gezeigt)
  • Das Bit 0 des Eintragsdeskriptors ist ein Bit (U) zur Entstapelungsunterdrückung. Wenn das Bit U im Eintragsdeskriptor eines Vorsatzeintrags oder eines Statuseintrags Eins ist, wird während des Entstapelungsprozesses in PROGRAMMRÜCKFÜHRUNG eine Ausnahmebedingung für einen Stapelvorgang erkannt. Das Bit U wird im Eintragsdeskriptor eines Statuseintrags auf Null gesetzt, wenn der Eintrag während des Stapelprozesses erzeugt wird.
  • Die Bits 1 bis 7 des Eintragsdeskriptors sind ein Eintragstypen- (ET-) Code, der den Typ des Verbindungsspapelspeicher-Eintrags, der den Eintragsdeskriptor enthält, angibt. Die Codes sind:
  • 0000001 Vorsatzeintrag
  • 0000010 Nachsatzeintrag
  • 0000100 Verzweigungsstatuseintrag
  • 0000101 Programmaufruf-Statuseintrag.
  • Die Bits 8 bis 15 des Eintragsdeskriptors sind eine Abschnittskennung (SI), die vom Steuerprogramm bereitgestellt wird. In dem durch einen Stapelprozeß erzeugten Eintrag setzt der Prozeß die SI gleich der SI des vorhergehenden Verbindungsstapelspeicher- Eintrags. Die Bits 16 bis 31 des Deskriptors bilden das Feld "Verbleibender freier Raum (RFS)", das die Anzahl von Bytes zwischen dem Ende dieses Eintrags und dem Beginn des Nachsatzeintrags in demselben Verbindungsstapelspeicher-Abschnitt angibt. Die Bits 32 bis 47 des Eintragsdeskriptors bilden das Feld "Größe des nächsten Eintrags (NES)", das die Größe in Byte des nächsten Verbindungsstapelspeicher-Eintrags, nicht eines Nachsatzeintrags, in demselben Verbindungsstapelspeicher-Abschnitt angibt.
  • Wenn während des Stapelprozesses ein neuer Statuseintrag im Verbindungsstapelspeicher erstellt werden muß, wird der neue Eintrag sofort hinter den Eintragsdeskriptor des aktuellen Verbindungsstapelspeicher-Eintrags gestellt, vorausgesetzt, daß genügend freier Raum im aktuellen Verbindungsstapelspeicher-Abschnitt zum Enthalten des neuen Eintrags verbleibt. Falls im aktuellen Abschnitt nicht genügend freier Raum verbleibt und falls der Nachsatzeintrag im aktuellen Abschnitt anzeigt, daß ein anderer Abschnitt auf den aktuellen Abschnitt folgt, wird der neue Eintrag unmittelbar hinter den Eintragsdeskriptor des Vorsatzeintrags von diesem folgenden Abschnitt gestellt, vorausgesetzt, daß in diesem Abschnitt genügend freier Raum verbleibt. Falls der Nachsatzeintrag anzeigt, daß kein weiterer Abschnitt folgt, wird eine Ausnahmebedingung erkannt, und es findet eine Programmunterbrechung statt. Das Steuerprogramm ordnet anschließend einen anderen Abschnitt zu, verkettet ihn mit dem aktuellen Abschnitt und bewirkt die erneute Ausführung des Stapelvorgangs. Falls ein weiterer Abschnitt folgt, jedoch nicht genügend freier Raum in ihm vorhanden ist, wird eine Ausnahmebedingung erkannt.
  • Wenn der Stapelvorgang bei der Erstellung eines neuen Statuseintrags 44 erfolgreich ist, aktualisiert er die Adresse des Verbindungsstapelspeicher-Eintrags im Steuerregister 15, so daß die Adresse das am weitesten links gelegene Byte des Eintragsdeskriptors des neuen Eintrags, der auf diese Weise der neue aktuelle Verbindungsstapelspeicher-Eintrag wird, bezeichnet. Wenn während des Stapelprozesses ein Statuseintrag erzeugt wird, werden Nullen in das NES-Feld im erzeugten Eintrag gestellt, und die Länge des erzeugten Statuseintrags wird in das NES-Feld des vorhergehenden Eintrags gestellt. Während eines Rückführungsvorgangs werden die Inhalte der Allgemeinregister, der Zugriffsregister und verschiedene Inhalte der Steuerregister aus dem Verbindungsstapelspeicher-Statuseintrag 44 rückgespeichert, und die Verbindungsstapelspeicher-Eintragsadresse im Steuerregister 15 wird geändert, daß sie auf den vorherigen Verbindungsstapelspeicher-Eintrag zeigt. Wenn der Statuseintrag während des Entstapelungsprozesses eines Rückführungsvorgangs logisch gelöscht wird, werden Nullen in das NES-Feld im vorhergehenden Eintrag gestellt. Auf diese Weise wird klar, daß die Verwendung des Verbindungsstapelspeichers es gestattet, daß die Betriebsumgebung und die Berechtigungsebene des aufrufenden Programms wiederhergestellt werden, wenn die Programmsteuerung durch eine Rückführungs-Instruktion vom aufgerufenen Programm zurückgegeben wird.
  • Für jeden Adreßraum, der Programme enthält, wird vom Steuerprogramm eine ASN-Nummer zugewiesen. Die ASN kann während eines PC- ss-Vorgangs umgesetzt werden, wie es in Verbindung mit der DAS- Einrichtung beschrieben wurde. Da die ASTE-Adresse im ETE (siehe Fig. 8) gefunden werden kann, kann der Zugriff auf den ASTE in jenen Fällen jedoch direkt durch den ETE in einem PC-ss-Vorgang ohne die ASN-Umsetzung erfolgen. Das Steuerprogramm ordnet mit jeder ASN eine STD, eine AT und eine Verbindungstabelle zu, indem es Zeiger in den dem Adreßraum zugeordneten ASTE stellt. Auf die Daten in diesen Adreßräumen kann zugegriffen werden, indem das Steuerprogramm einen Zugriffslisteneintrag, der auf den ASTE zeigt, erstellt. Die MAS-Einrichtung hat die Möglichkeit zur Erzeugung von Adreßräumen, die nur Daten, keine Programme enthalten. Diese Adreßräume enthalten keine ASN. Im Falle von Räumen, die nur Daten enthalten, werden nur der ASTE, die STD, die AT und der ALE verwendet.
  • Die Fig. 11 und 12 zeigen jeweils das Format von Einträgen in der ASN-Ersttabelle und der ASN-Zweittabelle und sind jenen der zuvor erwähnten DAS-Einrichtung sehr ähnlich. Jeder Eintrag in den ASN-Tabellen der Fig. 11 und 12 stellt einen Adreßraum dar und wird vom Steuerprogramm zur Bereitstellung der Verbindung und zur Berechtigung der Adressierbarkeit für den zugeordneten Adreßraum eingerichtet.
  • Fig. 12 zeigt das Format von einem ASTE. Das Bit 0 des ASTE ist ein ungültiges Bit zum Anzeigen der Gültigkeit des ASTE. Der Berechtigungstabellenursprung (ATO) und die Berechtigungstabellenlänge (ATL) zeigen die Berechtigungstabellenbezeichnung (ATD) der zugeordneten Berechtigungstabelle an. Die Bits 96 bis 127 enthalten die zugeordnete Verbindungstabellenbezeichnung (LTD), und die Bits 128 bis 160 enthalten die zugeordnete Zugriffslistenbezeichnung. Die Bits 160 bis 191 enthalten eine ASTE-Folgennummer (ASTESN) für den Adreßraum. Da der ASTE erneut zugeordnet werden kann, wenn Adreßräume vom Steuerprogramm erzeugt und gelöscht werden, wird jedem neu erzeugten ASTE eine neue, eindeutige ASTESN zugewiesen. Wenn ein ART-Vorgang stattfindet, wird die ASTESN in der Zugriffsliste als eine Gültigkeitsprüfung mit der ASTESN im ASTE verglichen.
  • Fig. 13 zeigt eine Berechtigungstabelle, die jedem ASTE zugeordnet wird. Wie es bei der DAS-Einrichtung der Fall ist, weist jeder Berechtigungstabelleneintrag ein P-Bit und ein S-Bit auf. Die Einträge in der Berechtigungstabelle werden indiziert, so daß für jeden der Werte der verwendeten EAX ein Eintrag in der Berechtigungstabelle vorhanden ist, um auf den zugeordneten Adreßraum zuzugreifen. Wie erläutert werden wird, kann der Eintrag der Berechtigungstabelle, der dem Wert des EAX im Steuerregister 8 entspricht, verwendet werden, um zu bestimmen, ob ein Programm zum Zugriff auf den dem ASTE zugeordneten Adreßraum berechtigt ist.
  • Fig. 14 zeigt das Format der Steuertabelle der zuteilbaren Einheit (DUCT), deren Adresse sich, wie zuvor erläutert wurde, im Steuerregister 2 befindet. Die Bezeichnung der Zugriffsliste der zuteilbaren Einheit wird in den Bytes 16 bis 19 der DUCT gespeichert. Die anderen Bytes der DUCT werden in der MAS-Einrichtung nicht verwendet und werden nicht näher erläutert.
  • Eine Instruktion wurde verbessert und zwei Instruktionen wurden hinzugefügt, um die Verbindung in der MAS-Einrichtung bereit zustellen. Die eine Instruktion, die verbessert wurde, ist der PROGRAMMAUFRUF. Falls das T-Bit, das Bit 128 des ETE (siehe Fig.
  • 8) Eins ist, wird ein Stapel-PROGRAMMAUFRUF-Vorgang als Antwort auf eine Instruktion PROGRAMMAUFRUF ausgeführt. Es wird ein PRO- GRAMMAUFRUF (stapelnd oder nicht stapelnd) für Problemstatus- Aufrufer berechtigt, um durch die Berechtigungsschlüsselmaske im Eintragstabellen-Eintrag an einer Stelle in eine Eintragstabelle einzutreten. Ein Stapel-PC mit Raumumschaltung kann zusammen mit anderen Vorgängen einen neuen EAX, der dem neuen Programm zugeordnet wird, in die Steuerregister 8 stellen. Der Stapel-PC speichert die Inhalte der Allgemeinregister 0 bis 15, die Inhalte der Zugriffsregister 0 bis 15, das vollständige PSW mit einer aktualisierten Instruktionsadresse (der Rückführungsadresse), die primären und sekundären ASN, die PKM, den EAX, eine Meldung, daß der Eintrag vom PROGRAMMAUFRUF erzeugt wurde, die verwendete PC-Nummer und einen änderbaren Zwei-Wort-Bereich im Eintrag. Die MAS-Einrichtung beinhaltet Instruktionen zum Herausholen der Informationen aus dem letzten Statuseintrag im Verbindungsstapelspeicher und zum Verändern der Inhalte des änderbaren Bereiches in dem Eintrag. Der Zweck des änderbaren Bereichs ist es, einem Programm zu gestatten, seinen Ablauf zu "erfassen", so daß geeignete Wiederherstellungsmaßnahmen ergriffen werden können, falls ein Programmfehler auftritt.
  • Die beiden neuen Instruktionen, die zur Verbesserung der Verbindung zur MAS-Einrichtung hinzugefügt wurden, sind:
  • VERZWEIGEN UND STAPELN PROGRAMMRÜCKFÜHRUNG
  • Die Instruktion VERZWEIGEN UND STAPELN ändert die Instruktionsadresse im PSW und erstellt einen als Verzweigungsstatuseintrag bezeichneten Statuseintrag im Verbindungsstapelspeicher von Fig. 9. Der Verzweigungsstatuseintrag ist derselbe wie ein Programmaufrufeintrag aus Fig. 10, außer, daß er anzeigt, daß er durch VERZWEIGEN UND STAPELN erzeugt wurde, und anstelle der PC-Nummer die Verzweigungsadresse enthält. Die Instruktion VERZWEIGEN UND STAPELN kann entweder in einem aufrufenden Programm oder am Eingangspunkt (oder in dessen Nähe) eines aufgerufenen Programms verwendet werden. Die Instruktion VERZWEIGEN UND STAPELN an einem Eingangspunkt gestattet, daß der Verbindungsstapelspeicher ohne eine Änderung des alten aufrufenden Programms verwendet werden kann.
  • Die Instruktion PROGRAMMRÜCKFÜHRUNG wird verwendet, um aus einer programmgegebenen Steuerung mit Hilfe von entweder einer Instruktion Stapel-PROGRAMMAUFRUF oder VERZWEIGEN UND STAPELN zurückzukehren. PROGRAMMRÜCKFÜHRUNG löscht den letzten Verbindungsstapelspeicher-Statuseintrag, der entweder ein Programmaufruf-Statuseintrag oder ein Verzweigungsstatuseintrag sein kann. Falls der letzte Statuseintrag ein Programmaufruf-Statuseintrag ist, speichert PROGRAMMRÜCKFÜHRUNG alle Statusinformationen, die im Eintrag gespeichert wurden, und die Inhalte der Allgemeinregister 2 bis 14 und der Zugriffsregister 2 bis 14 erneut. Die Allgemein- und Zugriffsregister 0, 1 und 15 werden durch PRO- GRAMMRÜCKFÜHRUNG nicht verändert. Falls der letzte Statuseintrag ein Verzweigungsstatuseintrag ist, speichert PROGRAMMRÜCKFÜHRUNG nur das vollständige PSW und die Inhalte der Allgemeinregister 2 bis 14 und der Zugriffsregister 2 bis 14 erneut. PROGRAMMRÜCK- FÜHRUNG läßt das PER-Maskenbit im PSW (Bit R in Fig. 4) jedoch stets unverändert, um nicht einer PER- (Programmereignisaufzeichnungs-)Aktivierung oder Inaktivierung, die während der Ausführung des aufgerufenen Programms eventuell aufgetreten ist, entgegenzuarbeiten. Die Kombination eines Stapel-PROGRAMMAUFRUFS und einer PROGRAMMRÜCKFÜHRUNG ermöglicht eine nichthierarchische Programmverbindung, das heißt, eine Verbindung von einem Programm mit einer gewissen Berechtigung zu einem Programm mit einer geringeren, größeren oder vollkommen verschiedenen Berechtigung.
  • Die Fig. 15, 16 und 17 stellen den logischen Fluß der zur Ausführung eines Stapel-PC-Vorgangs notwendigen Schritte dar. Es sei darauf hingewiesen, daß der logische Fluß der Fig. 15, 16 und 17 außerdem verwendet werden kann, um eine DAS-Instruktion PROGRAMMAUFRUF auszuführen. Die Textinformationen in den Figuren beschreiben, wie verschiedene Werte zur Adressenbildung mathematisch beeinflußt werden können. Mit erneuter Bezugnahme auf Fig. 3 ist der ETE 16 Byte, falls das Bit 15 des Steuerregisters 0 (CR0.15) 0 ist, und es kann nur ein DAS-PC-Vorgang durchgeführt werden. Falls CR0.15 Eins ist, ist der ETE 32 Byte, und das ETE- Bit 128 steuert, ob ein DAS-PC- oder ein Stapel-PC durchgeführt wird.
  • Fig. 15 ist ein logisches Flußdiagramm des Vorgangs der PC-Nummerumsetzung eines PROGRAMMAUFRUFS. Falls CR0.15 = 1. wird der ASTE, auf den durch den PASTEO-Eintrag im Steuerregister 5 (siehe Fig. 32) gezeigt wird, abgerufen. Dieser primäre ASTE beinhaltet eine LTD bei den Bits 96 bis 127 (siehe Fig. 12) . Falls CR0.15 = 0, wird die LTD im Steuerregister 5 wie bei einem normalen DAS-Vorgang lokalisiert. Die Instruktion 50 PROGRAMMAUFRUF beinhaltet einen LX 51 und einen EX 52, dieselben wie die in Verbindung mit der DAS-Einrichtung erläuterten. Der LX 51 wird durch einen Addiervorgang 53 mit dem Verbindungstabellenursprung (LTO) 53 verbunden, um die reale Adresse eines Verbindungstabelleneintrags 55 zu erhalten. Der Eintragstabellenursprung (ETO) des Verbindungstabelleneintrags 55 wird durch einen Addiervorgang 56 mit dem EX 52 verbunden, um die reale Adresse eines Eintragstabellen-Eintrags (ETE) 57 in der Eintragstabelle zu erhalten.
  • Fig. 16 ist ein logischer Fluß der Schritte, die zusätzlich zu den in Fig. 15 gezeigten zur Ausführung eines Stapel-PROGRAMM- AUFRUFS zum aktuellen primären (PC-cp) und eines Stapel-PRO- GRAMMAUFRUFS mit Raumumschaltung (PC-ss) ausgeführt werden. Wie zuvor erläutert wurde, muß, falls das T-Bit 60 (das Bit 128 des ETE 57) gleich 1 ist, ein Stapelvorgang gesteuert werden. Zuerst wird der Wert der ARM 62 bei 63 mit der PKM im Steuerregister 3, wie sie vor der Ausführung der Instruktion PROGRAMMAUFRUF vorhanden war, logisch UND-verknüpft, wie bei 64 gezeigt wird. Der Vorgang der logischen UND-Verknüpfung der ARM findet nur statt, falls sich der PC-Ausgeber im Problemstatus befindet. Falls das Ergebnis des Vorgangs der logischen UND-Verknüpfung bei 63 nur Nullen ergibt, wird die Instruktion PROGRAMMAUFRUF nicht zum Eintritt an dieser Stelle berechtigt, und der PROGRAMMAUFRUF- Vorgang wird beendet. Falls irgendeines der Bits im Vorgang der logischen UND-Verknüpfung von 63 übereinstimmt, wird das Programm zur Durchführung des PROGRAMMAUFRUFS bei diesem Eintrag berechtigt, und der Vorgang geht weiter. Falls der PROGRAMMAUF- RUF berechtigt wird, werden das PSW bei 65, der EAX bei 66, die PKM 64, die SASN 68 und die PASN 69 so, wie sie alle vor dem PROGRAMMAUFRUF vorhanden waren, in den Verbindungsstapelspeicher gestellt. Außerdem werden die Inhalte der Allgemeinregister, die Inhalte der Zugriffsregister und die PC-Nummer (siehe Fig. 10) in den Verbindungsstapelspeicher gestellt, was jedoch nicht gezeigt wird. Das Adressiermodusbit A und die Eintragsinstruktionsadresse werden bei 70 und 71 in das PSW gestellt. Das P-Bit und das C-Bit des ETE 57 werden bei 72 und 73 in das PSW gestellt. Falls das K-Bit gleich 1 ist, wird der Eintragsschlüssel (EK) des ETE 57 bei 74 in den Schlüssel des PSW gestellt. Falls das E-Bit gleich 1 ist, wird der Eintrags-EAX (EEAX) bei 75 in das Steuerregister 8 gestellt. Der Eintragsparameter (EP) wird bei 76 in das Allgemeinregister 4 gestellt. Falls das M-Bit des ETE 57 gleich 1 ist, ersetzt die Eintragsschlüsselmaske (EKM) die PKM bei 77 im Steuerregister 3. Falls das M-Bit jedoch gleich 0 ist, wird die EKM durch den Vorgang der logischen ODER- Verknüpfung 78 mit der PKM des Steuerregisters 3 logisch ODER- verknüpft. Falls ein PC-cp-Vorgang ausgeführt wird oder ein Stapel-PC-ss gesteuert wird und das S-Bit gleich 0 ist, ersetzt die PASN bei 69 die SASN bei 79 im Steuerregister 3, und die PSTD bei 80 im Steuerregister I ersetzt die SSTD 81 im Steuerregister 7. Falls ein Stapel-PC-ss gesteuert wird und das S-Bit gleich l ist, wird die SASN im Steuerregister 3 durch die neue PASN ersetzt, und die SSTD im Steuerregister 7 wird durch die neue PSTD ersetzt. Nach diesen Vorgängen wird die ASN des ETE 56 bei 83 geprüft. Falls die ASN gleich 0 ist, wird ein PC-cp-Vorgang gesteuert und wird beendet. Falls die ASN jedoch nicht gleich 0 ist, wird ein PC-ss-Vorgang gesteuert, und der ASTE für den Zielraum wird erhalten.
  • Der PROGRAMMAUFRUF kann den PSW-Schlüssel 74 mit dem EK (K-Bit = 1) ändern, um den Zugriff zum Abrufen des geschützten Codes der nächsten Instruktion zu erteilen.
  • Durch die Änderung des EAX im Steuerregister 8 (siehe 75) kann jedes Programm, das zur Ausführung der Verarbeitungsgänge der zuteilbaren Einheit ausgeführt wird, auf verschiedene Weise zur Verwendung der ALEs in der DUAL und der PSAL berechtigt werden. Der EAX 75 im Steuerregister 8 kann durch einen Stapel-PROGRAMM- AUFRUF (E-Bit = 1) gleich dem EEAX gesetzt werden. Der ursprüngliche EAX wird anschließend durch eine PROGRAMMRÜCKFÜHRUNG aus dem Verbindungsstapelspeicher rückgespeichert. Folglich kann jedes Programm mit einem EAX, der in dem zum Aufruf des Programms verwendeten ETE angegeben wird, ausgeführt werden. Alternativ kann der EAX während einer aufrufenden Verbindung (E-Bit = 0) unverändert bleiben, wodurch dem aufgerufenen Programm dieselbe Berechtigung wie seinem Aufrufer gestattet wird.
  • Indem die PKM 77 im Steuerregister 3 durch einen PROGRMMMAUFRUF (M-Bit = 1) gleich der EKM gesetzt wird, hat das aufgerufene Programm eine PKM, die von der PKM des aufrufenden Programms unabhängig ist. Dies gestattet, daß das aufgerufene Programm in bezug auf die PSW-Schlüsselwerte, die es setzen kann, eine geringere Berechtigung als das aufrufende Programm hat. Alternativ kann die neue PKM 77, falls es gewünscht wird (siehe 78), gleich dem ODER der alten PKM 64 und der EKM (M-Bit = 0) gesetzt werden.
  • Das Gleichsetzen der neuen SASN und der neuen SSTD jeweils mit der neuen PASN und der neuen PSTD (S = 1) verhindert, daß das aufgerufene Programm durch die Verwendung des Hexadezimalwertes 00000001 des ALETs automatisch Zugriff auf den primären Adreßraum des Aufrufers hat (die Möglichkeit zum Zugriff ist immer noch mit Hilfe von entweder einem ALE oder der DAS-Instruktion SEKUNDÄRE ASN SETZEN erhältlich). Dies ist eine andere Möglichkeit, bei der die Berechtigung des aufgerufenen Programms geringer sein kann als die des Aufrufers. Alternativ kann die neue SASN bei 79 und die neue SSTD bei 81 jeweils gleich der alten PASN bei 69 und der alten PSTD bei 80 gesetzt werden (S-Bit = 0).
  • Fig. 17 ist ein logischer Fluß der Schritte einer ASN-Umsetzung. Wie bei der DAS-Einrichtung wird jedem Adreßraum, der Programme enthält, eine ASN zugewiesen, deren Wert bei 90 im entsprechenden ETE 57 gespeichert wird. Ebenfalls wie bei der DAS besteht die ASN bei 90 aus zwei Ziffern, einem AFX 91 und einer ASX 92. Das Steuerregister 14 beinhaltet einen ASN-Ersttabellenursprung (AFTO) 93, der, wenn er durch einen Addiervorgang bei 94 mit der AFX bei 91 verbunden wird, die reale Adresse eines AFTE 95 in der ASN-Ersttabelle ergibt. Der AFTE 95 umfaßt einen ASN-Zweittabellenursprung (ASTO) 96, der, wenn er durch den Addiervorgang bei 97 mit der ASX 92 verbunden wird, die reale Adresse des ASTE 98 in der ASN-Zweittabelle 30 ergibt, was auch in Verbindung mit Fig. 2 erläutert wird. Da sich die ASTE-Adresse 100 im ETE 57 befindet, wenn CR0.15 Eins ist, kann sie anstelle der beschriebenen ASN-Umsetzung verwendet werden. Das Bit 12 des Steuerregisters 14 (CR14.12) ist ein ASN-Umsetzungsbit T 101. Falls CR14.12 Null ist, kann weder die ASTE-Adresse 100 noch die ASN 90 verwendet werden. Falls CR14.12 Eins ist, kann entweder die eine oder die andere verwendet werden, und in der vorliegenden Realisierung ist es nicht vorhersehbar, welche verwendet wird. Der AX 102 des ASTE 98 und die ASN 90 des ETE 57 werden für PC- ss-Vorgänge jeweils bei 103 und 104 in das Steuerregister 4 gestellt. Die STD 105 des ASTE 98 wird bei 106 in das Steuerregister 1 gestellt. Falls CR.0.15 = 1, wird die ASTE-Adresse bei 107 als der PASTEO in das Steuerregister 5 gestellt. Falls CR0.15 = 0, wird die LTD bei 108 des ASTE 98 bei 107 in das Steuerregister 5 gestellt. Auf diese Weise ist zu erkennen, daß die ASN- Umsetzung aus Fig. 17 entweder DAS- oder MAS-Vorgänge bereitstellt.
  • Der in Verbindung mit den Fig. 15, 16 und 17 erläuterte PC-ss- Vorgang kann verwendet werden, um die Steuerung für Instruktionsabrufvorgänge zu einem neuen Adreßraum zu übertragen, wobei der neue Adreßraum als der primäre Adreßraum eingerichtet wird. Wenn die PC-Nummer, der Eintragstabellen-Eintrag und der Verbindungstabelleneintrag von einem Servicegeber eingerichtet werden, wird im typischen Fall eine ARM angegeben, um die Berechtigung von Programmen, die diese PC-Nummer aufrufen, zu setzen. Falls ein aufrufendes Programm die Berechtigung zum Eintritt in das durch den Eintragstabellen-Eintrag definierte Programm hat, wie es durch den Vorgang 63 der logischen UND-Verknüpfung von Fig. 16 bestimmt wird, kann der PC-Vorgang den im Steuerregister 8 gespeicherten EAX ändern.
  • Der PC-Vorgang kann zum Beispiel auch verwendet werden, um einen Systemdienst zur Hinzufügung eines neuen ALEs zu einer der Zugriffslisten 24 oder 25 aufzurufen, wie in Verbindung mit dem Zugriffslisteneintrag von Fig. 6 erläutert wurde. Das Serviceprogramm kann einen neuen Zugriffslisteneintrag einrichten und ein neues ALET zur Verwendung bei Zugriffsregistermodus-Vorgängen durch den aufrufenden Benutzer bereitstellen. Wenn ein Zugriffslisteneintrag erstellt wird, wird der EAX aus dem Steuerregister 8 des Aufrufers als der ALEAX in den ALE gestellt. Wenn der ALE erstellt ist, führt das Serviceprogramm das ALET für diesen ALE zurück zum Benutzerprogramm. Das ALET kann anschließend gespeichert werden oder auf eine übliche Weise zur Verwendung beim Abrufen oder Speichern von Operanden zu anderen Adreßräumen weitergeleitet werden. Die beschriebenen Berechtigungsvorgänge verhindern, daß ein nicht berechtigtes Programm ein ALET verwendet.
  • Einige Zugriffslisteneinträge können durch ihre Eigner zum Zeitpunkt der Erzeugung entweder als private Einträge zur Bereitstellung von Adreßraum nur für den Eigner oder einen berechtigten Benutzer oder als öffentliche Einträge, die allen Benutzern offenstehen, bezeichnet werden. Im Falle von öffentlichen Einträgen (P-Bit, Bit 7, ist Null) ist der ALE offen und frei zur Verwendung durch irgendein Programm. Falls das P-Bit des ALE auf Eins gesetzt wird, kann der ALE nur von berechtigten Programmen verwendet werden. Das Steuerprogramm stellt Einrichtungen zum Hinzufügen von Einträgen zur AT des zugeordneten Adreßraums bereit, falls mehr als einem EAX die Verwendung des ALEs gestattet werden muß.
  • Fig. 18 ist eine Diagrammdarstellung der Zugriffsregisterumsetzung mit Prüfungen der Programmberechtigung. Wird ein ALET bei einem Zugriffsregistervorgang zum Abrufen oder Speichern eines Operanden verwendet, werden die Bits 0 bis 6 des ALETs bei 115 überprüft, um sicherzustellen, daß das ALET gültig ist. Falls das P-Bit 116 im ALET 0 ist, ist die Zugriffsliste eine DUAL, und falls das P-Bit 116 Eins ist, ist die Zugriffsliste eine PSAL. Wenn die Zugriffsliste eine DUAL ist, wird die effektive ALD aus der DUCT geholt, deren Adresse in Steuerregister 2 gespeichert ist. Falls die Zugriffsliste eine PSAL ist, wird die effektive ALD aus dem primären ASTE (PASTE), dessen Adresse im Steuerregister 5 gespeichert wird, abgerufen. Die effektive ALD umfaßt einen Zugriffslistenursprung und eine Zugriffslistenlänge (ALL). Bei 117 wird die ALEN mit der ALL verglichen, um zu bestimmen, daß sich die ALEN nicht außerhalb der Grenzen der Zugriffsliste befindet. Falls die ALEN diese Gültigkeitsprüfung durchläuft, wird der effektive Zugriffslistenursprung durch einen Addiervorgang bei 119 mit der ALEN verbunden, um die Adresse des ALEs 120 in der Zugriffsliste 121 zu ermitteln. Das ungültige Bit, Bit 0 des ALEs 120, wird bei 121 überprüft, um festzustellen, ob es 0 ist, wobei bestimmt wird, ob der ALE 120 gültig ist. Falls der ALE 120 gültig ist, wird die ALESN 122 des ALETs bei 124 mit der ALESN 123 des ALEs 120 verglichen. Falls die ALESN 122 gleich der ALESN 123 ist, ist das ALET immer noch zum Bezeichnen des ALEs 120 berechtigt, und die ASTE-Adresse 125 wird zum Abrufen des ASTE 126 verwendet. Die Gültigkeit des ASTE 126 wird durch die Überprüfung des ungültigen Bits 127 bei 128 bestätigt. Falls der ASTE 126 gültig ist, wird die ASTESN 130 bei 132 mit der ASTESN 131 verglichen, um sicherzustellen, daß der ALE 120 immer noch zum Bezeichnen des ASTE 126 berechtigt ist. Diese Prüfungen vervollständigen den Gültigkeitsteil der ART.
  • Es wird nun die Berechtigung des aufrufenden Programms zum Zugriff auf den Adreßraum überprüft. Die erste Prüfung erfolgt bei 135, um zu bestimmen, ob das P-Bit 136 0 ist. Falls das P-Bit 136 0 ist, werden alle Programme zum Zugriff auf den dem ALE zugeordneten Adreßraum berechtigt, und es werden keine weiteren Prüfungen durchgeführt. Falls das P-Bit 136 1 ist, wird der ALE- AX 137 durch den Komparator 139 mit dem EAX 138 im Steuerregister 8 verglichen. Falls der Vergleich bei 139 gleich ist, wird das Programm besonders zum Zugriff auf den Adreßraum berechtigt, und es werden keine weiteren Prüfungen durchgeführt. Falls der Vergleich bei 139 nicht gleich ist, wird bei 140 eine erweiterte Berechtigungsprüfung der ASN durchgeführt, indem der EAX im Steuerregister 8 mit der Berechtigungstabellenlänge (ATL) 141 verglichen wird, um sicherzustellen, daß der EAX keinen Eintrag außerhalb der Grenzen der Berechtigungstabelle bezeichnet. Der im Steuerregister 8 befindliche EAX wird als ein Index in die Berechtigungstabelle, deren Ursprung der ATO 142 ist, verwendet. Falls das S-Bit in der Berechtigungstabelle für diesen EAX gleich 1 gesetzt wird, wird das Programm zum Zugriff auf den Adreßraum berechtigt. Wenn das Programm Berechtigung zum Zugang in den Adreßraum hat, wie beschrieben wurde, wird die STD 144 für den DAT-Vorgang bei 145 bereitgestellt.
  • Die Fig. 19A und 19B bilden, wenn sie zusammengesetzt werden, ein Flußdiagramm der Schritte und Ausnahmebedingungen der Zugriffsregisterumsetzung. Wenn die ART-Logik aufgerufen wird, wird bei 150 eine Prüfung durchgeführt, um zu bestimmen, ob das Zugriffsregister 0 bezeichnet wurde. Falls das Zugriffsregister 0 bezeichnet wurde, wird bei 151 eine Prüfung durchgeführt, um zu bestimmen, ob die ART durch einen Vorgang ZUGRIFF PRÜFEN (der beschrieben wird) aufgerufen wurde. Falls das Zugriffsregister 0 nicht bezeichnet wurde oder falls dies ein Vorgang ZUGRIFF PRÜ- FEN ist, wird das ALET im Zugriffsregister zur Verwendung bei 152 bezeichnet. Falls das Zugriffsregister 0 bezeichnet wird und dies kein Vorgang ZUGRIFF PRÜFEN ist, wird dem ALET bei 153 ein Hexadezimalwert 00000000 zugewiesen. Bei 154 wird eine Prüfung durchgeführt, um zu bestimmen, ob das ALET gleich dem Hexadezimalwert 00000000 ist. Falls es gleich ist, wird die STD für den primären Adreßraum bei 155 aus dem Steuerregister 1 erhalten. Bei 156 wird eine Prüfung durchgeführt, um zu bestimmen, ob das ALET einen Hexadezimalwert 00000001 hat. Falls dies der Fall ist, wird die STD für den sekundären Adreßraum bei 157 aus dem Steuerregister 7 erhalten. Bei 158 wird eine Prüfung durchgeführt, um zu bestimmen, ob die Bits 0 bis 6 des ALETs gleich 0 sind. Falls die Bits 0 bis 6 nicht gleich 0 sind, ist der zugewiesene Wert des ALETs nicht gültig, und es wird eine Ausnahmebedingung der ALET-Angabe bei 159 erkannt, und der Vorgang wird annuliert.
  • Bei 160 erfolgt eine Prüfung, um zu bestimmen, ob das Bit 7 des ALETs 1 ist. Falls es 1 ist, wird der PASTEO-Eintrag im Steuerregister 5 bei 161 decodiert, und die effektive ALD wird für die PSAL abgerufen. Falls das Bit 7 des ALETs gleich 0 ist, wird der DUCTO-Eintrag im Steuerregister 2 bei 162 decodiert, und die effektive ALD wird für die DUAL abgerufen. Falls die Abrufadresse bei 163 nicht gültig ist, wird bei 164 eine Adressier-Ausnahmebedingung erkannt, und der Vorgang wird unterdrückt. Falls die Adresse bei 163 gültig ist, wird bei 165 eine Prüfung durchgeführt, um zu bestimmen, ob sich die ALEN des ALETs außerhalb der Grenzen der effektiven ALL (Bits 25 bis 31 der effektiven ALD) befindet. Ist dies der Fall, wird bei 166 eine Ausnahmebedingung der ALEN-Umsetzung erkannt, und der Vorgang wird annulliert. Falls die Antwort bei 165 "nein" ist, wird der ALE bei 167 lokalisiert, und es erfolgt eine Prüfung, um festzustellen, ob die ALE-Adresse gültig ist. Falls die ALE-Adresse nicht gültig ist, wird bei 168 eine Adressier-Ausnahmebedingung erkannt, und der Vorgang wird unterdrückt. Falls die Adresse bei 167 gültig ist, wird das gültige Bit im ALE bei 169 überprüft, um festzustellen, ob der ALE gültig ist. Falls der ALE nicht gültig ist, wird eine Ausnahmebedingung der ALEN-Umsetzung bei 170 erkannt, und der Vorgang wird annulliert. Falls der ALE bei 169 gültig ist, wird die ALESN des ALETs bei 171 mit der ALESN des ALEs verglichen. Falls der Vergleich bei 171 nicht gleich ist, wird eine Ausnahmebedingung der ALE-Folge bei 172 erkannt, und der Vorgang wird annulliert. Falls der Vergleich bei 171 gleich ist, wird der ASTE unter Verwendung der ASTE-Adresse im ALE bei 173 lokalisiert. Es erfolgt eine Prüfung, um zu bestimmen, ob die ASTE- Adresse gültig ist. Falls die Adresse nicht gültig ist, wird bei 174 eine Adressier-Ausnahmebedingung erkannt, und der Vorgang wird unterdrückt. Falls die ASTE-Adresse bei 173 gültig ist, wird das Gültigkeitsbit des ASTE bei 175 überprüft, um zu bestimmen, ob der ASTE gültig ist. Falls der ASTE nicht gültig ist, wird eine Ausnahmebedingung der ASTE-Gültigkeit bei 176 erkannt, und der Vorgang wird annulliert. Bei 177 wird die ASTESN des ALEs mit der ASTESN des ASTE verglichen. Falls der Vergleich bei 177 nicht gleich ist, wird eine Ausnahmebedingung der ASTE-Folge bei 178 erkannt, und der Vorgang wird annuliert.
  • Die vorhergehenden Blöcke 163 bis 178 bestimmen folglich, ob die erhaltenen Einträge gültig sind. Bei 179 wird das private Bit des ALEs, Bit 7, überprüft, um festzustellen, ob es gleich 0 ist. Außerdem wird bei 179 der ALEAX-Eintrag im ALE mit dem EAX im Steuerregister 8 verglichen. Falls beide Prüfungen gleich sind, wird, wie bei 180 gezeigt wird, die STD für den Operanden aus dem ASTE des Adreßraums erhalten. Wenn das private Bit 0 ist, wird das Programm berechtigt, und der Berechtigungsschritt der Zugriffsregisterumsetzung ist abgeschlossen. Wenn das private Bit 1, der ALEAX jedoch gleich dem EAX ist, wird das Programm ebenfalls berechtigt, und der Berechtigungsschritt der Zugriffsregisterumsetzung ist abgeschlossen.
  • Falls das Programm bei 179 noch nicht berechtigt ist, so wird bei 181 die Gültigkeit des ASTE überprüft, indem bestimmt wird, ob die ASTE-Bits 30, 31 und 60 bis 63 0 sind. Falls sie nicht 0 sind, wird eine Ausnahmebedingung der ASN-Umsetzungsangabe bei 182 erkannt, und der Vorgang wird unterdrückt. Bei 183 wird der Wert der EAX-Bits 0 bis 11 im Steuerregister 8 mit der Länge der Berechtigungstabelle verglichen, um sicherzustellen, daß der EAX keinen Eintrag außerhalb der Grenzen der Berechtigungstabelle bezeichnet. Falls der Vergleich bei 183 "ja" ist, wird bei 184 eine Ausnahmebedingung der erweiterten Berechtigung erkannt, und der Vorgang wird unterdrückt. Falls der EAX keinen Eintrag außerhalb der Grenzen der Berechtigungstabelle bezeichnet, wird der zugeordnete EAX-Eintrag bei 185 in der Berechtigungstabelle lokalisiert. Falls die Adresse des Berechtigungstabelleneintrags nicht gültig ist, wird bei 186 eine Adressier-Ausnahmebedingung erkannt, und der Vorgang wird unterdrückt. Bei 187 wird eine Prüfung der erweiterten Berechtigung durchgeführt, indem bestimmt wird, ob das sekundäre Berechtigungsbit (S-Bit) des bei 185 befindlichen Berechtigungstabelleneintrags gleich 1 ist. Falls die Prüfung bei 187 "ja" ergibt, ist das Programm eines von denen, die durch die dem Adreßraum zugeordnete Berechtigungstabelle berechtigt werden, und die STD für den Adreßraum wird bei 188 aus dem ASTE erhalten. Falls der Vergleich bei 187 "nein" ergibt, wird das Programm nicht berechtigt, und es wird eine Ausnahmebedingung der erweiterten Berechtigung bei 189 erkannt, und der Vorgang wird annulliert.
  • Die MAS-Einrichtung umfaßt eine Instruktion ZUGRIFFSREGISTER PRÜFEN (TAR) zur Ausführung des erwähnten Vorgangs der Zugriffsprüfung. ZUGRIFFSREGISTER PRÜFEN hat das folgende Format:
  • TAR A1, R2
  • Das ALET, das als im Zugriffsregister des ersten Operanden Al befindlich angegeben wird, wird unter Verwendung des EAX in dem vom zweiten Operanden R2 angegebenen Allgemeinregister auf Ausnahmebedingungen der ALET-Umsetzung überprüft. Wie in den Figuren 19A und 19B gezeigt wird, bewirkt die Instruktion ZUGRIFFS- REGISTER PRÜFEN, wie es in 151 in Fig. 19A bestimmt wird, die Ausführung eines ART-Vorgangs. Die TAR-Instruktion liefert die folgenden Ergebnisse der Prüfung im PSW-Bedingungscode (CC), siehe Fig. 4.
  • 0 = Das angegebene ALET ist 0 und ist zum Zugriff gültig.
  • 1 = Das angegebene ALET ist nicht 0 oder l, befindet sich in der mittels des Steuerregisters 2 adressierten DUAL und- ist mit dem angegebenen EAX zum Zugriff gültig.
  • 2 = Das angegebene ALET ist nicht 0 oder 1, befindet sich in der mittels des Steuerregisters 5 adressierten PSAL und ist mit dem angegebenen EAX zum Zugriff gültig.
  • 3 = Das angegebene ALET ist entweder 1 oder ist mit dem angegebenen EAX zum Zugriff ungültig.
  • Die Fähigkeit zur Prüfung eines ALETs auf Berechtigungs-Ausnahmebedingungen unter Verwendung eines Eingangs-EAX gestattet dem Programm, zu bestimmen, ob sich das ALET auf die PASN (ALET = 0) des Aufrufers bezieht oder ob sich das ALET auf die DUAL bezieht oder ob sich das ALET auf die PSAL des Aufrufers bezieht. Dies gestattet dem Programm, unabhängig vom internen Format des ALETs zu sein.
  • Wenn die TAR-Instruktion verwendet und die ART ausgeführt wird, wird ein ALB-Eintrag erzeugt. Wenn das ALET im AR verwendet wird, enthält der ALB folglich den Eintrag, vorausgesetzt, daß während der ART keine Ausnahmebedingung auftrat.
  • Fig. 20 zeigt ein Beispiel einer Verwendung der TAR-Instruktion. Ein Task-Steuerblock TCB1 einer zuteilbaren Einheit hat während der Ausführung bei 200 einen EAX von 5. Dieser EAX gestattet dem Programm die Verwendung von bestimmten Einträgen auf seiner DUAL für den TCB1. Bei 201 führt das Programm einen Programmaufruf zu einem Programm aus, das sich im Adreßraum ASN2 befindet, und übergibt ein ALET, das das Programm im ASN2 verwenden muß. Bei 202 wird das Programm im ASN2 mit einem EAX = 8 ausgeführt, der vom EAX seines Aufrufers verschieden ist. Falls das Programm das vom aufrufenden Programm bereitgestellte ALET bei 202 verwenden würde, könnte ein Systemintegritätsproblem auftreten. Das aufrufende Programm hatte eventuell keine EAX-Berechtigung zur Verwendung des ALETs, das ASN2-Programm hat diese jedoch. Das ASN2- Programm muß eine Gültigkeitsprüfung durchführen, um zu bestimmen, ob der Aufrufer die Berechtigung zur Verwendung des ALETs, das er weiterleitete, hatte. Bei 203 führt das Programm im ASN2 die Gültigkeitsprüfung unter Verwendung der TAR-Instruktion mit dem Eingangs-ALET und dem EAX = 5 des Aufrufers durch. Der EAX des Aufrufers wird aus dem Verbindungsstapelspeicher-Eintrag, der beim Programmaufruf zum ASN2 erzeugt wurde, erhalten. Falls die TAR-Instruktion einen Bedingungscode ausgibt, der angibt, daß der Aufrufer zur Verwendung des ALETs berechtigt war, setzt das ASN2-Programm die Ausführung seiner Funktion fort. Falls der Aufrufer nicht berechtigt war, führt das ASN2-Programm entweder eines ABNORMALE BEENDIGUNG des Aufrufers durch oder kehrt mit einem Rückkehrcode zum Aufrufer zurück, der anzeigt, daß der Aufruf nicht erfolgreich war. Wenn die Steuerung bei 204 mittels einer RÜCKFÜHRUNGS-Instruktion zurückkehrt, wird der EAX (EAX = 5) des Aufrufers aus dem Stapelspeicher rückgespeichert, und das ASN1-Programm setzt seine Ausführung mit diesem EAX fort.
  • Die Funktion der ALET-Gültigkeitsprüfung wird sehr oft benötigt. In dem Beispiel aus Fig. 20 wird sie bei jedem Aufruf zu dem Programm im ASN2 benötigt. Diese Funktion könnte durch eine Service-Routine des Betriebssystems bereitgestellt werden; der Leistungsaufwand wäre jedoch überaus groß. Falls die TAR-Funktion nicht bereitgestellt wird, müssen Programme, die auf ein ALET eines Aufrufers Bezug nehmen und den EAX ändern müssen, eventuell zwei PC-Instruktionen verwenden. Der erste PC würde den EAX nicht ändern, und auf die Parameter des Aufrufers würde mit dem EAX des Aufrufers Bezug genommen. Später würde ein zweiter PC ausgeführt, um den neuen EAX für das zu verwendende aufgerufene Programm bereitzustellen. Die TAR-Funktion stellt folglich eine effizientere Leistung bereit. Obwohl das Beispiel von Fig. 20 die mit einem ALET in der DUAL verwendete TAR-Instruktion zeigt, wird klar, daß die TAR-Instruktion sowohl mit ALETs auf der DUAL als auch auf der PSAL verwendet werden kann.
  • GLOSSAR
  • ARM Berechtigungsschlüsselmaske
  • AR Zugriffsregister - Jedes Zugriffsregister ist einem Allgemeinregister GPR zugeordnet.
  • ART Zugriffsregisterumsetzung - Ein Verfahren der Zuordnung einer STD - Segmenttabellenbezeichnung - zu einem Zugriffsregister.
  • AX Berechtigungsindex
  • ALB ART-Umsetzpuffer - Die ART findet jedesmal, wenn ein AR durch einen Bezug eines B-Feldes eines Speicheroperanden in einem GPR bezeichnet wird, statt.
  • ALE Zugriffslisteneintrag
  • ALEAX Berechtigungsindex des Zugriffslisteneintrags
  • ALEN Zugriffslisteneintrags-Nummer - Die Bits 16 bis 31 des ALETs sind die Zugriffslisteneintrags-Nummer des bezeichneten ALEs.
  • ALL Zugriffslistenlänge - Als eine vorbestimmte Nummer in einem Steuerregister gespeichert und kann höchstens 1024 Zugriffslisteneinträge gestatten.
  • ALET Zugriffslisteneintrags-Token - Ein ALET bezeichnet einen Eintrag in einer Zugriffsliste.
  • ALESN Zugriffslisteneintrags-Folgennummer - Die Bits 8 bis 15 des ALETs und des ALEs.
  • ASN Adreßraumnummer - Stellt einen Adreßraum dar.
  • ASTE ASN-Zweittabelleneintrag- Dies ist eine Erweiterung des nach dem Stand der Technik gezeigten 370/XA ASTE und umfaßt ein 1-Bit und eine STD.
  • ASTESN ASTE-Folgennummer - Die ASTESN im ALE wird auf Gleichheit mit der ASTESN im ASTE überprüft.
  • ATL Berechtigungstabellenlänge
  • DAS Doppeladreßraum
  • DAT Dynamische Adressenumsetzung - Verwendet eine STD zur Umsetzung von virtuellen Adressen zu realen Speicheradressen.
  • DUAL Zugriffsliste der zuteilbaren Einheit
  • DUALD DUAL-Bezeichnung, die aus dem realen Ursprung und der Länge der DUAL besteht.
  • DUCT Steuertabelle der zuteilbaren Einheit - enthält die DUALD und wird durch CR2 angegeben.
  • EAX Erweiterter Berechtigungsindex
  • EKM Eintragsschlüsselmaske
  • ETE Eintragstabellen-Eintrag
  • GPR Allgemeinregister zum Enthalten von Operanden und Adressen.
  • LTD Verbindungstabellenbezeichnung
  • MAS Mehrfach-Adreßraum
  • P-Bit Bit im ALET, das zwischen der DUAL und der PSAL wählt; Bit im ALE, das anzeigt, ob der ALE öffentlich oder privat ist.
  • PASTE Primärer ASN-Zweittabelleneintrag - enthält die PSAL und die LTD.
  • PC-cp PROGRAMMAUFRUF zum aktuellen primären
  • PC-ss PROGRAMMAUFRUF mit Raumumschaltung
  • PKM PSW-Schlüsselmaske
  • PSAL Zugriffsliste des Primärraums
  • PSALD PSAL-Bezeichnung, die aus dem realen Ursprung und der Länge, die im primären ASTE gefunden wurden, besteht.
  • PSTD Primäre Segmenttabellenbezeichnung
  • PSW Programmstatuswort
  • SSTD Sekundäre Segmenttabellenbezeichnung
  • STD Segmenttabellenbezeichnung.
  • Obwohl die Erfindung besonders mit Bezugnahme auf bevorzugte Ausführungsformen gezeigt und beschrieben wurde, ist es für Fachleute klar, daß die vorangegangenen und andere Änderungen an der Form und an Einzelheiten ohne Abweichung vom Umfang und der Wesensart der Erfindung vorgenommen werden können.

Claims (19)

1. Programmberechtigungsvorrichtung in einem Computersystem mit einem zentralen Prozessor, einem Hauptspeicher und einem Betriebssystem zum Betrieb des zentralen Prozessors zum Ausführen von Programmen, die Instruktionen für Verarbeitungsdaten beinhalten, wobei jede Instruktion ein Operandenfeld aufweist und wobei der Hauptspeicher einer Vielzahl von Adreßräumen, die durch die Programme zu verarbeitende Daten enthalten, zugeordnet ist, wobei die Programmberechtigungsvorrichtung, die ein Programm zum Zugriff auf Daten in einem der Adreßräume berechtigt, folgendes umfaßt:
eine Vielzahl von Zugriffsregistern (AR, 16, 22), wobei jedes Zugriffsregister eine Zahl enthält, die den Wert eines Zugriffslisteneintrag-Tokens ALET hat, das einen der Adreßräume zum Zuordnen von jedem Adressenregister und seinem ALET zu einem der Adreßräume bezeichnet, wobei die Zugriffsregister jeweils zusammen mit einem zugeordneten entsprechenden aus einer Vielzahl von Zentralprozessorregistern (GR 22) durch den Inhalt des Operandenfeldes (B) einer Programminstruktion adressierbar sind;
ein Mittel zur Zugriffsregister-Umsetzung ART (10) im zentralen Prozessor, der einen Eingang zum Empfang des ALETs des durch den Inhalt des Operandenfeldes (B) der Instruktion bezeichneten Zugriffsregisters aufweist und als Antwort darauf eine Adresse in den diesem ALET zugeordneten Adreßraum bereitstellt;
Adressenumsetzungsmittel (14, 15, 18) im zentralen Prozessor, der einen Eingang zum Empfang des Inhaltes des Operandenfeldes (B, D) der vom zentralen Prozessor ausgeführten Programminstruktion und einen Eingang zum Empfang der Adresse vom ART-Mittel aufweist, wobei das Adressenumsetzungsmittel (14, 15) den Inhalt des Operandenfeldes zu einer logischen Adresse umsetzt und die logische Adresse mit der Adresse vom ART-Mittel kombiniert, um eine reale Adresse in dem durch das ALET bezeichneten Adreßraum zu bilden;
wobei das ART-Mittel desweiteren folgendes umfaßt:
eine Zugriffsliste (24, 25) mit einer Vielzahl von Zugriffslisteneinträgen ALE im Hauptspeicher, wobei jeder der ALET eine Zugriffslisteneintrags-Nummer (ALEN) enthält, die einen der Zugriffslisteneinträge bezeichnet;
eine ASN-Zweittabelle, wobei jeder ASN-Zweittabelleneintrag ASTE (98) durch eine ASTE-Adresse in jedem Zugriffslisteneintrag ausgewählt wird, um die Adresse in den Adreßraum zu stellen;
ein erstes spezielles Bit (Bit 7, P) in jedem der Zugriffslisteneinträge, wobei das P-Bit einem ersten Wert (0) zugewiesen wird, wenn der dem Zugriffslisteneintrag zugeordnete Adreßraum für alle ausgewählten Programme offen ist, und einem zweiten Wert (1) zugewiesen wird, wenn der dem Zugriffslisteneintrag zugeordnete Adreßraum nur für berechtigte Programme offen ist;
ein erstes Mittel zum Gestatten des Zugriffs (Fig. 18: 135) zum Bestimmen des dem P-Bit zugeordneten Wertes, wobei das erste Mittel zum Gestatten des Zugriffs die fortgesetzte Ausführung der Instruktion gestattet, um den Zugriff auf den bezeichneten Adreßraum durch das vom zentralen Prozessor ausgeführte Programm zu gestatten, wenn das P-Bit seinen ersten Wert hat;
ein Steuerregister (CR 8) zum Speichern eines erweiterten Berechtigungsindex- (EAX-) Wertes für- das vom zentralen Prozessor ausgeführte Programm;
ein Feld für den erweiterten Berechtigungsindex der Zugriffsliste ALEAX in jedem der Zugriffslisteneinträge zur Speicherung eines ALEAX-Wertes zur Steuerung des Zugriffs auf den jedem ALE zugeordneten Adreßraum; und
ein zweites Mittel zum Gestatten des Zugriffs (Fig. 18 : 139) zum Vergleichen des EAX-Wertes mit einem ALEAX-Wert, wenn das P-Bit seinen zweiten Wert hat, wobei das zweite Mittel zum Gestatten des Zugriffs den Zugriff auf den bezeichneten Adreßraum durch das vom zentralen Prozessor ausgeführte Programm gestattet, wenn der EAX-Wert gleich dem ALEAX-Wert des Zugriffslisteneintrags ist, der durch die ALEN des ALETs in dem durch den Inhalt des Operandenfeldes adressierten Zugriffsfeld bezeichnet wird.
2. Programmberechtigungsmechanismus nach Anspruch l, der desweiteren folgendes aufweist:
eine Berechtigungstabelle (AT, Fig. 13) in dem jedem Adreßraum zugeordneten Hauptspeicher, wobei jede AT einen AT-Eintrag für jeden verwendeten EAX aufweist;
ein zweites spezielles Bit (S) in jedem AT-Eintrag, wobei das S-Bit einem ersten Wert (0) zugeordnet wird, wenn der EAX von diesem AT-Eintrag zum Zugriff auf den dieser AT zugeordneten Adreßraum berechtigt ist, und einem zweiten Wert (1) zugeordnet wird, wenn der EAX von diesem AT-Eintrag nicht zum Zugriff auf den dieser AT zugeordneten Adreßraum berechtigt ist; und
ein drittes Mittel zum Gestatten des Zugriffs im ART zum Überprüfen des Wertes des S-Bits, wenn das P-Bit seinen zweiten Wert hat und der EAX nicht gleich dem ALEAX ist, wobei das dritte Mittel zum Gestatten des Zugriffs den Zugriff auf den bezeichneten Adreßraum durch das vom zentralen Prozessor ausgeführte Programm gestattet, wenn das S-Bit für den AT-Eintrag der AT, die dem bezeichneten Adreßraum für den im Steuerregister gespeicherten EAX-Wert zugeordnet ist, den ersten Wert hat.
3. Programmberechtigungsmechanismus nach Anspruch 2, der desweiteren folgendes aufweist:
PROGRAMMAUFRUF-Mittel (50 bis 55) im Betriebssystem zur Änderung des im Steuerregister (CR 8) gespeicherten EAX-Wertes.
4. Programmberechtigungsmechanismus nach Anspruch 3, der desweiteren folgendes umfaßt:
Speichermittel im Hauptspeicher zum Speichern des im Steuerregister gespeicherten EAX-Wertes, bevor der EAX-Wert durch die PROGRAMMAUFRUF-Mittel geändert wird; und
RÜCKFÜHRUNGS-Mittel im Betriebssystem zur erneuten Speicherung des EAX-Wertes aus den Speichermitteln in das Steuerregister.
5. Programmberechtigungsmechanismus nach Anspruch 1, der desweiteren folgendes umfaßt:
eine ASTE-Folgennummer (ASTESN) in jedem ASTE, wobei die ASTESN einen ausgewählten Wert hat;
eine ASTESN in jedem Zugriffslisteneintrag, deren Wert auf den Wert der ASTESN im ASTE zu dem Zeitpunkt, als der Zugriffslisteneintrag dem ASTE zugeordnet war, gesetzt wird, und
ein Berechtigungssperrmittel (132) im ART-Mittel zum Vergleichen des Wertes der ASTESN des Zugriffslisteneintrags mit dem Wert der ASTESN seines entsprechenden ASTE und zum Verhindern der weiteren Ausführung eines Programms durch den zentralen Prozessor, der anderenfalls Zugang zu den Daten hat, wenn die Werte nicht übereinstimmen.
6. Programmberechtigungsmechanismus nach Anspruch 5, der desweiteren folgendes umfaßt:
ein Eintragstabellenmittel mit Eintragstabellen-Einträgen im Hauptspeicher zum Speichern der Eintragsdaten, wobei jeder Eintragstabellen-Eintrag einem der Programme zugeordnet wird;
eine Änderung der Berechtigung des aufgerufenen Programms, das vom Aufrufprogramm als Antwort auf die Eintragsdaten im Eintragstabellen-Eintrag, der dem aufgerufenen Programm zugeordnet wird, aufgerufen wird.
7. Programmberechtigungsmechanismus nach Anspruch 6, wobei jeder der Eintragstabellen-Einträge Mittel zum Speichern eines Eintrags-EAX (EEAX) in den Eintragsdaten aufweist; und wobei der Programmberechtigungsmechanismus desweiteren folgendes umfaßt:
EAX-Änderungsmittel in den Berechtigungsänderungsmitteln zum Ersetzen des EAX-Wertes im Steuerregister durch den EEAX in dem dem aufgerufenen Programm zugeordneten Eintragstabellen- Eintrag; und
Mittel zur Steuerung des erweiterten Berechtigungsindex in den Eintragstabellen-Eintragsdaten, die dem aufgerufenen Programm zugeordnet werden, wobei das Mittel zur Steuerung des erweiterten Berechtigungsindex das EAX-Änderungsmittel steuert und einen ersten Wert hat, falls das EAX-Änderungsmittel den EAX durch den EEAX ersetzen muß, und einen zweiten Wert hat, falls das EAX-Änderungsmittel den EAX nicht durch den EEAX ersetzen muß.
8. Programmberechtigungsmechanismus nach Anspruch 7, wobei der dem aufgerufenen Programm zugeordnete Eintragstabellen-Eintrag eine Eintragsschlüsselmaske (EKM) in den Eintragsdaten enthält, wobei der Programmberechtigungsmechanismus desweiteren folgendes umfaßt:
ein zweites Steuerregister (CR 3) zum Speichern einer PSW- Schlüsselmaske (PKM), wobei die PKM den Zugriff des PRO- GRAMMAUFRUF-Mittels auf den dem aufgerufenen Programm zugeordneten Eintragstabellen-Eintrag steuert;
ein ODER-Mittel (78) im, Berechtigungsänderungsmittel zur ODER-Verknüpfung der EKM in die PKM im zweiten Steuerregister, um die PKM im zweiten Steuerregister so zu ändern, daß die geänderte PKM hierarchisch ist;
Austauschmittel (77, 78) im Berechtigungsänderungsmittel zum Ersetzen der PKM im zweiten Steuerregister durch die EKM, so daß die ersetzte PKM nichthierarchisch ist; und
Mittel zur Steuerung der PSW-Schlüsselmaske in jedem der Eintragstabellen-Einträge zur Steuerung des Berechtigungsänderungsmittels, wobei die Mittel zur Steuerung der PSW- Schlüsselmaske einen ersten Wert (0) haben, wenn das ODER- Mittel vom PROGRAMMAUFRUF-Mittel verwendet werden muß, und einen zweiten Wert (1) haben, wenn das Austauschmittel vom PROGRAMMAUFRUF-Mittel verwendet werden muß.
9. Programmberechtigungsmechanismus nach Anspruch 8, wobei das aufrufende Programm sich in einem ersten Adreßraum befindet und das aufgerufene Programm sich in einem zweiten Adreßraum befindet, wobei der Programmberechtigungsmechanismus desweiteren folgendes umfaßt:
Verhinderungsmittel im Berechtigungsänderungsmittel zum Verhindern, daß das aufgerufene Programm Zugriff auf den ersten Adreßraum hat.
10. Programmberechtigungsmechanismus nach Anspruch 9, wobei das Verhinderungsmittel folgendes umfaßt:
ein zweites Steuerregister (CR 3) zum Speichern einer sekundären Adreßraumnummer (SASN), die einen sekundären Adreßraum kennzeichnet;
ein drittes Steuerregister (CR 4) zum Speichern einer alten primären Adreßraumnummer (PASN), die den ersten Adreßraum als den alten primären Adreßraum kennzeichnet;
ein viertes Steuerregister (CR 7) zum Speichern einer sekundären Segmenttabellenbezeichnung (SSTD) zum Lokalisieren des sekundären Adreßraums im Hauptspeicher;
ein fünftes Steuerregister (CR 1) zum Speichern einer alten primären Segmenttabellenbezeichnung (PSTD) zum Lokalisieren des alten primären Adreßraums im Hauptspeicher;
primäre Einrichtungsmittel in den PROGRAMMAUFRUF-Mitteln zum Einrichten einer neuen PASN und einer neuen PSTD, um den zweiten Adreßraum im Hauptspeicher jeweils als den neuen primären Adreßraum zu kennzeichnen bzw. zu lokalisieren;
Gleichsetzungsmittel in den PROGRAMMAUFRUF-Mitteln zum Gleichsetzen einer neuen SASN und einer neuen SSTD jeweils im dritten bzw. fünften Steuerregister mit der alten PASN und der alten PSTD, die jeweils in den vierten bzw. sechsten Steuerregistern gespeichert sind, oder zum Gleichsetzen-der neuen SASN und der neuen SSTD mit der neuen PASN bzw. der neuen PSTD; und
Sekundär-ASN-Steuermittel in jedem der Eintragstabellen-Einträge zur Steuerung der Gleichsetzungsmittel, wobei das Sekundär-ASN-Steuermittel einen ersten Wert hat, wenn die neue SASN und die neue SSTD jeweils mit der alten PASN bzw. der alten PSTD gleichgesetzt werden müssen, wodurch gestattet wird, daß das aufgerufene Programm Zugriff auf den ersten Adreßraum des aufrufenden Programms hat, und einen zweiten Wert hat, wenn die neue SASN und die neue SSTD jeweils mit der neuen PASN bzw. der neuen PSTD gleichgesetzt werden müssen, wodurch verhindert wird, daß das aufgerufene Programm Zugriff auf den ersten Adreßraum des aufrufenden Programms hat.
11. Programmberechtigungsmechanismus nach Anspruch 10, der desweiteren folgendes umfaßt:
Speichermittel im Speicher zum Speichern der Werte von EAX, PKM, PASN und SASN, wie sie in den Steuerregistern vorhanden waren, bevor einer durch das Berechtigungsänderungsmittel geändert wurde, und
RÜCKFÜHRUNGS-Mittel im Betriebssystem zur erneuten Speicherung der Werte von EAX, PKM, PASN und SASN, wie sie in den Speichermitteln gespeichert waren, wobei die erneute Speicherung stattfindet, nachdem das aufgerufene Programm vom zentralen Prozessor unter mindestens einem geänderten EAX-, PKM-, PASN- oder SASN-Wert ausgeführt wurde.
12. Programmberechtigungsmechanismus nach Anspruch 6, wobei jeder Zugriffslisteneintrag einen privaten Anzeiger für den zugeordneten Adreßraum enthält, wobei der private Anzeiger einen ersten Wert hat, wenn allen Programmen der Datenzugriff auf den zugeordneten Adreßraum gestattet wird, und einen zweiten Wert hat, wenn nur berechtigten Programmen der Datenzugriff auf den zugeordneten Adreßraum gestattet wird, und
ein drittes Mittel zum Gestatten des Zugriffs im ART-Mittel zum Überprüfen des privaten Anzeigers des ausgewählten Zugriffslisteneintrags, wobei das dritte Mittel zum Gestatten des Zugriffs den Zugriff auf den dem ausgewählten Zugriffslisteneintrag zugeordneten Adreßraum gestattet, wenn der private Anzeiger des ausgewählten Zugriffslisteneintrags den ersten Wert hat.
13. Programmberechtigungsmechanismus nach Anspruch 12, wobei der private Anzeiger ein P-Bit ist, das einen ersten Wert von 0 und einen zweiten Wert von 1 hat.
14. Programmberechtigungsverfahren in einem Computersystem mit einem zentralen Prozessor, einem Hauptspeicher und einem Betriebssystem zum Betrieb des zentralen Prozessors zum Ausführen von Programmen, die Instruktionen für Verarbeitungsdaten beinhalten, wobei jede Instruktion ein Operandenfeld aufweist und wobei der Hauptspeicher einer Vielzahl von Adreßräumen, die durch die Programme zu verarbeitende Daten enthalten, zugeordnet ist, wobei das Programmberechtigungsverfahren, das ein Programm zum Zugriff auf Daten in einem der Adreßräume berechtigt, die folgenden Schritte umfaßt:
Stellen einer Zahl mit dem Wert eines Zugriffslisteneintrags-Tokens ALET, das einen der Adreßräume zum Zuordnen von jedem Adressenregister und seinem ALET zu einem der Adreßräume bezeichnet, in ein ausgewähltes Zugriffsregister aus einer Vielzahl von Zugriffsregistern (AR, 16, 22), wobei die Zugriffsregister zusammen mit einem zugeordneten entsprechenden aus einer Vielzahl von Zentralprozessorregistern (GR 22) jeweils durch den Inhalt des Operandenfeldes (B) einer Programminstruktion adressierbar sind;
Umsetzen (ART, 10) eines ALETs des durch den Inhalt des Operandenfeldes (B) der Instruktion bezeichneten Zugriffsregisters und Bereitstellen einer Adresse in den diesem ALET zugeordneten Adreßraum als Antwort darauf;
Umsetzen (14, 15) des Inhaltes des Operandenfeldes (B, D) der vom zentralen Prozessor ausgeführten Programminstruktion zu einer logischen Adresse und Kombinieren (18) der logischen Adresse mit der durch den Schritt der ALET-Umsetzung bereitgestellten Adresse, um eine reale Adresse in dem durch das ALET bezeichneten Adreßraum zu bilden;
wobei der Schritt der ALET-Umsetzung die folgenden Schritte umfaßt:
Zugreifen auf einen Zugriffslisteneintrag ALE in einer Zugriffsliste (24, 25) mittels einer Zugriffslisteneintrags- Nummer ALEN in jedem ALET;
Zugreifen auf einen ASN-Zweittabelleneintrag ASTE (98) in einer ASN-Zweittabelle mittels einer ASTE-Adresse in jedem Zugriffslisteneintrag, um die Adresse in den Adreßraum zu stellen;
Stellen eines ersten speziellen Bits (Bit 7, P) in jeden der Zugriffslisteneinträge, wobei das P-Bit einem ersten Wert (O) zugewiesen wird, wenn der dem Zugriffslisteneintrag zugeordnete Adreßraum für alle ausgewählten Programme offen ist, und einem zweiten Wert (1) zugewiesen wird, wenn der dem Zugriffslisteneintrag zugeordnete Adreßraum nur für berechtigte Programme offen ist;
Bestimmen des dem P-Bit zugewiesenen Wertes und Gestatten (Fig. 18 : 135) der fortgesetzten Ausführung der Instruktion zum Ermöglichen des Zugriffs auf den bezeichneten Adreßraum durch das Programm, das vom zentralen Prozessor ausgeführt wird, wenn das P-Bit seinen ersten Wert hat;
Speichern eines erweiterten Berechtigungsindex- (EAX-) Wertes für das vom zentralen Prozessor ausgeführte Programm in einem Steuerregister (CR 8);
Stellen eines ALEAX-Wertes in ein Feld für den erweiterten Berechtigungsindex der Zugriffsliste ALEAX zur Steuerung des Zugriffs auf den jedem ALE zugeordneten Adreßraum; und
Vergleichen des EAX-Wertes mit einem ALEAX-Wert, wenn das P- Bit seinen zweiten Wert hat und Gestatten (Fig. 18 : 139) des Zugriffs auf den bezeichneten Adreßraum durch das vom zentralen Prozessor ausgeführte Programm, wenn der EAX-Wert gleich dem ALEAX-Wert des Zugriffslisteneintrags ist, der durch die ALEN des ALETs in dem durch den Inhalt des Operandenfeldes adressierten Zugriffsfeld bezeichnet wird.
15. Programmberechtigungsverfahren nach Anspruch 14, das folgendes umfaßt:
vor dem Berechtigungsschritt werden desweiteren die folgenden Schritte ausgeführt:
Einrichten einer Berechtigungstabelle (AT) in dem jedem Adreßraum zugeordneten Hauptspeicher, wobei jede AT einen AT-Eintrag für jeden verwendeten EAX enthält; und
Stellen eines S-Bits in jeden AT-Eintrag, wobei das S-Bit einen ersten Wert hat, wenn der EAX dieses AT-Eintrags zum Zugriff auf den dieser AT zugeordneten Adreßraum berechtigt ist, und einen zweiten Wert hat, wenn der EAX dieses AT-Eintrags nicht zum Zugriff auf den dieser AT zugeordneten Adreßraum berechtigt ist; und
wobei der Berechtigungsschritt desweiteren das Gestatten des Zugriffs auf den bezeichneten Adreßraum durch das vom zentralen Prozessor ausgeführte Programm umfaßt, wenn das S-Bit für den AT-Eintrag der AT, die dem bezeichneten Adreßraum für den im Steuerregister gespeicherten EAX-Wert zugeordnet ist, den ersten Wert hat.
16. Programmberechtigungsverfahren nach Anspruch 15, das desweiteren die folgenden Schritte umfaßt:
Ändern des im Steuerregister gespeicherten EAX-Wertes; und
Wiederholen der Schritte von Anspruch 14, wodurch der Zugriff durch das vom Betriebssystem ausgeführte Programm unter dem geänderten EAX-Wert berechtigt wird.
17. Programmberechtigungsmechanismus nach Anspruch 16, der desweiteren folgendes umfaßt:
vor dem Schritt der Änderung des EAX-Wertes den Schritt der Speicherung des im Steuerregister gespeicherten EAX-Wertes im Hauptspeicher; und
nach dem letzten Berechtigungsschritt den Schritt der erneuten Speicherung des EAX-Wertes aus dem Hauptspeicher in das Steuerregister.
18. Programmberechtigungsverfahren nach Anspruch 17, das folgendes umfaßt:
vor dem Berechtigungsschritt werden desweiteren die folgenden Schritte ausgeführt:
Einrichten eines ASN-Zweittabelleneintrags (ASTE), der jedem Adreßraum zugeordnet wird, im Hauptspeicher;
Stellen einer ASTE-Adresse in jeden Zugriffslisteneintrag;
Zuordnen eines ASTE-Folgennummer- (ASTESN-) Wertes in jedem ASTE.
19. Programmberechtigungsverfahren nach Anspruch 14, das folgendes umfaßt:
vor dem Berechtigungsschritt werden desweiteren die folgenden Schritte ausgeführt:
Einrichten eines ASN-Zweittabelleneintrags (ASTE), der jedem Adreßraum zugeordnet wird, im Hauptspeicher;
Stellen einer ASTE-Adresse in jeden Zugriffslisteneintrag;
Zuordnen eines ASTE-Folgennummer-(ASTESN-)Wertes in jedem ASTE, und
Stellen eines Zugriffslisten-ASTESN-Wertes in jeden Zugriffslisteneintrag, wobei der Zugriffslisten-ASTESN-Wert der gleiche wie der ASTESN-Wert des jeweiligen ASTE ist, und
wobei der Berechtigungsschritt desweiteren das Sperren der Berechtigung zum Zugriff auf einen Adreßraum umfaßt, wenn der Zugriffslisten-ASTESN-Wert des bezeichneten Zugriffslisteneintrags nicht mit dem ASTESN-Wert des jeweiligen ASTE übereinstimmt.
DE3854616T 1988-02-10 1988-12-12 Nichthierarchischer Programmberechtigungsmechanismus. Expired - Fee Related DE3854616T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/154,740 US5023773A (en) 1988-02-10 1988-02-10 Authorization for selective program access to data in multiple address spaces

Publications (2)

Publication Number Publication Date
DE3854616D1 DE3854616D1 (de) 1995-11-30
DE3854616T2 true DE3854616T2 (de) 1996-06-13

Family

ID=22552578

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3854616T Expired - Fee Related DE3854616T2 (de) 1988-02-10 1988-12-12 Nichthierarchischer Programmberechtigungsmechanismus.

Country Status (6)

Country Link
US (1) US5023773A (de)
EP (1) EP0327707B1 (de)
JP (1) JPH0661069B2 (de)
BR (1) BR8900568A (de)
CA (1) CA1313424C (de)
DE (1) DE3854616T2 (de)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210874A (en) * 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
US5247647A (en) * 1988-07-28 1993-09-21 International Business Machines Corp. Detection of deletion of stored data by concurrently executing processes in a multiprocessing data processing system
US5134696A (en) * 1988-07-28 1992-07-28 International Business Machines Corp. Virtual lookaside facility
DE3901457A1 (de) * 1989-01-19 1990-08-02 Strahlen Umweltforsch Gmbh Verfahren zur adressbereichsueberwachung bei datenverarbeitungsgeraeten in echtzeit
US5201052A (en) * 1989-02-10 1993-04-06 Fujitsu Limited System for transferring first and second ring information from program status word register and store buffer
US5201043A (en) * 1989-04-05 1993-04-06 Intel Corporation System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking
US5189733A (en) * 1989-08-22 1993-02-23 Borland International, Inc. Application program memory management system
JP2825550B2 (ja) * 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
JPH0679296B2 (ja) * 1989-09-22 1994-10-05 株式会社日立製作所 多重仮想アドレス空間アクセス方法およびデータ処理装置
US5237668A (en) * 1989-10-20 1993-08-17 International Business Machines Corporation Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media
EP0473802B1 (de) * 1990-09-03 1995-11-08 International Business Machines Corporation Rechner mit erweitertem virtuellem Speicher
EP0481735A3 (en) * 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
US5237684A (en) * 1991-08-12 1993-08-17 International Business Machines Corporation Customized and versatile event monitor within event management services of a computer system
US5305454A (en) * 1991-08-12 1994-04-19 International Business Machines Corporation Notification of event handlers in broadcast or propagation mode by event management services in a computer system
US5355484A (en) * 1991-08-12 1994-10-11 International Business Machines Corporation Dynamically established event monitors in event management services of a computer system
US5625821A (en) * 1991-08-12 1997-04-29 International Business Machines Corporation Asynchronous or synchronous operation of event signaller by event management services in a computer system
US5423013A (en) * 1991-09-04 1995-06-06 International Business Machines Corporation System for addressing a very large memory with real or virtual addresses using address mode registers
US5212793A (en) * 1991-09-04 1993-05-18 International Business Machines Corp. Generic initiators
US5390312A (en) * 1991-09-24 1995-02-14 International Business Machines Corporation Access look-aside facility
GB2260004B (en) * 1991-09-30 1995-02-08 Apple Computer Memory management unit for a computer system
EP0543032A1 (de) * 1991-11-16 1993-05-26 International Business Machines Corporation Erweitertes Speicheradressierungsschema
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5381537A (en) * 1991-12-06 1995-01-10 International Business Machines Corporation Large logical addressing method and means
US5574936A (en) * 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5426748A (en) * 1992-01-03 1995-06-20 International Business Machines Corporation Guest/host extended addressing method and means with contiguous access list entries
US5493661A (en) * 1992-03-06 1996-02-20 International Business Machines Corporation Method and system for providing a program call to a dispatchable unit's base space
JP2519390B2 (ja) * 1992-09-11 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ通信方法及び装置
US5479631A (en) * 1992-11-19 1995-12-26 International Business Machines Corporation System for designating real main storage addresses in instructions while dynamic address translation is on
US5450593A (en) * 1992-12-18 1995-09-12 International Business Machines Corp. Method and system for controlling access to objects in a data processing system based on temporal constraints
JPH0713869A (ja) * 1993-06-28 1995-01-17 Fujitsu Ltd 動的アドレス変換機能を持つデータ処理システム
US5542045A (en) * 1993-10-15 1996-07-30 Software Security, Inc. Method for interposing a security function in a computer program
US5548746A (en) * 1993-11-12 1996-08-20 International Business Machines Corporation Non-contiguous mapping of I/O addresses to use page protection of a process
US5596739A (en) * 1994-02-08 1997-01-21 Meridian Semiconductor, Inc. Method and apparatus for detecting memory segment violations in a microprocessor-based system
US5611043A (en) * 1994-03-18 1997-03-11 Borland International, Inc. Debugger system and method for controlling child processes
JP2757777B2 (ja) * 1994-05-26 1998-05-25 住友金属工業株式会社 メモリの不正アクセス検出方法及びシステム
US5713035A (en) * 1995-03-31 1998-01-27 International Business Machines Corporation Linking program access register number with millicode operand access
US5649140A (en) * 1995-03-31 1997-07-15 International Business Machines Corporation System for use in translating virtual addresses into absolute addresses
US5745676A (en) * 1995-12-04 1998-04-28 International Business Machines Corporation Authority reduction and restoration method providing system integrity for subspace groups and single address spaces during program linkage
US6105132A (en) * 1997-02-20 2000-08-15 Novell, Inc. Computer network graded authentication system and method
US5937159A (en) * 1997-03-28 1999-08-10 Data General Corporation Secure computer system
US5966543A (en) * 1997-06-26 1999-10-12 International Business Machines Corporation Method of using collaborative spinlocks to provide exclusive access to a resource in a multiprocessor computer system
US6334146B1 (en) 1998-06-05 2001-12-25 I2 Technologies Us, Inc. System and method for remotely accessing data
US6119149A (en) 1998-06-05 2000-09-12 I2 Technologies, Inc. System and process allowing collaboration within and between enterprises for optimal decision making
US6289385B1 (en) * 1998-06-05 2001-09-11 I2 Technologies, Inc. Computer workspace providing event management based on a permissibility framework
JP2000047875A (ja) * 1998-06-30 2000-02-18 Sun Microsyst Inc クラスロ―ダ
WO2000011551A1 (de) * 1998-08-19 2000-03-02 Siemens Aktiengesellschaft Verfahren, anordnung sowie ein satz mehrerer anordnungen zum schutz mehrerer programme und/oder mehrerer dateien vor einem unbefugten zugriff durch einen prozess
US6735666B1 (en) 2000-02-22 2004-05-11 Wind River Systems, Inc. Method of providing direct user task access to operating system data structures
US6976255B1 (en) 2000-03-28 2005-12-13 International Business Machines Corporation Storage isolation employing secured subspace facility
US8661539B2 (en) * 2000-07-10 2014-02-25 Oracle International Corporation Intrusion threat detection
US9038170B2 (en) * 2000-07-10 2015-05-19 Oracle International Corporation Logging access system events
US8204999B2 (en) * 2000-07-10 2012-06-19 Oracle International Corporation Query string processing
US7185364B2 (en) * 2001-03-21 2007-02-27 Oracle International Corporation Access system interface
US7278030B1 (en) 2003-03-03 2007-10-02 Vmware, Inc. Virtualization system for computers having multiple protection mechanisms
JP4380198B2 (ja) * 2003-03-31 2009-12-09 株式会社日立製作所 ストレージ装置でアクセス制御を行う計算機システム
CN100338571C (zh) * 2003-09-27 2007-09-19 英特尔公司 处理器的扩展寄存器空间装置和方法
US7594094B2 (en) 2006-05-19 2009-09-22 International Business Machines Corporation Move data facility with optional specifications
US7581074B2 (en) * 2006-05-19 2009-08-25 International Business Machines Corporation Facilitating use of storage access keys to access storage
US9495561B2 (en) * 2008-01-08 2016-11-15 International Business Machines Corporation Target of opportunity recognition during an encryption related process
US9349410B2 (en) * 2008-01-08 2016-05-24 International Business Machines Corporation Automated data storage library with target of opportunity recognition
US8108065B2 (en) * 2008-01-08 2012-01-31 International Business Machines Corporation Target of opportunity in an automated data storage library
US8682470B2 (en) 2008-01-08 2014-03-25 International Business Machines Corporation Data storage drive with target of opportunity recognition
US7530106B1 (en) 2008-07-02 2009-05-05 Kaspersky Lab, Zao System and method for security rating of computer processes
US8918885B2 (en) * 2012-02-09 2014-12-23 International Business Machines Corporation Automatic discovery of system integrity exposures in system code
US10572691B2 (en) 2015-04-28 2020-02-25 Microsoft Technology Licensing, Llc Operating system privacy mode
US11176056B2 (en) 2019-06-28 2021-11-16 International Business Machines Corporation Private space control within a common address space
US10970224B2 (en) 2019-06-28 2021-04-06 International Business Machines Corporation Operational context subspaces
US11074195B2 (en) 2019-06-28 2021-07-27 International Business Machines Corporation Access to dynamic address translation across multiple spaces for operational context subspaces
US10891238B1 (en) 2019-06-28 2021-01-12 International Business Machines Corporation Dynamically joining and splitting dynamic address translation (DAT) tables based on operational context

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1329721A (en) * 1970-05-26 1973-09-12 Plessey Co Ltd Data processing devices
FR2253425A5 (de) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4044334A (en) * 1975-06-19 1977-08-23 Honeywell Information Systems, Inc. Database instruction unload
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
GB1585960A (en) * 1976-07-30 1981-03-11 Plessey Co Ltd Information flow security mechanisms for data processing systems
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4096573A (en) * 1977-04-25 1978-06-20 International Business Machines Corporation DLAT Synonym control means for common portions of all address spaces
JPS5474651A (en) * 1977-11-28 1979-06-14 Toshiba Corp Stack control system
JPS54161846A (en) * 1978-06-13 1979-12-21 Hitachi Ltd Information processor
US4355355A (en) * 1980-03-19 1982-10-19 International Business Machines Corp. Address generating mechanism for multiple virtual spaces
JPS56140452A (en) * 1980-04-01 1981-11-02 Hitachi Ltd Memory protection system
US4366536A (en) * 1980-04-15 1982-12-28 National Semiconductor Corporation Modular digital computer system for storing and selecting data processing procedures and data
US4366537A (en) * 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4430705A (en) * 1980-05-23 1984-02-07 International Business Machines Corp. Authorization mechanism for establishing addressability to information in another address space
US4500952A (en) * 1980-05-23 1985-02-19 International Business Machines Corporation Mechanism for control of address translation by a program using a plurality of translation tables
EP0040703B1 (de) * 1980-05-23 1986-07-16 International Business Machines Corporation Verbesserung eines Datenverarbeitungsapparates vom Typ System/370
US4521846A (en) * 1981-02-20 1985-06-04 International Business Machines Corporation Mechanism for accessing multiple virtual address spaces
US4455602A (en) * 1981-05-22 1984-06-19 Data General Corporation Digital data processing system having an I/O means using unique address providing and access priority control techniques
US4454580A (en) * 1981-09-16 1984-06-12 International Business Machines Corporation Program call method and call instruction execution apparatus
JPS5853079A (ja) * 1981-09-25 1983-03-29 Fujitsu Ltd Stoスタツク制御方式
US4439830A (en) * 1981-11-09 1984-03-27 Control Data Corporation Computer system key and lock protection mechanism
US4731734A (en) * 1983-10-17 1988-03-15 Data General Corporation Digital computer system incorporating object-based addressing and access control and tables defining derivation of addresses of data from operands in instructions
US4677546A (en) * 1984-08-17 1987-06-30 Signetics Guarded regions for controlling memory access
IN165278B (de) * 1984-09-21 1989-09-09 Digital Equipment Corp
JPS61141054A (ja) * 1984-12-14 1986-06-28 Nec Corp 情報処理装置
US4787031A (en) * 1985-01-04 1988-11-22 Digital Equipment Corporation Computer with virtual machine mode and multiple protection rings
US4763250A (en) * 1985-04-01 1988-08-09 Motorola, Inc. Paged memory management unit having variable number of translation table levels
US4866599A (en) * 1985-06-27 1989-09-12 Bull Hn Information Systems Inc. Call instruction, return instruction and trap procedure for ring crossing architecture
US4809160A (en) * 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
US4763244A (en) * 1986-01-15 1988-08-09 Motorola, Inc. Paged memory management unit capable of selectively supporting multiple address spaces
JPS6376034A (ja) * 1986-09-19 1988-04-06 Hitachi Ltd 多重アドレス空間制御方式
JPS63221440A (ja) * 1987-03-11 1988-09-14 Nec Corp アドレス変換装置

Also Published As

Publication number Publication date
CA1313424C (en) 1993-02-02
DE3854616D1 (de) 1995-11-30
JPH01228039A (ja) 1989-09-12
EP0327707A2 (de) 1989-08-16
BR8900568A (pt) 1989-10-10
JPH0661069B2 (ja) 1994-08-10
EP0327707B1 (de) 1995-10-25
US5023773A (en) 1991-06-11
EP0327707A3 (de) 1991-03-13

Similar Documents

Publication Publication Date Title
DE3854616T2 (de) Nichthierarchischer Programmberechtigungsmechanismus.
DE68924720T2 (de) Verfahren und Vorrichtung für Zugriffsrechtensteuerung.
DE68923627T2 (de) Steuerungsverfahren und -vorrichtung für Nullursprungsdatenräume.
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE3689569T2 (de) Verfahren zur Systemdateiensicherung und Datenverarbeitungseinheit zu dessen Durchführung.
DE4040963C2 (de) Datenverarbeitungssystem
DE3587694T2 (de) Speicherzugriffssteuergerät zur Realisierung von geschützten Gebieten in einem Speicher, und mit solchem Speicherzugriffssteuergerät ausgerüsteter Speicher.
DE69818135T2 (de) Verfahren zum Zugriff auf Datenbankinformation
DE3280446T2 (de) Digitales Datenverarbeitungssystem.
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
DE69031191T2 (de) System zur Steuerung von Zugriffsprivilegien
DE69029504T2 (de) Verfahren zum Übersetzen und Kopieren von Adressen
US5220669A (en) Linkage mechanism for program isolation
DE4040994A1 (de) Datenverarbeitungssystem und -verfahren
DE69028269T2 (de) Virtuelles Adressierungsverfahren zum Betrieb eines Speichers in einer Datenverarbeitungsanlage und Einrichtung zur Ausführung besagten Verfahrens
EP0569605A1 (de) Verfahren zur Zugriffsverwaltung und -steuerung mehrerer Rechner auf gemeinsame Daten
DE2725718A1 (de) Verarbeitungssystem mit mehreren virtuellen adressenraeumen
DE2431520A1 (de) Datenverarbeitungsanlage mit virtuellem kanalprogramm
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE3131341A1 (de) "pufferspeicherorganisation"
DE2629266A1 (de) Ein/ausgabe-system
DE2837872A1 (de) Digitalrechner mit ueberlappender betriebsweise unter verwendung einer bedingten steuerung zur minimierung von zeitverlusten
DE3131204A1 (de) Adressumrechnungs- und generatoranordnung
DE102004063573B4 (de) Bereitstellen eines flexiblen Schutzmodells in einem Computersystem durch Trennen eines Schutzes aus einer Computerprivilegebene
DE2626703A1 (de) Intern programmierbares datenverarbeitungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee