-
GEBIET DER ERFINDUNG
-
Die
Erfindung betrifft Remapping-Engine-Übersetzungen bei einer Computerplattform,
die Virtualisierung implementiert.
-
HINTERGRUND DER ERFINDUNG
-
Viele
Computerplattformen verwenden Virtualisierung, um Ressourcen effizienter
zu handhaben und zu priorisieren. Eingabe/Ausgabe-(I/O – Input/Output)-Geräte können aus
der Virtualisierung ebenso einen Nutzen ziehen. Intel® Corporation
hat eine Virtualisierungstechnologie für die Direct-I/O-(VT-d)-Spezifikation (Revision
1.0, September 2008) herausgebracht, welche die Implementierungsdetails
beschreibt, Direct-Memory-Access-(DMA)-aktivierte
I/O-Geräte
in einem virtualisierten Umfeld zu nutzen.
-
Um
virtuelle Adressen in DMA- und Interrupt-Anfragen, die von einem
I/O-Gerät
empfangen wurden, effizient in physische Speicheradressen zu übersetzen,
wurde eine Logik, genannt Remapping-Engine, entwickelt, welche die Übersetzung
durchführt.
Eine gegebene Computerplattform kann mehrere Remapping-Engines besitzen.
Die VT-d-Spezifikation
ermöglicht
einem gegebenen I/O-Gerät,
wie beispielsweise einem Platform-Component-Interconnect-(PCI)- oder einem
PCI-Express-Gerät,
sich im Umfang einer einzelnen Remapping-Engine zu befinden. Diese
Zuordnung eines Gerätes
zu einer Remapping-Engine erfolgt zur Zeit des Hardware-Designs
und ist eine Eigenschaft des Designs der Computerplattform.
-
Die
Zuordnung eines I/O-Gerätes
zu einer einzelnen Remapping-Engine macht es für einen Virtual Machine Monitor
(VMM) oder ein Betriebssystem (OS) unflexibel. Das kann auch in
verminderter Leistung resultieren.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
vorliegende Erfindung ist exemplarisch und in keiner Weise einschränkend durch
die Zeichnungen dargestellt, in denen gleiche Bezugsnummern ähnliche
Elemente bezeichnen und in denen Folgendes dargestellt ist:
-
1 beschreibt
eine Ausführungsform
eines Systems und eines Gerätes,
um Remapping-Engines neu zuzuweisen und damit die gesamte Remapping-Last
zwischen verfügbaren
Remapping-Engines auszugleichen.
-
2 ist
ein Ablaufdiagramm einer Ausführungsform
eines Prozesses, um ein I/O-Gerät
von einer Remapping-Engine zu einer anderen Remapping-Engine zu
migrieren.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
Ausführungsformen
von einem Gerät,
System und Verfahren, um Remapping-Engines neu zuzuweisen und damit die
gesamte Remapping-Last zwischen verfügbaren Remapping-Engines auszugleichen,
werden offenbart. Bei vielen Szenarien kann eine primäre Remapping-Engine
auf einer Computerplattform auf Grund einer hohen Menge an Übersetzungen,
die ein bestimmtes zugeordnetes I/O-Gerät (durch DMA- oder Interrupt-Anfragen) anfordert,
beansprucht werden. Die Logik innerhalb der Computerplattform kann
diese anstrengende Situation bemerken und eine sekundäre Remapping-Engine
auffinden, die gegenwärtig
nicht belastet ist. Die Logik kann das I/O-Gerät zur nicht belasteten sekundären Remapping-Engine
migrieren, um die Belastung von der primären Remapping-Engine wegzunehmen.
Wenn die Migration vollständig
ist, werden alle nachfolgenden DMA- und Interrupt-Anfragen des I/O-Gerätes, welches Übersetzung
erfordern, durch die sekundäre
Remapping-Engine übersetzt.
-
Die
Verweise in der folgenden Beschreibung und in den Schutzansprüchen auf „eine Ausführungsform” oder „die Ausführungsform” der offenbarten
Technologien bedeuten, dass eine bestimmte in Verbindung mit der
Ausführungsform
beschriebene Funktion, Struktur oder Eigenschaft zumindest in einer
Ausführungsform
der offenbarten Technologien enthalten ist. Aus diesem Grund verweisen
verschiedene Vorkommen des in dieser Spezifikation häufig verwendeten
Ausdrucks „in
einer Ausführungsform” nicht
immer zwingend auf dieselbe Ausführungsform.
-
In
der folgenden Beschreibung und in den Schutzansprüchen sind
die verwendeten Begriffe „enthält” und „umfassen” sowie
deren möglicherweise
verwendeten Ableitungen als Synonyme zu verstehen. Zusätzlich können in
der folgenden Beschreibung und in den Schutzansprüchen die
Begriffe „gekoppelt” und „verbunden” und deren
Ableitungen verwendet werden. Diese Begriffe sind jedoch nicht als
Synonyme füreinander
zu verstehen. Stattdessen kann in bestimmten Ausführungsformen „verbunden” verwendet
werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem
physischen oder elektrischen Kontakt miteinander stehen. „Gekoppelt” kann bedeuten,
dass zwei oder mehrere Elemente in direktem physischen oder elektrischen
Kontakt sind. Jedoch kann „gekoppelt” auch bedeuten,
dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind,
trotzdem aber miteinander arbeiten oder interagieren.
-
1 beschreibt
eine Ausführungsform
von einem System und Gerät,
um Remapping-Engines neu zuzuweisen und damit die gesamte Remapping-Last
zwischen verfügbaren
Remapping-Engines auszugleichen. Das Remapping-Neuzuweisungs-System
kann ein Teil einer Computerplattform sein (d. h. Computersystem),
welche eine oder mehrere Prozessoren enthält. Die Prozessoren können jeweils
einen oder mehrere Kerne aufweisen. Die Prozessoren können bei
verschiedenen Ausführungsformen
Intel® Mikroprozessoren oder
eine andere Marke von Mikroprozessoren sein. Die Prozessoren sind
in 1 nicht gezeigt.
-
Das
System enthält
einen physischen Systemspeicher 100. Bei einigen Ausführungsformen
kann der Systemspeicher 100 eine Art dynamische Random
Access Memory (DRAM) sein. Zum Beispiel kann der Systemspeicher
eine Art Double Data Rate (DDR; doppelte Datenrate) Synchronous
DRAM sein. Bei anderen Ausführungsformen
kann der Systemspeicher eine andere Art von Speicher, wie beispielsweise
ein Flash-Speicher,
sein.
-
Das
System enthält
Direct-Memory-Access-(DMA; direkter Speicherzugriff)- und Interrupt-Remapping-Logik 102.
Virtualisierungs-Remapping-Logik, wie beispielsweise DMA- und Interrupt-Remapping-Logik 102,
schützt
physische Regionen von Systemspeicher 100 durch Begrenzen
des DMA von I/O-Geräten,
wie beispielsweise I/O-Gerät 1 (104)
und I/O-Gerät
2 (106) auf vorherig zugeordnete physische Speicherregionen, wie
beispielsweise Domäne
A (108) für
das I/O-Gerät
1 (104) und Domäne
B (110) für
das I/O-Gerät
2 (106). Die Remapping-Logik schränkt ebenso von I/O-Geräten generierte
Interrupts auf diese Regionen ein. Die DMA- und Interrupt-Remapping-Logik 102 kann
in einem Prozessor in dem System, in einem I/O-Komplex in dem System
oder an anderer Stelle unterbracht sein. Ein I/O-Komplex kann ein
integrierter Schaltkreis innerhalb des Computersystems sein, welcher
von dem einen oder den mehreren Prozessoren getrennt ist. Der I/O-Komplex
kann einen oder mehrere I/O-Host-Controller
enthalten, um den Informationsaustausch zwischen den/dem Prozessoren/Speicher
und einem oder mehreren I/O-Geräten
in dem System, wie beispielsweise I/O-Gerät 1 (104) und I/O-Gerät 2 (106),
zu erleichtern. Während
bei bestimmten Ausführungsformen
die DMA- und Interrupt-Remapping-Logik 102 in den I/O-Komplex
integriert sein kann, sind die anderen Teile des I/O-Komplexes in 1 nicht
gezeigt. Bei einigen Ausführungsformen,
wie beispielsweise bei vielen „System auf
einem Chip”-Ausführungsformen,
kann der I/O-Komplex in einen Prozessor integriert sein. Wenn somit
die DMA- und Interrupt-Remapping-Logik 102 in den I/O-Komplex integriert
ist, wäre
sie in diesen Ausführungsformen
daher auch in einen Prozessor integriert.
-
Die
DMA- und Interrupt-Remapping-Logik 102 kann bei einigen
Ausführungsformen,
die ein virtualisiertes Umfeld innerhalb des Computersystems ermöglichen,
mit einem Virtual Machine Monitor (VVM) programmiert werden. Bei
anderen Ausführungsformen
kann die DMA- und Interrupt-Remapping-Logik 102 durch ein
Betriebssystem (OS) programmiert werden.
-
Bei
vielen Ausführungsformen
sind I/O-Gerät
1 (104) und I/O-Gerät
2 (106) DMA-fahige und Interrupt-fähige Geräte. Bei diesen Ausführungsformen übersetzt
die DMA- und Interrupt-Remapping-Logik 102 die Adresse
von jeder eingehenden DMA-Anfrage
und von jedem Interrupt von den I/O-Geräten in die richtige Adresse
des physischen Speichers im Systemspeicher 100. Bei vielen
Ausführungsformen
prüft die
DMA- und Interrupt-Remapping-Logik 102 basierend auf der
Information, die durch den VVM oder das Betriebssystem (OS) bereitgestellt
wird, die Erlaubnis, auf die übersetzte
physische Adresse zuzugreifen.
-
Die
DMA- und Interrupt-Remapping-Logik 102 ermöglicht dem
VVM oder OS mehrere DMA-Schutzdomänen, wie beispielsweise Domäne A (108)
für I/O-Gerät 1 (104)
und Domäne
B (110) für
I/O-Gerät
2 (106), anzulegen. Jede Schutzdomäne ist ein isoliertes Umfeld,
das einen Teilsatz des physischen Host-Speichers enthält. Die
DMA- und Interrupt-Remapping-Logik 102 aktiviert
den VMM oder das OS, um ein oder mehrere I/O-Geräte einer Schutzdomäne zuzuordnen.
Wenn irgendein beliebiges I/O-Gerät versucht,
Zugriff auf einen bestimmten Speicherplatz im Systemspeicher 100 zu
erhalten, schaut die DMA- und Interrupt-Remapping-Logik 102 die
Remapping-Seitentabellen 112 nach
der Zugriffsberechtigung dieses I/O-Gerätes zu dieser spezifischen
Schutzdomäne
durch. Wenn das I/O-Gerät
versucht, außerhalb
des Bereichs zuzugreifen, auf den es zugreifen darf, blockiert die
DMA- und Interrupt-Remapping-Logik 102 den
Zugriff und meldet einen Fehler an den VMM oder das OS.
-
Bei
vielen Ausführungsformen
gibt es zwei oder mehr Remapping-Engines, wie beispielsweise Remapping-Engine
1 (114) und Remapping-Engine 2 (116), die in der
DMA- und Interrupt-Remapping-Logik 102 integriert sind.
Jede Remapping-Engine enthält
Logik, um Ströme
von DMA-Anfragen und Interrupts von einem oder mehreren I/O-Geräten zu behandeln.
Die Remapping-Engines starten generell als spezifischen I/O-Geräten zugeordnet.
Zum Beispiel kann Remapping-Engine 1 (114) zugeordnet sein,
die DMA-Anfragen und Interrupts an Domäne A (108) zu behandeln,
die von I/O-Gerät
1 (104) empfangen wurden, und Remapping-Engine 2 (116)
kann zugeordnet sein, die DMA-Anfragen und Interrupts an Domäne B (110)
zu behandeln, die vom I/O-Gerät
2 (106) empfangen wurden.
-
Obwohl
die Remapping-Engines ursprünglich
zugeordnet sein können,
DMA-Anfragen und
Interrupts zu physischen Adressen für ein spezifisches I/O-Gerät zu übersetzen,
kann bei vielen Ausführungsformen
Remapping-Neuzuweisung-Logik 118 diese ursprünglichen
Zuweisungen auf Grund beobachteter Arbeitslasten für jede Remapping-Engine
dynamisch ändern.
Bei vielen Ausführungsformen
werden die DMA- und
Interrupt-Remapping-Logik 102 und die Remapping-Neuzuweisungs-Logik 118 zusammen
in einer Computerplattform genutzt, die I/O-Virtualisierungstechnologien
verwendet. Zum Beispiel kann I/O-Gerät 1 (104) eine sehr schwere
DMA-Anfrage-Arbeitslast
generieren, während
I/O-Gerät
2 (106) untätig
ist. Die schwere DMA-Anfrage-Arbeitslast
von I/O-Gerät
1 (104) kann die Kapazität von Remapping-Engine 1 (114) überlasten,
was eine Verschlechterung der Leistung (d. h. Ansprechzeit) für die Anfragen
von I/O-Gerät
1 (104) sowie einem oder mehreren zusätzlichen I/O-Geräten (nicht
abgebildet), die auch von der Remapping-Engine 1 (114)
abhängig sein
können,
hervorrufen würde.
In diesem Beispiel kann Remapping-Neuzuweisung-Logik 118 die
Diskrepanz in den Arbeitslasten bemerken und entscheiden, die von
I/O-Gerät
1 (104) empfangene DMA-Anfrage-Arbeitslast zwischen der
Remapping-Engine 1 (114) und der andernfalls ungenutzten
Remapping-Engine 2 (116) aufzuteilen. Somit würde die
zusätzliche
Kapazität
von Remapping-Engine 2 (116) die Arbeitslast, die von Remapping-Engine 1 (114)
gefordert wird, erleichtern und kann die Reaktionsfähigkeit
bezüglich
Anfragen für
I/O-Gerät
1 (104) erhöhen.
-
Bei
einem anderen Beispiel kann das Gegenteil der Fall sein, wobei Remapping-Engine 2 (116)
mit von I/O-Gerät
2 (106) empfangenen DMA-Anfragen überlastet ist, und somit Remapping-Neuzuweisungs-Logik 118 einen
Teil der empfangenen Arbeit zur Remapping-Engine 1 (114)
abspalten. Bei noch einem weiteren Beispiel kann ein drittes I/O-Gerät (nicht
dargestellt), das anfänglich
Remapping-Engine 1 (114) zugewiesen war, sehr viel Interrupt-Verkehr
zur Übersetzung
zu Remapping-Engine 1 (114) senden. Dieser Interrupt-Verkehr
von I/O-Gerät
3 kann mehr Verkehr sein als die Kombination von DMA- und Interrupt-Anfragen
von I/O-Gerät
1 und 2 zusammen. In diesem Beispiel kann Remapping-Neuzuweisungs-Logik 118 es
Remapping-Engine 1 (114) überlassen, die eingehenden
Anfragen von I/O-Gerät
3 zu behandeln, kann aber I/O-Gerät 1 (104) zu Remapping-Engine
2 (116) neu zuweisen. Somit müsste Remapping-Engine 2 (116)
jetzt die eingehenden Anfragen sowohl für I/O-Gerät 1 und als auch für I/O-Gerät 2 übersetzen.
-
Bei
vielen DMA- und Interruptverkehr-Szenarien kann die Remapping-Neuzuweisung-Logik 118 versuchen,
DMA-Anfragen von einer Remapping-Engine einer anderen neu zuzuweisen,
um die empfangene Arbeitslast unter allen verfügbaren Remapping-Engines auszugleichen.
Bei vielen in 1 nicht gezeigten Ausführungsformen
kann es einen Pool von Remapping-Engines geben, der mehr als zwei
gesamte Remapping-Engines enthält.
Bei diesen Ausführungsformen
kann die Remapping-Neuzuweisungs-Logik 118 jedem der Remapping-Engines
im Pool Arbeit neu zuordnen, um die Gesamtzahl an DMA-Anfragen unter
dem gesamten Pool leidlich auszugleichen. Wenn bei einigen Ausführungsformen
eine einzelne Remapping-Engine, wie Remapping-Engine 1 (114),
die ganze DMA-Anfragearbeit ausführt,
aber die Menge an Arbeit klein genug ist, um die Kapazität der bestimmten
Remapping-Engine nicht zu belasten, kann die Remapping-Neuzuweisung-Logik 118 einen
Teil der DMA-Anfrage-Arbeitslast
nicht neu zuweisen. Bei einigen Ausführungsformen wird die Neuzuweisung
deshalb generell ausgeführt,
wenn die Arbeitslast für
eine gegebene Remapping-Engine den Schwellenwert der Remapping-Engine
bezüglich
Anfragen erreicht hat. Bei vielen Ausführungsformen werden wiederum
die DMA- und Interrupt-Remapping-Logik 102 und die Remapping-Neuzuweisung-Logik 118 beide
in einer Computerplattform genutzt, die I/O-Virtualisierungstechnologien
verwendet.
-
Bei
vielen Ausführungsformen
ist der Schwellenwert von Anfragen eine Anzahl an Anfragen während einer
gegebenen Zeitspanne, welche der Grenze gleicht, die die Remapping-Engine
ohne eine Leistungsverschlechterung behandeln kann. Eine Verschlechterung
der Leistung der Remapping-Engine kann durch eine Warteschlange
von sich anhäufenden
DMA-Anfragen hervorgerufen werden, da die Anfragen durch die Remapping-Engine
mit einer schnelleren Geschwindigkeit empfangen werden, als die
Remapping-Engine Anfragen übersetzen
kann. Die Remapping-Neuzuweisungs-Logik 118 kann eines
von mehreren unterschiedlichen Verfahren nutzen, um die gegenwärtige Arbeitslast
von DMA-Anfragen mit dem Schwellenwert zu vergleichen. Zum Beispiel
kann ein Verhältnis
von Anfragen zu Systemtaktzyklen mit einem Schwellenverhältnis verglichen werden.
Die Überwachungslogik
kann in die Remapping-Neuzuweisungs-Logik 118 integriert sein,
da sie alle Anfragen vom Satz an I/O-Geräten empfängt und jede Anfrage einer
Remapping-Engine zuordnet.
-
Bei
vielen Ausführungsformen
stellt die DMA-Remapping-Logik 102 ein oder mehrere Steuerregister für den VMM
oder das OS bereit, um die Fähigkeit,
DMA-Anfragearbeitslasten
zwischen Remapping-Engines neu zuzuweisen, für die Remapping-Neuzuweisung-Logik 118 zu
aktivieren oder zu deaktivieren. Bei vielen Ausführungsformen können Remapping-Engines
als äquivalente
Remapping-Engines bezeichnet werden, wenn der gleiche Satz an I/O-Geräten für jede einzelne
verfügbar
ist. Somit könnte
eine Remapping-Engine theoretisch DMA-Anfrageübersetzungen für einen
Satz von I/O-Geräten
ausführen,
während
eine zweite Remapping-Engine untätig
ist, wobei das Gegenteil ebenfalls zutrifft. Wenn ein I/O-Gerät für eine Remapping-Engine
zugänglich
ist, nicht aber für
eine andere Remapping-Engine, können
die Remapping-Engines
nicht als äquivalent
betrachtet werden. Äquivalente
Remapping-Engines ermöglichen
der Remapping-Neuzuweisungs-Logik 118, DMA-Anfragearbeitslasten
mit jeder äquivalenten
Remapping-Engine frei zu mischen und anzupassen.
-
Wenn
die Äquivalenz
zwischen Remapping-Engines vom VMM oder OS durch das eine oder mehrere Steuerregister
aktiviert ist, kann jede Remapping-Engine den gleichen Satz an Remapping-Seitentabellen 112 und
alle anderen Remapping-bezogenen Register aktiv verwenden, um am
DMA-Anfrage-Übersetzungsprozess
teilzunehmen. Bei vielen Ausführungsformen
sind das eine oder die mehreren Steuerregister softwarebasierte
Register, die sich im Systemspeicher befinden, wie beispielsweise
die Steuerregister 120A. Bei anderen Ausführungsformen
sind das eine oder die mehreren Steuerregister hardwarebasierte
Register, die sich physisch in der DMA-Remapping-Logik 102 befinden,
wie beispielsweise die Steuerregister 120B.
-
Bei
vielen Ausführungsformen
kann die DMA-Remapping-Logik 102 zum VMM oder OS die äquivalente
Beziehung zwischen zwei oder mehr Remapping-Engines kommunizieren,
indem eine Erweiterung zur gegenwärtigen DRHD-(DMA Remapping
Hardware unit Definition)-Struktur verwendet wird, die in der Intel® VT-d
Spezifikation definiert ist.
-
Jede
Remapping-Engine hat eine DRHD-Struktur im Speicher. Zum Beispiel
können
sich die DRHD-Strukturen in den Remapping-Seitentabellen/-Strukturen
112 befinden,
die Teil des Systemspeichers
100 sind. Bei anderen Ausführungsformen
kann sich die DRHD-Struktur an einem anderen Ort innerhalb des Systemspeichers
100befinden.
Die DRHD-Struktur für
jede Remapping-Engine enthält
ein Array von Remapping-Engines, die der betreffenden Remapping-Engine äquivalent
sind. Dieses Array wird das „äquivalente DRHD
Array” genannt.
Dieses Array ist eine Sammlung von Feldern. Es ist in Tabelle 1
definiert. Das Array wird verwendet, um dem VMM oder OS solche Äquivalenz
mitzuteilen. Es liegt am VMM oder OS zu entscheiden, wenn nötig die
alternativen Remapping-Engines mit der Remapping-Engine, die primär einem
gegebenen I/O-Gerät
zugewiesen war, zu verwenden. Tabelle 1. Das strukturelle Layout eines äquvalenten
DRHD-Array.
Anzahl
an Einheiten im äquivalenten
Array | Ein
16-Bit-Feld, das indirekt die Länge
dieses gesamten Feldes anzeigt. |
Basisadresse
der ersten äquivalenten
Einheit | Das
ist ein 64-Bit-Feld. Siehe die Register-Basisadresse im DRHD (Abschnitt 8.3
der VT-d-Spezifikation). |
Basisadresse
der n-ten äquivalenten
Einheit | N
wird im ersten Feld angezeigt. |
-
Bei
einigen Ausführungsformen
kann die Remapping-Neuzuweisungs-Logik 118 die DMA-Anfrageübersetzungsarbeitslast
für jede
Remapping-Engine an den VMM oder das OS melden, was dem VMM oder
OS die Entscheidung ermöglichen
würde,
alternative Remapping-Engines zu aktivieren und zu nutzen, um den Übersetzungsdruck
auf die primäre
Remapping-Engine zu reduzieren.
-
Die
DMA-Remapping-Logik 102 kann auch Informationen über die
Fähigkeiten
jeder einzelnen Remapping-Engine in Bezug auf migrierende Remapping-Seitentabellen
zwischen Remapping-Engines kommunizieren. Wenn im Speziellen der
VMM oder das OS bestimmt, die Zuordnungseinträge für DMA- und Interrupt-Anfragen
von einer Remapping-Engine zu einer anderen zu migrieren, kann es
eine softwarebasierte oder hardwarebasierte Seitentabellenkopie
geben.
-
Bei
einigen Ausführungsformen
kann der VMM oder das OS die Seitentabellen, bezogen auf das neu zugewiesene
I/O-Gerät,
aufstellen und dann die Remapping-Seitentabellen vom alten Remapping-Engine-Speicherplatz
für Seitentabellen
zum neuen Remapping-Engine-Speicherplatz für Seitentabellen kopieren. Bei
anderen Ausführungsformen
kann die DMA- und Interrupt-Remapping-Logik 102 die Seitentabellen
zwischen den Remapping-Engine-Speicherplätzen still kopieren. Das stille
Kopieren dieser Seitentabellen ermöglicht es, den Overhead von
VMM- oder OS-Softwareebene
zu entfernen und auf eine untere Hardware-Ebene zu bringen. Das
kann ohne die Kenntnis von Software geschehen.
-
Wenn
die Seitentabellen einmal vom alten Remapping-Engine-Speicherplatz
zum neuen kopiert (d. h. migriert) sind, ist die neue Remapping-Engine
diejenige, die für
die Bedienung aller zukünftigen Übersetzungsanfragen
des betreffenden I/O-Gerätes
verantwortlich ist. Die alte Remapping-Engine ist für das I/O-Gerät nicht
mehr verantwortlich und wird keine vom Gerät empfangene DMA- oder Interrupt-Anfrage
mehr übersetzen.
-
2 ist
ein Ablaufdiagramm einer Ausführungsform
eines Prozesses, um ein I/O-Gerät
von einer Remapping-Engine zu einer anderen Remapping-Engine zu
migrieren. Der Prozess erfolgt durch eine Verarbeitungslogik, die
eine Hardware, eine Software oder eine Kombination aus Hardware
und Software sein kann. Der Prozess beginnt, indem die Verarbeitungslogik
eine DMA- oder Interrupt-Anfrage von einem I/O-Gerät (Verarbeitungsblock 200)
empfängt.
-
Die
Verarbeitungslogik bestimmt, ob die primäre Remapping-Engine, die zum
Bedienen der Anfrage zugewiesen ist, ihren Schwellenwert an Anfragen
im Laufe einer bestimmten Zeitspanne (Verarbeitungsblock 202)
erreicht hat. Diese Bestimmung kann Leistungszähler, Zeitstempel, Algorithmen
und andere Methodiken zu der Feststellung nutzen, ob die primäre Remapping-Engine
gegenwärtig
genug Übersetzungsanfragen
hat, um die Übersetzungsreaktionsfähigkeit
der Engine pro Anfrage zu verschlechtern.
-
Zum
Beispiel kann der VMM oder das OS jede Remapping-Engine entweder
direkt oder durch die Remapping-Zuweisungslogik 118 abfragen,
um den gegenwärtigen
Zustand des Remapping-Übersetzungsdrucks
auf jede Remapping-Engine abzufragen. Bei einem anderen Beispiel
kann die DMA- und Interrupt-Remapping-Logik 102 den VMM
oder das OS unterbrechen, wenn mindestens eine der Remapping-Engines
beginnt, Übersetzungsdruck
oder Einschränkungen
bei seinen Übersetzungsressourcen
zu erfahren. Bei beiden Beispielen kann die DMA- und Interrupt-Remapping-Logik 102 auch
ausführlichere
Information über
die genaue Art des Übersetzungsdrucks
kommunizieren, einschließlich
der Hierarchie oder der genauen I/O-Geräte, die der Grund für den Übersetzungsdruck
sind. Der VMM oder das OS können
entscheiden, welche Leistungsinformationen, wenn überhaupt,
zu verwenden sind, wenn sie bestimmen, ob die Übersetzungseinträge eines I/O-Geräts zu einer
anderen äquivalenten
Remapping-Engine zu migrieren sind.
-
Kehren
wir zurück
zu 2: Wenn dieser Schwellenwert von Anfragen nicht
erreicht wurde, lässt
die Verarbeitungslogik die primäre
Remapping-Engine die DMA- oder
Interrupt-Anfrage übersetzen,
und der Prozess ist abgeschlossen.
-
Andernfalls,
wenn der Schwellenwert von Anfragen erreicht wurde, bestimmt die
Verarbeitungslogik, welche Remapping-Engine von einer oder mehreren
anderen äquivalenten
Remapping-Engines verfügbar
ist und entweder gegenwärtig
zu wenig oder überhaupt
nicht verwendet wird. Dies kann die Bestimmung einschließen, ob
es genügend Überkapazität in einer
gegebenen Backup-Remapping-Engine gibt, um den zusätzlichen
Druck im zusätzlichen
Verkehr des Gerätes
aufzunehmen.
-
Sobald
eine verfügbare
Backup-Remapping-Engine gefunden wurde, migriert Verarbeitungslogik dann
die Remapping-Seitentabellen für
das I/O-Gerät
von der primären
Remapping-Engine zur Backup-Remapping-Engine (Verarbeitungsblock 206).
Wenn die Backup-Remapping-Engine die Seitentabellen des I/O-Gerätes, die
für das
Remapping genutzt werden können,
empfangen hat, leitet Verarbeitungslogik dann die DMA- oder Interrupt-Anfrage
zur Backup-Remapping-Engine um (Verarbeitungsblock 208),
und der Prozess ist abgeschlossen.
-
Bei
vielen Ausführungsformen
kann Verarbeitungslogik, nachdem sie überprüft hat, dass es eine verfügbare äquivalente
Remapping-Engine gibt, ein Steuerregister in der Hardware (1, 120B)
programmieren, um anzuzeigen, dass die neue Backup-Remapping-Engine
als äquivalent
zu der primären
Remapping-Engine betrachtet werden sollte.
-
Um
dieses Register-Programmieren zu berücksichtigen, können gegenwärtig belegte
Felder im Global Command Register (das gegenwärtig in der Spezifikation Intel
® VT-d
definiert ist) für
diesen Befehl neu definiert werden (z. B. ein Befehl, der „Aktivieren
der äquivalenten
Remapping-Engine” genannt
wird). Die neue Remapping-Engine kann zu diesem Zweck durch ein
anderes 8-Byte-Register identifiziert werden. Die Tabelle 2 zeigt
ein Beispiel für
die Modifizierungen, die an den globalen Befehls- und Statusregistern
durchgeführt
wurden, um die Überprüfung auf Äquivalenz
unter Remapping-Engines zu. Tabelle 2. Für die Remapping-Engine-Äquivalenz
genutzten globalen Befehls- und Statusregister-Bits.
Bit
21 des globalen Befehlsregisters | Wenn
es auf 1 gesetzt ist, wurde eine neue äquivalente Remapping-Engine
identifiziert Wenn es auf 0 gesetzt ist, wird jede vorhandene Äquivalenz-Beziehung
entfernt. |
Bit
21 des globalen Statusregisters | Dieses
Bit wird auf 1 gesetzt, nachdem die Hardware mit der Ausführung des
Befehls fertig ist. |
-
Der
VMM oder das OS kann Äquivalenz
entweder für
alle gegenwärtigen
Geräte
aktivieren, die zum Umfang der Remapping-Engine A gehören, oder
nur für
einen bestimmten Satz von Geräten,
die gegenwärtig zum
Umfang der Remapping-Engine A gehören. Kann die Äquivalenz
nicht ausgeführt
werden, kann die DMA- und Interrupt-Remapping-Logik 102 diesen
Fehlerstatus durch ein Fehlerregister kommunizieren.
-
Somit
werden Ausführungsformen
von einem Gerät,
System und Verfahren offenbart, um Remapping-Engines neu zuzuweisen
und damit die gesamte Remapping-Last
zwischen verfügbaren
Remapping-Engines auszugleichen. Die hier beschriebenen Ausführungsformen
wurden mit Bezug auf bestimmte beispielhafte Ausführungsformen
erläutert.
Es ist für
Personen, die Einsicht in diese Offenbarung haben, offensichtlich, dass
verschiedene Anpassungen und Veränderungen
an diesen Ausführungsformen
vorgenommen werden müssen,
ohne dabei im weiteren Sinne und dem Umfang der hierin beschriebenen
Ausführungsformen
abzuweichen. Die Beschreibung und die Zeichnungen sind demgemäß als exemplarische
Darstellung, jedoch nicht in einem einschränkenden Sinne, anzusehen.