DE3911182A1 - Adressenumsetzungsapparat in einem virtuellen maschinensystem - Google Patents

Adressenumsetzungsapparat in einem virtuellen maschinensystem

Info

Publication number
DE3911182A1
DE3911182A1 DE3911182A DE3911182A DE3911182A1 DE 3911182 A1 DE3911182 A1 DE 3911182A1 DE 3911182 A DE3911182 A DE 3911182A DE 3911182 A DE3911182 A DE 3911182A DE 3911182 A1 DE3911182 A1 DE 3911182A1
Authority
DE
Germany
Prior art keywords
address
virtual machine
information
virtual
space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE3911182A
Other languages
English (en)
Other versions
DE3911182C2 (de
Inventor
Ryo Yamagata
Hideo Sawamoto
Hidenori Umeno
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3911182A1 publication Critical patent/DE3911182A1/de
Application granted granted Critical
Publication of DE3911182C2 publication Critical patent/DE3911182C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Landscapes

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

Description

Die Erfindung betrifft einen Adressenumsetzungsapparat in einem virtuellen Maschinensystem, insbesondere die Steuerung eines Umsetzungsspeichers für eine Anzahl von virtuellen Maschinen, die in einem Adressenumsetzungs- AUS-Modus laufen.
In einem virtuellen Maschinensystem wird eine einzige Realmaschine in zeitlicher Verzahnung verwendet, indem für jeden Zeitkanal eine virtuelle Hardwareinformation festgelegt wird, so daß die einzige Realmaschine so ar­ beitet, als ob verschiedene Maschinen für die jeweiligen Zeitkanäle liefen. Ein die Realmaschine überwachendes und ein virtuelles Maschinensystem hervorbringendes Pro­ gramm (das im folgenden als Host-Programm bezeichnet wird) erzeugt einen virtuellen Speicher, in dem der Speicher einer virtuellen Maschine angesiedelt ist. Ein Zugriff durch ein auf einer virtuellen Maschine laufen­ des Programm (das im folgenden als Gast-Programm be­ zeichnet wird) muß unabhängig davon, ob er ein realer oder virtueller Adressenzugriff ist, einer Adressenum­ setzung durch das Host-Programm unterzogen und in einem Umsetzungsspeicher (der im folgenden mit TLAB bezeichnet wird) gespeichert werden. Die für ein System dieses Typs relevante Technik ist z. B. aus US 44 56 954 A bekannt.
Diese herkömmliche Technik stellt zwei Typen von TLAB- Eintragungen für ein Host-Programm und ein momentan lau­ fendes Gast-Programm bereit. Aus JP 58-8 073 A ist ein Verfahren bekannt, in dem durch die Schaffung der Iden­ tifikation einer virtuellen Maschine (die im folgenden als VM-Identifizierer bezeichnet wird) zur Unterschei­ dung des Host-Programmes und einer Mehrzahl von Gast- Programmen das Feld des TLAB erweitert wird. Gemäß die­ sem Verfahren können gleichzeitig die Eintragungen so­ wohl für das Host-Programm als auch für die Mehrzahl der Gast-Programme im TLAB vorliegen, wodurch eine effektive Verwendung des TLAB erzielt wird. Daher wird eine im TLAB gespeicherte Logikadresse mit hoher Wahrscheinlich­ keit vorliegen, was eine Verbesserung der Betriebslei­ stung bedeutet.
Ferner ist aus JP 57-23 347 A ein Apparat bekannt, in dem dem VM-Identifizierer entsprechende Raum- und Flächeni­ dentifizierer im TLAB-Feld vorgesehen sind, um zwischen den Adreßräumen des Host-Programmes und der Mehrzahl der Gast-Programme unterscheiden zu können; dadurch wird ein vervielfachtes virtuelles Speichersystem verwirklicht.
Die erwähnten herkömmlichen Techniken sind unter der Voraussetzung verwendbar, daß die Anzahl der gleichzei­ tig laufenden Gast-Programme kleiner ist als die Anzahl, die ein VM-Identifizierer unterscheiden kann. Wenn die Anzahl der gleichzeitig laufenden Gast-Programme größer ist als die unterscheidbare Anzahl, wird ein Löschprozeß des TLAB notwendig, so daß die vorteilhafte Leistungsfä­ higkeit der erwähnten herkömmlichen Techniken nicht aus­ genutzt werden kann. Um dieses Problem zu lösen, muß dem VM-Identifizierer eine ausreichende Anzahl von Bits zu­ gewiesen werden. Ein VM-Identifizierer ist jedoch das Schlüsselelement für die zugehörige Speicherfunktion des TLAB, weshalb die Zunahme der Bitanzahl hohe Hardwareko­ sten zur Folge hat.
In einem virtuellen Maschinensystem laufen Gast-Program­ me normalerweise sowohl auf einem interaktiven Verarbei­ tungssystem, das pro Endgerät ein Gast-Programm verwen­ det, als auch auf einem herkömmlichen System für die Stapelverarbeitung, die Echtzeitverarbeitung und andere Verarbeitungen. Im interaktiven Verarbeitungssystem lau­ fen entsprechend der Anzahl der Endgeräte einige hundert Gast-Programme gleichzeitig, während im herkömmlichen System die Anzahl der Gast-Programme gering ist. Ein auf einem interaktiven Verarbeitungssystem laufendes Gast- Programm läuft zur Aufwandsreduzierung ohne Adressenum­ setzung (ein solches Gast-Programm wird im folgenden mit DAU-AUS (dynamische Adressenumsetzung AUS) bezeichnet). In diesem Modus führt eine virtuelle Maschine einen Adressenzugriff aus, indem sie eine nur für die virtuel­ le Maschine reale Adresse verwendet; für die Realmaschi­ ne hingegen stellt diese Realadresse eine virtuelle Adresse dar.
Die Bedürfnisse der gegenwärtig üblichen Adressenum­ setzungstechnologie eines virtuellen Maschinensystems machen eine verbesserte Adressenumsetzungsoperation not­ wendig, mit der die Probleme, die bei vielen gleichzei­ tig laufenden Gast-Programmen auftreten, bewältigt wer­ den. Daher besteht der Bedarf nach einem Adressenum­ setzungsapparat, der einen weiterentwickelten Um­ setzungsspeicher besitzt, damit eine Anzahl von Gast- Programmen gehandhabt werden kann, ohne die Schnittstel­ len der Software zu ändern, und damit der Aufwand für die Adressenumsetzung verringert wird.
Aufgabe der Erfindung ist es daher, einen Adressenum­ setzungsapparat zu schaffen, bei dem die Eintragungen einer Anzahl von Gast-Programmen im TLAB ohne Änderung der Struktur des TLAB gehalten werden können.
Diese Aufgabe wird erfindungsgemäß durch einen Adressen­ umsetzungsapparat gelöst, in dem einer Gruppe von DAU- AUS-Gast-Programmen ein einziger Identifizierer einer virtuellen Maschine IDVM zugewiesen und ein Raumidenti­ fizierfeld im TLAB verwendet wird, um zwischen den Gast-Programmen innerhalb der Gruppe zu unterscheiden.
Erfindungsgemäß wird für ein gewöhnliches oder allgemei­ nes Gast-Programm ein im IDVM-Feld des TLAB gespeicher­ ter IDVM mit dem IDVM des laufenden Gast-Programmes ver­ glichen.
Erfindungsgemäß wird bei einem DAU-AUS-Gast-Programm ei­ ne im Raumidentifiziererfeld im TLAB gespeicherte Steu­ erblockadresse mit der Steuerblockadresse des laufenden Gast-Programmes verglichen. Hierbei wird ein den DAU- AUS-Gast-Programmen gemeinsamer Wert im IDVM-Feld des TLAB gespeichert.
Da ein DAU-AUS-Gast-Programm unter Verwendung eines Raumidentifiziererfeldes, wie oben erwähnt, unterschie­ den wird, können erfindungsgemäß mehr Gast-Programme als beim Stand der Technik unterschieden werden.
Die Erfindung wird im folgenden anhand eines Ausfüh­ rungsbeispieles unter Bezug auf die Zeichnungen näher erläutert; es zeigt
Fig. 1 eine Blockschaltbild eines erfindungsgemäßen vir­ tuellen Maschinensystems;
Fig. 2 die Logikschaltung des erfindungsgemäßen Adres­ senumsetzungsapparates;
Fig. 3 ein Flußdiagramm, das den Betrieb des Register­ setzens aufgrund der Aktivierung eines Gast-Pro­ grammes erläutert;
Fig. 4 ein Diagramm, das die bei verschiedenen Modi in den Registern gesetzten Werte zeigt; und
Fig. 5 ein Flußdiagramm, das den Betrieb der Aktivie­ rung eines Gast-Programmes erläutert, das noch nicht hinsichtlich der Alternative, ob DAU-AUS- Gast-Programm vorliegt oder nicht, identifiziert worden ist.
In Fig. 1 ist ein Blockschaltbild gezeigt, das ein er­ findungsgemäßes virtuelles Maschinensystem darstellt. In der CPU 100 wird ein Programm abgearbeitet, durch das ein virtuelles Maschinensystem verwirklicht wird. Zur Abarbeitung eines Gast-Programmes gibt die CPU 100 eine Steuerblockadresse, die unabhängig jedem Gast-Programm zugewiesen wird, auf eine Leitung 110, einen Segmentta­ bellenanfangspunkt (STA) auf eine Leitung 120, falls das Gast-Programm eine Mehrzahl von Räumen verwendet, eine Information, die anzeigt, ob das Gast-Programm ein DAU- AUS-Gast-Programm ist, auf eine Leitung 130 und eine In­ formation, die anzeigt, ob die Adresse, auf die zuge­ griffen wird, eine Realadresse oder eine virtuelle Adresse ist, auf eine Leitung 140.
Der VM-Stapelspeicher 400 stellt einen Speicher dar, der für die Umwandlung einer Steuerblockadresse in einen IDVM verwendet wird, wobei der IDVM im später beschrie­ benen TLAB gespeichert ist und als Schlüssel verwendet wird; die Bitanzahl des IDVM ist hierbei geringer als diejenige der Steuerblockadresse. Wenn alle VM's durch den IDVM unterschieden werden sollen, so nimmt die An­ zahl der Bits des IDVM und damit die Anzahl der Bits im Schlüsselbereich des TLAB zu, woraus sich eine ineffek­ tive Nutzung des TLAB ergibt. Daher wird die eine für die Unterscheidung aller Gast-Programme ausreichende Bitanzahl aufweisende Steuerblockadresse im IDVM-Stapel­ speicher 400 in IDVM's umgewandelt. Im IDVM-Stapelspei­ cher 400 werden Paare von Steuerblockadressen und zuge­ wiesenen IDVM's gespeichert. Die Steuerblockadresse wird als Schlüssel zur Ausgabe des IDVM verwendet.
Ein Adressenumsetzungsapparat wird später im einzelnen mit Bezug auf Fig. 2 beschrieben. Die Funktion des Adressenumsetzungsapparates 200 besteht in der Umsetzung einer von der CPU 100 gelieferten Logikadresse in eine absolute Adresse eines Hauptspeichers 300.
Durch ein Signal 14, das anzeigt, daß der Adressenum­ setzungsapparat 200 die Adressenumsetzung nicht ausfüh­ ren kann, wird eine dynamische Adressenumsetzung (DAU) 500 veranlaßt. Mit der DAU 500 wird unter Verwendung ei­ ner im Hauptspeicher 300 befindlichen Adressenum­ setzungstabelle eine absolute Adresse erhalten. Eine beispielhafte Ausführungsform einer DAU 500 ist aus der erwähnten US 44 56 954 A bekannt.
Eine Wähleinrichtung 600 wählt entsprechend einem Befehl von der CPU 100 entweder eine Steuerblockadresse oder einen Segmenttabellenanfangspunkt und gibt sie auf eine Leitung 170.
Fig. 2 ist ein Blockschaltbild, das den erfindungsge­ mäßen Adressenumsetzungsapparat darstellt. Die Eintra­ gung des TLAB 1 enthält ein Absolutadressenfeld (voraus­ bezeichnete Adresse VA) 2 zum Speichern einer absoluten Adresse, ein Gültigkeitssteuerbit (G) 3, das die Gültig­ keit der Eintragung anzeigt, ein Logikadressenfeld (LA) 4 zur Speicherung einer Logikadresse, einen Identifizie­ rer einer virtuellen Maschine (IDVM) 5 zum Speichern ei­ nes IDVM, ein Raumidentifiziererfeld (STA) 6 zum Spei­ chern eines Raumidentifizierers, ein Gemeinsames-Seg­ ment-Feld (GS) 7, das anzeigt, ob eine gemeinsame Fläche im Hauptspeicher 300 benutzt wird oder nicht, und ein Realeintragssteuerbit (R) 8, das anzeigt, ob sich die Eintragung auf eine reale oder virtuelle Adresse be­ zieht. In jedem Feld der Eintragung ist zum Zeitpunkt der Adressenumsetzung ein notwendiger Wert gespeichert.
Ein Realzugriffanforderungs-Steuerbit 9 wird bei der An­ forderung einer Realadresse auf "1" und bei der Anfor­ derung einer virtuellen Adresse auf "0" gesetzt.
Eine Exklusiv-ODER-Schaltung 17 vergleicht die Werte des Realeintragssteuerbits 8 und des Realzugriffanforde­ rungs-Steuerbits 9 und gibt "1" aus, wenn die Werte übereinstimmen.
Ein Raumidentifiziererregister 10 wird normalerweise mittels der Startadresse (STA) der Segmenttabelle ge­ setzt; in einem weiteren Fall wird sie auch mittels ei­ ner Steuerblockadresse des Gast-Programmes gesetzt. Der Unterschied bei einer solchen Operation wird später be­ schrieben. Die Steuerblockadresse wird unabhängig jedem Gast-Programm zugewiesen, so daß unterschiedliche Adres­ sen unterschiedliche Gast-Programme bezeichnen. Das Host-Programm arbeitet derart, daß es die Adresse des zugehörigen Gast-Programmes während dessen Lauf nicht ändert.
Ein STA-Komparator 18 vergleicht die Inhalte des Raumi­ dentifiziererfeldes 6 und des Raumidentifiziererregisters 10 und gibt "1" aus, wenn die Inhalte übereinstimmen.
Ein VM-Identifiziererregister 12 wird während des Laufes des Host-Programmes auf "0000" gesetzt. In dieser Aus­ führungsform wird dem Host-Programm der IDVM mit dem Wert "0000" zugewiesen. Das VM-Identifiziererregister 12 wird auf "0001" gesetzt, wenn ein DAU-AUS-Gast-Programm läuft; es wird auf einen weiteren, unabhängig jedem Gast-Programm zugewiesenen Wert außer "0000" und "0001", d. h. auf einen Wert von 2 oder mehr in Dezimalschreib­ weise gesetzt, wenn ein anderes Gast-Programm läuft.
Ein IDVM-Komparator 19 vergleicht die Inhalte des VM- Identifiziererfeldes 5 und des VM-Identifiziererregi­ sters 12 und gibt "1" aus, wenn die Inhalte übereinstim­ men.
Ein LA-Komparator 20 vergleicht den Inhalt des Logik­ adressenfeldes 4 mit einem Teil des Inhaltes eines Zu­ griffanforderungs-Adressenregisters 13 und gibt "1" aus, wenn die Inhalte übereinstimmen.
Wenn ein DAU-AUS-Gast-Programm läuft, so wird ein DAU- AUS-Gast-Programm-Steuerbit 11 auf "1" gesetzt, während dieses Steuerbit auf "0" gesetzt wird, wenn ein anderes Gast-Programm läuft.
Eine UND-Schaltung 21 gibt nur dann "1" aus, wenn der Wert des Realzugriffanforderungs-Steuerbits "1" und der Wert des DAU-AUS-Gast-Programm-Steuerbits 11 "0" ist.
Eine UND-Schaltung 22 gibt nur dann "1" aus, wenn der Wert des Realzugriffanforderungs-Steuerbits 9 "0" und der Wert des DAU-AUS-Gast-Programm-Steuerbits 11 "1" ist. Dieses Ausgangssignal "1" wird als Gast-Programmo­ dus-Änderungssignal, das später unter Bezug auf Fig. 4 beschrieben wird, verwendet.
Eine ODER-Schaltung 23 gibt "1" aus, wenn eine der Aus­ gaben des Gemeinsames-Segment-Steuerbits 7, des STA-Kom­ parators 18 oder der UND-Schaltung 21 den Wert "1" hat.
Eine UND-Schaltung 24 gibt "1" aus, wenn alle Ausgaben der Exklusiv-ODER-Schaltung 17, der ODER-Schaltung 23, des IDVM-Komparators 19 und des LA-Komparators 20 den Wert "1" haben. Dieses Ausgabesignal "1" wird als TLAB- Koinzidenzsignal 14 verwendet; es veranlaßt die TLAB- Ausgabewähleinrichtung 15, den Inhalt des Absolutadres­ senfeldes 2 auszugeben.
Nun wird der Betrieb der in Fig. 1 gezeigten Schaltung beschrieben. Der Betrieb enthält einen Host-Programmo­ dus, einen allgemeinen Gast-Programmodus und einen DAU- AUS-Gast-Programmodus und wird in dieser Reihenfolge be­ schrieben.
(1) Host-Programmodus
Zunächst wird die Host-Programm-Laufoperation beschrieben.
Aufgrund der Ausgabe einer Hauptspeicher-Zugriffanfor­ derung wird eine im Zugriffanforderungs-Adressenregister 13 sich befindende Adresseninformation zwischen 10 und 18 Bits in einem Adressendekoder 25 dekodiert, damit ei­ ne Eintragung im TLAB ausgelesen und eine Koinzidenzbe­ urteilung vorgenommen werden kann. Hierbei nimmt das Realzugriffanforderungs-Steuerbit 9 bei der Zugriffan­ forderung einer Realadresse den Wert "1" und bei der Zu­ griffanforderung einer virtuellen Adresse den Wert "0" an. Da das Host-Programm läuft, nimmt das DAU-AUS-Gast- Programm-Steuerbit 11 den Wert "0" an. Bei einem Haupt­ speicherzugriff durch das Host-Programm nimmt das VM- Identifiziererregister 12 für den IDVM-Wert "0000" den Wert "0000" an. Das Raumidentifiziererregister 10 wird durch die Startadresse der Segmenttabelle gesetzt (siehe Reihe 410 in Fig. 4).
(1a) Ausgabe einer virtuellen Adresse durch das Host- Programm
Hierbei wird das Realzugriffanforderungs-Steuerbit 9 auf den Wert "0" gesetzt. Die später mit Bezug auf die Fig. 3 und 4 beschriebenen Werte werden entsprechend im Raum­ identifiziererregister 10, für das DAU-AUS-Gast-Pro­ gramm-Steuerbit 11, im VM-Identifiziererregister 12 und im Zugriffanforderungs-Adressenregister 13 gesetzt.
Wenn aufgrund des Wertes "0" der Ausgabe der UND-Schal­ tung 21 das Gemeinsames-Segment-Steuerbit 7 den Wert "0" annimmt, so hängt der Wert der Ausgabe der UND-Schaltung 23 ("1" oder "0") vom Vergleichsergebnis des STA-Kompa­ rators 18 ab. Wenn die Inhalte des Raumidentifizierer­ registers 10 und des Raumidentifiziererfeldes 6 nicht übereinstimmen, wird die Aufgabe der ODER-Schaltung 23 "0", so daß von der UND-Schaltung 24 kein TLAB-Koinzi­ denzsignal erhalten wird.
(1b) Ausgabe einer realen Adresse durch das Host- Programm
Wenn das Host-Programm andererseits eine Realadressenan­ forderung ausgibt, nimmt das Realzugriffanforderungs- Steuerbit 9 den Wert "1" an. Da die Ausgabe des DAU-AUS- Gast-Programm-Registers 11 "0" ist, nimmt die Ausgabe der UND-Schaltung 21 den Wert "1" an, so daß die Ausgabe der ODER-Schaltung 23 ungeachtet der Ausgabe des STA- Komparators 18 den Wert "1" annimmt. Wenn folglich die andere Eingabe an die UND-Schaltung 24 "1" ist, wird un­ geachtet des Vergleichsergebnisses durch den STA-Kompa­ rator 18 eine TLAB-Koinzidenz festgestellt.
Wenn die angeforderte Adresse nicht im TLAB gespeichert wird, so wird in beiden Fällen (1a) und (1b) die Adres­ senumsetzung mittels der dynamischen Adressenumsetzung 500 ausgeführt und das Ergebnis im TLAB über die Leitung 160 (s. Fig. 1) gespeichert. In den jeweiligen Feldern werden die folgenden Werte gesetzt: im Absolutadressen­ feld 2 wird die mittels der Adressenumsetzung erhaltene absolute Adresse gespeichert, als Gültigkeitssteuerbit 3 wird "1" gesetzt, im Logikadressenfeld 4 wird ein Teil der Zugriffanforderungsadresse 13 gesetzt, im VM-Identi­ fiziererfeld 5 wird ein Wert des VM-Identifiziererregi­ sters 12 gesetzt, im Raumidentifiziererfeld 6 wird ein Wert des Raumidentifiziererregisters 10 gesetzt, im Ge­ meinsames-Segment-Feld 7 wird ein während der Adressen­ umsetzung gewonnener Wert der gemeinsamen Bits in der Segmenttabelleneintragung gesetzt und als Realeintrags­ steuerbit 8 wird der Wert des Realzugriffanforderungs- Steuerbits 9 gesetzt.
(2) Allgemeiner Gast-Programmodus
Als nächstes wird der Ablauf eines allgemeinen Gast-Pro­ grammes, der eine Adressenumsetzung ausführt, beschrie­ ben. Ein allgemeines Gast-Programm verwendet eine Mehr­ zahl von Adreßräumen.
Das DAU-AUS-Gast-Programm-Steuerbit 11 nimmt genauso wie im Host-Programmodus den Wert "0" an. Das VM-Identifi­ ziererregister 12 wird jedoch mit einer Zahl (VM-Identi­ fizierer) des momentan laufenden Gast-Programmes, mit Ausnahme von "0000" oder "0001", gesetzt.
Dieser Identifizierer einer VM wird durch den IDVM-Sta­ pelspeicher 400 (Fig. 1), einen Speicher, der anhand der Steuerblockadresse des laufenden Gast-Programmes auf­ grund der Inbetriebnahme des Gast-Programmes den jewei­ ligen Identifizierer einer VM zu suchen in der Lage ist, überwacht.
Der zugehörige TLAB-Suchbetrieb ist analog zu der Zu­ griffanforderung durch das Host-Programm. Wenn mit dem VM-Identifizierer eine Übereinstimmung erzielt wird, so kommt nur die TLAB-Eintragung für das jetzt betroffene Gast-Programm zur Übereinstimmung. Wenn mit keiner Ein­ tragung im TLAB eine Übereinstimmung erzielt werden kann, so werden die Werte für die Register und die Steu­ erbits in entsprechenden Feldern des TLAB genauso wie im beschriebenen "Host-Programmodus" gesetzt.
(3) DAU-AUS-Gast-Programmodus
Nun wird der Betrieb der DAU-AUS-Gast-Programmes be­ schrieben. In diesem Modus wird ein einziger Adreßraum verwendet.
Mittels der Steuerung durch das Host-Programm wird das DAU-AUS-Gast-Programm-Steuerbit 11 auf "1", das VM-Iden­ tifiziererregister auf "0001" und das Raumidentifizie­ rerregister 10 auf die Steuerblockadresse des Gast-Pro­ grammes gesetzt.
Ein solches Gast-Programm führt keine Adressenumsetzung aus, weshalb nur ein einziger Realadreßraum vorhanden ist, so daß das Gast-Programm den Inhalt des Raumidenti­ fiziererregisters 10 nicht zu ändern braucht. Wenn daher einmal im Raumidentifiziererregister 10 die Steuerblock­ adresse des Gast-Programmes gesetzt worden ist, werden die durch das Host-Programm gesetzten Werte während des Laufes des Gast-Programmes beibehalten. Aufgrund einer vom Gast-Programm ausgegebenen Zugriffanforderung wird von den TLAB-Eintragungen diejenige Eintragung gesucht, die für das VM-Identifiziererfeld 5 den Wert "0001" und für das Raumidentifiziererfeld 6 die Steuerblockadresse des entsprechenden Gast-Programmes aufweist.
Wenn die Zugriffanforderung zu einer Realadresse gehört und das Realzugriffanforderungs-Steuerbit 9 den Wert "1" annimmt, wird die Ausgabe der UND-Schaltung 21 "0", da das DAU-AUS-Gast-Programm-Steuerbit 11 auf "1" gesetzt worden ist. Da jedoch die Ausgabe des STA-Komparators 18 "1" wird, wird die Ausgabe der ODER-Schaltung 23 "1", so daß hierbei kein Problem entsteht.
Wenn für das Gemeinsames-Segment-Steuerbit 7 eine Ein­ tragung mit dem Wert "1" vorhanden ist, wird die Ausgabe der ODER-Schaltung 23 ungeachtet der Ausgabe des STA- Komparators 18 "1", so daß auch dann, wenn in bezug auf den Wert des Raumidentifiziererfeldes 6 keine Überein­ stimmung erzielt wird, festgestellt wird, daß eine TLAB- Eintragung vorhanden ist. Wenn im TLAB keine für eine Übereinstimmung hinreichende Eintragung vorhanden ist, wird die Adressenumsetzung ausgeführt und das Ergebnis im TLAB gespeichert. Hierbei wird im Raumidentifizierer­ feld 6 der Momentanwert des Raumidentifiziererregisters 10, d. h. die Steuerblockadresse des Gast-Programmes, und im VM-Identifiziererfeld 6 der Wert "0001" gespeichert. In den anderen Feldern werden die gleichen Werte wie die im Zusammenhang mit dem "Host-Programmodus" beschriebe­ nen gespeichert. Wie erwähnt, wird in dieser Ausfüh­ rungsform im Raumidentifiziererfeld 6 eine Steuerblock­ adresse für die Unterscheidung eines Gastprogrammes ge­ speichert.
Nun wird mit Bezug auf die Fig. 3 und 4 der die oben er­ wähnte Operation während der Abarbeitung eines Gast-Pro­ grammes ermöglichende Anfangssetzprozeß zum Zeitpunkt der Aktivierung des Gast-Programmes beschrieben. Bei der Aktivierung eines allgemeinen Gast-Programmes (Schritt 310) wird im Raumidentifiziererregister 10 ein durch das Gast-Programm bezeichneter Wert, das DAU-AUS-Gast-Pro­ gramm-Steuerbit 11 auf den Wert "0" und die VM-Identifi­ ziererregister 12 der Identifizierer einer VM, der durch die Suche des IDVM-Stapelspeichers 400 erhalten worden ist, gesetzt (Schritt 320, Reihe 420). Bei der Aktivie­ rung eines DAU-AUS-Gast-Programmes (Schritt 320, Reihe 430) wird im Raumidentifiziererregister 10 die Steuer­ blockadresse des Gast-Programmes, für das DAU-AUS-Gast- Programm-Steuerbit 11 der Wert "1" und im VM-Identifi­ ziererregister 12 der Wert "1" gesetzt. Hierbei ist die Information, ob das Gast-Programm ein DAU-AUS-Gast-Pro­ gramm ist oder nicht, unter der Steuerung des Host-Pro­ grammes mit dem Steuerblock des Gast-Programmes gegeben.
Anhand der Beschreibung dieser Ausführungsform wird deutlich, daß auch bei Verwendung eines TLAB, der ein VM-Identifiziererfeld mit einer relativ kleinen Bitzahl besitzt, die Adressenumsetzungsinformation für eine An­ zahl von DAU-AUS-Gast-Programmen im TLAB gehalten werden kann, wodurch die Betriebsleistung eines virtuellen Ma­ schinensystems vorteilhaft verbessert wird.
Ferner sind in der obigen Ausführungsform dem VM-Identi­ fiziererregister 12 fest die Werte "0" für das Host-Pro­ gramm, "1" für das DAU-AUS-Gast-Programm und "2 oder mehr" für das allgemeine Gast-Programm zugewiesen wor­ den. Andererseits ist aus US 2 22 767 A (eingereicht am 22. Juli 1988 von Anmelder der vorliegenden Erfindung) bekannt, daß dem VM-Identifiziererregister 12 immer dann ein neuer Wert zugewiesen werden kann, wenn der TLAB ge­ löscht wird.
Weiterhin ist es in der erfindungsgemäßen Ausführungs­ form notwendig, vorher festzulegen, welches Gastprogramm (allgemeines Gast-Programm oder DAU-AUS-Gast-Programm) laufen soll, weil für das DAU-AUS-Gast-Programm-Steuer­ bit 11 vorher ein Wert gesetzt werden sollte. Bei Ver­ wendung des Gast-Programm-Änderungssignales 16 kann je­ doch das Raumidentifiziererfeld 6 für die Unterscheidung eines Gast-Programmes auch dann benutzt werden, wenn der Typ des Gast-Programmes nicht im voraus festgelegt wer­ den kann.
Eine solche Operation kann insbesondere durch ein Ver­ fahren realisiert werden, bei dem das aktivierte Gast- Programm zunächst als DAU-AUS-Gast-Programm angesehen wird; der Modus wird dann geändert, wenn während des Gast-Programm-Laufes die Zugriffanforderung für eine virtuelle Adresse ausgegeben wird. Für einen solchen Fall ist der Aktivierungsprozeß eines Gast-Programmes in Fig. 5 gezeigt. Mittels einer Steuerblockadresse wird auf den IDVM-Stapelspeicher 400 Bezug genommen (Schritt 510). Wenn im IDVM-Stapelspeicher 400 die Steuerblock­ adresse des Gast-Programmes nicht gespeichert ist (Schritt 520) und das zu aktivierende oder abzuschicken­ de Gast-Programm ein DAU-AUS-Gast-Programm ist (Schritt 530), so wird das Gast-Programm als DAU-AUS-Gast-Pro­ gramm aktiviert (Schritt 540), während das Gast-Programm im anderen Fall als allgemeines Gast-Programm aktiviert wird (Schritt 550).
Wenn das Gast-Programm weiterhin im DAU-AUS-Modus läuft, so gleicht die Operation dem Fall, in dem der Modus im voraus bestimmt werden kann. Wenn das Gast-Programm im Laufe seiner Operation den Adressenumsetzungsmodus än­ dert und eine Zugriffanforderung für eine virtuelle Adresse ausgibt, so wird der Wert des Realzugriffanfor­ derungs-Steuerbits 9 "0". Da der Wert des DAU-AUS-Gast- Programm-Steuerbits 11 "1" ist, wird die Ausgabe der UND-Schaltung 22 "1", während das Gast-Programmodus-Än­ derungssignal 16 "1" wird. Diese eine Ausnahme bei der Host-Programm-Adressenumsetzung anzeigende Signal wird über die Leitung 16 an die CPU 100 geschickt und bewirkt dort eine Host-Programm-Unterbrechung. Wenn das Host- Programm die Unterbrechung empfängt, wird vom Modus des DAU-AUS-Gast-Programmodus zum allgemeinen Gast-Programm­ modus gewechselt. Daher unterscheidet sich der Status des Gast-Programmes vom DAU-AUS-Status (Schritt 530), so daß das Gast-Programm bei seiner Reaktivierung als all­ gemeines Gast-Programm aktiviert werden kann, wie im Flußdiagramm von Fig. 5 gezeigt ist (Schritt 550).
Anschließend wird ein die Unterbrechung veranlassender Befehl nochmals abgearbeitet, wodurch eine Modusänderung ohne jede Einflußnahme auf das Gast-Programm ermöglicht wird. Ein Vorteil der erfindungsgemäßen Ausführungsform besteht darin, daß das Raumidentifiziererfeld 6 für die Unterscheidung eines Gast-Programmes verwendet werden kann, ohne daß der Typ des Gast-Programmes vorher ange­ geben werden muß, was eine Einschränkung im Betriebsab­ lauf bedeuten würde.
Gemäß einer Abwandlung der obigen Ausführungsform braucht in dem Fall, daß ein Gast-Programmodus-Ände­ rungssignal 16 "1" wird, keine Host-Programm-Unterbre­ chung erzeugt werden, weil die Modusänderung mittels Hardware oder mittels Mikroprogrammen bewirkt wird.
Gemäß der erfindungsgemäßen Ausführungsform kann ohne zusätzliche Softwareschnittstelle ein DAU-AUS-Gast-Pro­ gramm vorteilhaft unterschieden werden.
Erfindungsgemäß können im TLAB die Eintragungen einer Anzahl von Gast-Programmen, die größer ist als die Zahl der durch den VM-Identifizierer unterscheidbaren Gast- Programme, gehalten werden, ohne daß die Software­ schnittstelle geändert werden muß. Die Erfindung hat da­ her den Vorteil, daß der Aufwand für die Adressenum­ setzung klein gehalten und die Leistungsfähigkeit des Systems verbessert werden kann.

Claims (4)

1. Adressenumsetzungseinrichtung (200) für eine virtuel­ le Maschine zur Umsetzung von Logikadressen, die von einer Mehrzahl von von einer gemeinsamen Realmaschine betriebenen virtuellen Maschinen erzeugt werden, in Realadressen oder Absolutadressen, gekennzeichnet durch
einen Adressenumsetzungsspeicher (1), dessen Ein­ tragung ein Realadressenfeld (4) zur Speicherung ei­ ner einer Logikadresse entsprechenden Real- oder Ab­ solutadresse, ein Identifiziererfeld (5) von virtuel­ len Maschinen zur Speicherung eines der Unterschei­ dung der Gruppe von virtuellen Maschinen dienenden Identifizierers, und ein Raumidentifiziererfeld (6) zur Speicherung von Information für die Unterschei­ dung einer virtuellen Maschine oder des Adressenrau­ mes einer virtuellen Maschine aufweist,
eine erste Einrichtung für die Eintragung einer ersten, eine Mehrzahl von Adressenräumen verwendenden virtuellen Maschine im Umsetzungsspeicher (1), die die für die Unterscheidung der ersten virtuellen Ma­ schine dienende Information im Identifiziererfeld (5) von virtuellen Maschinen und die für die Unterschei­ dung eines Adressenraumes dienende Information im Raumidentifiziererfeld (6) speichert, und
eine zweite Einrichtung für die Eintragung einer zweiten, einen einzigen Adressenraum verwendenden virtuellen Maschine im Umsetzungsspeicher (1), die einen einer Gruppe der zweiten virtuellen Maschinen gemeinsam zugewiesenen Identifizierer im Identifizie­ rerfeld (5) von virtuellen Maschinen und die zweite, für die Unterscheidung der zweiten virtuellen Maschi­ ne dienende Information im Raumidentifiziererfeld (6) speichert.
2. Adressenumsetzungseinrichtung (200) für eine virtuel­ le Maschine gemäß Anspruch 1, dadurch gekennzeichnet, daß
für die erste Information eine kleinere Bitzahl verwendet wird als für die zweite Information, und
ein Stapelspeicher (400) für virtuelle Maschinen vorgesehen ist, der die zweite Information in die er­ ste Information, die an die erste Einrichtung ge­ schickt wird, umwandelt.
3. Adressenumsetzungseinrichtung (200) für eine virtuel­ le Maschine gemäß Anspruch 2, gekennzeichnet durch eine Einrichtung, die, wenn eine einem bestimmten Wert als der zweiten Information zugewiesene virtuel­ le Maschine als die zweite virtuelle Maschine zu ar­ beiten beginnt, feststellt, daß die virtuelle Maschi­ ne als die erste virtuelle Maschine zu arbeiten be­ ginnt; und eine Einrichtung zur Speicherung der der zweiten Information entsprechenden ersten Information im Identifiziererfeld (5) von virtuellen Maschinen und des der Unterscheidung eines Adressenraumes die­ nenden Identifizierers im Raumidenfiziererfeld (6).
4. Adressenumsetzungseinrichtung (200) für eine virtuel­ le Maschine zur Umsetzung von Logikadressen, die von einer Mehrzahl von von einer gemeinsamen Realmaschine betriebenen virtuellen Maschinen erzeugt werden, in Realadressen oder Absolutadressen, gekennzeichnet durch
einen Adressenumsetzungsspeicher (1), dessen Ein­ tragung ein Realadressenfeld (4) zur Speicherung ei­ ner einer Logikadresse entsprechenden Real- oder Ab­ solutadresse, ein Identifiziererfeld (5) von virtuel­ len Maschinen zur Speicherung eines der Unterschei­ dung einer Gruppe von virtuellen Maschinen dienenden Identifizierers, und ein Raumidentifiziererfeld (6) zur Speicherung von Information für die Unterschei­ dung einer virtuellen Maschine oder des Adressenrau­ mes einer virtuellen Maschine aufweist,
eine erste Registereinrichtung (12) zur Speiche­ rung von Information, die mit dem Inhalt des Identi­ fiziererfeldes (5) von virtuellen Maschinen des Adressenumsetzungsspeichers (1) verglichen wird,
eine zweite Registereinrichtung (10) zur Speiche­ rung von Information, die mit dem Inhalt des Raumi­ dentifiziererfeldes (6) des Adressenumsetzungsspei­ chers (1) verglichen wird,
eine Umwandlungseinrichtung (400) zur Umwandlung der ersten der Unterscheidung einer virtuellen Ma­ schine dienenden Information in eine zweite Informa­ tion, dessen Bitzahl kleiner ist als diejenige der ersten Information;
eine erste Einrichtung zur Speicherung der ersten Information in der ersten Registereinrichtung (12) und der der Unterscheidung eines Adressenraumes die­ nenden Information im Raumidentifiziererfeld (6), um eine erste, eine Mehrzahl von Adressenräumen verwen­ dende virtuelle Maschine zu betreiben, und
eine zweite Einrichtung zum Speichern eines einer Gruppe der zweiten virtuellen Maschinen gemeinsam zu­ gewiesenen Identifizierers in der ersten Registerein­ richtung (12) und der zweiten, der Unterscheidung der zweiten virtuellen Maschine dienenden Information in der zweiten Registereinrichtung (10), um eine zweite, einen einzigen Adressenraum verwendende virtuelle Ma­ schine betreiben.
DE3911182A 1988-04-06 1989-04-06 Adressenumsetzungsapparat in einem virtuellen maschinensystem Granted DE3911182A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63082921A JPH01255945A (ja) 1988-04-06 1988-04-06 仮想計算機におけるアドレス変換装置

Publications (2)

Publication Number Publication Date
DE3911182A1 true DE3911182A1 (de) 1989-10-19
DE3911182C2 DE3911182C2 (de) 1990-08-30

Family

ID=13787709

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3911182A Granted DE3911182A1 (de) 1988-04-06 1989-04-06 Adressenumsetzungsapparat in einem virtuellen maschinensystem

Country Status (3)

Country Link
US (1) US5129071A (de)
JP (1) JPH01255945A (de)
DE (1) DE3911182A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993000636A1 (en) * 1991-06-28 1993-01-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2825550B2 (ja) * 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
JPH0496828A (ja) * 1990-08-15 1992-03-30 Hitachi Ltd 多重絶対アドレス空間構成方法および装置
US5317754A (en) * 1990-10-23 1994-05-31 International Business Machines Corporation Method and apparatus for enabling an interpretive execution subset
US5317705A (en) * 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
JPH0512126A (ja) * 1991-07-05 1993-01-22 Hitachi Ltd 仮想計算機のアドレス変換装置及びアドレス変換方法
JPH0540696A (ja) * 1991-08-02 1993-02-19 Canon Inc 仮想記憶アドレス制御の方法及びその情報処理装置
JPH0695898A (ja) * 1992-09-16 1994-04-08 Hitachi Ltd 仮想計算機の制御方法および仮想計算機システム
US5479631A (en) * 1992-11-19 1995-12-26 International Business Machines Corporation System for designating real main storage addresses in instructions while dynamic address translation is on
US5680598A (en) * 1995-03-31 1997-10-21 International Business Machines Corporation Millicode extended memory addressing using operand access control register to control extended address concatenation
US6289432B1 (en) 1998-03-25 2001-09-11 International Business Machines Corporation Sharing segments of storage by enabling the sharing of page tables
US6385712B1 (en) * 1999-10-25 2002-05-07 Ati International Srl Method and apparatus for segregation of virtual address space
US6560687B1 (en) * 2000-10-02 2003-05-06 International Business Machines Corporation Method of implementing a translation lookaside buffer with support for a real space control
US7069413B1 (en) 2003-01-29 2006-06-27 Vmware, Inc. Method and system for performing virtual to physical address translations in a virtual machine monitor
US6973557B2 (en) * 2003-02-04 2005-12-06 Sun Microsystems, Inc. Apparatus and method for dual access to a banked and pipelined data cache memory unit
US8347063B2 (en) * 2005-08-19 2013-01-01 Intel Corporation Method and system for device address translation for virtualization
US8386749B2 (en) * 2010-03-16 2013-02-26 Advanced Micro Devices, Inc. Address mapping in virtualized processing system
TWI497296B (zh) * 2013-12-04 2015-08-21 Univ Nat Taiwan 記憶體配置與分頁位址轉換系統及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
JPH0657449A (ja) * 1992-08-11 1994-03-01 Sumitomo Metal Ind Ltd 耐食性と溶接性に優れた自動車用高強度めっき鋼板

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52149444A (en) * 1976-06-08 1977-12-12 Fujitsu Ltd Multiplex virtual space processing data processing system
JPS5925303B2 (ja) * 1980-05-16 1984-06-16 富士通株式会社 多重仮想計算機システムにおける多重仮想記憶制御方式
JPS5953634B2 (ja) * 1980-07-15 1984-12-26 富士通株式会社 計算機システム
JPS5723347A (en) * 1980-07-15 1982-02-06 Matsushita Electric Ind Co Ltd Communication system
NL8103173A (nl) * 1981-07-02 1983-02-01 Stamicarbon Werkwijze voor de bereiding van een 5-alkyl-butyrolacton.
JPS61206057A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
JPH0685156B2 (ja) * 1985-05-24 1994-10-26 株式会社日立製作所 アドレス変換装置
JPH0658650B2 (ja) * 1986-03-14 1994-08-03 株式会社日立製作所 仮想計算機システム
JPS62222342A (ja) * 1986-03-25 1987-09-30 Hitachi Ltd 仮想計算機システム
JPS63231550A (ja) * 1987-03-19 1988-09-27 Hitachi Ltd 多重仮想空間制御方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
JPH0657449A (ja) * 1992-08-11 1994-03-01 Sumitomo Metal Ind Ltd 耐食性と溶接性に優れた自動車用高強度めっき鋼板

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993000636A1 (en) * 1991-06-28 1993-01-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match

Also Published As

Publication number Publication date
US5129071A (en) 1992-07-07
DE3911182C2 (de) 1990-08-30
JPH01255945A (ja) 1989-10-12

Similar Documents

Publication Publication Date Title
DE3911182C2 (de)
DE2725718C2 (de) Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE2948285C2 (de) Adressensteuereinrichtung für einen Datenprozessor
DE3833933C2 (de) Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion
DE2807476C2 (de) Speichereinrichtung mit mehreren virtuellen Adreßräumen
DE2712575C2 (de) Assoziatives Speichersystem in hochintegrierter Halbleitertechnik
DE2556661A1 (de) Steuerschaltung mit adressenerweiterung
DE2350884A1 (de) Datenverarbeitungssystem
DE2758152A1 (de) Speicherschutzanordnung
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
DE4125194A1 (de) Virtuelle maschine und verfahren zur steuerung dieser virtuellen maschine
DE3718750C2 (de)
DE2339741A1 (de) Anordnung zur bildung einer relativen adresse fuer einen speicher
DE3825028C2 (de)
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE2718551B2 (de)
DE2149200C3 (de) Einrichtung zur Auswahl von im Verlauf einer Programmbearbeitung am häufigsten benötigten Daten
DE60217729T2 (de) Verfahren zum erkennen eines elektronischen geräts in einem mehrfachsteuersystem
DE2726679A1 (de) Kanalsteuerung fuer datenverarbeitungsanlagen und verfahren zu ihrem betrieb
DE3426902C2 (de) Schaltungsanordnung zum Konfigurieren von Peripherieeinheiten in einer Datenverarbeitungsanlage
DE2516050A1 (de) Verfahren und einrichtung zur informationsspeicherung in einem datenverarbeitungssystem
EP1145113A1 (de) Verfahren und anordnung zur erzeugung und ausführung von komprimierten programmen eines vliw-prozessors
DE2419836C3 (de) Schaltungsanordnung zur Durchführung von Unterprogramm-Sprungbefehlen in Datenverarbeitungsanlagen
DE3633898A1 (de) Einrichtung zur folgesteuerung eines aeusseren kreises, beispielsweise eines pipelineprozessors

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee