DE112005002347T5 - Zeitgeber-Versetzungsmechanismus in der Umgebung einer virtuellen Maschine - Google Patents
Zeitgeber-Versetzungsmechanismus in der Umgebung einer virtuellen Maschine Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
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.
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 und5 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 Umgebung100 einer virtuellen Maschine, in der die vorliegende Erfindung arbeiten kann. Bei dieser Ausführungsform weist eine Rohplattform-Hardware116 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 VMM112 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 VMM112 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-Hardware116 umfaßt einen Prozessor118 und einen Speicher120 . - 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 Prozessor118 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 die1 nur einen derartigen Prozessor118 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 Prozessor118 gelesen werden kann. Der Speicher120 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 VMs102 und114 . Die Gast-Software, die auf jeder VM läuft, kann ein Gast-OS, so wie ein Gast-OS104 oder106 , und verschiedene Gast-Softwareanwendungen108 und110 umfassen. Jedes der Gast-OSs104 und106 erwartet es, auf physikalische Ressourcen (z. B. Prozessorregister, Speicher und I/O-Vorrichtungen) innerhalb der VMs102 und114 zuzugreifen, auf denen die Gast-OS104 oder106 läuft, und weitere Funktionen durchzuführen. Zum Beispiel erwarten es die Gast-OSs104 und106 , 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 VMs102 und114 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 VMM112 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 VMM112 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 VMs102 und114 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 VMM112 wird hierin als ein VM-Austritt bezeichnet. Nach dem Vereinfachen des Ressourcenzugriffs oder dem geeigneten Handhaben des Ereignisses kann der VMM112 die Steuerung an die Gast-Software zurückgeben. Der Übergang der Steuerung von dem VMM112 an die Gast-Software wird als ein VM-Eintritt bezeichnet. - Bei einer Ausführungsform steuert der Prozessor
118 den Betrieb der VMs102 und114 entsprechend Daten, die in der Steuerstruktur einer virtuellen Maschine (VMCS – Virtual Machine Control Structure)124 gespeichert sind. Die VMCS124 ist eine Struktur, die einen Zustand der Gast-Software, einen Zustand des VMM112 , Ausführungssteuerinformation, die angibt, wie der VMM112 wünscht, den Betrieb der Gas-Software zu steuern, Information, die Übergänge zwischen dem VMM112 und einer VM steuern usw., enthalten kann. Der Prozessor118 liest Information aus der VMCS124 , um die Ausführungsumgebung der VM zu bestimmen und ihr Verhalten zu beschränken. Bei einer Ausführungsform ist die VMCS im Speicher120 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 VMM112 die den Zeitstempelzähler (TSC) benutzen, um diese Funktionen auszuführen. Es kann auch sein, daß jede der VMs102 und114 den Zeitgeber verwenden muß, um Zeitgebungsschleifen zu kalibrieren und die Optimierung der Leistungsfähigkeit durchzuführen. Da die VMs102 und114 keine Kenntnis voneinander oder von dem VMM112 haben, kann es sein, daß die Werte des Zeitgebers, die der VM102 oder114 zur Verfügung gestellt werden, angepaßt werden müssen, um die Illusion zu vermitteln, daß das Gast-OS104 oder106 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-OSs104 und106 aufrechtzuerhalten. Bei einer Ausführungsform umfaßt der Zeitgeber-Versetzungsmechanismus ein Zeitgeber-Versetzungskonfigurationsmodul126 und Zeitgeber-Zugriffslogik122 . - 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 VM102 oder114 angefragt wird. Bei einer Ausführungsform können diese Werte einen Versetzungswert umfassen, welcher eine Versetzung festgelegt, die von dem Prozessor118 verwendet wird, wenn Zeitgeberwerte an die VM102 oder114 gegeben werden, und einen Zeitgeber-Versetzungsindikator, der festlegt, ob die Zeitgeber-Versetzung für die VM102 oder114 freigegeben ist. Bei einer Ausführungsform ist der Zeitgeber-Versetzungswert ein mit Vorzeichen behafteter Wert, was es dem VMM112 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 VM102 oder114 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 oder114 die Ansammlung von Zeitintervallen, während derer diese VM aufgrund der Ausführung durch den VMM112 und die andere VM nicht gelaufen ist. Zum Beispiel sei angenommen, daß, wenn der Wert des Zeitgebers 1000 Ticks ist, die VM102 erwartet, daß der Wert des Zeitgebers 1000 ist. Dann, bei 1500 Ticks, kann die VM102 durch einen VM-Austritt unterbrochen werden, gefolgt von der Ausführung durch den VMM112 über 100 Ticks (Zeitgeberwert 1600 Ticks), wonach der VMM112 anfragen kann, die VM114 eintreten zu lassen. Die VM114 kann dann 600 Ticks lang ausführen (Zeitgeberwert 2200 Ticks), bis zu einem VM-Austritt, was zu der Ausführung durch den VMM112 über 200 Ticks führt (Zeitgeberwert 2400), der dann anfragen kann, die VM102 wieder eintreten zu lassen. Zum Zeitpunkt des erneuten Eintritts erwartet die VM102 , daß der Zeitgeber den Wert 1500 Ticks hat. Stattdessen ist der tatsächliche Zeitgeberwert zu diesem Zeitpunkt 2400 Ticks. Der Versetzungswert, der von dem VMM112 für die VM102 zur Verfügung gestellt wird, wird 900 Ticks sein, was der Sammelwert für die Zeitintervalle ist, während derer die VM102 aufgrund der Ausführung durch die VM114 und dem VMM112 nicht gelaufen ist. Somit würde der VMM112 den Versetzungswert 900 im Zeitgeber-Versetzungsfeld speichern, so daß, wenn die VM102 versucht, den Zeitgeber zu lesen, der Wert, der an die VM102 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 VM102 erwartet wird, berechnet wird. Bei einer alternativen Ausführungsform wird der Wert, der an die VM102 gegeben wird, wenn sie versucht, den Zeitgeber zu lesen, berechnet, indem der gegenwärtige Zeitgeberwert zu dem Versetzungswert addiert wird, der durch den VMM112 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 Prozessor118 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 Prozessor118 , einer Kombination aus Speicher120 und dem Prozessor118 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 VMs102 und114 gehalten. Als Alternative werden dieselben Felder und Steuerungen, die der Zeitgeber-Versetzung zugewiesen sind, für beide VMs102 und144 gehalten und werden vor jedem VM-Eintritt von dem VMM112 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 VMM112 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-Zugriffslogik122 , die für das Virtualisieren von Zugriffen der VM102 und114 auf den Zeitgeber basierend auf den Zeitgeber-Versetzungswerten verantwortlich ist. Wenn insbesondere die Zeitgeber-Zugriffslogik122 bestimmt, daß die Zeitgeber-Versetzung freigegeben ist, liefert sie einen angepaßten Zeitgeberwert an die VM102 oder114 . Bei einer Ausführungsform bestimmt die Zeitgeber-Zugriffslogik122 , ob die Zeitgeber-Versetzung freigegeben ist, indem ein Indikatorwert für die Zeitgeber-Versetzung überprüft wird. Bei einer Ausführungsform, wenn die Zeitgeber-Zugriffslogik122 eine Anfrage nach einem gegenwärtigen Wert des Zeitgebers von der VM102 oder114 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 VM102 oder114 zurück, was somit der VM102 oder114 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 und114 von dem VMM112 bestimmt werden (z.B. durch das Konfigurationsmodul126 für die Zeitgeber-Versetzung). Eine Ausführungsform eines Prozesses zum Bestimmen eines Versetzungswertes durch den VMM112 wird in weiteren Einzelheiten hiernach im Zusammenhang mit den3 und4 diskutiert. Als Alternative werden die Versetzungswerte durch den Prozessor118 bestimmt (z.B. durch die Zeitgeber-Zugriffslogik122 ). Eine Ausführungsform eines Prozesses zum Bestimmen eines Versetzungswertes durch den Prozessor118 wird in weiteren Einzelheiten hiernach im Zusammenhang mit5 diskutiert. -
2 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses200 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-Zugriffslogik122 der1 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) (Verarbeitungsblock202 ). 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 und4 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 mit5 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 (Verarbeitungsblock206 ). Als nächstes beginnt die Verarbeitungslogik die Ausführung in der VM (Verarbeitungsblock210 ). - 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 (Verarbeitungsblock214 ). 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 Verarbeitungsblock216 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 (Verarbeitungsblock220 ). Bei einer Ausführungsform lädt vor dem Übergeben der Steuerung an den VMM die Verarbeitungslogik das Versetzungsregister mit 0 (Verarbeitungsblock218 ), 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 Verarbeitungsblock216 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 (Verarbeitungsblock218 ) übergibt die Steuerung an den VMM, wobei die Ursache des VM-Austrittes, die im Verarbeitungsblock222 erfaßt wurde, angegeben wird (Verarbeitungsblock220 ). Wenn die Verarbeitungslogik keine Ereignisse erfaßt, die mit einem VM-Austritt verbunden sind, kehrt die Verarbeitungslogik zum Verarbeitungsblock212 zurück. -
3 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses300 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-Versetzungskonfigurationsmodul126 der1 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 (Verarbeitungsblock302 ) und speichert den Zeitgeber-Versetzungswert in der VMCS (Verarbeitungsblock304 ). 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 mit4 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) (Verarbeitungslogik308 ). - 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 (Verarbeitungsblock312 ) und handhabt den VM-Austritt wie benötigt (z. B. führt Operationen durch, die die Ursache des VM-Austritts ansprechen) (Verarbeitungsblock314 ). 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 Prozesses400 zum Berechnen eines Zeitgeber-Versetzungswertes für eine VM (wie im Verarbeitungsblock302 der3 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-Versetzungskonfigurationsmodul126 der1 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 (Verarbeitungsblock402 ). 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 (Verarbeitungsblock408 ). 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-Versetzungslogik122 der1 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 (Verarbeitungsblock502 ). - 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 Verarbeitungsblock508 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 Verarbeitungsblock508 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 (Verarbeitungsblock512 ). 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 Verarbeitungsblock504 als auch bei512 ü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 Verarbeitungsblock506 gesichert worden ist, indem der gesicherte VM1-Zeitgeberwert von dem gegenwärtigen Zeitgeberwert subtrahiert wird (Verarbeitungsblock516 ). Weiter berechnet die Verarbeitungslogik den angepaßten Zeitgeber-Versetzungswert, indem diese Differenz von dem Zeitgeber-Versetzungswert in dem Zeitgeber-Versetzungsfeld subtrahiert wird (Verarbeitungsblock518 ). 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 (Verarbeitungsblock520 ). - Wenn der Indikator für das Anpassen der Versetzung deaktiviert ist, überspringt bei einer Ausführungsform die Verarbeitungslogik die Blöcke
514 bis518 und geht direkt zum Verarbeitungsblock520 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 Verarbeitungsblock520 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)
- 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.
- 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.
- 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.
- Verfahren nach Anspruch 3, das weiter das Speichern des berechneten Zeitgeber-Versetzungswertes in dem Zeitgeber-Versetzungsfeld aufweist.
- 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.
- 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.
- 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.
- 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.
- Verfahren nach Anspruch 1, das weiter aufweist: Bestimmen, daß das Versetzen des Zeitgebers gesperrt ist; und Laden eines Versetzungsregisters mit Null.
- 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.
- 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.
- 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.
- Vorrichtung nach Anspruch 12, bei der die Datenstruktur weiter ein Zeitgeber-Versetzungsfeld umfaßt, welches den berechneten Zeitgeber-Versetzungswert speichert.
- Vorrichtung nach Anspruch 12, bei der die Datenstruktur weiter einen Indikator für das Anpassen der Zeitgeber-Versetzung umfaßt.
- 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.
- 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.
- 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.
- Vorrichtung nach Anspruch 10, die weiter aufweist: ein Versetzungsregister, um den Versetzungswert zu speichern.
- 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.
- System nach Anspruch 19, bei dem der Prozessor den Versetzungswert berechnet, wenn er die Steuerung an die VM übergibt.
- Vorrichtung nach Anspruch 19, bei der der Prozessor weiter ein Versetzungsregister mit dem Versetzungswert lädt.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
2004
- 2004-10-29 US US10/976,970 patent/US8146078B2/en active Active
-
2005
- 2005-10-31 JP JP2007539377A patent/JP4584315B2/ja not_active Expired - Fee Related
- 2005-10-31 WO PCT/US2005/040450 patent/WO2006050534A1/en active Application Filing
- 2005-10-31 DE DE112005002347T patent/DE112005002347T5/de not_active Ceased
- 2005-10-31 CN CNB2005800355262A patent/CN100481010C/zh not_active Expired - Fee Related
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 |