DE69029504T2 - Verfahren zum Übersetzen und Kopieren von Adressen - Google Patents
Verfahren zum Übersetzen und Kopieren von AdressenInfo
- Publication number
- DE69029504T2 DE69029504T2 DE69029504T DE69029504T DE69029504T2 DE 69029504 T2 DE69029504 T2 DE 69029504T2 DE 69029504 T DE69029504 T DE 69029504T DE 69029504 T DE69029504 T DE 69029504T DE 69029504 T2 DE69029504 T2 DE 69029504T2
- Authority
- DE
- Germany
- Prior art keywords
- page
- pte
- table entry
- page table
- instruction
- 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
Links
- 238000000034 method Methods 0.000 title claims description 76
- 238000012360 testing method Methods 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 139
- 239000000872 buffer Substances 0.000 claims description 57
- 230000032258 transport Effects 0.000 claims description 42
- 238000013519 translation Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 230000000717 retained effect Effects 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 2
- 238000012986 modification Methods 0.000 claims description 2
- 230000004913 activation Effects 0.000 claims 1
- 238000000926 separation method Methods 0.000 abstract 1
- 230000014616 translation Effects 0.000 description 35
- 239000002609 medium Substances 0.000 description 32
- 238000012546 transfer Methods 0.000 description 16
- 230000008901 benefit Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 3
- AGBQKNBQESQNJD-ZETCQYMHSA-N (S)-lipoic acid Chemical compound OC(=O)CCCC[C@H]1CCSS1 AGBQKNBQESQNJD-ZETCQYMHSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 101150022075 ADR1 gene Proteins 0.000 description 1
- 101100490566 Arabidopsis thaliana ADR2 gene Proteins 0.000 description 1
- 101150070878 Ereg gene Proteins 0.000 description 1
- 101100269260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADH2 gene Proteins 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000011093 media selection Methods 0.000 description 1
- 239000006870 ms-medium Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Communication Control (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
- Nitrogen Condensed Heterocyclic Rings (AREA)
- Devices For Executing Special Programs (AREA)
- Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
- Debugging And Monitoring (AREA)
- Medicines Containing Plant Substances (AREA)
Description
- Die Erfindung bezieht sich auf ein Verfahren zum Übersetzen und Kopieren von Adressen gemäß dem Vorwort in Anspruch 1.
- Einige aktuelle Datenverarbeitungssysteme haben mehr als eine Art des elektronischen (nichtmagnetischen) Speichers wie zum Beispiel Hauptspeicher (MS) und Erweiterungsspeicher (ES), welche von den großen Speichermedien die schnellsten in dem System sind. MS muß die Befehle und Daten enthalten, die aktuell von dem System ausgeführt werden. Normalerweise hat die MS Adresse gemäß der allgemein benutzten S/370 Architektur 24 oder 31 Bits in Computern aufgebaut, und die maximale Größe des MS ist demgemäß auf 2 in der 24. Potenz oder auf 2 in der 31. Potenz begrenzt. Der ES erweitert effektiv die Größe des schnellen elektronischen Speichers in dem System, die weit über die maximale Größe des MS hinausgeht, ohne die Anzahl von Bits in der MS Adresse zu verändern, die von der Systemarchitektur festgelegt wird.
- Vorher transportierte ein Steuerprogramm (zum Beispiel das IBM MVS/370 Programm) jedesmal, wenn die aktiven Daten und Programme in dem System die Grenzen des MS in einem Gerät zu überschreiten drohten, die weniger benutzten Seiten der Datenausgabe des MS in den Hilfsspeicher im DASD, um im MS Platz zu schaffen. Die Geschwindigkeit des DASD hat in den vergangenen Jahren stark zugenommen, das Gerät hat jedoch eine langsame Zugriffszeit, die um ein beträchtliches von der viel schnelleren Zugriffszeit des elektronischen Speichers (zum Beispiel wie der, der in MS und ES benutzt wird) überschritten wird.
- Ein Weg, der gefunden wurde, um den elektronischen Speicher des Computers zu erweitern, ohne seine MS Speicherbeschränkungen aufzuheben, besteht darin, den Erweiterungsspeicher (ES) bereitzustellen, in dem die gleiche Anzahl Adreßbits, die für den MS benutzt wird, auch benutzt werden kann, um den ES zu adressieren.
- Der ES kann eine viel größere Kapazität als der MS haben, selbst wenn der ES auf die gleiche Anzahl von Adreßbits begrenzt ist wie zum Adressieren des MS benutzt werden. Das liegt daran, daß die gleiche Anzahl von Adreßbits benutzt werden kann, um eine größere Einheit in ES als in MS zu adressieren, in der ein Byte oder ein Wort im allgemeinen die adressierbare Einheit ist. Zur Zeit ist eine 4096 Byte Seite die ES Einheit. Somit kann die gleiche Anzahl von Adreßbits einen ES Speicher adressieren, der 4096mal größer als ein MS Speicher ist.
- Ein Speicher jedoch, der in Seiteneinheiten adressiert wird, ist in der Art der Verarbeitung begrenzt, für die er direkt benutzt werden kann, da die meisten Programme ihre Verarbeitung in Byteeinheiten durchführen. Ein Seitenspeicher kann zum Beispiel benutzt werden, um in Seiteneinheiten enthaltene Ketten zu sortieren, jedoch nicht für die einfache arithmetische Verarbeitung, die in Byteeinheiten erfolgt.
- Der ES kann nicht als ein adressierbares Ziel für Prozessorbefehle benutzt werden, die normalen Benutzern zur Verfügung gestellt werden. Aus diesem Grund wurde kein Speicherschlüssel bereitgestellt, um den direkten ES Zugriff durch Prozessorbefehle zu steuern, die für alle Benutzer verfügbar sind.
- Die bei einem Seiteneinheitsspeicher (ES) allgemein am meisten benutzte Funktion ist das Parken von Seiteneinheiten mit Daten, die aufgrund von Platzmangel im MS nicht dort abgelegt werden können. Dann kann der ES als softwaregesteuerter Vorgriffspuffer für den MS benutzt werden, so daß Seiten mit Daten mit einer viel höheren Geschwindigkeit zurückgeholt werden können als dies aus dem DASD (Direktzugriffsspeichergerät, z. B. Magnetplatte oder Magnetwalze) der Fall wäre, wenn diese im MS benötigt werden. Durch virtuelle Adressierung kann ein Betriebssystem einen einzelnen physischen Speicher MS anteilig nutzen, ohne die Sicherheit oder die Integrität der Benutzer zu gefährden. Die Adressierung in dem Benutzerprogramm erfolgt virtuell. Ein oder mehrere Adreßbereich(e) enthalten die Befehle und Daten des Programms, und das Programm ist so geschrieben, als würden die Bytes, Wörter und Seiten dieser Adreßbereiche im Speicher aneinandergrenzen. Dadurch wird sowohl bei der Programmierung in einer solchen Umgebung für Komfort gesorgt als auch für die Fähigkeit, den realen Speicher unter zahlreichen Benutzern gemeinsam zu nutzen aber die Systemintegrität noch beizubehalten. Es wird eine Einrichtung geliefert, die eine virtuelle Adresse während der Interpretierung eines Befehls in eine reale Adresse übersetzt. Die Schnittstelle zwischen dieser Einrichtung, der sogenannten "Dynamischen Adreßübersetzung" (DAT), und dem privilegierten Steuerprogramm bestehen aus einem Satz Systemsteuerungstabellen, die angeben, ob sich die virtuellen Seiten zu einer bestimmten Zeit im MS befunden haben oder nicht und nennen, wenn dies der Fall ist, die Kachel des MS, in dem sich diese befinden. Wenn eine virtuelle Seite in den MS "zurückgekehrt" ist, wird diese als "gültig" bezeichnet. Andernfalls ist diese "ungültig". Befehle, welche die gültigen Seiten adressieren, werden direkt von dem Prozessor ausgeführt, der dazu die Operanden aus dem MS nutzt. Bei einem ungültigen Operanden informiert der Prozessor das Steuerprogramm mittels einer Unterbrechung. Das Steuerprogramm ordnet dem MS eine verfügbare Kachel in der verlangten virtuellen Seite zu, holt die Seite aus dem Seitenpuffer im ES oder den DASD Geräten zurück, aktualisiert die Systemsteuertabellen, um den aktuell gültigen Status der zurückgeholten Seite zu reflektieren und fordert den Prozessor auf, die Ausführung des unterbrochenen Befehls wieder aufzunehmen. Dieses Verfahren ist in dem nichtprivilegierten Benutzerprogramm unsichtbar und wirkt sich nicht auf dessen Programmschritte aus. Da die Systemsteuertabellen von dem privilegierten Steuerprogramm gesteuert werden, können viele Benutzer durch virtuelle Adressierung den MS gemeinsam benutzen. Die DAT Einrichtung sorgt unter den Benutzern für die notwendige Isolierung.
- In dem IBM S/370 System befinden sich die Systemsteuertabellen aus Gründen der Speichereffektivität in zwei Ebenen und werden Segment- und Seitentabellen genannt. Jede Seitentabelleneingabe (PTE) beschreibt den Status einer virtuellen Seite: gültig oder ungültig; und, falls gültig, die MS Adresse, unter der diese gefunden werden kann und enthält eine Angabe, ob ein Prozessor Operationen in dieser Seite speichern darf oder nicht.
- In der aktuellen S/370 Architektur ist eine logische Adresse eine virtuelle MS Adresse oder eine reale MS Adresse. Wenn der Status des DAT Bits 1 in dem aktuellen PSW des Prozessors ist, sind die logischen Adressen der Operanden in den Befehlen virtuelle MS Adressen und wenn das DAT Bit 0 ist, sind es reale MS Adressen.
- Der Stand der Verarbeitung enthält in der IBM S/370 Architektur auch die Benutzung der nichtprivilegierten Transportbefehle (Kopie). All diese Transportbefehle sind auf den Transport (das Kopieren) einer variablen Anzahl von Datenbytes in den MS beschränkt, und keiner kann Daten zwischen den zahlreichen Speichermedien transportieren. Der Move Long (MCVL) Befehl kann eine variable Anzahl Bytes aus einer MS Speicherstelle in eine andere MS Speicherstelle transportieren, die in den Befehlsparametern als eine logische Quell- und eine logische Zieladresse angegeben sind. Wenn sich ein adressiertes Byte nicht in einer zugeordneten MS Seite befindet, kommt es bei der Befehlsausführung zu einer Ausnahme, die Befehlsausführung wird unterdrückt, Unterbrechungssignale werden gespeichert, und das privilegierte Steuerprogramm wird eingegeben, um die Seite zuzuordnen, welche dieses adressierte Byte enthält, oder eine andere Maßnahme zu ergreifen, wie dies von den gespeicherten Signalen verlangt wird. Der unterdrückte Befehl wird erneut ausgeführt, wenn die Verarbeitung zu dem unterbrochenen Programm zurückkehrt.
- Im Stand der Technik wurde der Transport eines Teils einer Seite oder einer großen Anzahl Seiten mit Daten aus einer Quellspeicherstelle in eine Zielspeicherstelle mittels eines S/370 MVCL (Transportzeichen lang) Befehls oder mittels einer S/370 MVC (Transportzeichen) Schleifenroutine durchgeführt, wobei sowohl die Quell- als auch die Zielseiten gültige Adressen im MS enthalten müssen, und ihre Daten müssen in die Seiten im MS übertragen worden sein, bevor die Befehlsausführung beginnen kann. Jedesmal, wenn ein MVCL Befehl eine virtuelle Seite im MS als ungültig bezeichnete, informierte der Prozessor das Steuerprogramm mit einer Seitenübersetzungsausnahme, die das Programm mit dem MVCL Befehl unterbrochen und das Steuerprogramm aufgerufen hat, das die virtuelle Adresse übersetzte, im MS eine Kachel zuordnete und die Daten aus dem DASD oder ES in der Speicherhierarchie in die MS Kabel übertragen hat.
- Demgemäß reagierte das Steuerprogramm auf jeden MVCL Seitenfehler durch
- 1. Übersetzung der fehlerhaften, virtuellen Adresse. um eine PTE Adresse zu erhalten.
- 2. Zuordnung einer Kachel im MS für die fehlerhafte, virtuelle Seite.
- 3. Durchführung einer E/A oder PAGEIN Operation, um die Seiteninhalte in die zugeordnete MS Kachel zu bringen.
- 4. Validierung der PTE, indem deren Felder eingestellt werden, um das Vorhandensein der Seite im MS zu reflektieren.
- Sobald sowohl Quellseite als auch Zielseite für den MVCL Befehl im MS vorhanden sind, kann dieser seine Datenübertragung durchführen, bei der es sich um ein Datenmischen handeln kann, indem ein oder mehrere Datenbytes in einer angrenzenden Speicherstelle in der Zielseite durch Datenbytes ersetzt werden, die aus einer angrenzenden Speicherstelle in der Quellseite kopiert wurden. Die Operation Kopieren/Ersetzen des MVCL Befehls kann außerdem eine Anzahl von aneinandergrenzenden Seiten und Seitenteilen enthalten. Wie festgestellt werden kann, können bis zu drei Datenübertragungsoperationen erforderlich sein: Erstens: Ein-/Ausgabe von Daten in die Seite(n) in der Quelloperandenadresse. Zweitens: Ein-/Ausgabe in die Seite(n) in der Zieloperandenadresse. Drittens: die Übertragung der Daten zwischen den Speicherstellen, die in dem MVCL Befehl angegeben sind, die Teil von einer oder von mehreren Seiten sein können. (Das Thema der Erfindung vermeidet einige Datenübertragungen, die von diesen vorherigen Befehlen verlangt werden, wenn eine komplette Seite mit Daten kopiert wird.)
- Es müssen strenge Sicherheitsanforderungen durchgesetzt werden, um Zugriff auf die Seiten mit Daten im ES zu erhalten, während die Seiten, die von dem MS in den ES übertragen wurden, von einer und allen Programmverarbeitung(en) im MS sein können, welche die privilegierten Programmdaten enthalten, die bei Mißbrauch zu einem Systemausfall führen können sowie Daten aus verschiedenen Problemprogrammen, von denen jedes persönliche Daten enthalten kann, die diese auch als solche behalten werden.
- Deshalb ist der privilegierte (d. h. Kontrolle) Status erforderlich, um die vorherigen 8/370 Befehle zu benutzen, die eine Seite mit Daten zwischen MS und ES kopierten, bei denen es sich um PAGEIN und PAGEOUT Befehle handelt; diese sind Gegenstand der US Patentschrift 4,476,524 von Brown et al mit dem Titel "Page Storage Control Methods and Means", die dem gleichen Assignaten als Gegenstand der Anwendung erteilt wurde. Die vorherigen PAGEIN und PAGEOUT Befehle sind zur Benutzung durch die Anwendungsprogramme nicht verfügbar, weil diese auf den Kontrollstatus beschränkt sind, der ihre Benutzung infolge der Sicherheitsanforderung, daß Anwendungsprogramme nicht direkt auf Daten in dem ES Medium zugreifen dürfen, auf Systemsteuerungsprogramme begrenzt. Andererseits liefert der Gegenstand der Erfindung einen Befehl, um auf den ES zuzugreifen, der durch ein Anwendungsprogramm genutzt werden kann, während die erforderliche ES Sicherheit gewahrt bleibt. Die PAGEIN und PAGEOUT Befehle können nur die reale Adressierung benutzen, um auf eine Quellseite und eine Zielseite zuzugreifen; während der Gegenstand der Erfindung die virtuelle Adressierung benutzen kann. Die PAGEIN und PAGEOUT Befehle sind auch nicht in der Lage, eine Seite innerhalb eines Mediums zu transportieren; sie können eine Seite nicht innerhalb des MS oder des ES transportieren, wie dies der Gegenstand der Erfindung kann. Und die PAGEIN und PAGEOUT Befehle bezeichnen das Speichermittel für jede Seitenkopieroperation durch die Operandenstellen in dem Befehl, während bei dem Gegenstand der Erfindung keine Speichermediumbezeichnung benutzt werden muß, obwohl diese gerade eine Übertragung zwischen verschiedenen Medien durchführen kann.
- Die europäische Anmeldung 0 214 870 (Yoshida et al, die Fujitsu erteilt wurde) und ihre entsprechende australische Patentspezifikation 564809 (Anwendungsnummer 62458/86) beschreiben einen Befehl, um die logische Adressierung zur Übertragung von Datenelementen zwischen einem Erweiterungsspeicher (EM) und einem Hauptspeicher (MM) zu netzen. Der Operationsteil dieses Befehls bezeichnet die Übertragungsrichtung und für jede Übertragungsrichtung wird ein anderer Operationsschlüssel benutzt. Der erste Operand (B1, D1) ist dazu bestimmt, eine logische Adresse des Hauptspeichers anzugeben. Der zweite Operand (X2, B2, D2) ist dazu bestimmt, die logische Adresse des Erweiterungsspeichers anzugeben. Der R1 Operand gibt eine variable Anzahl Elemente an, die zwischen EM und MM zu übertragen sind; jeder seiner Befehle kann eine variable Anzahl von Seiteneinheiten oder Nichtseiteneinheiten übertragen. Die Operanden im Befehl dieses europäischen Patentes sind mediumabhängig, während die Operanden in dem Befehl aus dem Gegenstand der Erfindung mediumunabhängig sind. Die Befehle in diesem Patent benutzen nicht - wie behauptet wird - die virtuelle Adressierung, weil die aktuelle virtuelle Adressierung von ihrem Benutzer nicht verlangt, die benutzten Medien anzugeben, die für die Operanden der Befehle aus diesem Patent benötigt werden, zusammen mit einem Operationsteil, das für jede Richtung des Datentransports zwischen den einzelnen Medien unterschiedlich ist. (In dem Gegenstand der Erfindung muß kein Medium von einem Operanden angegeben werden, und eine bestimmte Benutzerabsicht kann bei der Ausführung des Befehls nicht zugelassen werden. Der Befehl im Gegenstand der Erfindung bezeichnet keine Übertragungsrichtung zwischen physischen Medien und benutzt das gleiche Operationsteil für alle Übertragungsrichtungen. Es wird keine variable Anzahl von Datenelementen angegeben, während eine Seite durch den Befehl aus dem Gegenstand der Erfindung übertragen wird.)
- Die vorherige Patentanmeldung EP-A-0370178, die am 30.05.1990 veröffentlicht wurde (und dem gleichen Assignaten wie der Gegenstand der Erfindung erteilt wurde), beschreibt ein Kontrollprogrammfenster mit Abbildung, das die MS oder ES Seiten in einem virtuellen Adreßbereich initialisiert, indem die Seiten in einem Teil einer linearen Datei im AS (Hilfsspeicher, d. h. DASD) abgebildet werden. Diese Anwendung ordnet die Kacheln MS oder ES zu, schreibt die zugeordneten MS oder ES Adressen in die PTEs (Seitentabelleneingabe) der zugeordneten Kacheln, lokalisiert die angeforderten Daten in einer linearen Datei im AS und liest die AS Daten in die zugeordneten Seiten im MS oder ES, um den Prozeß zur Initialisierung der Seiten, die in einem gewünschten Teil der linearen Datei im AS abgebildet werden, abzuschließen. Damit ein Anwendungsprogramm dieses Kontrollprogramm nutzen kann, muß das Anwendungsprogramm ein Programm liefern, das die Abbildungsparameter angibt, einschließlich der virtuell adressierten Seiten, die wie die Startadresse in der AS Datei abgebildet werden. Die Operation dieser Programmierung aus dem Stand der Technik endet, wenn die zugeordneten Seiten initialisiert werden, um die Daten aus dem Fenster aufzunehmen, auf das zugegriffen wurde. Wenn bei einem Operanden in dem Fenster festgestellt wird, daß dieser in MS ungültig ist, wird das Kontrollprogramm durch Unterbrechungen aufgerufen und muß mit Programmierungsmitteln die angeforderte Seite aus dem ES zurückholen, die Abbildungstabelle aktualisieren, um die Gültigkeit der Seite im MS wiederzugeben und den Prozessor auffordem, den Befehl, der die Unterbrechung verursachte, erneut auszuführen. (Andererseits ist der Gegenstand der Erfindung primär von der Bearbeitung von Seiten betroffen, nachdem diese im MS oder ES initialisiert wurden, so daß der Gegenstand der Erfindung genutzt werden kann, nachdem der Prozeß der zuvor erwähnten Seriennummer 07/274062 beendet wurde, um einige der initialisierten Seiten in den gleichen Adreßbereich oder in andere Adreßbereiche zu kopieren und zwar dessenungeachtet, ob diese im MS oder im ES vorgekommen sind. Der Gegenstand der Erfindung fordert außerdem den Benutzer nicht auf, jedes Medium (MS oder ES), das verwendet wird, anzugeben. Die Erfindung ermöglicht es dem Benutzer, sich optional für den MS als Zielseitenmedium zu entscheiden, da erwartet wird, daß die Seite durch einen nachfolgenden Befehl im gleichen Programm bezeichnet wird. Doch sogar, wenn ein Benutzer beabsichtigt, den MS zu wählen, kann das Kontrollprogramm nichtsdestoweniger die Absicht des Benutzers vereiteln und die Seite in den ES setzen, wenn von dem System die Umstände im Zusammenhang mit dem Gegenstand der Erfindung angegeben werden.)
- Die vorherige Patentanmeldung EP-A-0370175, die am 30.05.90 veröffentlicht wurde (und dem gleichen Assignaten erteilt wurde wie der Gegenstand der Erfindung), beschreibt eine neue Art des Adreßbereichs, den sogenannten NMDS (Kein MS Datenbereich, der nur von ES gesichert oder von ES und/oder AS gesichert wird aber niemals von MS). (Der NMDS wird jetzt in dem IBM MVS/ESA Betriebssystem Hyperbereich genannt.) Diese Patentanmeldung beschreibt Programmroutinen (die nur in einem privilegierten Betriebssystem vorhanden sein können); nur privilegierte Programme sind ausgelegt, um eine virtuell adressierte Seite zwischen einem NMDS Adreßbereich und einem allgemeinen Adreßbereich (der durch MS, ES oder AS gesichert wird und sowohl Programme als auch Daten enthält) zu transportieren/zu kopieren. Zu den privilegierten Programmroutinen gehören: CREAD, CWRITE, SREAD und SWRITE. Jede dieser privilegierten Routinen besteht aus mehreren Befehlen. Jede dieser privilegierten Routinen kann angegeben und von einer Parameterlistenroutine, die in einem Anwendungsprogramm untergebracht ist, aufgerufen werden. Die Parameterlistenroutine unterbricht ihr Anwendungsprogramm, indem das privilegierte Programm aufgerufen wird, das diese Routinen enthält, um die sogenannte Routine auszuführen, nach der die Steuerung zurück an das anfordernde Anwendungsprogramm gegeben wird. Die Fähigkeit der 020 Routinen, direkt auf ES zuzugreifen, hindert diese daran, direkt von einem nichtprivilegierten Anwendungsprogramm ausgeführt zu werden. Außerdem können die 020 privilegierten Routinen nur eine Seite zwischen einem NMDS und einem Programm-/Datenadreßbereich transportieren.
- Die Erfindung ermöglicht es einem nichtprivilegierten Benutzer eines Systems, eine Kopie einer Seite mit Daten aus einem der vielen Medien zu halten, egal ob dieser auf privilegierten Zugriff beschränkt ist oder nicht. Dies geschieht, indem die Benutzersteuerung über die Auswahl eines privilegierten elektronischen Mediums aufgehoben wird, während es dem Benutzer erlaubt ist, einen Wunsch zu formulieren, um eine Kopie einer Quellseite mit Daten in einem elektronischen Medium, das für den Benutzer zugänglich ist, zu erhalten und zwar egal, ob die Quellseite aus einem privilegierten Medium, zu welchem nichtprivilegierte Benutzer keinen direkten Zugriff haben, kopiert wird oder nicht.
- Der konventionelle Puffer-Bypass, der von IBM Großsystemen benutzt wird, hindert den Puffer der CPU nicht daran, Daten zu empfangen. Der Bypass sendet nur Daten, die von dem MS direkt in die CPU Ausführungseinheit in einen Pfad abgerufen werden, der den Puffer als Reaktion auf einen Pufferfehler umgeht, während auch die gleichen Daten in den Puffer kopiert werden. (Der Puffer-Bypass dieser Erfindung kopiert keine Daten, die aus dem MS abgerufen werden oder im MS gespeichert sind, wenn der MS nicht das Zielmedium ist, während diese Daten als Reaktion auf einen Pufferfehler bei dem Kopiervorgang an die Ausführungseinheit gesendet werden.)
- Es ist der Gegenstand der Erfindung, das Problem beim Adressieren von Daten durch einen Prozessor über virtuelle Adressierung der Befehlsoperanden mit Bezug auf die Daten zu lösen, die sich in den verschiedenen elektronischen Speichermitteln befinden können.
- Das Ziel der Erfindung wird durch Anspruch 1 gelöst. Weitere, zusätzliche und wichtige Vorteile werden in den Unteransprüchen ausgeführt, von denen insbesondere die Ansprüche 8, 15, 26, 28 und 48 zu erwähnen sind.
- Die Erfindung liefert einen neuen Weg, um ein Anwendungsprogramm in nichtkontrolliertem (d. h. nichtprivilegierten) Status zu aktivieren, um die virtuelle Adressierung der Operanden in einem Maschinenbefehl zu benutzen, der nicht erforderlich ist, um anzugeben, welche der vielen Medien dieser benutzen wird; will von ihren Benutzern nicht wissen, auf welche zusätzlichen Medien zugegriffen wird; verlangt von dem MS nicht, eines der zusätzlichen Medien zu sein und ermöglicht, verschiedene Arten der physischen Adressierung durch die verschiedenen, zusätzlichen Medien zu benutzen, um einen nichtprivilegierten Befehl bereitzustellen, der es erlaubt, virtuelle Adressierung einzusetzen, um eine Seite mit Daten aus einer virtuellen Quelladresse in eine virtuelle Zieladresse zu kopieren und zwar ohne zu berücksichtigen, wo sich die Seite physisch in den zahlreichen elektronischen Speichermedien befindet und ohne den Eingriff eines Kontrollprogramms, wenn die virtuelle Adressierung für die entsprechenden Seiten initialisiert wurde, um die beschleunigte Seitenfehlerbearbeitung bereitzustellen, wenn die virtuelle Adressierung nicht zuvor für eine virtuelle Seite vorbereitet wurde, auf die durch den nichtprivilegierten Seitenkopierbefehl zugegriffen wird.
- Diese Erfindung erlaubt es einem nichtprivilegierten Benutzer außerdem die Seitenfehlerbearbeitung durch das Kontrollprogramm zu vermeiden, wenn eine Seite, die nicht in einem der elektronischen Speicher (Medien) gesichert ist, von einem Prozessor in einem Seitenkopiervorgang berücksichtigt wird, so daß in einem solchen Fall das Benutzerprogramm statt dessen eine Steuerprogrammroutine verlangen kann, um eine Anzahl von Seiten durch Programmiermittel mit der Erwartung zu kopieren, daß bei den meisten oder allen Gruppen mit Seiten, die nacheinander transportiert werden, auch festgestellt wird, daß diese nicht in einem elektronischen Medium gespeichert wurden, um die beschleunigte Seitenfehlerbearbeitung optional zu einem nichtprivilegierten Benutzer des Seitenkopierbefehls zu benutzen, indem der Bedarf an einem bedingten Sprungbefehl entfällt, um eine Seitenfehlerausnahme zu prüfen.
- Diese Erfindung liefert außerdem die Fähigkeit, daß Daten, auf die für die Quell- und Zielseiten bei einem Seitenkopierbefehl zugegriffen wird, nicht unwirksam in einen Prozessorpuffer kopiert werden, was nur geschieht, wenn der Benutzer des Befehls in einem Befehlsparameter eine Absicht äußert, daß die Zielseite des Befehls in den Hauptspeicher (MS) kopiert wird. Wenn die Zielseitentabelleneingabe (PTE) das Hauptspeichermedium (MS) auswählt, wird die Zielseite in den Hauptspeicher (MS) und auch in den Puffer kopiert. Wenn die Zielseitentabelleneingabe (PTE) nicht das Hauptspeichermedium (MS) auswählt, ruft der Befehl das Kontrollprogramm auf, um die Mediumauswahl der Ziel- seitentabelleneingabe (PTE) erneut zu prüfen. Wenn möglich, führt das Steuerprogramm eine Neuzuordnung der Zielseite im Hauptspeicher (MS) durch und stellt die Seitentabelleneingabe (PTE) demgemäß ein. Dann wird die Zielseite in den Hauptspeicher (MS) und den Puffer kopiert, wenn der Befehl erneut ausgeführt wird. Ist der Puffer klein, kann nur die Pufferdateneinheit, die das Byte enthält, das von dem Zieloperanden adressiert wurde, in den Puffer kopiert werden, und der Rest der Seite wird dann nicht in den Puffer kopiert, um die Adreßübersetzung für eine virtuelle Adresse bereitzustellen, die von einer physischen Kachel in dem Erweiterungsspeicher (ES) eines Datenverarbeitungssystems gesichert wird.
- Diese Erfindung sieht auch einen IESBE (ungültige Erweiterungsspeicherblockeingabe) Befehl vor, der eine Erweiterungsspeicherseite, die in einer adressierten Seitentabelleneingabe angegeben ist, annulliert. Der IESBE Befehl kann benutzt werden, wenn die Ausführung eines MVPG Befehls von einer potentiell fehlerhaften L=1 Sperrbiteinstellung in einer Seitentabelleneingabe verhindert wird, auf die von einem MVPG Befehl zugegriffen wird. Der IESBE Befehl ist ein privilegierter Befehl, der von einem Kontrollprogramm benutzt werden kann, um diese Bedingung zu bearbeiten.
- Die Erfindung liefert einen nichtprivilegierten CPU Befehl, der es einem nichtprivilegierten Programm ermöglicht, die virtuelle Adressierung zu benutzen, um eine Seiteneinheit mit Daten zwischen zwei unterschiedlichen, virtuellen Adreßbereichen oder innerhalb des gleichen virtuellen Adreßbereichs zu kopieren (transportieren). Der daraus resultierende, virtuelle Seitentransport (Kopie) enthält das physische Kopieren von Daten aus einer Quellseite in eine Zielseite: innerhalb des Hauptspeichers (MS) oder innerhalb des Erweiterungsspeichers (ES) oder zwischen dem Erweiterungsspeicher (ES) und dem Hauptspeicher (MS) in jeder Richtung. Es erfolgt kein privilegierter Programmeingriff für einen dieser Seitentransporte, wenn die virtuellen Adressen der Quell- und Zielseiten in dem zulässigen Medium für gültig erklärt wurden.
- Im Gegensatz zum Stand der Technik liefert der Gegenstand der Erfindung einen nichtprivilegierten Kopierseitenbefehl, der sowohl von den privilegierten als auch den nichtprivilegierten Programmen (z. B. den Anwendungsprogrammen) benutzt werden kann, um eine Seitenkopie in oder zwischen einem Adreßbereich (e) auszuführen, der Medien mit nur privilegiertem Zugriff enthält, zum Beispiel ES und AS, und Medien, die sowohl privilegierten als auch nichtprivilegierten Zugriff, zum Beispiel MS, haben. Der Token kann für eine Art des Adreßbereichs in einer nichtprivilegierten Benutzerzugriffsliste angeordnet werden, um von der Erfindung genutzt zu werden. Alle Sicherheitsanforderungen bezüglich der privilegierten Zugriffe bleiben erhalten, ohne daß Anwendungsprogramm verlassen zu müssen, solange wie Quell- und Zielseite vorher in einem oder in mehreren der elektronischen Speicher zugeordnet wurden. Im Gegensatz zum Stand der Technik kann der Gegenstand der Erfindung Seiten aus irgendeiner Art des virtuellen Adreßbereichs kopieren, der einen NMDS, einen Datenbereich oder einen Programm-/Datenadreßbereich enthält, ohne daß der Benutzer wissen muß, welches Medium die Quellseite sichert. Und im Gegensatz zum Stand der Technik kann der Gegenstand der Erfindung Seiten in eine Art des Adreßbereichs kopieren, der einen NMDS, einen Datenbereich oder einen Programm-/Datenadreßbereich enthält, ohne daß der Benutzer wissen muß, welches Medium die Zielseite speichert, obwohl die Erfindung auch die neue Einrichtung enthält, die es dem Benutzer ermöglicht, eine Absicht auszudrücken, die darin besteht, den MS als Zielmedium zu haben, ohne daß der Benutzer die Auswahl des Zielmediums steuern kann.)
- Die CPU, die den Seitentransportbefehl ausführt, kann einen Puffer haben. Diese Erfindung kann selektiv einen Puffer-Bypass aktivieren, um den Puffer daran zu hindern, Daten aus einer Seite zu empfangen, die innerhalb des oder in den ES kopiert wird; und die Erfindung kann den Puffer-Bypass aktivieren, wenn eine Seite mit Daten innerhalb des oder in den MS kopiert wird. Indem die Daten aus dem ES in den Puffer gelassen werden, können vorhandene Pufferdaten (über die Puffer-LRU-Steuerungen) herausgedrückt werden, bei denen eine Wahrscheinlichkeit der Prozessornutzung besteht. Diese ES/MS Puffer-Bypass-Steuerung kann die Prozessoreffizienz verbessern, indem Pufferfehler reduziert werden, die dadurch entstehen, daß dem Puffer erlaubt wird, die ES Daten (die nicht von dem Prozessor verarbeitet werden können) zu empfangen und die Pufferdaten herauszudrükken, bei denen die Wahrscheinlichkeit der Prozessornutzung besteht. Unter solchen Umständen besteht jedoch eine hohe Wahrscheinlichkeit, daß eine Seite, die in den MS kopiert wird, sofort von Befehlen verarbeitet wird, die sich an den Seitentransportbefehl aus dieser Erfindung anschließen.
- Der Seitentransportbefehl kopiert eine Seite mit Daten aus einer virtuellen Speicherstelle in eine andere virtuelle Speicherstelle in den gleichen Bereich oder in unterschiedliche virtuelle Adreßbereiche. Die aktuellen, physischen Speicherstellen der Quellseite und der Zielseite gehören bei diesem Befehl im allgemeinen nicht zu den Belangen des Benutzers. Noch ist die physische Richtung des Seitentransports Angelegenheit des Benutzers, da nur die virtuelle Richtung des Seitentransports für den Benutzer von Belang ist. Dieser Mangel an physischen Kenntnissen seitens des Benutzers resultiert darin, daß ein hoher Grad an Sicherheit bei der Benutzung des Systems erreicht wird, da das System die Regeln zum Zugriff auf Daten durchsetzen kann, die nicht von einem Benutzer verletzt werden können, der nicht die physische Speicherstelle der Daten kennt. Die resultierende physische Speicherstelle der kopierten Seite ist nur dem Kontrollprogramm des Systems bekannt. Diese Erfindung ermöglicht es jedoch dem Benutzer des Seitentransportbefehls, dem Kontrollprogramm einen Wunsch mitzuteilen, daß der MS das physische Medium ist, um die kopierte Seite zu empfangen, weil die Systemeffizienz dadurch gesteigert werden kann. Diese Erfindung erlaubt es dem Benutzer des Seitentransportbefehls jedoch nicht, eine Absicht darüber zu äußern, welches physische Medium die Quellseite enthalten sollte, da eine Quellseitenabsicht nicht die Systemeffizienz steigert und der Benutzer im allgemeinen nicht darauf achtet, in welchem Medium die Queliseite vorhanden ist.
- Obwohl die realen MS Adressen in dem Seitentransportbefehl (anstelle der virtuellen Adressen, da die logische Adressierung von dem Befehl unterstützt wird) benutzt werden können, muß es klar sein, daß die realen ES Adressen nicht von einem nichtprivilegierten Befehl benutzt werden können. Die realen ES Adressen sind nur in privilegierten Befehlen (die von dem Kontrollprogramm benutzt werden) verfügbar. Dadurch liefert diese Erfindung die Fähigkeit, die Anwendungsprogramme (welche nur nichtprivilegierte Befehle benutzen) daran zu hindern, reale ES Adressen mit dem Seitentransportbefehl zu benutzen.
- Ein deutlicher Sicherheitsvorteil wird durch den MVPG Befehl erzielt, der dem Benutzer eines Anwendungsprogramms die virtuelle Adressierbarkeit nur im ES erlaubt. Der Benutzer muß weder das Medium der Quellseite noch das der Zielseite kennen. Der Benutzer muß nur die virtuellen Adressen kennen. Und der Benutzer eines Anwendungsprogramms muß nicht die übersetzten Adressen kennen, die nur mittels der privilegierten Befehle beobachtet werden können, die dem Benutzer eines Anwendungsprogramms nicht zur Verfügung stehen
- Durch einen Vergleich fällt auf, daß die PAGEIN und PAGEOUT Befehle aus dem Stand der Technik in der US Patentschrift 4,476,524 (Brown et al.) und in der IBM S/370 Architektur nicht von einem Anwendungsprogramm benutzt werden können, um die Seite(n) mit Daten zwischen ES und MS zu kopieren, da es sich um privilegierte Befehle handelt, die nur von den Kontrollprogrammen wie zum Beispiel den Betriebssystemen, Steuerprogrammen und Hypervisoren genutzt werden können. Der Grund hierfür ist, daß diese vorherigen PAGEIN und PAGEOUT Befehle die reale Adresse von einer Seite im ES angeben müssen (die den Benutzern eines Anwendungsprogramm nicht mitgeteilt wird), um eine Seite mit Daten zwischen MS und ES zu kopieren. Aus Sicherheitsgründen ist es nur privilegierten Programmen erlaubt, auf ES zuzugreifen.
- Demgemäß wird die Anwendungsprogrammnutzung des MVPG Befehls erreicht, indem die Prozessorhardware und die Mikorcodeschnittstelle bestimmte Kontrollfunktionen haben, die von dem MVPG Befehl ohne das Wissen des Benutzers verlangt werden und welche für die Benutzerschnittstelle des MVPG Befehls nicht ersichtlich sind. Dadurch wird die Möglichkeit des Benutzers ausgeschlossen, die Sicherheit der Systemkontrollstatus zu beeinflussen, die mit dem MVPG Befehl verbunden sind.
- Der Seitentransportbefehl (MVPG) transportiert aktuell keine Seite, sondern kopiert vielmehr eine Seite aus einer zweiten bestimmten Operandenspeicherstelle (die eine virtuelle Adresse in einem Adreßbereich sein kann) in eine erste bestimmte Operandenspeicherstelle (die eine virtuelle Adresse in einem anderen Adreßbereich sein kann). Die Seite in der zweiten Speicherstelle ("Quellseite" genannt) wird durch die Ausführung des MVPG Befehls nicht verändert. Die Seite in der ersten Speicherstelle jedoch ("Zielseite" genannt) wird durch eine Kopie der Quellseite geändert, die von Daten überschrieben wird, die zuvor in der Zielseite existierten.
- Die virtuelle Adresse für jeden Operanden des MVPG Befehls ist entweder in eine reale Adresse im MS oder in eine Blocknummer im ES übersetzbar; je nachdem, ob MS oder ES als Sicherungsmedium in der PTE Seite (Seitentabelleneingabe) angegeben wird. Das MS/ES Medium wird für jede übersetzte Adresse durch die Einstellung von einem Paar Steuerbits in Form der PTE Architektur zur Benutzung mit jeder Operandenspezifikation des MVPG Befehls bestimmt, wenn die dynamische Adreßübersetzung benutzt wird.
- Wenn der MVPG Befehl ausgeführt wird, ist die physische Richtung der Übertragung wie folgt: ES in MS, MS in ES, MS in MS, oder ES in ES, was von der aktuellen Mediumauswahl in den PTEs für Quell- und Zielseite im voraus bestimmt wird. Wenn diese im voraus bestimmte physische Richtung von einer formulierten Absicht abweicht, die von dem nichtprivilegierten Benutzer des MVPG Befehls benutzt wird, sollte dieser MS das Zielmedium sein, die MVPG Befehlsausführung wird mit einer Ausnahmeunterbrechung beendet, um den Eingriff durch das Kontrollprogramm zu erreichen und um festzulegen, ob das aktuelle Zielmedium von dem Kontrollprogramm geändert werden sollte. Das Kontrollprogramm wird die Benutzeranforderung berücksichtigen und dieser zustimmen, wenn diese nicht im Widerspruch zu vorrangigen Faktoren steht wie zum Beispiel, ob die Priorität des Benutzers für die MS Bereichszuordnung derzeit nicht hoch genug ist, um dem Benutzer zu diesem Zeitpunkt eine Seite in MS zuzuordnen.
- Der (die) virtuelle(n) Adreßbereich(e) für die Quellseite und die Zielseite in dem MVPG Befehl müssen vorher von der privilegierten Software vorbereitet werden, die vor Ausführung des MVPG Befehls ausgeführt wird. Aber die elektronischen Medien und die physische Speicherstelle der Adressen für die Sicherung der Seiten muß nicht bestimmt werden, wenn ein MVPG Befehl ausgeführt wird. Eine Seitenfehlerausnahme wird während der Ausführung auftreten, wenn die physische Adresse und das elektronische Medium, die einen Seitenoperanden enthalten, nicht bestimmt wurden. Um Lösungen für die Ausnahmen zu finden, wird die privilegierte Kontrollsoftware, die mit dieser Ausnahme verbunden ist, die PTE des Operanden erzeugen und manipulieren, einschließlich der Einstellung seiner Kennzeichnungsbits I und V, um das elektronische Medium zu bezeichnen, das von dem Kontrollprogramm zugeordnet wurde, um die dargestellte Seite zu enthalten. Dann veranlaßt die Software einen Prozessor, den Befehl erneut auszuführen.
- Die MVPG Befehlsoperation (von dem Zeitpunkt ab, wo diese mit der Ausführung beginnt, bis zu dem Zeitpunkt, wo die Ausführung entweder erfolgreich oder nicht erfolgreich beendet wird) erfolgt durch den Prozessor und kann nicht von der Software gesteuert werden. Ein Bedingungsschlüssel (CC) von Null gibt ein erfolgreiches Verarbeitungsende (EOP) durch den MVPG Befehl an. Ein anderer Bedingungsschlüssel gibt einen nicht erfolgreichen Abschluß aufgrund einer Ausnahmebedingung an, die während dessen Ausführung auftritt. Eine Ausnahmebedingung kann auch Unterbrechungscodes erzeugen, die in zuvor bestimmten MS Speicherstellen bereitgestellt werden, um die besondere Ausnahmebedingung genau anzugeben. Die Unterbrechungsinformation ist für die privileqierte Systemsoftware ausreichend, die durch die Unterbrechung aufgerufen werden kann, um korrekt auf das Problem zu reagieren, das die Ausnahme veranlaßt.
- Der MVPG Befehl ist außerdem ausgelegt, um in einem Mehrprozessorsystem (MP) sowie in einer Einprozessorumgebung zu funktionieren, wobei die eingebauten Steuerungen ein ES Sperrbit L in einer PTE enthalten, das mit dem Befehl bereitgestellt wird, seine Operation unter allen Prozessoren in einem MP zu koordinieren.
- Ein einfaches Register und ein registererweitertes Befehlsformat (RRE) werden für das bevorzugte Ausführungsbeispiel des MVPG Befehls (d. h. ein Operationsteil mit Quelle und Datensenke der virtuellen Adreßoperandenfelder, die in Mehrzweckregistern, GRs bereitgestellt werden) ausgelegt. Das konventionelle RRE Befehlsformat liefert eine bekannte Benutzerschnittstelle für S/370 Befehle. Diese einfache Benutzerschnittstelle zeigt jedoch nicht die Komplexität der internen Operation des MVPG Befehls, der einige neue Verarbeitungseinrichtungen hat, die als Mikrocode und/oder Hardware strukturiert werden können.
- Andere Befehlsformate können ebenfalls für den MVPG Befehl bereitgestellt werden, zum Beispiel die RR, RX oder SS Formate, um die virtuellen Adreßoperanden des Befehls in Speicheradresse(n) anstelle von Mehrzweckregister(n) oder zusätzlich zu diesen anzugeben.
- Verschiedene Formen der PTEs können automatisch durch die virtuellen Adreßübersetzungen dieser Erfindung benutzt werden. Die verschiedenen Formen der PTEs können für einen nichtprivilegierten Benutzer des Seitentransportbefehls transparent sein, der PTEs benutzt. Somit wird der Befehl die PTE Form benutzen, auf die während der Adreßübersetzung zugegriffen wird. Die einzige Forderung besteht darin, daß sich das MS Mittelfeld, I, in den verschiedenen Formen, die für eine PTE zulässig sind, in der gleichen Speicherstelle befindet und daß eine zuvor bestimmte Speicherstelle in allen PTEs für das ES Mittelfeld (V) benutzt wird, und daß dieses einen besonderen Status hat, um eine valid-in-ES Bedingung in einer Form der PTE anzugeben, während diese Speicherstelle einen anderen zuvor bestimmten Status in einer anderen Form der PTE hat.
- Fig. 1 und Fig. 2 zeigen die Hardware, die von der Verarbeitung des Seitentransportbefehls (MVPG) benutzt wird.
- Fig. 3 bis Fig. 14 zeigen die Ausführungsverarbeitung des Seitentransportbefehls (MVPG).
- Fig. 15 zeigt die Hardware, die zur Ausführungsverarbeitung des IESBE (ungültige Erweiterungsspeicherblockeingabe) Befehls eingesetzt wird.
- Fig. 16 und Fig. 17 zeigen die Ausführungsverarbeitung des IESBE Befehls.
- Der Seitentransportprozeß wird in Fig. 3 bis Fig. 14 beschrieben, die eine Schrittfolge zeigen, die automatisch von einem Prozessor ausgeführt wird, der einen einzelnen Befehl ohne den Eingriff eines Kontrollprogramms vom ersten Schritt "MVPG als aktuellen Befehl decodieren" ausführt, bis der letzte Schritt in dem Prozeß erreicht ist, der entweder ein "EOP" oder "ENDE" Schritt ist. Der EOP (Ende der Verarbeitung) Schritt gibt einen erfolgreichen Abschluß bei der Ausführung des Seitentransportbefehls an und läßt einen Bedingungsschlüssel von Null (CC=0) in dem CC Feld im aktuellen PSW Register zurück, um die erfolgreiche Ausführung des Seitentransportbefehls im aktuellen Programm anzugeben. Der ENDE Schritt gibt einen nicht erfolgreichen Abschluß bei der Ausführung des Seitentransportbefehls an, da während der Ausführung eine Ausnahmebedingung aufgetreten ist. Ein Nichtnull-Bedingungsschlüssel (CC=1 oder CC=2) bleibt in dem CC Feld im aktuellen PSW Register zurück oder andere codierte Daten bleiben in den zuvor bestimmten Adressen zurück, um die nicht erfolgreiche Ausführung des Seitentransportbefehls im aktuellen Programm anzugeben, das ein Anwendungsprogramm sein kann. Ein nicht erfolgreicher Abschluß erfordert im allgemeinen den Eingriff durch das (privilegierte) Kontrollprogramm, um die Ausnahmebedingung zu verarbeiten oder zu korrigieren, nachdem der MVPG Befehl durch den Prozessor mit einer Wahrscheinlichkeit erneut ausgeführt wird, die erfolgreich abgeschlossen werden kann (d. h. Ende mit dem EOP Schritt).
- Fig. 1 und Fig. 2 zeigen die Hardware-Register, bistabile Einheiten und Speicherbereiche, die in einem Prozessor (CPU) zur Verarbeitung des bevorzugten Ausführungsbeispiels des MVPG Befehls, der in den Fig. 3 - Fig. 14 dargestellt ist, bereitgestellt werden. Diese Hardware-Elemente befinden sich in verschiedenen Teilen der CPU wie zum Beispiel in ihrem Befehlselement (IE), Ausführungselement (EE), Puffersteuerungselement (BCE), Erweitungsspeicher-Steuergerät (ESC) und Hauptspeicher (MS).
- Das IE des Prozessors enthält ein Befehlsdecodierungsregister, um jeden Befehl des aktuellen Programms, auf das aus dem Speicher zur Ausführung zugegriffen wird, sowie jeden MVPG Befehl zu empfangen. Jeder MWPG Befehl, der von dem Decodierungsregister empfangen wird, enthält das Operationsteil (opcode) und die GR Operandenbezeichnungen einschließlich der GRr1 und GRr2 Felder eines MVPG Befehls, in dem das GRr2 Feld die logische Adresse (LA) einer Quellseite enthält, die sich entweder in MS oder ES befindet, und das GRr1 Feld enthält die LA einer Zielseite, die sich entweder in MS oder ES befindet. Die LA kann entweder eine 24 oder 31 Bitadresse sein, die gesteuert wird, indem das A Bit in das aktuelle PSW (Programmstatuswort) gesetzt wird, das in dem EE gespeichert ist.
- Durch die Operation des MVPG Befehls werden die Daten in der angegebenen Speicherstelle der Quellseite in die angegebene Speicherstelle der Zielseite kopiert. Jede Seite in dem bevorzugten Ausführungsbeispiel hat eine Größe von 4096 Byte (4 KB). Eine logische Adresse (die in r1 und r2 enthalten ist) kann entweder eine virtuelle Adresse (VA) oder eine reale Adresse sein - je nach der 1 oder 0 Einstellung in einem DAT Bit, T, im aktuellen PSW. Die LAs von Quelle und Ziel haben beide die gleiche Form, d. h. entweder sind beide virtuelle oder reale Adressen, wie dies von dem Status des DAT Bits, T, im PSW angegeben wird.
- Jede Ausführung des MVPG Befehls kopiert eine Seite, indem die Seite in der Quellspeicherstelle im MS oder ES in eine Seite in der Zielspeicherstelle im MS oder ES kopiert wird. Mit einer Programmschleife, welche den MVPG Befehl benutzt, kann eine Sequenz mit Seiten, die eine Sequenz mit logischen Adressen enthält, kopiert werden.
- Ein zwei Bit Feld, AS, im PSW (das mit dem DAT Bit T benutzt wird, das auf 1 steht) aktiviert die flexible Adreßbereichssteuerung über die virtuellen Adressen, die für die Quell- und Zielseiten eines MVPG Befehls angegeben werden. Dann können sich die bezeichneten virtuellen Adressen entweder in den gleichen oder in verschiedenen, virtuellen Adreßbereichen befinden. Wenn das Feld AS auf 00 gestellt wurde, müssen die GRr1 und die GRr2 Adressen im gleichen Adreßbereich sein. Wenn AS jedoch auf 0,1 (Zugriff sregistermodus) gestellt ist, können sich die GRr1 und GRr2 Operanden in verschiedenen Adreßbereichen befinden. Die virtuellen Adreßbereiche für die GRr1 und GRr2 Operanden sind in den ALETs (Zugriffsliste-Eingabetoken) angegeben, die in den verschiedenen ARs (Zugriffsregistern) enthalten sind bzw. zu GRr1 und GRr2 gehören. Der gleiche ALET Wert gibt in beiden ARs den gleichen Adreßbereich sowohl für die Quell- als auch die Zielseiten des MVPG Befehls an. Unterschiedliche ALET Werte dieser ARs geben unterschiedliche, virtuelle Adreßbereiche für die Quell- und Zielseiten des MVPG Befehls an. (Ein ALET spezifiziert eine Segmenttabelle, die für die virtuelle Adreßübersetzung auf die Art und Weise benutzt wird, die in der US Patentschrift mit der Seriennummer 154,689 (P09-87-004) beschrieben wird, die am 10. Februar 1989 von R. Baum et al. veröffentlicht wurde und den Titel trägt "Multiple Address Space Token Designation, Protection Controls, Designation Translation and Lookaside", die dem gleichen Assignaten wie der Gegenstand der Erfindung erteilt wurde.)
- Die Operanden, die von GRr1 und GRr2 definiert werden, sind reale Adressen, wenn das DAT Bit in dem aktuellen PSW deaktiviert ist (T=0). Wenn DAT deaktiviert ist, kann der MVPG Befehl innerhalb des MS nur eine Seitenkopieroperation kontrollieren, da die Systemarchitektur aus Sicherheitsgründen so strukturiert ist, daß ein Benutzer mit Problemstatus keinen unkontrollierten Direktzugriff auf den ES erhält, wie dies der Fall wäre, wenn der Benutzer die Möglichkeit hätte, den ESBN Wert zum Zugriff auf ES direkt anzugeben. Bei Einsatz der virtuellen Adressierungskontrolle über die ESBNS muß der Benutzer nicht die ESBN Werte angeben, wenn er auf den ES zugreift. Beim MS bleibt die konventionelle Fähigkeit, einem Benutzer die reale Adressierung zum Zugriff auf MS zu erlauben, für den MVPG erhalten.
- Die Art der Operandenadressen, die für den MVPG Befehl vorgesehen ist, wird durch den Status der Bits T und A im aktuellen PSW angegeben. Wenn das Bit T 1 ist, befinden sich die virtuellen Adressen in GRr1 und GRr2, wenn jedoch Bit T 0 ist, befinden sich die realen Adressen in GRr1 und GRr2. Wenn Bit A 1 ist, sind die 31 Bit langen Adressen in GRr1 und GRr2, wenn aber Bit A 0 ist, sind die 24 Bit langen Adressen in GRr1 und GRr2.
- Wenn die virtuellen Adressen von dem Benutzer in GRr1 und GRr2 vorgesehen sind, veranlassen diese den Zugriff auf D-PTE bzw. S-PTE über die konventionellen Adreßübersetzungsoperationen, die in den handelsüblichen S/370 Betriebssystemen von IBM und in anderen ausgeführt werden. Die neuen Formen der PTEs werden mit dieser Erfindung benutzt. Wenn die PTEs zurückgeholt werden, geben die Status ihrer I und V Bits an, ob sich die jeweilige Seite im MS oder ES oder in keinem von beiden befindet.
- Der ESA Modus wird in dem aktuellen PSW gesetzt, um die Benutzung des Prozessors von seinem umfangreichsten, virtuellen Adressierungsmodus anzugeben, in dem jeder aktuelle Adreßbereich durch einen ALET in einem Zugriffsregister (AR) definiert wird, bzw. mit jedem GR, z. B. GRr1 und GRr2, verbunden ist. Wenn für die beiden Operanden der gleiche Adreßbereich benutzt wird, wird der gleiche ALET in beide ARs geladen. Wenn für die beiden Operanden verschiedene Adreßbereiche benutzt werden, werden verschiedene ALETS in die beiden ARs geladen.
- Ein ALET plaziert eine Segmenttabelle im MS, um einen Adreßbereich in der ESA/370 Architektur zu definieren. Jede Segmenttabeile besteht aus Segmenttabelleneingaben (STEs). Jede STE plaziert, wenn gültig, eine Seitentabelle (PT) im MS. Jede PT besteht aus 256 Seitentabelleneingaben (PTEs), und jede PTE ist vier Bytes lang. In diesem Ausführungsbeispiel folgt auf jede PT sofort eine externe Seitentabelle (XPT) in der gleichen MS Kachel - wie dies unten in Fig. 2 dargestellt ist. Die XPT enthält die externen Seitentabelleneingaben (XPTEs), von denen jede 12 Bytes lang ist. Die Speicherstelle von jeder XPTE in der Kachel kann aus der Speicherstelle einer zugehörigen PTE aufgrund der bekannten Anzahl der eingreifenden PTEs und der XPTEs und ihrer bekannten Länge einfach errechnet werden.
- Wenn S-LA und D-LA virtuelle Adressen (d. h. PSW DAT=1) sind, sind die Verarbeitungsschritte "Adreßübersetzung für S-LA in GRr2 durchführen" in Fig. 4 und "Adreßübersetzung für D-LA in GRr1 durchführen" in Fig. 5 inklusive AR und DAT Übersetzungsoperationen, falls diese Übersetzungen in Vorgriffspuffern vorhanden sind, zum Beispiel, wenn sich STD in einem ALB (Zugriffsregister des Vorgriffspuffers) befindet und die übersetzte virtuelle Adresse in einem TLB (Übersetzungsvorgriffspuffer) vorhanden ist oder falls diese nicht im TLB ist, gibt dessen PTE an, daß sich die angeforderte Seite entweder im MS oder ES befindet. Die Übersetzung des AR Inhalts (d. h. ALET) ist ein STD (Segmenttabellenbezeichner), und die DAT Übersetzung einer virtuellen Adresse ist eine absolute Adresse im MS oder ES für eine Kachel, die zugeordnet wurde, um den Inhalt der Quell- oder Zielseite aufzunehmen. Der Prozessor führt automatisch die DAT Übersetzung aus, wenn der TLB die Übersetzung nicht hat, aber die PTE angibt, daß die Seite im MS oder ES (d. h. V,I=11 oder V,I=00) ist.
- Wenn jedoch eine virtuelle Adresse nicht die verlangte AR Übersetzung im ALB verfügbar hält, und ihre DAT Übersetzung im TLB nicht verfügbar ist oder ihre PTE angibt, daß sich die Seite weder im MS noch ES befindet, generiert der Prozessor ein Seitenfehler-Ausnahmesignal, die MVPG Befehlsausführung wird beendet und das Steuerprogramm aufgerufen, um eine oder beide der fehlenden Übersetzungen auszuführen, die im TLB oder ALB sind, wobei diese im Prozessor bei Wiederausführung des nicht erfolgreichen MVPG Befehls vorhanden sind.
- Ein zusätzliches Mehrzweckregister, GRr1+1, wird von dem MVPG Befehl genutzt, um bestimmte Informationen an die CPU zu übertragen, die zur Ausführung des MVPG Befehls verwendet werden. GRr1+1 ist der GR mit der nächsthöheren GR Zahl nach GRr1. Der zugehörige Inhalt von GRr+1 ist in Fig. 1 als Bits D, S, DRI und CCOP und einem AKEY Feld abgebildet. Die D und S Felder steuern die Speicherschutz-Schlüsseloperationen für den MVPG Befehl, und die DRI und CCOP Felder steuern die Sonderoperationen für den MVPG Befehl, die sich darauf auswirken, wie der Befehl bezogen auf seine nachfolgenden Befehle im Programm zu benutzen ist.
- Die MVPG Befehlsausführung kann durch Setzen der CC Bits in dem PSW im Ausführungselement in Fig. 1 beendet werden. Wenn die MVPG Befehlsausführung erfolgreich ist, wird diese durch Eingabe des gewünschten Bedingungsschlüssels, CC=0, beendet. Ein Abschluß, der in CC=1 oder CC=2 resultiert, kann vorgesehen werden, wenn die Ausführung nicht erfolgreich ist. Die Ausgabe der Bedingungsschlüssel 1 und 2 kann durch Verwendung des CCOP Bits verhindert werden, das sofort die Kontrollsoftware zur Verarbeitung der Bedingung aufruft, die andernfalls CC=1 oder CC=2 gesetzt hätte.
- Wenn das CCOP Bit so auf 0 gesetzt ist, dann ist CC=1 oder CC=2 im PSW nicht gesetzt. Statt dessen aktiviert das CCOP=0 Bit eine Fehlerunterbrechungsoperation für die Zielseite, die durch die Bedingungen automatisch aufgerufen wird, die andernfalls einen CC=1 oder CC=2 veranlaßt hätten, in dem PSW zu resultieren, wie zum Beispiel sofort die Seitenfehler-Unterbrechungssoftware zu starten, um die Zielseite in der Speicherhierarchie zu finden und diese in den MS zu kopieren. Dieses Verfahren vermeidet einen zusätzlichen Befehlstest des CC, um die privilegierte Software zur Verarbeitung einer Ausnahme aufzurufen.
- Wenn das CCOP (CC Option) Bit auf 1 gesetzt ist, sind die CC=1 und CC=2 Einstellungen im PSW gesetzt. Dann wird ein zusätzlicher Testbefehl benötigt, um den CC Inhalt des PSW abzutasten, bevor die privilegierte Software aufgerufen werden kann, um die Ausnahme zu verarbeiten. CC=2 ergibt sich, wenn die Quellseite im MS oder ES nicht verfügbar ist. CC=1 ergibt sich aus irgendeiner der Bedingungen: (1) wenn die Zielseite im MS oder ES nicht verfügbar ist oder (2) die Zielseite im MS nicht verfügbar ist, während das DRI Bit auf 1 gesetzt ist oder (3) ein Fehler beim Zugriff auf ES aufgetreten ist oder (4) das Sperrbit in einer PTE auf 1 gesetzt wurde oder (5) ein PTE Formatfehler festgestellt wurde. Codierte Bits in einer zuvor bestimmten MS Speicherstelle werden die genaue Bedingung für die eingreifende, privilegierte Software definieren, so daß diese korrekt funktionieren kann.
- Der Benutzer des MVPG Befehls kann nicht kontrollieren, ob sich die Queliseite im ES oder MS befindet. Der Benutzer eines MVPG Befehls kann mit der Zielseite zu tun haben, da der Benutzer andere Befehle benutzen kann, die eine Kopie von einer Seite in einer virtuellen Speicherstelle im MS anfordern können. Aus diesem Grund ermöglicht der MVPG Befehl dem Benutzer, die privilegierte Softwareauswahl des MS oder ES Mediums für die Zielseite zu beeinflussen. Und der Einfluß des Benutzers wird durch seine Einstellung des DRI (Zielreferenzabsicht) Bit in GRr1+1 ausgedrückt. Wenn DRI aktiviert ist und die Ziel-PTE MS (I,V=00) auswählt, wird die Zielseite sowohl in den MS als auch in den Prozessorpuffer kopiert.
- Wenn jedoch das DRI Bit aktiviert ist (DRI=1) und wenn die Ziel-PTE MS nicht auswählt (d.h. I,V in der PTE ist nicht 00), ruft der MVPG Befehl automatisch das privilegierte Steuerprogramm auf und beendet die Ausführung. Das Steuerprogramm reagiert durch wiederholte Prüfung der Mediumzuordnung in der Ziel-PTE und ordnet diese dem MS zu, wenn keine Bedingung vorhanden ist, die eine solche MS Seitenzuordnung untersagt. Nachdem die Seite dem MS zugeordnet wurde, ändert das Steuerprogramm die I,V Bits in den 00 Status in der Ziel-PTE, um die Seite in dem MS Medium darzustellen und sendet den Prozessor in den MPVG Befehl zurück. Eine Neuausführung des MVPG Befehls kopiert dann die Quellseite in die MS Zielseite und untersagt den Puffer-Bypass, so daß die Zielseite in den Puffer geschrieben wird, wenn auf diese im MS zugegriffen wird.
- Deshalb ermöglicht das DRI Bit die effiziente Nutzung des Pufferbereichs, indem der Puffer nur benutzt wird, wenn das Benutzerprogramm dem MVPG Befehl mit anderen Befehlen folgt, die auf Daten in der Zielseite zugreifen.
- In einem Prozessor mit einem kleinen Puffer, kann nur der Teil der Zielseite in den Puffer kopiert werden. Dieser Teil ist die Puffereinheit, welche das vom Zieloperanden adressierte Byte (z. B. der Puffer stimmt mit diesem Byte überein) enthält.
- D-PTE und S-PTE, die in Fig. 2 dargestellt sind, werden benutzt, um Ziel- und Quellseite eines MVPG Befehls zu lokalisieren. Die zugehörige D-XPTE bzw. S-XPTE enthalten die Adressen der Sicherungsseiten im Hilfsspeicher (gewöhnlich in einer DASD Einheit) für die Ziel- und Quellseiten. Auf den XPTE wird von der privilegierten Software zugegriffen, wenn ein Seitenfehler in einer virtuellen Adresse auftritt, die eine Seite verlangt, wenn ihre PTE angibt, daß die Seite im MS oder ES aktuell nicht gültig ist.
- Die Notation, die in den FIGUREN verwendet wird, ist S-PG, S- PTE und S-XPTE für eine Quellseite, ihre PTE und XPTE; und D- PG, D-PTE und D-XPTE für eine Zielseite, ihre PTE und XPTE.
- Ein neues Format wird für die PTEs benutzt, das für dieses Ausführungsbeispiel erforderlich ist. Das einzelne Adreßfeld in jeder PTE enthält entweder ein PFRA (realer Adreßwert der Kachel) oder ein ESBN (Erweiterungsspeicherblocknummer) Wert. Deshalb plaziert eine PTE eine Seite entweder im MS oder im ES aber nicht in beiden.
- Außerdem kann eines der zahlreichen PTE Formate in dieser Erfindung benutzt werden, so lange wie die Speicherstellen für die PFRA/ESBN Adressen und die 1 und V Steuerbits bekannt sind. Es werden zwei Formen der PTE in dieser Erfindung benutzt, die von den Status der I und V Steuerbits abhängig sind. Eine PTE Form ist I,V=11, in der das Adreßfeld einen PFRA enthält. Die zweite PTE Form ist I,V=00, in der das Adreßfeld eine ESBN enthält. Eine dritte Form der PTE wird ebenfalls unterstützt, um Aufwärtskompatibilität für die Operation des Gegenstands der Erfindung zu erhalten. Die dritte PTE Form wird durch einen Nullwert in dem V Steuerbit angegeben, der ein zuvor benutztes PTE Format angibt, das kein V Steuerbit hatte und das ES Medium nicht virtuell adressierte, weil sein PTE Adreßfeld nur einen PFRA zur Adressierung von MS enthalten konnte.
- Demgemäß ist in dieser Erfindung eine Seite entweder im MS oder ES - wie dies von den PTE Kennzeichnungsbits 1 bzw. V bestimmt wird. Wenn I,V=00 ist die Seite im MS, und dann enthält das PTE Adreßfeld einen PFRA, der das erste Byte der Seite im MS plaziert. Wenn jedoch I,V=11 ist die Seite im ES, und dann enthält das PTE Adreßfeld statt dessen eine ESBN, welche die Seite im ES anstatt im MS plaziert.
- I,V kann jedoch nicht 01 sein, weil dies bedeuten würde, daß die Adresse in der PTE Eingabe sowohl für eine MS Seite als auch für eine ES Seite gültig ist, was nicht erlaubt ist, da die PTE nur ein Adreßfeld hat, das nicht zwei verschiedene Seitenadressen (eine im ES und eine im MS) enthalten kann. Die I,V=01 Bedingung generiert ein Ausnahmesignal.
- Auch wenn das Adreßfeld in der PTE keine gültige Adresse enthält, ist die I,V=10 Bedingung während der Ausführung vorhanden und ein Seitenfehlerausnahmesignal wird veranlaßt. Das Seitenfehlerausnahmesignal führt zu einer Seitenfehlerunterbrechung, die in der Betriebssystemsoftware resultiert, die zur Verarbeitung der Ausnahme aufgerufen wird. Das Betriebssystem ordnet den MS zu, um die Seite aus dem Hilfsspeicher (z. B. DASD) zu empfangen.
- Wenn die Unterbrechung für die Quellseite ist, die weder im MS noch ES ist, ändert die privilegierte Software im allgemeinen nicht die Einstellungen der I,V Bits in der Quell-PTE sondern ordnet im MS nur eine Seite für die Zielseite zu, wenn diese nicht bereits zugeordnet wurde, und kopiert die Seite aus der Speicherhierarchie in diese Seite.
- Wenn jedoch das DRI Bit in GRr1+1 auf 1 gesetzt ist, wenn ein I,V=10 oder 11 infolge der im MS nicht zugeordneten Zielseite ist, wird die privilegierte Software im allgemeinen durch die DRI=1 Einstellung beeinflußt, welche die Absicht des Benutzers angibt, daß das Zielmedium MS ist. Der Benutzer wird die DRI=1 Absicht ausdrücken, wenn die Befehle im Anwendungsprogramm (sofort nach dem MVPG Befehl) auf die Zielseite zugreifen. Im Fall von DRI=1 wird die privilegierte Software die Ziel-PTEs der I,V Bits in den 00 Status ändern, nachdem die Quellseite aus der Speicherhierarchie (z. B. MS, ES oder DASD) in die MS Speicherstelle für die Zielseite kopiert wurde.
- Dadurch wird die privilegierte Software, die von einer Seitenfehlerausnahme in der Ziel-PTE aufgerufen wurde, eine Kacheladresse im MS zuordnen, und diese MS Adresse wird als PFRA in das Adreßfeld in der zugehörigen D-PTE geschrieben. Und die privilegierte Software setzt I,V=00 in der D-PTE. Eine Neuausführung des MVPG Befehls wird dann feststellen, daß die Zielseite im MS zugeordnet wurde.
- Wenn aber DRI=0 bei einer Zielseite ist, die eine Seitenfehlerunterbrechung hat, ordnet die privilegierte Software entweder eine Speicherstelle in MS oder ES zu. Im Falle von ES wird die zugehörige ES Seitenblocknummer als ESBN Wert in das Adreßfeld der zugehrigen D-PTE geschrieben, während die Seite von der privilegierten Software in ES kopiert wird. Im Falle von MS schreibt dann die privilegierte Software den PFRA der zugeordneten Kachel in die zugehörige D-PTE, und die Quellseite wird in die MS Zielspeicherstelle kopiert.
- Dieses Verfahren zur Einstellung des Inhalts einer PTE, wenn eine Seite in den MS oder ES zugeordnet und kopiert wird, wird PTE oder Seitenvalidierung genannt.
- Ungeachtet des DRI Bitstatus, wenn die I,V Biteinstellung in S- PTE MS oder ES angibt, wird dieser im allgemeinen von der Unterbrechungssoftware nicht geändert. Und wenn DRI=0, und wenn die I,V Biteinstellung in der D-PTE MS oder ES angibt, wird dieser im allgemeinen auch nicht von der Unterbrechungssoftware geändert.
- Wie bereits zuvor erörtert, führt die Generierung eines Ausnahmesignals zur Eingabe der Unterbrechungscodes in den MS und zum Abschluß der Verarbeitung eines MVPG Befehls. Und die darauffolgende Programmunterbrechung ruft ein Kontrollprogramm auf, zum Beispiel die Betriebssystemsoftware, um die Maßnahme durchzuführen, die zur Bearbeitung des Problems notwendig ist, das durch die eingegebenen Ausnahmesignalen angezeigt wird. Ein wichtiges Beispiel dafür ist der Einsatz des MVPG Befehls in eine Programmschleifenroutine, um eine große Anzahl von Seiten zu transportieren. In diesem Fall gibt ein Seitenfehler während der ersten Schleife, die von der MVPG Routine ausgeführt wird, die Wahrscheinlichkeit eines Seitenfehlers in jeder anderen ihrer MVPG Schleifenoperationen an, so daß sich die Sicherungen in der Testbefehlsausführung auf Hunderte von Ausführungen belaufen können, wenn Hunderte von Seiten von der Schleifenprogrammroutine zu übertragen sind.
- Der MVPG Befehl wird konzipiert, um dem Benutzer zu ermöglichen, wahlweise die Benutzung der bedingten Sprungbefehle zu vermeiden, die sich an den MVPG Befehl anschließen, um dessen Bedingungsschlüssel zu prüfen und zu verzweigen. Dies geschieht durch den Einsatz des CCOP (CC optional) Bit in GRr1+1. Wenn CCOP auf 0 gesetzt ist, wird der MVPG Befehl in der privilegierten Software automatisch bei Auftreten einer Ausnahme eine Unterbrechung erzwingen, wodurch die vorherige Anforderung aufgehoben wird, die Verzweigungsbefehle zu benutzen, um den CC Status des Befehls jedesmal zu prüfen, wenn dieser ausgeführt wird. Dies beschleunigt ein Programm, das den MVPG Befehl benutzt, indem weniger Befehle in seiner Seitenübertragungsprogrammschleife angefordert werden, d.h. durch Wegfall eines resultierenden CC und der bedingten Sprungbef ehle, um den resultierenden CC Wert zu prüfen.
- Jedoch nur durch Einstellung CCOP=1 bleibt die Benutzeroption bestehen, den MVPG Befehl zur Generierung eines CC Wertes zu haben, der von den bedingten Sprungbefehlen zu prüfen ist, die sich anschließen. Die Prüfung des CC Wertes bestimmt, wann die privilegierte Software aufzurufen ist.
- Jede PTE, die von dem bevorzugten Ausführungsbeispiel benutzt wird, enthält auch andere Kennzeichnungsbits, zum Beispiel N, P, R, C und L. Ein Speicherschlüsselfeld (SKEY) und ein abrufgeschütztes Kennzeichnungsbit F werden in der zugehörigen XPTE gefunden und sind logischerweise Teil der PTE (diese befinden sich in der XPTE infolge von Platzmangel in der PTE). Durch die N Biteinstellung wird gesteuert, ob der Schlüsselschutz für eine ES Seite benutzt wird, die von der PTE adressiert wird. (Wenn eine MS Seite von der PTE adressiert wird, wird diese nicht ausdrücklich von der Speicherschlüsselhardware des Prozessors auf herkömmliche Art und Weise geschützt.) Das P Bit verhindert, wenn dieses auf 1 gesetzt wird, Speicherungen, erlaubt jedoch Abrufe aus der Seite, die von der PTE entweder im MS oder ES adressiert wird. Wenn P=0 sind sowohl Abrufe und Speicherungen in der adressierten Seite erlaubt. Das R Bit wird auf 1 gesetzt, wenn eine Referenz innerhalb der Seite im ES für einen Abruf oder eine Speicherung erfolgt. Das C Bit wird auf 1 gesetzt, wenn durch eine Speicherung eine Änderung in der Seite im ES erfolgt. Das Sperrbit L wird von einem lokalen Prozessor auf 1 gesetzt, um andere Prozessoren in einem MP zu warnen, wenn der lokale Prozessor beabsichtigt, eine Änderung im PTE oder seinem XPTE durchzuführen.
- Die interne Funktion des MVPG Befehls ändert weder die N, P oder F Bits noch die I oder V Bits in einer PTE. Weitere Steuerbits (zum Beispiel R, C und L Bits in der zugehörigen PTE) können durch die interne Funktion des MVPG Befehls geändert werden.
- Die Einstellung des Bits N in der PTE steuert, ob die SKEY und F Felder in der zugehörigen XPTE benutzt werden, um die zugehörige Seite in ES zu schützen. Wenn N=0, schützen die SKEY und F Felder in der XPTE jeden Zugriff auf eine zugehörige ES Seite vor unerlaubtem Zugriff, indem eine Schlüsselvergleichsfunktion benutzt wird, wie dies mit einem MS Speicherschlüssel und einem Abrufschutzbit zum Schutz von Zugriffen auf eine zugehörige MS Seite erfolgt. Der MS Speicherschlüssel mit seinen Schutzbits befindet sich in dem konventionellen Speicherschlüsselbereich im Prozessor und diese werden auf ihre konventionelle Art und Weise benutzt, wenn auf eine MS Seite für den MVPG Befehl zugegriffen wird. (Die SKEY und F Felder in der XPTE werden in den MS Speicherschlüsselbereich kopiert, wenn die zugehörige Seite zugeordnet und im MS validiert wird, um den MS Speicherschlüssel zum Schutz dieser Seite im MS zu initialisieren.)
- Der ES Speicherschlüsselschutz funktioniert im einzelnen wie folgt: Wenn Bit N auf 1 gesetzt ist, wird kein Speicherschutz aktiviert, um die Zugriffe auf die zugehtrige Seite im ES zu schützen. Wenn Bit N auf 0 gesetzt ist, wird der ES Seitenzugriffsschutz aktiviert, um den AKEY in GRr1+1 und/oder den ACC- KEY im PSW zu benutzen. Dieser Speicherschlüsselschutz enthält den Vergleich des SKEY in dem zugehrigen XPTE mit dem ACC-KEY im PSW oder mit dem AKEY in GRr1+1 sowie die Benutzung des F Bits im XPTE, um die unerlaubten Abrufzugriffe auf die ES Seite zu verhindern. Welcher dieser beiden Zugriffsschlüssel, AKEY oder ACC-KEY, für den ES Seitenschutz benutzt wird, ist abhängig von den Einstellungen der Bits D und S im Register GRr1+1. (Während der Ausführung des MVPG Befehls werden die Werte der Bits D und S in die Trigger XD bzw. XS kopiert, in denen die Status der Bits D und S geprüft werden.)
- Dadurch bestimmen die Status der D und S Bits in GRr1+1, welche(r) Zugriffsschlüssel in den ES und MS Speicherschutzoperationen des MVPG Befehls benutzt werden. Wenn D=1 und S=0, wird die Speicherung einer Zielseite von dem Zugriffsschlüssel in dem AKEY Feld in GRr1+1 gesteuert und der Abruf einer Quellseite von dem Zugriffsschlüssel im ACC-KEY Feld im PSW. Wenn D=0 und S=1, wird die Speicherung der Zielseite von dem ACC-KEY im PSW gesteuert und der Abruf der Quellseite von AKEY des GRr1+1. Wenn sowohl D=0 als auch 8=0, werden sowohl der Abruf der Quellseite als auch die Speicherung der Zielseite von dem ACC-KEY im PSW gesteuert. Und wenn sowohl D=1 als auch S=1, werden sowohl der Abruf der Quellseite als auch die Speicherung der Zielseite von AKEY des GRr1+1 gesteuert.
- Das F Feld in der XPTE ist ein Seitenabruf schutzbit, um Speicherzugriffe auf die zugehörige Seite im ES zu verhindern. Dieses F Bit funktioniert wie das F Bit im MS Speicherschlüssel - wie dieses in der S/370 Architektur festgelegt wurde. Wenn F=0, werden nur bei einer Nichtübereinstimmung des Zugriffsschlüssels Abrufzugriffe auf die zugehörige ES Seite erlaubt. Wenn aber F=1, ist bei einer Nichtübereinstimmung des Zugriffsschlüssels weder ein Abruf- noch ein Speicherzugriff auf die zugehörige ES Seite zulässig, und eine Ausnahme wird signalisiert, wenn ein nicht übereinstimmender Zugriff versucht wird. (Das F Bit wird auch in den MS Speicherschutzschlüsselbereich, ohne Abbildung, geladen, wenn die Seite als Resultat eines Seitenfehlers in den MS transportiert (kopiert) wird, so daß dann dieses F Bit in der XPTE indirekt benutzt wird, um die Zugriffe auf eine zugehörige MS Seite zu steuern.)
- Der "Testabruf" von einer MS Seite wird in den hier erwähnten Figuren benutzt. Dies bedeutet implizit, indem die MS Speicherschutzeinrichtung in der Ausdehnung benutzt wird, die aktiviert ist, daß die gelieferten und aktivierten Ausnahmesignale erkannt werden, wenn der MS Zugriffsschutz durch Zugriff auf eine Seite verletzt wird. Ein Testabruf prüft die vorhandenen Ausnahmestatus, um festzulegen, wenn ein Ausnahmesignal durch eine Operation, einschließlich einer Ausnahme bei Verletzung von: Speicherschutz, dynamischer Adreßübersetzung und Zugriffsregisterübersetzung generiert wurde. Die D und S Bit Status werden in die Testabrufoperation bezüglich der Abrufschutzausnahmesignale integriert.
- Die Prozessorhardware, die von dem bevorzugten Ausführungsbeispiel bei der Ausführung des MVPG Befehls benutzt wird, enthält eine Anzahl von Registern, Bereichen und Triggern, die in den Figuren 1 und 2 abgebildet sind. Diese enthalten Adreßregister im Befehlselement (IE), Ausführungselement (EE), Puffersteuerungselement (BCE) und Erweiterungsspeicher-Steuergerät (ESC) des Prozessors.
- Die IE Register, ADR1 und ADR2, werden benutzt, um die Adressen zu behalten, zum Beispiel die logischen Adressen der Operanden und die absoluten Adressen, die für die Lokalisierung der PTEs im MS eingesetzt werden. Das IE Register STA dient dazu, die logische Adresse zu behalten, die zur Speicherung der Zielseite im ES oder der absoluten Adresse verwendet wird, um die PTE im MS zu speichern.
- Das EE hat PSW Register, einen Mehrzweckregisterbereich (GR), einen Arbeitsspeicher, Register und Trigger. Das EE enthält ein Ereg, das eine Kopie des aktuellen MVPG Befehls behält, der gerade ausgeführt wird. Ein ILC Register behält die Länge des aktuellen Befehls, um den nächsten Befehl im Programm abzurufen. Die PSW Register enthalten die Felder des aktuellen PSW, in dem die zugehörigen Felder mit T, ACC KEY, P, AS, CC, A und IA bezeichnet werden, wie dies in Fig. 1 dargestellt ist. Der GR Bereich enthält die 16 Mehrzweckregister des S/370 Prozessors, von dem angenommen wird, daß dieser in der ESA/370 Architektur aufgebaut ist. Eines dieser 16 GRs kann von dem MVPG Befehl als GRr1, GRr2 oder GRr1+1 zugeordnet werden. Der Arbeitsspeicher enthält die Register WS1-WS6, welche die PTE Adressen, die PTEs und die logischen Adressen behalten. Ein Schlüsselmaskenregister (KM) hat 16 Bits (die jeweils den 16 verschiedenen Speicherschutzschlüsselwerten entsprechen), in denen jede Bitposition auf einem 1 Status steht, was bedeutet, daß sein entsprechender Schutzschlüssel zur Benutzung durch den Benutzer des aktuellen Problemstatus des Systems verfügbar ist. Ein AKEY Register empfängt während der Ausführung des MVPG Befehls eine Kopie des AKEY Feldes in GRr1+1.
- In dem EE werden die Trigger ESA, MVPG, XD, XS, SA und SB während der Ausführung des Seitentransportbefehls gesetzt, um dessen Operation zu steuern. Der ESA Modustrigger wird auf 1 gesetzt, um anzuzeigen, wenn sich der Prozessor im ESA Modus befindet, da das ESA Modusregister auf einem 1 Status als Voraussetzung stehen muß, um den MVPG Befehl auszuführen. Das MVPG Modusregister ist auf 1 gesetzt, während der MVPG Befehl eine Seite in den ES transportiert. XD bzw. XS Träger werden während der Ausführung des MVPG Befehls auf die Status der D und S Bits gesetzt. Der SA Trigger wird auf 1 gesetzt, um anzugeben, wenn die adressierte Seite im ES gültig ist und von einem anderen Prozessor (L=1 in der Seite der PTE) zur Koordination der Änderung einer Seite durch den aktuellen Prozessor gesperrt wurde, um die Integrität der Seitendaten in einer MP Umgebung beizubehalten. Der SB Trigger ist auf 1 gesetzt, um anzugeben, wenn die adressierte Seite im ES gültig und nicht gesperrt ist.
- Eine BCE (Puffersteuerungselement) Komponente des Prozessors enthält den Prozessorpuffer und die Speichersteuerungen, um den Prozessor zu veranlassen, auf den MS zuzugreifen. Diese enthält ein PTE Adreßregister und ein reales MS Adreßregister sowie die konventionellen DAT (dynamische Adreßübersetzung) Mittel (ohne Abbildung) des Prozessors für die MS Adreßübersetzungen. Die ES Übersetzungsmittel können auch im BCE enthalten sein, obwohl diese statt dessen in die Prozessor-Mikrocode-Mittel in die EE Komponente des Prozessors gesetzt werden können. Die BCE Register enthalten ein INV-PTE (ungültiges PTE) Register, das auf 1 gestellt ist, wenn die aktuelle PTE, auf die zugegriffen wird, für ungültig erklärt wird. Ein Ausnahmeregister ist auf 1 gestellt, wenn eine Ausnahme beim Abrufen von Daten im MS auftritt.
- Ein ESC (Erweitungsspeicher-Steuergerät) enthält die Speichersteuerungen, um dem Prozessor den Zugriff auf ES zu erlauben. Die ESADDR1 und ESADDDR2 Register im ESC dienen dazu die Ziel- und Quelladressen für Seiten zu behalten, die sich im ES befinden. Der DATA-ERR Trigger im ESC gibt an, daß ein Paritätsfehler oder ECC Fehler auf einer ES Seite erkannt wurde.
- Eine D-PTE mit ihrer D-XPTE und eine S-PTE mit ihrer S-XPTE sind repräsentativ mit ihren zugehörigen Feldern abgebildet. Diese können in unterschiedlichen Seitentabellen im MS sein.
- IESBE (ungültige Erweiterungsspeicherblockeingabe) Befehl:
- Der IESBE Befehl ist Teil der Gesamterfindung mit der hierin enthaltenen Beschreibung und den hierin enthaltenen Ansprüchen. Dieser privilegierte Befehl kann durch ein Kontrollprogramm benutzt werden, um den Status einer bestimmten PTE von valid-in ES in invalid-in-ES zu ändern und um sicherzustellen, daß alle CPUs in einer Mehrprozessor-Konfiguration nur den invalid-in-ES Status nach Abschluß der Ausführung des IESBE Befehls sehen können.
- Der Operand des IESBE Befehls ist die Adresse einer PTE. Nach Ausführung des Befehls setzt die Maschine das V Bit in der bestimmten PTE auf Null und sendet dann eine Anforderung an alle anderen CPUs, um zu antworten, wenn diese keinen MVPG Befehl ausführen, auf den zugegriffen werden kann oder keine Inhalte der bestimmten PTE oder des ES Blocks ändern, der von der PTE dargestellt wird. Der IESBE wird nur abgeschlossen, wenn dieser eine Antwort von jeder der CPUs in der MP Konfiguration erhalten hat. Der detaillierte Logikfluß, den das bevorzugte Ausführungsbeispiel des IESBE Befehls beschreibt, wie dieser von den Erfindern wahrgenommen wird, wird in den FIGUREN 16 und 17 beschrieben.
- Das Rundsenden- und Warteprotokoll, das von dem IESBE benutzt wird, wird wahrscheinlich in verlängerten Ausführungszeiten resultieren, so daß die häufige Benutzung des IESBE Befehls die Systemleistung deutlich verschlechtern könnte. Demgemäß liefert diese Erfindung ein effizienteres Mittel, um eine valid-in-ES PTE ungültig zu machen, was die Benutzung eines Sperrprotokolls bedeutet.
- Das Sperrprotokoll verlangt, daß das MVPG eine 1-Bit Sperre (L) erfaßt, bevor auf den ES Block zugegriffen wird, der von einer valid-in-ES PTE angegeben wird. Der Fluß, der die Erfassung der Sperre beschreibt, geht aus FIGUR 9 hervor. Folgende Schritte sind erforderlich: Der ESMVPG Trigger wird auf eins gesetzt, um anzugeben, daß dieser CPU eine L Bitsperre hält (oder versucht, diese zu erfassen).
- In dem bevorzugten Ausführungsbeispiel wird der ESMVPG Trigger benutzt, um festzulegen, ob diese CPU auf eine IESBE Anforderung reagieren kann. So lange wie der Trigger 1 ist, wird angenommen, daß die CPU auf eine valid-in-ES PTE zugreift und diese wird somit von der Antwort entbunden.
- Bei einer umfassenden Operation überprüft die Maschine, daß sich die PTE in dem valid-in-ES Status befindet und daß das L Bit Null ist und wenn dies der Fall ist, ist das L Bit auf 1 zu setzen.
- Wie aus Fig. 9 hervorgeht, wird dieser Schritt derzeit erreicht, indem überprüft wird, daß alle abgerufenen PTE Inhalte gleich einer gepufferten Version der PTE sind, deren Status V,L=1,0, zuvor bestimmt wurde. Wenn der Vergleich erfolgreich ist, wird das L Bit auf 1 gesetzt. Andernfalls wird der MVPG Befehl von Anfang an neu ausgeführt.
- Nach Abschluß des MVPG Befehls werden das L Bit und der ESMVPG Trigger auf Null gesetzt.
- Um eine valid-in-ES PTE zu annullieren, während sichergestellt wird, daß derzeit keine andere CPU über MVPG auf die PTE zugreift, kann das Steuerprogramm deshalb nur einen Vergleichsund Überlagerungsbefehl ausführen, der in einer umfassenden Operation überprüft, daß V,L=1,0 ist und V auf Null setzt. Wenn diese Vergleichs- und Überlagerungsoperation fehlschlägt, weil das L Bit Eins ist, kann das Steuerprogramm die Operation wiederholen, bis diese erfolgreich abgeschlossen ist. Es besteht jedoch die Möglichkeit, daß das L Bit versehentlich durch einen falschen Speicher oder einen Mikrocodefehler auf Eins gesetzt wurde, bei dem versäumt wurde, das Bit nach Befehlsabschluß zurückzusetzen. In beiden Fällen können Vergleich und Überlagerung niemals erfolgreich sein. Nach dem Versuch, den Vergleich und die Überlagerung eine begrenzte Anzahl von Zeiten durchzuführen, kann das Steuerprogramm den IESBE Befehl ausführen, um die PTE zu annullieren und gleichzeitig zu überprüfen, ob das Sperrbit versehentlich gesetzt wurde.
- Das Steuerprogramm kann den IESBE immer dann benutzen, wenn bewiesen ist, daß das L Bit einer PTE versehentlich aktiviert wurde. Wenn zum Beispiel ein MVPG fehlschlägt, weil das L Bit entweder in der Quell-PTE oder der Ziel-PTE Eins ist, und das Steuerprogramm beweist, daß der L=1 Status andauert (z. B. bei regelmäßiger Überprüfung oder aufgrund von Erfahrungen mit wiederholten Ausfällen, wenn versucht wird, den MPVG Befehl erneut auszuführen), kann das Steuerprogramm einen IESBE ausgeben, um festzustellen, ob das L Bit fälschlich aktiviert wurde.
- Deshalb ist es ein weiterer Zweck dieser Erfindung, ein Mittel bereitzustellen, um einem Steuerprogramm die Feststellung zu ermöglichen, wenn das Sperrbit (L) in der PTE versehentlich gehalten wird. Dies geschieht, indem der IESBE Befehl ausgegeben wird, der als Operanden die verdächtige PTE angibt. Der IESBE wird zuerst das valid-in-ES Bit (V) auf Null setzen, wodurch ein Status erstellt wird, der die nachfolgende Erfassung des L Bits in diesem PTE durch eine CPU verbietet, die einen MVPG ausführt. Dieser sendet anschließend eine Anforderung an alle CPUs, zu antworten, wenn diese keine PTE Sperrbits besitzen, die während der Ausführung des MVPG Befehls erfaßt wurden. Das heißt, diese werden nur reagieren, wenn ihr ESMVPG Trigger null ist. Der Befehl ergänzt danach den Empfang einer Antwort von jeder CPU. Wenn die Sperre noch nach Abschluß des Befehls gehalten wird, ist es bekannt, daß keine CPU diese Sperre zum Zwecke der Ausführung eines MVPG Befehls behält. Wenn das Steuerprogrammprotokoll so ist, daß der einzige gültige Nutzen der Sperre während der Ausführung des MVPG Befehls durch die Maschine erfolgt, ist es klar, daß die Sperre versehentlich behalten wird.
- MOVEPAGE Befehlsoperation unter SIE:
- Diese Erfindung des Seitentransports kann beträchtliche Leistungsvorteile gegenüber dem Stand der Technik liefern, der benutzt wird, um die Datenbewegung innerhalb einer virtuellen Maschine mit auslagerbarem Modus, die im interpretierenden Ausführungsmodus arbeitet, mittels des SIE (startinterpretierende Ausführung) Befehls zu beeinflussen. Der SIE Befehl wird in einer IBM Veröffentlichung mit dem Titel "Interpretive Execution" (Formularnummer SA33-7095) erklärt, die eine TNL mit der Formularnummer SN22-0692 hat.
- Virtuelle Maschine mit auslagerbarem Modus haben eine gastreale Speicherebene, auf die ohne Hilfe der gastdynamischen Adreßübersetzung zugegriffen wird (wenn der Gast PSW mit T=0 angibt). Obwohl die Programme in diesen virtuellen Maschinen laufen, welche diesen Speicher als real ansehen, können die Inhalte dieser Seiten überall innerhalb der Speicherhierarchie existieren (Hauptspeicher, Erweiterungsspeicher oder DASD) und durch Haupt-PTEs und zusätzliche Hauptsteuerblöcke dargestellt werden. Gastprogrammadressen werden mittels der Einrichtungen der SIE interpretierenden Ausführung, der dynamischen Adreßübersetzung und, falls anwendbar, der Zugriffsregisterübersetzung im Hauptrechner real übersetzt. Wenn ein Gastbefehlabruf oder eine Operandenreferenz versucht, eine Seite des gastrealen Speichers zu adressieren, die derzeit im Haupt-MS nicht gültig ist, tritt normalerweise ein Seitenfehler auf, der die Steuerung an das Hauptsteuerungsprogramm zur Auflösung des Fehlers übergibt. Wie jedoch nachstehend festgestellt werden wird, wenn ein auslagerbarer DAT-off Gast den MVPG benutzt, um eine Seite von einer gastrealen Speicherstelle in eine andere zu transportieren, werden Hauptrechner-Seitenfehler für die Operandenseiten vermieden.
- Bei einem auslagerbaren DAT-off Gast funktioniert der MVPG Befehl wie in dem Flußdiagramm (Figuren 3-15) abgebildet, mit der Ausnahme, daß alle Tests "DAT BIT T=1 IN PSW" den JA Pfad nehmen. Der Grund hierfür ist, daß bei einem auslagerbaren Gast die SIE Einrichtung stets die Adreßübersetzung benutzt, sogar wenn die Gast-PSW T=0 angibt.
- Wie aus Fig. 12 hervorgeht, wird der Transport erfolgreich abgeschlossen (ohne Eingriff durch das Steuerprogramm), vorausgesetzt beide Operandenseiten befinden sich im Haupt-MS oder ES. Wenn eine oder beide Seiten sowohl im MS als auch im ES ungültig sind, wird ein SIE Abhängevorgang (eine besondere Form der Programmunterbrechung) generiert (in der Sequenz, die in Fig. 12 abgebildet ist). Es wird darauf hingewiesen, daß der Prozessor vor diesem Abhängevorgang Informationen in der Gast SD (Statusbeschreibung) speichert, die dem Hauptrechner bei Abschluß des MVPG Befehls helfen werden.
- Der Hauptrechner reagiert normalerweise auf diesen Abhängevorgang durch
- 1. Zuordnung einer Zielkachel im Hauptspeicher, wenn die Zielseite aktuell nicht gültig ist.
- 2. Durchführung der notwendigen Datenübertragungsoperation (E/A, PAGEIN oder MOVE), um die Quellseiteninhalte in der Zielkachel zu plazieren,
- 3. Validierung der Ziel-PTE, wenn diese aktuell nicht gültig ist.
- Wenn die Zielseite ungültig ist, besteht keine Notwendigkeit, deren Inhalte in den Hauptspeicher zu bringen, da diese durch die Queliseite komplett ersetzt werden. Es ist auch nicht erforderlich, die Queliseite im Hauptspeicher zu validieren.
- In allen Fällen wird der MVPG durch eine einzelne Datenübertragungsoperation und einen einzelnen Hauptprogrammaufruf ergänzt. Bis zu drei Datenübertragungsoperationen (jeweils eine, um die Seitenf ehler für die MVCL Operanden zu beheben und eine, um das aktuelle MVCL durchzuführen) und zwei Seitenfehler könnten in dem Stand der Technik erforderlich sein.
- Ein zusätzlicher Vorteil gegenüber dem Stand der Technik ist, daß der Prozessor (in der SD) den Hauptrechner mit den aktuellen PTE Adressen versorgt, welche die Operanden des MVPG darstellen. Dadurch entfällt die Anforderung an das Hauptrechnerprogramm, die gastreale Adresse in die Hauptrechner-PTE-Adresse zu übersetzen, wie dies zur Behebung von Seitenfehlern erforderlich ist. Dieser Übersetzungsprozeß kann ganz komplex sein, da dieser die Simulation von sowohl dem Zugriffsregister als auch der dynamischen Adreßübersetzung enthalten könnte.
- Demgemäß sind die Vorteile dieser MVPG Erfindung gegenüber dem Stand der Technik (MVCL mittels separater Seitenübersetzungs- Ausnahmeunterbrechungen) bei Benutzung durch einen auslagerbaren Gast, der Transport von einem realen Speicherplatz zu einem anderen:
- 1. Die Minimisierung der Steuerprogrammaufrufe des Hauptrechners;
- 2. Der Wegfall von unnötigen Datenübertragungen und
- 3. Der Wegfall von gastrealen in Haupt-PTE Übersetzungen.
- Die Flußdiagramme, die in den Figuren dieser Spezifikation abgebildet sind, werden ausreichend detailliert dargestellt und sprechen für sich, wenn die Zeichnungsinhalte in Verbindung mit den Beschreibungen in dieser Spezifikation und mit der folgenden Zusammenfassung der verwendeten Begriffe gelesen werden: ZUSAMMENFASSUNG DER VERWENDETEN BEGRIFFE ZUSAMMENFASSUNG DER VERWENDETEN BEGRIFFE ZUSAMMENFASSUNG DER VERWENDETEN BEGRIFFE ZUSAMMENFASSUNG DER VERWENDETEN BEGRIFFE
- Die Trigger werden in jeder Befehlsdecodierung auf 0 gesetzt. Der Ausnahmetrigger wird über eine Ausnahme, die von einem Abruf veranlaßt wurde, auf 0 oder 1 gesetzt. Der INV-PTE Trigger wird mittels der DAT Operation auf 0 oder 1 gesetzt. Der DATA ERR Trigger wird mittels des PGIN oder PCOUT Befehls auf 0 oder 1 gesetzt.
- Obwohl die Erfindung mit Bezug auf die bevorzugten Ausführungsbeispiele beschrieben wurde, können zahlreiche Änderungen von dem Fachmann durchgeführt werden, ohne daß von dem Bereich der Erfindung, wie diese in den anhängenden Ansprüchen festgelegt ist, abgewichen wird.
Claims (52)
1. Verfahren zum Übersetzen von Adressen für einen Befehl in
einem Prozessor, der in der Lage ist, auf eine Vielzahl
von elektronischen Speichern einschließlich eines
elektronischen Hauptspeichers (MS) zuzugreifen, der die
Verarbeitung von Teilseiten-Dateneinheiten erlaubt und andere
elektronische Speichermedien, die nur die Verarbeitung von
Seiteneinheiten erlauben, wobei die Mehrzahl von
elektronischen Speichermedien jeweils eine andere Art der
Adressierung benutzt, um ihre darin enthaltenen Seiten zu
adressieren und der Prozessor Befehlsausführungsmittel
enthält, um die virtuelle Adressierung der elektronischen
Speicher einschließlich der Bestimmung eines Adreßbereichs
zu unterstützen, indem Übersetzungstabellen ausgewählt
werden, die für Befehlsoperanden angegeben werden, wobei
jede, für den Operanden angegebene virtuelle Adresse
benutzt wird, um auf eine oder mehrere Übersetzungstabellen
zuzugreifen, damit eine Seitentabelleneingabe (PTE) zur
Lokalisierung einer Seiteneinheit erhalten wird, die Daten
und/oder Befehle enthalten kann, die durch die Schritte
gekennzeichnet sind,
eine Seitentabelleneingabe (PTE) zu lokalisieren, die eine
Vielzahl von Medienfelder enthält, um jeweils die Vielzahl
von elektronischen Speichermedien darzustellen und ein
Seitenadreßfeld in der Seitentabelleneingabe (PTE), das
zur physischen Adressierung einer Seite in einem Medium
aus einer Vielzahl von Medien, die in dem Medienfeld der
Seitentabelleneingabe (PTE) angegeben sind, durch einen
ausgewählten Status für eines aus der Vielzahl der Medien
angeordnet wird, und
auf die Seitentabelleneingabe (PTE) zuzugreifen, um eine
virtuelle Adresse zu übersetzen, die von einem
Befehlsoperanden angegeben und verarbeitet wird, während sich der
Prozessor in einem Kontroll- oder Nichtkontrollstatus
befindet und ein Medienfeld feststellt, indem ein
ausgewähltes Medium in der Seitentabelleneingabe (PTE) angegeben
und eine Seite in der Adresse in einem Adreßbereich in der
Seitentabelleneingabe (PTE) als eine angeforderte Seite in
dem ausgewählten Medium lokalisiert wird.
2. Verfahren zum Übersetzen von Adressen in einem
Befehlsprozessor wie in Anspruch 1 definiert, das durch den Schritt
gekennzeichnet ist,
eine Vielzahl von Arten der Seitentabelleneingaben (PTEs)
bereitzustellen, in denen die unterschiedlichen
Seitentabelleneingabetypen (PTE) jeweils eine unterschiedliche
Anzahl von Medienfeldern haben, von denen jedes zu einem
Medium gehört,
jede Seitentabelleneingabeart (PTE) durch eine Kombination
von Werten in zuvor bestimmten Positionen in der
zugegriffenen Seitentabelleneingabe (PTE) festzulegen, in der die
Kombinationswerte der Medienfelder jede
Seitentabelleneingabeart (PTE) bestimmten.
3. Verfahren zum Übersetzen von Adressen wie in Anspruch 2
festgelegt, das durch den Schritt gekennzeichnet ist,
ein einzelnes Bit für jedes Mediumfeld in zuvor bestimmten
Positionen in jeder Seitentabelleneingabeart (PTE)
bereitzustellen und
die Kombination der Medienbitpositionen in einer
Seitentabelleneingabe (PTE) zu bestimmen, um ihre
Seitentabelleneingabeart (PTE) dem Prozessor mitzuteilen.
4. Verfahren zum Übersetzen von Adressen wie in Anspruch 3
definiert, das durch die Schritte gekennzeichnet ist,
ein einzelnes Bit fur ein Mediumfeld des Hauptspeichers
(MS) in einer zuvor bestimmten Position in jeder
Seitentabelleneingabeart (PTE) bereitzustellen und ein einzelnes
Bit für ein Mediumfeld des Erweiterungsspeichers in einer
anderen, zuvor bestimmten Position in jeder
Seitentabelleneingabeart (PTE) bereitzustellen,
eine Seitentabelleneingabeart (PTE) als eine Kombination
aus einem 0 Bit im Mediumfeld des Hauptspeichers (MS) und
einem 0 Bit im Mediumfeld des Erweiterungsspeichers (ES)
wie angegeben festzustellen, wobei die
Seitentabelleneingabe (PTE) eine gültige Seitenadresse im Hauptspeicher
(MS) enthält,
aber eine weitere Seitentabelleneingabeart (PTE) als eine
Kombination aus einem 1 Bit im Mediumfeld des
Hauptspeichers (MS) und einem 1 Bit im Mediumfeld des
Erweiterungsspeichers (ES) festzustellen, indem angegeben wird, daß
das Adreßfeld in der Seitentabelleneingabe (PTE) eine
Seitenadresse enthält, die in dem Erweiterungsspeicher (ES)
gültig ist, und
eine Feststellung zu machen, daß keine gültige
Seitentabelleneingabeart (PTE) für eine Kombination aus einem 1
Bit im Mediumfeld des Hauptspeichers (MS) und einem 0 Bit
im Mediumfeld des Erweiterungsspeichers (ES) existiert,
was bedeutet, daß das Adreßfeld in der PTE sowohl im
Hauptspeicher (MS) als auch im Erweiterungsspeicher (ES)
ungültig ist.
5. Verfahren zum Übersetzen von Adressen in einem
Befehlsprozessor wie in Anspruch 1 definiert, das durch einen
weiteren Schritt gekennzeichnet ist,
ein Steuerprogramm zu benutzen, das im Kontrollstatus
funktioniert, um eines aus der Vielzahl der Medienfelder
in einer Seitentabelleneingabe (PTE) auf den ausgewählten
Status einzustellen, der angibt, welches Medium aus der
Vielzahl von Medien die adressierte Seite enthält und das
eine Adreßfeld in der Seite der Seitentabelleneingabe
(PTE) auf eine physische Adresse in dem ausgewählten
Medium zur Lokalisierung der Seite einzustellen und zu
verhindern, daß der Inhalt der Seitentabelleneingabe (PTE)
durch einen Befehl geändert wird, der in einem nicht
kontrollierten Status arbeitet.
6. Verfahren zum Übersetzen von Adressen in einem
Befehlsprozessor wie in Anspruch 1 definiert, das durch einen
weiteren Schritt gekennzeichnet ist,
eine einzelne Bitposition in der Seitentabelleneingabe
(PTE) bereitzustellen, um jedes der Medienf elder
darzustellen und einen besonderen Status für jedes Mediumfeld
als ausgewählten Status für das dargestellte Medium zu
benutzen, in dem nicht mehr als eine Bitposition für eines
der unterschiedlichen Medienf elder auf den ausgewählten
Status eingestellt ist.
7. Verfahren zum Übersetzen von Adressen in einem
Befehlsprozessor wie in Anspruch 1 definiert, das durch den Schritt
gekennzeichnet ist,
ein Seitenfehlersignal bereitzustellen, wenn keines der
Medienfelder während der dynamischen Adreßübersetzung
einen ausgewählten Status hat und eine Seite anzufordern,
die durch die Seitentabelleneingabe (PTE) dargestellt
wird, auf die über ein Steuerprogramm, das im
Kontrollstatus arbeitet, von einem anderen Medium als das
elektronische Medium zugegriffen wird, das durch die Medienfelder
in der Seitentabelleneingabe (PTE) dargestellt wird.
8. Verfahren zum Übersetzen von Adressen in einem
Befehlsprozessor wie in einem der Ansprüche 1 bis 5 definiert, wobei
der Prozessor die Fähigkeit hat, in einem
Mehrprozessorsystem (MP) zu funktionieren und der Prozessor einen Befehl
in irgendemem Status ausführt, der einen nicht
kontrollierten Status enthält und zusätzliche Schritte benutzt,
den Status eines Sperrfelds mit einer zugegriffenen
Seitentabelleneingabe (PTE) zu prüfen, um einen
gesperrten/nicht gesperrten Status für die Seite zu bestimmen,
die von der Seitentabelleneingabe (PTE) adressiert wurde,
um festzulegen, ob ein Prozessor berechtigt ist, auf die
Seite zuzugreifen,
die Ausführung des Befehls zu beenden, wenn der gesperrte
Status für die Seitentabelleneingabe (PTE) angegeben wird,
wenn aber der gesperrte Status für die
Seitentabelleneingabe (PTE) nicht angegeben wird, das Sperrfeld in dem
gesperrten Status einzustellen, um einem anderen Prozessor
in dem System mitzuteilen, daß auf die
Seitentabelleneingabe (PTE) der adressierten Seite nicht von einem anderen
Prozessor zugegriffen werden kann, so daß der Prozessor,
der den gesperrten Status einstellt, den exklusiven
Zugriff auf die von der Seitentabelleneingabe (PTE)
adressierten Seite erhalten kann.
9. Verfahren zum Übersetzen von Adressen in einem
Befehlsprozessor wie in Anspruch 8 angemeldet, das dadurch
gekennzeichnet ist, daß es eine einzelne Bitposition in der
Seitentabelleneingabe (PTE) zur Darstellung des Sperrfeldes
hat.
10. Verfahren zum Ubersetzen von Adressen in einem
Befehlsprozessor wie in Anspruch 1 definiert, dadurch
gekennzeichnet, daß
ein Schutzschlüsselfeld in der Seitentabelleneingabe (PTE)
bereitgestellt wird oder von der Seitentabelleneingabe
(PTE) lokalisierbar ist, um einen Schutzschlüsselstatus
für die Seitentabelleneingabe (PTE) der adressierten Seite
in dem ausgewählten Medium aus einer Vielzahl von Medien
anzugeben.
11. Verfahren zum Übersetzen von Adressen in einem
Befehlsprozessor wie in Anspruch 10 definiert, dadurch
gekennzeichnet, daß
Änderungs- und Referenzfelder in der Seitentabelleneingabe
(PTE) bereitgestellt werden oder von der
Seitentabelleneingabe (PTE) lokalisierbar sind, um jeweils eine Änderung
in der Seitentabelleneingabe (PTE) der adressierten Seite
in dem ausgewählten Medium anzugeben oder sich auf diese
zu beziehen.
12. Verfahren zum Übersetzen von Adressen in einem
Befehlsprozessor wie in Anspruch 10 definiert, dadurch
gekennzeichnet, daß
ein Abrufschutzfeld in der Seitentabelleneingabe (PTE)
bereitgestellt wird oder von der Seitentabelleneingabe (PTE)
lokalisierbar ist, um anzugeben, wenn der Abrufschutz für
die Seitentabelleneingabe (PTE) der adressierten Seite in
dem ausgewählten Medium vorhanden ist.
13. Verfahren zum Übersetzen von Adressen wie in Anspruch 10
definiert, dadurch gekennzeichnet, daß,
kein Schlüsselschutzfeld für jede Seitentabelleneingabe
(PTE) bereitgestellt wird, um die Sperre des
Schlüsselschutzes für die Seitentabelleneingabe (PTE) der
adressierten Seite in dem ausgewählten Medium ungeachtet der
Einstellung des Schutzschlüsselfeldes der
Seitentabelleneingabe (PTE) anzugeben.
14. Verfahren zum Übersetzen von Adressen wie in den
Ansprüchen 11, 12 oder 13 definiert, dadurch gekennzeichnet, daß
eine einzelne Bitposition mit jeder Seitentabelleneingabe
(PTE) für jede Änderung, Referenz, jeden Abrufschutz und
für keine Schlüsselfelder bereitgestellt wird.
15. Verfahren zur Ausführung von Seitenkopierbefehlen, das ein
Verfahren zur Übersetzung von Adressen enthält, wie dies
in Anspruch 1 definiert ist und das außerdem enthält:
die Einstellung des Prozessors auf einen Betriebsstatus,
einschließlich des Nichtkontrollstatus sowie des
Kontrollstatus, um die Ausführung eines Programms einschließlich
eines Anwendungsprogramms zu ermöglichen,
die Ausführung eines Seitenkopierbefehls, der einen
Operationsschlüssel und zwei Operanden enthält, die eine
virtuehe Adresse des Quelloperanden und eine virtuelle Adresse
des Zieloperanden angeben, wobei die beiden virtuellen
Adressen der Operanden Gegenstand der Übersetzung sind,
indem die gleichen oder unterschiedliche
Übersetzungstabellen benutzt werden, um jeweils eine
Seitentabelleneingabe (PTE) des Quelloperanden und eine
Seitentabelleneingabe (PTE) des Zieloperanden zu erhalten,
die Möglichkeit, eine Struktur für den Seitenkopierbefehl
zu erlauben, die unabhängig von den Medien oder einem
Medium ist, die bzw. das ausgewählt wurde(n), um auf die
Seiten der Befehlsoperanden zuzugreifen,
den Zugriff auf die Medienfelder in der
Quellseitentabelleneingabe (PTE) und in der Zielseitentabelleneingabe
(PTE), um festzulegen, ob sowohl ein Quellmedium als auch
ein Zielmedium in den jeweiligen Seitentabelleneingaben
(PTEs) ausgewählt wurden, wobei die gleichen oder die
unterschiedlichen elektronischen Speicher für das Quell- und
das Zielmedium auswählbar sind, und eine
Quellseitenadresse von der Quellseitentabelleneingabe (PTE) und eine
Zielseitenadresse von der Zielseitentabelleneingabe (PTE)
erhalten werden,
das Lesen einer Quellseite in der Quellseitenadresse im
elektronischen Quellseitenspeicher,
das Schreiben von Daten, die aus der Quellseite in den
elektronischen Zielspeicher in die Zielseitenadresse
gelesen werden, und es nicht erforderlich ist, daß
irgendwelche Daten zuvor in die Zielseite gelesen wurden und der
Prozessor seinen Verarbeitungsstatus, einschließlich des
Nichtkontrollstatus, während einer erfolgreichen
Ausführung des Seitenkopierbefehls ändern muß.
16. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 15 definiert, dadurch gekennzeichnet, daß der
Prozessor außerdem Schritte ausführt, um
eine Ausnahme in dem Prozessor zu signalisieren, wenn ein
Quellmedium und ein Zielmedium nicht beide in den
jeweiligen Seitentabelleneingaben (PTEs) ausgewählt wurden, um
einen Mißerfolg bei Ausführung des Seitenkopierbefehls
anzugeben,
die Ausführung des Seitenkopierbefehls aufgrund der
Ausnahme aufzuheben, um einem Kontrollprogramm zu erlauben,
den Prozessor in den Kontrollstatus zu schalten, ein
Medium auszuwählen und die entsprechenden Medienfelder in
die Quell- oder Zielseitentabelleneingabe (PTE) zu setzen,
die kein ausgewähltes Medium haben, oder in beide Seiten-
tabelleneingaben (PTEs), wenn keine ein ausgewähltes
Medium nennt.
17. Verfahren zur Ausführung von Seitenkopierbefehlen, das ein
Verfahren zum Übersetzen von Adressen enthält, wie dies in
Anspruch 13 definiert ist, dadurch gekennzeichnet, daß
die Aktivierung des Kontrollprogramms ermöglicht wird,
bevor dessen Ausführung im aktuellen Prozessorstatus, bei
dem es sich um einen Nichtkontrollstatus handeln kann,
beendet wird.
18. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 15 definiert, dadurch gekennzeichnet, daß
die Einstellung eines Bedingungsschlüssels im Prozessor,
wenn ein Quellmedium und ein Zielmedium nicht beide
ausgewählt werden, den Mißerfolg bei Ausführung einer
Seitenoperation angibt, und
die Ausführung des Seitenkopierbefehls beendet wird.
19. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 15 angemeldet, dadurch gekennzeichnet, daß
ein Optionsfeld zum Befehlsabschluß mit einem
Befehlsoperanden bereitgestellt wird, um anzugeben, ob der Befehl
abgeschlossen wird, indem ein Bedingungsschlüssel
eingestellt wird, oder ob der Befehl abgeschlossen wird, indem
eine Ausnahmebedingung veranlaßt wird, die den Eingriff
eines Kontrollprogramms nach Abschluß des Befehls
ermöglicht, um eine vorhandene Seitenfehlerausnahmebedingung
ohne einen nachfolgenden Verzweigungsbefehl zu bearbeiten.
20. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 19 definiert, gekennzeichnet durch
Abtasten, wenn das Optionsfeld zum Befehlsabschluß angibt,
daß der Befehl durch Einstellung eines
Bedingungsschlüsseis abgeschlossen wird, und
Einstellung eines Bedingungscodes, um einen Ausnahmestatus
anzugeben, der während der Befehlsausführung festgestellt
wurde.
21. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 15 definiert, dadurch gekennzeichnet, daß
ein Optionsfeld zum Befehlsabschluß mit einem
Befehlsoperanden bereitgestellt wird, um anzugeben, ob der Befehl
durch Einstellung eines Bedingungsschlüssels abgeschlossen
wird, oder ob der Befehl einen Abhängevorgang in einem
Steuerprogramm des Hauptrechners veranlaßt, alle
Seitenfehlerausnahmebedingungen zu bearbeiten, die während der
Befehlsausführung festgestellt wurden.
22. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 21 definiert, gekennzeichnet durch
Abtasten, wenn das Opitionsfeld zum Befehlsabschluß
angibt, daß ein Emulationsmodus mit Abhängevorgang in einem
Steuerprogramm des Hauptrechners auftreten wird, um alle
Seitenfehlerausnahmebedingungen während der
Befehlsausführung zu bearbeiten,
Erkennen, wenn das Programm, das den aktuellen
Seitentransportbefehl enthält, ein Gastprogramm ist, das im
Emulationsmodus mit dem Gastprogramm arbeitet, welches in
einem realen Adressierungsmodus funktioniert,
Speichern in einen Statusdeskriptor-Steuerblock von einer
Darstellung der Inhalte des Seitentransportbefehls und In-
formation an alle vorhandenen
Seitenfehlerausnahmebedingungen, und
Aufrufen eines Emulationsmodus mit Abhängevorgang im
Steuerprogramm des Hauptrechners, um einem einzelnen
Abhängevorgang zu ermöglichen, alle
Seitenfehlerausnahmebedingungen zu bearbeiten, die von dem Seitenkopierbefehl
veranlaßt werden können.
23. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 15 angemeldet, dadurch gekennzeichnet, daß
eine einzelne Bitposition für jedes der Medienfelder in
jeder Seitentabelleneingabe (PTE) einer jeweiligen
Seitentabelleneingabeart (PTE) zu haben, und
in einem ausgewählten Status eines der einzelnen
Bitmedienf elder in jeder Seitentabelleneingabe (PTE) eingestellt
wird, um für den Seitenkopierbefehl den realen
elektronischen Speicher der Seite anzugeben, die von der
Seitentabelleneingabe (PTE) dargestellt wird.
24. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 16 definiert, dadurch gekennzeichnet, daß
eine Seitenverarbeiterroutine als Reaktion auf die
Ankündigung der Ausnahme aktiviert wird, wenn ein Mediumfeld
weder in der Quellseitentabelleneingabe (PTE) noch in der
Zielseitentabelleneingabe (PTE) oder in beiden ausgewählt
ist, um dem Steuerprogramm zu ermöglichen:
ein verfügbares Medium auszuwählen und das zugehörige
Mediumbit auf den ausgewählten Status in jeder
Seitentabelleneingabe (PTE) zu setzen, die eine Mediumauswahl
benötigt, und
eine Kachel in dem ausgewählten Medium zuzuordnen und das
Adreßfeld in der zugehörigen Seitentabelleneingabe (PTE)
auf die Speicherstelle innerhalb des Mediums zu setzen,
das für die zugeordnete Kachel ausgewählt wurde.
25. Verfahren zur Ausführung von Seitenkopierbefehlen gemäß
Anspruch 15, das ein Verfahren zum Übersetzen von Adressen
enthält, wie dies in Anspruch 8 definiert ist, wobei ein
Prozessor in dem Mehrprozessorsystem (MP), der den
Seitenkopierbefehl ausführt, Schritte enthält, um
das Sperrfeld in einer zugegriffenen
Quellseitentabelleneingabe (PTE) und in einer zugegriffenen
Zielseitentabelleneingabe (PTE) zu testen, um den Status der Sperrfelder
in beiden Seitentabelleneingaben (PTEs) festzulegen, und
wenn ein nicht gesperrter Status sowohl in der
Quellseitentabelleneingabe (PTE) als auch in der
Zielseitentabelleneingabe (PTE) angegeben wird, die Sperrfelder in den
gesperrten Status in beiden Seitentabelleneingaben (PTEs)
zu setzen, um jedem anderen Prozessor in dem System
anzugeben, daß die Seite, die von jeder Seitentabelleneingabe
(PTE) adressiert wird, ausschließlich von dem Prozessor
behalten wird, der die Sperrfelder in den gesperrten
Status setzt, um die anderen Prozessoren zu warnen, nicht auf
die ausgewählte Seite von einer Seitentabelleneingabe
(PTE) zuzugreifen, während der gesperrte Status besteht.
26. Verfahren zur Ausführung von Seitenkopierbefehlen gemäß
Anspruch 15 mit einem Verfahren zum Übersetzen von
Adressen, wie dies in Anspruch 8 definiert ist, wobei ein
Prozessor in dem Mehrprozessorsystem (MP) den
Seitenkopierbefehl ausführt, der Schritte enthält, um
das Sperrfeld in einer zugegriffenen
Quellseitentabelleneingabe (PTE) und in einer zugegriffenen
Zielseitentabelleneingabe (PTE) zu testen, um den Status der Sperrfelder
in beiden Seitentabelleneingaben (PTEs) festzulegen, und
wenn ein nicht gesperrter Status sowohl in der
Queliseitentabelleneingabe (PTE) als auch in der
Zielseitentabelleneingabe (PTE) angegeben wird, die Sperrfelder in den
gesperrten Status in beiden Seitentabelleneingaben (PTEs)
zu setzen, um jedem anderen Prozessor in dem System
anzugeben, daß beide Seitentabelleneingaben (PTE) der
adressierten Seiten in dem ausgewählten Medium oder den
ausgewählten Medien ausschließlich von dem Prozessor behalten
werden, der die Sperrfelder in den gesperrten Status
setzt, um den Zugriff auf die Seite der
Seitentabelleneingaben (PTEs) in dem ausgewählten Medium durch einen
anderen Prozessor zu verhindern, während der gesperrte Status
besteht.
27. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 26 definiert, in dem ein anderer Prozessor in dem
Mehrprozessorsystem (MP) den Seitenkopierbefehl ausführt,
wobei der verriegelte Status in einer zugegriffenen
Seitentabelleneingabe (PTE) außerdem den Schritt enthält, um
jedem anderen Prozessor in dem Mehrprozessorsystem (MP),
der auf die Seitentabelleneingabe (PTE) zugreift,
mitzuteilen, daß die Seitentabelleneingabe (PTE) der
adressierten Seite in einem gesperrten Status ist und kein anderer
Prozessor darauf zugreifen kann als der Prozessor, der das
Sperrfeld in den gesperrten Status gesetzt hat, auf
welches ein anderer Prozessor im gleichen Medium oder in
einem anderen Medium zugreifen kann, wenn die andere Seite
von einer anderen Seitentabelleneingabe (PTE) adressiert
wird, bei der die Gefahr eines Konfliktes nicht besteht.
28. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 15 definiert, wobei ein Prozessor im
Multiprozessorsystem (MP) den Seitenkopierbefehl ausführt, das durch
die Schritte gekennzeichnet wird, um
das Sperrfeld in einer zugegriffenen
Queliseitentabelleneingabe (PTE) und in einer zugegriffenen
Zielseitentabelleneingabe (PTE) zu testen, um den Status der Sperrfelder
in beiden Seitentabelleneingaben (PTEs) festzulegen, und
wenn ein nicht gesperrter Status sowohl in der
Quellseitentabelleneingabe (PTE) als auch in der
Zielseitentabelleneingabe (PTE) angegeben wird, die Sperrfelder in den
gesperrten Status nur in jeder Seitentabelleneingabe (PTE)
zu setzen, die eine Seite auswählt, die nicht im
Hauptspeichermedium (MS) ist, um jedem anderen Prozessor in dem
System anzugeben, daß eine Seite, die nicht im
Hauptspeichermedium (MS) ist und von der Seitentabelleneingabe
(PTE) ausgewählt wird, ausschließlich von dem Prozessor
behalten wird, der das Sperrfeld in den gesperrten Status
setzt, um die anderen Prozessoren zu warnen, nicht auf die
ausgewählte Seite zuzugreifen, die nicht im
Hauptspeichermedium (MS) ist, während der gesperrte Status in der
Seitentabelleneingabe (PTE) besteht, in der das Sperrfeld in
einer Seitentabelleneingabe (PTE) nur benutzt wird, um
einen gesperrten Status für eine Seite bereitzustellen, die
nicht im Hauptspeichermedium (MS) ist und als ausgewähltes
Medium in der Seitentabelleneingabe (PTE) angegeben wird
und andere Mittel benutzt, um eine Seite im Hauptspeicher
(MS) zu sperren.
29. Verfahren zur Ausführung von Seitenkopierbefehlen mit
einem Verfahren zum Übersetzen von Adressen, wie in den
Ansprüchen 8 und 28 definiert, gekennzeichnet durch
Einstellung einer einzelnen Bitposition in jeder
Seitentabelleneingabe (PTE) auf einen zuvor bestimmten Status, um
den gesperrten Status für ein Medium, das nicht zum
Hauptspeicher (MS) gehört und von einem der Medienfelder in der
Seitentabelleneingabe (PTE) ausgewählt wurde, anzugeben.
30. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 15 definiert, gekennzeichnet durch
Bereitstellung von Schutzschlüsselfeldern für die
Quellseitentabelleneingabe (PTE) bzw. für die
Zielseitentabelleneingabe (PTE), um einen jeweiligen Schutzschlüssel zu
enthalten, welcher der Seitentabelleneingabe (PTE) der
adressierten Seite in einem Medium zugeordnet wird, das
nicht zum Hauptspeicher (MS) gehört und das als
ausgewähltes Medium in der jeweiligen Seitentabelleneingabe (PTE)
angegeben wird.
31. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 15 definiert, gekennzeichnet durch
Bereitstellung von Änderungs- und Referenzfeldern für jede
Seitentabelleneingabe (PTE), um eine Änderung in einer
oder die Referenz auf eine Seitentabelleneingabe (PTE) der
adressierten Seite in einem Medium anzugeben, das nicht
zum Hauptspeicher (MS) gehört und das als ausgewähltes
Medium in der Seitentabelleneingabe (PTE) angegeben wird.
32. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 15 definiert, gekennzeichnet durch
Bereitstellung eines Abrufschutzfeldes für jede
Seitentabelleneingabe (PTE), um jeweils anzugeben, wenn
Abrufschutz für die Seitentabelleneingabe (PTE) der
adressierten Seite in einem Medium besteht, das nicht zum Haupt-
speicher (MS) gehört und das als ausgewähltes Medium in
der jeweiligen Seitentabelleneingabe (PTE) angegeben wird.
33. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 30 definiert, dadurch gekennzeichnet, daß
kein Schlüsselschutzfeld für jede Seitentabelleneingabe
(PTE) bereitgestellt wird, um anzugeben, wenn kein
Schlüsselschutz für eine seitentabelleneingabe (PTE) der
adressierten Seite in einem Medium bereitgestellt wird, das
nicht zum Hauptspeicher (MS) gehört und das als
ausgewähltes Medium in der Seitentabelleneingabe (PTE) angegeben
wird, ungeachtet der Einstellung des Schutzschlüsselfeldes
der Seitentabelleneingabe (PTE).
34. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 29, 30, 31, 32 oder 33 angegeben, dadurch
gekennzeichnet, daß
eine einzelne Bitposition für jede Sperre, Änderung,
Referenz, jeden Abrufschutz bereitgestellt wird und keine
Schlüsselschutzfelder in jeder Seitentabelleneingabe
(PTE).
35. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 15 definiert, dadurch gekennzeichnet, daß
ein Absichtsparameter erkannt wird, der in einem Feld
bereitgestellt wird, das zu einem Operanden des ausführenden
Seitenkopierbefehis gehört, in dem der Parameter einem
Kontrollprogramm eine Präferenz angibt, welche die
Zielseite des Befehls in einem besonderen elektronischen
Speicher speichert.
36. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 35 definiert, dadurch gekennzeichnet,
daß
das Absichtsparameterfeld voreingestellt ist, um
anzugeben, daß der Hauptspeicher (MS) der elektronische Speicher
ist, der als Zielmedium für den Seitenkopierbefehl
bevorzugt wird, und
ein Kontrollprogramm als Reaktion auf den voreingestellten
Absichtsparameter aktiviert wird, wenn der Hauptspeicher
(MS) nicht das ausgewählte Medium in der
Zielseitentabelleneingabe (PTE) ist, um dem Steuerprogramm zu
ermöglichen, festzulegen, wenn eine Kachel im Hauptspeicher (MS)
dem Zielmedium zugeordnet werden kann.
37. Verfahren zur Ausführung des Seitenkopierbefehls wie in
Anspruch 15 definiert, dadurch gekennzeichnet, daß
ein Hochgeschwindigkeitspuffer umgangen wird, der von dem
Prozessor benutzt wird, wenn der Prozessor auf Daten für
eine Queliseite in einem der Medien zugreift, um diese in
eine Zielseite zu kopieren.
38. Verfahren zur Ausführung des Seitenkopierbefehls wie in
Anspruch 37 definiert, dadurch gekennzeichnet, daß
ein Hochgeschwindigkeitspuffer umgangen wird, der von dem
Prozessor benutzt wird, wenn der Prozessor Daten aus der
Quellseite in eine Zielseite kopiert,
die Umgehung des Hochgeschwindigkeitspuffers untersagt
wird, um das Kopieren der Queliseite in den
Hochgeschwindigkeitspuffer zu ermöglichen, wenn die
Zielseitentabelleneingabe (PTE) angibt, daß der Hauptspeicher (MS) das
ausgewählte Zielmedium ist.
39. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 37 definiert, dadurch gekennzeichnet, daß
ein Absichtsparameterfeld voreingestellt wird, das zu
einer Adresse gehört, die übersetzt wird und wobei der
Absichtsparameter angibt, daß der Hauptspeicher (MS) der
elektronische Speicher ist, der als Zielmedium für den
Seitenkopierbefehl bevorzugt wird,
ein Kontrollprogramm während der Befehlsausführung
aktiviert wird, wenn der Hauptspeicher (MS) nicht das
ausgewählte Medium in der Zielseitentabelleneingabe (PTE) ist,
das von dem Befehl benutzt wird, wobei dem Steuerprogramm
ermöglicht wird, die Auswahl des Zielmediums in der
Zielseitentabelleneingabe (PTE) erneut zu prüfen,
der Seitenkopierbefehl sowie die Umgehung eines
Hochgeschwindigkeitspuffers, der von dem Prozessor benutzt wird,
wenn der Prozessor auf Daten für die Quellseite oder die
Zielseite zugreift, erneut ausgeführt wird,
die Umgehung des Hochgeschwindigkeitspuffers untersagt
wird, um das Kopieren von wenigstens einem adressierten
Teil der Zielseite in den Hochgeschwindigkeitspuffer zu
ermöglichen, wenn die Zielseitentabelleneingabe (PTE)
angibt, daß der Hauptspeicher (MS) das ausgewählte
Zielmedium ist, und der Absichtsparamter gesetzt wird, um
anzugeben, daß der Hauptspeicher (MS) das bevorzugte Medium
ist.
40. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 39 definiert, dadurch gekennzeichnet, daß
das Kopieren in den Hochgeschwindigkeitspuffer, während
die Umgehung des Hochgeschwindigkeitspuffers untersagt
ist, von nur einer Hochgeschwindigkeitspuffereinheit mit
Daten, die ein Byte enthalten, das von dem Zieloperanden
des Seitenkopierbefehls als Reaktion an den Parameter
adressiert wird, der einen Hauptspeicher (MS) angibt.
41. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 39 definiert, dadurch gekennzeichnet, daß
das Kopieren in den Hochgeschwindigkeitspuffer, während
die Umgehung des Hochgeschwindigkeitspuffer untersagt ist,
von der gesamten Zielseite mit Daten, die ein Byte
enthalten, das von dem Zieloperanden des Seitenkopierbefehls als
Reaktion an den Parameter adressiert wird, der einen
Hauptspeicher (MS) angibt.
42. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 37 definiert, dadurch gekennzeichnet, daß
die Umgehung eines Hochgeschwindigkeitspuffers von dem
Prozessor benutzt wird, wenn der Prozessor auf Daten für
eine Quellseite in einem der Medien und für eine Zielseite
in einem Medium zugreift, das nicht zum Hauptspeicher (MS)
gehört.
43. Verfahren zur Ausführung von Seitenkopierbefehlen wie in
Anspruch 15 definiert, dadurch gekennzeichnet, daß
die Umgehung eines Hochgeschwindigkeitspuffers von dem
Prozessor benutzt wird, wenn der Prozessor einen
Seitentransportbefehl ausführt.
44. Verfahren zum Übersetzen von Adressen wie in Anspruch 8
definiert, um einem nachfolgenden, nichtprivilegierten
Befehl zu ermöglichen, eine aus mehreren Medien bestehende
Seitentabelleneingabe (PTE) zu benutzen, selbst wenn das
Sperrfeld der Seitentabelleneingabe (PTEs) auf Sperrstatus
steht, wobei das Verfahren durch die folgenden Schritte
gekennzeichnet wird:
Prozessor auf Kontrollstatus stellen und die Ausführung
eines Befehls aufrufen, mit dem eine Seite, die von der
aus mehreren Medien bestehenden Seitentabelleneingabe
(PTE) ungültig gemacht wird, indem die folgenden Schritte
ausgeführt werden:
alle Medienfelder in der zugegriffenen
Seitentabelleneingabe (PTE) einstellen, um anzugeben, daß von der
Seitentabelleneingabe (PTE) keine Seite gültig dargestellt wird,
ein Signal an jeden anderen Prozessor in dem
Mehrprozessorsystem (MP) senden, indem eine Antwort dazu angefordert
wird, ob ein anderer Prozessor einen Befehl mittels der
Seitentabelleneingabe (PTE) ausführt,
warten, bis alle anderen Prozessoren im
Mehrprozessorsystem (MP) auf das Rundsendensignal antworten und
mitteilen, daß kein anderer Prozessor einen Befehl mittels der
Seitentabelleneingabe (PTE) ausführt, und
die Ausführung des Befehls zur Annullierung der Seite
beenden.
45. Verfahren zum Übersetzen von Adressen wie in Anspruch 8
definiert, um einem nachfolgenden Befehl zu ermöglichen,
eine aus mehreren Medien bestehende Seitentabelleneingabe
(PTE) zu benutzen, selbst wenn das Sperrfeld der
Seitentabelleneingabe (PTE) auf Sperrstatus gesetzt ist, wobei das
Verfahren Schritte enthält, um
den Prozessor in den Kontrollstatus zu setzen und die
Ausführung eines Befehls zur Annullierung einer Seite
aufzurufen, die in einem Medium, das nicht zum Hauptspeicher
(MS) gehört, von der aus mehreren Medien bestehenden Sei-
tentabelleneingabe (PTE) adressiert wird, wobei folgende
Schritte benutzt werden:
Medienfeld, das nicht zum Hauptspeicher (MS) gehört, in
die zugegriffene Seitentabelleneingabe (PTE) setzen, um
anzugeben, daß die Seite, die von der
Seitentabelleneingabe (PTE) dargestellt wird, in dem Medium, das nicht zum
Hauptspeicher (MS) gehört, nicht gültig enthalten ist,
ein Signal an jeden anderen Prozessor in dem
Mehrprozessorsystem (MP) senden, um eine Antwort dazu anzufordern,
ob ein anderer Prozessor einen Befehl mittels der
Seitentabelleneingabe (PTE) ausführt,
warten, bis alle anderen Prozessoren in dem
Mehrprozessorsystem (MP) auf das Rundsendensignal reagieren und
angeben, daß kein anderer Prozessor einen Befehl mittels des
Mediums ausführt, das nicht zum Hauptspeicher (MS) gehört,
und
die Ausführung des Befehls zur Annullierung der Seite
beenden.
46. Verfahren zum Übersetzen von Adressen wie in Anspruch 8
definiert, um einem nachfolgenden Befehl zu ermöglichen,
eine aus mehreren Medien bestehende Seitentabelleneingabe
(PTE) zu benutzen, selbst wenn das Sperrfeld der
Seitentabelleneingabe (PTE) auf Sperrstatus gesetzt ist, wobei das
Verfahren Schritte enthält, um
den Prozessor in den Kontrollstatus zu setzen und die
Ausführung eines Befehls zur Annullierung einer Seite
aufzurufen, die von der aus mehreren Medien bestehenden
Seitentabelleneingabe (PTE) in den Erweiterungsspeicher (ES)
adressiert wird, wobei folgende Schritte benutzt werden:
Medienfeld eines Erweiterungsspeichers (ES) setzen, zu dem
ein Sperrfeld in der zugegriffenen Seitentabelleneingabe
(PTE) gehört, um anzugeben, daß keine Seite des
Erweiterungsspeichers (ES) gültig von der Seitentabelleneingabe
(PTE) adressiert wird,
ein Signal an jeden anderen Prozessor in dem
Mehrprozessorsystem (MP) senden, und eine Antwort von jedem anderen
Prozessor anfordern, daß der andere Prozessor keinen
Befehl ausführt, bei dem das Sperrfeld in einem gesperrten
Status in der Seitentabelleneingabe (PTE) gehalten wird,
warten, bis alle anderen Prozessoren in dem
Mehrprozessorsystem (MP) auf das Rundsendensignal reagieren, um
festzulegen, daß kein anderer Prozessor einen Befehl ausführt,
der Zugriff auf den Erweiterungsspeicher (ES) verlangt,
und
die Ausführung des Befehls zur Annullierung der Seite mit
einem Sperrstatus der Seitentabelleneingabe (PTE), die von
dem ungültigen Status des Mediumfeldes des
Erweiterungsspeichers (ES) deaktiviert wird, beenden.
47. Verfahren zum Übersetzen von Adressen wie in Anspruch 8
definiert, um einem nachfolgenden Befehl zu ermöglichen,
eine aus mehreren Medien bestehende Seitentabelleneingabe
(PTE) zu benutzen, selbst wenn das Sperrfeld der
Seitentabelleneingabe (PTE) auf Sperrstatus gesetzt ist, wobei das
Verfahren Schritte enthält, um
den Prozessor in den Kontrollstatus zu setzen und die
Ausführung eines Befehls zur Annullierung einer Seite für die
von der aus mehreren Medien bestehenden
Seitentabelleneingabe (PTE) aufzurufen, wobei folgende Schritte benutzt
werden:
Medienfelder in der zugegriffenen Seitentabelleneingabe
(PTE) setzen, um anzugeben, daß die Seite, die von der
Seitentabelleneingabe (PTE) dargestellt wird, in einem der
Medien, die in der Seitentabelleneingabe (PTE) dargestellt
werden, nicht gültig enthalten ist,
ein Signal an jeden anderen Prozessor in dem
Mehrprozessorsystem (MP) senden, das eine Seitenadresse in der
Seitentabelleneingabe (PTE) für ein bestimmtes Medium angibt,
und eine Antwort von jedem anderen Prozessor dazu
anfordem, ob ein anderer Prozessor einen Befehl ausführt, der
die Seite an die Rundsenden-Seitenadresse adressiert,
warten, bis alle anderen Prozessoren in dem
Mehrprozessorsystem (MP) auf das Rundsendensignal reagieren und
angeben, daß kein anderer Prozessor die adressierte Seite
benutzt, und
die Ausführung des Befehls zur Annullierung der Seite
beenden.
48. Verfahren zur Ausführung von Seitenkopierbefehlen gemäß
Anspruch 15 in einem Prozessor, der einen elektronischen
Erweiterungsspeicher (ES) hat, wobei diese
Ausführungsmittel einen Adreßbereich für jeden virtuell adressierten
Operanden bestimmen, der von einem Befehl mittels der
Segmenttabelle angegeben wird, die für den Operanden
bezeichnet wird, wobei die Segmenttabelle Segmenttabelleneingaben
(STEs) zur Adressierung der Seitentabellen enthält, wobei
jede Seitentabelle aus Seitentabelleneingaben (PTEs) zur
Lokalisierung der Seiten besteht, wobei das Verfahren
durch die folgenden Schritte gekennzeichnet wird:
Prozessor auf den nichtprivilegierten Status und virtuelle
Adressierungsstatus einstellen,
einen Seitenkopierbefehl ausführen, der einen
Operationsschlüssel und zwei Operandenspezifikationen enthält, die
eine virtuelle Quelloperandenadresse und eine virtuelle
Zieloperandenadresse angeben, von denen jede jeweils eine
zugegriffene Segmenttabelle benutzt, wobei die jeweils
zugegriffene Segmenttabelle für beide Operanden gleich oder
unterschiedlich ist, und die Operandenspezifikationen
unabhängig von dem bestimmten Speichermedium sind, welches
die Seiten enthält, auf die von dort aus zugegriffen wird,
die virtuelle Quelloperandenadresse und die virtuelle
Zieloperandenadresse auf die jeweils zugegriffene
Segementtabeile anwenden, um eine entsprechende Seitentabelle für
jede virtuelle Adresse zu lokalisieren und auf eine erste
Seitentabelleneingabe (PTE) zuzugreifen, die eine
Speicherstelle einer Quellseite und eine zweite
Seitentabelleneingabe (PTE) hat, die eine Speicherstelle einer
Zielseite enthält, wobei sich die ersten und zweiten
Seitentabelleneingaben (PTEs) für beide Operanden in der gleichen
oder in unterschiedlichen Seitentabellen befinden,
auf die Steuerfelder in den ersten und zweiten
Seitentabelleneingaben (PTEs) zugreifen, um festzulegen, welcher
Hauptspeicher (MS) oder Erweiterungsspeicher (ES) der
elektronische Speicher ist, der die jeweiligen
Speicherstellen der Quellseite und der Zielseite enthält,
die Queliseite in der Speicherstelle im elektronischen
Speicher lesen, der von der ersten Seitentabelleneingabe
(PTE) bestimmt wird,
die Daten, die aus der Quellseite in die Zielseite gelesen
wurden, in die Speicherstelle im elektronischen Speicher
schreiben, der von der zweiten Seitentabelleneingabe (PTE)
bestimmt wird,
den Erfolg oder den Mißerfolg durch Lesen der Quellseite
und durch Schreiben der Quellseite in die Zielseite
angeben, um einen virtuellen Seitentransport zu beenden, der
physisch zwischen dem Erweiterungsspeicher (ES) und
Hauptspeicher (MS) oder innerhalb des Hauptspeichers (MS) oder
innerhalb des Erweiterungsspeichers (ES) auftritt und eine
erfolgreiche Angabe bereitgestellt wird, ohne daß der
Prozessor den nichtprivilegierten Status verläßt.
49. Verfahren zur Ausführung von Seitenkopierbefehlen in einem
Befehlsprozessor wie in Anspruch 48 definiert, dadurch
gekennzeichnet, daß
ein Parameter mit dem Befehl vorhanden ist, eine Auswahl
einer optionalen Benutzerauswahl bereitzustellen, wenn die
Angabe für einen Mißerfolg fehlt und statt dessen ein
Kontrollprogramm aktiviert wird, um die Bedingung zu
bearbeiten, welche die Angabe zu dem Mißerfolg veranlaßt.
50. Verfahren zur Ausführung von Seitenkopierbefehlen in einem
Befehlsprozessor wie in Anspruch 48 definiert, dadurch
gekennzeichnet, daß
der Parameter eingestellt wird, um das Steuerprogramm zu
aktivieren, einen Mißerfolg anzuzeigen, damit der Bedarf
an einem nachfolgenden, bedingten Sprungbefehl entfällt,
um eine Angabe zu einem Mißerfolg für die Ausführung des
Befehls zu prüfen.
51. Verfahren zur Ausführung von Seitenkopierbefehlen in einem
Befehlsprozessor wie in Anspruch 48 definiert,
gekennzeichnet durch
das Auftreten einer Seitenfehlerausnahmebedingung, welche
die nicht erfolgreiche Angabe veranlaßt und das Kontroll-
programm aktiviert, bevor die Ausführung des Befehls
durchgeführt wird, damit das Kontrollprogramm die
Seitenfehlerbedingung bearbeiten kann.
52. Verfahren zur Ausführung von Seitenkopierbefehlen in einem
Befehlsprozessor wie in Anspruch 48 definiert,
gekennzeichnet durch
die Einstellung des Parameters, um auszuwählen, daß
Bedingungsschlüssel als optionale Benutzerauswahl vorgesehen
werden müssen, um die Angabe über den erfolgreichen oder
nicht erfolgreichen Abschluß der Ausführung des Befehls
bereitzustellen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/424,797 US5237668A (en) | 1989-10-20 | 1989-10-20 | Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69029504D1 DE69029504D1 (de) | 1997-02-06 |
DE69029504T2 true DE69029504T2 (de) | 1997-07-17 |
Family
ID=23683911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69029504T Expired - Fee Related DE69029504T2 (de) | 1989-10-20 | 1990-08-13 | Verfahren zum Übersetzen und Kopieren von Adressen |
Country Status (7)
Country | Link |
---|---|
US (1) | US5237668A (de) |
EP (1) | EP0423453B1 (de) |
JP (1) | JPH03137747A (de) |
AT (1) | ATE146886T1 (de) |
BR (1) | BR9005264A (de) |
CA (1) | CA2024444C (de) |
DE (1) | DE69029504T2 (de) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2829115B2 (ja) * | 1990-10-19 | 1998-11-25 | 株式会社日立製作所 | ファイル共用方法 |
US5428758A (en) * | 1991-05-10 | 1995-06-27 | Unisys Corporation | Method and system for remapping memory from one physical configuration to another physical configuration |
JP2778291B2 (ja) * | 1991-05-31 | 1998-07-23 | 日本電気株式会社 | アドレス変換レジスタ制御方式 |
US5394539A (en) * | 1991-09-04 | 1995-02-28 | International Business Machines Corporation | Method and apparatus for rapid data copying using reassigned backing pages |
EP0549924A1 (de) * | 1992-01-03 | 1993-07-07 | International Business Machines Corporation | Verfahren und Vorrichtung zur Datenübertragung durch einen Asynchronzusatzprozessor |
JP3219826B2 (ja) * | 1992-02-21 | 2001-10-15 | 日本電気株式会社 | 情報処理装置 |
JP2675961B2 (ja) * | 1992-05-20 | 1997-11-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 実記憶のページをロックするための方法 |
US5388244A (en) * | 1992-09-17 | 1995-02-07 | International Business Machines Corporation | Controls for initial diversion of page-frame logical content as part of dynamic virtual-to-real translation of a virtual page address |
US5461721A (en) * | 1993-04-14 | 1995-10-24 | International Business Machines Corporation | System for transferring data between I/O devices and main or expanded storage under dynamic control of independent indirect address words (IDAWs) |
US5619671A (en) * | 1993-04-19 | 1997-04-08 | International Business Machines Corporation | Method and apparatus for providing token controlled access to protected pages of memory |
US5628023A (en) * | 1993-04-19 | 1997-05-06 | International Business Machines Corporation | Virtual storage computer system having methods and apparatus for providing token-controlled access to protected pages of memory via a token-accessible view |
US5377337A (en) * | 1993-06-08 | 1994-12-27 | International Business Machines Corporation | Method and means for enabling virtual addressing control by software users over a hardware page transfer control entity |
US5535365A (en) * | 1993-10-22 | 1996-07-09 | Cray Research, Inc. | Method and apparatus for locking shared memory locations in multiprocessing systems |
CA2137488C (en) * | 1994-02-18 | 1998-09-29 | Richard I. Baum | Coexecuting method and means for performing parallel processing in conventional types of data processing systems |
US5842225A (en) * | 1995-02-27 | 1998-11-24 | Sun Microsystems, Inc. | Method and apparatus for implementing non-faulting load instruction |
US5706489A (en) * | 1995-10-18 | 1998-01-06 | International Business Machines Corporation | Method for a CPU to utilize a parallel instruction execution processing facility for assisting in the processing of the accessed data |
US5802397A (en) * | 1996-05-23 | 1998-09-01 | International Business Machines Corporation | System for storage protection from unintended I/O access using I/O protection key by providing no control by I/O key entries over access by CP entity |
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 |
US5900019A (en) * | 1996-05-23 | 1999-05-04 | International Business Machines Corporation | Apparatus for protecting memory storage blocks from I/O accesses |
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 |
US5809546A (en) * | 1996-05-23 | 1998-09-15 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers |
US5860144A (en) * | 1996-08-09 | 1999-01-12 | Oracle Corporation | Addressing method and system for providing access of a very large size physical memory buffer to a number of processes |
US5822773A (en) * | 1996-10-17 | 1998-10-13 | Fwb Software Llc | Method and system for accelerating the copying of repetitively copied computer data |
US6047388A (en) * | 1997-04-09 | 2000-04-04 | International Business Machines Corporation | Method and apparatus for processing an invalid address request |
JP3228182B2 (ja) * | 1997-05-29 | 2001-11-12 | 株式会社日立製作所 | 記憶システム及び記憶システムへのアクセス方法 |
JPH1165936A (ja) * | 1997-06-12 | 1999-03-09 | Oki Micro Design Miyazaki:Kk | メモリ装置 |
US6516342B1 (en) | 1998-07-17 | 2003-02-04 | International Business Machines Corporation | Method and apparatus for extending memory using a memory server |
JP2001167040A (ja) * | 1999-12-14 | 2001-06-22 | Hitachi Ltd | 記憶サブシステム及び記憶制御装置 |
JP4651230B2 (ja) * | 2001-07-13 | 2011-03-16 | 株式会社日立製作所 | 記憶システム及び論理ユニットへのアクセス制御方法 |
US6684209B1 (en) * | 2000-01-14 | 2004-01-27 | Hitachi, Ltd. | Security method and system for storage subsystem |
US7657727B2 (en) * | 2000-01-14 | 2010-02-02 | Hitachi, Ltd. | Security for logical unit in storage subsystem |
JP4719957B2 (ja) * | 2000-05-24 | 2011-07-06 | 株式会社日立製作所 | 記憶制御装置及び記憶システム並びに記憶システムのセキュリティ設定方法 |
US6574706B2 (en) | 2001-02-28 | 2003-06-03 | International Business Machines Corporation | Managing unvirtualized data pages in real storage |
GB2381886B (en) * | 2001-11-07 | 2004-06-23 | Sun Microsystems Inc | Computer system with virtual memory and paging mechanism |
US20060253682A1 (en) | 2005-05-05 | 2006-11-09 | International Business Machines Corporation | Managing computer memory in a computing environment with dynamic logical partitioning |
US7506132B2 (en) * | 2005-12-22 | 2009-03-17 | International Business Machines Corporation | Validity of address ranges used in semi-synchronous memory copy operations |
US7454585B2 (en) * | 2005-12-22 | 2008-11-18 | International Business Machines Corporation | Efficient and flexible memory copy operation |
JP2008077144A (ja) * | 2006-09-19 | 2008-04-03 | Ricoh Co Ltd | 仮想化システム、メモリ管理方法及び制御プログラム |
US8151083B2 (en) | 2008-01-11 | 2012-04-03 | International Business Machines Corporation | Dynamic address translation with frame management |
US8335906B2 (en) | 2008-01-11 | 2012-12-18 | International Business Machines Corporation | Perform frame management function instruction for clearing blocks of main storage |
US8417916B2 (en) * | 2008-01-11 | 2013-04-09 | International Business Machines Corporation | Perform frame management function instruction for setting storage keys and clearing blocks of main storage |
US8132036B2 (en) * | 2008-04-25 | 2012-03-06 | International Business Machines Corporation | Reducing latency in data transfer between asynchronous clock domains |
TW201241662A (en) * | 2010-12-21 | 2012-10-16 | Ibm | Virtual machine validation |
US8918885B2 (en) * | 2012-02-09 | 2014-12-23 | International Business Machines Corporation | Automatic discovery of system integrity exposures in system code |
US11151267B2 (en) * | 2019-02-25 | 2021-10-19 | International Business Machines Corporation | Move data and set storage key based on key function control |
CN110188026B (zh) * | 2019-05-31 | 2023-05-12 | 龙芯中科技术股份有限公司 | 快表缺失参数的确定方法及装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4038645A (en) * | 1976-04-30 | 1977-07-26 | International Business Machines Corporation | Non-translatable storage protection control system |
US4355355A (en) * | 1980-03-19 | 1982-10-19 | International Business Machines Corp. | Address generating mechanism for multiple virtual spaces |
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 |
US4521846A (en) * | 1981-02-20 | 1985-06-04 | International Business Machines Corporation | Mechanism for accessing multiple virtual address spaces |
US4476524A (en) * | 1981-07-02 | 1984-10-09 | International Business Machines Corporation | Page storage control methods and means |
JPS5898893A (ja) * | 1981-12-09 | 1983-06-11 | Toshiba Corp | 情報処理装置 |
JPS6047624B2 (ja) * | 1982-06-30 | 1985-10-22 | 富士通株式会社 | アドレス変換制御方式 |
JPS6261132A (ja) * | 1985-09-12 | 1987-03-17 | Fujitsu Ltd | デ−タ転送命令制御方式 |
US4775955A (en) * | 1985-10-30 | 1988-10-04 | International Business Machines Corporation | Cache coherence mechanism based on locking |
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 | 多重アドレス空間制御方式 |
US5127094A (en) * | 1987-11-09 | 1992-06-30 | Hitachi, Ltd. | Virtual storage type computer system |
US5023773A (en) * | 1988-02-10 | 1991-06-11 | International Business Machines Corporation | Authorization for selective program access to data in multiple address spaces |
-
1989
- 1989-10-20 US US07/424,797 patent/US5237668A/en not_active Expired - Lifetime
-
1990
- 1990-08-13 DE DE69029504T patent/DE69029504T2/de not_active Expired - Fee Related
- 1990-08-13 EP EP90115517A patent/EP0423453B1/de not_active Expired - Lifetime
- 1990-08-13 AT AT90115517T patent/ATE146886T1/de not_active IP Right Cessation
- 1990-08-31 CA CA002024444A patent/CA2024444C/en not_active Expired - Fee Related
- 1990-09-19 JP JP2247669A patent/JPH03137747A/ja active Granted
- 1990-10-18 BR BR909005264A patent/BR9005264A/pt unknown
Also Published As
Publication number | Publication date |
---|---|
US5237668A (en) | 1993-08-17 |
ATE146886T1 (de) | 1997-01-15 |
CA2024444C (en) | 1995-08-15 |
EP0423453A3 (en) | 1992-04-29 |
BR9005264A (pt) | 1991-09-17 |
CA2024444A1 (en) | 1991-04-21 |
EP0423453A2 (de) | 1991-04-24 |
JPH0531179B2 (de) | 1993-05-11 |
EP0423453B1 (de) | 1996-12-27 |
JPH03137747A (ja) | 1991-06-12 |
DE69029504D1 (de) | 1997-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69029504T2 (de) | Verfahren zum Übersetzen und Kopieren von Adressen | |
DE10357804B4 (de) | Neu-Beanspruchung vorhandener Felder in Adressübersetzungsdatenstrukturen zum Erweitern der Kontrolle über Speicherzugriffe | |
DE112005003098B4 (de) | Verfahren und Vorrichtung zum Zugreifen auf einen physikalischen Speicher von einer CPU oder einem Prozessorelement mit hoher Leistung | |
DE112017001027B4 (de) | Seitenfehlerbehebung | |
KR101572409B1 (ko) | 비교 및 대체 dat 테이블 엔트리 | |
DE69901176T2 (de) | Rechnersystem mit einem emulationscoprozessor und verfahren zur emulation eines anwendungsprogramms | |
DE602004011018T2 (de) | Ungültigkeitserklärung eines speichers und löschen von puffereinträgen | |
DE69031433T2 (de) | Speicherzugriffsausnahmebehandlung bei vorausgelesenen Befehlswörtern in dem Befehlsfliessband eines Rechners mit virtuellem Speicher | |
DE10393920B4 (de) | Verfahren und Systeme zur Steuerung virtueller Maschinen | |
DE68923627T2 (de) | Steuerungsverfahren und -vorrichtung für Nullursprungsdatenräume. | |
DE3689287T2 (de) | Datenverarbeitungsgerät. | |
JP6284130B2 (ja) | ローカル・クリア制御 | |
DE68923863T2 (de) | Ein-/Ausgabecachespeicherung. | |
DE60036960T2 (de) | Unterscheidung von feinkorntranslation | |
DE202007019502U1 (de) | Globaler Überlauf für virtualisierten Transaktionsspeicher | |
DE112007001988T5 (de) | Gemeinsames Nutzen von Informationen durch Gäste in einer Virtuelle-Maschine-Umgebung | |
CN101952807A (zh) | 管理计算环境的多个可分页客户端对存储装置的使用 | |
DE112016004297T5 (de) | Technologien für mehrstufige virtualisierung | |
DE112010003942T5 (de) | Einrichtung zum Setzen von Schlüsseln ohne Stilllegung | |
DE69710034T2 (de) | Verfahren und Vorrichtung zum Schützen von Speicherteilen | |
DE102014003687A1 (de) | Vorrichtung und verfahren zum schutz von digitalem inhalt | |
DE102013022169A1 (de) | Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem | |
DE3853104T2 (de) | Vorrichtung und Verfahren für den Hauptspeicherschutz mit Verwendung von Zugriffs- und logischen Fehlersignalen. | |
DE102013022166B4 (de) | Seitenzustandsverzeichnis zur verwaltung eines vereinheitlichten virtuellen speichers | |
DE102016124749B4 (de) | Tlb shootdowns für niedrigen overhead |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |