DE112005001502T5 - Gemeinsame Benutzung einer physikalischen Vorrichtung durch mehrere Kunden - Google Patents

Gemeinsame Benutzung einer physikalischen Vorrichtung durch mehrere Kunden Download PDF

Info

Publication number
DE112005001502T5
DE112005001502T5 DE112005001502T DE112005001502T DE112005001502T5 DE 112005001502 T5 DE112005001502 T5 DE 112005001502T5 DE 112005001502 T DE112005001502 T DE 112005001502T DE 112005001502 T DE112005001502 T DE 112005001502T DE 112005001502 T5 DE112005001502 T5 DE 112005001502T5
Authority
DE
Germany
Prior art keywords
core
client
input
function
output device
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
DE112005001502T
Other languages
English (en)
Inventor
Michael A. Lake Oswego Goldsmith
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 DE112005001502T5 publication Critical patent/DE112005001502T5/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices

Abstract

Physikalische Vorrichtung, umfassend:
ein Kernfunktionsschaltungssystem, das eine Kernfunktion eines Computersystems durchführen soll;
mehrere Client-Schnittstellenschaltungen, wovon sich jede einem Software-Client im System als eine vollständige Vorrichtung zeigt, um auf das Kernfunktionsschaltungssystem zuzugreifen; und
ein Multiplexierungsschaltungssystem, das die mehreren Client-Schnittstellenschaltungen mit dem Kernfunktionsschaltungssystem koppelt.

