DE112005002347T5 - Zeitgeber-Versetzungsmechanismus in der Umgebung einer virtuellen Maschine - Google Patents

Zeitgeber-Versetzungsmechanismus in der Umgebung einer virtuellen Maschine Download PDF

Info

Publication number
DE112005002347T5
DE112005002347T5 DE112005002347T DE112005002347T DE112005002347T5 DE 112005002347 T5 DE112005002347 T5 DE 112005002347T5 DE 112005002347 T DE112005002347 T DE 112005002347T DE 112005002347 T DE112005002347 T DE 112005002347T DE 112005002347 T5 DE112005002347 T5 DE 112005002347T5
Authority
DE
Germany
Prior art keywords
timer
value
offset
vmm
request
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.)
Ceased
Application number
DE112005002347T
Other languages
English (en)
Inventor
Steven Hillsboro Bennett
Gilbert Portland Neiger
Andrew Hillsboro Anderson
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 DE112005002347T5 publication Critical patent/DE112005002347T5/de
Ceased legal-status Critical Current

Links

Classifications

    • 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

Abstract

Verfahren, das aufweist:
Erhalten einer Anfrage, die Steuerung von einem Monitor für virtuelle Maschinen (VMM) an eine virtuelle Maschine (VM) zu übergeben;
Berechnen eines Versetzungswertes;
Empfangen, während des Betriebes der VM, einer Anfrage nach einem gegenwärtigen Wert eines Zeitgebers;
Anpassen des gegenwärtigen Wertes des Zeitgebers basierend auf dem Versetzungswert; und
Liefern des angepaßten Zeitgeberwertes an die VM.

