DE102009060299A1 - Das Einführen von Transaktionen, um die Virtualisierung eines physischen Geräte-Controllers zu unterstützen - Google Patents

Das Einführen von Transaktionen, um die Virtualisierung eines physischen Geräte-Controllers zu unterstützen Download PDF

Info

Publication number
DE102009060299A1
DE102009060299A1 DE102009060299A DE102009060299A DE102009060299A1 DE 102009060299 A1 DE102009060299 A1 DE 102009060299A1 DE 102009060299 A DE102009060299 A DE 102009060299A DE 102009060299 A DE102009060299 A DE 102009060299A DE 102009060299 A1 DE102009060299 A1 DE 102009060299A1
Authority
DE
Germany
Prior art keywords
device controller
physical device
virtualization
transactions
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102009060299A
Other languages
English (en)
Inventor
Zohar Folsom Bogin
Suryaprasad Folsom Kareenahalli
Rajeev El Dorado Hills Nalawadi
Eric Sacramento Ferrara
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102009060299A1 publication Critical patent/DE102009060299A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

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

Abstract

Ausführungsformen von Vorrichtungen, Verfahren und Systemen werden offenbart, um Transaktionen einzuführen und damit die Virtualisierung eines physischen Geräte-Controllers zu unterstützen. Bei einer Ausführungsform enthält eine Vorrichtung einen Prozessor, Systemspeicher, einen physischen Geräte-Controller und einen Virtualisierungsagent. Der physische Geräte-Controller wird von einer Mehrzahl an virtuellen Maschinen, die durch einen auf einem Prozessor installierten Virtual Machine Monitor erzeugt werden, gemeinsam benutzt. Der Virtualisierungsagent ist mit dem Systemspeicher durch eine erste Schnittstelle und mit dem physischen Geräte-Controller durch eine zweite Schnittstelle gekoppelt, um den physischen Geräte-Controller als eine Mehrzahl an virtuellen Geräte-Controllern zu repräsentieren, die verfügbar sind, um zur Mehrzahl an virtuellen Maschinen zugeordnet zu werden, und um Transim Auftrag der Mehrzahl an virtuellen Geräte-Controllern einzuführen.