Description

  • STAND DER TECHNIK
  • Eine Ausführungsform der Erfindung betrifft im allgemeinen Computersysteme und insbesondere Virtualisierungstechniken, die gestatten, daß sich mehrere Programme eine physikalische Vorrichtung gemeinsam teilen.
  • Mit der Verbreitung unterschiedlicher Computerbetriebssystem(OS)programme (z.B. LINUX, MACINTOSH, MICROSOFT-WINDOWS) wird den Konsumenten ein weites Feld von unterschiedlichen Arten von Anwendungsprogrammen angeboten, die unglücklicherweise nicht zum Laufen über das gleiche Betriebssystem gestaltet sind. Die Virtualisierungstechnologie ermöglicht, daß ein einzelner Host-Rechner, auf dem ein Virtual-Machine-Monitor läuft ("VMM"), mehrere Abstraktionen des Host-Rechners bietet, damit die zugrundeliegende Hardware des Host-Rechners als eine oder mehrere unabhängig tätige virtuelle Maschinen ("VMs") erscheinen. Jede VM kann als eine in sich geschlossene Plattform funktionieren, die ihr eigenes Betriebssystem ("OS") und/oder eine oder mehrere Softwareanwendungen betreibt. Die VMM verwaltet die Verteilung der Betriebsmittel am Host-Rechner und führt nach Notwendigkeit eine wie erforderliche Kontextumschaltung durch, um gemäß eines Rundrufs (round-robin) oder eines anderen vorbestimmten Schemas zwischen verschiedenen virtuellen Maschinen zu multiplexieren. Zum Beispiel hat in einer VM-Umgebung jedes OS die Vorstellung, daß es auf seiner eigenen Hardwareplattform oder seinem "bloßen Metall" läuft. Jedes OS "sieht" einen vollen Satz von verfügbaren Ein-/Ausgabe-Vorrichtungen wie etwa eine Tastatursteuerung, eine Festplattenlaufwerksteuerung, eine Netzwerkschnittstellensteuerung, und einen Grafikanzeigeadapter.
  • Die folgenden Techniken werden verwendet, wenn ein Betriebssystem mit einer Ein-/Ausgabe-Vorrichtung kommunizieren soll. Wenn das OS tatsächlich auf dem bloßen Metall läuft, ist eine Hardware-Client-Schnittstelle einer physikalischen Ein-/Ausgabe-Vorrichtung auf einem Bus bloßgelegt. Die Client-Schnittstelle kann ein Satz von speicherabgebildeten Registern (speicherabgebildeter Ein-/Ausgabe, MMEA) oder ein Ein-/Ausgabe-Anschluß (IOP) sein, und kann durch einen speicherabgebildeten Ein-/Ausgabe-Adressenraum bzw. durch einen Ein-/Ausgabe-Adressenraum des Computersystems adressiert werden. Ein Prozessor kann dann durch das Ausgeben von OS-Vorgängen auf dem Bus, die auf den zugeteilten Adressenraum abzielen, Stellen in der physikalischen Vorrichtung lesen oder beschreiben.
  • Andererseits können mit einer Virtualisierung mehrere VMs vorhanden sein (um mehrere Gast-OSs zu betreiben). In diesem Fall werden zwei grundlegende Techniken verwendet, um den Gästen eine Ein-/Ausgabe-Fähigkeit bereitzustellen. Bei der ersten wird der VM ein exklusiver Zugriff auf die Vorrichtung gegeben. Die VMM sorgt dafür, daß der gesamte Zugriff durch die VM auf MMEAs oder IOPs direkt zu der Ein-/Ausgabe-Vorrichtung gesendet wird, auf die abgezielt wird. Auf diese Weise verfügt die VM über den Weg mit der höchsten Leistung, um mit der Vorrichtung zu kommunizieren. Diese Technik wird manchmal als "Vorrichtungszuteilung" bezeichnet. Ihre Hauptbeschränkung ist, daß die Ein-/Ausgabe-Vorrichtung nur einer einzelnen VM zugeteilt werden kann.
  • Wenn gewünscht ist, daß eine Ein-/Ausgabe-Vorrichtung auf irgendeine Weise durch mehrere VMs gemeinsam benutzt wird, ist es eine übliche Technik, daß die VMM die physikalische Ein-/Ausgabe-Vorrichtung als eine oder mehrere "virtuelle Vorrichtungen" emuliert. Vorgänge von einem bestimmten OS, die auf die physikalische Vorrichtung abzielen, werden dann durch die VMM abgefangen. Die VMM kann dann wählen, eine Vorrichtung zu emulieren (zum Beispiel durch Simulieren eines seriellen Anschlusses unter Verwendung einer Netzwerkschnittstelle), oder kann die Anforderungen von verschiedenen Client-VMs auf eine einzelne Ein-/Ausgabe-Vorrichtung multiplexieren (zum Beispiel ein Festlaufwerk in mehrere virtuelle Laufwerke teilen).
  • Eine andere Weise, den Virtualisierungsprozeß zu sehen, lautet wie folgt. Eine VM muß über einen Zugriff auf einen Satz von Ein-/Ausgabe-Vorrichtungen verfügen, die sowohl virtuelle als auch physikalische Vorrichtungen beinhalten können. Wenn eine physikalische Vorrichtung einer einzelnen VM zugeteilt wird, ist sie für die anderen virtuellen Maschinen nicht verfügbar. Demgemäß führt die VMM typischerweise eine virtuelle Vorrichtung für jede VM aus, wenn eine physikalische Vorrichtung durch mehr als eine VM gemeinsam benutzt werden muß. Die VMM vermittelt dann den Zugriff auf die gleiche Hardware-Client-Schnittstelle der physikalischen Vorrichtung durch die virtuellen Vorrichtungen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Ausführungsformen der Erfindung sind in den Figuren der beiliegenden Zeichnungen, in denen gleiche Bezugszeichen ähnliche Elemente angeben, nur beispielhaft und nicht beschränkend veranschaulicht. Es sollte bemerkt werden, daß sich Bezugnahmen auf "eine" Ausführungsform der Erfindung in dieser Offenbarung nicht notwendigerweise auf die gleiche Ausführungsform beziehen und "zumindest eine" bedeuten.
  • 1 veranschaulicht ein Blockdiagramm einer physikalischen Vorrichtung, die "durch ihre Gestaltung gemeinsam benutzbar" ist.
  • 2 stellt ein Blockdiagramm eines Computersystems dar, das eine gemeinsam benutzbare Vorrichtung aufweist und einen Virtualisierungsprozeß betreibt.
  • 3 zeigt ein Ablaufdiagramm eines Virtualisierungsprozesses, der mit der Feststellung einer gemeinsam benutzbaren Ein-/Ausgabe-Vorrichtung in einem Computersystem verbunden ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 veranschaulicht ein Blockdiagramm einer physikalischen Vorrichtung, die "durch ihre Gestaltung gemeinsam benutzbar" ist. Diese gemeinsam benutzbare Vorrichtung 100 weist ein Kernfunktionsschaltungssystem 104 auf, das in diesem Beispiel eine Kern-Ein-/Ausgabefunktion eines Computersystems durchführen soll. Beispiele für die Kern-Ein-/Ausgabefunktion beinhalten das Bildrendern im Fall eines Grafikadapters und die Transportkontrollprotokoll/Internetprotokoll(TCP/IP)-Paketabladung für eine Netzwerkschnittstellensteuerung. Das Kern-Ein-/Ausgabefunktionsschaltungssystem kann als eine Kombination aus einer festverdrahteten und/oder einer programmierbaren Logik und einem programmierten Prozessor oder jede beliebige andere Technik, die einem Fachmann bekannt ist, ausgeführt sein.
  • Ein Software-Client 108 einer virtuellen Maschine (VM) im System muß über eine beliebige von mehreren Client-Schnittstellenschaltungen 112 (oder einfach, "Client-Schnittstellen 112") auf das Kernfunktionsschaltungssystem 104 zugreifen. Der VM-Client 108 kann ein Betriebssystem wie etwa MICROSOFT WINDOWS oder LINUX sein, das einen Vorrichtungstreiber enthält. Die Client-Schnittstellen 112 sind über ein Multiplexierungsschaltungssystem 116 mit dem Kernfunktionsschaltungssystem gekoppelt, um das gemeinsame Teilen der Kernfunktionalität durch die VM-Client über die Client-Schnittstellen zu ermöglichen. Das Multiplexierungsschaltungssystem 116 kann sowohl eine Multiplexiererlogik als auch Signalleitungen, die benötigt werden, um das Kernfunktionsschaltungssystem zu einer Zeit mit irgendeiner der Client-Schnittstellen 112 zu verbinden, beinhalten.
  • Jede Client-Schnittstelle 112 zeigt sich einem Software-Client im System wie etwa dem VM-Client 108 als eine vollständige und gesonderte Vorrichtung. Die Schnittstelle 112 kann alle Gesichtspunkte der Funktionalität ausführen, die durch einen Bus, auf dem sie sich befindet, benötigt werden. Die Client-Schnittstelle 112 kann analoge Schaltungen beinhalten, die zwischen der Logiksignalisierung in der Vorrichtung und der externen Bussignalisierung übersetzen. Wenn es sich beim externen Bus um die serielle Punkt-zu-Punkt-Abart handelt, kann ein Multiplexierungsumschaltungsschaltkreis hinzugefügt werden, um zu jeder beliebigen Zeit eines aus dem Satz von Registern mit dem Übertragungsmedium des Busses zu verbinden.
  • In einigen Ausführungsformen der Erfindung kann jede Client-Schnittstelle 112 den gleichen peripheriekomponentenverbindungs (PCI)-kompatiblen Konfigurationsmechanismus und den gleichen Funktionsfeststellungsmechanismus auf dem gleichen Bus (mit dem die physikalische Vorrichtung verbunden ist) unterstützen. Doch würde in einer derartigen Ausführungsform jede Client-Schnittstelle eine unterschiedliche PCI-Vorrichtungskennungsnummer bereitstellen (da jede effektiv eine unterschiedliche Vorrichtung darstellt). Zusätzlich würde jede Client-Schnittstelle einen gesonderten Satz von PCI-kompatiblen Funktionen identifizieren. Eine Client-Schnittstelle kann natürlich so gestaltet sein, daß sie anderen Arten von Ein-/Aus- oder Buskommunikationsprotokollen entspricht, die zum Beispiel beim Verbinden der Komponenten eines Computersystems verwendet werden.
  • Jede Client-Schnittstelle kann einen gesonderten Satz von Registern beinhalten, die durch einen Software-Client verwendet werden sollen, um Informationen über die Schnittstelle zu erhalten und diese zu konfigurieren. Jeder Satz von Registern kann von außerhalb der physikalischen Vorrichtung über den gleichen Bus zugänglich sein, sei er seriell oder parallel, mehrfachablegend oder Punkt-zu-Punkt. Zum Beispiel kann ein Plug-and-Play-Untersystem PCI-Konfigurationsregister verwenden, um die Basisadresse eines MMEA-Bereichs zu definieren. Ein Satz von PCI-kompatiblen Konfigurationsregistern könnte einige oder alle der folgenden wohlbekannten Register beinhalten: die Verkäuferkennung, die Vorrichtungskennung (bestimmt den Versatz der Konfigurationsregisteradressen), die Nachprüfungskennung, den Klassencode, die Untersystem-Verkäuferkennung, und die Untersystemkennung). Eine Kombination dieser Register wird typischerweise durch ein Betriebssystem verwendet, um zu bestimmen, welcher Treiber für eine Vorrichtung geladen werden soll. Bei einer Implementierung in der gemeinsam teilbaren Vorrichtung kann sich jeder Satz von Registern (einer gegebenen Client-Schnittstelle) mit Ausnahme eines unterschiedlichen Versatzes im gleichen Adressenbereich befinden.
  • Das Setzen eines Basisadressenregisters (BAR) kann verwendet werden, um die Basisadresse, die durch eine Vorrichtung verwendet wird, zu bestimmen. Wenn der Kunde versucht, ein BAR zu setzen, kann die VMM dazu gestaltet sein, diese Anforderung abzufangen, und kann sie sie abändern. Dies erfolgt aus mehreren Gründen. Erstens kann jeder von zwei VMs unwissentlich versuchen, die BARs in einer Schnittstelle auf den gleichen Wert zu setzen. Die VMM kann dazu gestaltet sein, sicherzustellen, daß dies nicht passiert. Zweitens kann jede VM glauben, daß sie in einem auf Null beruhenden Adressenraum (sogenannten physikalischen Gast-Adressen oder GPAs) läuft. Wenn das BAR durch einen Gast gesetzt werden soll, sollte die auf Null beruhende GPA in die tatsächliche physikalische Host-Adresse (HPA) übersetzt werden, bevor sie in das BAR geladen wird. Darüber hinaus sollte die VMM die Speicherverwaltungstabellen der Gast-VM so abändern, daß sie diese Übersetzung widerspiegeln.
  • Die gemeinsam teilbare Vorrichtung kann eine sogar noch erwünschtere Lösung sein, wenn das Kernfunktionalitätsschaltungssystem 104 so verhältnismäßig komplex und/oder groß ist, daß sein Duplizieren zu teuer wäre (und der parallele Verarbeitungsleistungsgewinn aus der Duplizierung nicht benötigt wird). Eine andere vorteilhafte Verwendung wäre in einer Ein-/Ausgabe-Virtualisierungs-Ausführungsform (wie sich nachstehend unter Bezugnahme auf 2 beschrieben ist). In diesem Fall gestattet die gemeinsam teilbare Vorrichtung 100, daß der Virtual-Machine-Monitor (VMM) nicht an jedem Vorgang beteiligt ist, wodurch die Wartezeit für Grafik- und Vernetzungsvorgänge (die in Bezug auf die Wartezeit besonders empfindlich sind) verkürzt wird. Zusätzlich könnten die Gestaltung und die Ausführung der VMM in einigen Ausführungsformen weniger komplex sein, was zu einem stabileren Betrieb der Software führt. Dies kann daran liegen, daß das Vorhandensein von mehreren Client-Schnittstellen die Notwendigkeit, daß die VMM entsprechende virtuelle Vorrichtungen unterstützt, erübrigt (z.B. muß die VMM weder die Vorrichtung selbst noch den PCI-Konfigurationsraum für jede virtuelle Vorrichtung emulieren).
  • Ein Software-Client kann jede beliebige der Client-Schnittstellen 112 verwenden, um die gleiche Hauptfunktion der gemeinsam nutzbaren Vorrichtung aufzurufen. Diese Hauptfunktion kann die einer Ein-/Ausgabe-Vorrichtung wie etwa eines Anzeigegrafikadapters, z.B. ein Bildrendern, das das Bitmap-Anzeigebild erzeugt, sein. In diesem Fall kann die gemeinsam nutzbare Vorrichtung als Teil des Grafik-Ein-/Ausgabe-Abschnitts eines Computersystem-Chipsatzes oder als einzelne Grafikadapterkarte ausgeführt sein. Die Client-Schnittstelle kann im letzteren Fall auch einen elektrischen Steckverbinder zur abnehmbaren Verbindung der Karte mit einem Bus des Computersystems beinhalten. In diesem Fall könnte durch den gleichen Steckverbinder auf alle Schnittstellen zugegriffen werden.
  • Eine andere Hauptfunktion kann die einer Netzwerkschnittstellensteuerung (NIC) sein. In einer derartigen Ausführungsform kann jeder Software-Client (z.B. der VM-Client 108) ein gesonderter Endknoten in einem Netz sein. Der VM-Client 108 würde mit dem Netz über Hauptfunktionen wie etwa die Transportkontrollprotokoll/Internetprotokoll(TCP/IP)-Paketabladung (die abgehende Pakete erzeugt und ankommende Pakete decodiert) und die Medienzugriffssteuerungs(MAC)-Adressenfilterung kommunizieren. In diesem Fall kann die gemeinsam nutzbare Vorrichtung eine einzelne Netzwerkschnittstellensteuerungskarte sein. Jede Client-Schnittstelle bietet die Erscheinung einer vollständigen oder voll funktionsfähigen NIC, einschließlich einer gesonderten MAC-Adresse für jede Client-Schnittstelle. Ankommende Pakete würden automatisch zur richtigen Client-Schnittstelle und dann zum entsprechenden VM-Client weiter geroutet werden. Dies würde erreicht werden, ohne CPU-Zyklen (VMM) aufwenden zu müssen, um jedes ankommende Paket zu bewerten, und ohne die Notwendigkeit, die NIC in eine wahllose Betriebsart zu stellen, in der die CPU jedes ankommende Paket ungeachtet dessen untersucht, ob das Paket für eine VM im System bestimmt ist, oder nicht.
  • Es sollte bemerkt werden, daß die Client-Schnittstellen der gemeinsam nutzbaren Vorrichtung 100, obwohl sie sich einem Software-Client als vollständige, gesonderte Vorrichtungen zeigen können, keine identischen Vorrichtungen sein müssen. Allgemeiner kann die gemeinsam nutzbare Vorrichtung 100 heterogene Schnittstellen aufweisen, wenn eine oder mehrere ihrer Client-Schnittstellen 112 den VM-Client einen unterschiedlichen Satz von Vorrichtungsfähigkeiten (in der Kernfunktionalität 104 ausgeführt) bieten. Man betrachte zum Beispiel den Fall, wobei die gemeinsam nutzbare Vorrichtung ein Anzeigegrafikadapter ist. Eine seiner Client-Schnittstellen kann einem Software-Client als eine ältere Version einer bestimmten Vorrichtung (z.B. eine Vorläufervorrichtung) erscheinen, während eine andere dem Software-Client als eine neuere Version erscheint. Man betrachte als anderes Beispiel einen Grafikadapter, dessen Kern-Ein-/Ausgangs-Funktionalität als eine skalierbare Computerarchitektur mit mehreren programmierbaren Recheneinheiten ausgeführt ist. Eine der Client-Schnittstellen könnte dazu gestaltet oder programmiert sein, auf einen größeren Untersatz der Recheneinheiten als eine andere zuzugreifen, um die gleiche Art, aber eine leistungsfähigere Ein-/Ausgangs-Funktionalität zu bieten.
  • In einem anderen Beispiel kann die gemeinsam nutzbare Vorrichtung 100 einige vollständigere Client-Schnittstellen aufweisen, die zum Beispiel eine höhere Leistungsfähigkeit (z.B. unterschiedliche Arten von Grafik-Rendering-Funktionen in der Kernfunktionalität) zeigen. Eine komplexere Schnittstelle würde höchstwahrscheinlich zu einem entsprechend komplexeren Vorrichtungstreiberprogramm, das damit verbunden ist, führen. Da ein komplexerer Vorrichtungstreiber wahrscheinlicher Fehler oder Schlupflöcher aufweisen wird und einer Sicherheitsanalyse gegenüber weniger zugänglich sein wird, würde er demgemäß als Angriffen gegenüber verwundbarer erachtet werden. Daher würde die Schnittstelle in diesem Fall aufgrund ihrer Komplexität als unzuverlässig und unsicher bezeichnet werden. Gleichzeitig kann die gemeinsam nutzbare Vorrichtung eine oder mehrere Client-Schnittstellen aufweisen, die eine Version der Haupt-Ein-/Ausgabefunktion mit niedrigerer Leistung zeigen (z.B. nur grundlegendes Bild-Rendern und -darstellen). Die letzteren Schnittstellen würden als Ergebnis als zuverlässiger oder sicherer erachtet werden.
  • Zum Beispiel kann eine Schnittstelle (aufgrund ihrer Komplexität oder ihrer inhärenten Gestaltung) als ausreichend zuverlässig erachtet werden, um sich zum Schutz von geheimen Daten eines Benutzers (z.B. Daten, die vom Benutzer des Systems stammen und von diesem "besessen" werden, wie etwa die Sozialversicherungsnummer und finanzielle Informationen des Benutzers) auf sie zu verlassen. Diese Schnittstelle (zu einer Grafikvorrichtung) kann verwendet werden, um ausschließlich den Ausgang bestimmter Anwendungsprogramme wie etwa der persönlichen Buchhaltungs- und Steuererstellungssoftware darzustellen. Dies würde zum Beispiel helfen, einen Angriff durch eine bösartige Softwarekomponente einer dritten Partei, die das System infiltriert hat und danach trachtet, vertrauliche persönliche Informationen über den Benutzer zu sammeln, zu vereiteln.
  • In einem anderen Szenario könnte eine weniger komplexe Schnittstelle für einen erhöhten Inhaltsschutz, z.B. das Hindern des Benutzers des Systems, urheberrechtlich geschützte Daten einer dritten Partei, die irgendwie am Ausgang der Kernfunktionalität erscheinen, zu erfassen, verwendet werden. Zum Beispiel kann der Benutzer an einem bestimmten VM-Client ein DVD-Spielanwendungsprogramm laufen lassen, das nur mit einer inhaltsgeschützten Schnittstelle verbunden ist, so daß der Filmdatenstrom durch diese Schnittstelle nur wiedergegeben werden muß. Alternativ kann die inhaltsschützende Client-Schnittstelle so gestaltet sein, daß durch das Anwendungsprogramm ohne dazwischenliegende Vorrichtungstreiberschicht direkt darauf zugegriffen werden kann. Diese Art von einfacherer Schnittstelle könnte die Gelegenheiten für einen Angriff durch Bereitstellen von weniger Wegen zwischen dem Anwendungsprogramm und der Kerngrafik-Render- und -anzeigefunktionalität weiter verringern.
  • Eine einzelne gemeinsam nutzbare Vorrichtung 100, die mehrere Client-Schnittstellen aufweist, kann weiter verbessert werden, indem ihr die Fähigkeit hinzugefügt wird, die Anzahl der aktiven Schnittstellen zu verändern. Diese zusätzliche Fähigkeit könnte dazu gestaltet sein, einer bestimmten Software, die im System läuft, wie etwa der Dienst-VM 130 oder der VMM 224 (nachstehend in Verbindung mit 2 beschrieben), Zugriff auf Konfigurationsregister zu geben, die einige der Client-Schnittstellen aktivieren/deaktivieren, und andere nicht. Dies hilft, die Zuteilung von Betriebsmitteln in der Ein-/Ausgabe-Vorrichtung zu steuern, um zum Beispiel den Bedürfnissen der VM-Clients, die im System laufen, besser zu entsprechen.
  • Die in 1 gezeigte gemeinsam nutzbare Vorrichtung 100 kann auch eine oder mehrere Weltschnittstellenschaltungen (oder einfach, "Weltschnittstellen") 120 aufweisen. Wenn mehr als eine vorhanden sind, sind die Weltschnittstellen über ein zusätzliches Multiplex-Schaltungssystem 122 mit dem Kernfunktionsschaltungssystem 104 gekoppelt. Jede Weltschnittstelle 120 kann digitale und/oder analoge Schaltungen aufweisen, die dazu dienen, zwischen der Signalisierung im Kernfunktionsschaltungssystem 104 und der Signalisierung außerhalb der Vorrichtung zu übersetzen. Die Weltschnittstelle kann Steckverbinder und/oder andere Hardware beinhalten, die nötig sind bzw. ist, um über eine verdrahtete oder eine drahtlose Verbindung mit einem Computersystemperipheriegerät wie etwa einem Anzeigebildschirm oder einer Digitalkamera zu kommunizieren. Im Fall einer Netzwerkschnittstellensteuerung kann die Weltschnittstelle als Netzwerkzugang bezeichnet werden, der mit einem Knotenverbindungsmedium eines lokalen Netzwerks (LAN) verbunden ist. Dieser Zugang kann Schaltungen oder drahtlose Sender und Empfänger aufweisen, die mit einem LAN-Kabel (z.B. einem Ethernet-Kabel) verbunden sind oder zum Beispiel mit einem drahtlosen Zugangspunkt kommunizieren.
  • In einigen Ausführungsformen kann die gemeinsam nutzbare Vorrichtung 100 mit einer Steuerschnittstellenschaltung (oder einfach, einer "Steuerschnittstelle") 126 ausgerüstet sein, die durch Software im System, welche als Dienst-VM 130 bezeichnet wird, verwendet werden soll. Die Steuerschnittstelle 126 kann für eine Vielfalt von unterschiedlichen Zwecken verwendet werden. Zum Beispiel kann sie ein Mechanismus sein, um Daten von den verschiedenen Clients zu kombinieren (z.B., um zu steuern, wo auf dem gleichen Anzeigebildschirm die Ausgabe jeder VM dargestellt werden wird). Die Steuerschnittstelle kann auch verwendet werden, um gegensätzliche Befehle von den mehreren VM-Clients aufzulösen. Zum Beispiel kann sie eine andere Weise bereitstellen, um den Zugriff durch die VM-Clients 108 (über ihre jeweiligen Client-Schnittstellen 112) auf die Kernfunktionalität zu steuern. Als ein Beispiel kann die Steuerschnittstelle in einem gemeinsam nutzbaren Grafikadapter dazu gestaltet sein, der Dienst-VM 130 zu gestatten, die Vorrichtung mit einer bestimmten Ablaufplanungspolitik zur Anzeige mehrerer Fenster zu programmieren, z.B. einer, die während eines gegebenen Zeitintervalls nicht allen VM-Clients die gleiche Priorität verleiht; einer die einige, aber nicht alle der Funktionsblöcke in der Kernfunktionalität einem bestimmten VM-Clients zuteilt. In einer derartigen Ausführungsform kann die gemeinsam nutzbare Vorrichtung ferner mit Arbeitslast-Warteschlangen (nicht gezeigt) ausgerüstet sein, wobei für jede Client-Schnittstelle 112 eine Schlange vorhanden ist und zwischen der Client-Schnittstelle 112 und dem Kernfunktionsschaltungssystem 104 gekoppelt ist. Die Steuerschnittstelle würde der Dienst-VM gestatten, als eine Funktion des Warteschlangenzustands (z.B. ihrer Tiefe, wie voll oder leer sie ist, ihrer Priorität usw.) zu wählen, welche Warteschlange Befehle zum Kernfunktionsschaltungssystem führt. Die Steuerschnittstelle kann auch verwendet werden, um zu konfigurieren, wie Grafiken gerendert und dargestellt werden sollen, z.B. als Mehrfachbildschirm, wobei jede VM einem gesonderten Bildschirm zugeteilt wird, oder als Mehrfachfenster auf dem gleichen Bildschirm. Der Leistungsverbrauch des Grafikadapters kann ebenfalls über die Steuerschnittstelle verwaltet werden. Es ist zu beachten, daß die gemeinsam nutzbare Vorrichtung in manchen Fällen ohne die Steuerschnittstelle auskommen kann. Zum Beispiel kann eine gemeinsam verwendbare NIC einfach einmal mit einer Vermittlungspolitik programmiert (oder vielleicht festverdrahtet) werden, um ihre verschiedenen Client-Schnittstellen gerecht, oder sogar ungerecht, zu bedienen, wenn dies passend ist.
  • Im Fall einer NIC kann die Steuerschnittstelle der Dienst-VM gestatten, die Bandbreite, die auf einer Pro-VM-Client-Basis zugeteilt oder reserviert ist, zu verändern. Im Fall einer Soundkarte kann die Steuerschnittstelle der Dienst-VM gestatten, das Mischen des Tons von verschiedenen VM-Client-Quellen zu steuern. Noch eine andere Möglichkeit ist, die Steuerschnittstelle dazu zu verwenden, zu ermöglichen, daß ein Bild- und/oder Tonerfassungsstrom zu einem bestimmten VM-Client geroutet wird. Zum Beispiel kann sich die Steuerschnittstelle dort befinden, wo Software die Verbindung einer jeden von mehreren unterschiedlichen Medienzugriffssteuerungen (MAC) mit ihren jeweiligen VM-Clients angibt.
  • Unter Hinwendung zu 2 ist ein Blockdiagramm eines Computersystems, das eine gemeinsam nutzbare Vorrichtung 100 aufweist und einen Virtualisierungsprozess betreibt, dargestellt. Die gemeinsam nutzbare Vorrichtung 100 ist Teil der physikalischen Host-Rechner-Hardware 204 des Systems, auch als das bloße Metall bezeichnet. Die Host-Rechnerhardware 204 kann einen Satz von verfügbaren Ein-/Ausgabe-Vorrichtungen (nicht gezeigt) wie etwa eine Tastatursteuerung, eine Festplattenlaufwerksteuerung, und einen Grafikanzeigeadapter beinhalten. Diese dienen dazu, mit Peripheriegeräten wie etwa einer Benutzereingabe-Vorrichtung 208 (in diesem Beispiel als eine Kombination aus Tastatur und Maus dargestellt), einer nichtflüchtigen Massenspeichervorrichtung (hier als Festplattenlaufwerk 212 dargestellt), einem Anzeigebildschirm 214 und einer NIC-Adapterkarte 216 zu kommunizieren.
  • Die Virtualisierung wird hier unter Verwendung eines Programms erreicht, das als ein Virtual-Machine-Monitor (VMM) 224 bezeichnet wird. Die VMM 224 "teilt" die Host-Rechnerplattform 224 in mehrere isolierte virtuelle Maschinen (VMs) 228. Jede VM 228 erscheint für die Software, die darin läuft, als im wesentlichen vollständiges Computersystem, das wie gezeigt Ein-/Ausgabe-Vorrichtungen und Peripheriegeräte beinhaltet. Die VMM 224 ist für die Bereitstellung der Umgebung, in der jede VM 228 läuft, verantwortlich und kann verwendet werden, um die Isolation zwischen den VMs aufrechtzuerhalten (eine Alternative wäre hier die Verwendung von Hardware-CPU-Erweiterungen, um die Isolation aufrechtzuerhalten). Die Software, die in jeder VM 228 läuft, kann ein unterschiedliches Gast-OS 232 beinhalten. In einer VM-Umgebung hat jedes Gast-OS 232 die Vorstellung, daß es auf seiner eigenen Hardwareplattform läuft. Ein Gast-OS 232 kann sich deshalb möglicherweise nicht dessen bewußt sein, daß ein anderes Betriebssystem ebenfalls im gleichen System läuft, oder daß das zugrundeliegende Computersystem geteilt ist.
  • Der Virtualisierungsprozeß gestattet, daß Anwendungsprogramme 236 in unterschiedlichen VMs 228 an der Spitze ihrer jeweiligen Gastbetriebssysteme 232 laufen. Die Anwendungsprogramme 236 können ihre Informationen unter Verwendung gesonderter Fenster (zum Beispiel eines für jede VM) gleichzeitig auf einem einzelnen Anzeigebildschirm 214 darstellen. Dies wird durch die gemeinsam nutzbare Vorrichtung 100, die in diesem Beispiel ein Grafikadapter ist, möglich gemacht. Es ist zu beachten, daß die VMM 224 dazu gestaltet ist, sich des Vorhandenseins einer solchen gemeinsam nutzbaren Vorrichtung 100 bewußt zu sein, und demgemäß die Fähigkeit aufweist, sie zu verwalten (z.B. über eine Dienst-VM 130, siehe 1). Es werden jedoch viele Nachteile einer reinen Softwaretechnik zur gemeinsamen Benutzung einer physikalischen Vorrichtung vermieden. Zum Beispiel kann möglicherweise keine Notwendigkeit bestehen, eine ziemlich komplexe VMM zu gestalten und auszuführen, die verstehen muß, wie die physikalische Vorrichtung im Einzelnen arbeitet, um fähig zu sein, sie richtig gemeinsam zu teilen. Dies kann durch die Verfügbarkeit von mehreren Client-Schnittstellen in der Hardware, die durch jedes Gast-OS 232 leicht erkennbar sind, verhindert werden.
  • Einige zusätzliche Vorteile des Konzepts der gemeinsam benutzbaren Vorrichtung können durch die folgenden Beispiele beschrieben werden. Man betrachte ein System mit mehreren Prozessoren, oder eines mit einer Hyper-threaded zentralen Verarbeitungseinheit (CPU), wobei eine einzelne CPU als zwei oder mehr CPUs wirkt (nicht nur in einem Sinn der Ablaufplanung, sondern, da genug Ausführungskapazität verbleibt). Der Prozessor 1 führt den Code für eine VM0 aus, und der Prozessor 2 führt den Code für eine VM1 aus. Als nächstes nehme man an, daß jede VM gleichzeitig auf die gleiche Ein-/Ausgabe-Vorrichtung zugreifen möchte. Eine nicht gemeinsam benutzbare Ein-/Ausgabe-Vorrichtung kann zu jedem beliebigen Zeitpunkt nur in einem Kontext tätig sein. Daher kann nur eine der VMs auf die Vorrichtung zugreifen. Der Versuch der anderen VM, auf die Vorrichtung zuzugreifen, würde dazu führen, daß sie im falschen Kontext auf die Vorrichtung zugreift.
  • Eine Ausführungsform der Erfindung gestattet das Entkoppeln der "Unterhaltung" (zwischen einer VM und einer Hardware-Client-Schnittstelle) und der "Arbeit" (die durch das Kernfunktionsschaltungssystem ausgeführt wird), so daß die oben beschriebene Kontextumschaltung möglicherweise nicht benötigt wird. Dies liegt daran, daß jeder VM ihre gesonderte Hardware-Client-Schnittstelle zugeteilt ist, so daß die VMs die Ein-/Ausgabe-Anforderungen zu ihren jeweiligen Client-Schnittstellenschaltungen senden können, ohne daß eine Kontextumschaltung der Ein-/Ausgabe-Vorrichtung benötigt wird. Dies stellt eine Lösung für das oben beschriebene Zugriffsproblem bereit.
  • Als anderes Beispiel betrachte man eine CPU, die sowohl die VM0 als auch die VM1 ablaufen läßt. In der VM0 macht die Anwendungssoftware verhältnismäßig starken Gebrauch von der CPU (berechnet sie, z.B., die Konstante Pi), verlangt aber sehr wenig vom Grafikadapter (z.B. das Aktualisieren der Uhr in einem Anzeigefenster). Im anderen VM-Fenster wird ein Grafikmuster regelmäßig durch den Grafikadapter aktualisiert, wenn auch unter geringer Verwendung der CPU. Man nehme nun an, daß die CPU und der Grafikadapter vom Kontext her zusammengeschaltet sind (daß der Grafikadapter und die CPU für einen Teil der Zeit an die VM0 und für den Rest der Zeit an die VM1 gegeben werden). In diesem Fall führt die verhältnismäßig leichte Grafikanforderung durch die VM0 während eines Teils der Zeit zu verschwendeten/Leerlauf-Grafikzyklen, während die leichte CPU-Anforderung durch die VM1 für den Rest der Zeit verschwendete/Leerlauf-CPU-Zyklen erzeugt. Dies liegt daran, daß sich sowohl die CPU als auch die Grafikadapter-Kernfunktionalität immer im gleichen Kontext befinden. Diese nicht leistungsfähige Verwendung der Systembetriebsmittel kann durch eine Ausführungsform der Erfindung, die gestattet, daß die Arbeitsbelastung der CPU unabhängig von der Arbeitsbelastung des Grafikadapters geplant wird, verhindert werden. Durch die Verfügbarkeit von verschiedenen Hardware-Client-Schnittstellen im Grafikadapter kann die CPU so geplant werden, daß sie den Großteil ihrer Zeit mit der Ausführung für die VM0 verbringt, aber immer noch gelegentlich Zugriff auf den Grafikadapter erhält. Andererseits kann die Kernfunktionalität des Grafikadapters so eingeteilt werden, daß sie den Großteil ihrer Zeit an der VM1 verbringt, und gelegentlich unterbrochen werden kann, um die VM0 zu bedienen.
  • Unter Hinwendung zu 3 ist ein Ablaufdiagramm eines Virtualisierungsprozesses, der mit der Feststellung und der Teilung einer gemeinsam benutzbaren Ein-/Ausgabe-Vorrichtung in einem Computersystems verbunden ist, dargestellt. Das System kann das in 2 gezeigte sein. Das Verfahren beginnt mit der Tätigkeit 304, in der im System ein Plug-and-Play-Feststellungsprozeß durchgeführt wird. Als ein Beispiel kann dies Teil eines herkömmlichen PCI-Vorrichtungs- und -Funktionsaufzählungsprozesses (auch als "PCI-Konfigurationsprozeß" bezeichnet) sein. Der Feststellungsprozeß kann die mehreren Ein-/Ausgabe-Vorrichtungen als Ergebnis des Lesens einer eindeutigen PCI-Vorrichtungskennungsnummer für jede Vorrichtung von den verschiedenen Client-Schnittstellen einer einzelnen Grafikadapterkarte feststellen. Dies kann nach dem Einschalten des Systems durch eine Ein-/Ausgabe-Grundsystem-Firmware (BIOS) erfolgen, und/oder die VMM wird durch einen Prozessor des Systems ausgeführt. Die Adapterkarte ist ein Beispiel für eine gemeinsam benutzbare Ein-/Ausgabe-Vorrichtung, deren Kern-Ein-/Ausgabefunktionalität durch ihre mehreren Hardware-Client-Schnittstellen gemeinsam benutzt werden wird. Der Feststellungsprozeß kann auch eine andere Vorrichtung in der Form der Steuerschnittstelle 126 (siehe 2) feststellen.
  • In einer alternativen Ausführungsform kann das BIOS während des anfänglichen Hochfahrens nur die Steuerschnittstelle feststellen. Einige Zeit später kann die VMM die Steuerschnittstelle verwenden, um wie nötig eine oder mehrere Client-Schnittstellen zu erzeugen. Diese Schnittstellen könnten alle auf einmal erzeugt werden, oder nach Bedarf erzeugt werden. Bei der Erzeugung jeder Schnittstelle würde die VMM ein Ereignis des Anschließens bei laufendem Betrieb (hot plug event) erkennen, das die "Einfügung" der neu erzeugten Schnittstelle angibt. Siehe zum Beispiel die mit "Method, Apparatus and System for Dynamically Reassigning a Physical Device from One Virtual Machine to Another" betitelte US-Patentanmeldung mit der Seriennummer 10/794,469 von Lantz et al., die am 5. März 2004 eingereicht wurde und dem gleichen Übertragungsempfänger wie jenem der vorliegenden Anmeldung übertragen ist.
  • Das Verfahren setzt mit Tätigkeit 308 fort, bei der die VMM, oder die Dienst-VM, eine oder mehrere VMs erzeugt und ihnen eine oder mehrere der festgestellten Ein-/Ausgabe-Vorrichtungen zuteilt. In diesem Beispiel ist jede festgestellte Vorrichtung der Grafikadapter einer jeweiligen VM im System. Die Dienst-VM kann dann verwendet werden, um den Adapter über seine Steuerschnittstelle zu konfigurieren, so daß seine Kern-Ein-/Ausgabefunktionalität gemäß, zum Beispiel, einer Prioritätspolitik, die einer VM Priorität vor einer anderen gibt (Tätigkeit 312), gemeinsam benutzt wird. Danach kann die VMM in den Hintergrund treten, sobald die VMs laufen, und sich im wesentlichen selbst nicht mit Ein-/Ausgabe-Vorgängen befassen, da jede VM nun ihre OS-Anrufe, die auf die Anzeige von Grafiken abzielen, leicht abändern oder erfassen kann (z.B. durch Hinzufügen eines Adressenversatzes, um auf ihre zugeteilte HardwareClient-Schnittstelle zu zeigen).
  • Einige Ausführungsformen der Erfindung können als ein Computerprogrammprodukt oder Software bereitgestellt werden, das bzw. die eine Maschine oder ein computerlesbares Medium beinhalten kann, auf der bzw. dem Befehle gespeichert sind, die verwendet werden können, um einen Computer (oder eine andere elektronische Vorrichtung) zur Durchführung eines Prozesses nach einer Ausführungsform der Erfindung zu programmieren. In anderen Ausführungsformen könnten Tätigkeiten durch bestimmte Hardwarekomponenten, die Mikrocodes oder festverdrahtete Logik enthalten, oder durch jede beliebige Kombination von programmierten Computerkomponenten und maßgeschneiderten Hardwarekomponenten durchgeführt werden.
  • Ein maschinenlesbares Medium kann jeder beliebige Mechanismus sein, der Informationen in einer Form bereitstellt, d. h., speichert oder sendet, die für eine Maschine (z.B. einen Satz aus einem oder mehreren Prozessoren, einen Tischcomputer, einen tragbaren Computer, ein Herstellungswerkzeug, oder jede beliebige andere Vorrichtung, die einen Prozessor aufweist) zugänglich ist, wie z.B. beschreibbare/nicht beschreibbare Medien wie etwa Nurlesespeicher (ROM), Direktzugriffsspeicher (RAM), magnetische rotierende Plattenspeichermedien, optische Plattenspeichermedien wie auch elektrisch, optisch, akustisch oder in anderer Form verbreitete Signale (z.B. Trägerwellen, Infrarotsignale usw.).
  • Zusammengefaßt wurden verschiedenste Ausführungsformen einer Technik zur gemeinsamen Benutzung einer physikalischen Vorrichtung unter mehreren Clients beschrieben. In der obigen Beschreibung wurde die Erfindung unter Bezugnahme auf bestimmte beispielhafte Ausführungsformen davon beschrieben. Es wird jedoch offensichtlich sein, daß daran Abwandlungen und Veränderungen vorgenommen werden können, ohne vom weiteren Geist und Umfang der Erfindung, wie diese in den beiliegenden Ansprüchen bekannt gemacht sind, abzuweichen. Zum Beispiel kann das Computersystem, in dem die VMM laufen wird, mehrere Prozessoren (CPUs) aufweisen, wobei jeder VM-Client zum Beispiel auf einem unterschiedlichen Prozessor laufen kann. Die mehreren Client-Schnittstellen einer gemeinsam benutzbaren Vorrichtung in einem derartigen System gestatten, daß der Zugriff auf die gleiche Kernfunktionalität der Vorrichtung durch unterschiedliche VM-Clients gleichzeitig stattfindet, ohne daß die VM-Clients voneinander Kenntnis haben. Dies würde stattfinden, ohne daß die VM-Clients einander von ihrem eigenen Blickpunkt her stören. "Gleichzeitiger Zugriff" bedeutet in diesem Zusammenhang zum Beispiel, daß eine Vorgangsanforderung durch die Ein-/Ausgabe-Vorrichtung erfaßt wird, aber noch nicht abgeschlossen wurde, und eine andere Vorgangsanforderung ebenfalls durch die Ein-/Ausgabe-Vorrichtung erfaßt wird und nicht abgeschlossen wurde. In einem nichtvirtualisierten System stellt das OS typischerweise sicher, daß ein derartiges Szenario nicht gestattet wird, daß z.B. keinen zwei CPUs gestattet wird, die gleiche Vorrichtung zur gleichen Zeit zu programmieren. Doch in einer Ausführungsform des hier beschriebenen VM-Systems ist erwünscht, daß die VMM keine derartige Verantwortung übernehmen muß (aufgrund der Komplexität einer derartigen Software, die jeden Zugriff auf eine Ein-/Ausgabe-Vorrichtung überwachen müßte oder damit befaßt sein müßte). Demgemäß gibt es in einem derartigen System keine Koordination zwischen den VM-Clients oder Gästen, während sie auf die gleiche Ein-/Ausgabe-Vorrichtung zugreifen. Diese Zugriffe werden jedoch aufgrund der Natur der mehreren Client-Schnittstellen, die oben beschrieben wurden, richtig zur Kernfunktionalität der Ein/Ausgabe-Vorrichtung geroutet, was diese Lösung für Mehrfachprozessor-VM-Systeme besonders attraktiv macht. Die Beschreibung und die Zeichnungen sollen demgemäß anstatt in einem beschränkenden Sinn vielmehr in einem erläuternden Sinn betrachtet werden.
  • Zusammenfassung
  • Eine physikalische Vorrichtung weist ein Kernfunktionsschaltungssystem auf, das eine Kern-Ein-/Ausgabefunktion eines Computersystems durchführen soll. Es sind mehrere Client-Schnittstellen bereitgestellt, von denen sich jede einem Software-Client im System als eine vollständige Vorrichtung zeigt, um auf das Kernfunktionsschaltungssystem zuzugreifen. Ein Multiplexierungsschaltungssystem koppelt die Client-Schnittstellen mit der Kern-Ein-/Ausgabefunktionalität. Andere Ausführungsformen sind ebenfalls beschrieben und beansprucht.