Description

  • Gebiet
  • Ausführungsformen der Erfindung betreffen im allgemeinen virtuelle Maschinen und genauer einen Zeitgeber-Versetzungsmechanismus in der Umgebung einer virtuellen Maschine.
  • Hintergrund
  • Zeitgeber werden typischerweise bei Betriebssystemen und Anwendungssoftware eingesetzt, um Aktivitäten zu planen. Zum Beispiel kann der Kern eines Betriebssystems einen Zeitgeber verwenden, um es einer Vielzahl von Anwendungen auf der Benutzerebene zu erlauben, die Ressourcen des Systems (z. B. der zentralen Verarbeitungseinheit (CPU)) zeitlich gemeinsam zu nutzen. Ein Beispiel eines Zeitgebers, der auf der Plattform eines Personal Computer (PC) verwendet wird, ist der programmierbare Intervall-Zeitgeber 8254. Dieser Zeitgeber kann so konfiguriert werden, daß er nach einem bestimmten Intervall oder periodisch Unterbrechungen ausgibt.
  • Ein weiteres Beispiel eines Zeitgebers ist der Zeitstempel-Zähler (TSC – time stamp counter), der bei der Befehlssatzarchitektur (ISA) des Intel® Pentium® 4 verwendet wird (hierin als die IA-32 ISA bezeichnet). Der TSC ist ein Zähler mit 64 Bit, der anschließend an das Rücksetzen der Hardware des Prozessors auf Null gesetzt wird und dann bei jedem Taktzyklus des Prozessors inkrementiert wird, selbst wenn der Prozessor durch den HLT-Befehl angehalten wird. Der TSC kann nicht verwendet werden, um Unterbrechungen zu erzeugen. Er bildet nur eine Zeitreferenz, die nützlich ist, um Zeitintervalle zu messen. Die IA-32 ISA stellt einen Befehl (RDTSC) zur Verfügung, um den Wert des TSC zu lesen, und einen Befehl (WRMSR), um in den TSC zu schreiben. Wenn WRMSR verwendet wird, um in den Zeitstempel-Zähler zu schreiben, können nur die 32 Bits niedriger Ordnung geschrieben werden, die 32 Bits höherer Ordnung werden auf 0 gelöscht. Wegen dieser Schreibeinschränkungen kann Software den TSC im allgemeinen weder vorwärts noch rückwärts auf einen beliebigen Wert setzen.
  • Bei Multipozessor(MP)-Systemen wird der TSC verwendet, um die Prozessoren richtig zu synchronisieren und Prozesse geeignet zu planen. Zum Zeitpunkt des Bootens werden die Werte des TSC auf allen Prozessoren synchronisiert, und die meisten Betriebssysteme nehmen an, daß der TSC dann mit derselben Rate zählt. Wenn die TSC-Werte zwischen Prozes soren driften (z. B. wenn ein Prozessor mit einer unterschiedlichen Rate zählt als die anderen), kann das Planen von Prozessen durch das Betriebssystem durcheinander gebracht werden.
  • Kurzbeschreibung der Zeichnungen
  • Die vorliegende Erfindung wird beispielhaft und nicht beschränkend in den Figuren der beigefügten Zeichnungen veranschaulicht, in denen gleiche Bezugsziffern sich auf ähnliche Elemente beziehen und in denen:
  • 1 eine Ausführungsform der Umgebung einer virtuellen Maschine veranschaulicht, in der die vorliegende Erfindung arbeiten kann;
  • 2 ein Ablaufdiagramm einer Ausführungsform eines Prozesses zum Steuern des Zugriffs von VMs auf einen Zeitgeber ist;
  • 3 ein Ablaufdiagramm einer Ausführungsform eines Prozesses zum Konfigurieren von einer Zeitgeber-Versetzung zugeordneten Feldern ist; und
  • 4 und 5 Ablaufdiagramme zweier alternativer Ausführungsformen eines Prozesses zum Berechnen eines Zeitgeber-Versetzungswertes für eine VM sind.
  • Beschreibung von Ausführungsformen
  • Ein Verfahren und eine Vorrichtung zum Steuern des Zugriffs von virtuellen Maschinen auf einen Zeitgeber wird beschrieben. In der folgenden Beschreibung werden zu Zwecken der Erläuterung zahlreiche bestimmte Einzelheiten dargelegt, um für ein gründliches Verständnis der vorliegenden Erfindung zu sorgen. Es wird jedoch dem Fachmann deutlich, daß die vorliegende Erfindung ohne diese bestimmten Einzelheiten in die Praxis überführt werden kann.
  • Einige Teile der genauen Beschreibung, die folgen, sind als Algorithmen und symbolische Darstellungen von Operationen auf Datenbits innerhalb von Registern oder einem Speicher des Computersystems dargestellt. Diese algorithmischen Beschreibungen und Darstellungen sind die Mittel, die von den Fachleuten in der Datenverarbeitung verwendet werden, um höchst effektiv die Substanz ihrer Arbeit anderen Fachleuten zu übermitteln. Ein Algorithmus wird hier und im allgemeinen so betrachtet, daß er eine selbstkonsistente Abfolge von Operationen ist, die zu einem gewünschten Ergebnis führt. Die Operationen sind solche, die physikalische Manipulationen von physikalischen Größen erfordern. Üblicherweise, obwohl nicht notwendig, liegen diese Größen in der Form von elektrischen oder magnetischen Signalen vor, die gespeichert, übertragen, kombiniert, verglichen und auf andere Weise manipuliert werden können. Gegebenenfalls hat es sich als zweckmäßig erwiesen, hauptsächlich aus Gründen des üblichen Gebrauchs, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Ausdrücke, Zahlen oder dergleichen zu bezeichnen.
  • Es sollte jedoch berücksichtigt werden, daß alle diese und ähnliche Ausdrücke mit den geeigneten physikalischen Größen verbunden sind und lediglich zweckmäßige Etiketten sind, die an diesen Größen angebracht sind. Wenn nicht ansonsten anders ausgedrückt, wie es aus den folgenden Diskussionen deutlich wird, wird verstanden werden, daß bei der vorliegenden Erfindung Diskussionen, welche Ausdrücke, so wie "Verarbeiten" oder "Rechnen" oder "Berechnen" oder "Bestimmen" oder dergleichen benutzen, diese sich auf die Aktion und Prozesse eines Computersystems oder einer ähnlichen elektronischen Rechenvorrichtung beziehen können, die Daten, welche als physikalische (elektronische) Größen in den Registern und Speichern des Computersystems dargestellt sind, in andere Daten manipulieren und umwandeln, die in ähnlicher Weise als physikalische Größen innerhalb der Speicher oder Register des Computersystems oder anderer solcher Informationsspeicher-, Übertragungs- oder Anzeigevorrichtungen dargestellt werden.
  • In der folgenden genauen Beschreibung von Ausführungsformen wird Bezug auf die beigefügten Zeichnungen genommen, die veranschaulichend bestimmte Ausführungsformen zei gen, mit denen die Erfindung in die Praxis umgesetzt werden kann. In den Zeichnungen beschrieben gleiche Bezugsziffern im wesentlichen ähnliche Komponenten in den verschiedenen Ansichten. Diese Ausführungsformen werden in ausreichenden Einzelheiten beschrieben, um es den Fachleuten zu ermöglichen, die Erfindung in die Praxis umzusetzen. Weitere Ausführungsformen können verwendet werden, und strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne daß man sich vom Umfang der vorliegenden Erfindung entfernt. Darüber hinaus soll verstanden werden, daß die verschiedenen Ausführungsformen der Erfindung, obwohl sie unterschiedlich sind, sich nicht notwendigerweise wechselseitig ausschließen. Zum Beispiel kann ein bestimmtes Merkmal, eine Struktur oder Eigenschaft, die bei einer Ausführungsform beschrieben worden ist, in andere Ausführungsformen eingebracht werden. Die folgende genaue Beschreibung soll daher nicht in einem beschränkenden Sinne genommen werden, und der Umfang der vorliegenden Erfindung ist nur durch die angefügten Ansprüche definiert, zusammen mit dem vollen Umfang an Äquivalenten, für die solche Ansprüche berechtigt sind.
  • Obwohl die Beispiele hiernach das Steuern des Zugriffs einer virtuellen Maschine auf einen Zeitgeber in dem Umfeld von Ausführungseinheiten und logischen Schaltungen beschreiben mögen, können weitere Ausführungsformen der vorliegenden Erfindung mittels Software ausgeführt werden. Zum Beispiel kann bei einigen Ausführungsformen die vorliegende Erfindung als ein Computerprogramm-Produkt oder Software zur Verfügung gestellt werden, welche(s) ein maschinen- oder computerlesbares Medium umfassen kann, auf dem Befehle gespeichert sind, die verwendet werden können, um einen Computer (oder andere elektronische Vorrichtungen) zu programmieren, um einen Prozeß gemäß der vorliegenden Erfindung durchzuführen. Bei anderen Ausführungsformen könnten Prozesse der vorliegenden Erfindung durch bestimmte Hardwarekomponenten durchgeführt werden, die hart verdrahtete Logik zum Durchführen der Prozesse enthalten, oder durch irgendeine Kombination aus programmierten Computerkomponenten und kundenspezifischen Hardwarekomponenten.
  • Somit kann ein maschinenlesbares Medium irgendeinen Mechanismus zum Speichern oder Übertragen von Information in einer Form, die von einer Maschine (z. B. einem Computer) lesbar ist, Floppy Disks, optische Disks, Compact Disks, Nur-Lese-Speicher (CD-ROMs) und magnetooptische Disks, Nur-Lese-Speicher (ROMs), Speicher mit wahlfreiem Zugriff (RAM), löschbare programmierbare Nur-Lese-Speicher (EPROM), elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROM), magnetische oder optische Karten, Flash-Speicher, eine Übertragung über das Internet, elektrische, optische, akustische oder andere Formen sich fortpflanzender Signale (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.) oder dergleichen umfassen, ist jedoch nicht darauf beschränkt.
  • Weiter kann eine Gestaltung durch verschiedene Stufen gehen, von der Erzeugung über die zur Simulation zur Herstellung. Daten, die eine Gestaltung darstellen, können die Gestaltung in einer Anzahl von Arten darstellen. Zunächst, wie es bei Simulationen zweckmäßig ist, kann die Hardware dargestellt werden, indem eine Hardware-Beschreibungssprache oder eine andere funktionale Beschreibungssprache verwendet wird. Zusätzlich kann in einigen Stufen des Gestaltungsprozesses ein Modell auf der Schaltungsebene mit logischen und/oder Transistorgattern erzeugt werden. Weiterhin erreichen die meisten Gestaltungen in einer bestimmten Stufe eine Ebene von Daten, die die physikalische Anordnung verschiedener Vorrichtungen in dem Hardwaremodell darstellen. In dem Fall, daß herkömmliche Halbleiter-Herstellungstechniken verwendet werden, können Daten, die ein Hardwaremodell darstellen, die Daten sein, die das Vorliegen oder Fehlen verschiedener Merkmale auf unterschiedlichen Maskenschichten für Masken festlegen, die verwendet werden, um die integrierte Schaltung herzustellen. Bei irgendeiner Darstellung der Gestaltung können die Daten in irgendeiner Form eines maschinenlesbaren Mediums gespeichert werden. Ein modulierte oder auf andere Weise erzeugte optische oder elektrische Welle, um eine solche Information zu übertragen, ein Speicher oder ein magnetischer oder optischer Speicher, so wie eine Disk, können das maschinenlesbare Medium sein. Alle diese Medien können die Gestaltung oder Softwareinformation "tragen" oder "angeben". Wenn eine elektrische Trägerwelle, welche den Code oder die Gestaltung angibt oder trägt, übertragen wird, in einem Ausmaß, daß Kopieren, Puf fern oder Neusenden des elektrischen Signals durchgeführt wird, wird eine neue Kopie erstellt. Somit kann ein Kommunikationsanbieter oder ein Netzwerkanbieter Kopien eines Artikels (einer Trägerwelle) erstellen, welche Techniken der vorliegenden Erfindung verkörpert.
  • 1 veranschaulicht eine Ausführungsform der Umgebung 100 einer virtuellen Maschine, in der die vorliegende Erfindung arbeiten kann. Bei dieser Ausführungsform weist eine Rohplattform-Hardware 116 eine Rechenplattform auf, die zum Beispiel in der Lage sein kann, ein Standardbetriebssystem (OS – operating system) oder den Monitor für virtuelle Maschinen (VMM – virtual machine monitor) sowie einen VMM 112 auszuführen.
  • Der VMM 112, obwohl er typischerweise in Software implementiert wird, kann eine Rohmaschinen-Schnittstelle auf eine Software höherer Ebene emulieren und exportieren. Eine solche Software auf höherer Ebene kann ein Standard- oder Echtzeit-OS aufweisen, kann eine stark abgerüstete Betriebsumgebung mit beschränkter Funktionalität des Betriebssystems sein, braucht keine traditionellen OS-Einrichtungen zu umfassen usw. Als Alternative kann zum Beispiel der VMM 112 innerhalb oder über einem anderen VMM laufen. VMMs können zum Beispiel in Hardware, Software, Firmware oder durch eine Kombination verschiedener Techniken implementiert werden.
  • Die Plattform-Hardware 116 kann die eines Personal Computers (PC), eines Großrechners, einer tragbaren Vorrichtung, eines tragbaren Computers, einer Settop-Box oder irgendeines anderen Rechensystems sein. Die Plattform-Hardware 116 umfaßt einen Prozessor 118 und einen Speicher 120.
  • Der Prozessor 118 kann irgendein Typ eines Prozessors sein, der in der Lage ist, Software auszuführen, so wie ein Mikroprozessor, ein digitaler Signalprozessor, ein Mikrocontroller oder dergleichen. Der Prozessor 118 kann Mikrocode, programmierbare Logik oder hart codierte Logik für das Durchführen der Ausführung von Verfahrensverkörperungen der vorlie genden Erfindung umfassen. Obwohl die 1 nur einen derartigen Prozessor 118 zeigt, kann es einen oder mehrere Prozessoren in dem System geben.
  • Der Speicher 120 kann eine Festplatte, eine Floppy-Disk, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), ein Flash-Speicher, irgendeine Kombination der obigen Vorrichtungen oder irgendein anderer Typ eines Maschinenmediums sein, das von dem Prozessor 118 gelesen werden kann. Der Speicher 120 kann Befehle und/oder Daten für das Durchführen der Ausführung von Verfahrensverkörperungen der vorliegenden Erfindung speichern.
  • Der VMM 112 zeigt anderer Software (d. h. "Gast"-Software) die Abstraktion einer oder mehrerer virtueller Maschinen (VMs), die den verschiedenen Gästen dieselbe oder unterschiedliche Abstraktionen zur Verfügung stellen können. 1 zeigt zwei VMs 102 und 114. Die Gast-Software, die auf jeder VM läuft, kann ein Gast-OS, so wie ein Gast-OS 104 oder 106, und verschiedene Gast-Softwareanwendungen 108 und 110 umfassen. Jedes der Gast-OSs 104 und 106 erwartet es, auf physikalische Ressourcen (z. B. Prozessorregister, Speicher und I/O-Vorrichtungen) innerhalb der VMs 102 und 114 zuzugreifen, auf denen die Gast-OS 104 oder 106 läuft, und weitere Funktionen durchzuführen. Zum Beispiel erwarten es die Gast-OSs 104 und 106, daß sie Zugriff auf alle Register, Caches, Strukturen, I/O-Vorrichtungen, Speicher und dergleichen haben, entsprechend der Architektur des Prozessors und der Plattform, in den VMs 102 und 114 dargestellt sind. Die Ressourcen, auf die von der Gast-Software zugegriffen werden kann, können entweder als "privilegiert" oder "nicht-privilegiert" klassifiziert werden. Für privilegierte Ressourcen vereinfacht der VMM 112 die Funktionalität, die von der Gast-Software gewünscht wird, wobei er die letztendliche Kontrolle über diese privilegierten Ressourcen behält. Nicht-privilegierte Ressourcen brauchen nicht von dem VMM 112 kontrolliert zu werden und können für die Gast-Software zugänglich sein.
  • Weiter erwartet jedes Gast-OS, daß verschiedene Standardereignisse behandelt werden, sowie Ausnahmen (z.B. Seitenfehler, allgemeine Schutzfehler usw.), Unterbrechungen (z.B. Hard ware-Unterbrechungen, Software-Unterbrechungen) und Plattformereignisse (z.B. Initialisierung (INIT) und Systemverwaltungsunterbrechungen (SMIs – System Management Interrupts)). Einige dieser Standardereignisse sind "privilegiert", da sie von dem VMM 112 behandelt werden müssen, um den richtigen Betrieb der VMs 102 und 114 sicherzustellen und für den Schutz vor und bei der Gast-Software.
  • Wenn ein privilegiertes Standardereignis auftritt oder Gast-Software versucht, auf eine privilegierte Ressource zuzugreifen, kann die Steuerung auf den VMM 112 übertragen werden. Die Übertragung der Steuerung von der Gas-Software auf den VMM 112 wird hierin als ein VM-Austritt bezeichnet. Nach dem Vereinfachen des Ressourcenzugriffs oder dem geeigneten Handhaben des Ereignisses kann der VMM 112 die Steuerung an die Gast-Software zurückgeben. Der Übergang der Steuerung von dem VMM 112 an die Gast-Software wird als ein VM-Eintritt bezeichnet.
  • Bei einer Ausführungsform steuert der Prozessor 118 den Betrieb der VMs 102 und 114 entsprechend Daten, die in der Steuerstruktur einer virtuellen Maschine (VMCS – Virtual Machine Control Structure) 124 gespeichert sind. Die VMCS 124 ist eine Struktur, die einen Zustand der Gast-Software, einen Zustand des VMM 112, Ausführungssteuerinformation, die angibt, wie der VMM 112 wünscht, den Betrieb der Gas-Software zu steuern, Information, die Übergänge zwischen dem VMM 112 und einer VM steuern usw., enthalten kann. Der Prozessor 118 liest Information aus der VMCS 124, um die Ausführungsumgebung der VM zu bestimmen und ihr Verhalten zu beschränken. Bei einer Ausführungsform ist die VMCS im Speicher 120 gespeichert. Bei manchen Ausführungsformen werden mehrere VMCS-Strukturen verwendet, um mehrere VMs zu unterstützen.
  • Es kann sein, daß der VMM 112 einen Zeitgeber verwenden muß, um Ressourcen zu planen, Dienstequalität zu liefern, Sicherheit zu gewährleisten und weitere Funktionen durchzuführen. Zum Beispiel kann in der Befehlssatzarchitektur (ISA) des Intel® Pentium® 4 (hierin als die IA-32 ISA bezeichnet) der VMM 112 die den Zeitstempelzähler (TSC) benutzen, um diese Funktionen auszuführen. Es kann auch sein, daß jede der VMs 102 und 114 den Zeitgeber verwenden muß, um Zeitgebungsschleifen zu kalibrieren und die Optimierung der Leistungsfähigkeit durchzuführen. Da die VMs 102 und 114 keine Kenntnis voneinander oder von dem VMM 112 haben, kann es sein, daß die Werte des Zeitgebers, die der VM 102 oder 114 zur Verfügung gestellt werden, angepaßt werden müssen, um die Illusion zu vermitteln, daß das Gast-OS 104 oder 106 auf einer besonderen Hardware-Plattform, nicht einer virtuellen Plattform, läuft. Ein Zeitgeber-Versetzungsmechanismus wird zur Verfügung gestellt, um den Zeitgeber richtig zu virtualisieren und somit die Illusion für die Gast-OSs 104 und 106 aufrechtzuerhalten. Bei einer Ausführungsform umfaßt der Zeitgeber-Versetzungsmechanismus ein Zeitgeber-Versetzungskonfigurationsmodul 126 und Zeitgeber-Zugriffslogik 122.
  • Das Zeitgeber-Versetzungskonfigurationsmodul 126 ist verantwortlich dafür, Werte oder Felder zur Verfügung zu stellen, die mit einer Zeitgeber-Versetzung verbunden sind, bevor ein Übergang der Steuerung zu der VM 102 oder 114 angefragt wird. Bei einer Ausführungsform können diese Werte einen Versetzungswert umfassen, welcher eine Versetzung festgelegt, die von dem Prozessor 118 verwendet wird, wenn Zeitgeberwerte an die VM 102 oder 114 gegeben werden, und einen Zeitgeber-Versetzungsindikator, der festlegt, ob die Zeitgeber-Versetzung für die VM 102 oder 114 freigegeben ist. Bei einer Ausführungsform ist der Zeitgeber-Versetzungswert ein mit Vorzeichen behafteter Wert, was es dem VMM 112 erlaubt, der Gast-Software einen Zeitgeberwert vorzulegen, der kleiner als oder größer als der tatsächliche Zeitgeberwert der Hardware ist. Bei einer Ausführungsform wird der Zeitgeber-Versetzungswert zu dem Zeitgeberwert addiert, bevor der Wert an die VM 102 oder 114 zurückgegeben wird. Bei einer Ausführungsform umfassen die Felder, die der Zeitgeber-Versetzung zugewiesen sind, auch einen Zeitgeber-Zugriffssteuerindikator, welcher festlegt, ob Anfragen der VM, auf den Zeitgeber zuzugreifen, mit einem Übergang der Steuerung an den VMM verbunden ist (z.B. ob Anfragen der VM, auf den Zeitgeber zuzugreifen, VM-Austritte hervorrufen sollten).
  • Bei einer Ausführungsform berücksichtigt der Versetzungswert für die VM 102 oder 114 die Ansammlung von Zeitintervallen, während derer diese VM aufgrund der Ausführung durch den VMM 112 und die andere VM nicht gelaufen ist. Zum Beispiel sei angenommen, daß, wenn der Wert des Zeitgebers 1000 Ticks ist, die VM 102 erwartet, daß der Wert des Zeitgebers 1000 ist. Dann, bei 1500 Ticks, kann die VM 102 durch einen VM-Austritt unterbrochen werden, gefolgt von der Ausführung durch den VMM 112 über 100 Ticks (Zeitgeberwert 1600 Ticks), wonach der VMM 112 anfragen kann, die VM 114 eintreten zu lassen. Die VM 114 kann dann 600 Ticks lang ausführen (Zeitgeberwert 2200 Ticks), bis zu einem VM-Austritt, was zu der Ausführung durch den VMM 112 über 200 Ticks führt (Zeitgeberwert 2400), der dann anfragen kann, die VM 102 wieder eintreten zu lassen. Zum Zeitpunkt des erneuten Eintritts erwartet die VM 102, daß der Zeitgeber den Wert 1500 Ticks hat. Stattdessen ist der tatsächliche Zeitgeberwert zu diesem Zeitpunkt 2400 Ticks. Der Versetzungswert, der von dem VMM 112 für die VM 102 zur Verfügung gestellt wird, wird 900 Ticks sein, was der Sammelwert für die Zeitintervalle ist, während derer die VM 102 aufgrund der Ausführung durch die VM 114 und dem VMM 112 nicht gelaufen ist. Somit würde der VMM 112 den Versetzungswert 900 im Zeitgeber-Versetzungsfeld speichern, so daß, wenn die VM 102 versucht, den Zeitgeber zu lesen, der Wert, der an die VM 102 gegeben wird, berechnet wird, indem der gegenwärtige Zeitgeberwert um 900 verringert wird. Der Versetzungswert kann auch berechnet werden, indem die Differenz zwischen dem tatsächlichen Zeitgeberwert und dem Zeitgeberwert, der von der VM 102 erwartet wird, berechnet wird. Bei einer alternativen Ausführungsform wird der Wert, der an die VM 102 gegeben wird, wenn sie versucht, den Zeitgeber zu lesen, berechnet, indem der gegenwärtige Zeitgeberwert zu dem Versetzungswert addiert wird, der durch den VMM 112 konfiguriert worden ist. Bei dieser Ausführungsform ist der Versetzungswert, der von dem VMM gespeichert wird, eine negative Zahl. Bei dem oben beschriebenen Beispiel ist der gespeicherte Wert –900.
  • Wie oben diskutiert, wird bei einer Ausführungsform der Versetzungswert durch den VMM 112 bestimmt. Bei einer alternativen Ausführungsform wird der Versetzungswert durch den Prozessor 118 bestimmt, und die Felder und Steuerungen, die der Zeitgeber-Versetzung zu gewiesen sind, können einen Zeitgeber-Versetzungsindikator, einen Indikator für das Anpassen der Versetzung, ein Gast-Zeitgeberfeld, einen Indikator für das Sichern des Zeitgebers und ein Zeitgeber-Versetzungsfeld umfassen. Bei einer Ausführungsform können die drei Indikatorwerte in einer Vielfalt von Arten kombiniert werden. Zum Beispiel können der Indikator für das Anpassen der Versetzung und der Indikator für das Sichern des Zeitgebers dieselbe Steuerung sein (d.h. das Freigeben der Anpassung der Zeitgeber-Versetzung gibt implizit das Sichern des Zeitgebers frei), wie es in weiteren Einzelheiten hiernach beschrieben wird. Bei einigen Ausführungsformen brauchen einige der obigen Indikatoren nicht vorzuliegen. Zum Beispiel braucht der Zeitgeber-Versetzungsindikator nicht vorzuliegen, und es wird angenommen, daß die Zeitgeber-Versetzung immer freigegeben ist, wie es in weiteren Einzelheiten hiernach diskutiert wird.
  • Bei einer Ausführungsform sind die Felder und Steuerungen, die der Zeitgeber-Versetzung zugewiesen sind, in der VMCS 124 gespeichert. Als Alternative können sich die Felder und Steuerungen, die mit der Zeitgeber-Versetzung verbunden sind, in dem Prozessor 118, einer Kombination aus Speicher 120 und dem Prozessor 118 oder an irgendwelchen anderen Speicherorten oder Orten befinden. Bei einer Ausführungsform werden getrennte Felder und Steuerungen, die der Zeitgeber-Versetzung zugewiesen sind, für jede der VMs 102 und 114 gehalten. Als Alternative werden dieselben Felder und Steuerungen, die der Zeitgeber-Versetzung zugewiesen sind, für beide VMs 102 und 144 gehalten und werden vor jedem VM-Eintritt von dem VMM 112 aktualisiert.
  • Bei einer Ausführungsform, bei der das System 100 mehrere Prozessoren, mehrere Kerne oder Multi-Thread-Prozessoren umfaßt, sind jedem der mehreren logischen Prozessoren getrennte Felder und Steuerungen zugewiesen, die der Zeitgeber-Versetzung zugeordnet sind, und der VMM 112 konfiguriert die Felder und Steuerungen, die der Zeitgeber-Versetzung zugewiesen sind, für jeden der mehreren logischen Prozessoren.
  • Bei einer Ausführungsform umfaßt der Prozessor 118 Zeitgeber-Zugriffslogik 122, die für das Virtualisieren von Zugriffen der VM 102 und 114 auf den Zeitgeber basierend auf den Zeitgeber-Versetzungswerten verantwortlich ist. Wenn insbesondere die Zeitgeber-Zugriffslogik 122 bestimmt, daß die Zeitgeber-Versetzung freigegeben ist, liefert sie einen angepaßten Zeitgeberwert an die VM 102 oder 114. Bei einer Ausführungsform bestimmt die Zeitgeber-Zugriffslogik 122, ob die Zeitgeber-Versetzung freigegeben ist, indem ein Indikatorwert für die Zeitgeber-Versetzung überprüft wird. Bei einer Ausführungsform, wenn die Zeitgeber-Zugriffslogik 122 eine Anfrage nach einem gegenwärtigen Wert des Zeitgebers von der VM 102 oder 114 empfängt, liest sie den gegenwärtigen Wert des Zeitgebers, addiert den Versetzungswert zu dem gegenwärtigen Wert des Zeitgebers und gibt den sich ergebenen Wert an die VM 102 oder 114 zurück, was somit der VM 102 oder 114 die Illusion verleiht, daß sie auf einer besonderen Hardware-Plattform läuft. Bei einer Ausführungsform ist der Versetzungswert ein mit Vorzeichen behafteter Wert.
  • Die Versetzungswerte können für die VM 102 und 114 von dem VMM 112 bestimmt werden (z.B. durch das Konfigurationsmodul 126 für die Zeitgeber-Versetzung). Eine Ausführungsform eines Prozesses zum Bestimmen eines Versetzungswertes durch den VMM 112 wird in weiteren Einzelheiten hiernach im Zusammenhang mit den 3 und 4 diskutiert. Als Alternative werden die Versetzungswerte durch den Prozessor 118 bestimmt (z.B. durch die Zeitgeber-Zugriffslogik 122). Eine Ausführungsform eines Prozesses zum Bestimmen eines Versetzungswertes durch den Prozessor 118 wird in weiteren Einzelheiten hiernach im Zusammenhang mit 5 diskutiert.
  • 2 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses 200 zum Steuern des Zugriffs von VMs auf einen Zeitgeber. Der Prozeß kann durch Verarbeitungslogik durchgeführt werden, die Hardware (z.B. Schaltungen, besondere Logik, programmierbare Logik, Mikrocode usw.), Software (so wie die, die auf einem universellen Computersystem oder einer besonderen Maschine läuft) oder eine Kombination aus beiden aufweisen. Bei einer Aus führungsform wird der Prozeß 200 durch die Zeitgeber-Zugriffslogik 122 der 1 durchgeführt.
  • Mit Bezug auf 2 beginnt der Prozeß 200 damit, daß die Verarbeitungslogik eine Anforderung erhält, die Steuerung von einem VMM auf eine VM zu übertragen (d.h. die Anfrage nach einem VM-Eintritt) (Verarbeitungsblock 202). Bei einer Ausführungsform wird die Anfrage nach einem VM-Eintritt über einen VM-Eintrittsbefehl empfangen, der von dem VMM ausgeführt wird.
  • Als nächstes bestimmt die Verarbeitungslogik, ob das Zeitgeber-Versetzen freigegeben ist (Verarbeitungsblock 204). Bei einer Ausführungsform trifft die Verarbeitungslogik diese Bestimmung als Teil des Übergangs zu der VM (z.B. wenn der VM-Zustand und die Ausführungssteuerinformation, die in der VMCS gespeichert ist, überprüft und geladen werden). Bei einer Ausführungsform basiert die Bestimmung auf dem gegenwärtigen Wert eines Zeitversetzungsindikators, der in der VMCS für die VM, die eingelassen wird, gespeichert ist.
  • Wenn die Zeitgeber-Versetzung freigegeben ist, verwendet die Verarbeitungslogik einen Zeitgeber-Versetzungswert, wenn sie auf die Anfragen der VM für einen gegenwärtigen Zeitgeberwert antwortet. Bei einer Ausführungsform wird der Zeitgeber-Versetzungswert von dem VMM vor der Ausgabe der Anfrage, die Steuerung an diese VM zu übergeben, bestimmt. Eine Ausführungsform eines Prozesses zum Bestimmen des Versetzungswertes durch den VMM wird in weiteren Einzelheiten hiernach im Zusammenhang mit den 3 und 4 diskutiert. Als Alternative wird der Versetzungswert automatisch von dem Prozessor bestimmt, wenn die Steuerung an diese VM übergeht. Eine Ausführungsform eines Prozesses zum Bestimmen des Versetzungswertes durch den Prozessor wird in weiteren Einzelheiten hiernach im Zusammenhang mit 5 diskutiert.
  • Bei einer Ausführungsform, wenn die Zeitgeber-Versetzung freigegeben ist, lädt die Verarbeitungslogik ein Versetzungsregister mit dem Zeitgeber-Versetzungswert, der in der VMCS (Arbeitungsblock 206) gespeichert ist. Als Alternative, wenn das Zeitgeber-Versetzen deaktiviert ist, lädt die Verarbeitungslogik das Versetzungsregister mit 0 (Verarbeitungsblock 206). Als nächstes beginnt die Verarbeitungslogik die Ausführung in der VM (Verarbeitungsblock 210).
  • Während der Ausführung durch die VM kann die Verarbeitungslogik die Anfragen der VM nach einem gegenwärtigen Wert des Zeitgebers erhalten. In der IA-32 ISA zum Beispiel kann die VM eine Anfrage nach einem gegenwärtigen Wert des TSC ausgeben, indem der RDMSR-Befehl oder ein RDTSC-Befehl zum Lesen des TSC ausgegeben wird.
  • Am Verarbeitungsblock 212 bestimmt die Verarbeitungslogik, ob die VM einen gegenwärtigen Wert des Zeitgebers anfragt. Wenn dies der Fall ist, dann bestimmt bei einer Ausführungsform die Verarbeitungslogik, ob diese Anfrage mit einem Übergang der Steuerung an den VMM verbunden ist (Verarbeitungsblock 214). Bei einer Ausführungsform kann ein Zeitgeber-Zugriffssteuerindikator auf einen "Austritt"-Wert gesetzt werden, um bei jeder Anfrage der VM, auf den Zeitgeber zuzugreifen, einen VM-Austritt hervorzurufen. Zum Beispiel ist bei einer Ausführungsform der Zeitgeber-Zugriffssteuerindikator ein einzelnes Bit, das, wenn es auf 1 gesetzt wird, angibt, daß Anfragen einer VM, auf den Zeitgeber zuzugreifen, VM-Austritte bewirken. Bei einer Ausführungsform kann dieser Indikator in der VMCS gespeichert werden. Wenn die Anfrage nicht mit einem Übergang der Steuerung an den VMM verbunden ist, geht die Verarbeitungslogik zum Verarbeitungsblock 216 weiter. Wenn die Anfrage mit einem Übergang der Steuerung an den VMM verbunden ist, gibt die Verarbeitungslogik die Steuerung an den VMM, wobei dem VMM angezeigt wird, daß der VM-Austritt durch einen Versuch, auf den Zeitgeber zuzugreifen, hervorgerufen wurde (Verarbeitungsblock 220). Bei einer Ausführungsform lädt vor dem Übergeben der Steuerung an den VMM die Verarbeitungslogik das Versetzungsregister mit 0 (Verarbeitungsblock 218), um es dem VMM zu erlauben, den tatsächlichen Wert des Zeitgebers zu erhalten.
  • Bei einer weiteren Ausführungsform wird ein Zeitgeber-Zugriffssteuerungsindikator nicht verwendet, und die Verarbeitungslogik prüft nicht wegen eines Übergangs der Steuerung an den VMM in Antwort auf Anfragen einer VM nach einem gegenwärtigen Wert des Zeitgebers. Stattdessen überspringt die Verarbeitungslogik den Verarbeitungsblock 214 und geht direkt zum Verarbeitungsblock 216 weiter.
  • Im Verarbeitungsblock 216 liest die Verarbeitungslogik den gegenwärtigen Wert des Zeitgebers, addiert den Versetzungswert zu dem gegenwärtigen Wert des Zeitgebers und gibt das Ergebnis an die VM zurück. Bei einer Ausführungsform ist der Zeitgeber-Versetzungswert ein mit Vorzeichen behafteter Wert, der mit dem Inhalt des Zeitgebers unter Verwendung vorzeichenbehafteter Addition kombiniert wird.
  • Während der Ausführung durch die VM können verschiedene weitere Ereignisse, die mit einem VM-Austritt verbunden sind (z.B. Seitenfehler, Unterbrechungen usw.) auftreten. Bei einer Ausführungsform, wenn die Verarbeitungslogik ein Ereignis erfaßt, das mit einem VM-Austritt verbunden ist (Verarbeitungsblock 222), lädt die Verarbeitungslogik das Versetzungsregister mit Null (Verarbeitungsblock 218) übergibt die Steuerung an den VMM, wobei die Ursache des VM-Austrittes, die im Verarbeitungsblock 222 erfaßt wurde, angegeben wird (Verarbeitungsblock 220). Wenn die Verarbeitungslogik keine Ereignisse erfaßt, die mit einem VM-Austritt verbunden sind, kehrt die Verarbeitungslogik zum Verarbeitungsblock 212 zurück.
  • 3 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses 300 zum Konfigurieren von Feldern, die mit der Zeitgeber-Versetzung verbunden sind. Der Prozeß kann durch Verarbeitungslogik durchgeführt werden, die Hardware (z. B. Schaltung, besondere Logik, programmierbare Logik, Mikrocode usw.), Software (so wie die, die auf einem universellen Computersystem oder einer besonderen Maschine läuft) oder eine Kombination aus beiden aufweisen kann. Bei einer Ausführungsform wird der Prozeß 300 durch das Zeitgeber-Versetzungskonfigurationsmodul 126 der 1 durchgeführt.
  • Mit Bezug auf 3 beginnt der Prozeß 300 damit, daß die Verarbeitungslogik entscheidet, daß ein Übergang der Steuerung auf eine VM benötigt wird. Vor dem Ausgeben einer Anfrage, die Steuerung an die VM zu übertragen, bestimmt die Verarbeitungslogik einen Zeitgeber-Versetzungswert für die VM (Verarbeitungsblock 302) und speichert den Zeitgeber-Versetzungswert in der VMCS (Verarbeitungsblock 304). Bei einer Ausführungsform ist der Zeitgeber-Versetzungswert die Ansammlung von Zeitintervallen, während der die VM, die eingelassen wird, wegen der Ausführung durch den VMM und die anderen VMs nicht gelaufen ist. Eine Ausführungsform eines Prozesses zum Berechnen des Zeitgeber-Versetzungswertes wird in weiteren Einzelheiten hiernach im Zusammenhang mit 4 diskutiert.
  • Als nächstes setzt die Verarbeitungslogik einen Zeitgeber-Versetzungsindikator auf einen Freigabewert (Verarbeitungsblock 306) und gibt eine Anfrage aus, die Steuerung an die VM zu übertragen (z. B. eine VM-Eintrittsanfrage) (Verarbeitungslogik 308).
  • Anschließend, wenn ein VM-Austritt aus der VM erzeugt wird, erhält die Verarbeitungslogik die Steuerung zurück (Verarbeitungsblock 310), bestimmt den gegenwärtigen Wert des Zeitgebers (Verarbeitungsblock 312) und handhabt den VM-Austritt wie benötigt (z. B. führt Operationen durch, die die Ursache des VM-Austritts ansprechen) (Verarbeitungsblock 314). Wie hiernach beschrieben kann der Wert des Zeitgebers zum VM-Austritt verwendet werden, um die Zeitgeber-Versetzung zu berechnen, bevor die Steuerung an die VM zurückgegeben wird.
  • 4 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses 400 zum Berechnen eines Zeitgeber-Versetzungswertes für eine VM (wie im Verarbeitungsblock 302 der 3 als Beispiel angesprochen). Dieser Prozeß kann durch Verarbeitungslogik durchgeführt werden, die Hardware (z. B. Schaltung, besondere Logik, programmierbare Logik, Mikrocode usw.), Software (so wie die, die auf einem universellen Computersystem oder einer besonde ren Maschine läuft) oder eine Kombination aus beiden aufweisen kann. Bei einer Ausführungsform wird der Prozeß 400 durch ein Zeitgeber-Versetzungskonfigurationsmodul 126 der 1 durchgeführt.
  • Mit Bezug auf 4 beginnt der Prozeß 400 damit, daß die Verarbeitungslogik die Zeit berechnet, die in dieser VM seit dem letzten VM-Eintritt verbracht worden ist (Verarbeitungsblock 402). Bei einer Ausführungsform wird diese Zeit berechnet, indem eine VM-Eintrittszeit (d. h. der Zeitgeberwert unmittelbar vor dem Ausgeben einer Anfrage, die VM einzulassen) und eine VM-Austrittszeit (z. B. dem Zeitgeberwert zu dem Zeitpunkt, das die Steuerung von der VM zurückerhalten worden ist) bestimmt werden und indem die VM-Eintrittszeit von der VM-Austrittszeit subtrahiert wird.
  • Im Verarbeitungsblock 404 berechnet die Verarbeitungslogik die aufgelaufene Zeit, die in der VM verbracht worden ist, indem die Zeit addiert wird, die während des letzten Eintritts in der VM verbracht worden ist, zu der zuvor berechneten aufgelaufenen Zeit addiert wird. Bei einer Ausführungsform berechnet die Verarbeitungslogik die aufgelaufene Zeit, die in der VM verbracht worden ist, wenn sie die Steuerung zurück von der VM erhält. Als Alternative berechnet die Verarbeitungslogik die aufgelaufene Zeit, die in der VM verbracht worden ist, wenn eine Anfrage ausgegeben wird, die Steuerung zu dieser VM zurückzugeben.
  • Wenn die Verarbeitungslogik entscheidet, die Steuerung an die VM zurückzugeben, liest sie den gegenwärtigen Wert des Zeitgebers (Verarbeitungsblock 606) und berechnet den Zeitgeber-Versetzungswert als eine Differenz zwischen der aufgelaufenen Zeit, die in der VM verbracht worden ist, und dem gegenwärtigen Wert des Zeitgebers (Verarbeitungsblock 408). Bei einer Ausführungsform ist der Zeitgeber-Versetzungswert ein mit Vorzeichen behafteter Wert.
  • 5 ist ein Ablaufdiagramm einer alternativen Ausführungsform eines Prozesses zum Berechnen eines Zeitgeber-Versetzungswertes für eine VM. Der Prozeß kann durch Verarbei tungslogik durchgeführt werden, die Hardware (z. B. Schaltung, besondere Logik, programmierbare Logik, Mikrocode usw.), Software (so wie die, die auf einem universellen Computersystem oder einer besonderen Maschine läuft) oder eine Kombination aus beiden aufweisen kann. Bei einer Ausführungsform wird der Prozeß 500 durch die Zeitgeber-Versetzungslogik 122 der 1 durchgeführt.
  • Mit Bezug auf 5 beginnt der Prozeß 500 damit, daß die Verarbeitungslogik ein Ereignis erfaßt, das mit einem Übergang der Steuerung von der VM1 zu dem VMM verbunden ist (Verarbeitungsblock 502).
  • Im Verarbeitungsblock 504 bestimmt die Verarbeitungslogik, ob ein Indikator zum Sichern des Zeitgebers freigegeben ist. Bei einer Ausführungsform ist der Indikator zum Sichern des Zeitgebers von dem VMM konfiguriert und in der VMCS gespeichert.
  • Wenn der Indikator zum Sichern des Zeitgebers freigegeben ist, sichert die Verarbeitungslogik einen gegenwärtigen Zeitgeberwert als einen VM1-Zeitgeberwert in einem Gast-Zeitgeberfeld (Verarbeitungsblock 506) und geht zum Verarbeitungsblock 508 weiter. Bei einer Ausführungsform ist das Gast-Zeitgeberfeld in der VMCS gespeichert.
  • Wenn der Indikator zum Sichern des Zeitgebers deaktiviert ist, überspringt die Verarbeitungslogik den Verarbeitungsblock 506 und geht direkt zum Verarbeitungsblock 508 weiter.
  • Im Verarbeitungsblock 508 übergibt die Verarbeitungslogik die Steuerung an den VMM.
  • Anschließend, im Verarbeitungsblock 510, erhält die Verarbeitungslogik eine Anfrage, die Steuerung an die VM1 zurückzugeben. Als Antwort bestimmt die Verarbeitungslogik, ob ein Indikator für das Anpassen der Versetzung freigegeben ist (Verarbeitungsblock 512). Bei einer Ausführungsform wird der Indikator für das Anpassen der Versetzung von dem VMM konfiguriert und in der VMCS gespeichert. Bei einer weiteren Ausführungsform werden der Indikator für das Sichern des Zeitgebers und der Indikator für das Anpassen der Versetzung durch denselben Indikator dargestellt, der sowohl am Verarbeitungsblock 504 als auch bei 512 überprüft wird. Bei einer weiteren Ausführungsform kann ein Zeitgeber-Versetzungsindikator bewertet werden, um festzustellen, ob Zeitgeber-Versetzung verwendet werden sollte. Bei einer Ausführungsform wird der Zeitgeber-Versetzungsindikator von dem VMM konfiguriert und in der VMCS gespeichert.
  • Wenn der Indikator für das Anpassen der Versetzung freigegeben ist, liest die Verarbeitungslogik den gegenwärtigen Zeitgeberwert (Verarbeitungsblock 514) und bestimmt die Differenz zwischen dem gegenwärtigen Zeitgeberwert und dem VM1-Zeitgeberwert, der im Verarbeitungsblock 506 gesichert worden ist, indem der gesicherte VM1-Zeitgeberwert von dem gegenwärtigen Zeitgeberwert subtrahiert wird (Verarbeitungsblock 516). Weiter berechnet die Verarbeitungslogik den angepaßten Zeitgeber-Versetzungswert, indem diese Differenz von dem Zeitgeber-Versetzungswert in dem Zeitgeber-Versetzungsfeld subtrahiert wird (Verarbeitungsblock 518). Bei einer Ausführungsform ist dieser angepaßte Zeitgeber-Versetzungswert in dem Zeitgeber-Versetzungsfeld gespeichert. Als nächstes übergibt die Verarbeitungslogik die Steuerung an die VM1 (Verarbeitungsblock 520).
  • Wenn der Indikator für das Anpassen der Versetzung deaktiviert ist, überspringt bei einer Ausführungsform die Verarbeitungslogik die Blöcke 514 bis 518 und geht direkt zum Verarbeitungsblock 520 weiter. Bei einer weiteren Ausführungsform, wenn der Indikator für das Anpassen der Versetzung deaktiviert ist, gewinnt die Prozeßlogik den Wert des Zeitgeber-Versetzungsfeldes zur Verwendung als dem angepaßten Zeitgeber-Versetzungswert zurück und geht dann zum Verarbeitungsblock 520 weiter.
  • Bei einer alternativen Ausführungsform wird bei einem VM-Austritt ein virtueller Gast-Zeitgeberwert berechnet (indem die Summe aus gegenwärtigem Zeitgeber-Versetzungswert und dem gegenwärtigen Wert des Zeitgebers berechnet wird) und in einem virtuellen Gast-Zeitgeberfeld gespeichert. Bei einer Ausführungsform ist das virtuelle Gast-Zeitgeberfeld in der VMCS gespeichert. Anschließend, beim VM-Eintritt, wird der Versetzungswert berechnet, indem der Zeitgeberwert zum Zeitpunkt des VM-Eintritts von dem virtuellen Gast-Zeitgeberwert subtrahiert wird. Während die VM ausführt, werden Versuche, den Zeitgeber zu lesen, den gegenwärtigen Wert des Zeitgebers, angepaßt durch den Versetzungswert, zurückgeben.
  • Somit sind ein Verfahren und eine Vorrichtung zum Steuerung des Zugriffs von VMs auf einen Zeitgeber beschrieben worden. Es soll verstanden werden, daß die obige Beschreibung als veranschaulichend und nicht als beschränkend gedacht ist. Viele weitere Ausführungsformen werden den Fachleuten beim Lesen und Verstehen der obigen Beschreibung deutlich werden. Der Umfang der Erfindung sollte daher mit Bezug auf die angefügten Ansprüche bestimmt werden, zusammen mit dem vollem Umfang an Äquivalenten, für die solche Ansprüche berechtigt sind.
  • Zusammenfassung
  • Bei einer Ausführungsform umfaßt ein Verfahren das Erhalten einer Anfrage, die Steuerung von einem Monitor für virtuelle Maschinen (VMM) an eine virtuelle Maschine (VM) zu übergeben, das Berechnen eines Versetzungswertes, das Empfangen, während des Betriebes der VM, einer Anfrage nach einem gegenwärtigen Wert des Zeitgebers, das Anpassen des gegenwärtigen Wertes des Zeitgebers basierend auf dem Versetzungswert und das Liefern des angepaßten Zeitgeberwertes an die VM.

