DE2426435A1 - Hardware-virtualisierungsanordnung - Google Patents
Hardware-virtualisierungsanordnungInfo
- Publication number
- DE2426435A1 DE2426435A1 DE19742426435 DE2426435A DE2426435A1 DE 2426435 A1 DE2426435 A1 DE 2426435A1 DE 19742426435 DE19742426435 DE 19742426435 DE 2426435 A DE2426435 A DE 2426435A DE 2426435 A1 DE2426435 A1 DE 2426435A1
- Authority
- DE
- Germany
- Prior art keywords
- virtual machine
- plan
- virtual
- machine
- auxiliary source
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45566—Nested virtual machines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
Description
Die Erfindung bezieht sich generell auf Rechner, und insbesondere auf virtuelle Rechnersysteme und eine Hardware-Virtualisierungsanordnung
sowie auf ein Verfahren zur Adressierung von Hilfsquellen durch Prozesse, die auf einer
virtuellen Maschine ablaufen.
Das Auftauchen von Eingabe/Ausgabe-Verarbeitungseinrichtungen
in den frühen sechziger Jahren und die Anwendung der Multiprogrammierung zwecks Steigerung der Hilfquellenausnutzung
und der Gesamtleistung hat den Beginn von Mehrprozessor-Multiprogrammierungs-Konfigurationen
signalisiert, bei denen ein Hauptspeicher für nicht übereinstimmende Prozessoren bzw. Verarbeitungseinheiten verteilt zur Ver-
409851/0863
fügung stand und bei denen eine einzige Verarbeitungseinrichtung an verschiedenen Prozessen teilnahm, die im Wettbewerb
um gemeinsame Hilfsquellen standen.
Um die mit der Systemintegrität zusammenhängenden Probleme zu vermeiden, wurde eine Doppelzustands-Bauweise übernommen.
Grundsätzlich wurde der Systembetrieb in zwei unterschiedliche Betriebsarten aufgeteilt - in eine privilegierte Betriebsart
und in eine nicht privilegierte Betriebsart. Die privilegierte/nicht privilegierte Betriebsar1ffi(auch als
Master/Slave oder System/Anwender-Betriebsarten bekannt)
haben jedoch die Leistung von kritischen Operationen auf die privilegierte Betriebsart beschränkt, während die Masse
von Operationen, die nicht kritisch waren, in der nicht privilegierten
Betriebsart ausgeführt wurden.
In Fig. 1a ist der herkömmliche Doppelzustandsaufbau gezeigt.
Die bloße Maschine 101 weist eine Grund-Maschinentrennstelle 103 auf, welche einen privilegierten Softwarekern 102 enthält.
(Eine Grund-Maschinentrennstelle bzw. -Maschinenschnittstelle ist die Anlage für sämtliche sichtbaren Software-Objekte
und -Befehle, die direkt durch die Hardware und Firmenware eines bestimmten Systems getragen werden.) Diese
Kombination stützt sich auf verschiedene erweiterte Maschinen 104, 105, etc. (obwohl der Klarheit wegen lediglich zwei
Maschinen dargestellt sind). Die erweiterten Maschinen können ihrerseits verschiedene Anwenderprogramme tragen, wie 106
und 107. Bs sei jedoch darauf hingewiesen, daß mit Rücksicht
darauf, daß herkömmliche Systeme dieses Typs lediglich eine Grund-Maschinenschnittstelle 103 enthalten, diese Systeme
imstande sind, lediglich zu irgendeinem gegebenen Zeitpunkt
409861/0863
einen privilegierten Softwarekern bzw. SoftwareZentrum 102
entsprechend zu laufen. Da die einzige Software, die vollständigen Zugriff zu sämtlichen Funktionseigenschaften der
Hardware hat und diese Eigenschaften steuert, das privilegierte SoftwareZentrum ist, entstehen demgemäß verschiedene
Probleme. Das Hauptproblem unter diesen Problemen liegt im
Bereich der Programmtransportierbarkeit, da nämlich nicht privilegierte Programme tatsächlich für die erweiterte
Maschine geschrieben werden, die durch das privilegierte Softwarezentrum zuzüglich der nicht privilegierten Funktionen
der Hardware gebildet ist. Während die bloße Hardwaremaschine relativ leicht zu standardisieren ist, sind die erweiterten
Maschinen sehr schwer zu standardisieren, und zwar wegen der relativen Leichtigkeit, mit der ein System (einschließlich
des privilegierten SoftwareZentrums) modifiziert werden kann,
da die Stammwörter (das sind Pseudobefehle) eines derartigen
Systems zum Teil in Software ausgeführt sind. Eine Vielzahl unterschiedlich erweiterter Maschinen, die auf der Grundlage
einer bloßen Standardmaschine laufen, ist das Ergebnis. Deshalb muß ein Anwender, der Programmewünscfet laufen eu lassen
die für eine der erweiterten Maschine des Anwenders fremde erweiterte Maschine geschrieben sind, entweder eine gewisse
Zeit auf seiner erweiterten Maschine bereitstellen, um das "fremde" SoftwareZentrum laufen zu lassen, oder er muß die
für die fremde erweiterte Maschine geschriebenen Programme für seine erweiterte Maschine umsetzen - eine Wahl, die
die meisten Anwender nicht begrüßen.
Ein weiteres Problem entsteht dadurch, daß lediglich ein privilegiertes SoftwareZentrum vorhanden ist und daß es
deshalb unmöglich ist, zwei Versionen des privilegierten SoftwareZentrums zur selben Zeit laufen zu lassen. Die
fortwährende Entwicklung und Modifizierung des Zentrums
409851/0663
ist daher sehr schwierig, da es notwendig wird, über Systemprogrammierer
zu ungewöhnlichen Stunden zu verfugen, um das zur Verfügung gestellte System zu ihrer Verwendung zu haben.
Wenn die Systemprogrammierer das zur Verfügung gestellte System nicht zu ihrer Verfügung zwecks Programmkorrektur
oder für Modifizierungszwecke zur Verfügung zu haben, ist
dem System eine sehr schwache Belastung auferlegt, die zu einer unwirtschaftlichen Ausnutzung der Hilfsquelleaführt.
Schließlich ist der Test- und Diagnoseumfang, der ohne Störung der normalen Produktionspläne ausgeführt werden kann,
begrenzt, da die Diagnose-Software einen Zugriff zu sämtlichen Funktionseigenschaften der Hardware haben muß und
diese steuern muß und somit nicht gleichzeitig mit dem privilegierten SoftwareZentrum laufen kann.
Um diese Probleme zu vermeiden, ist es notwendig, ein privilegiertes SoftwareZentrum zu bilden, welches mehrere
Nachbildungen der Grund-Maschinenschnittstelle versorgen kann, und zwar anstelle der erweiterten Maschinenschnittstelle.
Sodann könnte ein unterschiedliches privilegiertes SoftwareZentrum an jeder der zusätzlichen Grund-Maschinenschnittstellen
laufen, und die zuvor erwähnten Prob lerne könnten vermieden werden.
Eine Grund-Maschinenschnittstelle, die nicht direkt von einer bloßen Maschine versorgt wird, sondern vielmehr in
ähnlicher Weise wie eine erweiterte Maschinenschnittstelle, ist als virtuelle Maschine bekannt und in Fig. 1b mit 110,
111 bezeichnet. In Fig. 1b ist dieselbe bloße Maschine 101 wie in Fig. 1a dargestellt; die nunmehr an der Grund-Maschinenschnittstelle
103 laufende privilegierte Software ist jedoch
40S8S1/0S63
■ - 5 -
ein virtueller Maschinenmonitor 122. Der virtuelle Maschinenmonitor
122 versorgt mehrere Nachbildungen der Grund-Maschinenschnittstelle 124. Demgemäß kann ein unterschiedlicher privilegierter
Softwarekern 112, 113 bei jeder Nachbildung der zusätzlichen Grund-Maschinenschnittstelle 124 laufen. Jeder
privilegierte Softwarekern bzw. jedes privilegierte Softwarezentrum 112, 113 kann seine eigene Reihe von erweiterten
Maschinenschnittstellen 125 und 126 versorgen bzw. unterstützen und demgemäß sein eigenes Anwenderprogramm der Anwenderprogramme
118, 119 bzw. 120, 121.
Da eine Grund-Maschinenschnittstelle, die von einer virtuellen Maschinenüberwachungseinrichtung bzw. einem virtuellen
Maschinenmonitor versorgt wird, funktionell mit der Grund-Maschinenschnittstelle
der entsprechenden Real-Maschine übereinstimmt, läuft jeder privilegierte Softwarekern, der
auf der bloßen Maschine läuft, ebenso gut auf der virtuellen Maschine. Darüber hinaus hat der privilegierte Softwarekern
bzw. das privilegierte Softwarezentrum keine Möglichkeit zu bestimmen, ob das betreffende Zentrum auf einer bloßen
Maschine oder einer virtuellen Maschine läuft. Demgemäß ist
eine virtuelle Maschine im wesentlichen seinem realen Gegenstück äquivalent und funktionsmäßig von diesem unterscheidbar.
Die virtuelle Maschinenüberwachungsanordnung führt keine Befehls-Befehls-Interpretation dieser Programme aus, sondern
ermöglicht viel_mehr diesen, direkt auf einer bloßen Maschine
für einen größeren Teil der Zeit zu laufen. Gelegentlich stellt die virtuelle Maschinenüberwachungsanordnung jedoch
gewisse Befehle fest und führt sie interpretierend aus, um die Integrität des Systems als Ganzes zu gewährleisten;
nachdem die Interpretierungsphase abgeschlossen ist, kehrt die Steuerung zum Ausführungsprogramm zurück. Somit ist
eine Programmausführung auf einer virtuellen Maschine
409861/0863
ziemlich ähnlich einer Programmausfuhrung auf einer erweiterten
Maschine, wobei der Hauptteil der Befehle direkt ausgeführt wird, ohne daß ein Software-Eingriff erfolgt; gelegentlich
erfolgt jedoch ein Eingriff durch die steuernde Software, um eine notwendige interpretierende Operation auszuführen.
Es sei bemerkt, daß die virtuelle Maschinenüberwachungsanordnung bzw. Maschinenüberwachung 122 gemäß Fig. 1b auf einer
bloßen Maschine läuft. Systeme dieses Typs sind als virtuelle Maschinendes Typs I bezeichnet worden. Dabei können jedoch
virtuelle Maschinenüberwachungen bzw. Überwachungsprogramme oder Monitor-Programme vorgesehen sein, die auf erweiterten
Maschinen laufen. Dieser Typ von virtueller Maschine ist schematisch in Fig. 1c dargestellt und als virtuelle Maschine
des Typs II bezeichnet. In Fig. 1c ist die bloße Maschine 101 gezeigt, die eine Grund-Maschinenschnittstelle 103 mit
dem privilegierten Softwarekern bzw. SoftwareZentrum 151
aufweist. Das privilegierte SoftwareZentrum 151 seinerseits
versorgt die erweiterten Maschinen 153, 154, die erweiterte Maschinenschnittstellen 157a bzw. 157b aufweisen. Die erweiterte
Maschine 153 ihrerseits versorgt das Anwenderprogramm 155, während die erweiterte Maschine 154 die virtuelle
Maschine 158 versorgt, die ihrerseits die erweiterte Maschine 161 versorgen kann, welche ihrerseits ein Anwenderprogramm
162 ablaufen läßt.
Im folgenden seien einige bekannte Maschinen näher betrachtet, Es gibt relativ wenige Beispiele für virtuelle Maschinen im
Stand der Technik. Einige typische Maschinen sind folgende: a) IBM M44 - Typ I FV (Familie-Virtualisierung).
Die Maschine IBM M44, eine stark modifizierte zweite Generation der IBM 7044, wurde erweitert, um eine Seitenbildung
4098S1/Q883
und eine Anzahl von Operationsbetriebsarten zu umfassen,
wie die Betriebsarten Problem/Überwachung, Lagetest/Nummer
Lagetest und Abbildung/keine Abbildung. Durch die Anwendung
eines als MOS-System (modulares Operationssystem) bezeichneten Operationssystems wird eine Reihe von virtuellen Maschinen
erzeugt, die mit 44X bezeichnet seien. (Diese Maschinen 44X sind keine virtuellen Maschinen im strengsten Sinne, da sie
geringfügig sich unterscheiden von der realen Maschine IBM 7044.) Ein 44X-0perationssystem läuft auf jeder 44X-Maschine
und liefert die in den meisten Operationssystemen zu findenden üblichen Dienste.
b) IBM-Cambridge - wissenschaftliches Zentrum CP-40 — Typ I FV#
Das Zentrum CP-40, Vorläufer für CP-67, wurde auf einer Maschine IBM 360/40 aufgebaut, die durch die Hinzufügung
eines Assoziativspeicher-Seitenbehälters speziell modifiziert worden ist. Dieses System war ein System auf Zeitteilbasis
und versorgte vierzehn virtuelle Maschinen IBM 360. Diese Maschinen 360 sind Standardmaschinen IBM 360 und enthalten
keine speziellen Modifikationen des Reihenmodels 40. Die virtuellen Maschinen IBM 360 sind imstande, zahlreiche
IBM-36o-Operationssysteme laufen zu lassen, einschließlich der normalen Systeme OS/360 und CMS (ein Umsetzsystem, das
im wissenschaftlichen Cambridge-Zentrum speziell für die Anwendung mit der Maschine CP-40 entwickelt worden ist). Das
System litt jedoch an den vielfältigen Beschränkungen der
Verarbeitungseinrichtungsgeschwindigkeit des Systems IBM 360/40, ferner an einem mäßigen Umfang eines realen
Kernspeichers und an einem langsamen Plattenspeicher für die sogenannte Durchblätterung oder das sogenannte Paging.
Die Maschine CP-40 diente jedoch dazu, gewissermaßen die Lebensfähigkeit der virtuellen Maschinenvorstellung zu
4098S1/08S3
demonstrieren. Darüber hinaus lieferte die Maschine ein VMTSS-System und mit dem CMS-System ein geeignetes Umsetzsystem
für das System 360 zu einem Zeitpunkt, zu dem kein
anderes Allzweck-System auf Zeitteilbasis für die Reihe von Maschinen arbeitete. Der Erfolg mit diesem Projekt führte
tatsächlich direkt zu dem größeren System CP-67. c) IBM Cambridge wissenschaftliches Zentrum CP-67 — Typ I FV.
Das Zentrum bzw. System CP-67 wurde als experimentielles System in Verbindung mit dem MIT-Lincoln-Laboratory im
Januar 1967 begonnen. Anfänglich wurde das System CP-^0
ein wenig modifiziert, um das im System IBM 360/67 zu findende unterschiedliche Speicher-Verschiebungssystem zu versorgen.
Danach wurde das gesamte System CP-67 neu geschrieben. Das System CP-67 ist ein VMTSS-System, welches auf der Maschine
IBM 360/67 läuft und zwischen 30 und 40 Anwender versorgt. Es ist soweit das am weitesten bekannte virtuelle Maschinensystem.
Die virtuellen Maschinen IBM 360, die unter der Bezeichnung CP-67 erzeugt worden sind, sind sehr erfolgreich
gewesen hinsichtlich des Laufenlassens einer Anzahl von unterschiedlichen IBM-360-Operationssystemen. Diese Operationssysteme
umfassen (worauf sie jedoch nicht beschränkt sind) die Systeme OS/360 (in vielen Versionen), DOS,
DOS-APL, CMS, LLMPS. Die virtuellen Maschinen sind jedoch nicht in die Fernmeldetechnik betreffenden Anwendungsfällen
benutzt worden. Die Universität von Grenoble hat sogar das System IBM OS/ASP (zugeordneter Versorgungsprozessor) laufen
lassen, welches eine reale Maschine IBM 360/40 mit einer virtuellen Maschine 360 verbindet. Die Hauptbeschränkungen
der durch das System CP-67 gebildeten virtuellen Maschinen liegen darin, daß ein kleiner Satz von Programmen nicht
richtig arbeiten kann. Die betreffenden Beschränkungen sind:
409851/0383
1) Programme, die von genauen Ausführungszeiten abhängen,
2) Programme, die von der Beziehung zwischen der 'Verarbeitungszeit
und der Eingabe/Ausgabe-Zeit abhängen,
3) Programme, die von der genauen Echtzeit abhängen, und
4) Programme, die Selbstmodifizierungs-Kanalprogramme enthalten.
Die ersten beiden Beschränkungen sind mit jenen Beschränkungen
gleich, durch die die Kompatibilität zwischen zwei verschie- ■ denen Prozessoren der IBM 360-Familie gewährleistet ist.
d) Erweiterung des Systems CP-67 zur Versorgung bzw. Unterstützung des virtuellen Systems 360/67 — Typ I SV.
Im Mai I969 entwickelte R. Goldberg eine leichte Erweiterung
zum System CP-67, um eine relativ wirksame Softwareausführung
eines virtuellen Systems 360/67 (mit virtueller Verschiebung) zu versorgen bzw. zu unterstützen. Mit geringfügigen Modifikationen
wurde dieser Entwurf eines virtuellen Systems 360/67 (d.h. IBM 360/67) im Herbst I969 von F. Furtek ausgeführt.
Unabhängig von dieser Arbeit entwickelte auch A. Auroux im IBM-Wissenschaftlichen Zentrum, Cambridge eine Erweiterung
eines virtuellen Systems IBM 360/67 zum System CP-67. Die beiden Entwicklungen sind sehr ähnlich, und die Auroux-Ausführung
ist Teil des IBM-Standardsystems CP-67 (von IBM verbreitet) geworden.
Das virtuelle System IBM 360/67 ist auf eine 24-Bit-Adressierungsbetrieb-Einzelprozessor-Maschine
beschränkt gewesen. Mit dieser Fähigkeit sind verschiedene IBM 360/67-Operationssysteme
gelaufen, einschließlich der Systeme CP-67 und TSS/36O. Dies bedeutet, daß das System CP-67 unter sich
selbst gelaufen ist. In der Tat ist diese Kette bis zu einer Tiefe von zumindest vier überprüft worden. Die
prinzipielle zusätzliche Beschränkung bezüglich der Operation des virtuellen Systems IBM 360/67 gegenüber einem
409851/0863
normalen virtuellen System IBM 360 (unter der Bezeichnung CP-67) liegt darin, daß Programme, die dynamisch den Inhalt
des Segments oder der Seitentabellen ändern, nicht wie beabsichtigt ausgeführt werden können. Die Ergebnisse können
gegebenenfalls gleich sein mit einem realen System IBM 360/67.
In einem realen System bzw. in einer realen Maschine kann der Inhalt der assoziativen Register das Ergebnis beeinflussen,
weshalb die Ergebnisse auch nicht voraussagbar sein können, e) Virtuelles System IBM 360, unter der Bezeichnung UMMPS —
Typ II FV. < -
Das virtuelle System IBM 360 unter der Bezeichnung UMMPS ist ein virtuelles Maschinensystem des Typs II. Das System UMMPS
ist ein herkömmliches Mehrprogrammierungssystem, welches in der Universität von Michigan geschrieben worden ist, um auf
einer Doppelprozessoranlage IBM 360/67 zu laufen. Die Universität
von British Columbia hat einige Modifikationen bezüglich des Systems UMMPS vorgenommen, um ein virtuelles
System IBM 360 zu versorgen bzw. zu unterstützen. Diese Modifikationen sind in Form von einigen zusätzlichen Überv/achungsanforderungseigenschaften
erfolgt, um gewisse entscheidende bzw. kritische Operationen in der Abfertigung der virtuellen Maschine auszuführen. Offensichtliche Ausnahmebedingungen,
die in der virtuellen Maschine auftreten, werden durch das UMMPS-Überwachungsprogramm auf ein Anwenderprogramm
reflektiert, welches z.B. diese Simulation von privilegierten Befehlen ausführt. Virtuelle (Standard-)
Systeme IBM 360 und nunmehr virtuelle Systeme 360/67 werden von diesem System versorgt bzw. unterstützt, obwohl andere
Anwenderschnittstellen neben den virtuellen Maschinenschnittstellen vorgesehen sind (wie ein System MTS oder
ein herkömmliches Stapelsystem).
409851/0863
f) Das System HITAC-8400 der japanischen elektrotechnischen
Laboratorien — TYP II FV.
Das System HITAC-8400 ist die japanische Ausführungsform des RCA-Systems Spectra 70/45. Es ist ein herkömmlicher
Rechner der dritten Generation ohne ein Speicher-Abbildungssystem, und zwar ähnlich dem IBM System/360. Als Hilfe für
die Fehlerbeseitigung bzw. Programmkorrektur im System ETSS wurde ein neues System auf Zeitteilbasis für das System
HITAC-8400, eine virtuelle Maschine des Typs II, auf dem vorhandenen, Verkäufer-Abgabeoperationssystem TOS/TDOS
aufgebaut. Das virtuelle Maschinensystem ist sehr ähnlich dem virtuellen System IBM 360, das auf dem System UMMPS
aufgebaut wurde. Ein interessierender Aspekt dieser Leistung war der Versuch, verschiedene virtuelle Eingabe/Ausgabe-Einrichtungen
zu simulieren, die keine exakten physikalischen Gegenstücke haben (wie eine Sichtanzeige). Dies wurde
selbstverständlich vorgenommen, da die virtuelle Maschine vollständig dazu herangezogen wurde, den Überwachungsprogrammcode
für das System ETSS zu korrigierenjund nicht dazu,
unter der Steuerung durch die betreffende Maschinelaufende
Produktionsvorgänge zu korrigieren.
g) Hardware-Modifiziertes System IBM 360/30 — Typ I FV.
Es ist ein virtuelles Maschinensystem auf einem experimentiellen
System 360/30 aufgebaut worden, und zwar durch Kombination von Software und von sogenannter ad hoc-Hardware, d.h. durch
Mikroprogrammierungs-Modifikationen. Diese Modifikationen, die eingeführt worden sind, um den Aufbau einer virtuellen
Maschine zu vereinfachen, werden dazu herangezogen, einen speziellen "Monitor"-Betrieb auszuführen und den Unterbrechungssteuerbereich
von einem regulären Steuerprogrammbereich auf der physikalischen Seite 0 neu zu adressieren
bzw. bereitzustellen. Das System ist nicht ein System VMTSS;
409851/0863
es unterstützt lediglich eine virtuelle Maschine. Überdies
ist das System nicht ein selbst-virtualisierendes System, und ferner unterstützt es nicht virtuelle Maschinen, die
dieser modifizierten Maschine IBM 360/30 äquivalent sind. Ihre Hauptanwendung liegt bei der betreffenden Maschine in
der Überwachung und Bestimmung bzw. Abschätzung des Leistungsvermögens der existierenden Operationssysteme, wie des Operationssystems
IBM/360/(OS/360), und der Grund-, Plattenspeicher- und Band-Operationssysteme (BOS, 3X)S, TOS/360),
h) MIT-Projekt MC PDP-10 ITS — Typ II SV HVM.
Ss ist nicht möglich, virtuelle Maschinen auf dem System
DEC PDP-10 aufzubauen bzw. auszuführen, und zwar unter Verwendung herkömmlicher Softwaretechniken der dritten Generation.
Kürzlich haben R.P. Goldberg und S.W. Galley die Vorstellung einer hybriden virtuellen Maschine für das System
PDP-10 eingeführt. Mit dieser Technik werden sämtliche Ausführungsbetriebs-Befehle
interpretiert, während sämtliche Anwenderbetriebs-Befehle direkt ausgeführt werden. Das
MIT-Projekt MAC - dynamischesModelierungs-Rechnergraphiksysten»
PDP-10 - hat für diese Ausführung eine ideale Umgebung geschaffen. Das System ITS (inkompatibles System auf
Zeitteilbasis) liefert die benötigten Eigenschaften zur
Stützung bzw. Versorgung eines VCS-Systems des Typs II (erweiterter Maschinenumfang). Darüber hinaus ist die
Hardware-Konfiguration mit genügend Kernspeicherplätzen ausgestattet und zuweilen mit genügend Zentraleinheits-Zyklen,
um das Laufen des HVM-Systems zu ermöglichen, i) IBM VM/370
Im Juli 1972 hat die Firma IBM eine virtuelle Maschineneigenschaft
für verschiedene Modelle des Systems /370 angekündigt. Dieses System ist ein direkter Nachkomme des
Systems CP-67; es unterstützt virtuelle Maschinen unter
409 8 5 1/0863
Verwendung konventioneller Softwaretechniken. Das System VM/370 ist das erste formal unterstützte, kommerziell angebotene
virtuelle Maschinensystem, das von irgendeinem .Hersteller verfügbar ist.
Ältere bekannte virtuelle Maschinen waren in der Weise charakterisiert, daß die virtuellen Maschinenmonitore bzw.
-Überwachungsprogramme (VMM) den Zustand des Prozessors und Hauptspeicher- und Eingabe/Ausgabe-Operationen der virtuellen
Maschine steuerten. Die frühen virtuellen Maschinenüberwachungsprogramme bzw. -monitore ließen, kurz gesagt,
sämtliche Programme in der nicht privilegierten Betriebsart laufen, so daß kein privilegiertes Softwarezentrum, das auf
einer virtuellen Maschine ausgeführt wurde, in die privilegierte Betriebsart gelangen und einen unbeschränkten Zugriff
zu dem gesamten System erhalten konnte. Daher ist die Möglichkeit gegeben, daß sich das virtuelle Maschinenüberwachungsprogramm
selbst stört oder irgendeine andere, in dem System vorhandene virtuelle Maschine. Darüber hinaus
bildeten diese frühen virtuellen Maschinen-Monitorprogramme bzw. -Überwachungsprogramme gewöhnlich den Hauptspeicher
üurch Seitenbildungsverfahren bzw. sogenannte Paging-Verfahren ab, und stets wurden sämtliche Eingabe/Ausgabe-Operationen
interpretierend ausgeführt. Deshalb konnten diese frühen virtuellen Maschinen lediglich auf Rechnersystemen
ausgeführt werden, die eine gewisse Form eines Verschiebungssystems aufwiesen, welches die Fähigkeit besitzt,
sämtliche Befehle festzuhalten, die den Prozessorzustand . ändern oder abfragen oder Eingabe/Ausgabe-Operationen
einleiten konnten. Obwohl einige dieser frühen virtuellen Maschineiüberwachungsprogramme VMM, z.B. CP-67,
auf itechnersystemen mit einer Zeitbildung ausgeführt worden
409851/0863
sind, konnten diese Überwachungsprogramme jedoch nicht
selbst die virtuellen Haschinen mit Seitenbildung unterstützen; deshalb konnten die betreffenden Programme nicht
auf den virtuellen Maschinen laufen, die sie hervorriefen. Auf Grund dieses Mangels an rekursiver Fähigkeit mußte die
Überprüfung und Entwicklung des virtuellen Maschirfenüberwachungsprogramms
VMM auf einem zur Verfügung gestellten Prozessor ausgeführt werden. Um diese Schwierigkeit zu überwinden
und einen zufriedenstellenderen Grad an Verknüpfungs-Vollständigkeit zu erzielen, wurde das System CP-67 derart
modifiziert, daß es rekursiv laufen konnte. Dies erforderte die wirksame Ausführung einer Doppel-Abbildungsoperation,
um die zusätzliche Seitenbildungsoperation vorzunehmen, die in dent virtuellen Maschinenüberwachungsprogramm VMM selbst
stattfindet. Um einen Prozess auf einer virtuellen Maschine mit Seitenbildung ablaufen zu lassen, muß zunächst eine durch
den Prozeß erzeugte Adresse A in eine virtuelle Speicheradresse A1 gebildet werden, und zwar mittels der Bildungstabelle der virtuellen Maschine, und sodann muß die virtuelle
Speicheradresse A1 in eine reale Adresse A" abgebildet bzw. überführt werden, und zwar durch die Seitenbildungstabelle
des virtuellen Maschinenüberwachungsprogramms VMM. Um diese Doppelabbildung wirksam auszuführen, bildet die
Software des virtuellen Maschinenüberwachungsprogramms eine zusammengesetzte Seitentabelle (in der die virtuelle Prozeßadresse
A in die reale Adresse A" abgebildet bzw. überführt ist). Außerdem wird durch die betreffende Software mit dieser
Abbildung die Steuerung der Adressen-Umrechnungshardware ausgeführt. Wenn das virtuelle Maschinenüberwachungsprogramm
VMM eine Transferierung einer Seite aus dem Speicher vornimmt, muß es zunächst dessen eigene Seitentabelle ändern
und dann die gebildete Karte bzw. Abbildung neu berechnen.
409851/0863
Wenn das privilegierte SoftwareZentrum die Seitentabelle
der virtuellen Maschine ändert, muß das virtuelle Maschinenüberwachungsprogramm VMM in entsprechender Weise darüber informiert
werden, so daß das zusammengesetzte Bild bzw. Abbild neu berechnet werden kann. Da die Seitentabelle der
virtuellen Maschine in gewöhnlichen Speicherplätzen gespeichert ist, werden Befehle, die auf die Tabellen Bezug
nehmen, nicht notwendigerweise durch das virtuelle Maschinenüberwachungsprogramm
VMM festgehalten. Daher könnten Änderungen von dem virtuellen Maschinenüberwachungsprogramm VMM nicht
ermittelt werden, und eine richtige Operation könnte nicht garantiert werden.
Die virtuellen Maschinen des Typs II, die mit erweiterten Schnittstellen laufen, sind im allgemeinen leichter aufzubauen
als virtuelle Maschinenmonitore VMM, die auf einer bloßen Maschine direkt laufen, da nämlich der virtuelle
Maschinenmonitor das Befehlsrepertoir der erweiterten Maschine benutzen kann, wenn komplexe Operationen, wie Eingabe/Ausgabe-Operationen,
ausgeführt werden. Darüber hinaus kann das virtuelle Maschinenüberwachungsprogramm bzw. der
virtuelle Maschinenmonitor VMM die Speicher-Managementeigenschaften
(die die Seitenbildung umfassen können) der erweiterten Maschine und deren Dateisystem ausnutzen.
Die virtuellen Maschinen des Typs II sind für die erweiterte
Maschinenschnittstelle ausgelegt, die durch das UMMPS-Operatiönssystem
bzw. -Betriebssystem geplant ist. Wie oben ausgeführt, läuft das System Uh1MPS auf einer IBM Maschine des
Modells 67. Somit ist der virtuelle Maschinenmonitor, der unter dem System UMMPS läuft, imstande, dieselbe Prozessor-Zustandsabbildung
zu benutzen, die das System CP-6? benutzt.
409 8-5 1 /086 3
Der Befehl in dem virtuellen Maschinenmonitor VMM, der die Operation einer virtuellen Maschine auslöst, muß jedoch das
System UMMPS darüber informieren, daß nachfolgend privilegierte Befehlssprünge, die von der virtuellen Maschine erzeugt
werden, nicht direkt behandelt werden sollten, sondern vielmehr dem virtuellen Maschinenmonitor VMM für eine geeignete
Interpretation zugeführt werden sollten. Darüber hinaus wird durch den Befehl, der die Operation einer
virtuellen Maschine einleitet, außerdem das System UMMPS
veranlaßt, seine Seitentabellen zu ändern, um der Tatsache Ausdruck zu geben, daß ein neuer Adressenraum bzw. Adressenplatz
aktiviert worden ist. Wird bei der gebildeten virtuellen Maschine eine Seitenbildung vorgenommen, so ist es notwendig,
die resultierende Tabelle mit der Seitentabelle zusammenzustellen, die in dem Speicher der virtuellen Maschine erscheint.
Diese zuletzt genannte Operation ist vollständig analog der Bildung von virtuellen Maschinen mit Seitenbildung
unter dem System CP-67.
Eingabe/Ausgabe-Operationen wurden in der virtuellen Maschine des ursprünglichen UMMPS-Systems des Typs II
dadurch verarbeitet, daß eine UMMPS-System-Transfersteuerung
auf den virtuellen Maschinenmonitor VMM erfolgte, und zwar nach Erfassen des Befehls, der die Kanalprogrammausführung
einleitete. Der virtuelle Maschinenmonitor VMM setzte das Kanalprogramm um in dessen Adressenplatz, und zwar durch
gegebenenfalls erfolgendes Abgeben des Seitenplanes der virtuellen Maschine und durch sodann erfolgendes Addieren
eines konstanten Verschiebungsfaktors zu jeder Adresse. Nach Ausführung dieser Umsetzung forderte der virtuelle Maschinenmonitor
VMM das System UMMPS an, um das Kanalprogramm auszuführen.
Das UMMPS-System absolutierte sodann das Kanalprogramm und leitete dessen Ausführung ein.
409851/0863
Zusätzlich zu den obigen Vorgängen, die dieser Abbildungsvorgang nach sich zog, hat es dieser Abbildungsvorgang für
die virtuelle Maschine unmöglich gemacht, ein selbst-modifizierendes Kanalprogramm auszuführen. Eine kürzlich erfolgte
Modifizierung der Monitor-Software der virtuellen Maschine des UMMPS-Systems hat es ermöglicht, diese Situation zu
mildern. Diese Modifikation umfaßt die Überführung des Speichers der virtuellen Maschine in den realen Speicher,
so daß die virtuelle und die reale Adresse des jeweiligen Speicherplatzes identisch sind. Dies vermeidet die Notwendigkeit
nach Absolutisierung des Kanalprogramms und steigert somit die Wirksamkeit, während gleichzeitig eine Selbstmodifizierung
der Kanalprogramme möglich gemacht ist.
Eine der Schwierigkeiten, die zu überwinden waren, als diese Änderung bezüglich des virtuellen Maschinenmonitors
vorgenommen wurde, lag darin, daß die realen Gegenstücke zu bestimmten virtuellen Maschinenspeicherplätzen bereits
von dem System UMMPS benutzt waren. Die Lösung, die übernommen wurde, bestand darin, einfach das privilegierte
SoftwareZentrum der virtuellen Maschine zurück- bzw. neu
zu schreiben, so daß die meisten dieser Speicherplätze niemals benutzt wurden.
Eine der gebräuchlicheren vorgeschlagenen Lösungen des Problems der Erstellung von virtuellen Maschinenaufbauten
basiert auf der Idee, den privilegierten Zustand vollständig zu vermeiden. Die Anhänger dieser Lösung argumentieren, daß
die hauptsächliche - und tatsächlich einzig notwendige Funktion des privilegierten Zustande darin besteht, den
Adressenabbildungsmechanismus des Prozessors zu schützen.
409851/0863
Wenn der Adressenabbildungsmechanismus aus der Grundmaschinenschnittstelle
entfernt und dadurch vollständig unsichtbar für die Software würde, bestünde keine Notwendigkeit danach, den
Mechanismus zu schützen und damit keine Notwendigkeit für einen privilegierten Zustand.
Der zuvor erläuterte Einzelzustands-Aufbau bringt eine wirksame
Umgebung für die Erstellung von rekursiven virtuellen Maschinensystemen mit sich. Die diesem Aufbau zugehörige
Grundmaschinenstelle leidet jedoch an einer Anzahl von Merkmalen, die von Nutzen sind, wenn ein privilegiertes Softwarezentrum
geschrieben wird. Diese Merkmale, die in veränderlichem Umfang in einigen spaten Rechnersystemen der
dritten Generation vorhanden sind, und die sicher in Systemen der vierten Generation vorhanden sein werden, umfassen die
Speicheradressierung auf der Deskriptorbasis, mehrschichtige Schutzringe und Prozeßsynchronisations-Stammwörter.
Eine kürzlich durchgeführte Untersuchung der virtuellen Maschinenaufbauten für diese komplizierteren Systeme basierte
auf einer wichtigen Unterscheidung zwischen zwei verschiedenen Fehlertypen. (Siehe U.O.Gagliardi und R.P. Goldberg Virtualizable
Architectures - in "Proceedings ACM AICA International Computing Symposium", Venedig, Italien).
Der erste Fehlertyp ist mit den sichtbaren Merkmalen der Software einer Grundmaschinenschnittstelle, wie einem
privilegierten/nicht privilegierten Zustand, mit den Adressenabbildungstabellen,
etc., verknüpft. Diese Fehler werden von dem privilegierten Softwarekern bzw. -Zentrum verarbeitet,
der die betreffende Schnittstelle laufen läßt. Der zweite Fehlertyp tritt lediglich in virtuellen Maschinensystemen
auf und wird dann erzeugt, wenn bei einem Prozeß versucht
09851/0883
wird, einen Hilfquellenplan zu ändern, den der virtuelle Maschinenmonitor festhält, oder wenn versucht wird, auf
eine Hilfsquelle Bezug zu nehmen, die in einer virtuellen Maschine verfügbar ist, nicht jedoch in dem realen System
(z.B. ein virtueller Maschinenspeicherplatz, der im realen Speicher nicht vorhanden ist). Diese Fehler werden lediglich
durch den virtuellen Maschinenmonitor bzw. das virtuelle Maschinenüberwachungsprogramm VMM verarbeitet; sie sind
vollständig unsichtbar für die virtuelle Maschine. Durch Bezugnahme auf nicht verfügbare reale Hilfsquellen hervorgerufene
Fehler wurden dabei jedoch nicht klar identifiziert. Die hier gezogene Unterscheidung basiert auf einer späteren
Untersuchung von Goldberg. (Siehe "Architectural Principles for Virtual Computer Systems" - Phd. Thesis Division of
Engineering and applied Physics - der Harvard Universität, Cambridge, Massachusetts, USA.)
Da herkömmliche Aufbauten lediglich den früheren Fehlertyp unterstützen, werden herkömmliche virtuelle Maschinenmonitore
dazu gebracht, beide Fehlertypen auf einem einzigen Mechanismus darzustellen. YJie bereits erwähnt, geschieht
dies dadurch, daß man sämtliche Prozesse der virtuellen Maschine in der nicht privilegierten Betriebsart laufen
läßt, daß unmittelbar sämtliche Fehler zu dem virtuellen Maschinenmonitor VMM hingelangen und daß der virtuellen
Maschinenmonitor VMM sämtliche Fehler des ersten Typs zu dem privilegierten Softwarekern der virtuellen Maschine
"zurückreflektiert". Eine offensichtliche Verbesserung dieser Situation kann festgestellt werden durch Schaffung
eines Aufbaus, der beide Fehlertypen erkennt und aushält.
409851/0863
Obwohl relativ wenige Maschinensysteme auf zeitgenössischen Rechnersystemei') auf gebaut worden sind, stützt sich die Mehrzahl
der heutigen Rechnersysteme nicht auf virtuelle Maschinen und kann sich auf derartige Maschinen auch nicht stützen.
Die wenigen, gegenwärtig laufenden virtuellen Maschinen, z.B. das System CP-67, benutzen unpraktische und unangemessene
Verfahren mit Rücksicht auf einen ungeeigneten Aufbau. In den Fällen, in denen Rechneraufbauten bzw. -architekturen
speziell für virtuelle Maschinen ausgelegt vorgeschlagen worden sind, haben diese Aufbauten an zwei Schwächen gelitten.
Entweder sind die betreffenden Aufbauten nicht imstande gewesen, moderne komplexe Operations- bzw. Betriebssysteme
direkt auf den virtuellen Maschinen zu unterstützen, oder sie sind nicht imstande gewesen, die gesamte herkömm-
die
liehe Unannehmlichkeit und/Betriebskosten eines bedeutsamen Software-Eingreifens zu vermeiden, das mit der Unterstützung einer virtuellen Maschine verknüpft ist.
liehe Unannehmlichkeit und/Betriebskosten eines bedeutsamen Software-Eingreifens zu vermeiden, das mit der Unterstützung einer virtuellen Maschine verknüpft ist.
Es besteht somit Bedarf an einem virtuellen Maschinenaufbau, der in einem existierenden herkömmlichen Rechnersystem oder
in Rechnersystemen der vierten Generation ausgeführt werden
kann, die eine Speicheradressierung auf Deskriptorbasis, mehrschichtige Schutzringe und Prozeßsynchronisations-Stammwörter,
wie Semaphoren, etc., umfassen. Darüber hinaus sollte ein derartiger virtueller Maschinenaufbau dadurch
ausgeführt werden können, daß lediglich eine relativ kleine Anzahl von Hardware/Firmenware-Modifikationen vorgenommen
wird.
(Die obige Darstellung ist eine zugelassene Überarbeitung und/oder ein Teilauszug aus einer vorveröffentlichten
Schrift von J.P. Buzen und U.O. Gagliardi unter dem Titel
409851/0863
"The Evolution of Virtual Machine Architecture" und aus einer Dissertation von Robert P. Goldberg unter dem Titel
"Architecture Principles for Virtual Computer Systems", Division of Engineering and Applied Physics der Harvard
Universität, Cambridge, Massachusetts, USA.)
Der Erfindung liegt die Hauptaufgabe zu Grunde, eine verbesserte virtuelle Maschine zu schaffen. Die neu zu schaffende
virtuelle Maschine soll dabei imstande sein, direkt moderne komplexe Bedienungssysteme, wie z.B. Multics, direkt
zu unterstützen, und zwar auf der virtuellen Maschine. Die neu zu schaffende virtuelle Maschine soll darüber hinaus
die Unannehmlichkeit und Organisation eines erheblichen Softwareeingreifens des virtuellen Maschinenmonitors
elimenieren. Darüber hinaus soll die neu zu schaffende verbesserte virtuelle Maschine imstande sein, zu vorhandenen
Rechnersystemeη hinzugefügt zu werden. Ferner
soll die neu zu schaffende virtuelle Maschine in existierenden
Rechnersystemen ausgeführt werden 'können, indem lediglich eine relativ geringe Anzahl von Hardware/Firmenware-Modifikationen
vorgenommen wird. Ferner soll eine Hardware-Virtualisierungsanordnung bereitgestellt werden,
die durch Hardware und Firmenware dynamisch die verschiedenen Hilfsquellen-Pläne darstellt bzw. aufnimmt, die anzurufen
sind, um einen Prozeß auf der virtuellen Maschine laufen zu lassen. Ferner soll die neu zu schaffende Hardware-Virtualisierungsanordnung
sich für den Aufbau einer verbesserten virtuellen Maschine eignen. Darüber hinaus
soll die neu zu schaffende Hardware-Virtualisierungsanordnung Prozesse auf einer virtuellen Rechenmaschine unter
einem zusammengesetzten f-und ^-Plan laufen lassen, wobei
der f-Plan die virtuellen Hilfsquellennamen in reale Hilfsquellennamen
darstellt und wobei der ^-Plan die Pr_jDzeßnamen
40086t/0863
in Hilfsquellennamen darstellt. Ferner soll die neu zu schaffende Plardware-Virtualisierungsanordnung auf unterschiedliche
^-Pläne angewandt werden können und unabhängig
von dem ji-Plan auf Rechnersysteme. Ferner soll die neu zu
schaffende Hardware-Virtualisierungsanordnung Prozesse in einem virtuellen Rechnersystem ablaufen lassen können,
welches auf eine große Vielzahl von f-Plänen angewendet werden kann. Darüber hinaus soll für die Fähigkeit gesorgt
werden, eine verbesserte virtuelle Maschine mit Rekursion laufen zu lassen. Ferner soll die neu zu schaffende Hardware-Virtualisierungsanordnung
eine virtuelle Maschine mit Rekursion laufen lassen, bei der die gerade aktive virtuelle
Maschine durch ein Identifizierungsregister identifiziert ist. Ferner soll die neu zu schaffende Hardware-Virtualisierungsanordnung
rekursive virtuelle Maschinen laufen lassen, wobei ein Fehler in einer virtuellen Maschine direkt
dem in Frage kommenden Monitor der virtuellen Maschine signalisiert werden soll, und zwar zur Fehlerverarbeitung
ohne eine Kenntnis von irgendwelchen anderen virtuellen Maschinen oder der Software, die in den virtuellen Maschinen
läuft. Ferner soll die neu zu schaffende Hardware-Virtualisierungsanordnung rekursive virtuelle Maschinen laufen lassen,
wobei eine virtuelle Maschine durch einen bestimmten Hardwarebefehl aktiviert werden können soll. Ferner soll
die neu zu schaffende Hardware-Virtualisierungsanordnung rekursive virtuelle Maschinenstrukturen laufen lassen, bei
denen eine virtuelle Maschine mittels eines Hardware-Befehls aktiviert werden können soll, wobei die in Frage kommende
virtuelle Maschine reaktiviert wird, und zwar ohne die Kenntnis von irgendwelchen mittleren virtuellen Maschinen längs
eines Zweiges in dem Fall, daß ein Unterbaum der virtuellen Maschinen fehlerhaft geworden ist. Darüber hinaus soll die
409851/0863
neu zu schaffende Hardware-Virtualisierungsanordnung
Prozesse in einem virtuellen Rechnersystem unter einem
zusammengesetzten rekursiven f-Plan und $-Plan ablaufen
lassen, wobei der rekursive f-Plan Ebenen von virtuellen Hilfsquellennamen in reelle Hilfsquellennamen darstellt
und wobei der ji-Plan Prozeßnamen in Hilfsquellennamen darstellt.
Ferner soll die neu zu schaffende Hardware-Virtualisierungsanordnung die Fähigkeit besitzen, Mehrfach-^-Pläne
in den virtuellen Maschinen laufen zu lassen, überdies soll
die neu zu schaffende Hardware-Virtualisierungsanordnung virtuelle Maschinen mit unterschiedlichen inneren Ausgestaltungen
laufen lassen. Schließlich soll die neu zu schaffende Hardware-Virtualisierungsanordnung sämtliche
Prozeßausnahmen innerhalb der wirkenden virtuellen Maschine verarbeiten können, ohne daß ein Softwareeingreifen des
virtuellen Maschinenmonitors erfolgt.
Gelöst wird die vorstehend aufgezeigte Aufgabe durch die
im Patentanspruch 1 angegebene Erfindung.
Eine virtuelle Maschine, die in einem existierenden Rechnersystem,
wie dem Rechnersystem Honeywell der Serie 6000, ausführbar ist, weist eine Hardware-Virtualisierungsanordnung
für den Ablauf von Prozessen in der virtuellen Rechnermaschine unter einem zusammengesetzten f- und $-Plan auf. Der
^-Plan, der den sichtbaren Plan für die Bedienungssystemsoftware
darstellt, die in der virtuellen Maschine läuft, stellt die Prozeßnamen in Hilfsquellennamen dar. Der f-Plan,
der den für die gesamte Software, die in der virtuellen Maschine läuft, unsichtbaren Plan darstellt, stellt die
virtuellen Hilfsquellennamen in reale Hilfsquellennamen oder in andere virtuelle Hilfsquellennamen dar; der be-
A098B1/0863
treffende Plan kann mehrere Rekursionsebenen aufweisen. Der ^-Plan ist ein sogenannter Intra-Ebenenplan, der eine
Beziehung innerhalb einer einzigen Ebene ausdrückt, während der f-Plan ein Inter-Ebenen-Plan ist und eine Beziehung
zwischen den Hilfsquellen zweier benachbarter Ebenen von virtuellen Maschinen bestimmt.
Der $S-Plan wird mit dem rekursiven f-Plan kombiniert, um
einen generellen zusammengesetzten Plan zu erhalten. Die Hardware-Virtualisierungsanordnung benutzt eine Datenbasis,
um den f-Plan darzustellen; sie stellt einen Befehl bereit, um auf den f-Plan zurückzukommen,/stellt ferner eine Einrichtung
zur Identifizierung der gerade laufenden virtuellen Maschine bereit und liefert ferner einen Mechanismus zur
Verarbeitung bzw. Behandlung von Fehlern innerhalb der virtuellen Maschinen.
Die Hardware-Virtualisierungsanordnung ermöglicht die direkte Verarbeitung bzw. Behandlung sämtlicher Prozeßausnahmen
innerhalb der ausführenden virtuellen Maschine ohne einen Softwareeingriff des virtuellen Maschinenmonitors.
Sämtliche Hilfsquellenfehler (virtuelle Maschinen-Fehler bzw. VM-Fehler), die durch eine virtuelle Maschine erzeugt worden
sind, werden dem in Frage kommenden virtuellen Maschinenmonitor (VtM) zugeführt, ohne daß eine Kenntnis von den
Prozessen in der virtuellen Maschine existiert (unabhängig von der Rekursionsebene).
An Hand von Zeichnungen wird die Erfindung nachstehend beispielsweise näher erläutert.
Fig. 1a bis 1c zeigen zum Stand der Technik gehörende Anordnungen in Blockdiagrammen, die zur Erläuterung der
409851/0863
Erfindung von Nutzen sind und die den zum besseren Verständnis der Erfindung dienenden Stand der Technik darstellen.
Fig. 1d, 2a bis 2d zeigen schematisch in Blockdiagrammen einen rekursiven f-Plan-Prozeß gemäß der Erfindung.
Fig. 3a, 3b zeigen schematisch in Blöcken und Kreisen eine
Prozeßausnahme und eine Fehlererzeugung bei einer virtuellen Maschine gemäß der Erfindung*
Fig. 4 zeigt schematisch in einem Blockdiagramm einen f-Plan, unter Veranschaulichung einer virtuellen Maschinentabelle
(VM^AB), eines virtuellen Maschinensteuerblocks (VtICB) und
von virtuellen Maschinenseitenteilen.
Fig. 5 zeigt in einem generellen Flußdiagramm einer oberen
Ebene einen Befehl, der in Firmenware ausführbar ist, um ein virtuelles Maschinenidentifizierungsregister zu ändern.
Fig. 6a zeigt in einem generellen Flußdiagramm einer oberen Ebene einen in Firmenware und Hardware ausführbaren f-Plan-
und ^-Plan-T-Zusanmiensetzungsmechanismus.
Fig. 6b zeigt in einem Blockdiagramm Hardware-Virtualisierungsregister.
Fig. 7 zeigt in einem Diagramm eine Ausführungsform einer
Hardware-Virtualisierungsanordnung mit bestimmten f- und ^-Plänen.
Fig. 8a und 8b zeigen in Blockdiagrammen eine weitere Ausführungsform
einer Hardware-Virtualisierungsanordnung mit
unterschiedlichen f- und $z$-Plänen.
Da die Konzepte von virtuellen Rechenmaschinen gerade erst am Beginn des Auftretens über dem sogenannten"elektronischen
Rechensystemhorizont" stehen^wird es auch zum besseren Verständnis
der vorliegenden Erfindung zum Zwecke einer leichteren Ausführung als ratsam angesehen, die bekannten Konzepte
in einigen Einzelheiten nochmals zu betrachten. Zur Erzielung
409851/0863
eines vollständigen Verständnisses der Lehren der vorliegenden Erfindung wird es jedoch als helfend erachtet, eine
bevorzugte Ausführungsform zu beschreiben, und zwar durch Entwicklung eines Modells der Erfindung, welches die Abbildung
bzw. Darstellung und Adressierung von Hilfsquellen durch einen in einer virtuellen Maschine ablaufenden bzw.
ausgeführten Prozeß darstellt. Um die zu Grunde liegenden Aufbauprinzipien von virtuellen Maschinen abzuleiten, ist
darüber hinaus ein Modell erwünscht, welches die Darstellung der Ausführung eines Prozesses in bzw. auf einer virtuellen
Maschine darstellt. Da es erwünscht ist, daß diese Prinzipien auf den gesamten Bereich herkömmlicher Rechensysteme anwendbar
sind - von Minirechnern über die gegenwärtigen Allzwecksysteme der dritten Generation, einschließlich gewisser
zukünftiger Maschinen (möglicherweise der vierten Generation) ist es erforderlich, ein Modell zu entwickeln, welches die gemeinsamen
Punkte aller dieser Systeme wiedergibt. Das Modell sollte dabei nicht von den besonderen Planstrukturen abhängen,
die für die Software der erläuterten Maschine sichtbar sind. Eigenschaften, wie eine Speicherverschiebung oder
ein Überwachungszustand, sind Charakteristiken des existierenden Systems und treten auf, ob die erläuterten Maschinen
nun virtuelle Maschinen sind oder nicht.
Um virtuelle Maschinen einzuführen, wird eine unterschiedliche, unabhängige Abbildungs- bzw. Planstruktur festgelegt,
die die Begriffe festhält, die für sämtliche virtuellen Rechnersysteme gemeinsam sind. Das Vereinheitlichungsthema
ist dabei das Konzept einer virtuellen Maschinenkonfiguration und einer Reihe von virtuellen Hilfsquellen. Diese
Hilfsquellen bzw. Mittel, wie z.B. der Umfang des Hauptspeichers in der virtuellen Maschine, sind ein Merkmal
sämtlicher virtuellen Maschinen, und zwar unabhängig von
4098S1/08S3
der besonderen Form der Speicher-Verschiebung, etc. des
virtuellen Prozessors. Somit ist die Schlüsselstellung die Beziehung zwischen den Hilfsquellen bzw. Mitteln in der
Konfiguration der virtuellen Maschine und jenen Hilfsquellen bzw. Mitteln in der Konfiguration der realen (Ausgangs)-Maschine.
Lediglich nach vollständigem Verständnis dieser Beziehung brauchen durch das Vorhandensein irgendeiner zusätzlichen
Abbildungs- bzw. Planstruktur eingeführte Kompliziertheiten behandelt zu werden.
Im folgenden wird ein Hilfsquellenplan erläutert. Ein Modell für eine Hilfsquellenabbildung einer virtuellen
Maschine wird entwickelt, und zwar durch Pestlegen des Satzes von Hilfsquellen V = (ν , v,. .... ν ), die bei
der virtuellen Maschinenkonfiguration vorhanden sind, und des Satzes von Hilfsquellen R = (rQ, r^ .... ^n), die bei
der realen (Ausgangs)-Konfiguration vorhanden sind. (Hilfsquelle^Plätze,
und zwar sowohl'reale als auch virtuelle, sind stets als Rechtecke in den Figuren dargestellt.) Die
Sätze V und R enthalten sämtliche Hauptspeichernamen, adressierbare Prozessorregister, Eingabe/Ausgabe-Einrichtungen,
etc.. Im Zuge der folgenden Erläuterung werden jedoch der Einfachheit halber sämtliche Hilfsquellennamen so
behandelt, als seien sie Speichernamen, d.h. Adressen. Da Speicherplätze dazu herangezogen werden können, auf andere
Hilfsquellennamen Bezug zu nehmen, wie auf Prozessorregister, z.B. DEC PDP-10,oder auf Eingabe/Ausgabe-Einrichtungen, z.B.
DEC PDP-11, geht keine Allgemeingültigkeit dadurch verloren, daß sämtliche Hilfsquellennamen als Speichernamen behandelt
werden.
409851/0863
Da von vornherein keine entsprechende Beziehung zwischen virtuellen und realen Namen angenommen ist, muß eine Möglichkeit
einbezogen werden, virtuelle Namen den realen Namen während des Auslaufs der virtuellen Maschine zuzuordnen.
Zu diesem Zweck wird für den jeweiligen Augenblick eine Funktion definiert:
f: V~£ R U \ t }
f: V~£ R U \ t }
Hierin bedeutet f die Hilfsquellendarstellung des Satzes V von virtuellen Hilfsquellen in den Satz R, in Vereinigung
mit t, wobei R der Satz von realen Hilfsquellen des Systems und t das Ereignis bedeuten, welches das Auftreten eines
nicht programmierten Sprungs oder Fehlers anzeigt. Dies gilt dann, wenn
y £ V und ζ £ R sind.
y £V zeigt an, daß y ein Element des Satzes V" ist, und z£R
zeigt an, daß ζ ein Element des Satzes R ist (dies bedeutet, daß y eine virtuelle Hilfsquelle ist, und daß ζ eine reale
Hilfsquelle ist). Um die Elemente des einen Satzes den Elementen des anderen Satzes zuzuordnen gilt dann:
f (y) = [z, wenn ζ der reale Name für den virtuellen Namen y ist
t , wenn y nicht einen entsprechenden realen
Namen besitzt.
Dies bedeutet, daß f (y) gleich ζ ist, wenn ζ die reale Hilfsquelle ist, die der virtuellen Hilfsquelle y entspricht.
Im übrigen ist f (y) gleich t, wenn y nicht eine entsprechende reale Hilfsquelle zu dem betreffenden Zeitpunkt
zugeteilt ist.
Der Wert f(y) = t ruft einen nicht programmierten Sprung
oder Fehler zur Ausführung einer gewissen Fehlerbehandlungsprozedur in der Maschine hervor, deren Hilfsquellensatz R
ist, was bedeutet, daß es sich um die Maschine R handelt. Der Klarheit wegen wird dieser Vorgang hier als VM-Fehler
bezeichnet, was keine Ausnahme bedeuten soll.
409851/0863
• - 29 -
Die Funktion f wird als Hilfsquellenplan bzw. -darstellung,
als virtueller Maschinenplan oder f-Plan bezeichnet. Die Software bei einer realen Maschine R, die den f-Plan einstellt
und (normalerweise) eine Steuerung auf einen VM-Fehler hin erhält, wird als virtueller Maschinenraonitor VMM oder als
virtuelles Maschinenüberwachungsprogramin bezeichnet.
Das Modell auferlegt keine Forderung dahingehend, daß der f-Plan ein Seitenplan, ein Verschiebungs-Grenzen-Plan (R-B-Plan)
oder ein Plan irgendeiner anderen Form ist. Wenn jedoch von virtuellen Maschinen gesprochen wird, ist die Aufmerksamkeit
normalerweise auf solche Fälle beschränkt, in denen die virtuelle Maschine eine zuverlässige Nachbildung
der realen Maschine ist und in denen das Leistungsvermögen des virtuellen Systems vergleichbar mit dem des realen
Systems gemacht werden kann.
Im folgenden sei die Rekursion näher betrachtet. Das oben entwickelte Rekursionsplanmodel erstreckt sich direkt auf
die Rekursion, und zwar durch Interpretierung von V und R als zwei benachbarte Ebenen virtueller Hilfsquellen. Sodann
befindet sich die reale physikalische Maschine in der Ebene 0, und der f-Plan stellt die Ebene n+1 als Ebene η dar.
Die Rekursion für virtuelle Systeme ist eine Eigenschaft von beachtlichem praktischen Interesse. In ihrer einfachsten
Form ist die Motivation für die virtuelle Maschinenrekursion diejenige Eigenschaft, die - obwohl sie dem Sinn nach herkömmliche
Bedienungs- bzw. Betriebssysteme auf der virtuellen Maschine laufen laßt - zur Überprüfung der virtuellen Maschinenmonitorsoftware
auf einer virtuellen Maschine ferner die Notwendigkeit mit sich bringt, zumindest eine virtuelle
409851/0863
Maschine in einer zweiten Ebene laufen zu lassen.
Wenn die Virtualisierung nicht rekursiv ist, kann man lediglich
eine Einschachtelungsebene von virtuellen Maschinen erzeugen; deshalb ist es unmöglich, die Software zu korrigieren,
die die virtuellen Betriebsartausnahmen behandelt (virtueller Maschinenmonitor VMM), während der reguläre
Betrieb in dem System aufrechterhalten wird. Um eine Korrektur des virtuellen Maschinenmonitors VMM gleichzeitig mit
anderen Aktivitäten vorzunehmen, ist es in der Tat erforderlieh,
daß/einer der virtuellen Maschinen ermöglicht wird, ihrerseits einen virtuellen Maschinenmonitor bzw. ein virtuelles
Maschinenüberwachungsprogramm laufen zu lassen und somit eine zweite Ebene von virtuellen Maschinen zu bilden.
Unter einem praktischen Gesichtspunkt heraus ist alles, was benötigt wird, eine begrenzte Rekursionsfähigkeit mit zwei
Ebenen der Verschachtelung für die virtuellen Maschinen. Diese Minimalfähigkeit würde der virtuellen Maschinenmonitorsoftware
ermöglichen, gleichzeitig mit anderen Aktivitäten in dem System korrigiert werden zu können.
In der folgenden Erläuterung wird eine qualifizierte Namen-Baumnamensgebungs-Übereinkunft
entsprechend einer PL/I-Ausdrucksweise benutzt, bei der eine virtuelle Maschine in der
Ebene η gleich η Silben in ihrem Namen aufweist.
In Fig. 1d ist in einer schematischen Darstellung die virtuelle Maschinegsmäß der Erfindung gezeigt, die eine Rekursionsfähigkeit
besitzt. In der realen Maschine befindet sich in der Ebene 0 ein virtueller Maschinenmonitor VMM.
In der Ebene 1 sind zwei virtuelle Maschinen VM1 und VM2 vorhanden. Die virtuelle Maschine VM1 besitzt einen Baum-
409851/0863
namen 1, und die virtuelle Maschine VM2 besitzt einen
Baumnamen 2. In der Ebene 2 sind zwei virtuelle Maschinen VM3 und VM4 vorhanden. Die virtuelle Maschine VM3 besitzt
einen Baumnamen 2.1, und die virtuelle Maschine VM4 besitzt einen Baumnamen 2.2, etc.. (In Fig. 1d ist der Ablauf bzw.
die Ausführung der virtuellen Maschine gegeben mit 2.1.1 drei Ebenen unterhalb der Ebene 0 und einschließlich der
Ebene 0.) Es dürfte ersichtlich sein, daß η Silben im Namen der virtuellen Maschine in der Ebene η vorhanden sind und
daß demgemäß ein Hinweis dafür vorhanden ist, daß η Pläne bzw. Abbildungen zusammenzusetzen sind, um tatsächlich die
Hilfsquelle aus der Ebene η in der virtuellen Maschine in die reale Maschine zu übernehmen. Diese Namensgebungsübereinkunft
benennt eindeutig die Vorfahren der ausführenden virtuellen Maschine und insbesondere deren Erzeuger. Wenn
die ausführende virtuelle Maschine somit einen virtuellen Maschinenfehler erzeugt, kann die Hardware/Firmenware zu
dem Schluß kommen, daß die Steuerung auf den virtuellen Maschinenmonitor VMM übertragen werden muß, der in bzw. auf
der virtuellen Maschine 2.1 läuft, die der Ursprung für die ausführende bzw. laufende virtuelle Maschine 2.1.1 ist.
Dieser Baumname wird als Index sowohl für den virtuellen Hilfsquellensatz, z.B. V. . , als auch für den entsprechenden
f-Plan, z.B. f , benutzt.
Wenn somit folgende Voraussetzungen gegeben sind:
f1: V^
R (Ebene 1, Hilfsquellenplan für die Darstellung
V1 in R)
£| ^: V1 1 V1 (Ebene 2, Hilfsquellenplan für die Darstellung
bzw. Abbildung V1 1 in V1).
409851/0863
Sodann wird der virtuelle Hilfsquellennamen y der Ebene 2
dargestellt bzw. abgebildet in fo (f (y)) oder f. ο f (y),
£- I . I I Ί . ι
!lo" ist der herkömmliche Funktionszusammensetzungsoperator
in der Mathematik. Siehe Fig. 2a.
Der obige Plan bzw. die obige Darstellung und Fig. 2a veranschaulichen,
wie zwei virtuelle Maschinenpläne f. und f, zusammengesetzt (zusammengestellt) werden, um eine Darstellung
bzw. Abbildung von der Ebene 2 in die Ebene 1}in die Ebene 0, d.h. zu der realen Maschine, zu bewirken. Wenn
zuvor ein f-Plan bestimmt worden ist, kann eine virtuelle Hilfsquelle in eine reale Hilfsquelle dargestellt werden,
oder es kann eine virtuelle Hilfsquelle in einer anderen Ebene dargestellt v/erden oder einen Fehler ,hervorrufen. In
Fig. 2a ist die erfolgreiche Darstellung bzw. Abbildung (d.h. ohne einen Fehler) der virtuellen Maschinenhilfsquelle
veranschaulicht, und zwar bei der virtuellen Maschine V-1 Λ
in die virtuelle Maschine V. und in eine reale Maschine R,
d.h. f1 Cf1^1 (z)).
In der obigen Funktion kann f Λ ο f Λ Λ zwei mögliche Fehler
erkennen:
1) Der Ebene-2-Hilfsquellenfehler (virtuelle Maschine) auf
dem virtuellen Maschinenmonitor der Ebene 1, d.h. f. .(v) = t.
Siehe Fig. 2b.
2) Der Ebene-1-Hilfsquellenfehler (virtuelle Maschine) zu
dem virtuellen Maschinenmonitor der Ebene 0 (der realen Maschine), dies bedeutet, daß lot. (v) = %<
Siehe Fig.2c,
In Fig. 2b ist ein Fehler veranschaulicht, der auftritt, da die Hilfsquelle, die von dem virtuellen Hilfsquellenraum V^, Λ,
wo dieser existiert, in dem virtuellen Hilfsquellenraum V1
denn
dargestellt wird, in/v., nicht existiert. So ist z.B. eine in
dargestellt wird, in/v., nicht existiert. So ist z.B. eine in
409851/0863
V-1 , existierende Seite in V nicht vorhanden. Demgemäß
i · I ι
resultiert daraus ein Fehler t. Dies ist ein Fehler des Typs 1 (d.h. ein Ebene-2-Fehler) über f (y) = t. In
1 · I
Fig. 2 ist ein oberer Fehler des Typs 2 (lübene-1-Fehler)
veranschaulicht, wobei eine Hilfsquelle, die in dem virtuellen Raum V. Λ existiert, erfolgreich in dem virtuellen Hilfs-
quellenraum V1 dargestellt bzw. abgebildet wird, danach jedoch
ausfällt hinsichtlich der Darstellung bzw. Abbildung in dem realen Hilfsquellenraum R.
Bei dem obigen Fehler des Typs 1 bewirkt ein Merkmal der
noch näher zu beschreibenden Erfindung eine Steuerung insoweit, als der Fehler des Typs 1 direkt zu dem virtuellen
Maschinenmonitor VMM hin gelangt, der in V1 läuft, und zwar
ohne die Kenntnis des virtuellen Maschinenmonitors, der auf der realen Maschine R läuft - eine Neuerung mit einer
Hauptbedeutung. In dem Fall, daß der Plan f. Λ erfolgreich
I · 1
ist in der Darstellung bzw. Abbildung von V1 (und in V. eine
entsprechende Hilfsquelle findet), jedoch der Plan f,, bei
der Darstellung bzw. Abbildung in R ausfällt (und eine entsprechende Hilfsquelle in R nicht findet) bewirkt in entsprechender
Weise der Fehler t" sodann eine Steuerung, durch die zu dem virtuellen Maschinenmonitor hin gekommen wird,
der auf· der realen Maschine läuft, und zwar ohne die Kenntnis des virtuellen Maschinenmotors, der auf V1 läuft.
Bei bisher bekannten virtuellen Maschinen, wie dem System CP-67, bei denen eine Realisierung der Rekursion versucht
wurde, wenn z.B. ein Fehler in der Ebene 1 auftrat, würde der Fehler dadurch behandelt bzw. verarbeitet werden, daß
auf die Ebene 0 Bezug genommen würde, da nämlich dort kein realer Fehlerbehandlungsmechanismus vorhanden ist. Sodann
409851/0863
• - 34 -
würde durch Software zur Ebene 1 zurückgekehrt werden. Dies zieht jedoch einen wesentlichen Softwareüberhang nach sich.
Im allgemeinen kann ein zusammengesetzter f-Plan irgendeinen
Fehler hervorrufen. Ss existiert jedoch eine Klasse von Plänen, die sogenannten inklusiven Pläne, die lediglich
den ersten Fehler (Ebene-2-Fehler) hervorrufen können. Der Verschiebungs-Grenzen-Plan (R-B-Plan) ist ein inklusiver
Plan, was jedoch nicht für den Seiten-Plan zutrifft. Die Inklusiv-Eigenschaft impliziert die Möglichkeit einer einfachen
Rekursionsausführung.
Für den generellen Fall der Ebene-n-Rekursion wird der virtuelle Name y der Ebene η dargestellt in
fi ° fi.i ° ···· ° fi 1 <*>·
Siehe Fig. 2d.
Das vorliegende Modell kann dazu herangezogen werden, die rekursiven virtuellen Sinzelzustands-Maschinen zu beschreiben.
Siehe Tabelle I.
Im folgenden sei der Prozeßplan φ näher betrachtet. Das
Modell, wie es derzeit entwickelt ist, gibt lediglich die Darstellung von Hilfsquellen in einem Rechnersystem wieder.
Diese Maschinenausführung genügt, um die Virtual!sierung
von bestimmten Minirechnern, wie dem System DEC PDP-8, zu
erläutern, welches irgendeine örtliche Darstellungs- bzw. Planstruktur nicht zeigt. Die meisten gegenwärtigen Allzwecksysteme
(der dritten Generation) weisen jedoch zusätzliche Software-sichtbare Hardware-Pläne auf. Diese zusätzliche
Struktur kann vorliegen einfach als Überwachungs/Problem-Zustände (IBM System/360) und Verschiebungs-Grenzen-Register
40*861/0883
(DEC PDP-10 und Honeywell 6000) oder als Komplex, wie
als iiinteilungs-Seitenbildungs-Ringe (Multics - Honeywell
Informations Systems Inc. 6180). In zukünftigen Systemen der vierten Generation werden die Pläne wahrscheinlich sogar
noch komplizierter; sie können eine formale Ausführung des Prozeßmodells in Hardware/Firmenware hervorbringen.
Der entscheidende Punkt "bezüglich jeder dieser Hardware
(unterstützten) Pläne liegt jedoch darin, daß sie gewissermaßen software-sichtbar sind. In bestimmten Systemen erstreckt
sich die Sichtbarkeit auf die nicht privilegierte Software. In allen Fällen sind jedoch die Pläne für die
privilegierte Software sichtbar.
In typsicher Weise wird ein Betriebssystem auf einer dieser
Maschinen die Planinformation ändern, bevor die Ausführung eines Anwenderprozesses erfolgt. Die Planmodifikation
könnte einfach dadurch erfolgen, daß die Prozessorbetriebsart in den Problemzustand gebracht wird, oder sie
kann so kompliziert sein, daß der Prozeß-Adressenplatz geändert
wird, und zwar durch Umschalten seiner Segmenttabelle. In jedem Fall werden die anschließende Ausführung des Prozesses
und der Zugriff zu den Hilfsquellen durch den gegenwärtigen örtlichen Plan beeinflußt werden.
Um den Ablauf von, Prozessen auf einer virtuellen Maschine
zuverlässig nachzubilden, muß daher die örtliche Planbildungs- bzw. Abbildungsstruktur in das Modell eingeführt
werden.
Ein Modell des software-sichtbaren Hardware-Plans ist dadurch
entwiekelt worden, daß der Satz von Prozeßnamen
409851/0863
P = (P , P. ... P.) als Satz von Namen bestimmt worden
ist, die durch einen in dem Rechensystem ablaufenden Prozeß adressierbar sind. (Prozeßräume bzw. -Plätze sind dargestellt
als Kreise in den Figuren 3a und 3b.) R= (rQ, r* ... rn) ist
als Satz von (realen) Hilfsquellennamen, wie zuvor, angenommen.
Für den aktiven Prozeß ist sodann eine Möglichkeit vorgesehen, um die Prozeßnamen den Hilfsquellennamen während der Prozeßausführung
zuzuordnen. Zu diesem Zweck ist mittels der gesamten software-sichtbaren Hardware-Darstellungsstruktur,
z.B. des Überwachungs/Problemzustands, die Segmenttabelle,
etc., eine Funktion für jeden Augenblick bestimmt, nämlich
φ: P -^ RU {e]
Hierin bedeutet φ die sichtbare Software-Tabelle des Betriebssystems
für den Satz P von Prozeßnamen, und zwar zur Darstellung des Satzes R in Vereinigung mit e, wobei R der
Satz von realen Hilfsquellen des Systems bedeutet und wobei e das Ereignis bedeutet, welches anzeigt, daß eine Ausnahme
aufgetreten ist, Wenn x£P, y£R vorliegen, wobei x£.P anzeigt,
daß χ ein Element des Satzes P von Prozessen ist, und wobei y£_R anzeigt, daß y ein Element des Satzes R (das
sind Hilfsquellen) ist, dann gilt zur Zuordnung der Elemente eines Satzes zu den Elementen eines anderen Satzes die
Beziehung
φ (χ) == (y, wenn y der Hilfsquellennamen für den Prozeßnamen
χ ist,
e, wenn χ keine entsprechende Hilfsquelle hat. Dies bedeutet, ^(x) ist gleich y, wenn y die (reale) Hilfsquelle
ist, die dem Prozeßnamen χ entspricht. Ansonsten ist φ (χ) gleich e, wenn χ zu einem bestimmten Zeitpunkt eine
entsprechende (reale) Hilfsquelle nicht zugeteilt ist.
409851 /0863
Der Wert φ (χ) = e bewirkt das Auftreten einer Ausnahme
bei einem gewissen Ausnahmebehandlungsvorgang, und zwar vermutlich bei einem privilegierten Vorgang des Betriebssystems
dieser Maschine. Um eine Verwirrung mit VM-Fehlern (siehe oben) zu vermeiden, werden die nicht programmierten
Prozeßsprünge stets als Ausnahmen bezeichnet.
Die Funktion φ wird als Prozeßplan oder φ-Plan bezeichnet.
Der Ausdruck Prozeßplan wird unabhängig davon angewandt, welche Form der jrf-Plan besitzt. In zukünftigen Systemen
(der vierten Generation) kann φ tatsächlich die Firmenwarerealisierung
von Prozessen darstellen, obwohl dies nicht notwendig ist. Ein bedeutender Punkt bezüglich φ liegt noch
darin, daß im Unterschied zu dem f-Plan, der ein Interebenen- bzw. Zwischenebenen-Plan ist, der jif-Plan ein örtlicher
oder Intraebenen-Plan ist und eine Ebene der Hilfsquellen_darstellung
nicht kreuzt.
Im folgenden sei der Lauf einer virtuellen Maschine näher betrachtet, nämlich f ο φ. Der Ablauf eines Prozesses auf
einer virtuellen Maschine bedeutet den Ablauf eines Prozesses in einer Konfiguration mit virtuellen Hilfsquellen. Wenn ein
Prozeß P = (p_, P1 ... p.) auf der virtuellen Maschine V =
(vq, v. '"Vjn) läuft, dann gilt, wie zuvor,
φι P--^ V U { e} ,
wobei die virtuellen Hilfsquellennamen V anstelle der realen Namen in dem Hilfsquellenbereich des Planes ersetzt
sind.
Die virtuellen Hilfsquellennamen werden ihrerseits in ihre realen Äquivalente durch den Plan, f:V - R, dargestellt.
Somit entspricht ein Prozeßname χ einer realen Hilfs-
409851/0863
quelle f ($$(x)). Im allgemeinen werden die Prozeßnamen
in reale Hilfsquellennamen unter der Wirkung des (zusammengesetzten) Planes
f ο φ\ P —^ R U (tj U {e\ dargestellt,
wobei die betreffenden Symbole die obigen Bedeutungen haben.
Dieser (zusammengesetzte) Plan kann nicht genügen, um einen Prozeßnamen in einen realen Hilfsquellennamen in einem von
zwei Wegen zu überführen. Im Falle einer Prozeßnamenausnahme (Fig. 3a) wird die Steuerung ohne Kenntnis oder Eingreifen
des virtuellen Maschinenmonitors auf die privilegierte Software des in derselben Ebene arbeitenden Systems
übertragen. Ein Fehler eines virtuellen Namens bewirkt jedoch, daß die Steuerung auf einen Prozeß . einer Maschine
in einer unteren Ebene übergeht, und zwar ohne Wissen oder Eingreifen des arbeitenden Systems (Fig. 3b). Obwohl diese
Fehlerbehandlungssoftware in dem virtuellen Maschinenmonitor VMM nicht Gegenstand eines f-Planes ist, da sie auf
der realen Maschine läuft, ist sie jedoch Gegenstand ihres ^-Planes, und zwar gerade so wie bei irgendeinem anderen
Prozeß in der Maschine.
In Figuren 3a und 3b sind Prozeßräume P durch Kreise dargestellt,
und virtuelle und reale Hilfsquellenräume V bzw. R sind durch Quadrate dargestellt. Damit eine gültige Darstellung
auftritt, wird ein Prozeßnäme Pa in dem Prozeßraum
P in eine Stelle Va in dem virtuellen Hilfsquellenraum
V übernommen, und schließlich in eine Stelle bzw. in einen Punkt RQ in dem realen Hilfsquellenraum R. Fig. 3a zeigt jedoch
das Auftreten einer Ausnahme e in dem virtuellen Raum V, wobei die Steuerung in der virtuellen Maschine verbleibt, die
in dem virtuellen Raum V arbeitet. Die Ausnahme gelangt auf die privilegierte Software der virtuellen Maschine V, um von
4098 5 1 /0863
der privilegierten Software der virtuellen Maschine verarbeitet zu werden.
In Fig. 3b war die fi-Dar stellung gültig bezüglich einer
Stelle V_; bei der Darstellung V0 (einer virtuellen Hilfsa
a
quelle) in eine reale Hilfsquelle ist jedoch ein Fehler t aufgetreten, der von dem virtuellen Maschinenmonitor behandelt
bzw. verarbeitet wird, welcher auf der realen Maschine R läuft. In typischer Weise würde ein Fall, wie
ihn Fig. 3a zeigt, vorliegen, wenn das GCOS-Betriebssystem
auf einer virtuellen Maschine V läuft und wenn ein im nicht privilegierten Betrieb laufendes bzw. betriebenes Anwenderprogramm
unter dem GCOS-Betriebssystem versuchte, einen privilegierten Befehl des Betriebssystems zu benutzen.
In diesem Fall wird eine Ausnahme durch das GCOS-Betriebssystem verarbeitet bzw. behandelt.
Ein typischer Fall, wie. ihn Fig. 3b zeigt, liegt dann vor, wenn ein Programm in demselben oben erwähnten GCOS-Betriebssystem
versucht, auf irgendeinen Teil des Hauptspeichers innerhalb des virtuellen Speichers Bezug zu nehmen, der
durch das GCOS-Betriebssystem zugeteilt ist, dabei aber ermittelt, daß der bestimmte Teil des virtuellen Speichers
nicht im Hauptspeicher zu dem betreffenden Zeitpunkt ist. Daraus resultiert ein Fehler für den virtuellen Maschinenmonitor
der realen Maschhe R. Der !fehler wird dem virtuellen
Maschinenmonitor VMM von R zugeführt, um verarbeitet zu werden.
Der jzS-Plan wird mit dem rekursiven f-Plan-Ergebnis zusammengefaßt,
um den "allgemeinen" zusammengesetzten Plan
f. ο f, ■, ο ... ο f,., Λ Λ ο φ zu bilden.
I I.I l.l... I.I
409851 /0863
Bei virtuellen Maschinen besteht somit unabhängig von der Ebene der Rekursion lediglich eine Anwendung des
^-Planes, gefolgt von η Anwendungen eines f-Planes. Dies
stellt ein bedeutendes Ergebnis dar, welches sich aus dem Formalismus der Unterscheidung der f- und ^-Pläne ergibt.
In einem System mit einem komplizierten ^-Plan, jedoch mit
einem einfachen f-Plan kann somit eine η-Ebenen-Rekursion
einfach und billig realisiert werden.
In dem dargestellten Modell sind in den f-Plänen die Hilfsquellen
der Ebene n+1 in Hilfsquellen der Ebene η dargestellt. Es ist in gleicher Weise möglich, einen f-Plan
festzulegen, in welchem Hilfsquellen der Ebene n+1 dargestellt sind als bzw. in Prozeßnamen der Ebene η (die
dann in Hilfsquellennamen der Ebene η dargestellt werden).
Dieser neue f-Plan wird als f-Plan des Typs II bezeichnet, um ihn von dem hier erläuterten f-Plan des Typs I zu unterscheiden.
Nunmehr sei eine Interpretation des Modells gegeben. Das Modell ist sehr wichtig zur Darstellung des Vorhandenseins
zweier sehr unterschiedlicher grundsätzlicher Pläne in virtuellen Maschinen. Frühere Konzepte haben nicht klar
den Unterschied oder die Pläne angemessen getrennt unterschieden. Der wesentliche Punkt besteht darin, daß die Pläne f
und φ zwei gänzlich verschiedene Pläne sind und unterschiedlichen Funktionen dienen. Es gibt bisher keine Forderung danach,
daß f oder φ eine besondere Form hat oder daß zwischen diesen Plänen eine feste Beziehung vorhanden ist. Der ji-Plan
ist von dem Ausführungsprogramm her betrachtet die Schnittstelle, während der f-Plan von den Hilfsquellen aus betrachtet
die Schnittstelle ist. Um virtuelle Maschinen zu
409851/0863
einem vorhandenen Rechensystem hinzuzufügen, muß lediglich f hinzugefügt werden - φ ist bereits bestimmt. Die Wahl bezüglich
des f-Plans, ob dieser vom Verschiebungs-Grenz-Typ(R-B-)
Typ, vom Seitenbildungstyp, etc. ist, hängt davon ab, wie die Hilfsquellen der virtuellen Maschinen zu benutzen sind. In
jedem Falle ist der f-Plan rekursiv, während der ?$-Plan es
nicht zu sein braucht.
Wenn eine neue Maschine konstruiert wird, dann sind weder φ
noch f bereits bestimmt, φ kann gewählt werden, um die Strukturen
zu idealisieren, die vom Programmierer gesehen werden, während f so gewählt werden kann, daß die Ausnutzung der
Hilfsquellen in dem System optimiert ist.
Eine weitere wesentliche Unterscheidung zwischen den Plänen
besteht darin, daß der f-Plan die Ebenen der Hilfsquellenzuteilung zwischen den virtuellen Maschinen trägt, während
der φ-ΤΡίΆη Privxlegierungsschichten (Ringe, Master/Slave-Betriebsart)
innerhalb einer einzigen virtuellen Maschine festlegen kann.
In der nachstehenden Tabelle I ist ein Vergleich der Eigenschaften
von virtuellen Rechensystemen angegeben, wobei die Anwendung des oben entwickelten Modells versucht bzw. vorgenommen
wird. Aus der Tabelle I kann ersehen werden, daß keines der existierenden oder früheren spekulativen Systeme
eine direkte Unterstübung von im allgemeinen vollstän.dig virtuellen Maschinen bewirkt. Das System CP-67 weist einen
nicht-trivialen φ-ΡΙ&η auf, jedoch keine direkte Hardwareunterstützung
des f-Plans. Die Lösung von Lauer und Snow (3) bringt zwar eine direkte Hardwareunterstützung des f-Plans mit
sich, weist jedoch einen trivialen φ-ΊΡΙ&η auf. Dies bedeutet,
40985 1 /0863
daß φ = Identität gilt. Deshalb muß das System CP-67
Software zuzüglich der Schichtbeziehung des ^-Plans heranziehen,
um Ebenen zu simulieren, während Lauer und Snow Software zuzüglich der Ebenenbeziehung des f-Plans benutzen
müssen, um Schichten zu simulieren. Damit ist das System weniger allgemein und bewirkt keine Unterstützung
moderner· Betriebssysteme, die direkt in individuellen virtuellen Maschinen laufen.
Die sogenannten "Venadig-Vorschlage" von Gagliardi-Goldberg
tragen zwar sowohl die Schicht- als auch die Ebenenbeziehung. Da die betreffenden Vorschläge jedoch nicht direkt
zu einer Hardwareunterstützung für f führen, ist noch ein Software-Eingriff erforderlich.
409851/0863
Vergleich von Systemen, die ein virtuelles Maschinenmodell benutzen
System
IBM CP-67
Gagliardi-Goldberg (Venedig-Vorschlag)
Lauer-Snow Lauer-Wyeth
Goldberg HV (dies ist die vor1.Anmeldung)
σ oo cn
f-Plan
=£ ο φ
f ο φ Verfasser
Direkter Zugriff zu φ Zugelassen? Lesen Schreiben
Rekursion und rekursiver Verfasser
Hardware
(dritte
Generation)
Software
Software-Unterstützung für in Speicher
umgesetztes φ
Software
Hardware (komplexe vierte Generation)
Software
Hardware Unterstützung für in Speicher umgesetztes φ
Hardware
Hardware (vollständig beliebig)
Hardware
Hardware
(Verschiebung- iUnterteivGrenzen;
&
Seitenbildung)
Hardware (vollständig . χ belieBig)
nein nein
Software-Zusammensetzung
Rekursive virtuelle Maschinenstruktur , durch Hardware un_terstützt
nein
Hardwareunterstützte Zusammensetzung
Baum
Dynamisch ausgewertet
direkte Hardware-dynamische
Bildung
ja
ja
direkte Hard- direkte Hard- direkte Hardware, statische ware, dynami- ware, dynami-Zusammensetzung
sehe Zusam- sehe Zusammen-
mensetzung setzung
Stapel
Stapel
Baum
Zu den zuvor angegebenen Systemen wird auf folgende Veröffentlichungen
hingewiesen:
Zu 1: R.A. Meyer, L.H. Seawright-, "A Virtual Maschine
Zu 1: R.A. Meyer, L.H. Seawright-, "A Virtual Maschine
Time-Sharing System" IBM Syst. Journal, Vol. 9,
No. 3, 1970;
Zu 2: U.O. Gagliardi, R.P. Goldberg - "Virtualizable Architecture", Proc. ACM AICA International Computing Symposium, Venedig, Italien 1972;
Zu 2: U.O. Gagliardi, R.P. Goldberg - "Virtualizable Architecture", Proc. ACM AICA International Computing Symposium, Venedig, Italien 1972;
Zu 3: H.C. Lauer, CR. Snow - "Is Supervisor State
Necessary", Proc. ACMAICA Int. Comp. Symp., Venedig, Italien 1972;
Zu 4: H.C. Lauer, D. Wyeth - "A Recursive Virtual Machine Architecture" Proceedings ACM SIGARCH-SIGOPS
Workshop on Virtual Computer Systems, Cambridge, Mass., 1973.
Im folgenden werden Ausführungsformen der Erfindung näher erläutert. Zunächst sei die Hardware-Virtualisierungsanordnung
(HV) näher betrachtet. Das obige virtuelle Maschinenmodell bringt einen Einblick in existierende und vorgeschlagene
Systeme mit sich und zeigt eine natürliche Einrichtung zur Realisierung virtueller Maschinen in sämtlichen
herkömmlichen Rechensystemen auf. Da der f-Plan und der ?i-Plan verschieden und (möglicherweise) in einem virtuellen
Rechnersystem unterschiedlich sind, sollten sie durch unabhängige
Konstruktionen bzw. Aufbauten dargestellt sein. Wenn ein auf einer virtuellen Maschine laufender Prozeß
über einen Prozeßnamen Bezug nimmt auf eine Hilfsquelle, dann sollte der erforderliche reale Hilfsquellennamen durch
eine dynamische Zusammensetzung des f-Plans und des ?i-Plans ·
409851/0863
zu der Ausführungszeit erhalten werden. Darüber hinaus sollte das Ergebnis unabhängig von einer Rekursion oder
der besonderen Form von f und φ festgehalten werden. Die erste Ausführungsform ist die verallgemeinerte Ausführungsform; sie umfaßt die in Fig. 5, 6a und 6b dargestellten
Strukturen. Die zweite Ausführungsform ist eine spezielle
Ausführungsform, die einen Plan φ = R-B und einen f = Seitenbildungs-Plan
(in dem Hauptspeicherbereich) einschließt, wie dies in Fig. 7 gezeigt ist. Diese Ausführungsform kann
dem Rechner Honeywell 6000 hinzugefügt werden. Die dritte Ausführungsform kann dem Rechner Honeywell 6180 hinzugefügt
werden und einen ^-Aufteilungs- bzw. Segmentierungsplan und f= R-B im Hauptspeicherbereich umfassen. Diese
Ausführungsform ist in Fig. 8a und 8b gezeigt. Die Hardware -Virtuali si erungsanor dnung HV, die nachstehend zu beschreiben
ist, führt das obige Konzept der Erfindung aus. Die Hardware-Virtualisierungsanordnung kann ein Teil einer
Erweiterung eines vorhandenen Systems oder ein integraler Bestandteil der Konstruktion eines neuen Systems sein.
Im folgenden werden der Aufbau der Hardware-Virtualisierungsanordnung
und deren Anforderung erläutert. Beim Aufbau einer Hardware-Virtualisierungsanordnung werden folgende Punkte
berücksichtigt:
a) Die Datenbank zur Speicherung von f;
b) ein Mechanismus zum Aufrufen von f;
c) die Mechanismen der Plan-Zusammenstellung, und
d) die Wirkung eines Fehlers in einer virtuellen Maschine.
In der folgenden Beschreibung wird eine Hardware-Virtualisierungsanordnung
beschrieben, die eine Planzusammenstellungsfunktion ausführt. Die folgende Beschreibung umfaßt die Be-
Schreibung der Virtualisierungsanordnung, der unterstützenden
Steuermechanismen, typischer Befehle, die für die Bildung einer rekursiven virtuellen Maschine benutzt
werden, und verschiedener Fehlerverarbeitungsmechanismen für verschiedene Fehlertypen.
Da vorhandene Rechnersysteme,wie die Rechnersysteme Honeywell
Information Systems Inc., Serie 6000, DEC PDP-10 und das IBM-System/36O, eine gewisse Form eines ^-Plans enthalten,
wird lediglich die dem f-Plan zugeordnete zusätzliche Struktur erläutert. Im Rahmen der vorliegenden Anmeldung
werden dabei Einzelheiten der Erfindung dadurch erläutert, daß die vier, oben aufgeführten Punkte im Hinblick auf die
verallgemeinerte Ausführungsform beschrieben werden und daß die Struktur und Arbeitsweise der Hardware-Virtualisierungsanordnung
im Hinblick auf die beiden besonderen Ausführungsformen detaillierter beschrieben werden.
Nunmehr sei die Datenbank zur Darstellung von f betrachtet. Ein virtueller Maschinenmonitor VMM in der Ebene η erzeugt
bzw. bildet eine Datenbank und hält diese fest. Diese Datenbank stellt die f-Plan-Beziehung zwischen zwei benachbarten
Ebenen von virtuellen Maschinen-Hilfsquellen dar, nämlich der Ebene n+1 zu der Ebene n. Diese Datenbank wird derart
gespeichert, daß sie für die virtuelle Maschine , d.h. die Ebene n+1, die die meiste privilegierte Software enthält,
unsichtbar ist. In diesem Zusammenhang sei angenommen, daß aus wirtschaftlichen Grünen die Datenbank im Hauptspeicher
gespeichert wird. Sodann karmf nicht in dem (virtuellen) Speicher der Ebene n+1 sein, sondern es muß vielmehr in dem
(virtuellen) Speicher der Ebene η sein.
400851/0863
2426A35
Die einzige Forderung dahingehend, wo f bzw. der f-Plan
in einem Speicher der Ebene η gespeichert wird, besteht darin, daß es für die Hardware-Virtualisierungsanordnung HV
möglich ist, den betreffenden Plan zu lokalisieren, und zwar durch Abgabe eines bestimmten Algorithmus vom Anfang (Wurzel)
des Speichers der Ebene η an. Die unterschiedlichen virtuellen Maschinen in derselben Ebene entsprechenden f—Pläne
können entweder implizit oder explizit identifiziert werden. In Fig. 4 ist ein Blockdiagramm zur expliziten Identifizierung
der f-Pläne gezeigt. Fig. 4 zeigt dabei in einem Block einen Hauptspeicher 400 in einer Ebene η einer
virtuellen Maschine, und zwar in einem typischen Rechnersystem,
wie dem Rechner Honeywell 6000. Die Wurzel bzw. Basis 401 ist eine feste bekannte Adresse in dem Speicherblock
400; sie enthält (unter weiterer Information) einen YMTAB-Zeiger 407, der seinerseits auf die Stelle in dem
Speicherblock der virtuellen Maschinentabelle 402 hinzeigt, die mit VMTAB bezeichnet ist. Die VMTAB-Tabelle 402 enthält
ihrerseits k Einträge von VMCB-Ze*igern VM bis VM, . Jeder
VMCB-Zeiger zeigt auf einen entsprechenden virtuellen Maschinensteuerblock. So zeigt z.B. der VMCB-Zeiger VM1
auf den virtuellen Maschinensteuerblock VMCB-1, 403» und
der Zeiger VM2 zeigt auf den virtuellen Maschinensteuerblock VMCB-2, 404, etc.. Da der virtuelle Maschinensteuerblock
VMCB eine Information zur Darstellung der Hilfsquellen der virtuellen Maschine bereitstellt, enthält er in typischer
Weise solche Daten-Hardwarestrukturen, wie einen Speicherplan, einen Prozessorplan, Eingabe/Ausgabe-Plan
und eine Zustandsinformation für die virtuelle Maschine. Der virtuelle Maschinensteuerblock VMCB ist daher im
wesentlichen der f-Plan für eine bestimmte virtuelle Maschine. So ist z.B. der virtuelle Maschinensteuerblock
VMCB-1 der f-Plan für die virtuelle Maschine 1, der
409851/0863
virtuelle Maschinensteuerblock VMCB-2 ist der f-Plan für
die virtuelle Maschine 2, etc.. Die spezielle Form des virtuellen Maschinensteuerblocks hängt von dem tatsächlich
benutzten f-Plan ab, z.B. von der R-B-Seitenbildung, etc.. Wenn eine Seitenbildung benutzt wird, enthält der
Speicherplan des virtuellen Maschinensteuerblocks in typischer Weise eine Seitentabelle 405, 406.
Eine zusätzliche Information, die in dem virtuellen Maschinensteuerblock
festgehalten werden kann, umfaßt eine Leistungsfähigkeitsinformation für den virtuellen Prozessor.
Diese Information zeigt die vorhandenen oder fehlenden besonderen Merkmale und Befehle an. Diese Leistungsfähigkeits-Bits
umfassen z.B. einen wissenschaftlichen Befehlssatz oder einen virtuellen Maschinenbefehlssatz (Rekursion).
Wenn die Rekursion unterstützt wird, enthält der virtuelle Maschinensteuerblock genügend Information, um automatisch
auf einen virtuellen Maschinenfehler einer niederen Ebene hin zu einer virtuellen Maschine in höherer Ebene zu starten
(Fig.2c und Fig. 5, Blöcke 506, 512).
Die hier angegebenen Datenstrukturen sind als Firmenware bekannt, so daß sie im Zuge der Plan-Zusammenstellung
automatisch angewandt werden können; sie liefern Datenstrukturen, die sich zwischen der Ebene n+1 und der
Ebene η beziehen.
Nunmehr sei der Mechanismus zum Aufruf von f erläutert. Um den f-Plan aufzurufen, erfordert die Hardware-Virtualisierungsanordnung
ein zusätzliches bekanntes Register und einen Befehl zur Manipulierung dieses Registers. Das Register
ist das virtuelle Maschinenidentifizierungsregister (VMID) gemäß Fig. 6 und das virtuelle Maschinenidentifizie-
A09851/08S3
rungsregister 701 gemäß Fig. 7, welches den "Baum-Namen"
der gerade laufenden virtuellen Maschine enthält. Das virtuelle Maschinenidentifizierungsregister ist ein mehrsilbiges
Register, dessen Silben sämtliche f-Pläne identifizieren,
die zusammengesetzt werden müssen, um einen realen Hilfsquellennamen zu erhalten, ^feim es erwünscht ist, eine
virtuelle Maschine in der Ebene 2 laufen zu lassen,, dann
enthält das virtuelle Maschinenidentifizierungsregister zwei Silben, die den Baumnamen der betreffenden virtuellen
Maschine in der betreffenden Ebene darstellen. Ein Befehl LVMID (Lade das virtuelle Maschinenidentifizierungsregister)
gemäß Fig. 5 hängt eine neue Silbe an das virtuelle Maschinenidentifizierungsregister
an. Wenn die gegenwärtige
Silbe in dem virtuellen Maschinenidentifizierungsregister ist und wenn der virtuelle Maschinenmonitor wünscht, bis
zur virtuellen Maschine Nr. 3 zu laufen, dann benutzt er den LVMID-Befehl, um an die gegenwärtige Nummer in dem
virtuellen Maschinenidentifizierungsregister eine 3 anzufügen, wodurch eine Verbundzahl von 1.3 gebildet wird.
Das virtuelle Maschinenidentifizierungsregister (und der LVMID-Befehl) weisen vier entscheidende Eigenschaften auf:
a) Der absolute Inhalt des virtuellen Mschinenidentifizierungsregisters
VMID kann durch Software weder gelesen noch geschrieben werden;
b) das virtuelle Mschinenidentifizierungsregister der realen
Maschine ist die Null-Identifizierungsanordnung, d.h. sie
enthält Null;
c) lediglich der ÜMID-Befehl fügt Silben an das virtuelle
Maschinenidentifizierungsregister VMID an;
d) lediglich ein virtueller Maschinenfehler (oder ein Befehl, der die Operation einer virtuellen Maschine beendet) beseitigt
Silben aus dem virtuellen Maschinenidentifizierungsregister VMID.
409851/08S3
In Fig. 5 ist das Flußdiagramm des LVMID-Befehls gezeigt.
Dieses Flußdiagramm veranschaulicht die Operation des LVMID-Befehls, während Realisierungseinzelheiten bezüglich
einer speziellen Wahl des Planes weggelassen sind. Gemäß Fig. 5 wird der LVMID-Befehl 501 aufgerufen, und außerdem
erfolgt eine Bestimmung, ob eine virtuelle Maschinenfähigkeit (VM-Fähigkeit) 502 existiert oder nicht. Dies bedeutet,
daß festgestellt wird, ob diese Maschine die Bildung virtueller Maschinen zuläßt. Wenn keine virtuelle Maschinenfähigkeit
vorhanden ist, dann tritt eine VM-Fähigkeits-Ausnahme 503 auf, ansonsten wird eine VMID-Silbe 504 abgeholt. Sodann
erfolgt die Feststellung, ob eine gerade arbeitende bzw. laufende virtuelle Maschine sich in einer höheren Ebene als
der Ebene Null befindet; dies ist in dem Block 505 veranschaulicht. Ist die Ebene größer als Null, so wird die abgeholte
Silbe (das ist der Operand des LVMID-Befehls) in dem Feld "nächste__Silbe" in dem virtuellen Maschinensteuerblo ck
VMCB 506 gespeichert (in dem Kästchen 506 gemäß Fig. 5 wird das Mehrsilbenregister VMID als Index benutzt, um den».gegenwärtigen
Steuerblock VMCB VMID anzuzeigen; somit ist die Silbe des Operanden des LVMID-Befehls in dem Feld "nächste^
Silbe" des gegenwärtigen virtuellen Steuerblocks VMCB gespeichert). Die Silbe wird dem Mehrsilbenregister VMID angehängt,
und die Ebene wird erhöht (Kästchen 507, 508, 509). Diese neu festgelegte virtuelle Maschine wird nunmehr aktiviert,
und ihre Prozessorregister, ihr Speicherplan, etc. werden von ihrem virtuellen Maschinensteuerblock VMCB 510 geladen.
Das Feld "nächste_Silbe" des aktivierten virtuellen
Maschinensteuerblocks VMCB 511 wird abgeholt. Wenn dieses Feld Null ist, d.h. 0 ist, wie dies im Kästchen 512 angegeben
ist, dann ist im Kästchen 513 der Befehlsabschluß erreicht. Wenn das Feld "nächste_SilbeM nicht Null ist,
409851/0863
dann gelangt man im Flußdiagramm vom Block 508 zum Block und liefert das Verfahren für den Beginn eines Unterbaums
einer virtuellen Maschine, wenn ein Fehler zumindest zwei Ebenen der virtuellen Maschinen übersprungen hat und dennoch
eine virtuelle Maschinenstruktur unter der Ebene existiert, in die der Sprung erfolgte.
Nunmehr wird die Plan-Zusammenstellung näher betrachtet. Die Plan-Zusammenstellungsanordnung bzw. -Zusammensetzungsanordnung
gemäß Fig. 6a und 6b liefert die dynamische Zusammensetzung des fi-Plans (möglicherweise Identität) und
der aktiven f-rPläne auf jeden Zugriff zu einer Hilfsquelle
hin. Der ^-Plan ist bekannt, und die aktiven f-Pläne, das
sind die virtuellen Maschinensteuerblöcke, werden aus dem MehrSilbenregister VMID bestimmt. Das Flußdiagramm gemäß
Fig. 6a veranschaulicht den Plan-Zusammenstellungsmechanismus, während Realisierungseinzelheiten bezüglich der
speziellen Wahl von Plänen weggelassen sind. Wie ersichtlich, nimmt die Zusammenstellungsanordnung einen Prozeßnamen
P an bzw. auf und entwickelt einen realen Hilfsquellennamen R oder ruft einen virtuellen Maschinenfehler (VM-Fehler)
hervor. >
Gemäß Fig. 6a wird die Plan-Zusammensetzungsanordnung 601 aufgerufen, und ein Prozeßname P wird gemäß dem Kästchen
abgeholt. Der jrf-Plan wird dem Prozeß P zugeführt, um φ von
P gemäß dem Kästchen 603 zu erhalten, und ferner wird eine Bestimmung dahingehend getroffen, ob eine gültige Darstellung
vorhanden ist oder nicht, wie dies im Kästchen 6o4 angegeben ist. Wenn eine ungültige Darstellung vorliegt, z.B. dann,
wenn ein Versuch unternommen worden ist, außerhalb der Speichergrenzen Bezug zu nehmen, dann tritt eine Prozeß-
/►09861/0863
ausnähme auf, die eine örtliche Ausnahme darstellt und
die in derselben, zuvor aufgerufenen virtuellen Maschine verarbeitet wird. Demgemäß ist diese Ausnahme für die
privilegierte Software sichtbar,und ferner wird die betreffende Ausnahme von dieser Software verarbeitet. Das
VMID-Register ist nicht beeinflußt. Wenn auf der anderen
Seite die Prozeß-ji-Darstellung bzw.-Abbildung gültig ist
(d.h., daß der Wert φ von P erfolgreich berechnet worden ist), dann wird der Wert φ von P kurzzeitig in dem Internregister-Hilfsquellennamen
R gemäß dem Kästchen 606 abgespeichert. Das VMID-Register wird dann überprüft, um festzustellen,
ob es Null ist. Ist das betreffende Register Null, so wird die Zusammenstellung beendet, und der berechnete
Hilfsquellenname R ist der reale Hilfsquellenname. Dies wird wirksam dadurch vorgenommen, daß der VMID-Wert
(nachgebildet im Internregister V) aufgenommen wird und daß der Ebenenwert (abgebildet im Zwischenspeicherregister L)
aufgenommen wird und daß schließlich festgestellt wird, ob der Ebenenwert L Null ist, wie dies im Kästchen 609 angegeben
ist. Ist der betreffende Ebenenwert Null vorhanden (d.h., daß VMID Null ist), so ist R (zuvor dargestellt) in
der Tat die reale Hilfsquelle 610, und die Zusammenstellung wird gemäß dem Kästchen 611 beendet.
Wenn andererseits eine Null-Ebene nicht vorhanden ist, wie dies aus dem Kästchen 609 folgt, dann ist R nicht die reale
Hilfsquelle, und der f-Plan, der durch die nächste Silbe in dem VMID-Register bezeichnet ist, muß abgegeben werden. Der
f-Plan wird nur dann aus dem virtuellen Maschinensteuerblock VMCB erhalten, der durch den laufenden Inhalt des
VMID-Registers 612 bestimmt ist. Dabei wird eine Feststellung getroffen, ob eine gültige Darstellung erfolgt ist oder nicht,
409851/0863
was durch das Kästchen 613 veranschaulicht ist. Wenn eine
gültige Darstellung bzw. Planbildung erfolgt ist (d.h., daß der Wert f (R), der die reale Hilfsquelle zu sein scheint,
berechnet worden ist), wie dies durch das Kästchen 613 angegeben ist, dann ist es erforderlich zu bestimmen, ob
f (R) die reale Hilfsquelle ist. Dies erfolgt durch Abgabe der Größen in den Blöcken 614, 615, 616 und 609. Demgemäß
wird der dargestellte Wert f, nämlich f(R),vervielfältigt,
als wäre es die reale Hilfsquelle R, wie dies im Kästchen veranschaulicht ist (dies bedeutet, daß R durch f(R) ersetzt
wird). Sodann wird die L-te Silbe von V, der Internregister-Nachbildung von VMID, zu Null gemacht, was im Kästchen 615
angegeben ist, und L, die interne Ebenenzahl . wird auf 1
reduziert, wie dies im Kästchen 616 veranschaulicht ist.
Die Ebene L wird geprüft, um zu bestimmen, ob sie Null ist, wie dies im Kästchen 609 angegeben ist (dies bedeutet, daß
die Maschine nunmehr in der realen Maschinenebene ist). Ist die betreffende Ebene nicht 0, so werden die Vorgänge
gemäß den Blöcken 612 bis 616 wiederholt, bis L=O ist, woraufhin bestimmt wird, daß R die reale Hilfsquelle 610
ist und daß die Zusammenstellung beendet ist. IM die Verarbeitung der Blöcke 612 bis 616 zu veranschaulichen^sei
angenommen, daß der Baumname 1.2.4 in dem VMID-Register
enthalten ist. Das VMID-Register ist in V nachgebildet worden (siehe Block 607), und R ist durch f(R) ersetzt worden
(siehe Block 614). Die L-te Silbe von V ist 4; sie ist nicht 0, wie dies im Block 615 veranschaulicht ist. Demgemäß wird die
Ebene L, die als internes Register festgehalten ist, um 1 reduziert, und der Baumname in V ist nunmehr 1.2, da die
letzte Ebene 4 entfernt worden ist. Nunmehr sind zwei Ebenen vorhanden, und wenn die Ebene L gemäß dem Block 609 geprüft
wird, wird sie 0 sein. Deshalb werden die Vorgänge gemäß den
409851/0863
Blöcken 612 bis 616 wieder wiederholt. Nunmehr besitzt das interne Identifizierungsregister V zwei Ebenen 1.2, und die
L-te Silbe 2 liegt in der zweiten Ebene. Demgemäß wird gemäß dem Block 616 eine weitere Ebene entfernt, und der Name
steht nunmehr als 1 dar. Die Ebene wird überprüft, um festzustellen, ob sie 0 ist, wie dies durch den Block 609 veranschaulicht
ist. Da die betreffende Ebene nicht 0 ist, würde der Vorgang einmal wiederholt werden. Wenn L zu diesem Zeitpunkt
gemäß dem Block 609 überprüft wird, wird L Null sein, und der Prozeß verzweigt sich zum Block 610. Die Zusammenstellung
wird gemäß dem Block 611 beendet.
Zurückkommend auf den Entscheidungsblock 613 gemäß Fig. 6a sei bemerkt, daß in dem Fall, daß eine ungültige Darstellung
vorgelegen hat (was bedeutet, daß die Hilfsquelle nicht lokalisiert worden ist), ein virtueller Maschinenfehler gemäß
dem Block 617 aufgetreten ist. Die in dem internen Identifizierungsregister V benutzte Silbe wird gemäß dem
Block 618 entfernt, und das interne Ebenen-Register L wird gemäß dem Block 619 hinsichtlich seines Inhalts verkleinert.
Durch eine Überprüfung wird festgestellt, ob die neue Ebene die Ebene Null ist, wie dies der Block 620 erkennen läßt.
Wenn L nicht Null ist, muß das Feld "nächsteJSilbe» in dem
gegenwärtigen virtuellen Maschinensteuerblock VMCB auf Null gesetzt werden, wie dies der Block 621 erkennen läßt. In
jedem Fall erfolgt eine Nachbildung des Inhalts des internen Ebenen-Registers L in dem Ebenen-Register gemäß dem Block 622,
und das interne Identifizierungsregister V wird bezüglich seines Inhalts in dem VMID-Register gemäß dem Block 623 nachgebildet.
Ein virtueller Maschinenfehler (VM-Fehler) wird der gerade aktivierten virtuellen Maschine gemäß dem Block
signalisiert.
409851/0863
Fig. 6b zeigt in einem Blockdiagramm einen Teil der verallgemeinerten
Ausführungsform; die betreffende Figur bezieht sich unmittelbar auf die Figuren 5 und 6a und die
obige Beschreibung. Mt dem Bezugszeichen 650 ist die Plan-Zusammenstellungsanordnung
bezeichnet; sie enthält die Hardware-Firmenware und die internen Register 657, 658,
659 und 660, die von der verallgemeinerten Hardware-Virtualisierungsanordnung benutzt werden. Zwischenspeicher-Register
651 und assoziative Register 652 können aus Leistungsgründen in bestimmten speziellen Ausführungsformen verwendet werden (siehe hierzu die weitere Erläuterung
und Fig. 8b). Unter der Steuerung der bestimmten Identifizierungsanordnung in dem VMID-Register 653 nimmt
die Hardware-Virtualisierungsanordnung einen vorgegebenen Prozeßnamen P gemäß dem Block 654 auf, gibt einen gi-Plan
661 und eine Sammlung von f-Plänen 662 ab, und erzeugt
einen realen Hilfsquellennamen 655. Mit dem VMID-Register ist ein Ebenen-Register 656 verknüpft, welches die gegenwärtige
Ebene der aktiven virtuellen Maschine anzeigt, d.h. die Anzahl der gültigen Silben in dem VMID-Register. Das
VMID-Register 653 und das Ebenen-Register 656 sind jeweils so gewählt, daß sie von einer gewissen beliebigen maximalen
Größe sind. Die verallgemeinerte bzw. allgemeine Ausführungsform verwendet folgende bestimmte interne HV-Register: Das V-Register
657, in welchem das VMID-Register 663 nachgebildet wird (Fig. 6a, Bezugszeichen 607), welches dazu herangezogen
wird, f-Plan-Werte bei der Algorithmuszusammenstellung zu
erhalten (Fig. 6a, Bezugszeichen 612); der betreffende Registerinhalt
wird wieder in dem VMID-Register auf einen Fehler hin nachgebildet, wie dies mit 664 veranschaulicht
ist (Fig. 6a, Bezugszeichen 623); das L-Register 659, in welchem das Ebenen-Register 666 nachgebildet wird (Fig. 6a,
409851 /0863
608), welches bei der Algorithmuszusammenstellung herangezogen
wird (Fig. 6a, 609r 616) und welches wieder in dem
Ebenen-Register auf einen Fehler abgebildet wird, wie dies mit 66? angedeutet ist (Fig. 6a, 622}j das R-Register 660,
■welches die besonders zusammengestellten Ergebnisse (Fig. 6a,
606s 614) festhält, bis. die Zusammenstellung beendet ist,
wobei R an das reale Hilfsquellenregister 668 ausgesandt wird (Fig. 6a, 610); das !-Register 658, welches dazu herangezogen
wird, an das YMID-Register 665 Silben während des LVMID-Befehls anzufügen (Fig. 5, 507, 509, 511, 512).
Die obige Plan-Zusammenstellungsanordnung und der für den
Aufruf von f dienende LVMID-Befehl sind in Firmenware und
Hardware unter Heranziehung von typischen, bekannten Rechner Steuereinheiten realisiert (siehe Mikroprogrammierung:
Principles and Practices von Samir S. Husson, veröffentlicht von Prentice Hall, Inc., Englewood Cliffs, New Jersey,
1970). Darüber hinaus wird ein typischer assoziativer Speicher zur Steigerung des Leistungsvermögens verwendet,
wie er an anderer Stelle bereits beschrieben wird (siehe US-Patentanmeldung, Serial No. 283 617 vom 24.8.1972).
Es gibt grundsätzliche Gründe, weshalb Prozesse auf der virtuellen Maschine mit einem Wirkungsgrad laufen können,
der sich dem der realen Maschine nähert. Die meisten derzeitigen Rechen- bzw. Rechnersysteme, die eine Speicherabbildung
bzw. -Darstellung (in dem jzJ-Plan) verwenden, machen
Planungsannahmen hinsichtlich des Programmverhaltens. Diese Annahmen sind ebenso auch auf virtuelle Maschinen anwendbar.
Einige dieser Annahmen, die die Rechnersystemleitung beeinflussen,
sind temporal und spezielle Stellen von Bezug-
409851/086
nahmen durch laufende Programme bzw. Ausführungsprogramme. In Mehrprogrammsystemen wird der Prozeß-Plan nicht sehr
häufig geändert, d.h. die Prozeßlage, und in virtuellen Maschinensystemen wird das VMID-Register nicht sehr häufig
geändert, d.h. die Lage der virtuellen Maschine.
Durch Kombination all dieser Lagebegriffe wird bestimmt, daß rekursive virtuelle Mehrebenen-Maschinen keine bedeutend
unterschiedliche Leistung gegenüber realen Maschinen haben müssen. Eine weitere Möglichkeit zur Angabe dieser
Erkenntnis bzw. Peststellung besteht darin, daß gesagt wird, daß die zeitliche Lage und die räumliche Lage namens-unveränderlich
sind. Unabhängig davon, welcher Speicherblock aufgerufen wird oder wie oft er umbenannt wird (mittels
zusammengesetzter f-Pläne), existiert noch eine wesentliche Möglichkeit der Bezugnahme auf den betreffenden
Speicherblock durch ein laufendes Programm bzw. Ausführungsprogramm. Somit zeigt eine virtuelle Maschine, die durch
eine Plan-Zusammenstellungsanordnung und einen assoziativen Speicher unterstützt bzw. durch derartige Einrichtungen versorgt
wird, eine vergleichsweise Leistung zu der realen Maschine.
Wenn der f-Plan und der j^-Plan hinreichend einfach sind,
dann kann die Assoziationsanordnung nicht benötigt sein. Wenn z.B. f = R-B ist (wobei R-B das Verschiebungs-Grenzen-Register
bedeutet) und wenn φ - Identität bedeutet, dann kann es für das HV-Register ausreichend sein, die "unsichtbaren
Zwischenspeicher-Register" (die im allgemeinen in dem Zentralsteuerwerk enthalten sind) zu versorgen, um
statisch zusammengesetzte R-B-Werte zu erhalten, die lediglich auf eine Ebenen-Änderung hin geändert werden.
"40*851/0863
Wenn φ die Seitenbildung der Aufteilung bzw. Segmentierung
umfasst , dann erfordert die reale Maschine selbst eine Assoziationsanordnung aus Leistungsgründen. Diese Assoziationsanordnung
wird durch die HV-Assoziationsanordnung ersetzt. Wenn der f-Plan einfach ist, z.B. f = R-B, dann
wird die HV-Assoziationsanordnung sehr ähnlich sein; wenn f die Seitenbildung umfaßt, wird die betreffende Assoziationsanordnung
etwas anders sein. Die Wahl, ob das VMID-Register oder das Ebenen-Register als Teil des sogenannten
Suchschlüssels der Assoziationsanordnung eingeschlossen ist, kann aus Preis-Leistungs-Gründen getroffen werden. Die
typische Assoziationsanordnung, die hier zuvor durch Bezugnahme erfaßt worden ist, stellt einen Prozeßnamen P direkt
in einen realen Hilfsquellennamen durch Kurzschluß des obigen Zusammenstellungsmechanismus dar. Dies ist im
einzelnen zu Beginn der Seite 154 einer Dissertation von
R.P. Goldberg unter dem Titel "Architectural Principles
for Virtual Computer Systems", erhältlich an der Harvard Universität, November 1972, angegeben.
Nunmehr seien Ausführungsbeispiele einer Hardware-Virtualisierungsanordnung
näher betrachtet. Wie oben angedeutet, dient die Hardware-Virtualisierungsanordnung gewissermaßen
als Zentralmechanismus im Aufbau eines neuen Rechnersystems
oder als Erweiterung eines existierenden Rechnersystems.
Im letztgenannten Falle ist ein bekanntes Rechnersystem M mit einem vorgegebenen ^-Plan angenommen. Der HV-Aufbau
bzw. der Aufbau der Hardware-Virtualisierungsanordnung, d.h. der zusätzlichen Datenstrukturen, des neuen Befehls
(LVMID), des virtuellen Maschinenfehlers (VM-Fehlers), etc.
legt eine neue Maschine M1 mit einer hinzugefügten eindeuti-
4098S1/09S3
gen Funktionsfähigkeit fest. Die Hardware-Virtualisierungsanordnung
garantiert, daß die neue Maschine M1 eine rekursive virtuelle Maschine ist, die eine Hierarchie von M1 Maschinen
ait M Maschinen als Anschlußknoten im Bedarfsfall zu unterstützen imstande ist.
Um die Operation der Hardware-Virtualisierungsanordnung zu verdeutlichen, werden zwei Anwendungsbeispiele erläutert.
Das erste Beispiel wird um ein typisches System der dritten Generation herum entwickelt, welches System ähnlich dem
Rechnersystem Honeywell 6000 ist. Das zweite Beispiel wird um ein komplexeres Rechnersystem entwickelt, welches dem
Rechner system Honeywell 6180 ähnlich ist.
Im ersten Beispiel sind einige Merkmale eines typischen Aufbaus der dritten Generation vorhanden; die durch die
Hardware-Virtualisierungsanordnung eingeführten Erweiterungen werden angezeigt. Sodann wird die Ausführung gewisser Befehle
veranschaulicht. Das unten angegebene BesjJiel wird
um ein kanonisches Rechner system der dritten Generation,
ähnlich dem Rechner system Honeywell 6000, dem System DEC PDP-10 oder dem IBM System/360, entwickelt. Die herausragendeh
Eigenschaften des Aufbaus bzw. der Architektur sind (1) die Unterscheidung zwischen privilegierter/nicht
privilegierter Betriebsart (Master/Slave, Überwachungsanordnung/Problem,
etc.), und zwar als Teil des Befehlszählers (IC), (2) ein einzelnes Verschiebungs-Grenzen-Register (R-B),
dessen absoluter Inhalt in der privilegierten Betriebsart geladen werden kann, und (3) gewisse feste Speicherplätze
im Hauptspeicher, in denen alte und neue R-B- und Befehlszählerregister auf eine Prozeßausnahme hin gewechselt werden.
409SS1/0S83
Zur Vereinfachung des Beispiels sei angenommen, daß das
R-B-Register aktiv ist, und zwar selbst in der privilegierten Betriebsart. Darüber hinaus sei bezüglich sämtlicher Befehle
angenommen, daß sie in der privilegierten Betriebsart auszuführen sind. Da Betriebsartstörungen örtliche Prozeßausnahmen
sind und in gleicher Weise wie R-B-Störungen behandelt werden, besteht kein Bedarf zur Veranschaulichung
beider Störungen. Die Erweiterung des Beispiels zur Erfassung einer homogenen Behandlung von Eingabe/Ausgabe-V_orgängen
nutzt die Prinzipien, die Hardware und die oben angegebenen Verfahren aus. Es sei jedoch bemerkt, daß in
diesem Beispiel veranschaulicht ist, daß der R-B-Plan der $ ist.
Die Hardware-Virtualisierungsanordnung ist hier durch folgende
Erweiterungen des Aufbaus der dritten Generation realisiert. Die durch die Erweiterung eines Seiten-f-Plans (in
dem Speicherbereich) eingeführten Modifikationen sind dargestellt, und 1000-Wort-Seiten sind angenommen. (Siehe
Fig. 7). Die Modifikationen enthalten
1) eine Datenbank zur Speicherung von f - ein gewisser fester
bekannter Speicherplatz, 704, 714 (Fig. 7) in dem Speicher 700 der Ebene n, zeigt auf die virtuelle
Maschinentabelle (VMTAB) 707, 717, die die virtuellen Maschinen (VMCB1, etc.) der Ebene n+1 beschreibt. In
diesem Beispiel veranschaulicht jeder virtuelle Maschinensteuerblock (VMCB) (708, 710, 718) einen Speicherplan
(Seitentabelle) 709» 711 bzw. 719 und einen Prozessorplan 708a, 710a, 718a. Die Seitenpläne entsprechen den
f-Plänen, z.B. f1 entspricht 709, und f2 entspricht 711.
Der Prozessorplan enthält den Speicher für den Befehls-
400851/006-3
■ - 61 -
2A26A35
zähler und R-B der Ebene n+1. Ferner ist die "nächste__
Silbe" der Ebene n+2 enthalten, jedoch nicht dargestellt; diese Silbe wird gespeichert, wenn die Ebene n+1 einen
LVMID-Befehl abgibt.
2) Ein Mechanismus zum Aufruf von f - ein MehrSilbenregister
VMID 701 und ein LVMID-Befehl, der zuvor erläutert worden
ist, werden hinzugefügt. Wenn eine virtuelle Maschine aktiviert wird, werden ihre Befehlszähler und ihr R-B-Plan
von ihrem Steuerblock (VMCB) 708a, 710a, 718a her geladen.
3) Eine Zusammenstellungsanordnung - eine Hardware-Firmenware-Zusammenstellungsanordnung,
wie sie zuvor erläutert worden ist, unterstützt mit einem Zwischenspeicher und einer Assoziatiönsanordnung (aus Leistungsgründen) sind
hinzugefügt.
4) Die Wirkung auf einen virtuellen Maschinenfehler der Befehlszähler und der R-B-Plan sind in ihrem
virtuellen Maschinensteuerblock gespeichert; die geeignete (n) Silbe (n) wird (werden) aus dem VMID-Register
entfernt, und die Steuerung gelangt zu einem festen bekannten Speicherplatz, wie zu dem virtuellen
Maschinenfehler-Speicherplatz 705, 715 in dem virtuellen Maschinenmonitor VMM.
Es sei darauf hingewiesen, daß dieses Beispiel einen f-Plan
des Typs I veranschaulicht, in welchem Hilfsquellen der Ebene n+1 in Hilfsquellen der Ebene η dargestellt bzw. abgebildet
sind. Somit gelangt der ^-Plan nicht in die Darstellung
hinein bei einem Ebenen-Wert η des Verschiebungs-Grenz-Registers
R-B. Wenn in diesem Beispiel LVMID ausgeführt wird, ist die Verschiebung koinzident Null, braucht
dies jedoch nicht zu sein.
^09851/0063
Nunmehr sei das erste Beispiel näher betrachtet. Fig. 7 zeigt in einem Diagramm den Zustand des Hauptspeichers in
der eine Hardware-Virtualisierungsanordnung aufweisenden Maschine. In Fig. 7 sind ferner die drei Register YMID,
R-B und IC gezeigt, wobei jedoch ihre Werte nicht angegeben sind. Stattdessen zeigt eine nachfolgende Tabelle II sechs
Sätze von Werten für VMID, R-B und IC. Für jeden Satz ist der Befehl, der ausgeführt wird, identifiziert bzw. gekennzeichnet,
und die Bewertungsfolge, die im Zuge der Entwicklung
einer absoluten physikalischen Speicheradresse benutzt wird, ist dargestellt. Der Tabelleneintrag enthält eine
Anzeige einer Prozeßausnahme, eines VM-Fehlers und jeglicher änderung bezüglich des VMID-Registers. Die Werte des Registers
R-B sind dargestellt als r.-b, wobei r die Verschiebung (in tausenden von Worten) bedeutet und wobei b die Größe der
abhängigen Zuteilung (in tausenden von Worten ) bedeutet.
Die sechs Zeilen der Tabelle II sind in drei Sätze unterteilt, nämlich in die Zeilen 1 bis 3, die Zeile 4 und die
Zeilen 5 bis 6. Innerhalb dieser Sätze laufen die Zeilen bis 3 und auch die Zeilen 5 bis 6 aufeinanderfolgend ab.
Gemäß Fig. 7 beginnt der physikalische Hauptspeicher 700
an der Speicherstelle 0 und erstreckt sich über 11k Worte. Eine erste Grejize des Hauptspeichers ist bei 3000 Worten
dargestellt, und danach alle 1000 Wörter bis zu 11 000 Wörtern. Dieser Speicher ist ein Teil des Rechnersystems Honeywell
6000, welches normalerweise das GCOS-Betriebssystem zur
Verarbeitung des g$-Plans benutzt. Neben dem Befehlszähler
IC 703 und dem Verschiebungs-Grenzen-Register R-B 702 ist das virtuelle Maschinenidentifizierungsregister VMID 701
409851/08S3
hinzugefügt. Das VMID-Register 7ÖTTst "fur~die Software
nicht sichtbar (d.h. für Software gibt es keinen Zugriff), während das R-B-Register 702 und das IC-Register 703 für
Software sichtbar sind (d.h. für Software einen Zugriff haben). Die reale Maschine ist mit einem virtuellen Maschinenmonitor
dargestellt, der zwischen den Speicherplätzen 0 und 3K läuft. Eine erste virtuelle Maschine VML ist zwischen den
Speicherplätzen 3K und 8K dargestellt, und eine weitere
virtuelle Maschine VM-1 Λ ist zwischen den Speicherplätzen 3K
und 8K in einer zweiten Ebene dargestellt; diese Maschine weist die virtuelle Maschine VM^ als Ursprung auf. Sine
weitere virtuelle Maschine VMp ist zwischen den Speicherplätzen
8K und 11K dargestellt.
Die örtlichen Prozeßausnahmen für die reale Maschine werden in dem örtlichen Prozeßausnahmespeicherplatζ 706 verarbeitet,
während die örtlichen Prozeßausnahmen für die Maschine VM1 in dem Speicherplatz 716 für die örtliche Prozeßausnahme
(VM1) behandelt bzw. verarbeitet -werden. Diese Speicherplätze
zeigen den Punkt bzw. die Stelle an, zu der ein Programm, das auf den entsprechenden Maschinen läuft, transferiert
werden muß, wenn eine Prozeßausnahme, d.h. eine j^-Plan-Ausnahme, vorhanden ist. In diesem Fall erhält die
privilegierte Software (in diesem Beispiel GCOS) die
Steuerung. Wenn ein Fehler in dem f-Plan auftritt, dann erhält, wie zuvor gezeigt, in ähnlicher Weise der virtuelle
Maschinenmonitor die Steuerung dadurch, daß ein auf einer vorgegebenen virtuellen Maschine laufendes Programm auf
deren in Frage kommenden VM-Fehlerplatzbereich 705, 715
bezogen wird.
^09851/0063
Hardware-Virtualisierungsanordnung Beispiel: Auswertungsfolgen
Zeile TOlID
E-B VMID n. dargestell·
(r-b) IC Auswertungsfolge Ausw.Eblg3 ter Punkt
Null 0-14 2000
1-3 2100
1-3 2101
2-4 1100
1.1 2-2 1100
IC ist 2000
φ (2000) = 2000
hole Befehl:
LVMID 2800
φ (2800) = 2800
füge 1 an VMID an IC ist 2100
φ (2100) = 3100
f., (3100) = 4100
hole Befehl ab:
LADE 128
φ (128) = 1128
f. (1128) = 6128
lade 999
IC ist 2101
φ (2101) = 3101 f (3101) = 4101 hole Befehl ab: Lade 3500
φ (3500) = e
φ (2101) = 3101 f (3101) = 4101 hole Befehl ab: Lade 3500
φ (3500) = e
IC ist 1100
φ (1100) = 3100
f2(3100) = 9100
hole Befehl ab:
Lade 100
φ (100) = 2100
f2 (2100) = t
IC ist 3200
φ (3200) = 3200 £,,(3200) = 4200 hole Befehl ab: LVMID 1300
φ (1300) 1300
fn (1300) = 6300 füge 1 an VMID an IC ist 1100
φ (3200) = 3200 £,,(3200) = 4200 hole Befehl ab: LVMID 1300
φ (1300) 1300
fn (1300) = 6300 füge 1 an VMID an IC ist 1100
φ (1100) = 3100
f. Λ (3100) = 2100
f '-(2100) = 5100
hole Befehl ab:
Lade 500
φ (500) = 2500
f1#1 (2500) = t
409851/0863
0-5 3200
LVMID-Befehl
Ausführung des virtuellen Maschinenbe fehls
Null
Prozeßausnahme in
virtueller
virtueller
Maschine
Virtueller
Maschinen-Fehler und
anderes
VMD
VMD
LTOIID
mit
Rekursion
Rekursion
1.1
Ausführung des
rekursiven Befehls und VM-Fehler
Bezugnehmend auf Fig. 7 und die Tabelle II sei durch die ersten verschiedenen Auswertungsfolgen gegangen. In der
Zeile 1 der Tabelle II ist man bei dem virtuellen Maschinenmonitor, der auf der realen Maschine läuft, d.h. VMID 701
ist Null. Sämtliche Steuerblöcke VMCB sind eingestellt, und ferner ist es an der Zeit, die virtuelle Maschine VM,. zu
aktivieren. Der Wert des Befehlszählers 703 ist 2000. Da
der Wert des R-B-Registers 702 hier 0-1A- ist, wird eine Null zu 2000 addiert (und durch Überprüfung festgestellt,
daß 200 kleiner ist als 1900); ferner wird festgestellt, daß φ (2000) = 2000 ist. Das VMID-Register ist Null. Deshalb ist
der Hilfsquellenname 2000 eine reale Hilfsquelle, und der Befehl (LVMID 2800) in der physikalischen Speicherstelle 2000
(Bezugszeichen 712) gemäß Fig. 7 wird abgeholt. Der R-B-Plan
wird an 2800 abgegeben, d.h., daß der Speicherplatz 2800 lokalisiert wird, wie dies durch das Bezugszeichen 713 veranschaulicht
ist. Hierzu wird der 0-Plan der Maschine verwendet und gegebenenfalls eine 1 abgeholt (der Inhalt im
Speicherplatz 2800), der in das VMID-Register 701 geladen wird.
Die virtuelle Maschine VM. in der Ebene 1 ist nunmehr aktiviert, und ihre Register IC und R-B werden von VMCBl 708a
her geladen. In der Zeile 2 der Tabelle II ist gezeigt, daß IC 703 den Wert 2100 aufnimmt und daß R-B 702 den Wert 1-3
aufnimmt. Sogar dann, wenn der Speicher der virtuellen Maschine VM1 5000 Wörter umfaßt (wie dies aus dessen Seitentabelle
709 ersichtlich ist), begrenzt das R-B-Register diesen aktiven Prozeß auf die Adressierung von lediglich
3000 Wörtern. Diese Grenze war als wahrscheinliche Grenze
durch das Betriebssystem der virtuellen Maschine VM^ angenommen,
da der aktive Prozeß ein normaler Anwender-Prozeß (ohne Monitor) ist.
409851/0863
Aus der Zeile 2 der Tabelle II ergibt sich, daß IC 2100 ist. Um den j^-Plan abzugeben, wird eintausend hinzuaddiert und
durch Überprüfung ermittelt, daß 2100 kleiner ist als 3000. Ferner gelangt man zu 05 (2100) = 3100. Da VMID hier 1 ist
und auf einer virtuellen Maschine gearbeitet wird, muß f^
abgegeben werden, um die virtuelle Hilfsquelle 3100 in ihrem realen Äquivalent darzustellen bzw. abzubilden. Die
Seitentabelle f^ 709, die durch VMCB1 708 angezeigt ist,
zeigt an, daß die virtuelle Seite 3 sich an der Speicherstelle 4000 befindet. Deshalb ist ^(3100) = 4100, wie dies
durch das Bezugszeichen 720 angedeutet ist, und der Befehl LADE 128 wird abgeholt.
Die übrigen Folgen können in derselben Weise unter Heranziehung der Tabelle II ausgewertet werden. In der Zeile 3
ist eine Prozeßausnahme bezüglich der örtlichen Ausnahmeverarbeitung von VM1 veranschaulicht. In der Zeile 5 ist
die Aktivierung der Rekursion veranschaulicht, und in den Zeilen 4 und 6 sind VM-Fehler für die Fehler__yerarbeitungseinrichtungen
ihrer entsprechenden virtuellen Maschinenmonitore veranschaulicht.
Die Zwischenspeicher-Register (Fig. 6b, 651) steigern das Leistungsvermögen, und zwar dadurch, daß sie direkt auf
den absoluten Speicherplatz der aktiven Seitentabellen hinzeigen, z.B. f.. 709. Die assoziativen Register (Fig. 6b, 652)
steigern das Leistungsvermögen dadurch, daß die verschiedenen der erst zuvor zusammengesetzten Plan- bzw. Tabellenwerte,
ρ und f ο φ (ρ) gespeichert werden. Nach Beendigung der
Zeile 2 in Tabelle II werden somit in dem assoziativen Speicher-Darstellungsprozeß Eintragungen des Namens 2000
■09851/0863
in den realen Hilfsquellennamen 4000 vorhanden sein und
des Prozeßnamens 0000 in den realen Hilfsquellennamen 6000. Nach Abschluß der Befehlsabholung der Zeile 6 der Tabelle II
wird ein Eintrag in der assoziativen Speicherdarstellung
bzw. -abbildung vorhanden sein, und zwar betreffend die Überführung des Prozeßnamens 1000 in den realen Hilfsquellennamen
5000.
Es sei darauf hingewiesen, daß ein Seiten aufweisender f-Plan hinzugefügt worden ist, der in der Ebene η für die
Software unsichtbar ist. Die vorher vorhandenen Pläne R-B, φ bleiben in der Ebene η sichtbar. Somit können Betriebssysteme,
die von dem R-B-Plan, z.B. GCOS, unterrichtet werden,
nicht jedoch von dem Seiten-Plan, ohne irgendwelche Änderungen auf der virtuellen Maschine laufen.
Es sei darauf hingewiesen, daß die Hinzufügung eines R-B
f-Planes anstelle eines Seiten aufweisenden f-Planes möglich
ist. Diese neue R-B f-Plan würde sich von dem vorhandenen R-B 5^-Plan unterscheiden und ein Zusatz zu diesem
Plan bedeuten. Er würde außerdem die Rekursionseigenschaften der f-Pläne zu erfüllen haben. In ähnlicher Weise würde sich
ein Seiten aufweisender f-Plan, der einer Maschine hinzugefügt wird, wie der Maschine IBM 360/67, von dem existierenden,
Seiten aufweisenden ^-Plan unterscheiden.
Nunmehr sei das zweite Ausführungsbeispiel näher erläutert. Das zweite Beispiel ist um ein komplizierteres Rechnersystem
entwickelt, wie das Rechnersystem Honeywell 6180. Zum Zwecke dieses Beispiels ist dessen zusätzliche Komplexität gegenüber
einem (oben erwähnten) Rechner der dritten Generation ein segmentierter Adressenraum. Adressen werden in der
409851/0863
Maschine dargestellt als s/d, wobei s die Segmentnummer und d die Versetzung innerhalb des Segments bedeuten. Die normale
Adressenentwicklung benutzt sodann eine Segmenttabelle zur Lokalisierung des jeweiligen Segments.
Die Hardware-Virtualisierungsanordnung ist hier durch dieselben
Erweiterungen wie in dem vorhergehenden Beispiel mit folgenden Ausnahmen realisiert: Der ^-Plan ist ein Unterteilungs-
bzw. Segmentierungsplan, und der f-Plan ist Rr-B. Das zweite Beispiel veranschaulicht lediglich die Unterschiede.
Gemäß Fig. 8a zeigt ein gewisser, festliegender bekannter Speicherplatz 804 in dem Speicher 800 der Ebene η
auf die Tabelle VMTAB 805, die die virtuellen Maschinen (VMCB1, etc.) der Ebene n+1 beschreibt. In diesem Beispiel
veranschaulicht jeder virtuelle Maschinensteuerblock VMCB
(806, 807) einen R-B Speicherplan 808 bzw. 809, der abhängig im übrigen Teil des virtuellen MascMnensteuerblocks
VMCB gespeichert ist. Der Prozessorplan, der Eingabe/Ausgabe-Plan bzw. l/0-Plan und der Zustand sind nicht dargestellt.
Somit ist in dem Hauptspeicherbereich der R-B-Plan der f-Plan. Das VMID-Register 801 und die zuvor erwähnten
LVMID-Befehle werden hinzugefügt. Die Plan-Zusammenstellungsanordnung
und der zuvor erwähnte VM-Fehler-Mechanismus (Fig.6a,
6b) sind hinzugefügt.
jüunmehr sei das dritte Beispiel näher betrachtet. Gemäß
Fig. 8a beginnt ein physikalischer Hauptspeicher 800 an der Speicherstelle 0 und erstreckt sich über 14K Wörter.
Die stark ausgezogenen Grenzlinien des Hauptspeichers trennen die virtuellen Maschinen auf. Somit ist der virtuelle Maschinenmonitor
VMM zwischen 0 und 3K untergebracht, die
409851/0863
virtuelle Maschine VM1 liegt zwischen 3K und 8K, und
die virtuelle Maschine VM2 liegt zwischen 8K und 14K. Die gestrichelten Grenzlinien des Hauptspeichers trennen
die Segmente für einen Prozeß P, der auf der virtuellen Maschine VM1 läuft (siehe hierzu weiter unten).
Wenn mit der Ausführung begonnen wird, ist der Prozeß P^
aktiv, und seine Segmenttabelle 802 wird dazu benutzt, die f$-Plan-Adresse zu entwickeln. Der Befehlszähler (IC) 803
enthält einen Wert von 2/500. Sodann gilt ^(2/500) = 2500, da das Segment zwei an der Speicherstelle 200 innerhalb
des Speichers der virtuellen Maschine VM1 vorhanden ist. Da der Wert von VMID 801 hier 1 beträgt, muß der Plan f^
zum Ergebnis abgegeben werden. Somit ist f,, (2500) = 5500.
Damit wird der Befehl 810 am Speicherplatz 5500 abgeholt und ausgeführt. Dies erfordert eine Adressenentwicklung
des Operandenfeldes, was dazu führt, daß ^(1/20) = 4020, ^(4020) = 7020 erzeugt wird. Somit wird der Inhalt des
Speicherplatzes 7020, wie dies das Kästchen 812 veranschaulicht, geladen. Der Befehlszähler wird in seinem Inhalt
auf 2/501 erhöht, und die Ausführung läuft weiter. Der nächste Befehl befindet sich am Speicherplatz 5501,
wie dies das Kästchen 811 veranschaulicht (jzK2/501) = 2501,
f (2501) = 5501); der betreffende Befehl wird abgeholt. Dieser Befehl 811 erfordert, daß das Operandenfeld 1/2000
dargestellt bzw. abgebildet wird, φ (1/2000) = e bewirkt
jedoch eine Ausnahme, da die Verschiebung, d.h. 2000 größer ist als die Größe des Segments, d.h. 1000. Die Ausnahme bewirkt
eine Übertragung der Steuerung auf die privilegierte Software innerhalb der vorliegenden virtuellen Maschine
VM1. Somit wird das VMID-Register 801 durch die Ausnahme
nicht beeinflußt.
409851/0863
Um die Leistung zu steigern, sind Zwischenspeicher-Register (Fig. 6b, 651) und assoziative Register (Fig. 6b, 652) vorgesehen.
Fig. 8b veranschaulicht den Inhalt der .Assoziationsanordnung 850 nach der Ausführung in diesem Beispiel gemäß
Fig. 8a. Bezüglich Fig. 8b sei bemerkt, daß das Segment 2
ein Suchschlüssel für dessen absoluten physikalischen Speicherplatz unabhängig von der Rekursion ist.
Durch die Erfindung ist also eine Hardware-Virtualisierungsanordnung
für den Ablauf von Prozessen auf einer virtuellen Rechenmaschine unter einem zusammengestellten f- und ^-Plan
geschaffen. Der fli-Plan stellt die Prozeßnamen in Hilfsquellennamen
zusammen, und der f-Plan stellt die virtuellen Hilfsquellennamen in reale Hilfsquellennamen dar. Der ji-Plan
ist ein Intraebeneη-Plan, der (zumindest) für die privilegierte
Software einer gegebenen virtuellen Maschine sichtbar ist und eine Beziehung innerhalb einer einzigen Ebene ausdrückt.
Der f-Plan ist ein Inter-Ebenen-Plan, der für die gesamte Software der virtuellen Maschine sichtbar ist und
der eine Beziehung zwischen den Hilfsquellen zweier benachbarter Ebenen der virtuellen Maschinen hervorruft.
Die Hardware-Virtualisierungsanordnung ermöglicht die Verarbeitung sämtlicher Prozeßausnahmen direkt innerhalb
der laufenden virtuellen Maschine, und zwar ohne einen Eingriff der Software des virtuellen Maschinenmonitors.
Sämtliche Hilfsquellenfehler (VM-Fehler), die von einer virtuellen Maschine erzeugt werden, werden auf den in Frage
kommenden virtuellen Maschinenmonitor geleitet, und zwar ohne die Kenntnis von Prozessen in der virtuellen Maschine
(unabhängig von der Rekurionsebene).
^09851/0863
Im folgenden sind die im vorstehenden benutzten Ausdrücke und deren Bedeutung erläutert.
Glossar
Aufbau bzw. Architektur: Eigenschaften eines Systems, vom
Programmierer aus gesehen, d.h. die Konzeptstruk'tur und das
Funktionsverhalten im Unterschied zur Organisation des Datenflusses und der Steuerungen, dem logischen Aufbau und der
physikalischen Realisierung.
Assoziationsanordnung: Hardwareeinrichtung zur Ausführung einer schnellen Parallelsuche.
Grund-Maschinenschnittstelle: Der Satz sämtlicher softwaresichtbarer
Gegenstände und Befehle, die von dem Hardware- und Firmenware-System direkt unterstützt werden.
Steuerprogramm: Virtueller Maschinenmonitor.
Emulation: Verfahren zur Simulation einer Innenausstattung einer Maschine mit einigem Unterschied.
Ausnahme: Nicht programmierter Sprung, der durch eine Prozeßstorung hervorgerufen wird (im Unterschied zur einem
Fehler); die Steuerung sollte in der laufenden virtuellen Maschine verbleiben.
Familie: Kompatible Reihe von Rechnern mit möglichst wenigen Innenausstattungs-Unterschieden, z.B. IBM 360/40
und IBM 360/67.
409851/0863
Familien-Virtualisierung: Die virtuelle Maschine ist nicht identisch mit der Ausgangsmaschine, sondern ein
Glied derselben Rechnerfamilie; sie kann nicht rekursiv
sein.
FV (Familien-Virtualisierung): Die virtuelle Maschine ist nicht identisch mit der Ausgangsmaschine, jedoch ein Glied
derselben Rechnerfamilie; sie kann nicht rekursiv sein.
f(virtueller Maschinenplan): Zusammenfassung des Planes
zwischen zwei Ebenen einer virtuellen Hilfsquellenzuteilung.
f-Plan: Zusammenstellung des Plans zwischen zwei Ebenen
der virtuellen Hilfsquellenzuteilung.
φ-Plaui: Zusammenstellung bzw. Abstraktion eines Plans
von Hilfsquellennamen aus Prozeßnamen, unterstützt durch Hardware und manipuliert durch Betriebssystem.
^(Prozeß-Plan): Abstraktion eines Planes von Hilfsquellennamen
aus Prozeßnamen, unterstützt durch Hardware und manipuliert durch Betriebssystem.
Erzeugung: Aufbaucharakteristiken der Hauptmaschinen der betreffenden Generation (hier bezieht sich der Begriff
Generation stets auf die Architektur bzw. den Aufbau, niemals auf die physikalische Realisierung, etc..
HV(Hardware-Virtualisierungsanordnung): Sammelbegriff
für die Hardware-Firmenware-Anlage, die direkt wirksam virtuelle Maschinen unterstützt.
409851/0863
Hardware-Virtualisierungsanordnung: Sammelbegriff für die Hardware-Firmenware-Anlage bzw. -Ausführung, die direkt
virtuelle Maschinen wirksam unterstützt.
HVM: Hybride virtuelle Maschine.
Ausgangsmaschine: Bloße Maschine, auf der der virtuelle Maschinenmonitor läuft.
Ausgangsbetriebssystem: Betriebssystem, unter dem ein virtueller Maschinenmonitor des Typs II läuft.
Hybride virtuelle Maschine: Virtuelle Maschine, in der sämtliche Befehle, die innerhalb der meist-privilegierten
Schicht abgegeben werden, software-interpretiert sind und in der sämtliche übrigen Befehle direkt ausgeführt
werden.
II-Generation: Architekturen der zweiten Generation,
typisch für IBM 7090.
III-Generation: Architekturen der dritten Generation,
typisch IBM 360.
IV-Generation: Architekturen der vierten Generation mit einer in Firmenware ausgeführten ausführlichen,
reichen Prozeßstruktur.
Interne Ausgestaltung: Software-sichtbare Definition eines Systems, d.h. die- Architektur.
409851/0863
Intra-Ebenen-Plan: Plan innerhalb einer virtuellen Maschinenebene,
der die (Schicht-)Struktur innerhalb der Ebene festlegt: Der Plan kann für die privilegierte Software der
Ebene sichtbar sein, z.B. der ^-Plan.
Inter-Bbenen-Plan:(VM-Plan) Plan zwischen zwei Ebenen
virtueller Maschinen, z.B. Ebene n+1 zu Ebene n, der für die höhere Ebene unsichtbar ist, z.B. die Ebene n+1, z.B.
der f-Plan.
Unsichtbar: Unfähig, in Software ermittelt zu werden.
Schicht: Beschränkte Zugriffsstruktur (innerhalb einer
Ebene), wie Master/Slave-Betriebsarten oder Ringe.
Ebene: Anzahl von f-Plänen, die aufeinanderfolgend abgegeben
werden müssen, um einen virtuellen Hilfsquellennamen in einen realen Hilfsquellennamen darzustellen:
Außerdem entspricht dies der Anzahl von Silben in VMID: Somit liegt die reale Maschine in der Ebene 0.
Natürliche Betriebsart: Operation des Systems, z.B. der Zentraleinheit, mit bevorzugtem Befehlscode, nicht
Emulation.
Null-Identifizierungsanordnung: Null. Befehlscode: Instruktionssatz.
PCB: Prozeßsteuerblock, Prozeßzustand wird in Systembasis gehalten»
409851/0863
P-Name: Vom Prozeß benutzter Name, um .auf eine gewisse
Einheit Bezug zu nehmen.
Stammwörter: Pseudobefehlsanforderung, etc..
Prozeß-Plan: Abstraktion des Plans aus Prozeßnamen, z.B. Segmentnummer, für Hilfsquellennamen, z.B. Speicherplatz,
Privilegierter Befehl: Befehl, der lediglich in der privilegierten
Betriebsart (richtig) abläuft bzw. ausgeführt wird; das ist der Überwachungszustand, Ring Null.
R-Name: Realer Hilfsquellenname.
R-B: Verschiebungs-Grenze-Form der Adressenverschiebung, wie im System DEC PDP-1O.
Hilfsquellen-Plan: Virtueller Maschinenplan, f-Plan.
Ring: In Schichten vorgesehenes Schutzsystem, Verallgemeinerung
des Master/Slave-Betriebs, Überwachungs/Problem-Zustand.
Ring 0: Der privilegierteste Ring.
Wurzel: Ursprungszeiger in dem Speicher der virtuellen Maschine.
RPW: Laufende Prozeßwörter, in Systembasis einer typischen Maschine der vierten Generation ist eine Identifizierungseinrichtung für aktiven Prozeß vorgesehen.
409851/0863
SV: Selbst-virtualisierend, rekursive virtuelle Haschine.
Selbst-virtualisierend: Der Prozessor des virtuellen
Rechnersystems ist mit der Ausgangsmaschine identisch, der rekursiven virtuellen Maschine.
Semaphor: Einrichtung für Interprozeß-Nachrichtenverbindung
in einem typischen Rechnersystem der vierten Generation.
Überwachungsanforderung:(SVC) Befehl, der dazu benutzt wird, eine Hachrichtenverbindving mit dem Betriebssj^stem herzustellen.
Systembasis: Datenbank für einen direkten Zugriff durch Firmenware (und durch privilegierte Software aktualisiert)
eines typischen Systems der vierten Generation zur Unterstützung der Ausführung des Prozeßmodells.
Virtuelle Maschine: Ein Hardware-Software-Duplikat eines real existierenden Rechnersystems, in welchem ein statistisch
vorherrschender Untersatz der virtuellen Prozessorbefehle direkt auf dem Ausgangs- bzw. Wirts-Prozessor abläuft.
Virtuelles Maschinenmodell: Zusammenstellung eines abstrakten Prozeßplans und eines Hilfsquellenplans, um das Laufen
eines Prozesses auf einem virtuellen Rechnersystem auszudrücken.
Visualisierung: Handlung der Erzeugung/des Ablaufs virtueller
Maschine(n).
409851 /0863
Virtual!sierbar: Fähigkeit, virtuelle (selbstvirtualisierende)
Maschine(n) zu bilden.
VM-Fehler: Hilfsquellenfehler durch virtuelle Maschine
zu VMM.
VM-Ebene-Fehler: VM-Fehler.
VM-Plan: Abstraktion eines Plans zwischen zwei Ebenen
virtueller Hilfsquellenzuteilung (vollständig unterschiedlich vom Prozeß-Plan), f-Plan.
VM-Rekursionseigenschaft: In selbstvirtualisierender virtueller Maschine, Fähigkeit,- ein VI-M auf der virtuellen
Maschine VM laufen zu lassen.
BOS: Grundbetriebssystem/360.
CMS: Cambridge Monitorsystem. CPU: Zentraleinheit.
OS/ASP: OS/360 angebrachter Unterstützungprozessor. DOS: Plattenbetriebssystem/360.
DOS-APL: DOS-APL/36O (eine Programmiersprache). ETSS: Experimentelles Zeitteilsysteni (HITAC). I/O: Eingabe/Ausgäbe.
DOS-APL: DOS-APL/36O (eine Programmiersprache). ETSS: Experimentelles Zeitteilsysteni (HITAC). I/O: Eingabe/Ausgäbe.
ITS: Inkompatibles Zeitteilsystem bzw. Zeitmultiplexsystem. MTS: Michigan Technisches System.
TOS: Bandbetriebssystem/560.
TOS/TDOS: Bandbetriebssystem/Band-Platten -Betriebssystem
(HITAC).
409851/08 6 3
Typ I SV: Band I, selbstvirtualisierende virtuelle Haschine.
Typ I VMM: Der virtuelle Maschinenmonitor (VMK) läuft auf
einer bloßen Wirts-Maschine. Ϊ2Φ II VMi: VMM läuft auf einer erweiterten Wirts-Maschine
unter dem Wirts-Betriebssystem.
UHMPS: Mehrprogrammsystem der Universität von Michigan,
VCS: Virtuelles Rechnersystem.
VKCB: Virtueller Maschinensteuerblock in der Systembasis bzw. Systembank der Hardware-Virtualisierungsanordnung liefert den f-Plan für die virtuelle Maschine. VMTAB: Virtuelle Maschinentabelle in der Systembank der Hardware-Virtualisierungsanordnung enthält Zeiger auf virtuelle Maschinensteuerblöcke für virtuelle Maschinen.
VKCB: Virtueller Maschinensteuerblock in der Systembasis bzw. Systembank der Hardware-Virtualisierungsanordnung liefert den f-Plan für die virtuelle Maschine. VMTAB: Virtuelle Maschinentabelle in der Systembank der Hardware-Virtualisierungsanordnung enthält Zeiger auf virtuelle Maschinensteuerblöcke für virtuelle Maschinen.
VH: Virtuelle Maschine (hier niemals virtueller Speicher).
VMID: Virtuelles Maschinenidentifizierungsregister in der Hardware-Virtualisierungsanordnung zeigt aktive
virtuelle Maschine an.
LVHID: Lade VMID-Befehl in Hardware-Virtualisierungsanordnung,
die nächste Silben an VMID-Register anhängt und die virtuelle Maschine abfertigt.
VMM: Virtueller Maschinenmonitor, Software, die vermittelt
zwischen der virtuellen Maschine und dem Wirt. VMTSS: Virtuelles Maschinen-Zeitteilsystem bzw. -Zeitmultiplexsystem.
V-Name: Virtueller Hilfsquellenname.
V-Name: Virtueller Hilfsquellenname.
409851/0863
Claims (1)
- PatentansprücheHardwäre-Virtualisierungsanordnung für den Ablauf von Prozessen in einer virtuellen Rechenmaschine, .die in einem Allzweckrecnner läuft, unter Verwendung eines ..virtuellen Maschinenmonitors, dadurch gekennzeichnet,a) daß ein ^-Plan vorgesehen ist, der Prozeßnamen in Hilfsquellennamen darzustellen gestattet,b) daß ein f-Plan vorgesehen ist, der virtuelle Hilfsquellennamen in reale Hilfsquellennamen darzustellen gestattet, undc) daß eine Plan-Zusammenstellungsanordnung vorgesehen ist, die zur Bildung eines allgemeinen zusammengesetzten Plans den ^-Plan und den f-Plan zusammensetzt.2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der ^-Plan ein für die Betriebssystemsoftware sichtbarer Plan ist und daß der f-Plan ein für die gesamte Software der virtuellen Maschine unsichtbarer Plan ist.3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß der ^-Plan ein Intra-Ebenen-Plan ist, der die Beziehung zwischen den Hilfsquellen in einer einzigen Ebene festlegt,und daß der f-Plan ein Inter-Ebenen-Plan ist, der die Beziehung zwischen den Hilfsquellen zweier benachbarter Ebenen der virtuellen Maschinen festlegt.4. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß sämtliche, von einer virtuellen Maschine erzeugte Hilfsquellenfehler (VM-Fehler) einem in Frage kommenden virtuellen Maschinenmonitor (VMM) ohne die Kenntnis von Prozessen in der virtuellen Maschine zugeleitet werden.409851/08635. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß ein Firmenware/Hardware-Befehl zur Aktivierung des f-Plans vorgesehen ist.6. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der ^-Plan ein Verschiebungs-Grenzen-Register enthält und daß der f-Pian einen virtuellen Maschinensteuerblock (VMCB) enthält, der irgendeine virtuelle Maschine aus einer Vielzahl virtueller Maschinen zu identifizieren erlaubt, die in einem Allzweckrechner betrieben sind.7. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß virtuelle Maschinentabellen (VMTAB) vorhanden sind, die irgendeinen virtuellen Maschinensteuerblock aus einer Vielzahl virtueller Maschinensteuerblöcke adressieren.8. Anordnung nach Anspruch 7, dadurch gekennzeichnet, daß unter einer festen bekannten Adresse ein Wurzel-Adressenraum untergebracht ist, der zumindest einen virtuellen Maschinentabellenzeiger zur Adressierung der virtuellen Maschinentabellen (VMTAB) aufweist.9. Anordnung nach Anspruch 8, dadurch gekennzeichnet, daß der virtuelle Maschinensteuerblock (VMCB)a) einen Speicherplan zur Herbeiführung der Beziehung zwischen den Hilfsquellen innerhalb des Hauptspeichers,b) einen Prozessor-Plan zur Herbeiführung der Beziehung zwischen den Hilfsquellen innerhalb der Zentraleinheit (CPU) oder innerhalb der Mehrfach-Zentraleinheit,409851/0883c) einen Eingabe/Ausgabe-Prozessor-Plan zur Herbeiführung der Beziehung zwischen den Hilfsquellen innerhalb der Eingabe/Ausgabe undd) einen Zustandsanzeiger für die Anzeige des gegenwärtigen Zustande der virtuellen Maschine enthält, die mit einem gegebenen virtuellen Maschinensteuerblock (VMCB) verbunden ist.10. Anordnung nach Anspruch 9> dadurch gekennzeichnet, daß der Speicher-Plan eine Seitentabelle adressiert, die für die Adressierung irgendeiner Seite einer Vielzahl von Seiten der virtuellen Maschine dient.11. Hardware-Virtualisierungsanordnung, die Prozesse, welche durch einen Satz von Prozeßnamen P= (p , p. ... p.) festgelegt sind, auf einer rekursiven virtuellen Rechenmaschine unter der Steuerung eines virtuellen Maschinenmonitors ablaufen läßt, wobei die virteulle Maschine einen Satz von virtuellen Hilfsquellen V = (ν , v.... ν ) aufweist und in einer Ausgangsmaschine läuft, die einen Satz von realen Hilfsquellen R = (r , r. .... r ) aufweist, wobei die Sätze V und R die Adressen sämtlicher Speichernamen, adressierbarer Prozessor-Register und Bingabe/Ausgabe-Einrichtungen enthalten, insbesondere nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet,a) daß ein Prozeßplan φ vorgesehen ist, der die Prozeßnamen den realen Hilfsquellennamen während der Prozeßausführung zuordnet, derart, daß φ: P —> R ll|ej ist, wobei φ der für die Software sichtbare Hardware-Plan des Betriebssystems ist, der den Satz P von409851/0883Prozessen in den Satz R in Verbindung mit {ej darstellt, wobei e der Vorgang ist, der das Auftreten einer Ausnahme anzeigt, und wobei ein Element χ des Satzes von Prozeßnamen R einem Element y des Satzes von Hilfsquellen R zugeordnet ist, derart, daß^(x) = y ist, wenn y der reale Hilfsquellenname ist, der dem virtuellen Hilfsquellennamen χ entspricht, ansonsten ist φ(χ) = e, wenn χ keine entsprechende reale Hilfsquelle zu dem betreffenden Zeitpunkt zugeteilt ist,b) daß ein rekursiver Hilfsquellenplan f mit rekursiven Ebenen und f-Plänen (f Λ, f...... f. Λ Λ) zur Zu-Ordnung von virtuellen Hilfsquellennamen zu realen Hilfsquellennamen vorgesehen ist, derart, daßf: V - RUt ist, wobei f der Hilfsquellen-Plan fürdie Darstellung des Satzes V von virtusIlen Hilfsquellen in den Satz R in Vereinigung mit t bedeutet, wobei t der Vorgang ist, der das Auftreten eines Fehlers anzeigt, und wobei ein Element y des Satzes von virtuellen Hilfsquellen V einem Element ζ des Satzes von realen Hilfsquellen R zugeordnet ist, derart, daßf(y) ζ= ζ ist, wenn ζ die reale Hilfsquelle ist, die der virtuellen Hilfsquelle y entspricht, ansonsten ist f(y) = t, wenn y zu dem betreffenden Zeitpunkt keine entsprechende reale Hilfsquelle zugeteilt ist, undc) daß eine Plan-Zusammenstellungseinrichtung vorgesehen ist, die den ^-Plan mit dem rekursiven f-Plan Cf1 ,f. „ , ... f„ . A zusammensetzt zu 1.1 1.1 1409851/Ö8S3wobei ο der herkömmliche Funktionszusammensetzungsoperator in der Mathematik bedeutet.12. Anordnung nach Anspruch 11, dadurch gekennzeichnet, daß eine Datenbank vorgesehen ist, die derart gespeichert ist, daß sie für die virtuelle Maschine unsichtbar ist, und die die f-Plan-Beziehung zwischen zwei benachbarten Ebenen der virtuellen Maschinenhilfsquellen wiedergibt.13. Anordnung nach Anspruch 12, dadurch gekennzeichnet, daß die Datenbank ferner zumindest einen virtuellen Maschinensteuerblock (VMCB) enthält, der eine Information zur Darstellung der Hilfsquellen der dem virtuellen Maschinensteuerblock (VMCB) zugeordneten virtuellen Maschine enthält, daß eine virtuelle Maschinentabelle (VMTAB) vorgesehen ist, die feiger zur Adressierung bestimmter virtueller Maschinensteuerblöcke enthält und die einen bestimmten festen Adressenraum aufweist, in welchem zumindest ein Zeiger zur Adressierung der virtuellen Maschinentabelle (VMTAB) gespeichert ist.14. Anordnung nach.Anspruch 13, dadurch gekennzeichnet, daß der virtuelle Maschinensteuerblock (VMCB) fernera) einen Speicherplan, der die Beziehung zwischen den Hilfsquellen innerhalb des Hauptspeichers herstellt,b) einen Prozessor-Plan, der die Beziehung zwischen den Hilfsquellen innerhalb des Zentralsteuerwerks (CPU) herstellt,c) einen Eingabe/Ausgabe-Prozessorplan zur Herstellungder Beziehung zwischen den Hilfsquellen innerhalb der Eingabe/Ausgabe undd) einen Zustandsanzeiger enthält, der den gegenwärtigen Zustand einer gegebenen virtuellen Maschine anzeigt, die einem gegebenen virtuellen Maschinensteuerblock (VMCB) zugeordnet ist.15. Anordnung nach Anspruch 13, dadurch gekennzeichnet, daß ein virtuelles Maschinenidentifizierungsregister (VMID) vorgesehen ist, welches einen virtuellen Maschinen-Baumnamen der gerade laufenden virtuellen Maschine speichert, und daß die Silben des Baumnamens sämtliche f-Pläne identifizieren, die zur Lieferung eines realen Hilfsquellennamens eine Zusammenstellung erfordern.16. Anordnung nach Anspruch 15, dadurch gekennzeichnet, daß ein LVMID-Befehl zum Anhängen von Baumnamen-Silben an das virtuelle Maschinenidentifizierungsregister (VMID) und zum Aufruf des f-Plans abgegeben wird.17. Anordnung nach Anspruh 15, dadurch gekennzeichnet, daß der absolute Inhalt des virtuellen Maschinenidentifizierungsregisters (VMID) durch Software weder lesbar noch schreibbar ist.18. Anordnung nach Anspruch 17, dadurch gekennzeichnet, daß mit der Plan-Zusammenstellungseinrichtung ein assoziativer Speicher (652) verbunden ist, der erst zuvor· benutzte zusammengestellte f- und ^-Pläne speichert, wobei Prozeßnamen P direkt in entsprechende reale Hilfsquellen-A09851/0863namen R unter Kurzschluß des Zusammenstellungsmechanismus dargestellt werden.19. Hardware-Virtualisierungsanordnung, die Prozesse auf einer virtuellen Rechenmaschine ablaufen läßt, welche unter der Steuerung eines virtuellen Maschinenmonitors eines Allzweckrechners läuft, wobei der virtuelle Maschinenmonitor eine Vielzahl von privilegierten Softwarezentren unterstützt, die jeweils eine Vielzahl von privilegierter Software enthalten, welche eine Vielzahl von Anwenderprogrammen unterstützt, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet,a) daß ein virtuelles Maschinenidentifizierungsregister (VMID) vorgesehen ist, welches den gerade unter Ausführung stehenden virtuellen Maschinenbaumnamen speichert,b) daß ein Befehlszähler (IC) vorgesehen ist, der den gegenwärtigen Befehl des gerade ausgeführten Programms speichert,c) daß mit dem Befehlszähler (IC) ein Verschiebungs-Grenzen-Register (R-B) verbunden ist, welches einen g$-Plan speichert für die Darstellung von Prozeßnamen in Hilfsquellennamen, unde) daß mit dem virtuellen Maschinenidentifizierungsregister (VMID) und dem Verschiebungs-Grenzen-Register (R-B) eine Plan-Zusammenstellungseinrichtung verbunden ist, die den ^-Plan und den f-Plan zusammenfaßt und Prozeßnamen zu realen Hilfsquellennamen zuordnet sowie virtuelle Hilfsquellennamen zu realen Hilfsquellennamen.409851/086320. Anordnung nach Anspruch 19» dadurch gekennzeichnet, daß ein virtueller Maschinenfehlermechanismus vorgesehen ist, der eine Steuerung eines gerade ausführenden Programms in dem Fall erhält, daß der f-Plan ausfällt, einen Hilfsquellennamen in einer Ebene in einen Hilfsquellennamen in einer (numerisch) niederen Ebene darzustellen.21. Anordnung nach Anspruch 19, dadurch gekennzeichnet, daß ein örtlicher Prozeßausnahme-Speicherplatz vorgesehen ist, der die Steuerung eines gerade ausführenden Programms in dem Fall erhält, daß der ji-Plan ausfällt, einen Prozeßnamen in einem Hilfsquellennamen darzustellen.22. Hardware-Virtualisierungsanordnung nach einem der Ansprüche 1 bis 21, dadurch gekennzeichnet, daß ein durch Hardware unterstützter Mechanismus vorgesehen ist der virtuelle Maschinen in irgendeinem Rechensystem laufen läßt.23. Hardware-Virtualisierungsanordnung nach einem der Ansprüche 1 bis 21, dadurch gekennzeichnet, daß ein durch Firmenware unterstützter Mechanismus vorgesehen ist, der virtuelle Maschinen in irgendeinem Rechensystem laufen läßt.24. Hardware-Virtualisierungsanordnung nach einem der Ansprüche 1 bis 21, dadurch gekennzeichnet, daß ein durch Firmenware/Hardware unterstützter Mechanismus vorgesehen ist, der eine virtuelle Maschine in irgendeinem Rechensystem laufen läßt.409851/086325. Hardware-Virtualisierungsanordnung, die Prozesse in einer virtuellen Rechenmaschine ablaufen läßt, die in einem Allzweckrechner arbeitet und die einen virtuellen Maschinenmonitor aufweist, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet,a) daß ein j^-Plan vorgesehen ist, der Prozeßnamen in Hilfsquellennamen darzustellen gestattet,b) daß ein f-Plan vorgesehen ist, der virtuelle Hilfsquellennamen in andere virtuelle Hilfsquellennamen darzustellen gestattet, undc) daß eine Plan-Zusammenstellungseinrichtung vorgesehen ist, die den ^-Plan und den f-Plan zur Bildung eines allgemeinen zusammengesetzten Plans zusammenzustellen gestattet.409.851/0863Leersei
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US36579573A | 1973-05-31 | 1973-05-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2426435A1 true DE2426435A1 (de) | 1974-12-19 |
DE2426435C2 DE2426435C2 (de) | 1986-06-05 |
Family
ID=23440398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19742426435 Expired DE2426435C2 (de) | 1973-05-31 | 1974-05-31 | Rechenanlage |
Country Status (7)
Country | Link |
---|---|
JP (1) | JPS5820066B2 (de) |
CA (1) | CA1015063A (de) |
DE (1) | DE2426435C2 (de) |
FR (1) | FR2232010B1 (de) |
GB (1) | GB1431423A (de) |
IT (1) | IT1013315B (de) |
NL (1) | NL7407274A (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2948285A1 (de) * | 1978-12-01 | 1980-06-04 | Fujitsu Ltd | Adressensteuersystem fuer softwaresimulation |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS601661B2 (ja) * | 1978-02-23 | 1985-01-16 | 株式会社東芝 | 情報処理装置 |
JPS6019536B2 (ja) * | 1978-02-23 | 1985-05-16 | 株式会社東芝 | 情報処理装置 |
JPS55112651A (en) * | 1979-02-21 | 1980-08-30 | Fujitsu Ltd | Virtual computer system |
JPS56153456A (en) * | 1980-04-28 | 1981-11-27 | Mitsubishi Electric Corp | Testing method for program |
JPS5856058A (ja) * | 1981-09-29 | 1983-04-02 | Fujitsu Ltd | 仮想計算機システムcp常駐ボリユ−ムのdasd共用管理方式 |
US4975836A (en) * | 1984-12-19 | 1990-12-04 | Hitachi, Ltd. | Virtual computer system |
US4764864A (en) * | 1985-04-04 | 1988-08-16 | Nec Corporation | Circuit arrangement capable of improving overhead of a control program on interrupting into a virtual machine |
JPH0428095Y2 (de) * | 1986-11-25 | 1992-07-07 | ||
US8387049B2 (en) | 2005-07-15 | 2013-02-26 | International Business Machines Corporation | Facilitating processing within computing environments supporting pageable guests |
CN102770846B (zh) | 2010-12-21 | 2016-08-31 | 松下电器(美国)知识产权公司 | 虚拟计算机系统控制装置及虚拟计算机系统控制方法 |
JP5981984B2 (ja) | 2012-02-22 | 2016-08-31 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 仮想計算機システム、秘匿情報保護方法及び秘匿情報保護プログラム |
GB2563889B (en) * | 2017-06-28 | 2019-10-09 | Advanced Risc Mach Ltd | Realm identifiers for realms for memory access control |
GB2563884B (en) | 2017-06-28 | 2020-01-08 | Advanced Risc Mach Ltd | Exception return instruction |
-
1974
- 1974-05-30 IT IT5130674A patent/IT1013315B/it active
- 1974-05-30 GB GB2393974A patent/GB1431423A/en not_active Expired
- 1974-05-30 NL NL7407274A patent/NL7407274A/xx not_active Application Discontinuation
- 1974-05-30 FR FR7418873A patent/FR2232010B1/fr not_active Expired
- 1974-05-30 CA CA201,292A patent/CA1015063A/en not_active Expired
- 1974-05-31 DE DE19742426435 patent/DE2426435C2/de not_active Expired
- 1974-05-31 JP JP49061028A patent/JPS5820066B2/ja not_active Expired
Non-Patent Citations (1)
Title |
---|
IBM System Journal, No. 2, 1972, S. 99-149 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2948285A1 (de) * | 1978-12-01 | 1980-06-04 | Fujitsu Ltd | Adressensteuersystem fuer softwaresimulation |
Also Published As
Publication number | Publication date |
---|---|
DE2426435C2 (de) | 1986-06-05 |
AU6894074A (en) | 1975-11-20 |
JPS5023146A (de) | 1975-03-12 |
GB1431423A (en) | 1976-04-07 |
FR2232010A1 (de) | 1974-12-27 |
NL7407274A (de) | 1974-12-03 |
JPS5820066B2 (ja) | 1983-04-21 |
CA1015063A (en) | 1977-08-02 |
IT1013315B (it) | 1977-03-30 |
FR2232010B1 (de) | 1978-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112012000693B4 (de) | Ausführen einer Vielzahl von Instanzen einer Anwendung | |
DE2426435A1 (de) | Hardware-virtualisierungsanordnung | |
DE69910826T2 (de) | Rechnersystem mit rekonfigurierbarer programmierbarer logik-vorrichtung | |
DE102007025397B4 (de) | System mit mehreren Prozessoren und Verfahren zu seinem Betrieb | |
DE3808167C2 (de) | Computersystem mit modusunabhängiger Adressierung | |
DE10393920T5 (de) | Verfahren und Systeme zur Steuerung virtueller Maschinen | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE2417795C2 (de) | Datenverarbeitungsanlage | |
DE2720578A1 (de) | Rechnersystem mit mehrprogrammbetrieb/mehrprogrammverarbeitung sowie verfahren zum betrieb eines solchen rechnersystems | |
DE4026912A1 (de) | Computersystem | |
DE10393727T5 (de) | Prozessor-Cache-Speicher als RAM zur Ausführung von Boot-Code | |
DE10238566A1 (de) | Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf | |
DE2716051A1 (de) | Datenverarbeitungsanlage, bei der zum speicherzugriff schluessel verwendet werden | |
DE69727177T2 (de) | Emulation von asynchronen Signalen mit Verzweigungsmechanismus | |
DE2101949A1 (de) | Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage | |
EP0500973A1 (de) | Initialisierungsroutine im EEPROM | |
DE102018114322A1 (de) | Architektur und Dienste zur Unterstützung der rekonfigurierbaren Synchronisation in einem Multiprozessorsystem | |
DE112019002336T5 (de) | Speicherpoolzuordnung für ein mehrkern-system | |
DE10329680A1 (de) | Prozessorarchitektur für exakte Zeigeridentifizierung | |
DE112017008307T5 (de) | Systeme und verfahren zur effizienten unterbrechung von virtuellen maschinen | |
DE4040992C2 (de) | Datenverarbeitungssystem | |
DE2717700C2 (de) | Speicherzugriffsanordnung | |
DE102007015507B4 (de) | Prozessor mit einem ersten und einem zweiten Betriebsmodus und Verfahren zu seinem Betrieb | |
DE10146516A1 (de) | Programmgesteuerte Einheit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US |
|
8339 | Ceased/non-payment of the annual fee |