[go: up one dir, main page]

DE3750740T2 - Verfahren zur Steuerung von Mehradressräumen. - Google Patents

Verfahren zur Steuerung von Mehradressräumen.

Info

Publication number
DE3750740T2
DE3750740T2 DE3750740T DE3750740T DE3750740T2 DE 3750740 T2 DE3750740 T2 DE 3750740T2 DE 3750740 T DE3750740 T DE 3750740T DE 3750740 T DE3750740 T DE 3750740T DE 3750740 T2 DE3750740 T2 DE 3750740T2
Authority
DE
Germany
Prior art keywords
key
access
address
main memory
register
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
DE3750740T
Other languages
English (en)
Other versions
DE3750740D1 (de
Inventor
Mari Ara
Kaname Imai
Hideo Sawamoto
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of DE3750740D1 publication Critical patent/DE3750740D1/de
Publication of DE3750740T2 publication Critical patent/DE3750740T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means

Landscapes

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

Description

  • Die vorliegende Erfindung bezieht sich auf die Steuerung eines Mehrfach-Adreßraums und insbesondere auf ein Steuerungsverfahren für einen Mehrfach-Adreßraum, das für die Datenübertragung zwischen verschiedenen Adreßräumen geeignet ist.
  • Es sind mehrere Datenübertragungsbefehle zwischen zwei virtuellen Adreßräumen (nachfolgend erster und zweiter Adreßraum genannt), die durch unterschiedliche Adreßübersetzungstabellen erzeugt werden, bekannt, beispielsweise MVCP (Move to Primary)- oder MVCS (Move to Secondary)-Befehle, wie in "IBM System/370 Principles of Operation GA22-7000-8" beschrieben. Nachfolgend wird ein MVCS-Befehl beschrieben.
  • Mit einem MVCS-Befehl werden Daten im ersten Adreßraum in den zweiten Adreßraum übertragen. Zum Zugriff auf den ersten Raum wird eine Speicherschutzüberprüfung ausgeführt, die einen Programmstatuswort (PSW) -Schlüssel verwendet. Zum Zugriff auf den zweiten Raum wird eine von einem Schlüssel gesteuerte Schutzüberwachung ausgeführt, die einen Schutzschlüssel für den Zugriff auf den zweiten Raum (nachfolgend Schlüssel für den zweiten Raum genannt) in einem allgemeinen Register (GR), das durch einen Befehlsoperanden bestimmt wird, verwendet.
  • In herkömmlichen Systemen wird ein MVCS-Befehl wie folgt abgearbeitet:
  • In einer ersten Verfahrensweise in herkömmlichen Systemen wird beim Schritt des Zugriffs auf den zweiten Raum die Adreßübersetzung durch Änderung des Inhalts des Registers für die Anfangsadresse (nachfolgend Segmenttabellenanfang (STO) genannt) einer Adreßübersetzungstabelle durchgeführt.
  • Nachdem die reale Adresse für die zweite Operandenadresse des ersten Raums ermittelt wurde, wird eine reale Adresse für die erste Operandenadresse des zweiten Raums unter Verwendung des oben beschriebenen Schritts des Zugriffs auf den zweiten Raum ermittelt. Unter Verwendung der ermittelten realen Adresse wird eine Datenübertragung vom ersten zum zweiten Raum durchgeführt.
  • Wenn jedoch eine Operandenadresse mehrere Seiten bezeichnet, ist es notwendig, die Operandenadresse für jede Seite in eine reale Adresse zu übersetzen und für jede Seite eine Zugriffsausnahme daraufhin zuüberprüfen, ob sie vorliegt oder nicht. Die Zugriffsausnahme umfaßt eine Ausnahme der Übersetzungsfestlegung, eine Ausnahme in der Segmentübersetzung, eine Ausnahme in der Seitenübersetzung, eine Ausnahme in der Adressierung, eine Ausnahme durch Schutz der Steuerung eines Schlüssels, eine Seitenschutz-Ausnahme, eine Ausnahme des Schutzes niedriger Adressen und nicht eingerichteten Speicher. Außerdem ist es notwendig, eine logische Adresse zu speichern, um eine Zugriffsunterbrechung fest zuhalten, wenn eine Zugriffsausnahme erfaßt wird oder wenn in einem Programmereignis ein Interrupt auftritt, so daß sich komplizierte Verarbeitungen ergeben.
  • Gemäß einer zweiten Verfahrensweise in herkömmlichen Systemen werden zweite Operandendaten im ersten Adreßraum sequentiell gelesen und zeitweise in einem Hardware-Arbeitsbereich gespeichert. Der für die erste Verfahrensweise beschriebene Schritt des Zugriffs auf den zweiten Raum wird ausgeführt, danach werden die Daten im Arbeitsbereich sequentiell in den zweiten Raum geschrieben. Hier wird jedoch ein Arbeitsbereich benötigt, der genauso groß wie die Länge der zu übertragenden Daten ist. Außerdem wird der Übertragungsvorgang von Operandendaten nicht durch Wiederholung eines Lesevorgangs von zweiten Operanden und eines Schreibvorgangs von ersten Operanden ausgeführt, so daß sich in einigen Fällen eine Verlangsamung der Verarbeitungsgeschwindigkeit ergibt.
  • Sowohl bei der ersten als auch bei der zweiten Verfahrensweise wird ein PSW-Schlüssel in einen Schlüssel für den zweiten Raum geändert, um zur Überprüfung eines Speicherschutzes auf den zweiten Raum zuzugreifen. Wenn außerdem während der Datenübertragung ein Interrupt auftritt, ist es notwendig, den Wert der obersten Adresse der Adreßübersetzungstabelle auf einen Anfangswert zu setzen. Insbesondere bei der Abarbeitung von MVCP- oder MVCK-Befehlen ist es dann, wenn in beiden Verfahrensweisen ein Interrupt auftritt, während der PSW-Schlüssel in einen Schlüssel für den zweiten Raum geändert wurde, notwendig, das Programmstatuswort augenblicklich auf einen Anfangswert zu setzen. Außerdem muß ein Programmstatuswort jedesmal dann geändert werden, wenn auf einen anderen Adreßraum zugegriffen wird, was zu komplizierten Verarbeitungen und niedriger Verarbeitungsgeschwindigkeit führt.
  • Derartige Verfahrensweisen sind beispielsweise in JP-A-57 8860 offenbart.
  • US-A-4 521 846 offenbart ein Verarbeitungssystem und ein Verarbeitungsverfahren, die zwei verschiedene Schlüssel verwenden, die in zwei getrennten, wählbaren Registern gespeichert sind, um Daten zwischen zwei Adreßräumen zuübertragen, die durch zwei getrennte Adreßübersetzungstabellen definiert sind, deren Ort durch jeweilige STO-Register definiert ist. Die Schlüssel können auch O-Schlüssel sein, bei denen eine Schlüsselübereinstimmung nicht erforderlich ist.
  • Die obigen bekannten Merkmale finden sich im ersten Teil des Anspruches 1.
  • Die EP-A-0 040 703 offenbart das Ausführen von MVCP-, MVCS- und MVCK-Befehlen.
  • Bei MVCP wird vom sekundären Raum in den primären Raum übertragen, wobei die erste Operandenadresse unter Verwendung einer Primärsegmenttabelle und die zweite Operandenadresse unter Verwendung einer Sekundärsegmenttabelle übersetzt wird.
  • Bei MVCS wird vom primären Raum in den sekundären Raum übertragen, wobei die erste Operandenadresse unter Verwendung einer Sekundärsegmenttabelle und die zweite Operandenadresse unter Verwendung einer Primärsegmenttabelle übersetzt wird.
  • Bei MVCK-Befehlen wird der erste Operand durch den zweiten Operanden ersetzt. Die Lesezugriffe auf den Ort des zweiten Operanden werden durchgeführt, indem der in einem dritten Operanden bestimmte Speicherschutzschlüssel verwendet wird, und der Speicherzugriff auf die Orte des ersten Operanden wird unter Verwendung des PSW-Schlüssels durchgeführt.
  • Zusammenfassung der Erfindung
  • Aufgabe der vorliegenden Erfindung ist es, ein Steuerungsverfahren für einen Mehrfach-Adreßraum zur Verwendung bei der Abarbeitung einer Datenübertragung zwischen verschiedenen Adreßräumen anzugeben, das eine Verringerung der Anzahl der Schritte von Schutzschlüsselverarbeitungen erlaubt, um eine Datenübertragung mit hoher Geschwindigkeit zu ermöglichen.
  • Eine andere Aufgabe der vorliegenden Erfindung ist es, eine Steuerung für einen Mehrfach-Adreßraum anzugeben, bei der die Notwendigkeit des Änderns eines Programmstatuswortschlüssels beim Zugriff auf unterschiedliche Adreßräume entfällt.
  • Erfindungsgemäß werden diese Aufgaben mit den Merkmalen im Anspruch 1 gelöst.
  • Im Hinblick auf die Wirkungsweise der Erfindung werden STOs für den ersten und den zweiten Raum jeweils in das PSW- Schlüssel-Register und das Arbeitszugriff-Schlüssel-Register gesetzt. Mikroprogramme bzw. geeignete Hardware sind so ausgelegt, daß dann, wenn zur Änderung eines Raums jeweils auf den ersten und den zweiten Raum zugegriffen wird, das PSW- Schlüssel-Register und das Arbeitszugriff-Schlüssel-Register als STOs ausgewählt werden.
  • In einem unabhängig von einem PSW-Schlüssel-Register vorgesehenen Arbeitszugriff-Schlüssel-Register kann ein beliebiger Zugriffsschlüsselwert wie gewünscht gesetzt werden. Die Auswahl aus PSW-Schlüssel und Arbeitszugriff-Schlüssel kann zur Überprüfung eines Speicherschutzes durch einen Selektor vorgenommen werden.
  • Somit ist es unabhängig davon, ob ein Zugriff auf den ersten oder den zweiten Raum beabsichtigt wird, nicht notwendig, das STO-Register und den PSW-Schlüssel zu ändern.
  • Mit den Ausführungsformen dieser Erfindung ergeben sich die folgenden Vorteile:
  • Auf einen Hauptspeicher kann zugegriffen werden, wobei gleichzeitig ein Hauptspeicherschutz gewährleistet ist und ein PSW-Schlüssel der CPU nicht geändert werden muß. Komplizierte Vorgänge zur Änderung des PSW können somit vermieden werden.
  • Bei der Übertragung von Daten zwischen Hauptspeichern, die unterschiedliche Hauptspeicherschlüssel haben, kann eine Schlüsselschutzausnahme unterdrückt werden, indem ein Arbeitszugriff-Schlüssel-Auswahlmodus gewählt wird und der Arbeitszugriff-Schlüssel auf "0" gesetzt wird, um dadurch den Zugriff mittels des gleichen Zugriffsschlüssels zu ermöglichen, so daß sich eine schnelle Datenübertragung ergibt.
  • Da ein Adreßraum leicht geändert werden kann, ist es nicht notwendig, ein STO zu ändern, so daß sich zwischen Adreßräumen eine schnelle Datenübertragung ergibt.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 ist ein Blockdiagramm, das eine Ausführungsform eines erfindungsgemäßen Datenverarbeitungssystems zeigt;
  • Fig. 2 zeigt, wo die Schlüssel zur Durchführung des Hauptspeicherschutzes lokalisiert sind;
  • Fig. 3 ist ein Flußdiagramm, das die Abarbeitung eines Datenübertragungsbefehls zwischen verschiedenen Adreßräumen zeigt;
  • Fig. 4 ist ein Flußdiagramm, das eine andere erfindungsgemäße Ausführungsform der Abarbeitung für einen MVCP-Befehl zeigt;
  • Fig. 5 ist ein Flußdiagramm, das eine andere Ausführungsform der Abarbeitung für einen MVCK-Befehl zeigt; und
  • Fig. 6A und 6B sind Diagramme zur Erläuterung der Unterschiede zwischen der vorliegenden Erfindung und herkömmlichen Systemen.
  • Beschreibung der bevorzugten Ausführungsformen
  • Ausführungsformen der vorliegenden Erfindung werden genau Bezug nehmend auf die beiliegenden Zeichnungen beschrieben.
  • Fig. 1 ist ein Blockdiagramm, das eine Ausführungsform eines erfindungsgemäßen Datenverarbeitungssystems zeigt.
  • In dieser Figur weist ein einzelnes, in einer zentralen Verarbeitungseinheit (central processing unit) vorhandenes Programmstatuswort (PSW) einen PSW-Schlüssel auf, der in einem PSW-Schlüssel-Register 1 (PSW-Schlüssel wird "Pk" genannt) gespeichert ist. Unabhängig vom PSW-Schlüssel-Register 1 ist ein Arbeitszugriff-Schlüssel-Register (Arbeitszugriff-Schlüssel wird "Wk" genannt) vorgesehen. Ein Schlüsselselektor 3 wählt unter Steuerung eines Mikroprogramms entweder das PSW-Schlüssel-Register 1 oder das Arbeitszugriff-Schlüssel-Register 2 aus. Eine Beurteilungsschaltung 4 beurteilt, ob ein Schlüssel aus dem durch den Schlüsselselektor 3 ausgewählten Schlüsselregister "0" ist oder nicht. Außerdem ist ein Register 5 für die Anfangsadresse einer ersten Adreßübersetzungstabelle ("PSTO" genannt) und ein Register 6 für die Anfangsadresse einer zweiten Adreßübersetzungstabelle ("SSTO" genannt) vorgesehen. Ein STO-Selektor 7 wählt entweder das PSTO 5 oder das SSTO 6. Im Register 8 wird eine logische Adresse eines Hauptspeichers 15, auf den zugegriffen werden soll, gespeichert. Eine Adreßübersetzungsschaltung 9 übersetzt eine logische Adresse im Register 8 für logische Adressen in eine reale Adresse. Eine Realadressen-Ausgabeschaltung 10 steuert die Ausgabe der Adreßübersetzungsschaltung 9, um eine reale Adresse zu liefern. Entsprechend einer von der Realadressen-Ausgangsschaltung 10 ausgegebenen Adresse liest eine Leseschaltung 11 einen Speicherschlüssel Mk. Eine Komparatorschaltung 12 vergleicht einen durch die Leseschaltung 11 gelesenen Hauptspeicherschlüssel Mk mit einem ausgewählten Schlüssel K (ungleich Null). Ein Signalgenerator 13 für die Zugriffsfreigabe erzeugt ein Signal für die Zugriffsfreigabe. Auf den Empfang eines vom Generator 13 für ein Zugriffsfreigabesignal erzeugten Zugriffsfreigabesignals greift eine Hauptspeicherzugriffsschaltung 14 auf der Grundlage von von der Realadressen-Ausgabeschaltung 10 kommenden Adreßdaten auf einen verschiedene Daten speichernden Hauptspeicher 15 zu. Eine Fehlermitteilungsschaltung 16 sendet an eine (nicht dargestellte) hierarchische Einheit ein Programmfehlersignal, wenn der Komparator 12 ein nicht übereinstimmendes Ergebnis ausgibt.
  • Fig. 2 ist ein schematisches Diagramm, das zeigt, wo Schlüssel zur Steuerung des Hauptspeicherschutzes lokalisiert sind, wobei identische Ziffern zu denen in Fig. 1 ähnliche Elemente und Teile darstellen.
  • Fig. 2 zeigt ein Programmstatuswort 17, einen durch PSTO 5 erzeugten ersten Adreßraum 19 (PS), einen Hauptspeicherschlüssel 20 (PSk) entsprechend dem ersten Adreßraum 19, einen durch SSTO 6 erzeugten zweiten Adreßraum 22 (SS), einen dem SSTO 6 entsprechenden Hauptspeicherschlüssel 23 (SSk) und ein Befehlsformat 24 (nachfolgend "Befehl" genannt). Alle Daten sind in einem Register oder einem Speicher gespeichert.
  • In der in Fig. 2 gezeigten Ausführungsform läßt sich ein Datenübertragungsbefehl 24 wie folgt beschreiben:
  • "Unter Verwendung eines PSW-Schlüssels Pk wird ein zweiter Operand im ersten Adreßraum 19 gelesen oder geholt, um danach einen durch den Befehl gegebenen Schlüsselwert Xk als einen Zugriffsschlüssel K im vom ersten Adreßraum unterschiedlichen zweiten Adreßraum 22 zu schreiben, also zu speichern. Die hänge sowohl des ersten als auch des zweiten Operanden beträgt L Bytes. Wenn der Zugriffschlüssel K und ein Hauptspeicherschlüssel Mk nicht miteinander übereinstimmen und der Zugriffschlüssel K nicht "0" ist, wird ein Programmfehler erfaßt und ein Datenübertragungsbefehl verhindert."
  • In dieser Ausführungsform wird angenommen, daß die Anfangsadresse einer Adreßübersetzungstabelle, die zur Erzeugung eines ersten Adreßraums 19 (PS) verwendet wird, sowie die für einen zweiten Adreßraum 22 (SS) vorweg jeweils in PSTO 5 und SSTO 6 gespeichert werden.
  • Fig. 3 ist ein Flußdiagramm, das die durch Mikroprogramme o. ä. vorgenommenen Verarbeitungen eines Datenübertragungsbefehls zwischen verschiedenen Adreßräumen zeigt. Der Datenübertragungsvorgang zwischen verschiedenen Adreßräumen wird anhand des in Fig. 2 gezeigten Befehls 24 beispielhaft Bezug nehmend auf Fig. 1 und die in Fig. 3 gezeigte Vorgehensweise beschrieben.
  • (i) Zunächst wird ein Speicherversuch vorbereitet, um zu beurteilen, ob beim Speichern eines ersten Operanden ein Programmfehler auftreten wird. Ein Schlüsselwert Xk, der vom Befehls 24 auf seiten der CPU bereitgestellt wird, wird in das Arbeitszugriff-Schlüssel-Register 2 gesetzt, und ein Ausgangsauswahlbefehl für das Arbeitszugriff-Schlüssel-Register 2 wird an den Schlüsselselektor 3 geliefert. Im weiteren wird ein den Schlüsselwert Xk verwendender, vom Schlüsselselektor 3 ausgewählter Schlüssel als "K" bezeichnet. Eine erste aus dem Befehl 24 erzeugte Operandenadresse wird in das Register 8 für logische Adressen als eine Adresse, auf die zuzugreifen ist, gesetzt. Der erste Operand liegt im zweiten Adreßraum 22 (SS), der durch eine Adreßübersetzung erzeugt wird, die SSTO 6 als Anfangsadresse für die Adreßübersetzungstabelle (nachfolgend "STO" genannt) verwendet, dementsprechend wird der STO Selektor 7 zur Auswahl des SSTO 6 als STO (Schritt 25) veranlaßt.
  • (ii) Ein Speicherversuch für den ersten Operanden wird ausgeführt. Die erste Operandenadresse (die logische Adresse), die im Register 8 für die logische Zugriffsadresse gesetzt ist, wird durch die Adreßübersetzungsschaltung 9 in eine reale Adresse 10 übersetzt. Der dem zweiten Adreßraum 22 zugeordnete entsprechende Speicherschlüssel oder Raum 23 (SSk) wird durch die Leseschaltung gelesen. Zwischenzeitlich beurteilt die Beurteilungsschaltung 4, ob der durch den Schlüsselselektor 3 ausgewählte Schlüssel K (= Xk) "0" ist oder nicht. Ergibt die Beurteilung K=0, wird der Hauptspeicherschlüssel Mk also SSk, nicht mit dem Zugriffsschlüssel K verglichen, um den Zugriff auf den Hauptspeicher 15 zu erlauben. Demgemäß stellt K=0 einen sog. "Universalschlüssel" dar, der einen beliebigen Zugriff auf den Hauptspeicher 15 ohne weitere sonstige Voraussetzungen erlaubt. Wenn der durch die Auswahlschaltung 3 ausgewählte Zugriffsschlüssel K nicht "0" ist, vergleicht die Vergleichsschaltung 12 den Zugriffsschlüssel K mit dem durch die Leseschaltung 11 gelesenen Speicherschlüssel Mk. Wenn das Vergleichsergebnis des Komparators 12 K=Mk also Xk=SSk, ergibt, wird ein Zugriffsfreigabesignal erzeugt, das über das Zugriffsfreigabesignalgatter 13 und die Hauptspeicherzugriffsschaltung 14 an den Hauptspeicher 15 geleitet wird, um auf diesen zuzugreifen. Da gerade ein Speicherversuch vorgenommen wird, wird die Zugriffsschaltung 14 durch Mikroprogramme so gesteuert, daß das Schreiben in den Hauptspeicher 15 verhindert wird. Wenn K nicht mit Mk übereinstimmt, also Xk nicht gleich SSk ist, erzeugt die Vergleichsschaltung 12 ein Programmfehlersignal und schickt es an die Fehlermitteilungsschaltung 16 (Schritte 26 und 26A). In diesem Fall wird die Verarbeitung als abnormaler Zustand beendet.
  • (iii) Zur Vorbereitung eines Holeversuchs wird der vom Befehl 24 gelieferte Zugriffsschlüsselwert Xk in das Wk-Register 2 geschrieben. Dem Schlüsselselektor 3 wird ein Auswahlbefehl so gegeben, daß er eine Ausgabe des Registers 1 für den PSW-Schlüssel (Pk) auswählt. Da im ersten Adreßraum 19 (PS), der durch eine Adreßübersetzung erzeugt wird, die PSTO 5 als Anfangsadresse der Adreßübersetzungstabelle verwendet, ein zweiter Operand lokalisiert ist, wird der STO-Selektor 7 beispielsweise durch die Ausführung eines Mikroprogramms so gesteuert, daß er PSTO 5 auswählt (Schritt 27).
  • (iv) Ähnlich dem obigen Schritt (ii) wird für den zweiten Operanden ein Holeversuch ausgeführt. Wenn ein Zugriffsschlüssel K=Pk (PSW Schlüssel), wie er durch den Schlüsselselektor 3 ausgewählt wurde, "0" ist, wird ein erfolgreicher Holeversuch angenommen. Wenn K nicht "0" ist, aber mit dem den ersten Adreßraum 19 (PS) zugeordneten Speicherschlüssel oder Raum 20 (PSk) übereinstimmt, also K=PSk, ist ein Zugriff auf den Hauptspeicher 15 möglich, so daß ein erfolgreicher Holeversuch angenommen wird.
  • Wenn K nicht "0" ist, und nicht mit Mk übereinstimmt, also Pk nicht gleich PSk ist, wird ein Programmfehler angenommen und der Befehl unterdrückt (Schritt 28 und 28A). Bei der Unterdrückung eines Befehls wird die Verarbeitung als anormaler Zustand beendet.
  • (v) Nach einem erfolgreichen Holeversuch wird in das Wk-Register 2 Wk=0 gesetzt und an den Schlüsselselektor 3 wird ein Auswahlbefehl für den Arbeitszugriff-Schlüssel gegeben (Schritt 29).
  • (vi) Ein Vorgang des Lesens von Operandendaten aus dem ersten Adreßraum 19 und Schreiben derselben in den zweiten Adreßraum 22 wird durchgeführt. Gleichzeitig mit der Anforderung eines Zugriffs auf den Hauptspeicher wird ein Auswahlbefehl für das STO ausgegeben. Wenn die Daten aus dem ersten Adreßraum 19 zu holen sind, geben Mikroprogramme einen Zugriffsbefehl derart aus, daß PSTO 5 als STO auszuwählen ist, und wenn die Daten im zweiten Adreßraum 22 gespeichert sind, geben sie einen Zugriffsbefehl derart aus, daß SSTO 6 als STO auszuwählen ist. Obwohl der Speicherschlüssel gelesen wird, wird kein Vergleich des Speicherschlüssels mit dem Zugriffsschlüssel ausgeführt, da der Zugriffsschlüssel "0" ist, unabhängig vom Wert des Speicherschlüssels wird somit ein Zugriff auf den Speicher ermöglicht (Schritte 30, 31).
  • (vii) Es wird überprüft, ob die Datenübertragung zwischen dem ersten und dem zweiten Adreßraum für alle L Bytes abgeschlossen ist. Der obige Schritt (vi) wird wiederholt, bis die Übertragung aller L Bytes abgeschlossen ist (Schritt 32).
  • (viii) Nach dem Ende der Datenübertragungsverarbeitung wird ein Auswahlbefehl für den PSW-Schlüssel Pk an den Schlüsselselektor 3 gegeben, um den Status vor Ausführung eines Befehls wiederherzustellen (Schritt 33).
  • (ix) Wenn ein Programmfehler erfaßt wird, wird die Tätigkeit auf einen Ausgangsauswahlmodus für das PSW-Schlüssel-Register gesetzt, um einen Interrupt-Vorgang auszulösen.
  • Ähnlich wie oben beschrieben kann die vorliegende Erfindung auf MVCP- oder MVCK-Befehle angewendet werden.
  • Entsprechend der Beschreibung eines MVCP-Befehls wird unter Verwendung eines vom Befehl bereitgestellten Schlüsselwerts Xk ein zweiter Operand im zweiten Adreßraum gelesen und unter Verwendung des PSW-Schlüssels Pk als Zugriffsschlüssel auf eine erste Operandenadresse im ersten Adreßraum geschrieben. Die hängen der ersten und der zweiten Operanden sind jeweils L Bytes. Wenn der Zugriffsschlüssel K nicht "0" ist und nicht mit dem Hauptspeicherschlüssel Mk übereinstimmt, wird ein Programmfehler festgestellt und der Befehl unterdrückt.
  • Fig. 4 ist ein Flußdiagramm, das ein Beispiel einer Datenübertragung durch einen MVCP-Befehl zeigt. Bei einem Speichervorgang für einen ersten Operanden im zweiten Adreßraum 22 (SS) wird das PSTO-Register 5 auf einen Auswahlmodus gesetzt (Schritt 35), um einen Speicherversuch für den ersten Operanden vorzunehmen (Schritt 36). Als nächstes wird der Schlüsselselektor 3 auf einen Auswahlmodus für das Wk-Register 2 gesetzt, in das ein durch den MVCP-Befehl gegebener Schlüsselwert Xk gesetzt wurde. Der STO-Selektor 7 wird so gesetzt, daß er das SSTO-Register 6 auswählt (Schritt 37). Danach wird für einen zweiten Operanden ein Holeversuch vorgenommen (Schritt 38). Nach einem Erfolg des Holeversuchs wird das Wk-Register 2 auf "0" gesetzt (Schritt 39). Eine Verarbeitung des Holens von Daten aus dem zweiten Adreßraum 22 im SSTO-Auswahlmodus und deren Speicherung im ersten Adreßraum 19 im PSTO-Auswahlmodus wird vorgenommen (Schritte 40, 41). Der nachfolgende Vorgang ist identisch zu Schritten 32 und 33 in der vorher beschriebenen Ausführungsform.
  • Fig. 5 ist ein Flußdiagramm, das eine erfindungsgemäße Ausführungsform in Verbindung mit einem MVCK-Befehl zeigt. Schritte, die den in den vorherigen Ausführungsformen ähnlich sind, sind mit den gleichen Bezugsziffern bezeichnet.
  • Die Beschreibung eines MVCK-Befehls kann als die des folgenden Beispiels angesehen werden: Unter Verwendung eines von einem MVCK-Befehl bereitgestellten Schlüsselwerts Xk wird ein zweiter Operand gelesen. Der PSW-Schlüssel Pk wird als Zugriffsschlüssel K an die Adresse des ersten Operanden geschrieben. Die Längen sowohl des ersten als auch des zweiten Operanden sind jeweils L Bytes. Wenn K nicht "0" ist und nicht mit Mk übereinstimmt, wird ein Programmfehler erfaßt und die Ausführung des MVCK-Befehls unterdrückt.
  • Mit einem MVCK-Befehl wird ein STO entsprechend einem Adreßraum-Steuerungsbit im PSW ausgewählt. Wk wird als Zugriffsschlüssel zum Holen eines zweiten Operanden verwendet, während der PSW-Schlüssel Pk als Zugriffsschlüssel zum Speichern eines ersten Operanden verwendet wird. Demzufolge werden die Auswahlmoden für PSTO und SSTO wie in den vorherigen Ausführungsformen beschrieben nicht mehr benötigt, wie in den Schritten 47, 50 und 51 dargestellt. Bezug nehmend auf die in den Fig. 6A und 6B gezeigten Zeitdiagramme werden Datenübertragungen entsprechend der Erfindung und entsprechend dem Stand der Technik miteinander verglichen.
  • Wenn eine geforderte Adresse durch eine logische Adresse gegeben ist, werden für jeden Speicher- (oder Lese-)vorgang im allgemeinen folgende Vorgänge ausgeführt:
  • (1) Erkennen einer angeforderten Adresse,
  • (2) überprüfen, ob die angeforderte Adresse im Übersetzungsnachschlagepuffer (translation lookaside buffer = TLB) vorhanden ist,
  • (3) Ermitteln einer realen Adresse aus dem TLB, wenn die Adresse in ihm vorhanden ist,
  • (4) Ermitteln einer realen Adresse durch Adreßübersetzung, wenn die angeforderte Adresse nicht im TLB vorhanden ist, und
  • (5) Holen (oder Speichern) aus dem (oder in den) Speicher oder Cache an der realen Adresse unter Verwendung eines Zugriffsschlüssels.
  • Wenn zur Wiederholung einer Anforderung der gleiche Zugriffsschlüssel K verwendet wird, können die obigen Vorgänge im allgemeinen überlappend miteinander ausgeführt werden.
  • Fig. 6A zeigt ein Zeitdiagramm eines Lese/Schreib-Vorgangs, wobei der gleiche Zugriffsschlüssel verwendet wird. In der Figur werden Hol- und Speichervorgänge in überlappender Weise ausgeführt, dies wird durch einen Pipelineverarbeitung der obigen Vorgänge (1) bis (5) erreicht.
  • Wenn jedoch Daten zwischen Adreßräumen mit unterschiedlichen Zugriffsschlüsseln zu übertragen sind, muß ein Zugriffsschlüsselwert Xk verwendet werden, der für jede Anforderung verschieden ist. In einem solchen Fall muß der Zugriffsschlüsselwert K unverändert gehalten werden, bis der obige Vorgang (5) beendet ist. Somit wurde bisher eine Anforderung wie in Fig. 6B gezeigt seriell mittels der Vorgänge und , durch die ein PSW-Schlüssel in einen entsprechenden Adreßraumschlüssel umgeändert wurde, abgearbeitet.
  • Im Gegensatz zum eben Gesagten wird in den erfindungsgemäßen Ausführungsformen K=0, also ein Universalschlüssel bei Datenübertragungen zwischen Adreßräumen verwendet, selbst wenn sie unterschiedliche Schlüssel haben. Die Datenübertragung zwischen Adreßräumen wird somit unter Verwendung scheinbar gleicher Zugriffsschlüssel durchgeführt, so daß eine Überlappung der Zugriffe wie in Fig. 6A gezeigt, und damit eine schnelle Datenübertragung möglich ist.

Claims (2)

1. Steuerungsverfahren für einen Mehrfach-Adreßraum zur Verwendung in einem Datenverarbeitungssystem für die Steuerung von Mehrfach-Adreßräumen, wobei dann, wenn auf einen Hauptspeicher (15) durch einen Prozessor zugegriffen werden soll, durch Vergleich eines vom Prozessor ausgegebenen Zugangsschlüssels mit einem Hauptspeicherschlüssel, der im Hauptspeicher vorgesehen ist, mittels eines Komparators (12) ein Hauptspeicherschutz durchgeführt wird, mit:
einem ersten Schlüsselregister (1) zum Speichern eines Programmstatuswort-Schlüssels, der vom Prozessor ausgegeben wird;
einem zweiten Schlüsselregister (2) zur Speicherung eines Zugriffsschlüssels, der vom Prozessor gemäß einem Datenübertragungsbefehl ausgegeben wird;
einer Auswahleinrichtung (3), um unter Steuerung des Prozessors entweder das erste oder das zweite Schlüsselregister auszuwählen; und
einer Beurteilungseinrichtung (4), die mit der Auswahleinrichtung (3) verbunden ist, um zu beurteilen, ob ein durch die Auswahleinrichtung ausgewählter Schlüssel ein vorbestimmter Wert ist und die dem Prozessor unabhängig vom Hauptspeicherschlüssel den Zugriff auf den Hauptspeicher (15) erlaubt, wenn der Wert des ausgewählten Schlüssels mit dem vorbestimmten Wert übereinstimmt, sowie zum Vergleichen (12) des Werts des ausgewählten Schlüssels mit dem Hauptspeicherschlüssel, wenn der Wert des ausgewählten Werts nicht mit dem vorbestimmten Wert übereinstimmt, um dem Prozessor den Zugriff auf den Hauptspeicher (15) zu erlauben (13, 14), wenn der Hauptspeicherschlüssel und der ausgewählte Schlüssel übereinstimmen;
wobei das Verfahren gekennzeichnet ist durch
Ausführen eines Datenübertragungsbefehls zwischen einem Lese-Adreßraum und einem Speicher-Adreßraum mittels eines Mikroprogramms, mit den Schritten
- Vorprüfen (26, 26A, Fig. 3-5) eines durch die Auswahleinrichtung (3) aus dem zweiten Schlüsselregister (2) ausgewählten Zugriffsschlüssels daraufhin, ob der Zugriffsschlüssel mit einem Hauptspeicherschlüssel übereinstimmt, der den Daten, auf die in einem der Adreßräume entsprechend dem Datenübertragungsbefehl zugegriffen wird, zugeordnet ist,
- Vorprüfen (27, 28, 28A, 37, 38, Fig. 3-5) eines von der Auswahleinrichtung aus dem ersten Schlüsselregister (1) ausgewählten Programmstatuswort-Schlüssels daraufhin, ob der Schlüssel mit dem Hauptspeicherschlüssel übereinstimmt, der den Daten, auf die entsprechend dem Datenübertragungsbefehl im anderen Adreßraum zugegriffen wird, zugeordnet ist,
- Setzen des vorbestimmten Werts im zweiten Schlüsselregister (2), wenn das Ergebnis der Vorprüfungsschritte Übereinstimmungen anzeigt; und
- dann Auswählen des zweiten Schlüsselregisters (2) unabhängig vom Adreßraum, auf den zugegriffen werden soll.
2. Verfahren nach Anspruch 1, weiter gekennzeichnet durch einen Schritt des Verhinderns des tatsächlichen Zugriffs auf den Hauptspeicher.
DE3750740T 1986-09-19 1987-08-11 Verfahren zur Steuerung von Mehradressräumen. Expired - Fee Related DE3750740T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61221366A JPS6376034A (ja) 1986-09-19 1986-09-19 多重アドレス空間制御方式

Publications (2)

Publication Number Publication Date
DE3750740D1 DE3750740D1 (de) 1994-12-15
DE3750740T2 true DE3750740T2 (de) 1995-03-16

Family

ID=16765667

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3750740T Expired - Fee Related DE3750740T2 (de) 1986-09-19 1987-08-11 Verfahren zur Steuerung von Mehradressräumen.

Country Status (4)

Country Link
US (1) US4999770A (de)
EP (1) EP0260433B1 (de)
JP (1) JPS6376034A (de)
DE (1) DE3750740T2 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5123101A (en) * 1986-11-12 1992-06-16 Xerox Corporation Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US5023773A (en) * 1988-02-10 1991-06-11 International Business Machines Corporation Authorization for selective program access to data in multiple address spaces
US5483646A (en) * 1989-09-29 1996-01-09 Kabushiki Kaisha Toshiba Memory access control method and system for realizing the same
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
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
EP0550287A3 (en) * 1992-01-02 1994-08-17 Amdahl Corp Computer system having high performance processing for program status word (psw) key-setting instructions
JP3786993B2 (ja) * 1995-12-14 2006-06-21 株式会社日立製作所 データ記憶ユニット及び該ユニットを用いたデータ記憶装置
US5787309A (en) * 1996-05-23 1998-07-28 International Business Machines Corporation Apparatus for protecting storage blocks from being accessed by unwanted I/O programs using I/O program keys and I/O storage keys having M number of bits
US5724551A (en) * 1996-05-23 1998-03-03 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers
JPH1165936A (ja) * 1997-06-12 1999-03-09 Oki Micro Design Miyazaki:Kk メモリ装置
US5991856A (en) * 1997-09-30 1999-11-23 Network Associates, Inc. System and method for computer operating system protection
EP1563380B1 (de) 2002-11-18 2006-07-19 ARM Limited Zuordnung von virtuellen zu physischen speicheradressen in einem system mit einem sicheren bereich und einem nicht sicheren bereich
WO2006028923A2 (en) * 2004-09-01 2006-03-16 Abet Technologies, Llc Method and system for bidirectional communications and power transmission
US7405652B2 (en) * 2004-09-21 2008-07-29 Abet Technologies, Llc Communication and AC power system
US20060173704A1 (en) * 2005-01-31 2006-08-03 Abet Technologies, Llc Secure computer system
CN100346292C (zh) * 2005-12-02 2007-10-31 浙江大学 多地址空间异步计算等待响应指令的控制方法
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
GB2438297A (en) * 2006-05-19 2007-11-21 Ibm Computer program for move data facility with user selectable storage access keys
US11269780B2 (en) * 2019-09-17 2022-03-08 Micron Technology, Inc. Mapping non-typed memory access to typed memory access
US11494311B2 (en) 2019-09-17 2022-11-08 Micron Technology, Inc. Page table hooks to memory types
US10963396B1 (en) 2019-09-17 2021-03-30 Micron Technology, Inc. Memory system for binding data to a memory namespace

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3264615A (en) * 1962-12-11 1966-08-02 Ibm Memory protection system
US3328765A (en) * 1963-12-31 1967-06-27 Ibm Memory protection system
US3328768A (en) * 1964-04-06 1967-06-27 Ibm Storage protection systems
US3576544A (en) * 1968-10-18 1971-04-27 Ibm Storage protection system
US3573855A (en) * 1968-12-31 1971-04-06 Texas Instruments Inc Computer memory protection
JPS4930578B1 (de) * 1970-09-30 1974-08-14
US3825903A (en) * 1973-04-30 1974-07-23 Ibm Automatic switching of storage protect keys
US3947823A (en) * 1973-12-26 1976-03-30 International Business Machines Corp. Means for coordinating asynchronous main store accesses in a multiprocessing system using virtual storage
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4038645A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Non-translatable storage protection control system
US4099243A (en) * 1977-01-18 1978-07-04 Honeywell Information Systems Inc. Memory block protection apparatus
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4355355A (en) * 1980-03-19 1982-10-19 International Business Machines Corp. Address generating mechanism for multiple virtual spaces
GB2074984A (en) * 1980-05-07 1981-11-11 Mcmanus G P M Bag
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
DE3174927D1 (en) * 1980-05-23 1986-08-21 Ibm Enhancements in system/370 type of data processing apparatus
US4430705A (en) * 1980-05-23 1984-02-07 International Business Machines Corp. Authorization mechanism for establishing addressability to information in another address space
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
JPS6035694B2 (ja) * 1980-06-18 1985-08-16 富士通株式会社 主記憶保護方式
US4521846A (en) * 1981-02-20 1985-06-04 International Business Machines Corporation Mechanism for accessing multiple virtual address spaces
US4439830A (en) * 1981-11-09 1984-03-27 Control Data Corporation Computer system key and lock protection mechanism
US4472790A (en) * 1982-02-05 1984-09-18 International Business Machines Corporation Storage fetch protect override controls
AU542447B2 (en) * 1982-02-27 1985-02-21 Fujitsu Limited System for controlling key storage unit
US4581702A (en) * 1983-01-10 1986-04-08 International Business Machines Corporation Critical system protection
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
JPS61160142A (ja) * 1984-12-29 1986-07-19 Hitachi Ltd デ−タ処理装置
US4961139A (en) * 1988-06-30 1990-10-02 Hewlett-Packard Company Data base management system for real-time applications

Also Published As

Publication number Publication date
EP0260433A3 (en) 1990-03-07
US4999770A (en) 1991-03-12
JPS6376034A (ja) 1988-04-06
DE3750740D1 (de) 1994-12-15
EP0260433A2 (de) 1988-03-23
EP0260433B1 (de) 1994-11-09

Similar Documents

Publication Publication Date Title
DE3750740T2 (de) Verfahren zur Steuerung von Mehradressräumen.
DE2350884C2 (de) Adreßumsetzungseinheit
DE69327703T2 (de) Mikroprozessor mit Busbreite-Wechselfunktion
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE69329630T2 (de) Vorrichtung zur Vektorverarbeitung
DE69127111T2 (de) Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher
EP0600112A1 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
DE2241257B2 (de) Datenverarbeitende Anlage
DE2758152A1 (de) Speicherschutzanordnung
DE2360303C2 (de) Datenverarbeitungsanlage mit Adreßübersetzung für Ein-/Ausgabekanäle
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE2744531A1 (de) Elektronische datenverarbeitungsanlage
DE2847960A1 (de) Speichersteuereinrichtung
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE3688400T2 (de) Cachespeicherschaltung geeignet zur verarbeitung einer leseanforderung waehrend der uebertragung eines datenblocks.
DE2737353A1 (de) Verfahren zum testen der adressbildung in einem dv-system und vorrichtung zur durchfuehrung des verfahrens
DE4103093C2 (de) Verfahren zum Steuern eines Datenübertragungs-Pufferspeichers und Computersystem zum Durchführen dieses Verfahrens
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE2164793A1 (de) Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit
DE3750045T2 (de) Unterbrechungssteuerungsvorrichtung für eine virtuelle Maschine mit einer Vielzahl von Verarbeitungseinheiten.
DE4123550A1 (de) Informationsverarbeitungssystem mit direktem speicherzugriff
DE69709226T2 (de) Einzelzyklus mehrfachzugreifbarer verschachtelter Cache-Speicher
DE69618831T2 (de) ECC-geschützte Speicherorganisation mit Lese-Änderungs-Schreib-Pipelinezugriff

Legal Events

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