Claims (29)

  1. Verfahren, das aufweist: Erhalten einer Anfrage, die Steuerung von einem Monitor für virtuelle Maschinen (VMM) an eine virtuelle Maschine (VM) zu übergeben; Berechnen eines Versetzungswertes; Empfangen, während des Betriebes der VM, einer Anfrage nach einem gegenwärtigen Wert eines Zeitgebers; Anpassen des gegenwärtigen Wertes des Zeitgebers basierend auf dem Versetzungswert; und Liefern des angepaßten Zeitgeberwertes an die VM.
  2. Verfahren nach Anspruch 1, das weiter aufweist: Übergeben der Steuerung an die VM nach dem Erhalt der Anfrage von dem VMM, wobei das Übergeben das Berechnen des Versetzungswertes umfaßt.
  3. Verfahren nach Anspruch 1, bei dem Berechnen des Vesetzungswertes aufweist: Bestimmen einer Differenz zwischen einem Zeitgeberwert, der beim Erhalt der Anfrage, die Steuerung an die VM zu übergeben, gelesen wurde und einem Zeitgeberwert, der beim Erfassen eines vorangehenden Ereignisses, das mit einer Übergabe der Steuerung von der VM an den VMM verbunden war, gesichert worden ist; und Subtrahieren der Differenz von einem Wert eines Zeitgeber-Versetzungsfeldes.
  4. Verfahren nach Anspruch 3, das weiter das Speichern des berechneten Zeitgeber-Versetzungswertes in dem Zeitgeber-Versetzungsfeld aufweist.
  5. Verfahren nach Anspruch 3, das weiter aufweist: vor dem Bestimmen der Differenz Feststellen, daß ein Indikator für das Anpassen der Zeitgeber-Versetzung auf einen Freigabewert gesetzt ist.
  6. Verfahren nach Anspruch 1, das weiter aufweist: Bestimmen, daß ein Indikator für das Anpassen der Zeitgeber-Versetzung auf einen Deaktiviert-Wert gesetzt ist; und Lesen eines Zeitgeber-Versetzungsfeldes, wobei ein Wert des Zeitgeber-Versetzungsfeldes anschließend als der Versetzungswert verwendet wird.
  7. Verfahren nach Anspruch 3, bei dem der Zeitgeberwert beim Erfassen des vorangegangenen Ereignisses, das mit dem Übergang der Steuerung an den VMM verbunden ist, gesichert wird, wenn ein Indikator für das Sichern des Zeitgebers freigegeben ist.
  8. Verfahren nach Anspruch 1, das weiter aufweist: Bestimmen, daß ein Indikator für die Zeitgeber-Zugriffssteuerung auf einen Austrittswert gesetzt ist; und Übergeben der Steuerung an den VMM als Antwort auf die Anfrage.
  9. Verfahren nach Anspruch 1, das weiter aufweist: Bestimmen, daß das Versetzen des Zeitgebers gesperrt ist; und Laden eines Versetzungsregisters mit Null.
  10. Vorrichtung, die aufweist: einen Monitor für virtuelle Maschinen (VMM); eine Datenstruktur, die von dem VMM gesteuert wird, wobei die Datenstruktur einen Versetzungswert für eine virtuelle Maschine (VM) speichert; und Zeitgeber-Zugriffslogik, um den Versetzungswert beim Empfang einer Anfrage, die Steuerung von dem VMM an die VM zu übergeben, zu berechnen und um einen Wert des Zeitgebers während eines Betriebes der VMM an die VM zu geben, wobei der Wert der Zeitgebung basierend auf dem Versetzungswert angepaßt wird.
  11. Vorrichtung nach Anspruch 10, bei der die Zeitgeber-Zugriffslogik weiter dazu dient, die Steuerung aufgrund des Empfangs der Anfrage von dem VMM an die VM zu übergeben, wobei das Übergeben das Berechnen des Versetzungswertes umfaßt.
  12. Vorrichtung nach Anspruch 10, bei der die Zeitgeber-Zugriffslogik dazu dient, den Versetzungswert zu berechnen, indem eine Differenz zwischen einem Zeitgeberwert, der beim Empfang der Anfrage, die Steuerung an die VM zu übergeben, gelesen wurde, und einem Zeitgeberwert, der beim Erfassen eines früheren Ereignisses, das mit Übergang der Steuerung von der VM an den VMM verbunden war, gesichert worden ist, bestimmt und die Differenz von einem Wert eines Zeitgeber-Versetzungsfeldes subtrahiert wird.
  13. Vorrichtung nach Anspruch 12, bei der die Datenstruktur weiter ein Zeitgeber-Versetzungsfeld umfaßt, welches den berechneten Zeitgeber-Versetzungswert speichert.
  14. Vorrichtung nach Anspruch 12, bei der die Datenstruktur weiter einen Indikator für das Anpassen der Zeitgeber-Versetzung umfaßt.
  15. Vorrichtung nach Anspruch 14, bei der die Zeitgeber-Zugriffslogik weiter feststellt, daß der Indikator zum Anpassen der Zeitgeber-Versetzung auf einen Freigabewert gesetzt ist, bevor die Differenz bestimmt wird.
  16. Vorrichtung nach Anspruch 12, bei der die Zeitgeber-Zugriffslogik weiter feststellt, daß ein Indikator zum Anpassen der Zeitgeber-Versetzung auf einen Deaktiviert-Wert gesetzt ist, und ein Zeitgeber-Versetzungsfeld liest, wobei ein Wert des Zeitgeber-Versetzungsfeldes anschließend als der Versetzungswert benutzt wird.
  17. Vorrichtung nach Anspruch 12, bei der die Datenstruktur einen Indikator zum Sichern des Zeitgebers speichert, der von der Zeitgeber-Zugriffslogik verwendet wird, um zu bestimmen, ob der Zeitgeberwert beim Erfassen des früheren Ereignisses, das mit dem Übergang der Steuerung an den VMM verbunden ist, zu sichern ist.
  18. Vorrichtung nach Anspruch 10, die weiter aufweist: ein Versetzungsregister, um den Versetzungswert zu speichern.
  19. System, das aufweist: einen Speicher, um einen Satz Felder zu speichern, die der Zeitgeber-Versetzung für eine virtuelle Maschine (VM) zugewiesen sind; und einen Prozessor, der an den Speicher gekoppelt ist, um den Satz Felder zu verwenden, die der Zeitgeber-Versetzung zugewiesen sind, um einen Versetzungswert zu berechnen und um während des Betriebes der VM einen Zeitgeberwert, angepaßt basierend auf dem Versetzungs wert, für die VM als Antwort auf eine Anfrage der VM nach einem gegenwärtigen Wert eines Zeitgebers zur Verfügung zu stellen.
  20. System nach Anspruch 19, bei dem der Prozessor den Versetzungswert berechnet, wenn er die Steuerung an die VM übergibt.
  21. Vorrichtung nach Anspruch 19, bei der der Prozessor weiter ein Versetzungsregister mit dem Versetzungswert lädt.
  22. System nach Anspruch 19, bei dem der Prozessor den Versetzungswert berechnet, indem er eine Differenz zwischen einem Zeitgeberwert, der beim Empfang der Anfrage, die Steuerung an die VM zu übergeben, und einem Zeitgeberwert, der beim Erfassen eines früheren Ereignisses, das mit einem Übergang der Steuerung von der VM an den VMM verbunden war, gesichert worden ist, bestimmt und die Differenz von einem Wert eines Zeitgeber-Versetzungsfeldes subtrahiert.
  23. System nach Anspruch 22, bei dem der Prozessor den Zeitgeberwert beim Empfang der Anfrage, die Steuerung an die VM zu übergeben, liest, wenn ein Indikator für das Anpassen der Zeitgeber-Versetzung freigegeben ist.
  24. System nach Anspruch 22, bei dem der Prozessor den Zeitgeberwert beim Erfassen des früheren Ereignisses, das mit dem Übergang der Steuerung an den VMM verbunden ist, sichert, wenn ein Indikator für das Sichern des Zeitgebers freigegeben ist.
  25. Maschinenlesbares Medium, welches Befehle enthält, die, wenn sie von einem Verarbeitungssystem ausgeführt werden, bewirken, daß das Verarbeitungssystem ein Verfahren durchführt, wobei das Verfahren aufweist: Empfangen einer Anfrage, die Steuerung von einem Monitor für virtuelle Maschinen (VMM) an eine virtuelle Maschine (VM) zu übergeben; Berechnen eines Versetzungswertes; Empfangen, während des Betriebes der VM, einer Anfrage nach einem gegenwärtigen Wert eines Zeitgebers; Anpassen des gegenwärtigen Wertes des Zeitgebers basierend auf dem Versetzungswert; und Liefern des angepaßten Versetzungswertes an die VM.
  26. Maschinenlesbares Medium nach Anspruch 25, bei dem das Verfahren weiter aufweist: Übergeben der Steuerung an die VM nach dem Empfangen der Anfrage von dem VMM, wobei das Übergeben des Berechnen des Versetzungswertes umfaßt.
  27. Maschinenlesbares Medium nach Anspruch 25, bei dem das Berechnen des Versetzungswertes aufweist: Bestimmen einer Differenz zwischen einem Zeitgeberwert, der beim Empfangen der Anfrage, die Steuerung an die VM zu übergeben, gelesen worden ist, und einem Zeitgeberwert, der beim Erfassen eines früheren Ereignisses, das mit dem Übergang der Steuerung von der VM an den VMM verbunden ist, gesichert worden ist; und Subtrahieren der Differenz von einem Wert eines Zeitgeber-Versetzungsfeldes.
  28. Maschinenlesbares Medium nach Anspruch 27, bei dem der Zeitgeberwert beim Empfang der Anfrage, die Steuerung an die VM zu übergeben, gelesen wird, wenn ein Indikator für das Anpassen der Zeitgeber-Versetzung aktiviert ist.
  29. Maschinenlesbares Medium nach Anspruch 27, bei dem der Zeitgeberwert beim Erfassen des früheren Ereignisses, das mit dem Übergang der Steuerung an den VMM verbunden ist, gesichert wird, wenn ein Indikator für das Sichern des Zeitgebers aktiviert ist.