Claims (35)

  1. Physikalische Vorrichtung, umfassend: ein Kernfunktionsschaltungssystem, das eine Kernfunktion eines Computersystems durchführen soll; mehrere Client-Schnittstellenschaltungen, wovon sich jede einem Software-Client im System als eine vollständige Vorrichtung zeigt, um auf das Kernfunktionsschaltungssystem zuzugreifen; und ein Multiplexierungsschaltungssystem, das die mehreren Client-Schnittstellenschaltungen mit dem Kernfunktionsschaltungssystem koppelt.
  2. Vorrichtung nach Anspruch 1, wobei die Kernfunktion eine Hauptfunktion eines Anzeigegrafikadapters ist.
  3. Vorrichtung nach Anspruch 1, wobei die Hauptfunktion ein Bild-Rendern ist.
  4. Vorrichtung nach Anspruch 1, wobei die Kernfunktion eine Hauptfunktion einer Netzwerkschnittstellensteuerung ist.
  5. Vorrichtung nach Anspruch 4, wobei die Hauptfunktion die TCP/IP-Paketabladung ist.
  6. Vorrichtung nach Anspruch 1, wobei die Client-Schnittstellen einem Software-Client unterschiedliche Fähigkeiten der Ein/Ausgabe-Vorrichtung darlegen.
  7. Vorrichtung nach Anspruch 1, wobei eine der Client-Schnittstellen einen zuverlässigen Grafikadapter darlegt und eine andere einen unzuverlässigen Grafikadapter.
  8. Vorrichtung nach Anspruch 1, wobei jede der mehreren Client-Schnittstellen einen gesonderten Satz von Registern aufweist, um einen Betrieb des Kernfunktionsschaltungssystems zu konfigurieren, und wobei ein Satz einem Software-Client als eine ältere Version einer Ein-/Ausgabe-Vorrichtung erscheint und ein anderer Satz dem Software-Client als eine neuere Version der Ein-/Ausgabe-Vorrichtung erscheint.
  9. Vorrichtung nach Anspruch 1, ferner umfassend: eine Steuerschnittstellenschaltung, die durch eine Dienst-Virtuelle-Maschine (VM)-Software im System verwendet werden soll, um den Zugriff durch mehrere VMs im System auf das Kernfunktionsschaltungssystem zu steuern, wobei die mehreren VMs jeweils über die mehreren Client-Schnittstellenschaltungen auf das Kernfunktionsschaltungssystem zugreifen sollen.
  10. Vorrichtung nach Anspruch 9, wobei die Kernfunktion eine Hauptfunktion eines Anzeigegrafikadapters ist, und wobei die Steuerschnittstelle der Dienst-VM-Software gestattet, zu wählen, wie mehrere Fenster für die jeweils mehreren VMs unter Verwendung des Kernfunktionsschaltungssystems dargestellt werden sollen.
  11. Vorrichtung nach Anspruch 1, ferner umfassend: mehrere Weltschnittstellenschaltungen, die über ein zusätzliches Multiplexierungsschaltungssystem mit dem Kernfunktionsschaltungssystem gekoppelt sind, um zwischen der Signalisierung im Kernfunktionsschaltungssystem und der Signalisierung außerhalb der Vorrichtung zu übersetzen.
  12. Vorrichtung nach Anspruch 11, wobei die mehreren Weltschnittstellenschaltungen zwischen der Signalisierung im Kernfunktionsschaltungssystem und der Signalisierung in einem peripheren Bus des Computers übersetzen sollen.
  13. Vorrichtung nach Anspruch 11, wobei die mehreren Weltschnittstellenschaltungen zwischen einer Signalisierung im Kernfunktionsschaltungssystem und einer Signalisierung in einem LAN-Knotenverbindungsmedium übersetzen sollen.
  14. Vorrichtung nach Anspruch 9, ferner umfassend mehrere Arbeitslastwarteschlangen, die jeweils zwischen einer gesonderten der mehreren Client-Schnittstellenschaltungen und dem Kernfunktionsschaltungssystem gekoppelt sind, wobei die Steuerschnittstellenschaltung der Dienst-VM gestattet, als Funktion des Warteschlangenzustands zu wählen, welche Warteschlange das Kernfunktionsschaltungssystem speisen soll.
  15. Ein-/Ausgabe-Vorrichtung, umfassend: ein Kern-Ein-/Ausgabefunktionsschaltungssystem, um eine Kern-Ein-/Ausgabefunktion eines Computersystems durchzuführen; und mehrere Client-Schnittstellenschaltungen, wovon jede durch eine virtuelle Maschine (VM) im System verwendet werden kann, um auf die Kern-Ein-/Ausgabefunktion zuzugreifen, um dieselbe Kern-Ein-/Ausgabefunktion aufzurufen.
  16. Ein-/Ausgabe-Vorrichtung nach Anspruch 15, wobei jede der Client-Schnittstellenschaltungen einen gesonderten Satz von Registern aufweist, die von außerhalb der Ein-/Ausgabe-Vorrichtung zugänglich sind, und wobei jeder Satz mit Ausnahme eines Versatzes den gleichen Adressenbereich aufweist.
  17. Ein-/Ausgabe-Vorrichtung nach Anspruch 15, wobei eine der Client-Schnittstellenschaltungen der Grafikadapterfunktionalität eine Inhaltsschutzschnittstelle präsentiert, um ein unbefugtes Vervielfältigen von Ausgangsdaten, die durch die Grafikadapterfunktionalität wiedergegeben, zu vereiteln, und eine andere der Client-Schnittstellenschaltungen eine unsichere Schnittstelle zur Grafikadapterfunktionalität präsentiert.
  18. Ein-/Ausgabe-Vorrichtung nach Anspruch 15, wobei die Ein-/Ausgabe-Vorrichtung einer Software die Fähigkeit geben kann, die Anzahl der Client-Schnittstellen nach Belieben zu ändern, um die Betriebsmittel der Ein-/Ausgabe-Vorrichtung besser an die Bedürfnisse von mehreren Virtuelle-Maschine-Clients, die jeweils durch die mehreren Client-Schnittstellenschaltungen auf die Ein-/Ausgabe-Vorrichtung zugreifen werden, anzupassen.
  19. Computersystem mit Virtuell-Maschine-Fähigkeit, umfassend: einen Prozessor; einen Speicher der einen darin gespeicherten Virtual-Machine-Monitor (VMM) aufweist, wobei durch den Prozessor auf die VMM zugegriffen werden soll, um mehrere virtuelle Maschinen (VMs) im System zu verwalten, um jeweils mehrere Client-Programme zu betreiben; und eine Ein-/Ausgabe-Vorrichtung, die mehrere Schnittstellen in Hardware aufweist, wobei sich jede Schnittstelle einem jeweiligen der mehreren Client-Programme, die in den mehreren VMs laufen werden, als eine gesonderte Ein-/Ausgabe-Vorrichtung zeigt.
  20. System nach Anspruch 19, wobei der Speicher ferner eine darin gespeicherte Dienst-VM beinhaltet, auf die durch den Prozessor zugegriffen werden soll, und die Ein-/Ausgabe-Vorrichtung ferner eine Steuerschnittstelle in Hardware umfaßt, die durch die Dienst-VM verwendet werden soll, um das Kern-Ein-/Ausgabefunktionsschaltungssystem zu konfigurieren.
  21. System nach Anspruch 20, wobei die Ein-/Ausgabe-Vorrichtung ferner eine Weltschnittstelle in Hardware umfaßt, die zwischen einer Signalisierung des Kern-Ein-/Ausgabefunktionsschaltungssystems und einer Signalisierung außerhalb der Ein-/Ausgabe-Vorrichtung übersetzen soll.
  22. Virtualisierungsvorrichtung, umfassend: ein Mittel, um eine Kern-Ein-/Ausgabefunktion eines Computersystems durchzuführen; ein Mittel, um mehreren Virtuelle-Maschine-(VM)-Clients mehrere vollständige Schnittstellen zu bieten, um auf die Kern-Ein-/Ausgabefunktion zuzugreifen, wobei jede Schnittstelle insofern vollständig ist, als sie durch den gleichen Vorrichtungstreiber wie eine gesonderte Ein-/Ausgabe-Vorrichtung zugänglich ist; und ein Mittel, um Nachrichten zwischen dem Mittel zur Durchführung der Kern-Ein-/Ausgabefunktion und dem Mittel zum Präsentieren der vollständigen Schnittstelle weiterzugeben.
  23. Virtualisierungsvorrichtung nach Anspruch 22, wobei jede der vollständigen Schnittstellen eine gesonderte Ein-/Ausgabe-Vorrichtung bietet, die a) eine eindeutige Vorrichtungskennungsnummer, und b) einen gesonderten Satz von Konfigurationsregistern, die auf dem gleichen Bus dargelegt sind, aufweist.
  24. Virtualisierungsvorrichtung nach Anspruch 23, wobei jeder Satz von Konfigurationsregistern eine gesonderte PCI-Vorrichtungskennung, eine Verkäuferkennung, eine Nachprüfungskennung und einen Klassencode speichern soll.
  25. Verfahren zum gemeinsamen Teilen einer Ein-/Ausgabe-Vorrichtung, umfassend: Durchführen eines Plug-and-Play-Feststellungs-Prozesses in einem Computersystem; und Feststellen, durch diesen Prozeß, daß im System mehrere Ein-/Ausgabe-Vorrichtungen vorhanden sind, wenn die festgestellten Ein-/Ausgabe-Vorrichtungen tatsächlich auf die Verbindung einer einzelnen mit dem System verbundenen physikalischen Ein-/Ausgabe-Vorrichtung zurückzuführen sind, und in welchem dessen Kern-Ein-/Ausgabefunktionalität durch mehrere HardwareClient-Schnittstellen in der physikalischen Ein-/Ausgabe-Vorrichtung gemeinsam geteilt wird.
  26. Verfahren nach Anspruch 25, wobei das Feststellen das Lesen einer eindeutigen PCI-Vorrichtungskennungsnummer für jede der festgestellten Ein-/Ausgabe-Vorrichtungen von einer einzelnen Grafikadapterkarte, die die gemeinsam geteilte Kern-Ein-/Ausgabefunktionalität enthält, umfaßt.
  27. Verfahren nach Anspruch 25, ferner umfassend: Zuteilen der mehreren festgestellten Ein-/Ausgabe-Vorrichtungen zu jeweils mehreren virtuellen Maschinen (VMs) im System.
  28. Verfahren nach Anspruch 27, ferner umfassend: Konfigurieren der Kern-Ein-/Ausgabefunktionalität, die gemeinsam geteilt werden soll, wenn die mehreren VMs bedient werden, gemäß einer Prioritätspolitik, die einer der VMs Priorität vor einer anderen gibt.
  29. Herstellungsgegenstand, der ein maschinenlesbares Medium mit darin gespeicherten Daten aufweist, das, wenn durch einen Prozessor in einem Computersystem darauf zugegriffen wird, in eine Steuerschnittstelle einer physikalischen Vorrichtung im System schreibt und davon liest, um den Zugriff auf die gleiche Kernfunktionalität der Vorrichtung durch mehrere Client-Schnittstellen in Hardware, wovon sich jede einem Vorrichtungstreiberprogramm im System als vollständige Vorrichtung zeigt, zu steuern.
  30. Herstellungsgegenstand nach Anspruch 29, wobei die Daten Teil einer Virtualisierungssoftware für das System sind.
  31. Herstellungsgegenstand nach Anspruch 30, wobei die Daten von einer solchen Art sind, daß die Schreib- und Lesevorgänge die physikalische Vorrichtung mit einer Ablaufplanungspolitik für die Kernfunktionalität programmieren, um Bilder von den Client-Schnittstellen zu rendern bzw. in mehreren Anzeigefenstern darzustellen.
  32. Herstellungsgegenstand nach Anspruch 30, wobei die Daten von einer solchen Art sind, daß sie die physikalische Vorrichtung programmieren, zu wählen, welche Warteschlange, die mit einer der mehreren Client-Schnittstellen verbunden ist, Befehle zur Kernfunktionalität zuführt.
  33. Herstellungsgegenstand nach Anspruch 30, wobei die Daten von einer solchen Art sind, daß die Schreib- und Lesevorgänge Leistungsverwaltungstätigkeiten an der physikalischen Vorrichtung durchführen.
  34. Herstellungsgegenstand nach Anspruch 30, wobei die Daten von einer solchen Art sind, daß die Schreib- und Lesevorgänge auf das Routen eines externen Erfassungsstroms zu einer der Client-Schnittstellen gerichtet sind.
  35. Mehrfachprozessor-Computersystem mit Virtuelle Maschine-Fähigkeit, umfassend: mehrere Prozessoren; einen Speicher, der einen darin gespeicherten Virtual-Machine-Monitor (VMM) aufweist, wobei einer der Prozessoren die VMM ablaufen läßt, um mehrere virtuelle Maschinen (VMs) im System zu verwalten, um jeweils mehrere Client-Programme ablaufen zu lassen; und eine Ein-/Ausgabe-Vorrichtung, die eine Kernfunktionalität und mehrere Schnittstellen in Hardware aufweist, wovon sich jede einem jeweiligen der mehreren Client-Programme, die in den mehreren VMs laufen werden, als eine gesonderte Ein-/Ausgabevorrichtung zeigt, wobei die mehreren VMs über die mehreren Schnittstellen gleichzeitig auf die Kernfunktionalität der Ein-/Ausgabevorrichtung zugreifen können, ohne Kenntnis voneinander zu haben, und ohne daß die VMM zwischen den mehreren VMs vermitteln muß.