Description

  • HINTERGRUND
  • 1. Technisches Gebiet
  • Die gegenwärtige Offenlegung betrifft das Gebiet der Informationsverarbeitung und insbesondere das Gebiet der Virtualisierung in einem Informationsverarbeitungssystem.
  • 2. Beschreibung verwandter Technik
  • Generell erlaubt das Konzept der Virtualisierung in Informationsverarbeitungssystemen mehreren Instanzen von einem oder mehreren Betriebssystemen (jedes ein „OS”) auf einem einzelnen Informationsverarbeitungssystem zu arbeiten, wenn auch jedes OS konzipiert ist, um vollständige direkte Kontrolle über das System und seine Ressourcen zu haben. Virtualisierung wird normalerweise durch Verwendung von Software implementiert (z. B. ein Virtual Machine Monitor oder ein um jedem OS eine „virtuelle Maschine” („VM”) zu präsentieren, die virtuelle Ressourcen, einschließlich einem oder mehreren virtuellen Prozessoren haben, die das OS vollständig und direkt steuern kann, während der VMM eine Systemumgebung aufrechterhält, um Virtualisierungsrichtlinien zu implementieren, wie beispielsweise die physischen Ressourcen unter den VMs (das „Virtualisierungsumfeld”) gemeinsam zu benutzen und/oder zuzuordnen. Jedes OS und jede andere Software, die auf einem VM arbeitet, werden als „Gast” oder als „Gast-Software” bezeichnet, während ein „Host” oder „Host-Software” Software darstellt, wie beispielsweise ein VMM, der außerhalb des Virtualisierungsumfeldes arbeitet.
  • Ein physischer Prozessor in einem Informationsverarbeitungssystem kann Virtualisierung zum Beispiel unterstützen, indem er eine Anweisung unterstützt, um in ein Virtualisierungsumfeld einzusteigen und einen Gast auf einem virtuellen Prozessor (d. h. ein physischer Prozessor unter auferlegten Einschränkungen durch einen VMM) in einer VM zu betreiben. Im Virtualisierungsumfeld können bestimmte Ereignisse, Operationen und Situationen, wie beispielsweise externe Interrupts oder Versuche auf privilegierte Register oder Ressourcen zuzugreifen, unterbrochen werden, d. h. sie können den Prozessor veranlassen, das Virtualisierungsumfeld zu beenden, sodass ein VMM zum Beispiel arbeiten kann, um Virtualisierungsrichtlinien zu implementieren.
  • Eine physische Ressource im System, wie beispielsweise ein Eingabe-/Ausgabe-Geräte-Controller, kann einer VM auf einer dedizierten Basis zugewiesen oder zugeordnet werden. Alternativ kann eine physische Ressource von mehreren VMs gemeinsam benutzt werden, indem man alle Transaktionen, die die Quelle einschließen, unterbricht, sodass der VMM jede Transaktion ausführen, umadressieren oder einschränken kann. Ein dritter Ansatz kann sein, die physische Ressource so zu konzipieren, dass man sie als mehrere virtuelle Ressourcen verwenden kann.
  • Kurze Beschreibung der Figuren
  • Die vorliegende Erfindung wird exemplarisch und in keiner Weise einschränkend in den begleitenden Figuren dargestellt.
  • 1 zeigt eine Vorrichtung, um Transaktionen gemäß einer Ausführungsform der vorliegenden Erfindung einzuführen.
  • 2 zeigt ein Verfahren, um Transaktionen gemäß einer Ausführungsform der vorliegenden Erfindung einzuführen.
  • Ausführliche Beschreibung
  • Die gegenwärtige Erfindung kann in eine Vorrichtung oder Verfahren für das Einführen von Transaktionen aufgenommen werden, um die Virtualisierung eines physischen Geräte-Controllers, wie nachfolgend beschrieben, zu unterstützen. In der Beschreibung können zahlreiche spezifische Details, wie beispielsweise Komponenten- und Systemkonfigurationen angeführt werden, um ein gründlicheres Verständnis der vorliegenden Erfindung zu ermöglichen. Für den Fachmann ist es jedoch offensichtlich, dass die Erfindung auch ohne diese spezifischen Details realisierbar ist. Zusätzlich wurden einige weithin bekannte Strukturen, Schaltungen, u. A. im Detail nicht gezeigt, um eine unnötige Ablenkung von der Beschreibung der vorliegenden Erfindung zu vermeiden.
  • Es kann für einen einzelnen physischen Geräte-Controller wünschenswert sein, von mehreren virtuellen Maschinen gemeinsam benutzt zu werden, ohne zu erfordern, dass ein VMM alle Transaktionen unterbricht, die den Geräte-Controller einschließen, oder dass die Geräte-Controller neu konzipiert werden, um Virtualisierung zu unterstützen. Deshalb können Ausführungsformen der Erfindung die Repräsentation eines einzelnen physischen Geräte-Controllers als mehrere virtuelle Geräte-Controller unterstützen, indem sie Transaktionen auffangen, die den physischen Geräte-Controller einschließen und Transaktionen im Auftrag der virtuellen Geräte-Controller einführen.
  • Elemente von Ausführungsformen der Erfindung können in Hardware, Software, Firmware oder jeder Kombination von Hardware, Software oder Firmware implementiert werden. Der Begriff Hardware bezeichnet generell ein Element, das eine physische Struktur, wie beispielsweise elektronische, elektromagnetische, optische, elektro-optische, mechanische, elektromechanische Teile usw. besitzt. Der Begriff Software bezeichnet generell eine logische Struktur, ein Verfahren, eine Verfahrensweise, ein Programm, eine Routine, einen Prozess, einen Algorithmus, eine Formel, einen Ausdruck usw. Der Begriff Firmware bezeichnet generell eine logische Struktur, ein Verfahren, eine Verfahrensweise, ein Programm, eine Routine, einen Prozess, einen Algorithmus, eine Formel oder einen Ausdruck, der implementiert oder in eine Hardware-Struktur (z. B., Flash-Speicher oder Festspeicher) aufgenommen ist. Beispiele für Firmware sind Mikrocode, beschreibbarer Steuerspeicher und mikroprogrammierte Struktur.
  • 1 zeigt Informationsverarbeitungssystem 100, in dem Transaktionen gemäß einer Ausführungsform der vorliegenden Erfindung eingeführt werden können. Informationsverarbeitungssystem 100 enthält bloße Plattform-Hardware 110, was jede Vorrichtung sein kann, die fähig ist, irgendein OS, ein VMM oder eine andere Software auszuführen. Zum Beispiel kann bloße Plattform-Hardware 110 die Hardware eines Personalcomputers, eines Mainframe-Computers, eines tragbaren Computers, eines tragbaren Gerätes, einer Set-Top-Box, eines Servers oder jedes anderen Computersystems sein. In dieser Ausführungsform enthält bloße Plattform-Hardware 110 Prozessor 120, Chipsatz 130, Systemspeicher 140 und den Geräte-Controller 150.
  • Prozessor 120 kann jede Komponente sein, die einen oder mehrere Ausführungskerne hat, wobei jeder Ausführungskern auf einer Vielfalt von verschiedenen Arten von Prozessoren beruhen kann, einschließlich einem Allzweckmikroprozessor, wie beispielsweise einem Prozessor der Intel® Pentium® Prozessor-Familie, Itanium® Prozessor-Familie oder einer anderen Prozessor-Familie der Intel® Corporation oder einem anderen Prozessor von einer anderen Firma oder einem Digitalsignal-Prozessor oder Mikrocontroller. Obwohl 1 nur einen solchen Prozessor 120 zeigt, kann bloße Verarbeitungshardware 110 jede Anzahl an Prozessoren enthalten, einschließlich jeder Anzahl an Mehrkernprozessoren, jeder mit irgendeiner Anzahl an Ausführungskernen und irgendeiner Anzahl an Multithread-Prozessoren (jeder mit irgendeiner Anzahl an Threads).
  • Chipsatz 130 kann jede Gruppe von Schaltungen und Logik sein, die Speicheroperationen, Eingabe-/Ausgabe-Operationen, Konfigurations-, Kontroll-, interne oder externe Schnittstellen-, Verbindungs- oder Kommunikationsfunktionen (z. B. „Glue”-Logik und Bus-Brücken) und/oder irgendwelche ähnlichen Funktionen für den Prozessor 120 und/oder System 100 unterstützt. Individuelle Elemente des Chipsatzes 130 können zusammen auf einem einzelnen Chip, einem Chip-Paar, dispergiert unter mehren Chips und/oder teilweise, komplett, redundant oder gemäß einem dezentralisierten Ansatz in einen oder mehrere Prozessoren, einschließlich Prozessor 120, integriert sein. Bei dieser Ausführungsform enthält Chipsatz 130 Virtualisierungslogik 132, um Transaktionen gemäß einer Ausführungsform der Erfindung, wie nachfolgend beschrieben, einzuführen. Bei anderen Ausführungsformen kann Virtualisierungslogik 132 an anderer Stelle im System 100 enthalten sein.
  • Systemspeicher 140 kann jedes Medium enthalten auf dem Information, wie beispielsweise Daten und/oder Anweisungen, gespeichert sind, wie beispielsweise statische oder dynamische Random Access Memory, halbleiterbasierte Read-only-Memory oder Flash-Speicher, magnetische oder optische Plattenspeicher oder jede andere Art von Medium, das von Prozessor 120 gelesen werden kann, oder jede Kombination solcher Medien.
  • Geräte-Controller 150 kann einen Controller für jede Art von I/O, peripheres oder anderes Gerät repräsentieren, das von der Gast-Software, die in einem VM arbeitet, verwendet werden kann, wie beispielsweise ein Festplatten-Controller, ein Audiocontroller, ein Netzwerkschnittstellen-Controller, ein Peripheriebus-Controller usw. Geräte-Controller 150 kann in ein diskretes Bauelement aufgenommen werden oder in einer integrierten Komponente mit irgendwelchen anderen Geräte-Controllern enthalten sein. Bei einer Ausführungsform kann der Geräte-Controller 150 eine Funktion in einem mehrfunktionalen I/O, peripheren oder anderen Geräte-Controller repräsentieren. Geräte-Controller 150 kann Konfigurationsspeicher 152 enthalten, um Konfigurationsinformation zu speichern.
  • Prozessor 120, Chipsatz 130, Systemspeicher 140 und Geräte-Controller 150 können miteinander gekoppelt sein oder gemäß jedem bekannten Ansatz miteinander kommunizieren, wie beispielsweise direkt oder indirekt durch eine oder mehrere parallele, sequenzielle, pipeline-artige, aperiodische, synchrone, verdrahtete, drahtlose oder andere Bus- oder Punkt-Zu-Punkt-Verbindungen oder Mittel zur Kommunikation. Zum Beispiel können bei dieser Ausführungsform Prozessor 120 und Chipsatz 130 mit dem Systemspeicher 140 durch die Schnittstelle 170 gekoppelt sein und Chipsatz 130 kann mit dem Geräte-Controller 150 durch die Schnittstelle 180 gekoppelt sein. System 100 kann auch jede Anzahl an zusätzlichen Agenten, Komponenten oder Verbindungen enthalten.
  • System 100 enthält auch VMM 160 und die VMs 162 und 164. VMM 160 kann jede Software, Firmware oder jeder Hardware-Host sein, der installiert ist, um auf Plattform-Hardware 110 zu arbeiten oder durch diese zugänglich zu sein, um VMs, d. h. Abstraktionen von bloßer Plattform-Hardware 110, zu Gästen zu präsentieren oder VMs anderweitig zu schaffen, VMs zu handhaben und Virtualisierungsrichtlinien innerhalb des Systems 100 zu implementieren. Bei anderen Ausführungsformen kann ein Host jeder VMM, Hypervisor, OS oder andere Software, Firmware oder Hardware sein, die die bloße Plattform-Hardware 110 steuern kann. Ein Gast kann jedes OS, jeder VMM, einschließlich einer weiteren Instanz von VMM 160, jeder Hypervisor oder jede Anwendung oder andere Software sein.
  • Jeder Gast erwartet, auf Ressourcen, wie beispielsweise Prozessor und Plattform-Register, Speicher und Eingabe-/Ausgabegeräte entweder von der bloßen Plattform-Hardware 110 oder einer Plattform virtualisiert durch VMM 160 gemäß der Architektur des Prozessors und der im VM präsentierten Plattform zuzugreifen. 1 zeigt die zwei VMs 162 und 164 auf denen je ein Gast-OS und jede Anzahl an Gast-Anwendungen installiert sein kann. Obwohl 1 zwei VMs zeigt, kann jede Anzahl von VMs erzeugt und jede Anzahl an Gast-OSen und Gast-Anwendungen installiert werden, um auf jeder VM im Rahmen der vorliegenden Erfindung zu arbeiten.
  • Zurückkehrend zu Chipsatz 130, Virtualisierungslogik 132 kann jede Schaltung, Logik oder andere Struktur, wie beispielsweise Firmware enthalten, um den physischen Geräte-Controller 150 als mehrere virtuelle Geräte-Controller zu repräsentieren, von denen jeder durch VMM 160 zu einer unterschiedlichen VM zugeordnet sein kann. Chipsatz 130 enthält auch Konfigurationsspeicher 134 und Datenspeicher 136. Konfigurationsspeicher 134 und Datenspeicher 136 können jedes Medium enthalten, auf dem Information gespeichert werden kann. Zum Beispiel. kann Konfigurationsspeicher 134 programmierbare Register enthalten und Datenspeicherung 136 kann statische Random Access Memory enthalten. Virtualisierungslogik 132 kann Information vom Konfigurationsspeicher 134 und/oder Datenspeicher 136 lesen und in sie schreiben, um Information bezüglich dem Status des Auffangens und Einführens von Transaktionen auf Schnittstelle 170 und 180 zu bestimmen und aufrechtzuerhalten.
  • Chipsatz 130 kann Transaktionen auf der Schnittstelle 180 empfangen, die für Systemspeicher 140 vorgesehen sind, und auf der Schnittstelle 170 diejenigen, die für den physischen Geräte-Controller 150 vorgesehen sind. Das beabsichtigte Ziel für die Transaktion kann durch Information, die von der Transaktion vermittelt wird, wie beispielsweise der Inhalt des Adressfeldes, angezeigt werden. Um jedoch die Virtualisierung von Geräte-Controller 150 zu unterstützen, kann die Transaktion durch die Virtualisierungslogik 132 aufgefangen werden. Im Zusammenhang mit dem Auffangen einer Transaktion kann Virtualisierungslogik 132 eine Adresse oder einen Identifier in Verbindung mit oder verwendet vom physischen Geräte-Controller 150 an eine Adresse oder einen Identifier in Verbindung mit oder verwendet von einem der virtuellen Geräte-Controller, abstrahiert vom physischen Geräte-Controller 150, übersetzen oder zuordnen. Virtualisierungslogik 132 kann auch jede andere Verarbeitung ausführen, die mit der aufgefangenen Transaktion verbunden sein kann. Die Übersetzung, Zuordnung oder eine andere Verarbeitungsinformation können im Konfigurationsspeicher 134 oder im Datenspeicher 136 gespeichert werden. Virtualisierungslogik 132 kann dann als ein Agent entweder auf der Schnittstelle 170 oder Schnittstelle 180 agieren, indem sie eine neue Transaktion im Auftrag dieses virtuellen Geräte-Controllers initiiert oder einführt.
  • Bei einer Ausführungsform zum Beispiel, wo der physische Geräte-Controller 150 mit dem Chipsatz 130 durch einen Peripheral Component Interconnect-(„PCI Express”)-Bus gekoppelt ist, kann ein Transaktion-Header einen einzigartigen Identifier bezüglich der Bus-Nummer, der Gerätenummer und der Funktionsnummer („BDF”) enthalten, die dem Geräte-Controller 150 durch Systemkonfigurationssoftware oder Firmware zugewiesen sind. Virtualisierungslogik 132 kann einen unterschiedlichen BDF für jeden vom physischen Geräte-Controller 150 abstrahierten virtuellen Geräte-Controller verwenden. So kann sie Transaktionen mit dem BDF des physischen Geräte-Controllers 150 auffangen und Transaktionen mit den BDFs der entsprechenden virtuellen Geräte-Controller einführen oder umgekehrt.
  • 2 zeigt Verfahren 200, in dem eine Transaktion gemäß einer Ausführungsform der vorliegenden Erfindung eingeführt werden kann. In der Beschreibung der Verfahrensausführungsform von 2 kann Bezug auf Elemente der Systemausführungsform von 1 genommen werden; Verfahrensausführungsformen der Erfindung sind jedoch in keiner Weise darauf beschränkt.
  • In Kasten 210 ist Virtualisierungslogik 132 konfiguriert, um Transaktionen aufzufangen, die auf der Schnittstelle 170 initiiert und zum physischen Geräte-Controller 150 geleitet wurden, und Transaktionen, die auf der Schnittstelle 180 vom physischen Geräte-Controller 150 initiiert wurden. Bei einer Ausführungsform kann Virtualisierungslogik 132 eine Stelle im Konfigurationsspeicher 134 enthalten, der mit der Basisadresse oder einem anderen Indikator programmiert sein kann, um aufzufangende Transaktionen zu identifizieren.
  • In Kasten 220 erkennt Virtualisierungslogik 132 eine erste Transaktion auf der Schnittstelle 170, die zu einem virtuellen Geräte-Controller geleitet wird und den physischen Geräte-Controller 150 repräsentiert. In Kasten 222 fängt Virtualisierungslogik die erste Transaktion auf, anstatt sie an die Schnittstelle 180 weiterzuleiten, damit sie der physische Geräte-Controller 150 empfängt. In Kasten 224 führt Virtualisierungslogik 132 eine Übersetzung oder eine andere Verarbeitung bezogen auf das Virtualisieren des physischen Geräte-Controllers 150 aus. In Kasten 226 führt Virtualisierungslogik eine zweite Transaktion auf die Schnittstelle 180 ein, die zum physischen Geräte-Controller 150 geleitet wird. Die zweite Transaktion soll die übersetzte oder anderweitig verarbeitete Information, Nachricht oder Anfrage von der ersten Transaktion zum physischen Geräte-Controller 150 vermitteln, außer dass Virtualisierungslogik die Übersetzung oder eine andere Verarbeitung ausgeführt hat, die am Virtualisieren des physischen Geräte-Controllers 150 beteiligt ist.
  • In Kasten 230 erkennt Virtualisierungslogik 132 eine dritte Transaktion auf der Schnittstelle 180, die vom physischen Geräte-Controller 150 eingeleitet wird. In Kasten 232 fängt Virtualisierungslogik die dritte Transaktion auf, anstatt sie an Schnittstelle 170 weiterzuleiten. In Kasten 234 führt Virtualisierungslogik 132 eine Übersetzung oder eine andere Verarbeitung bezogen auf das Virtualisieren des physischen Geräte-Controllers 150 aus. In Kasten 236 führt Virtualisierungslogik eine vierte Transaktion im Auftrag eines virtuellen Geräte-Controllers, der dem physischen Geräte-Controller 150 entspricht, auf der Schnittstelle 170 ein. Die vierte Transaktion soll die übersetzte oder anderweitig verarbeitete Information, Nachricht oder Anfrage von der dritten Transaktion des physischen Geräte-Controllers 150 vermitteln, außer dass Virtualisierungslogik die Übersetzung oder eine andere Verarbeitung ausgeführt hat, die am Virtualisieren des physischen Geräte-Controllers 150 beteiligt ist.
  • Im Rahmen der vorliegenden Erfindung kann Verfahren 200 mit den gezeigten Kasten ausgelassen, mit zusätzlichen Kasten hinzugefügt oder mit einer Kombination aus umgeordneten, ausgelassenen oder zusätzlichen Kasten ausgeführt werden.
  • Jede Komponente oder jeder Teil einer Komponente, der gemäß einer Ausführungsform der vorliegenden Erfindung konzipiert ist, kann in verschiedenen Stufen von der Erstellung zur Simulation zur Fertigung konzipiert sein. Daten, die ein Design repräsentieren, können das Design auf mehrere Weise repräsentieren. Zuerst einmal, wie es bei Simulationen zweckmäßig ist, kann die Hardware repräsentiert werden, indem man eine Hardware-Beschreibungssprache oder eine andere Funktionsbeschreibungssprache verwendet. Zusätzlich oder alternativ können Schaltungslevel-Typen mit Logik- und/oder Transistor-Gattern irgendwann während des Design-Prozesses hergestellt werden. Des Weiteren erreichen die meisten Designs irgendwann einen Level, wo sie mit Daten modelliert werden können, die die physische Anordnung von verschiedenen Geräten repräsentieren. Wenn konventionelle Halbleiter-Fertigungsverfahren verwendet werden, können die Daten, die das Geräteanordnungsmodell repräsentieren, diejenigen Daten sein, die die Anwesenheit oder Abwesenheit von verschiedenen Funktionen auf verschiedenen Maskenschichten für Masken angeben, die man verwendet, um einen integrierten Schaltkreis herzustellen.
  • Bei jeder Repräsentation des Designs können die Daten in jeder Form eines maschinenlesbaren Mediums gespeichert sein. Bei einer optischen oder elektrischen Welle, die moduliert oder anderweitig generiert ist, um solche Information zu übertragen, kann ein Speicher oder ein magnetisches oder optisches Speichermedium, wie beispielsweise eine Disk, das maschinenlesbare Medium sein. Irgendeines dieser Medien kann das Design oder eine andere in einer Ausführungsform der vorliegenden Erfindung verwendete Information „tragen” oder „anzeigen”. Wenn man eine elektrische Trägerwelle überträgt, die die Information anzeigt oder trägt, sodass das Kopieren, Puffern oder die Weiterübertragung des elektrischen Signals ausgeführt wird, wird eine neue Kopie gemacht. Somit können die Aktionen eines Kommunikationsanbieters oder eines Netzwerkanbieters die Herstellung von Kopien eines Artikels darstellen, z. B. einer Trägerwelle, die die Techniken der vorliegenden Erfindung in sich einschließen.
  • Somit wurden Vorrichtungen, Verfahren und Systeme offenbart, um Transaktionen einzuführen und damit die Virtualisierung eines physischen Geräte-Controllers zu unterstützen. Während bestimmte Ausführungsformen beschrieben und in den begleitenden Zeichnungen gezeigt wurden, versteht es sich, dass solche Ausführungsformen rein veranschaulichend sind und die breite Erfindung in keiner Weise einschränken, und dass diese Erfindung nicht auf die spezifisch gezeigten Bauarten und Anordnungen begrenzt ist, da der fachkundigen Person beim Studieren dieser Offenlegung verschiedene andere Modifizierungen einfallen können. In einem technologischen Bereich, der von schnellem Wachstum und schwer vorhersehbaren zukünftigen Entwicklungen geprägt ist, können die offengelegten Ausführungsformen in der Anordnung und im Detail ohne Weiteres durch den Einsatz von technologischen Entwicklungen modifiziert werden, ohne von den Grundsätzen der vorliegenden Erfindung oder dem Rahmen der begleitenden Ansprüche abzuweichen.

Claims (1)

  1. Vorrichtung, umfassend: einen Prozessor; Systemspeicher; einen physischen Geräte-Controller, der von einer Mehrzahl von virtuellen Maschinen gemeinsam benutzt und durch einen auf dem Prozessor installierten Virtual Machine Monitor erzeugt wird; ein Virtualisierungsagent, der mit dem Systemspeicher durch eine erste Schnittstelle und mit dem physischen Geräte-Controller durch eine zweite Schnittstelle gekoppelt ist, um den physischen Geräte-Controller als eine Mehrzahl an virtuellen Geräte-Controllern zu repräsentieren, die verfügbar sind, um zur Mehrzahl an virtuellen Maschinen zugeordnet zu werden, und um Transaktionen auf der ersten und zweiten Schnittstelle im Auftrag der Mehrzahl an virtuellen Geräte-Controllern einzuführen.
DE102009060299A 2008-12-31 2009-12-23 Das Einführen von Transaktionen, um die Virtualisierung eines physischen Geräte-Controllers zu unterstützen Ceased DE102009060299A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/347,978 US20100169884A1 (en) 2008-12-31 2008-12-31 Injecting transactions to support the virtualization of a physical device controller
US12/347,978 2008-12-31

Publications (1)

Publication Number Publication Date
DE102009060299A1 true DE102009060299A1 (de) 2010-08-05

Family

ID=41716962

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009060299A Ceased DE102009060299A1 (de) 2008-12-31 2009-12-23 Das Einführen von Transaktionen, um die Virtualisierung eines physischen Geräte-Controllers zu unterstützen

Country Status (6)

Country Link
US (1) US20100169884A1 (de)
JP (1) JP2010218539A (de)
CN (1) CN101833470A (de)
DE (1) DE102009060299A1 (de)
GB (1) GB2467408B (de)
TW (1) TWI436281B (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342335B2 (en) * 2009-12-23 2016-05-17 Open Innovation Network, LLC Systems, methods and computer readable media for managing multiple virtual machines
US8831993B2 (en) 2010-03-19 2014-09-09 Novell, Inc. Techniques for sharing virtual machine (VM) resources
US9135031B1 (en) * 2010-04-28 2015-09-15 Netapp, Inc. System and method for determining storage resources of a virtual machine in a virtual server environment
CN102346460B (zh) 2011-05-27 2013-11-13 运软网络科技(上海)有限公司 一种基于事务的服务控制系统及其控制方法
GB2491914A (en) * 2011-06-08 2012-12-19 Inst Information Industry Method of operating a heterogeneous computer system
US9015523B2 (en) * 2012-12-20 2015-04-21 Intel Corporation Memory allocation for virtual machines using memory map
WO2017068770A1 (ja) * 2015-10-22 2017-04-27 日本電気株式会社 コンピュータ、デバイス割当管理方法及びプログラム記録媒体
TWI710953B (zh) * 2019-05-31 2020-11-21 緯創資通股份有限公司 韌體更新裝置以及韌體更新方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0193830A (ja) * 1987-10-05 1989-04-12 Nec Corp 仮想計算機システムにおける割り込み制御方式
JPH01121940A (ja) * 1987-11-05 1989-05-15 Nec Corp 多重処理可能装置の入出力要求制御方式
US7467381B2 (en) * 2003-12-16 2008-12-16 Intel Corporation Resource partitioning and direct access utilizing hardware support for virtualization
US20060069828A1 (en) * 2004-06-30 2006-03-30 Goldsmith Michael A Sharing a physical device among multiple clients
US8347063B2 (en) * 2005-08-19 2013-01-01 Intel Corporation Method and system for device address translation for virtualization
US20080126614A1 (en) * 2006-09-26 2008-05-29 Giap Yong Ooi Input/output (I/O) device virtualization using hardware

Also Published As

Publication number Publication date
JP2010218539A (ja) 2010-09-30
GB0922629D0 (en) 2010-02-10
GB2467408B (en) 2011-09-28
TWI436281B (zh) 2014-05-01
TW201044276A (en) 2010-12-16
US20100169884A1 (en) 2010-07-01
CN101833470A (zh) 2010-09-15
GB2467408A (en) 2010-08-04

Similar Documents

Publication Publication Date Title
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE102007062744B4 (de) Guest-Host-Adressübersetzung für den Zugriff von Geräten auf einen Speicher in einem partitionierten System
DE102009060301A1 (de) Das Ermöglichen mehrerer virtueller Geräte-Controller durch Umleiten eines Interrupts von einem physischen Geräte-Controller
DE102009060299A1 (de) Das Einführen von Transaktionen, um die Virtualisierung eines physischen Geräte-Controllers zu unterstützen
DE102012218379B4 (de) Paravirtualisierte virtuelle GPU
DE102006061939B4 (de) Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast
DE102018000886A1 (de) Virtuelle Maschinenkommunikation auf Hardware-Basis
DE112016005910T5 (de) Architechtur für Software-Definierten Interconnect-Switch
DE112015006934T5 (de) Verschachtelte Virtualisierung für virtuelle Maschinenexits
DE112007001988T5 (de) Gemeinsames Nutzen von Informationen durch Gäste in einer Virtuelle-Maschine-Umgebung
DE112013007701T5 (de) Ein-Chip-System (SOC), das Hybridprozessorkerne enthält
DE112020000280B4 (de) Transparente interpretation von gastbefehlen in einer sicheren virtuellen maschinenumgebung
DE102019108266A1 (de) Techniken zum bereitstellen von isolation auf funktionsebene mit auf fähigkeit basierender sicherheit
DE112013001711T5 (de) Optimieren von Unterroutine-Aufrufen auf der Grundlage der Architekturebene einer aufgerufenen Unterroutine
US10387184B2 (en) Address based host page table selection
DE112010005821T5 (de) Kontextwechsel
DE112007003206T5 (de) Neukonfigurieren eines sicheren Systems
US10698713B2 (en) Virtual processor state switching virtual machine functions
DE112020000303T5 (de) Testen von speicherschutz-hardware in einer umgebung einer sicheren virtuellen maschine
US20170090964A1 (en) Post-copy virtual machine migration with assigned devices
DE102020125011A1 (de) Entwickelte hypervisor-pass-through-vorrichtung zur konsequenten plattformunabhängigkeit durch mediated-device in user space (muse)
DE202019005683U1 (de) Prozessorkern mit Unterstützung einer Befehlssatzarchitektur für heterogene Systeme
DE102017124078A1 (de) Ordinale modifikation der dienstgüte
DE112016007538T5 (de) Technologie zur realisierung eines binärverzweigten non-volatile-memory-express-treibers
DE112015000223T5 (de) Maschinenbefehl zum Beenden eines bedingten Befehls

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final
R003 Refusal decision now final

Effective date: 20150314