DE112005002347T 2004-10-29 2005-10-31 Zeitgeber-Versetzungsmechanismus in der Umgebung einer virtuellen Maschine Ceased DE112005002347T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/976,970 US8146078B2 (en) 2004-10-29 2004-10-29 Timer offsetting mechanism in a virtual machine environment
US10/976,970 2004-10-29
PCT/US2005/040450 WO2006050534A1 (en) 2004-10-29 2005-10-31 Timer offsetting mechanism in a virtual machine environment

Publications (1)

Publication Number Publication Date
DE112005002347T5 true DE112005002347T5 (de) 2007-09-20

Family

ID=35717704

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005002347T Ceased DE112005002347T5 (de) 2004-10-29 2005-10-31 Zeitgeber-Versetzungsmechanismus in der Umgebung einer virtuellen Maschine

Country Status (5)

Country Link
US (1) US8146078B2 (de)
JP (1) JP4584315B2 (de)
CN (1) CN100481010C (de)
DE (1) DE112005002347T5 (de)
WO (1) WO2006050534A1 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7475002B1 (en) * 2004-02-18 2009-01-06 Vmware, Inc. Method and apparatus for emulating multiple virtual timers in a virtual computer system when the virtual timers fall behind the real time of a physical computer system
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8739156B2 (en) * 2007-07-24 2014-05-27 Red Hat Israel, Ltd. Method for securing the execution of virtual machines
CN101441498B (zh) * 2007-11-19 2010-06-09 联想(北京)有限公司 虚拟机监视器、虚拟机系统及其时钟分配使用方法
US8181175B1 (en) * 2008-01-28 2012-05-15 Hewlett-Packard Development Company, L.P. Accounting for resource usage time by a virtual machine
US10127059B2 (en) 2008-05-02 2018-11-13 Skytap Multitenant hosted virtual machine infrastructure
US8327357B2 (en) * 2009-08-31 2012-12-04 Red Hat, Inc. Mechanism for virtual time stamp counter acceleration
US8700943B2 (en) * 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads
US8468524B2 (en) * 2010-10-13 2013-06-18 Lsi Corporation Inter-virtual machine time profiling of I/O transactions
US8650564B2 (en) * 2010-10-19 2014-02-11 Vmware, Inc. Method and system for synchronizing fault-tolerant virtual machines and adjusting CPU resource limit based on execution latency
US9459652B1 (en) * 2010-10-22 2016-10-04 Vmware, Inc. Virtual reference clock for virtual machines
US8490089B2 (en) * 2010-11-05 2013-07-16 Advanced Micro Devices, Inc. Guest timer facility to improve management in a virtualized processing system
BRPI1101401A2 (pt) * 2011-03-29 2013-06-04 Inst Alberto Luiz Coimbra De Pos Graduacao E Pesquisas De Engenharia Coppe Ufrj relàgio virtual estritamente crescente para temporizaÇço de alta precisço de programas em sistemas de multiprocessamento
US9183054B2 (en) 2012-06-30 2015-11-10 International Business Machines Corporation Maintaining hardware resource bandwidth quality-of-service via hardware counter
WO2014118961A1 (ja) * 2013-01-31 2014-08-07 富士通株式会社 仮想計算機管理プログラム,仮想計算機管理方法及び仮想計算機システム
US9703951B2 (en) 2014-09-30 2017-07-11 Amazon Technologies, Inc. Allocation of shared system resources
US9378363B1 (en) * 2014-10-08 2016-06-28 Amazon Technologies, Inc. Noise injected virtual timer
US9754103B1 (en) 2014-10-08 2017-09-05 Amazon Technologies, Inc. Micro-architecturally delayed timer
US9864636B1 (en) 2014-12-10 2018-01-09 Amazon Technologies, Inc. Allocating processor resources based on a service-level agreement
US9491112B1 (en) 2014-12-10 2016-11-08 Amazon Technologies, Inc. Allocating processor resources based on a task identifier
US10203977B2 (en) 2015-11-25 2019-02-12 Red Hat Israel, Ltd. Lazy timer programming for virtual machines
JP6510430B2 (ja) * 2016-01-18 2019-05-08 株式会社日立製作所 トレースデータ編集装置及び方法
US10459747B2 (en) 2016-07-05 2019-10-29 Red Hat Israel, Ltd. Exitless timer access for virtual machines
US10521256B2 (en) * 2016-08-30 2019-12-31 Red Had Israel, Ltd. Virtual machine migration acceleration with page state indicators
CN108241522B (zh) * 2016-12-27 2022-05-17 阿里巴巴集团控股有限公司 虚拟化环境中的睡眠状态切换方法、装置及电子设备
US20190042295A1 (en) * 2018-06-29 2019-02-07 Intel Corporation Timing compensation for a timestamp counter
CN109471588B (zh) * 2018-09-13 2021-08-10 北京米文动力科技有限公司 一种同步方法及设备
US11556365B2 (en) 2019-09-24 2023-01-17 International Business Machines Corporation Obscuring information in virtualization environment
US11579650B2 (en) * 2019-12-19 2023-02-14 Advanced Micro Devices, Inc. Method and apparatus for synchronizing the time stamp counter

Family Cites Families (238)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699532A (en) 1970-04-21 1972-10-17 Singer Co Multiprogramming control for a data handling system
US3996449A (en) 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4162536A (en) 1976-01-02 1979-07-24 Gould Inc., Modicon Div. Digital input/output system and method
US4037214A (en) 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4247905A (en) 1977-08-26 1981-01-27 Sharp Kabushiki Kaisha Memory clear system
US4278837A (en) 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4276594A (en) 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4207609A (en) 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
JPS5823570B2 (ja) 1978-11-30 1983-05-16 国産電機株式会社 液面検出装置
JPS5576447A (en) 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4307447A (en) 1979-06-19 1981-12-22 Gould Inc. Programmable controller
US4319323A (en) 1980-04-04 1982-03-09 Digital Equipment Corporation Communications device for data processing system
US4419724A (en) 1980-04-14 1983-12-06 Sperry Corporation Main bus interface package
US4366537A (en) 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4403283A (en) 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
DE3034581A1 (de) 1980-09-13 1982-04-22 Robert Bosch Gmbh, 7000 Stuttgart Auslesesicherung bei einchip-mikroprozessoren
JPS58140862A (ja) 1982-02-16 1983-08-20 Toshiba Corp 相互排他方式
US4521852A (en) 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
JPS59111561A (ja) 1982-12-17 1984-06-27 Hitachi Ltd 複合プロセツサ・システムのアクセス制御方式
US4759064A (en) 1985-10-07 1988-07-19 Chaum David L Blind unanticipated signature systems
US4975836A (en) 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
JPS61206057A (ja) 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
JPS62154037A (ja) * 1985-12-26 1987-07-09 Hitachi Ltd 仮想計算機監視制御方式
FR2592510B1 (fr) 1985-12-31 1988-02-12 Bull Cp8 Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire
JPH0644237B2 (ja) * 1986-04-09 1994-06-08 株式会社日立製作所 仮想計算機システムのタイマ制御方法
FR2601476B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire
FR2601525B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique
FR2601535B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission
JPS63182749A (ja) * 1987-01-26 1988-07-28 Nec Corp 計算機システムのタイマ制御装置
FR2618002B1 (fr) 1987-07-10 1991-07-05 Schlumberger Ind Sa Procede et systeme d'authentification de cartes a memoire electronique
JPS6459435A (en) * 1987-08-29 1989-03-07 Nec Corp Virtual system for idle timer in virtual computer system
JPH01309136A (ja) * 1988-06-08 1989-12-13 Hitachi Ltd 仮想タイマー加速制御方式
US5007082A (en) 1988-08-03 1991-04-09 Kelly Services, Inc. Computer software encryption apparatus
US5079737A (en) 1988-10-25 1992-01-07 United Technologies Corporation Memory management unit for the MIL-STD 1750 bus
US5434999A (en) 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
FR2640798B1 (fr) 1988-12-20 1993-01-08 Bull Cp8 Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable
JPH02171934A (ja) 1988-12-26 1990-07-03 Hitachi Ltd 仮想計算機システム
JPH02208740A (ja) 1989-02-09 1990-08-20 Fujitsu Ltd 仮想計算機制御方式
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5442645A (en) 1989-06-06 1995-08-15 Bull Cp8 Method for checking the integrity of a program or data, and apparatus for implementing this method
JP2590267B2 (ja) 1989-06-30 1997-03-12 株式会社日立製作所 仮想計算機における表示制御方式
US5022077A (en) 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
JP2825550B2 (ja) 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
CA2010591C (en) 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
CA2027799A1 (en) 1989-11-03 1991-05-04 David A. Miller Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5075842A (en) 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
EP0473913A3 (en) 1990-09-04 1992-12-16 International Business Machines Corporation Method and apparatus for providing a service pool of virtual machines for a plurality of vm users
US5108590A (en) 1990-09-12 1992-04-28 Disanto Dennis Water dispenser
US5230069A (en) 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
US5317754A (en) * 1990-10-23 1994-05-31 International Business Machines Corporation Method and apparatus for enabling an interpretive execution subset
US5381535A (en) * 1990-10-24 1995-01-10 International Business Machines Corporation Data processing control of second-level quest virtual machines without host intervention
US5317705A (en) 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5287363A (en) 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures
US5437033A (en) 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
US5255379A (en) 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US5453003A (en) 1991-01-09 1995-09-26 Pfefferle; William C. Catalytic method
US5551033A (en) 1991-05-17 1996-08-27 Zenith Data Systems Corporation Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
JPH04348434A (ja) 1991-05-27 1992-12-03 Hitachi Ltd 仮想計算機システム
US5522075A (en) 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5319760A (en) 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5455909A (en) 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
US5636373A (en) * 1991-09-04 1997-06-03 International Business Machines Corporation System for synchronizing logical clock in logical partition of host processor with external time source by combining clock adjustment value with specific value of partition
JPH06236284A (ja) 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
US5627987A (en) 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
JPH05158710A (ja) * 1991-12-09 1993-06-25 Toshiba Corp タイマ管理方式
US5574936A (en) 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5486529A (en) 1992-04-16 1996-01-23 Zeneca Limited Certain pyridyl ketones for treating diseases involving leukocyte elastase
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5237616A (en) 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
US5293424A (en) 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
US5796835A (en) 1992-10-27 1998-08-18 Bull Cp8 Method and system for writing information in a data carrier making it possible to later certify the originality of this information
JP2765411B2 (ja) 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
EP0600112A1 (de) 1992-11-30 1994-06-08 Siemens Nixdorf Informationssysteme Aktiengesellschaft Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
US5668971A (en) 1992-12-01 1997-09-16 Compaq Computer Corporation Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer
EP0602867A1 (de) 1992-12-17 1994-06-22 NCR International, Inc. Vorrichtung zur Sicherheit einer Systemplattform
JPH06187178A (ja) 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
US5483656A (en) 1993-01-14 1996-01-09 Apple Computer, Inc. System for managing power consumption of devices coupled to a common bus
US5469557A (en) 1993-03-05 1995-11-21 Microchip Technology Incorporated Code protection in microcontroller with EEPROM fuses
FR2703800B1 (fr) 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
FR2704341B1 (fr) 1993-04-22 1995-06-02 Bull Cp8 Dispositif de protection des clés d'une carte à puce.
JPH06348867A (ja) 1993-06-04 1994-12-22 Hitachi Ltd マイクロコンピュータ
FR2706210B1 (fr) 1993-06-08 1995-07-21 Bull Cp8 Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants.
US5555385A (en) 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
US5825880A (en) 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
US5459869A (en) 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
US5604805A (en) 1994-02-28 1997-02-18 Brands; Stefanus A. Privacy-protected transfer of electronic information
FR2717286B1 (fr) 1994-03-09 1996-04-05 Bull Cp8 Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant.
US5684881A (en) 1994-05-23 1997-11-04 Matsushita Electric Industrial Co., Ltd. Sound field and sound image control apparatus and method
US5539828A (en) 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5533123A (en) 1994-06-28 1996-07-02 National Semiconductor Corporation Programmable distributed personal security
US5978481A (en) 1994-08-16 1999-11-02 Intel Corporation Modem compatible method and apparatus for encrypting data that is transparent to software applications
JPH0883211A (ja) 1994-09-12 1996-03-26 Mitsubishi Electric Corp データ処理装置
DE69534757T2 (de) 1994-09-15 2006-08-31 International Business Machines Corp. System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften
US6058478A (en) 1994-09-30 2000-05-02 Intel Corporation Apparatus and method for a vetted field upgrade
FR2725537B1 (fr) 1994-10-11 1996-11-22 Bull Cp8 Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe
US5903752A (en) 1994-10-13 1999-05-11 Intel Corporation Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US5606617A (en) 1994-10-14 1997-02-25 Brands; Stefanus A. Secret-key certificates
US5564040A (en) 1994-11-08 1996-10-08 International Business Machines Corporation Method and apparatus for providing a server function in a logically partitioned hardware machine
US6269392B1 (en) * 1994-11-15 2001-07-31 Christian Cotichini Method and apparatus to monitor and locate an electronic device using a secured intelligent agent
US5560013A (en) 1994-12-06 1996-09-24 International Business Machines Corporation Method of using a target processor to execute programs of a source architecture that uses multiple address spaces
US5555414A (en) 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
US5615263A (en) 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5764969A (en) 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
FR2731536B1 (fr) 1995-03-10 1997-04-18 Schlumberger Ind Sa Procede d'inscription securisee d'informations dans un support portable
US5717903A (en) 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
JP3451595B2 (ja) 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5684948A (en) 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5633929A (en) 1995-09-15 1997-05-27 Rsa Data Security, Inc Cryptographic key escrow system having reduced vulnerability to harvesting attacks
US5737760A (en) 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
US6093213A (en) 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
JP3693721B2 (ja) 1995-11-10 2005-09-07 Necエレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
IL116708A (en) 1996-01-08 2000-12-06 Smart Link Ltd Real-time task manager for a personal computer
WO1997025798A1 (en) 1996-01-11 1997-07-17 Mrj, Inc. System for controlling access and distribution of digital property
US5657445A (en) 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5835594A (en) * 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
SE508585C2 (sv) * 1996-02-14 1998-10-19 Ericsson Telefon Ab L M Fas och frekvensdetekorer för ett på förhand bestämt antal insignaler, jämte förfarande för mätning av fas och frekvens
US5978892A (en) 1996-05-03 1999-11-02 Digital Equipment Corporation Virtual memory allocation in a virtual address space having an inaccessible gap
US5809546A (en) 1996-05-23 1998-09-15 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
US6205550B1 (en) * 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US6178509B1 (en) 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6175925B1 (en) 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US5729760A (en) 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US5944821A (en) 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5740178A (en) 1996-08-29 1998-04-14 Lucent Technologies Inc. Software for controlling a reliable backup memory
US6055637A (en) 1996-09-27 2000-04-25 Electronic Data Systems Corporation System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential
US5844986A (en) 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5937063A (en) 1996-09-30 1999-08-10 Intel Corporation Secure boot
US5935242A (en) 1996-10-28 1999-08-10 Sun Microsystems, Inc. Method and apparatus for initializing a device
JPH10134008A (ja) 1996-11-05 1998-05-22 Mitsubishi Electric Corp 半導体装置およびコンピュータシステム
US5852717A (en) 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
DE19649292A1 (de) * 1996-11-28 1998-06-04 Deutsche Telekom Ag Verfahren zum Sichern eines durch eine Schlüsselhierarchie geschützten Systems
US5901225A (en) 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US5818939A (en) 1996-12-18 1998-10-06 Intel Corporation Optimized security functionality in an electronic system
US6412035B1 (en) 1997-02-03 2002-06-25 Real Time, Inc. Apparatus and method for decreasing the response times of interrupt service routines
US5953502A (en) 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
JP4000654B2 (ja) 1997-02-27 2007-10-31 セイコーエプソン株式会社 半導体装置及び電子機器
US6272637B1 (en) * 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US6557104B2 (en) 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
US6044478A (en) 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6075938A (en) 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US5987557A (en) 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6175924B1 (en) 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6035374A (en) 1997-06-25 2000-03-07 Sun Microsystems, Inc. Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency
US6584565B1 (en) 1997-07-15 2003-06-24 Hewlett-Packard Development Company, L.P. Method and apparatus for long term verification of digital signatures
US6014745A (en) 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
US6212635B1 (en) * 1997-07-18 2001-04-03 David C. Reardon Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place
US5978475A (en) 1997-07-18 1999-11-02 Counterpane Internet Security, Inc. Event auditing system
US5919257A (en) 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
DE19735948C1 (de) 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6282657B1 (en) 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
US5935247A (en) 1997-09-18 1999-08-10 Geneticware Co., Ltd. Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same
US6148379A (en) 1997-09-19 2000-11-14 Silicon Graphics, Inc. System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system
US6182089B1 (en) * 1997-09-23 2001-01-30 Silicon Graphics, Inc. Method, system and computer program product for dynamically allocating large memory pages of different sizes
US5970147A (en) 1997-09-30 1999-10-19 Intel Corporation System and method for configuring and registering a cryptographic device
US6357004B1 (en) 1997-09-30 2002-03-12 Intel Corporation System and method for ensuring integrity throughout post-processing
US6061794A (en) 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US6085296A (en) 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6219787B1 (en) 1997-12-22 2001-04-17 Texas Instruments Incorporated Method and apparatus for extending security model to native code
US6128318A (en) * 1998-01-23 2000-10-03 Philips Electronics North America Corporation Method for synchronizing a cycle master node to a cycle slave node using synchronization information from an external network or sub-network which is supplied to the cycle slave node
US6378072B1 (en) 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
US6308270B1 (en) * 1998-02-13 2001-10-23 Schlumberger Technologies, Inc. Validating and certifying execution of a software program with a smart card
US6108644A (en) 1998-02-19 2000-08-22 At&T Corp. System and method for electronic transactions
US6131166A (en) 1998-03-13 2000-10-10 Sun Microsystems, Inc. System and method for cross-platform application level power management
US6192455B1 (en) * 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6374286B1 (en) 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
JP3898332B2 (ja) * 1998-04-17 2007-03-28 富士通株式会社 タイマ自動制御装置および記録媒体
US6173417B1 (en) 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
FR2778998B1 (fr) 1998-05-20 2000-06-30 Schlumberger Ind Sa Procede d'authentification d'un code personnel d'un utilisateur d'une carte a circuit integre
DE69942712D1 (de) 1998-05-29 2010-10-14 Texas Instruments Inc Sichere Rechnervorrichtung
US6421702B1 (en) 1998-06-09 2002-07-16 Advanced Micro Devices, Inc. Interrupt driven isochronous task scheduler system
US6339815B1 (en) 1998-08-14 2002-01-15 Silicon Storage Technology, Inc. Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space
US6505279B1 (en) 1998-08-14 2003-01-07 Silicon Storage Technology, Inc. Microcontroller system having security circuitry to selectively lock portions of a program memory address space
JP2000076139A (ja) 1998-08-28 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> 携帯型情報記憶媒体
US6363485B1 (en) 1998-09-09 2002-03-26 Entrust Technologies Limited Multi-factor biometric authenticating device and method
US6209106B1 (en) * 1998-09-30 2001-03-27 International Business Machines Corporation Method and apparatus for synchronizing selected logical partitions of a partitioned information handling system to an external time reference
US6463535B1 (en) 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US6230248B1 (en) 1998-10-12 2001-05-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for pre-validating regions in a virtual addressing scheme
US6330670B1 (en) 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US6609199B1 (en) 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6327652B1 (en) 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US7194092B1 (en) 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6445797B1 (en) 1998-12-16 2002-09-03 Secure Choice Llc Method and system for performing secure electronic digital streaming
US6463537B1 (en) 1999-01-04 2002-10-08 Codex Technologies, Inc. Modified computer motherboard security and identification system
US6282650B1 (en) 1999-01-25 2001-08-28 Intel Corporation Secure public digital watermark
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6560627B1 (en) 1999-01-28 2003-05-06 Cisco Technology, Inc. Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore
US6188257B1 (en) * 1999-02-01 2001-02-13 Vlsi Technology, Inc. Power-on-reset logic with secure power down capability
EP1030237A1 (de) 1999-02-15 2000-08-23 Hewlett-Packard Company Vertrautes Hardware-Gerät in einem Rechner
US6272533B1 (en) 1999-02-16 2001-08-07 Hendrik A. Browne Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device
US7225333B2 (en) 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6615278B1 (en) 1999-03-29 2003-09-02 International Business Machines Corporation Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment
US6684326B1 (en) 1999-03-31 2004-01-27 International Business Machines Corporation Method and system for authenticated boot operations in a computer system of a networked computing environment
US6651171B1 (en) 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6389537B1 (en) 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
US6275933B1 (en) 1999-04-30 2001-08-14 3Com Corporation Security system for a computerized apparatus
EP1056014A1 (de) 1999-05-28 2000-11-29 Hewlett-Packard Company System und Verfahren zur Versorgung einer vertrauenswürdigen Benutzerschnittstelle
EP1055989A1 (de) 1999-05-28 2000-11-29 Hewlett-Packard Company System zum digitalen Unterschreiben von einem Dokument
US6321314B1 (en) 1999-06-09 2001-11-20 Ati International S.R.L. Method and apparatus for restricting memory access
US6633981B1 (en) 1999-06-18 2003-10-14 Intel Corporation Electronic system and method for controlling access through user authentication
US6158546A (en) 1999-06-25 2000-12-12 Tenneco Automotive Inc. Straight through muffler with conically-ended output passage
US6301646B1 (en) 1999-07-30 2001-10-09 Curl Corporation Pointer verification system and method
US6529909B1 (en) 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
JP2001148344A (ja) * 1999-09-09 2001-05-29 Nikon Corp 露光装置、エネルギ源の出力制御方法、該方法を用いるレーザ装置、及びデバイス製造方法
EP1085396A1 (de) 1999-09-17 2001-03-21 Hewlett-Packard Company Betrieb von gesicherten Zustand in einer Computerplattform
US6535988B1 (en) 1999-09-29 2003-03-18 Intel Corporation System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate
US6374317B1 (en) 1999-10-07 2002-04-16 Intel Corporation Method and apparatus for initializing a computer interface
US6292874B1 (en) 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
JP2001229037A (ja) * 2000-02-16 2001-08-24 Hitachi Ltd 仮想計算機システムの計時方式
AU2001251701A1 (en) 2000-02-25 2001-09-03 Identix Incorporated Secure transaction system
WO2001065366A1 (en) 2000-03-02 2001-09-07 Alarity Corporation System and method for process protection
JP3710671B2 (ja) 2000-03-14 2005-10-26 シャープ株式会社 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
CA2341931C (en) 2000-03-24 2006-05-30 Contentguard Holdings, Inc. System and method for protection of digital works
US6678825B1 (en) 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US6633963B1 (en) 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
JP2002049605A (ja) * 2000-08-02 2002-02-15 Fujitsu Ltd タイマ調整システム
GB0020416D0 (en) 2000-08-18 2000-10-04 Hewlett Packard Co Trusted system
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US7631160B2 (en) 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
US6976136B2 (en) 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US7676430B2 (en) 2001-05-09 2010-03-09 Lenovo (Singapore) Ptd. Ltd. System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset
EP1271277A3 (de) 2001-06-26 2003-02-05 Redstrike B.V. Sicherheitssystem und Verfahren zur Verhinderung der unbefugten Benutzung eines Rechners
US20030018892A1 (en) 2001-07-19 2003-01-23 Jose Tello Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer
US7191464B2 (en) 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
US7103771B2 (en) 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US7308576B2 (en) 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US20030126453A1 (en) 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7107460B2 (en) 2002-02-15 2006-09-12 International Business Machines Corporation Method and system for securing enablement access to a data security device
US7343493B2 (en) 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US7463599B2 (en) * 2002-05-17 2008-12-09 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for minimizing time of reception during paging
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7155629B2 (en) * 2003-04-10 2006-12-26 International Business Machines Corporation Virtual real time clock maintenance in a logically partitioned computer system
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information