DE112005001502T 2004-06-30 2005-06-22 Gemeinsame Benutzung einer physikalischen Vorrichtung durch mehrere Kunden Ceased DE112005001502T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/882,458 US20060069828A1 (en) 2004-06-30 2004-06-30 Sharing a physical device among multiple clients
US10/882,458 2004-06-30
PCT/US2005/022467 WO2006012291A2 (en) 2004-06-30 2005-06-22 Sharing a physical device among multiple clients

Publications (1)

Publication Number Publication Date
DE112005001502T5 true DE112005001502T5 (de) 2007-11-29

Family

ID=34972763

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005001502T Ceased DE112005001502T5 (de) 2004-06-30 2005-06-22 Gemeinsame Benutzung einer physikalischen Vorrichtung durch mehrere Kunden

Country Status (7)

Country Link
US (1) US20060069828A1 (de)
JP (1) JP2008503015A (de)
KR (1) KR100893541B1 (de)
CN (1) CN100517287C (de)
DE (1) DE112005001502T5 (de)
TW (1) TWI303025B (de)
WO (1) WO2006012291A2 (de)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060184296A1 (en) * 2005-02-17 2006-08-17 Hunter Engineering Company Machine vision vehicle wheel alignment systems
US7480742B2 (en) * 2005-02-25 2009-01-20 International Business Machines Corporation Method for virtual adapter destruction on a physical adapter that supports virtual adapters
US7376770B2 (en) * 2005-02-25 2008-05-20 International Business Machines Corporation System and method for virtual adapter resource allocation matrix that defines the amount of resources of a physical I/O adapter
US20060195623A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host memory mapped input/output memory address for identification
US7464191B2 (en) * 2005-02-25 2008-12-09 International Business Machines Corporation System and method for host initialization for an adapter that supports virtualization
US7308551B2 (en) * 2005-02-25 2007-12-11 International Business Machines Corporation System and method for managing metrics table per virtual port in a logically partitioned data processing system
US7543084B2 (en) * 2005-02-25 2009-06-02 International Business Machines Corporation Method for destroying virtual resources in a logically partitioned data processing system
US20060195617A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Method and system for native virtualization on a partially trusted adapter using adapter bus, device and function number for identification
US20060195848A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method of virtual resource modification on a physical adapter that supports virtual resources
US7493425B2 (en) * 2005-02-25 2009-02-17 International Business Machines Corporation Method, system and program product for differentiating between virtual hosts on bus transactions and associating allowable memory access for an input/output adapter that supports virtualization
US20060193327A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for providing quality of service in a virtual adapter
US7496790B2 (en) * 2005-02-25 2009-02-24 International Business Machines Corporation Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization
US7685335B2 (en) * 2005-02-25 2010-03-23 International Business Machines Corporation Virtualized fibre channel adapter for a multi-processor data processing system
US7398328B2 (en) * 2005-02-25 2008-07-08 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host bus, device, and function number for identification
US20060212870A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization
US7398337B2 (en) * 2005-02-25 2008-07-08 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
US7546386B2 (en) * 2005-02-25 2009-06-09 International Business Machines Corporation Method for virtual resource initialization on a physical adapter that supports virtual resources
US7870301B2 (en) * 2005-02-25 2011-01-11 International Business Machines Corporation System and method for modification of virtual adapter resources in a logically partitioned data processing system
US7386637B2 (en) * 2005-02-25 2008-06-10 International Business Machines Corporation System, method, and computer program product for a fully trusted adapter validation of incoming memory mapped I/O operations on a physical adapter that supports virtual adapters or virtual resources
US20060195618A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Data processing system, method, and computer program product for creation and initialization of a virtual adapter on a physical adapter that supports virtual adapter level virtualization
US7475166B2 (en) * 2005-02-28 2009-01-06 International Business Machines Corporation Method and system for fully trusted adapter validation of addresses referenced in a virtual host transfer request
US20070136554A1 (en) * 2005-12-12 2007-06-14 Giora Biran Memory operations in a virtualized system
US20070168872A1 (en) * 2006-01-19 2007-07-19 Raytheon Company Multi-monitor, multi-JVM java GUI infrastructure with layout via XML
US20070192518A1 (en) * 2006-02-14 2007-08-16 Aarohi Communications, Inc., A California Corporation Apparatus for performing I/O sharing & virtualization
US8539137B1 (en) * 2006-06-09 2013-09-17 Parallels IP Holdings GmbH System and method for management of virtual execution environment disk storage
US8407699B2 (en) * 2008-03-10 2013-03-26 Citrix Systems, Inc. System and method for managing code isolation
US9317309B2 (en) * 2006-12-28 2016-04-19 Hewlett-Packard Development Company, L.P. Virtualized environment allocation system and method
US8190778B2 (en) 2007-03-06 2012-05-29 Intel Corporation Method and apparatus for network filtering and firewall protection on a secure partition
CN101272295B (zh) * 2007-03-21 2012-01-25 联想(北京)有限公司 支持多投影源的虚拟网络投影系统及方法
WO2009039375A2 (en) 2007-09-20 2009-03-26 C & S Operations, Inc. Computer system
KR101007279B1 (ko) * 2007-12-17 2011-01-13 한국전자통신연구원 가상 머신 디스크 풀을 이용한 가상 머신 프로비저닝 방법 및 시스템
TWI356301B (en) 2007-12-27 2012-01-11 Ind Tech Res Inst Memory management system and method for open platf
US8646052B2 (en) * 2008-03-31 2014-02-04 Intel Corporation Method and apparatus for providing a secure display window inside the primary display
US20100169884A1 (en) * 2008-12-31 2010-07-01 Zohar Bogin Injecting transactions to support the virtualization of a physical device controller
JP5081847B2 (ja) * 2009-02-20 2012-11-28 株式会社日立製作所 マルチプロセッサによるパケット処理装置およびパケット処理方法
SG175827A1 (en) * 2009-06-16 2011-12-29 Intel Corp Camera applications in a handheld device
US9021556B2 (en) * 2009-11-23 2015-04-28 Symantec Corporation System and method for virtual device communication filtering
US8572610B2 (en) * 2009-12-09 2013-10-29 General Electric Company Patient monitoring system and method of safe operation with third party parameter applications
JP5423404B2 (ja) * 2010-01-08 2014-02-19 日本電気株式会社 オフロード処理装置、および、通信システム
US8739177B2 (en) * 2010-06-21 2014-05-27 Intel Corporation Method for network interface sharing among multiple virtual machines
US20120054740A1 (en) * 2010-08-31 2012-03-01 Microsoft Corporation Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments
KR20120035493A (ko) * 2010-10-05 2012-04-16 엘지전자 주식회사 네트워크 모니터 시스템 및 그 제어 방법
CN102480410B (zh) * 2010-11-22 2015-06-10 杭州华三通信技术有限公司 一种集中式业务处理单板及虚拟化资源划分方法
KR101502895B1 (ko) 2010-12-22 2015-03-17 주식회사 케이티 복수의 오류 복제본으로부터 오류를 복구하는 방법 및 상기 방법을 이용하는 스토리지 시스템
KR101707545B1 (ko) * 2010-12-23 2017-02-16 주식회사 케이티 솔루션 공유 방법 및 그 장치
KR101585146B1 (ko) * 2010-12-24 2016-01-14 주식회사 케이티 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
KR101544480B1 (ko) 2010-12-24 2015-08-13 주식회사 케이티 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
KR101483127B1 (ko) 2011-03-31 2015-01-22 주식회사 케이티 클라우드 스토리지 시스템에서 리소스를 고려한 자료분배방법 및 장치
KR101544483B1 (ko) 2011-04-13 2015-08-17 주식회사 케이티 분산 저장 시스템의 복제 서버 장치 및 복제본 생성 방법
KR101544485B1 (ko) 2011-04-25 2015-08-17 주식회사 케이티 클라우드 스토리지 시스템에서 복수개의 복제본을 분산 저장하는 방법 및 장치
US8972984B2 (en) * 2011-05-20 2015-03-03 Citrix Systems, Inc. Methods and systems for virtualizing audio hardware for one or more virtual machines
WO2013048422A1 (en) * 2011-09-30 2013-04-04 Hewlett-Packard Development Company, L.P. Virtualized device control in computer systems
DE102011116407A1 (de) * 2011-10-19 2013-04-25 embedded projects GmbH Mobile Recheneinheit
US9164789B2 (en) * 2012-02-29 2015-10-20 Red Hat Israel, Ltd. Multiple queue management and adaptive CPU matching in a virtual computing system
US20140012704A1 (en) 2012-07-05 2014-01-09 Google Inc. Selecting a preferred payment instrument based on a merchant category
US9092767B1 (en) * 2013-03-04 2015-07-28 Google Inc. Selecting a preferred payment instrument
WO2014137008A1 (ko) * 2013-03-06 2014-09-12 팬터로그 주식회사 그래픽 자원 공유 시스템 및 방법
CN103778018B (zh) * 2014-01-16 2018-05-04 深圳艾迪宝智能系统有限公司 一种用于pcie虚拟化管理的方法
US9858572B2 (en) 2014-02-06 2018-01-02 Google Llc Dynamic alteration of track data
US9632953B2 (en) * 2014-06-03 2017-04-25 Qualcomm Incorporated Providing input/output virtualization (IOV) by mapping transfer requests to shared transfer requests lists by IOV host controllers
TWI592874B (zh) 2015-06-17 2017-07-21 康齊科技股份有限公司 網路伺服系統
JP6545022B2 (ja) * 2015-07-10 2019-07-17 日本電産サンキョー株式会社 カード搬送システム及びカード搬送制御方法
US10185679B2 (en) 2016-02-24 2019-01-22 Red Hat Israel, Ltd. Multi-queue device assignment to virtual machine groups
CN109542581B (zh) * 2017-09-22 2020-10-13 深圳市中兴微电子技术有限公司 一种设备共享方法、装置及存储介质
CN110618843A (zh) * 2018-06-20 2019-12-27 成都香巴拉科技有限责任公司 单电脑主机多用户桌面虚拟化系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0664536B2 (ja) * 1986-01-17 1994-08-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 仮想端末サブシステムの制御方法
US5414851A (en) * 1992-06-15 1995-05-09 International Business Machines Corporation Method and means for sharing I/O resources by a plurality of operating systems
AU680931B2 (en) * 1993-07-28 1997-08-14 3Com Corporation Network station with multiple network addresses
JPH09167429A (ja) * 1995-12-15 1997-06-24 Fujitsu Ltd 光ディスク装置
US5758099A (en) * 1996-05-29 1998-05-26 International Business Machines Corporation Plug and play protocol for bus adapter card
JP2866376B2 (ja) * 1998-05-20 1999-03-08 株式会社日立製作所 ディスクアレイ装置
JP3659062B2 (ja) * 1999-05-21 2005-06-15 株式会社日立製作所 計算機システム
JP4395223B2 (ja) * 1999-09-24 2010-01-06 株式会社日立製作所 表示装置、表示方法、および、ナビゲーション装置
US6823404B2 (en) * 2000-06-08 2004-11-23 International Business Machines Corporation DMA windowing in an LPAR environment using device arbitration level to allow multiple IOAs per terminal bridge
JP2002351621A (ja) * 2001-05-30 2002-12-06 Toshiba Corp 複数デバイスとして認識されるドライブ装置と光ディスクドライブ装置及びこれらの方法
US7174550B2 (en) * 2003-05-12 2007-02-06 International Business Machines Corporation Sharing communications adapters across a plurality of input/output subsystem images
JP2005301513A (ja) * 2004-04-08 2005-10-27 Fujitsu Ltd プログラム内蔵デバイス

