DE102006061939A1 - Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast - Google Patents

Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast Download PDF

Info

Publication number
DE102006061939A1
DE102006061939A1 DE102006061939A DE102006061939A DE102006061939A1 DE 102006061939 A1 DE102006061939 A1 DE 102006061939A1 DE 102006061939 A DE102006061939 A DE 102006061939A DE 102006061939 A DE102006061939 A DE 102006061939A DE 102006061939 A1 DE102006061939 A1 DE 102006061939A1
Authority
DE
Germany
Prior art keywords
access
logic
guest
type
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102006061939A
Other languages
English (en)
Other versions
DE102006061939B4 (de
Inventor
Gilbert Portland Neiger
Andrew V. Hillsboro Anderson
Steven M. Hillsboro Bennett
Rajesh Sankaran Portland Madukkarumukumana
Richard A. Hillsboro Uhlig
Rajesh S. Parthasarathy
Sebastian Hillsboro Schoenburg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102006061939A1 publication Critical patent/DE102006061939A1/de
Application granted granted Critical
Publication of DE102006061939B4 publication Critical patent/DE102006061939B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

Es werden Ausführungsformen von Vorrichtungen, Verfahren und Systemen offenbart, mit denen Gäste auf speicherabgebildete Vorrichtungen zugreifen können. In einer Ausführungsform enthält eine Vorrichtung eine Beurteilungslogik und eine Ausstiegslogik. Die Beurteilungslogik hat die Aufgabe, in Reaktion auf einen Versuch eines Gastes, unter Verwendung einer Speicheradresse, die auf die Vorrichtung abgebildet ist, und auf der Grundlage einer Zugriffsart auf eine Vorrichtung zuzugreifen, zu bestimmen, ob der Zugriff gestattet wird. Die Ausstiegslogik hat die Aufgabe, die Kontrolle an einen Host zu übergeben, wenn die Beurteilungslogik bestimmt, daß der Zugriff nicht gestattet wird.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • 1. Gebiet
  • Die vorliegende Offenbarung betrifft das Gebiet der Informationsverarbeitung und insbesondere das Gebiet der Virtualisierung von Ressourcen in Informationsverarbeitungssystemen.
  • 2. Beschreibung des Standes der Technik
  • Generell ermöglicht es das Konzept der Virtualisierung von Ressourcen in Informationsverarbeitungssystemen mehreren Instanzen eines oder mehrerer Betriebssysteme (jeweils ein "OS" – Operating System"), auf einem einzelnen Informationsverarbeitungssystem zu laufen, auch wenn jedes Betriebssystem die Aufgabe hat, die vollständige, direkte Kontrolle über das System und seine Ressourcen auszuüben. Die Virtualisierung wird in der Regel unter Verwendung von Software (zum Beispiel eines Virtual Machine Monitor oder "VMM) implementiert, um jedem OS eine "virtuelle Maschine" ("VM") anzubieten, die virtuelle Ressourcen besitzt, welche das OS vollständig und direkt steuern kann, während der VMM eine Systemumgebung zum Implementieren von Virtualisierungsvorschriften aufrecht erhält, wie zum Beispiel gemeinsames Nutzen und/oder Zuweisen der physikalischen Ressourcen zwischen den VMs (die "Virtualisierungsumgebung"). Jedes OS und alle sonstige Software, die auf einer VM läuft, wird als ein "Gast" oder als "Gastsoftware" bezeichnet, während ein "Host" oder "Hostsoftware" Software, wie zum Beispiel ein VMM, ist, die außerhalb der Virtualisierungsumgebung abläuft und die Virtualisierungsumgebung kennen kann, aber nicht kennen muß.
  • Ein Prozessor in einem Informationsverarbeitungssystem kann eine Virtualisierung unterstützen, indem er zum Beispiel einen Befehl zum Eintreten in eine Virtualisierungsumgebung unterstützt, um einen Gast auf einer VM ablaufen zu lassen. In der Virtualisierungsumgebung können bestimmte Ereignisse, Operationen und Situationen, wie zum Beispiel externe Interrupts oder Versuche, auf bevorrechtigte Register oder Ressourcen zuzugreifen, "unterbrochen" werden, d. h. den Prozessor veranlassen, die Virtualisierungsumgebung zu verlassen, so daß ein VMM zum Beispiel dahingehend tätig sein kann, Virtualisierungsvorschriften zu implementieren. Ein Prozessor kann auch andere Befehle für das Aufrechterhalten einer Virtualisierungsumgebung unterstützen und kann Registerbits enthalten, die Virtualisierungsfähigkeiten des Prozessors anzeigen oder steuern.
  • Zu den bevorrechtigten Ressourcen des Systems können I/O-Vorrichtungen (Input/Output – Eingabe/Ausgabe) gehören, auf die über I/O-Transaktionen und/oder über Speichertransaktionen zugegriffen werden kann, wobei die I/O-Vorrichtung auf eine Speicheradresse abgebildet wurde (eine "speicherabgebildete Vorrichtung"). I/O-Transaktionen können unterbrochen werden, um zu verhindern, daß ein Gast direkt auf eine I/O-Vorrichtung zugreifen kann. Speichertransaktionen zu speicherabgebildeten I/O-Vorrichtungen können in einer seitenbasierten Speicherverwaltungsarchitektur unterbrochen werden, indem Seiten markiert werden, auf die eine I/O-Vorrichtung als nicht vorhanden oder nicht beschreibbar abgebildet wurde, wodurch ein Seitenfehlerintercept bewirkt wird, wenn ein Gast versucht, auf die speicherabgebildete Vorrichtung zuzugreifen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird beispielhaft und nicht-einschränkend in den begleitenden Figuren veranschaulicht.
  • 1 veranschaulicht eine Virtualisierungsumgebung, in der eine Ausführungsform der vorliegenden Erfindung arbeiten kann.
  • 2 veranschaulicht eine Ausführungsform der vorliegenden Erfindung in einem Verfahren, mit dem ein VMM die Unterstützung für das Zugreifen eines Gastes auf eine speicherabgebildete Vorrichtung initialisiert.
  • 3 veranschaulicht eine Ausführungsform der vorliegenden Erfindung in einem Verfahren, mit dem Gast auf eine speicherabgebildete Vorrichtung zugreift.
  • DETAILLIERTE BESCHREIBUNG
  • Im Folgenden werden Ausführungsformen von Vorrichtungen, Verfahren und Systemen für das Zugreifen eines Gastes auf eine speicherabgebildete Vorrichtung beschrieben. In dieser Beschreibung können zahlreiche konkrete Details, wie zum Beispiel Komponenten- und Systemkonfigurationen, dargelegt werden, um ein gründlicheres Verstehen der vorliegenden Erfindung zu ermöglichen. Der Fachmann versteht jedoch, daß die Erfindung auch ohne diese konkreten Details praktiziert werden kann. Des Weiteren wurden einige einschlägig bekannte Strukturen, Schaltkreise und dergleichen nicht im Detail gezeigt, um die vorliegende Erfindung nicht unnötig in den Hintergrund treten zu lassen.
  • Die Leistung einer Virtualisierungsumgebung kann verbessert werden, wenn die Häufigkeit unterbrochener Ereignisse minimiert wird. Ausführungsformen der Erfindung können zum Unterstützen der Virtualisierung speicherabgebildeter Vorrichtungen verwendet werden und können wünschenswert sein, um die Leistung in einer Virtualisierungsumgebung zu verbessern. In einer Ausführungsform können sie dafür verwendet werden, die Virtualisierung des Aufgabenprioritätsregisters (Task Priority Register – "TPR") eines weiterentwickelten programmierbaren Interrupt-Controllers (Advanced Programmable Interrupt Controller – "APIC") in einem Prozessor der Pentium®-Prozessorfamilie zu unterstützen. In dieser Ausführungsform kann die Leistung im Vergleich zu einer Virtualisierungsumgebung, in der alle Gastzugriffe auf das TPR durch einen VMM unterbrochen werden, verbessert werden, indem ein VMM einige Gastzugriffe auf das TPR nicht mehr zu unterbrechen braucht.
  • 1 veranschaulicht eine Virtualisierungsarchitektur 100, in der eine Ausführungsform der vorliegenden Erfindung arbeiten kann. In 1 kann die reine Plattformhardware 110 jede beliebige Datenverarbeitungsvorrichtung sein, die in der Lage ist, ein beliebiges OS oder eine beliebige VMM-Software auszuführen. Zum Beispiel kann die reine Plattformhardware die eines Personalcomputers, eines Großrechners, eines tragbaren Computers, eines handgehaltenen Gerätes, einer Set-Top-Box, eines Servers oder eines beliebigen sonstigen Computersystems sein. Die reine Plattformhardware 110 enthält einen Prozessor 120, einen Speicher 130, eine Eingabe/Ausgabe (I/O)-Vorrichtung 111 und einen Chipsatz 112.
  • Der Prozessor 120 kann ein beliebiger Prozessortyp sein, einschließlich eines Allzweck-Mikroprozessors, wie zum Beispiel ein Prozessor aus der Pentium®-Prozessorfamilie, der Itanium®-Prozessorfamilie oder einer anderen Prozessorfamilie von der Intel Corporation oder ein sonstiger Prozessor von einer anderen Firma oder ein digitaler Signalprozessor oder Mikrocontroller. Obgleich 1 nur einen einzigen solchen Prozessor 120 zeigt, kann die reine Plattformhardware 110 jede beliebige Anzahl von Prozessoren enthalten, einschließlich jeder beliebigen Anzahl von Mehrkernprozessoren mit jeweils einer beliebigen Anzahl von Ausführungskernen und jeder beliebigen Anzahl von nebenläufigen Prozessoren mit jeweils einer beliebigen Anzahl von Pfaden.
  • Der Speicher 130 kann ein statischer oder dynamischer Direktzugriffsspeicher, halbleiterbasierter Nurlese- oder Flash-Speicher, ein magnetischer oder optischer Disk-Speicher, ein beliebiger sonstiger Typ eines durch den Prozessor 120 lesbaren Speichermediums oder eine beliebige Kombination solcher Speichermedien sein. Der Speicher 130 kann entsprechend einer beliebigen Adressierungstechnik adressierbar sein, und jede beliebige Vorrichtung, die in der reinen Plattformhardware 110 gezeigt oder nicht gezeigt ist, kann auf eine Adresse innerhalb des Adreßbereichs des Speichers 130 abgebildet werden.
  • Die eine oder die mehreren I/O-Vorrichtungen 115 können jede beliebige Anzahl von Peripheriegeräten oder I/O-Vorrichtungen darstellen, wie zum Beispiel einen Monitor, eine Tastatur, eine Maus, einen Drucker, eine Netzwerkschnittstelle, eine Informationsspeichereinrichtung usw. Der Chipsatz 111 kann jede beliebige Anzahl von Komponenten enthalten, die jede beliebige Anzahl von Aufgaben ausführen, wie zum Beispiel Systemlogik, Bussteuerung, Busschnittstellen, Busüberbrückung, Speichersteuerung, Peripheriegerätesteuerung, Peripheriegerätefunktionen, Systemkonfiguration usw. In einigen Ausführungsformen kann über einen oder mehrere Adreßbereiche unter Verwendung von Speicheradreßanweisungen, d. h. über eine speicherabgebildete Schnittstelle, auf die eine oder die mehreren I/O-Vorrichtungen 115 zugegriffen werden. Eine speicherabgebildete I/O-Vorrichtung hat wenigstens einen solchen Adreßbereich, über den auf sie zugegriffen werden kann.
  • Der Prozessor 120, der Speicher 130, die eine oder die mehreren I/O-Vorrichtungen 115 und der Chipsatz 111 können entsprechend einer beliebigen bekannten Art und Weise miteinander verbunden sein oder miteinander kommunizieren, wie zum Beispiel direkt oder indirekt über einen oder mehrere Busse, eine Punkt-zu-Punkt- oder über sonstige verdrahtete oder drahtlose Verbindungen. Die reine Plattformhardware 110 kann außerdem jede beliebige Anzahl zusätzlicher Vorrichtungen oder Verbindungen enthalten.
  • Zusätzlich zu der reinen Plattformhardware 110 veranschaulicht 1 einen VMM 140, VMs 150 und 160 und Gast-OSs und -Anwendungen 152, 154, 155, 162, 164 und 165.
  • Der VMM 140 kann eine beliebige Software oder Firmware oder ein beliebiger Hardwarehost sein, die bzw. der in der reinen Plattformhardware 110 installiert ist oder für die reine Plattformhardware 110 zugänglich ist, um für Gäste VMs, d. h. Abstraktionen reiner Plattformhardware 110, darzustellen oder auf sonstige Weise in der Virtualisierungsumgebung 100 VMs zu erzeugen, VMs zu verwalten und Virtualisierungsvorschriften zu implementieren. In anderen Ausführungsformen kann ein Host ein beliebiger VMM, ein beliebiger Hypervisor, ein beliebiges OS oder sonstige Software, Firmware oder Hardware sein, der bzw. die die reine Plattformhardware 110 zu steuern vermag. Ein Gast kann ein beliebiges OS, ein beliebiger VMM, einschließlich einer anderen Instanz eines VMM 140, ein beliebiger Hypervisor oder eine beliebige Anwendung oder sonstige Software sein.
  • Jeder Gast erwartet, auf physikalische Ressourcen, wie zum Beispiel Prozessor- und Plattformregister, Speicher und Eingabe/Ausgabe-Vorrichtungen, der reinen Plattformhardware 110 entsprechend der in der VM dargestellten Architektur des Prozessors und der Plattform zuzugreifen. 1 zeigt zwei VMs, 150 und 160, mit dem Gast-OS 152 und den Gastanwendungen 154 und 155, die in der VM 150 installiert sind, und dem Gast-OS 162 und den Gastanwendungen 164 und 165, die in der VM 160 installiert sind. Obgleich 1 nur zwei VMs und zwei Anwendungen je VM zeigt, kann innerhalb des Geltungsbereichs der vorliegenden Erfindung jede beliebige Anzahl von VMs erzeugt werden, und jede beliebige Anzahl von Anwendungen kann auf jeder VM laufen.
  • Eine Ressource, auf die ein Gast zugreifen kann, kann entweder als eine "bevorrechtigte" oder eine "nicht-bevorrechtigte" Ressource klassifiziert werden. Für eine bevorrechtigte Ressource ermöglicht der VMM 140 die vom Gast gewünschte Funktionalität, während sie die letztendliche Kontrolle über die Ressource behält. Nicht-bevorrechtigte Ressourcen brauchen nicht durch den VMM 140 kontrolliert zu werden, und ein Gast kann direkt auf sie zugreifen.
  • Des Weiteren erwartet jede Gast-OS, verschiedene Ereignisse zu handhaben, wie zum Beispiel Ausnahmen (zum Beispiel Seitenfehler und allgemeine Schutzverletzungen), Interrupts (zum Beispiel Hardware-Interrupts und Software-Interrupts) und Plattformereignisse (zum Beispiel Initialisierungs- und Systemverwaltungsinterrupts). Diese Ausnahmen, Interrupts und Plattformereignisse werden im vorliegenden Text zusammen und einzeln als "Ereignisse" bezeichnet. Einige dieser Ereignisse sind "bevorrechtigt", weil sie durch den VMM 140 gehandhabt werden müssen, um den ordnungsgemäßen Betrieb der VMs 150 und 160, den Schutz des VMM 140 vor Gästen und den Schutz von Gästen voreinander zu gewährleisten.
  • Zu jedem gegebenen Zeitpunkt kann der Prozessor 120 Befehle von dem VMM 140 oder einem Gast ausführen, so daß der VMM 140 oder der Gast in dem Prozessor 120 ablaufen oder unter der Kontrolle des Prozessors 120 ablaufen kann. Wenn ein bevorrechtigtes Ereignis eintritt oder ein Gast versucht, auf eine bevorrechtigte Ressource zuzugreifen, so kann die Kontrolle vom Gast zum VMM 140 übergehen. Die Übergabe der Kontrolle von einem Gast zum VMM 140 wird im vorliegenden Text als "VM-Ausstieg" bezeichnet. Nach der entsprechenden Handhabung des Ereignisses oder dem entsprechenden Ermöglichen des Zugriffs auf die Ressource kann der VMM 140 die Kontrolle an einen Gast zurückgeben. Die Übergabe der Kontrolle von dem VMM 140 an einen Gast wird im vorliegenden Text als ein "VM-Einstieg" bezeichnet.
  • Bei der Ausführungsform von 1 steuert der Prozessor 120 den Betrieb der VMs 150 und 160 gemäß Daten, die in einer Steuerstruktur einer virtuellen Maschine (Virtual Machine Control Structure – "VMCS") 132 gespeichert sind. Die VMCS 132 ist eine Struktur, die den Zustand eines Gastes oder von Gästen, den Zustand des VMM 140, Ausführungssteuerungsinformationen, die anzeigen, wie der VMM 140 den Betrieb eines Gastes oder von Gästen steuern soll, Informationen bezüglich VM-Ausstiegen und VM-Ausstiegen und sonstige derartige Informationen enthalten kann. Der Prozessor 120 liest Informationen aus der VMCS 132, um die Ausführungsumgebung einer VM zu bestimmen und ihr Verhalten zu begrenzen. In dieser Ausführungsform ist die VMCS 132 im Speicher 130 gespeichert. In einigen Ausführungsformen werden mehrere VMCSs verwendet, um mehrere VMs zu unterstützen. Obgleich 1 eine VMCS 132 zeigt, die im Speicher 130 gespeichert ist, ist das Speichern einer VMCS in einem Speicher keine Bedingung für die vorliegende Erfindung.
  • Der Prozessor 120 kann eine speicherabgebildete Vorrichtung 122 mit Registern oder sonstigen Steuerungs-, Konfigurations-, Status- oder Informationsspeicherstrukturen oder -orten 123 und 124 enthalten. Zum Beispiel kann die speicherabgebildete Vorrichtung 122 ein APIC sein; ein Speicherort 123 kann ein TPR sein; und ein Speicherort 124 kann ein beliebiges anderes APIC-Register oder ein beliebiger anderer Abschnitt eines Registers sein. Der Chipsatz 111 kann des Weiteren eine speicherabgebildete Vorrichtung 122 mit Speicherorten 113 und 114 sein; und die I/O-Vorrichtung 115 kann ebenfalls eine speicherabgebildete Vorrichtung sein, die Speicherorte 116 und 117 enthält. Der Prozessor 120 und/oder der Chipsatz 111 kann beliebige weitere speicherabgebildete Vorrichtungen enthalten; jede andere I/O-Vorrichtung kann eine speicherabgebildete Vorrichtung sein; und/oder jeder andere Prozessor, jeder andere Chipsatz oder jede andere Komponente, die nicht in 1 gezeigt ist, kann eine speicherabgebildete Vorrichtung sein, auf die ein Gast gemäß einer Ausführungsform der vorliegenden Erfindung zugreifen kann. Auf die Speicherorte 123, 124, 116 und 117 kann über I/O-Befehle und/oder Speicherzugriffe zugegriffen werden, wie oben beschrieben. Darum sind die folgenden Beschreibungen, wenn von Zugriffen auf einen Speicherort die Rede ist, so zu verstehen, daß Zugriffe auf einen Speicherbereich oder I/O-Ports, die dem Speicherort entsprechen, gemeint sind. Solche Speicherungen können durch einen Speicher in der I/O- Vorrichtung abgesichert werden oder können eine Schnittstelle zu Funktionen bereitstellen, welche die I/O-Vorrichtung anbietet.
  • Der Prozessor 120 enthält des Weiteren eine Schnittstelle 121 zum Speicher 130, bei der es sich um eine Buseinheit oder eine sonstige Einheit, einen sonstigen Port oder eine sonstige Schnittstelle handeln kann, die es dem Prozessor 120 gestattet, über einem beliebigen Typ eines Busses, einer Punkt-zu-Punkt- oder sonstigen Verbindung direkt oder über eine andere Komponente, wie zum Beispiel über den Chipsatz 111, mit dem Speicher 130 zu kommunizieren.
  • Außerdem enthält der Prozessor 120 eine Steuerlogik 125 zum Unterstützen einer Virtualisierung, einschließlich der Virtualisierung des Zugriffes auf speicherabgebildete Vorrichtungen wie zum Beispiel die Vorrichtungen 122, 112 und 115. Die Steuerlogik 125 kann Mikrocode, programmierbare Logik, hartcodierte Logik oder eine sonstige andere Form einer Steuerlogik innerhalb des Prozessors 120 sein. In anderen Ausführungsformen kann die Steuerlogik 125 in jeder beliebigen Form von Hardware, Software oder Firmware, wie zum Beispiel einer Prozessorabstraktionsschicht, innerhalb eines Prozessors oder innerhalb einer Komponente, auf die ein Prozessor zugreifen kann, oder eines Speichermediums, das durch einen Prozessor gelesen werden kann, wie zum Beispiel einem Speicher 130, implementiert sein.
  • Die Steuerlogik 125 veranlaßt den Prozessor 120, Verfahrensausführungsformen der vorliegenden Erfindung auszuführen, wie zum Beispiel die Verfahrensausführungsformen, die in den 2 und 3 veranschaulicht sind, indem sie den Prozessor 120 veranlaßt, die Ausführung einer oder mehrerer Mikrooperationen, zum Beispiel zum Unterstützen einer Virtualisierung, in seiner Reaktion auf Virtualisierungsbefehle oder sonstige Befehle von einem Host oder Gast aufzunehmen.
  • Die Steuerlogik 125 enthält die Schattenlogik 126, die Beurteilungslogik 127 und die Ausstiegslogik 128. Die Schattenlogik 126 dient der Schattierung einer speicherabgebildeten Vorrichtung, wie weiter unten beschrieben. Die Beurteilungslogik 127 hat zu bestimmen, ob einem Versuch eines Gastes, auf eine Speicherregion (zum Beispiel den Speicherort einer spei cherabgebildeten Vorrichtung) zuzugreifen, stattgegeben wird. Die Ausstiegslogik 128 ist dafür da, einen VM-Ausstieg vorzubereiten und zu veranlassen, wenn dem Versuch nicht stattgegeben wird. Jede dieser Logikeinheiten kann überdies weitere Funktionen ausführen, einschließlich jener, die in dieser Beschreibung durch eine andere der Logikeinheiten ausgeführt werden, und beliebige oder alle dieser Logikeinheiten können zu einer einzigen Logikeinheit integriert sein.
  • Die VMCS 132 kann Felder, Steuerbits oder sonstige Datenstrukturen enthalten, um die Virtualisierung speicherabgebildeter Vorrichtungen, wie zum Beispiel der Vorrichtungen 122, 112 und 115, zu unterstützen. Diese Datenstrukturen können durch die Steuerlogik 125 überprüft werden, oder die Steuerlogik 125 kann auf sonstige Weise auf diese Datenstrukturen zugreifen, um zu bestimmen, wie eine VM-Umgebung zu verwalten ist. Zum Beispiel kann das Interceptsteuerbit 134 so gesetzt werden, daß veranlaßt wird, daß bestimmte Versuche eines Gastes, auf eine schattierte – oder virtuelle – Kopie eines Speicherortes in einer speicherabgebildeten Vorrichtung zuzugreifen, zu einem VM-Ausstieg führen, wie weiter unten beschrieben. In der Beschreibung dieser Ausführungsform sind diese Steuerbits so gesetzt, daß sie einen gewünschten Effekt ermöglichen oder veranlassen, wobei "Setzen" das Schreiben einer logischen Eins in das Bit meint, aber es kann innerhalb des Geltungsbereichs der vorliegenden Erfindung jede beliebige Logikkonvention oder -nomenklatur verwendet werden.
  • Des Weiteren kann in der VMCS 132 das Schattenadreßfeld 135 verwendet werden, um eine Adresse eines Speicherortes zu speichern, an dem eine schatten – oder virtuelle – Kopie eines Speicherortes in einer speicherabgebildeten Vorrichtung gespeichert werden kann. Wenn zum Beispiel der Speicherort 123 ein TPR ist, so kann das Schattenadreßfeld 135 ein 64-Bit-Feld sein, das den Ort einer 4 Kilobyte großen virtuellen APIC-Seite im Speicher bestimmt, dergestalt, daß eine virtuelle Kopie der Aufgabenpriorität in den Bits 7:4 des TPR-Feldes am Versatz 80H der virtuellen APIC-Seite gespeichert werden kann. In einer alternativen Ausführungsform kann die VMCS 132 ein Feld enthalten, um eine Schattenkopie eines Wertes, der im Speicherort 123 gespeichert werden soll, direkt zu speichern, anstatt eines Zeigers zu einem Speicherort für den Wert. Zum Beispiel kann die VMCS 132 ein Vier-Bit-Feld enthalten, um eine virtuelle Kopie eines Wertes direkt zu speichern, der in einem TPR gespeichert werden soll.
  • 2 und 3 veranschaulichen Verfahrensausführungen der vorliegenden Erfindung. Obgleich Verfahrensausführungen diesbezüglich nicht eingeschränkt sind, beziehen wir uns auf die Virtualisierungsumgebung 100 von 1, um die Verfahrensausführungen der 2 und 3 zu beschreiben. Diese Beschreibung verwendet die Begriffe "Zugriff auf die speicherabgebildete Vorrichtung", "Zugriff auf Speicher" und dergleichen, wobei solche Begriffe meinen, daß diese Zugriffe über normale Speicherzugriffsbefehle erfolgen.
  • 2 veranschaulicht eine Ausführungsform der vorliegenden Erfindung in einem Verfahren, bei dem ein VMM eine Unterstützung initialisiert, damit ein Gast auf eine speicherabgebildete Vorrichtung zugreifen kann.
  • Im Kasten 210 von 2 erzeugt der VMM 140 von 1 eine VMCS (zum Beispiel VMCS 132) für eine VM. In den Kästen 212 bis 216 konfiguriert der VMM 140 die VMCS 132, die Virtualisierung einer speicherabgebildeten Vorrichtung, wie zum Beispiel der speicherabgebildeten Vorrichtung 122, zu implementieren.
  • Im Kasten 214 wird eine Adresse eines Speicherortes zum Speichern der Schattenkopie des Speicherortes 123 in das Adreßfeld 135 geschrieben. Wie oben beschrieben, kann die Adresse eine Basisadresse sein, zu der ein Versatz hinzugefügt werden kann, um die Adresse des Speicherortes zu bestimmen, der als ein Schattenort verwendet werden soll, oder die Adresse kann die Adresse des Schattenortes sein. Alternativ kann der schattierte Wert direkt in einer VMCS gespeichert werden, anstelle eines Zeigers auf den schattierten Wert. In einer Ausführungsform kann der VMM 140 Speicher zuweisen, um den Schattenwert zu speichern.
  • Im Kasten 216 wird das Interceptsteuerbit 134 gesetzt, um zu veranlassen, daß bestimmte Versuche eines Gastes, auf die schattierte – oder virtuelle – Kopie des Speicherortes 123 in der speicherabgebildeten Vorrichtung 122 zuzugreifen, zu einem VM-Ausstieg führen, wie unter Bezug auf 3 beschrieben. Es ist zu beachten, daß in dieser Ausführungsform, wie unter Bezug auf 3 noch weiter beschrieben wird, die speicherabgebildete Vorrichtung 122 des Weiteren einen Speicherort 124 enthalten kann, der nicht schattiert ist.
  • 3 veranschaulicht eine Ausführungsform der vorliegenden Erfindung in einem Verfahren, bei dem ein Gast auf eine speicherabgebildete Vorrichtung zugreift.
  • Im Kasten 310 von 3 wird ein VM-Einstieg ausgeführt, und die Kontrolle geht an einen Gast über. Im Kasten 320 beginnt der Gast – oder der Gast fährt fort –, auf der VM zu laufen. Im Kasten 330 versucht der Gast einen Speicherzugriff auf eine Adresse in einem Bereich von Speicheradressen, die der speicherabgebildeten Vorrichtung 122 zugeordnet sind. Der Speicherzugriff kann ein Lesevorgang, ein Schreibvorgang, ein Ausführungsversuch oder ein Lese-Modifizierungs-Schreib-Versuch sein. Der Speicherzugriff kann spezielle Qualifikatoren, wie zum Beispiel Busverriegelungsanzeigen, enthalten. Der Speicherzugriff kann explizit (zum Beispiel ein Datenzugriff, ein Stapellesevorgang oder das Holen eines Befehls) sein, oder er kann implizit sein (zum Beispiel das Holen von Seitentabellendaten im Anschluß an das Verpassen eines TLB, ein Schreiben von zugegriffenen oder beschädigten Bits in die Seitentabellen oder ein Lesen eines Segmentdeskriptors). Die Beurteilungslogik 127 kann den versuchten Zugriff unter Verwendung von Adreßkomparatoren oder über eine beliebige sonstige im Stand der Technik bekannte Art und Weise detektieren. In einer Ausführungsform kann das Detektieren der Speicheradresse mittels Analyse der physikalischen Adressen ausgeführt werden. In einer weiteren Ausführungsform können lineare oder virtuelle Adressen verwendet werden.
  • Eine speicherabgebildete Vorrichtung kann als vollständig schattiert angesehen werden, wenn ein Gast Zugriff auf Schatten- oder virtuelle Kopien aller Speicherorte hat, die in der Vorrichtung verfügbar sind (wenn zum Beispiel die speicherabgebildete Vorrichtung nur die Speicherorte 123 und 124 enthält und beide schattiert werden). Eine speicherabgebildete Vorrichtung kann als teilweise schattiert angesehen werden, wenn ein Gast Zugriff auf eine Schatten- oder virtuelle Kopie wenigstens eines der Speicherorte hat, die in der Vorrichtung verfügbar sind (wenn zum Beispiel der Speicherort 123 schattiert wird, aber nicht der Speicherort 124). In einigen Ausführungsformen kann mehr als ein einziges Steuerbit überprüft werden, oder es können unterschiedliche Steuerbits überprüft werden, je nachdem, auf welchen Speicherort einer speicherabgebildeten Vorrichtung ein Gast gerade zuzugreifen versucht.
  • Wenn der Interceptmechanismus für die speicherabgebildete Vorrichtung 122 im Kasten 340 nicht aktiviert ist, so veranlaßt in Kasten 390 die Ausstiegslogik 128 die Vornahme eines VM-Ausstiegs, damit der VMM den Zugriff handhaben kann. Wenn jedoch der Interceptmechanismus für die speicherabgebildete Vorrichtung 122 im Kasten 340 aktiviert ist, so schreitet das Verfahren 300 zum Kasten 360 voran. Im Kasten 360 bestimmt die Beurteilungslogik 127, ob der Zugriff gestattet werden soll. Wenn der Zugriff nicht gestattet wird, so veranlaßt im Kasten 390 die Ausstiegslogik 128 die Vornahme eines VM-Ausstiegs, damit der VMM den Zugriff handhaben kann.
  • Wenn jedoch das Interceptsteuerbit 134 im Kasten 350 aktiviert ist, so schreitet das Verfahren 300 zum Kasten 360 voran. Im Kasten 360 bestimmt die Beurteilungslogik 127, ob der Zugriff gestattet werden soll. Wenn der Zugriff nicht gestattet wird, so veranlaßt im Kasten 390 die Ausstiegslogik 128 die Vornahme eines VM-Ausstiegs, damit der VMM den Zugriff handhaben kann.
  • Die Bestimmung, ob der Zugriff gestattet werden soll, kann auf die Art des versuchten Zugriffs gestützt werden. In einer Ausführungsform können Lesezugriffe erlaubt werden, aber Schreibzugriffe können untersagt werden. In einer Ausführungsform können Ausführungsversuche untersagt werden. In einer Ausführungsform können Lese-Modifizierungs-Schreib-Versuche untersagt werden. In einigen Ausführungsformen können implizite Zugriffe untersagt werden. Es sind auch andere Einschränkungen auf der Grundlage der Zugriffsart möglich. In einer weiteren Ausführungsform kann die Frage, ob der Zugriff gestattet werden soll, in Abhängigkeit davon beantwortet werden, ob der Zugriff auf einen schattierten Ort oder auf einen unschattierten oder einen teilweise schattierten Ort erfolgt. Das heißt, die Zugriffsart kann schattiert, unschattiert oder teilweise schattiert sein. Wenn der Zugriff zum Beispiel auf einen schattierten Ort erfolgt, wie zum Beispiel den Ort 123 in der Vorrichtung 122, so kann der Zugriff gestattet werden; wenn aber der Zugriff auf einen unschattierten Ort erfolgt, wie zum Beispiel den Ort 124 in der Vorrichtung 122, oder auf einen teilweise schattierten Ort erfolgt, wie zum Beispiel einen Ort, der sowohl den schattierten Ort 123 als auch den unschattierten Ort 124 enthält, so kann der Zugriff untersagt werden. Innerhalb des Geltungsbereichs der vorliegenden Erfindung sind auch andere Zugriffsarten möglich.
  • Eine Ausführungsform, wo die speicherabgebildete Vorrichtung 122 ein APIC ist, wird als ein zusätzliches Beispiel beschrieben. Der versuchte Zugriff kann ein Befehl sein zu versuchen, auf das TPR zuzugreifen (der Zugriff würde genau genommen auf eine virtuelle Kopie des TPR ("V-TPR") erfolgen, da das TPR schattiert wird). Ein solcher Befehl kann einen oder mehrere Zugriffe auf die virtuelle APIC-Seite ("V-APIC") veranlassen. Wenn der Befehl einen Lesevorgang aus dem V-TPR und keine weiteren Zugriffe auf den V-APIC enthält, so kann der Lesevorgang gestattet werden. Wenn der Befehl einen Schreibvorgang in das V-TPR und keine weiteren Zugriffe auf die V-APIC-Seite enthält, so kann der Schreibvorgang gestattet werden, und die Schattenlogik 126 gewährleistet, daß die Bits 127:8 des V-TPR-Feldes im Anschluß an den Schreibvorgang gelöscht werden (d. h. die Schattenlogik führt eine besondere Handhabung aus, wie weiter unten noch beschrieben wird). Die vorangegangenen zwei Befehle in einer Ausführungsform, die mit einem V-APIC arbeitet, können als schattierte Zugriffe angesehen werden, wobei die Zugriffsart schattiert, unschattiert oder teilweise schattiert sein kann, weil das TPR schattiert ist. In einer Ausführungsform kann die Schattenlogik 126 entsprechende Aktualisierungen an Abschnitten des schattierten Speichers oder an anderen Speicherorten oder Maschinenregistern vornehmen. Zum Beispiel können in einer Ausführungsform Schreibvorgänge in Abschnitte schattierter Speicherorte ignoriert werden. In einer weiteren Ausführungsform können Lesevorgänge aus schattierten Speicherorten, die Nurlese-Orte sind, immer die entsprechenden reservierten Werte, zum Beispiel Nullen, unabhängig von den Werten, die in dem Schattenspeicher gespeichert sind, zurückmelden.
  • Ein anderer Befehl in einer Ausführungsform, die mit einem V-APIC arbeitet, kann als teilweise schattiert angesehen werden. Wenn ein Befehl einen Zugriff auf das V-TPR und einen Zugriff auf einen anderen Ort in dem V-APIC (der nicht schattiert ist), beinhaltet, so erfolgt ein VM-Ausstieg.
  • Wenn im Kasten 360 die Beurteilungslogik 127 bestimmt, daß der Zugriff gestattet werden soll, so bestimmt die Beurteilungslogik 127 im Kasten 370, ob eine besondere Handhabung erforderlich ist. Zu einer besonderen Handhabung kann jede beliebige Handhabung des versuchten Zugriffs gehören, der durch die Steuerlogik 125 ausgeführt wird. Ein Beispiel wurde oben für einen Befehl gegeben, der einen Schreibvorgang in ein V-TPR beinhaltet. Ein weiteres Beispiel – ebenfalls in einer Ausführungsform, die mit einem V-APIC arbeitet – ist, wenn ein Befehl mehr als einen einzigen Zugriff auf ein V-TPR beinhaltet. In diesem Fall kann die besondere Handhabung darin bestehen, die Ausführung des Befehls zu gestatten, aber danach einen VM-Ausstieg zu veranlassen.
  • Wenn im Kasten 370 die Beurteilungslogik 127 bestimmt, daß keine besondere Handhabung erforderlich ist, so veranlaßt im Kasten 352 die Schattenlogik 126 die Ausführung des Gast-Zugriffs unter Verwendung der virtuellen Version der speicherabgebildeten Vorrichtung 122, und das Verfahren 300 kehrt zum Kasten 320 zurück, damit der Gast weiter arbeitet. Wenn jedoch im Kasten 370 die Beurteilungslogik 127 bestimmt, daß eine besondere Handhabung erforderlich ist, so führt im Kasten 372 die Steuerlogik 125 die besondere Handhabung aus. Diese besondere Handhabung kann beinhalten, den Gast-Zugriff unter Verwendung der virtuellen Version der speicherabgebildeten Vorrichtung 122 ganz oder teilweise auszuführen, wie weiter unten noch besprochen wird.
  • Im Kasten 380 bestimmt die Steuerlogik 125, ob die besondere Handhabung einen VM-Ausstieg beinhaltet. Wenn das der Fall ist, so veranlaßt die Ausstiegslogik 128 im Kasten 390 einen VM-Ausstieg. Wenn nicht, so kehrt das Verfahren 300 zum Kasten 320 zurück, damit der Gast weiter arbeitet.
  • In einer Ausführungsform kann eine besondere Handhabung ausgeführt werden, um eine Virtualisierung des TPR in einem APIC zu unterstützen. In dieser Ausführungsform können Schreibvorgänge in das TPR immer erlaubt sein, um in den Schatten zu schreiben. Wenn der geschriebene Wert kleiner ist als ein vom VMM vorgegebener Schwellenwert (der zum Beispiel in einem Feld in der VMCS gespeichert ist), so erfolgt ein VM-Ausstieg. Wie oben beschrieben, veranlassen Zugriffe, die teilweise schattiert sind, wie zum Beispiel Schreibvor gänge, die Adressen modifizieren – mit Ausnahme des TPR-Feldes im V-APIC –, VM-Ausstiege. In einer weiteren Ausführungsform wird gestattet, daß Schreibvorgänge in die virtuelle Version der speicherabgebildeten Vorrichtung 122 vollendet werden, wobei nach Vollendung des Befehls ein VM-Ausstieg erfolgt.
  • Innerhalb des Geltungsbereichs der vorliegenden Erfindung können die in den 2 und 3 veranschaulichten Verfahren in einer anderen Reihenfolge ausgeführt werden, wobei veranschaulichte Kästen weggelassen werden können, weitere Kästen hinzugefügt werden können, oder mit einer Kombination aus umgeordneten, weggelassenen oder zusätzlichen Kästen. Zum Beispiel kann eine VMCS Laststeuer- und Speichersteuerbits enthalten, die in Verbindung mit Schattensteuer- und/oder Interceptsteuerbits verwendet werden können, um zu bestimmen, ob Lese- und/oder Schreibzugriffe gestattet sind.
  • Der Prozessor 120 oder eine beliebige andere Komponente oder ein beliebiger anderer Abschnitt einer Komponente, die gemäß einer Ausführungsform der vorliegenden Erfindung konstruiert sind, können vom Entwurf über die Simulation bis hin zur Fabrikation in verschiedenen Stufen konstruiert sein. Daten, die einen Entwurf darstellen, können den Entwurf in einer Anzahl von Art und Weisen darstellen. Zuerst kann, wie es in Simulationen nützlich ist, die Hardware unter Verwendung einer Hardwarebeschreibungssprache oder einer anderen Funktionsbeschreibungssprache dargestellt werden. Zusätzlich oder alternativ kann ein Schaltkreisebenenmodell mit Logik- und/oder Transistorgattern auf einigen Stufen des Entwurfsprozesses erstellt werden. Des Weiteren erreichen die meisten Entwürfe auf irgendeiner Stufe eine Ebene, wo sie mit Daten modelliert werden können, welche die körperliche Anordnung verschiedener Bauelemente darstellen. In dem Fall, wo herkömmliche Halbleiterfabrikationstechniken zum Einsatz kommen, können die Daten, welche das Bauelementanordnungsmodell darstellen, die Daten sein, die das Vorhandensein oder Fehlen verschiedener Strukturelemente auf verschiedenen Maskenschichten für Masken spezifizieren, die zur Herstellung eines integrierten Schaltkreises verwendet werden.
  • In jeder beliebigen Darstellung des Entwurfs können die Daten in jeder beliebigen Form eines maschinenlesbaren Speichermediums gespeichert werden. Eine optische oder elektrische Wel le, die moduliert oder anderweitig erzeugt wird, um solche Informationen zu übertragen, ein Speicher oder ein magnetisches oder optisches Speichermedium, wie zum Beispiel eine Disk, kann das maschinenlesbare Speichermedium sein. Jedes dieser Speichermedien kann den Entwurf oder sonstige Informationen "tragen" oder "anzeigen", die in einer Ausführungsform der vorliegenden Erfindung verwendet werden, wie zum Beispiel die Befehle in einer Wiederherstellungsroutine nach dem Auftreten von Fehlern. Wenn eine elektrische Trägerwelle, welche die Informationen anzeigt oder trägt, übertragen wird, so wird in dem Umfang, wie ein Kopieren, Puffern oder eine Neuübertragung des elektrischen Signals ausgeführt wird, eine neue Kopie erstellt. Somit können die Aktionen eines Kommunikationsanbieters oder eines Netzwerkanbieters das Herstellen von Kopien eines Artikels, zum Beispiel einer Trägerwelle, darstellen, der die Techniken der vorliegenden Erfindung verkörpert.
  • Somit wurden Vorrichtungen und Verfahren, die es einem Gast ermöglichen, auf eine speicherabgebildete Vorrichtung zuzugreifen, offenbart. Obgleich bestimmte Ausführungsformen beschrieben und in den begleitenden Zeichnungen gezeigt wurden, versteht es sich, daß solche Ausführungsformen lediglich die Erfindung im weitesten Sinne veranschaulichen und nicht einschränken und daß diese Erfindung nicht auf die konkret gezeigten und beschriebenen Bauweisen und Anordnungen zu beschränken ist, da dem Durchschnittsfachmann beim Studium dieser Offenbarung verschiedene weitere Modifikationen einfallen. Auf einem technischen Gebiet wie diesem, wo sich das Wachstum rasch vollzieht und der weitere Fortschritt nur schwer vorherzusagen ist, lassen sich die offenbarten Ausführungsformen möglicherweise leicht durch das Einbinden technischer Weiterentwicklungen in Anordnung und Detail modifizieren, ohne daß von den Prinzipien der vorliegenden Offenbarung abgewichen oder der Geltungsbereich der begleitenden Ansprüche verlassen wird.

Claims (20)

  1. Vorrichtung, die umfaßt: eine Beurteilungslogik, um in Reaktion auf einen Versuch eines Gastes, auf eine Vorrichtung zuzugreifen, unter Verwendung einer Speicheradresse, die auf die Vorrichtung abgebildet ist, und auf der Grundlage einer Zugriffsart, zu bestimmen, ob der Zugriff gestattet wird; und eine Ausstiegslogik zum Übergeben der Kontrolle über die Vorrichtung von dem Gast an einen Host, wenn die Beurteilungslogik bestimmt, daß der Zugriff nicht gestattet wird.
  2. Vorrichtung nach Anspruch 1, wobei zu der Zugriffsart ein Lesezugriff und/oder ein Schreibzugriff und/oder ein Ausführungszugriff und/oder ein Lese-Modifizierungs-Schreib-Zugriff, ein impliziter Zugriff und/oder ein expliziter Zugriff gehören und die Beurteilungslogik bestimmen soll, daß der Zugriff gestattet wird, wenn der Zugriff von einer vorbestimmten Art ist.
  3. Vorrichtung nach Anspruch 2, wobei die vorbestimmte Art die Lesezugriffsart ist.
  4. Vorrichtung nach Anspruch 2, die ferner eine Schattenlogik umfaßt, die veranlaßt, daß Daten von dem Versuch in einen Schattenort geschrieben werden.
  5. Vorrichtung nach Anspruch 4, wobei die Schattenlogik den Zweck hat zu veranlassen, daß Daten von dem Versuch in einen Schattenort geschrieben werden, bevor die Kontrolle über die Vorrichtung vom Gast an den Host übergeht.
  6. Vorrichtung nach Anspruch 1, wobei zu der Zugriffsart ein schattierter Zugriff und/oder ein teilweise schattierter Zugriff und/oder ein unschattierter Zugriff gehören und die Beurteilungslogik bestimmen soll, daß der Zugriff gestattet wird, wenn der Zugriff von der schattierten Zugriffsart ist.
  7. Vorrichtung nach Anspruch 1, die ferner eine Konfigurationslogik umfaßt, um auf der Grundlage eines Konfigurationsindikators die Ausstiegslogik zu veranlassen, die Kontrolle über die Vorrichtung ungeachtet der Bestimmung durch die Beurteilungslogik vom Gast an den Host zu übergeben.
  8. Vorrichtung nach Anspruch 6, wobei die Vorrichtung einen Interrupt-Controller umfaßt und die schattierte Zugriffsart einen Zugriff auf lediglich einen Ort zum Anzeigen einer Aufgabenpriorität umfaßt und die teilweise schattierte Zugriffsart einen Zugriff auf den Ort zum Anzeigen der Aufgabenpriorität und auf einen anderen Ort als den Ort zum Anzeigen der Aufgabenpriorität umfaßt.
  9. Vorrichtung nach Anspruch 2, wobei die Vorrichtung einen Interrupt-Controller umfaßt, die zuvor festgelegte Art die Schreibzugriffsart ist, der Zugriff auf einen Ort zum Anzeigen einer Aufgabenpriorität erfolgt, der Zugriff auf einen Schattenort gestattet wird und die Ausstiegslogik ferner dazu dient, die Kontrolle über die Vorrichtung vom Gast an den Host zu übergeben, nachdem der Zugriff gestattet wurde.
  10. Verfahren, das umfaßt: Detektieren eines Versuchs eines Zugriffs auf eine Vorrichtung unter Verwendung einer Speicheradresse, die auf die Vorrichtung abgebildet ist; Bestimmen auf der Grundlage einer Zugriffsart, ob der Zugriff gestattet wird; und Übergeben der Kontrolle vom Gast an den Host, wenn der Zugriff nicht gestattet ist.
  11. Verfahren nach Anspruch 10, wobei zu der Zugriffsart ein Lesezugriff und/oder ein Schreibzugriff und/oder ein Ausführungszugriff und/oder ein Lese-Modifizierungs-Schreib-Zugriff, ein impliziter Zugriff und/oder ein expliziter Zugriff gehören.
  12. Verfahren nach Anspruch 11, wobei das Bestimmen, ob der Zugriff gestattet wird, ein Bestimmen enthält, daß der Zugriff von einer zuvor festgelegten Art ist.
  13. Verfahren nach Anspruch 11, wobei der Zugriff gestattet wird, wenn der Zugriff von der Leseart ist.
  14. Verfahren nach Anspruch 10, das des Weiteren umfaßt zu veranlassen, daß Daten von dem Versuch in einen Schattenort geschrieben werden.
  15. Verfahren nach Anspruch 10, wobei zu der Zugriffsart ein schattierter Zugriff und/oder ein teilweise schattierter Zugriff und/oder ein unschattierter Zugriff gehören.
  16. Verfahren nach Anspruch 15, wobei das Bestimmen, ob der Zugriff gestattet wird, das Bestimmen enthält, daß der Zugriff gestattet wird, wenn der Zugriff von der schattierten Zugriffsart ist.
  17. System, das umfaßt: einen Speicher; und einen Prozessor, der umfaßt: eine Beurteilungslogik, um in Reaktion auf einen Versuch eines Gastes auf eine Vorrichtung zuzugreifen, unter Verwendung einer Speicheradresse, die auf die Vorrichtung abgebildet ist, und auf der Grundlage einer Zugriffsart, zu bestimmen, ob der Zugriff gestattet wird; und eine Ausstiegslogik zum Übergeben der Kontrolle über den Prozessor von dem Gast an einen Host, wenn die Beurteilungslogik bestimmt, daß der Zugriff nicht gestattet wird.
  18. System nach Anspruch 17, wobei der Prozessor ferner eine Schattenlogik umfaßt, die veranlaßt, daß Daten von dem Versuch in einen Schattenort in dem Speicher geschrieben werden.
  19. System nach Anspruch 17, wobei der Speicher dazu dient, eine Steuerstruktur für eine virtuelle Maschine für den Gast zu speichern.
  20. System nach Anspruch 19, wobei die Steuerstruktur einen Indikator enthält, um anzuzeigen, daß die Ausstiegslogik die Kontrolle über den Prozessor ungeachtet der Bestimmung durch die Beurteilungslogik von dem Gast an den Host übergeben soll.
DE102006061939.0A 2005-12-30 2006-12-29 Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast Active DE102006061939B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/322,757 2005-12-30
US11/322,757 US7506121B2 (en) 2005-12-30 2005-12-30 Method and apparatus for a guest to access a memory mapped device

Publications (2)

Publication Number Publication Date
DE102006061939A1 true DE102006061939A1 (de) 2007-09-13
DE102006061939B4 DE102006061939B4 (de) 2022-07-14

Family

ID=38214071

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006061939.0A Active DE102006061939B4 (de) 2005-12-30 2006-12-29 Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast

Country Status (4)

Country Link
US (1) US7506121B2 (de)
JP (1) JP4668166B2 (de)
CN (1) CN1991808B (de)
DE (1) DE102006061939B4 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510827B1 (en) 2006-05-18 2013-08-13 Vmware, Inc. Taint tracking mechanism for computer security
US9189265B2 (en) 2006-12-21 2015-11-17 Vmware, Inc. Storage architecture for virtual machines
US9098347B2 (en) 2006-12-21 2015-08-04 Vmware Implementation of virtual machine operations using storage system functionality
US9354927B2 (en) 2006-12-21 2016-05-31 Vmware, Inc. Securing virtual machine data
US8099574B2 (en) * 2006-12-27 2012-01-17 Intel Corporation Providing protected access to critical memory regions
US8386664B2 (en) * 2008-05-22 2013-02-26 International Business Machines Corporation Reducing runtime coherency checking with global data flow analysis
US8281295B2 (en) * 2008-05-23 2012-10-02 International Business Machines Corporation Computer analysis and runtime coherency checking
US8285670B2 (en) * 2008-07-22 2012-10-09 International Business Machines Corporation Dynamically maintaining coherency within live ranges of direct buffers
US8117346B2 (en) * 2008-10-03 2012-02-14 Microsoft Corporation Configuration space virtualization
US20110225464A1 (en) * 2010-03-12 2011-09-15 Microsoft Corporation Resilient connectivity health management framework
US20120047313A1 (en) * 2010-08-19 2012-02-23 Microsoft Corporation Hierarchical memory management in virtualized systems for non-volatile memory models
US8762797B2 (en) * 2011-04-29 2014-06-24 Google Inc. Method and apparatus for detecting memory access faults
US9113164B1 (en) 2012-05-15 2015-08-18 Google Inc. Constant bit rate control using implicit quantization values
US9510019B2 (en) 2012-08-09 2016-11-29 Google Inc. Two-step quantization and coding method and apparatus
US9253483B2 (en) 2012-09-25 2016-02-02 Google Technology Holdings LLC Signaling of scaling list
US9407915B2 (en) 2012-10-08 2016-08-02 Google Inc. Lossless video coding with sub-frame level optimal quantization values
US9053065B2 (en) * 2012-12-10 2015-06-09 Vmware, Inc. Method for restoring virtual machine state from a checkpoint file
US9053064B2 (en) * 2012-12-10 2015-06-09 Vmware, Inc. Method for saving virtual machine state to a checkpoint file
US10102613B2 (en) 2014-09-25 2018-10-16 Google Llc Frequency-domain denoising
DE102015223335A1 (de) * 2015-11-25 2017-06-01 Robert Bosch Gmbh Verfahren zum Betreiben eines Mikrocontrollers
GB2591490B (en) * 2020-01-30 2022-03-02 Advanced Risc Mach Ltd An apparatus and method for controlling access to a set of memory mapped control registers

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828900A (en) * 1996-01-03 1998-10-27 Intel Corporation International multiple-byte character generator support in application sharing which distinguishes guest keyboard input from host key board and bypassing execution of the generator module when guest keyboard input is determined
US7818808B1 (en) * 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7277999B1 (en) * 2004-08-12 2007-10-02 Vmware, Inc. Restricting memory access to protect data when sharing a common address space

Also Published As

Publication number Publication date
DE102006061939B4 (de) 2022-07-14
US7506121B2 (en) 2009-03-17
CN1991808A (zh) 2007-07-04
JP2007183952A (ja) 2007-07-19
CN1991808B (zh) 2011-05-25
US20070156986A1 (en) 2007-07-05
JP4668166B2 (ja) 2011-04-13

Similar Documents

Publication Publication Date Title
DE102006061939B4 (de) Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast
DE112005002304B4 (de) Adreßumsetzung für Eingabe/Ausgabe- Vorrichtungen mittels hierarchischer Umsetzungstabellen
DE112004003066B4 (de) Verwendung mehrerer Monitore virtueller Maschinen zur Abwicklung priviligierter Ereignisse
DE102007062744B4 (de) Guest-Host-Adressübersetzung für den Zugriff von Geräten auf einen Speicher in einem partitionierten System
DE10393920B4 (de) Verfahren und Systeme zur Steuerung virtueller Maschinen
DE112005002298B4 (de) Leistungssteigerung einer Adreßübersetzung unter Verwendung von Übersetzungstabellen, die große Adreßräume umfassen
DE10197121B4 (de) Neuer Prozessormodus zum Begrenzen des Betriebes von auf einer virtuellen Maschine laufender Gast-Software mit Unterstützung eines Virtuelle-Maschine-Monitors
DE10357804B4 (de) Neu-Beanspruchung vorhandener Felder in Adressübersetzungsdatenstrukturen zum Erweitern der Kontrolle über Speicherzugriffe
DE10394383B4 (de) Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems
DE10393679B9 (de) Prozessor, der einen Übergang zwischen einem virtuellen Maschinen Betriebsmodus (VM) und einem virtuellen Maschinen Monitor Betriebsmodus (VMM) unterstützt
DE112005002405B4 (de) Fehlerverarbeitung für Direktspeicherzugriffs-Adreßübersetzung
DE112007001988T5 (de) Gemeinsames Nutzen von Informationen durch Gäste in einer Virtuelle-Maschine-Umgebung
DE112005002328T5 (de) Cachespeicherungsunterstützung für Direktspeicherzugriffsadreßübersetzung
DE112010005821T5 (de) Kontextwechsel
DE112016004297T5 (de) Technologien für mehrstufige virtualisierung
EP2807558A1 (de) Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem - kern zur exklusiven bereitstellung an virutelle maschinen
DE112008002888T5 (de) Hardwarevorrichtungsschnittstelle, die Transaktionsauthentifizierung unterstützt
DE112017004980T5 (de) Technologien für objektorientiertes speichermanagement mit erweiterter segmentierung
DE112020000280T5 (de) Transparente interpretation von gastbefehlen in einer sicheren virtuellen maschinenumgebung
DE112004001652B4 (de) Vektorieren eines Interrupt oder einer Ausnahme bei Wiederaufnahme des Betriebes einer virtuellen Maschine
DE112020000303T5 (de) Testen von speicherschutz-hardware in einer umgebung einer sicheren virtuellen maschine
DE112017003332T5 (de) Öffnungszugriffsprozessoren, verfahren, systeme und befehle
DE112020000289T5 (de) Abfrage und überlassung von sicherem speicher
DE102009060299A1 (de) Das Einführen von Transaktionen, um die Virtualisierung eines physischen Geräte-Controllers zu unterstützen
DE102021103041A1 (de) Virtuelle vertrauenswürdige plattformmodule

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021020000

Ipc: G06F0021700000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021020000

Ipc: G06F0021700000

Effective date: 20130326

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final