Also Published As

Publication number Publication date
CN101044458A (zh) 2007-09-26
CN100481010C (zh) 2009-04-22
WO2006050534A1 (en) 2006-05-11
JP2008518367A (ja) 2008-05-29
US20060130059A1 (en) 2006-06-15
US8146078B2 (en) 2012-03-27
JP4584315B2 (ja) 2010-11-17

Similar Documents

Publication Publication Date Title
DE112005002347T5 (de) Zeitgeber-Versetzungsmechanismus in der Umgebung einer virtuellen Maschine
DE112004003066B4 (de) Verwendung mehrerer Monitore virtueller Maschinen zur Abwicklung priviligierter Ereignisse
DE112005002360T5 (de) Bereitstellung einer Unterstützung für einen Zeitgeber, der einem Virtual-Machine-Monitor zugeordnet ist
DE10394383B4 (de) Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems
DE60031404T2 (de) Verfahren und vorrichtung zur dynamischen änderung der grössen von pools, die die leistungsaufnahme von speichern steuern
DE102012218379B4 (de) Paravirtualisierte virtuelle GPU
DE4309532C2 (de) Verfahren zum Sichern einer Systemabbildung eines Computersystems auf einer permanenten Speichereinrichtung sowie ein Computersystem
DE102020120019A1 (de) Proaktive di/dt-spannungs-dachabfall-abschwächung
DE102006061939A1 (de) Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast
DE102020122528A1 (de) Softwareunterstütztes Leistungsmanagement
DE112010005821T5 (de) Kontextwechsel
DE112004001652B4 (de) Vektorieren eines Interrupt oder einer Ausnahme bei Wiederaufnahme des Betriebes einer virtuellen Maschine
DE112013002995B4 (de) Echtzeitmessung von Virtualisierungs-E/A-Verarbeitungsverzögerungen
DE10393679T5 (de) Verfahren und Systeme zum Verwalten des Maschinenzustands bei Operationen virtueller Maschinen
DE112015006934T5 (de) Verschachtelte Virtualisierung für virtuelle Maschinenexits
DE69634624T2 (de) Vorrichtung zur Ereignisverwaltung
DE112015007188T5 (de) Batch-Migration virtueller Maschinen während des aktiven Bertriebs
DE112020000280B4 (de) Transparente interpretation von gastbefehlen in einer sicheren virtuellen maschinenumgebung
DE102012220029A1 (de) Spekulative Ausführung und Zurücksetzen
DE112016004297T5 (de) Technologien für mehrstufige virtualisierung
DE112011105298T5 (de) Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors
DE10393662T5 (de) Bereitstellen eines sicheren Ausführungsmodus in einer Preboot-Umgebung
DE112007000812T5 (de) Transaktionalspeicher in Out-of-Order-Prozessoren
DE112012001660T5 (de) Speicher-Checkpointing in einem System gespiegelter virtueller Maschinen
DE112016005823T5 (de) Überwachen des betriebs eines prozessors

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R003 Refusal decision now final
R011 All appeals rejected, refused or otherwise settled
R003 Refusal decision now final

Effective date: 20141211