Also Published As

Publication number Publication date
KR100893541B1 (ko) 2009-04-17
JP2008503015A (ja) 2008-01-31
WO2006012291A2 (en) 2006-02-02
US20060069828A1 (en) 2006-03-30
TW200606648A (en) 2006-02-16
CN100517287C (zh) 2009-07-22
WO2006012291A3 (en) 2006-08-03
TWI303025B (en) 2008-11-11
KR20070032734A (ko) 2007-03-22
CN1973274A (zh) 2007-05-30

Similar Documents

Publication Publication Date Title
DE112005001502T5 (de) Gemeinsame Benutzung einer physikalischen Vorrichtung durch mehrere Kunden
US9898601B2 (en) Allocation of shared system resources
DE102012218379B4 (de) Paravirtualisierte virtuelle GPU
TWI526931B (zh) 用於虛擬機器之繼承產品啟動
US9251384B1 (en) Trusted peripheral device for a host in a shared electronic environment
US20100306763A1 (en) Virtual Serial Concentrator for Virtual Machine Out-of-Band Management
US8040900B2 (en) N-port network adaptor
DE102008030587B4 (de) Verfahren und Vorrichtung zur Erhöhung der Effizienz der Interrupt-Lieferung zur Laufzeit in einem Netzwerksystem
EP2079019A1 (de) System und Verfahren zur dynamischen Partitionierung und Verwaltung eines Multiprozessorsystems
EP2040176B1 (de) Dynamische betriebsmittelzuteilung
JP2007158870A (ja) 仮想計算機システム及びそのネットワーク通信方法
DE202014010925U1 (de) Dienstbrücken
US20210311798A1 (en) Dynamic microservices allocation mechanism
US20160057210A1 (en) Application profile to configure and manage a software defined environment
US20110246600A1 (en) Memory sharing apparatus
DE102009060301A1 (de) Das Ermöglichen mehrerer virtueller Geräte-Controller durch Umleiten eines Interrupts von einem physischen Geräte-Controller
KR101498965B1 (ko) 가상화 기술을 이용한 내외부망 격리 시스템 및 방법
US10511407B2 (en) Techniques of deep discovery of a composed node through management network
DE102021101709A1 (de) Virtuelle serielle schnittstellen für virtuelle maschinen
US20120079393A1 (en) Adaptable License Platform for Remote Sessions
US9959842B2 (en) On-screen display at thin client
US20130282560A1 (en) Application accessibility system and method
DE102013209515B4 (de) Bereitstellen eines I2C-Busses über Ethernet
DE102022108626A1 (de) Ausweitung der aufsichtsdienste auf vertrauenswürdige cloud-betreiber-domänen
Sreenivasamurthy et al. SIVSHM: Secure inter-vm shared memory

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 9/46 AFI20070829BHDE

8131 Rejection