-
GEBIET DER ERFINDUNG
-
Die
Erfindung bezieht sich auf die Dienstqualität (Quality of Service) von
Plattformressourcen.
-
HINTERGRUND DER ERFINDUNG
-
Indem
sich Mehrkern-Multithreaded-Prozessoren durchsetzen, gibt es in
der Computerindustrie ein starkes Bedürfnis danach, dem Betriebssystem und
Anwendungen zu ermöglichen, über eine
bessere Steuerung der Ressourcen, die in der Plattform zur Verfügung stehen,
zu verfügen.
Während
Computerplattformen mehr Kerne und Rechenleistung hinzugefügt werden,
benötigen
die verbleibenden Plattformressourcen, die über Anwendungen, die auf diesen
Kernen laufen, verteilt sind, eine gute Verwaltung, um ein balanciertes
System zu erzeugen. Heutzutage beschränkt sich der Grad der Differenzierung von
Computersystemdiensten, die Anwendungen, welche auf einem zentralen
Prozessor laufen, zur Verfügung
gestellt werden, auf den Prozessorkern, der das Aufgabenprioritätsregister
(Task Priority Register (TPR)) verwendet. Während Anwendungssoftware verschiedene
Aufgabenprioritätsebenen
durchläuft,
wird dieses Register durch die Software gesetzt, um die gegenwärtige Prioritätsebene
des Prozessors zu markieren. Diese Information wird verwendet, um
zu vermeiden, dass der Prozessor durch Ereignisse niedriger Priorität unterbrochen
wird.
-
Die
Prozessorhardware gewährleistet
die Durchsetzung der Priorität
innerhalb des Kerns und besteht im wesentlichen aus einem Mechanismus zum
Verwalten der zur Verfügung
stehenden Rechenressourcen. Im Hinblick auf Ressourcen außerhalb
des Kerns gibt es gegenwärtig
jedoch keinen Mechanismus, der der Software erlaubt, Anforderungen
auf Dienstebene an potentielle Quality-of-Service(QoS)-Mechanismen
auf Plattformebene zu kommunizieren. Dieses Fehlen einer detaillierten Verwaltung
des Prozessors und von Plattformressourcen kann sich verschärfen, indem
weitere Virtualisierungstechnologien implementiert werden und Computerbenutzer
ihre Server zusammenführen,
indem mehrere disparate Anwendungen auf der gleichen Maschine laufen.
Um dem zu begegnen, werden QoS-Mechanismen außerhalb des Prozessorkerns
auf Komponenten- ebenso wie Plattformebene entwickelt, um Wege zur
besseren Verwaltung der verfügbaren
Ressourcen zu bieten. Ohne richtige Mechanismen zum Aufzeigen dieser
Fähigkeiten
gegenüber
dem Betriebssystem und Anwendungen kann das ganze Potential von
Plattform-QoS jedoch nicht realisiert werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
vorliegende Erfindung wird mittels Beispielen gezeigt und wird durch
die Figuren der beigefügten
Zeichnungen nicht eingeschränkt,
in welchen gleiche Bezugszahlen gleiche Elemente anzeigen und in
welchen:
-
1 ein
Blockdiagramm eines Computersystems ist, welches mit Ausführungsformen
der vorliegenden Erfindung verwendet werden kann.
-
2 eine
Ausführungsform
eines QoS-Mechanismus auf Plattformebene auf einer Plattform beschreibt,
die das bestehende TPR verwendet, um Prioritätenebenen für Plattformressourcen zu setzen.
-
3 eine
detaillierte Version einer Ausführungsform
des QoS-Mechanismus auf Plattformebene auf einer Plattform beschreibt,
die das PQR verwendet, um Prioritätenebenen für Plattformressourcen zu setzen.
-
4 eine
Ausführungsform
der Implementierung des bestehenden TPR und CR8 zeigt, das durch
den QoS-Mechanismus auf Plattformebene in 2 verwendet
wird.
-
5 eine
Ausführungsform
der Implementierung des CR8 zeigt, das von dem QoS-Mechanismus auf Plattformebene
verwendet wird, in welchem das PQR in 3 implementiert
ist.
-
6 eine
Ausführungsform
eines Speicherseitentabelleneintrags (Page Table Entry(PTE))-Formats
beschreibt, das zur Verfügung
stehende Bits für einen
Priorisierungsprozess für
Plattformressourcen verwendet.
-
7 ein
Flussdiagramm einer Ausführungsform
eines Prozesses zeigt, um Computerplattformressourcen anhand von
QoS-Prioritätsebenen zuzuweisen.
-
8 ein
Flussdiagramm einer Ausführungsform
eines Prozesses ist, um Speicheranfragen zu markieren, die Zugriff
auf Plattformressourcen mit QoS-Prioritätslevelwerten außerhalb
des Prozessorkerns erfordern.
-
9 ein
Flussdiagramm einer Ausführungsform
eines Prozesses zeigt, um Speicherseitentabelleneinträge mit QoS-Prioritätsebenenwerten für Plattformressourcen
anzufüllen.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
Ausführungsformen
eines Verfahrens, Systems und computerlesbaren Mediums zum Implementieren
von Quality-of-Service-Prioritätsebenensteuerungen
für Plattformressourcen
werden beschrieben. In der folgenden Beschreibung werden viele spezifische
Details dargelegt. Jedoch versteht es sich, dass Ausführungsformen
ohne diese spezifischen Details ausgeführt werden können. In
anderen Beispielen wurden wohlbekannte Elemente, Spezifikationen
und Protokolle nicht im Detail diskutiert, um ein Verschleiern der
vorliegenden Erfindung zu vermeiden.
-
1 ist
ein Blockdiagramm eines Computersystems, das mit Ausführungsformen
der vorliegenden Erfindung verwendet werden kann. Das Computersystem
umfasst eine Prozessor-Speicher-Verbindung 100 zur Kommunikation
zwischen verschiedenen Agenten, die mit Verbindung 100 gekoppelt
sind, wie etwa Prozessoren, Brücken,
Speichervorrichtungen etc. Prozessor-Speicher-Verbindung 100 weist
bestimmte Verbindungsleitungen auf, die Arbitrierungs-, Adress-,
Daten- und Steuerinformation (nicht gezeigt) senden. In einer Ausführungsform
kann der zentrale Prozessor 102 an Prozessor-Speicher-Verbindung 100 gekoppelt
sein. In einer anderen Ausführungsform
können
mehrere zentrale Prozessoren an Prozessor-Speicher-Verbindung gekoppelt
sein (mehrere Prozessoren sind in dieser Figur nicht gezeigt).
-
In
einer Ausführungsform
hat der zentrale Prozessor 102 einen einzigen Kern 104.
In einer anderen Ausführungsform
hat der zentrale Prozessor 102 mehrere Kerne (mehrere Kerne
sind in dieser Figur nicht gezeigt). Der Kern 104 ist an
einen Cache-Speicher 106 gekoppelt, der sich ebenfalls
in dem zentralen Prozessor 102 befindet. Zusätzlich kann
der zentrale Prozessor 102 einen hochentwickelten programmierbaren
Interrupt-Controller (Advanced Programmable Interrupt Controller
(APIC)) 108 aufweisen. Der APIC 108 weist eine
Anzahl von Steuerregistern (Control Register (CR)) und andere prozessorspezifische
Register auf. In einer Ausführungsform
ist das Aufgabenprioritätsregister
(TPR) ein Register, das sich innerhalb des APIC 108 befindet.
-
Prozessor-Speicher-Verbindung 100 bietet dem
zentralen Prozessor 102 und anderen Einrichtungen Zugriff
auf den Systemspeicher 110. Ein Systemspeichercontroller
steuert den Zugriff auf den Systemspeicher 110. In einer
Ausführungsform
befindet sich der Systemspeichercontroller innerhalb der North-Bridge 114 eines
Chipsatzes 112, die mit der Prozessor-Speicher-Verbindung 100 gekoppelt
ist. In einer anderen Ausführungsform
befindet sich ein Systemspeichercontroller auf dem gleichen Chip
wie der zentrale Prozessor 102. Information, Befehle und andere
Daten können
im Systemspeicher 110 zur Verwendung durch den zentralen
Prozessor 102 gespeichert werden, ebenso wie viele andere
potentielle Einrichtungen. E/A-Einrichtungen, wie etwa E/A-Einrichtungen 118 und 122,
sind an die South-Bridge 116 des Chipsatzes 112 durch
eine oder mehrere E/A-Verbindungen 120 und 124 gekoppelt.
-
In
einer Ausführungsform
kann eine Softwareanwendung, die auf dem zentralen Prozessor 102 läuft, eine
Prioritätsebene
aufweisen, die die Bedeutung ihrer Ausführung bezüglich beliebiger anderer Softwareanwendungen
bestimmt. Die Prioritätsebene
gibt der Softwareanwendung eine bestimmte Priorität zum Ausführen auf
dem zentralen Prozessor 102. In anderen Ausführungsformen
können
eine, zwei, vier oder viele Prioritätsebenen bestehen. In einer
Ausführungsform
kann der zentrale Prozessor 102 bestimmt sein, um nur solche
Programme, die eine bestimmte Prioritätsebene aufweisen, häufiger als
Programme mit niedrigerer Priorität auszuführen. Außerdem wird externen Interrupts,
die auf einer niedrigeren Prioritätsebene stehen, nicht erlaubt,
die gegenwärtige
Ausführung
zu unterbrechen, falls ein zentraler Prozessor 102 gestaltet
ist, um Softwareanwendungen auf einer bestimmten Prioritätsebene auszuführen.
-
Eine
Softwareanwendung, die auf dem zentralen Prozessor 102 läuft, kann
viele Aufträge (tasks)
ausführen.
In einer Ausführungsform
ist ein Auftrag ein bestimmter Abschnitt der Ausführung einer
Softwareanwendung. Jeder Auftrag innerhalb einer Anwendung kann
mit einer bestimmten Prioritätsebene
ausgezeichnet sein. Die Softwareanwendung kann das TPR setzen, um
die gegenwärtige
Prioritätsebene
des zentralen Prozessorkerns zu markieren. Das Belegen des TPR des
Prozessors mit einem bestimmten Prioritätsebenenwert teilt dem zentralen
Prozessor 102 mit, Interrupts niedriger Priorität zu blockieren.
Dies kann die Möglichkeit
des Unterbrechens von Aufträgen,
die auf dem zentralen Prozessor 102 ausgeführt werden,
bestimmen.
-
Verschiedene
Softwareanwendungen, die auf dem zentralen Prozessor 102 ausgeführt werden, ebenso
wie verschiedene Aufträge,
die innerhalb jeder Anwendung ausgeführt werden, benötigen verschiedene
Mengen und Typen von Ressourcen der Computersystemplattform. Beispielsweise
kann ein Auftrag speicherintensiv sein, ein anderer kann Prozessor-Speicher-Verbindungsbandbreiten-intensiv sein,
ein anderer kann Eingabe-/Ausgabe(E/A)-intensiv sein und wiederum
ein anderer kann CPU (Central Processing Unit(CPU))-Cache-intensiv
sein. Es ist im allgemeinen von Vorteil, diese verschiedenen Plattformressourcen
gemäß dem Bedarf
des Auftrags, der auf dem Computersystem läuft, zuzuweisen. Daher ermöglicht das
Computersystem, das in 1 gezeigt ist, in einer Ausführungsform
dem Cache, der Verbindung, dem Speicher, der E/A und Leistungsressourcen
innerhalb des Systems unabhängige
Prioritätsebenen
zuzuweisen. Die Fähigkeit, diese
Ressourcen zu priorisieren, steht in Ergänzung zu der Priorisierung
des CPU-Kerns, der den Auftrag ausführt.
-
In
einer Ausführungsform
weist das Computersystem in 1 einen
Prozess auf, durch den Softwareanwendungen, die auf dem Computersystem
laufen, der Plattform den Prioritätsbedarf der Anwendung hinsichtlich
von Ressourcen wie etwa Speicher, E/A, Verbindungen, Prozessorcache
und Systemleistung kommunizieren können. In einer Ausführungsform
ist ein Plattformprioritätsregister
(PQR – Platform-QoS-Register)
definiert und wird ähnlich dem
TPR verwendet. In dieser Ausführungsform
belegt die Software, die auf dem Prozessor läuft, das PQR mit Werten, die
den Plattformprioritätsbedarf des
gegenwärtig
laufenden Auftrags bezüglich
Plattformressourcen repräsentieren.
In anderen Ausführungsformen
kann die Software das PQR belegen, um Systemspeicher, E/A, die Prozessor-Speicher-Verbindung,
den Cache des Prozessors, das Plattformstromversorgungssystem oder
eine Kombination von zwei oder mehreren dieser Ressourcen zu priorisieren.
In einer anderen Ausführungsform
wird die Verfügbarkeit
zusätzlicher
Plattformressourcen, abgesehen von den aufgeführten, ebenfalls durch das
PQR manipuliert.
-
Der
Speicher der Softwareanwendung und die E/A-Zugriffe, die sich nach
außerhalb
des Prozessorkerns richten, werden sodann mit Prioritätsklasseninformation
anhand des gegenwärtigen PQR-Wertes
markiert. QoS-Durchsetzungsmechanismen in der Plattform verwenden
diese Prioritätsmarkierung,
um Plattformressourcen zuzuweisen, die dieser Anforderung angemessen
sind. In anderen Ausführungsformen
können
die Plattform-QoS-Durchsetzungsmechanismen
Logik an der Ressource aufweisen, die die markierte QoS-Information aus dem
Speicher und aus E/A-Zugriffen lesen kann, und die Interaktion der
Ressource mit dem Zugriff angemessen anpassen kann; die Plattform-QoS-Durchsetzungsmechanismen
können auch
Softwarelogik in dem Betriebssystem aufweisen, die die Verwendung
von Ressourcen anhand der markierten QoS-Information anpassen kann, oder
irgendeine Ressourcenverwendungsanpassungslogik, die auf der Plattform
implementiert werden kann. In einer Ausführungsform kann die Markierungsinformation
spezielle Bits aufweisen, die dem Speicher-E/A-Zugriff hinzugefügt werden,
der von der QoS-Logik verwendet werden kann, um die Prioritätsebene
für den
speziellen Zugriff zu bestimmen.
-
2 beschreibt
eine Ausführungsform
eines QoS-Mechanismus auf Plattformebene auf einer Plattform, die
das bestehende TPR verwendet, um Plattformressourcenprioritätsebenen
festzusetzen. In dieser Ausführungsform
wird das bestehende TPR transparent verwendet, um zusätzlich zu
seiner gegenwärtigen
Tätigkeit
Differenzierung von Plattformdiensten zu bieten, um Differenzierung
von Prozessorkerndiensten zu bieten. In dieser Ausführungsform
weist eine Softwareanwendung einen Auftrag 200 auf, der
auf dem Computersystem abläuft.
Der Auftrag interagiert mit dem Betriebssystem 202, indem
er dem Betriebssystem die gegenwärtige
Auftragsprioritätsebene 204 liefert.
Das Betriebssystem 202 nimmt die gegenwärtige Auftragsprioritätsebene an
und führt
sie dem TPR 206 zu. Während
der Auftrag 200 abläuft,
verursacht er Systemspeicherzugriffe 208.
-
Die
Zugriffe werden durch eine Plattform-QoS-Markierungsprozedur 210 mit
dem gegenwärtigen
Wert des TPR markiert. Die Plattform-QoS-Markierungsprozedur 210 fügt dem Speicher
oder der E/A-Zugriffstransaktion QoS-Information, die von dem TPR
empfangen wurde, hinzu. Daher weist der Speicher-E/A-Zugriff zusätzliche
Prioritätsebeneninformation
auf, die ihn in gleichem Maße wie
das TPR begleitet, an dem der Prozessor läuft. Falls das TPR bestimmt,
dass die Prioritätsebene
für den
gegenwärtigen
Auftrag für
den Prozessor hoch ist, fügt
die Plattform-QoS-Markierungsprozedur 210 einem Speicherzugriff
nach außerhalb
des Kerns eine Markierung hoher Priorität zu. Somit würde dem Speicher-E/A-Zugriff
außerhalb
des Kerns durch irgendeine Ressource mit aktiviertem Plattform-QoS, wie
etwa dem Cache, der Prozessor-Speicher-Verbindung, dem Systemspeicher,
der E/A oder Plattformstromversorgung, eine hohe Priorität gegeben. In
einer Ausführungsform
können
die Prioritätsebenen
niedrig, mittelmäßig und
hoch sein. In dieser Ausführungsform
ist es nötig,
dass der Prozess ebenfalls eine hohe Prioritätsbehandlung von der Plattform
erhält,
falls die Prioritätsebene
in dem TPR hoch ist.
-
In
einer anderen Ausführungsform
wird Steuerregister 8 (Control Register 8 (CR8)) verwendet, um die
Prioritätsebene
für Plattform-QoS-Ressourcen
zu sichern. CR8 wird innerhalb von 64-Bit-Erweiterungen der IA-32-Architektur
der Firma Intel® verwendet.
Die markierten Speicher-E/A-Zugriffe werden sodann von einer oder
mehreren Ressourcen 212 mit aktiviertem QoS empfangen,
und diese Ressourcen können
ihre Interaktion mit den Speicher-E/A-Zugriffen entsprechend modifizieren.
Eine Ressource mit aktiviertem QoS kann die Prioritätsebene
in der Markierungsinformation lesen und bestimmen, welchem Speicher-E/A-Zugriff
Priorität
gegeben werden sollte. Beispielsweise erhält sie, falls ein Speicher-/IO-Zugriff
mit „hoher" Priorität markiert ist, über einen
anderen Speicher-/IO-Zugriff,
der mit „mittlerer" Priorität markiert
ist, eine Bevorzugung von der Ressource mit aktivierter QoS.
-
Dieser
Prozess des Markierens von Speicher-/IO-Zugriffen mit dem gegenwärtigen Wert
des TPR ermöglicht
es Plattformressourcen, die gleiche Prioritätsebene wie der Prozessorkern
zu erhalten. Während
dies Hochprioritätsaufträgen erlaubt,
hohe Priorität über die
Plattform hinweg zu erhalten, erlaubt es keine Differenzierung von
Prioritätsebenen unter
den verschiedenen Plattformressourcen, ebenso wie Differenzierung
der Prozessorkernprioritätsebene.
-
3 beschreibt
eine detaillierte Version einer Ausführungsform des QoS-Mechanismus
auf Plattformebene auf einer Plattform, die das PQR verwendet, um
Prioritätsebenen
von Plattformressourcen festzusetzen. In dieser Ausführungsform
wird das PQR anhand der Plattformpriorität, die für die gegenwärtig ablaufende
Software benötigt
wird, festgesetzt. Der Auftrag 300 interagiert mit dem
Betriebssystem oder dem virtuellen Maschinenmanager (OS/VMM) 302 durch
Informieren des OS/VMM über seine
gegenwärtige
Plattformpriorität 304.
Das/Der OS/VMM 302 gibt seine Plattformprioritätsinformation
in das PQR 306 ein. Sodann werden, während der Auftrag abläuft, Speicher-
und E/A-Zugriffe 308, die von dem OS/VMM 302 angefordert
werden, anhand des Wertes im PQR 306 markiert 310.
Diese Zugriffe werden sodann angemessen durch Plattformressourcen,
denen die QoS bekannt ist, wie etwa den Cache, die Verbindung, den
Speicher oder E/A 312, behandelt. Da das PQR ein anpassbares
Register ist, das Differenzierung von Priorisierung unter den verschiedenen
Plattformressourcen ermöglicht,
kann diese Ausführungsform
beispielsweise mehr Platz im Cache oder Systemspeicher durchsetzen,
Bandbreite in der Prozessor-Speicher-Verbindung reservieren oder
der E/A bevorzugte Behandlung anhand der QoS-Richtlinien geben.
In einer Ausführungsform wird
der PQR-basierte Priorisierungsprozess von Plattformressourcen durch
das/den OS/VMM aktiviert. In dieser Ausführungsform hätte das/der OS/VMM
eine Anwendungsprogrammierschnittstelle (Application Programming
Interface (API)), um Softwareanwendungen zu ermöglichen, auf das PQR und die
diesbezüglichen
Priorisierungen von Plattformressourcen zuzugreifen. Zusätzlich müsste das/der
OS/VMM die jeweiligen Prioritätsebenen
von Plattformressourcen unter mehreren Prozessen und Threads in
dem System verwalten.
-
4 zeigt
eine Ausführungsform
der Implementierung des bestehenden TPR und CR8, die auf Plattformebene
durch den QoS-Mechanismus in 2 verwendet
wird. In dieser Ausführungsform verwendet
das TPR einen Auftragsprioritätswert
an Bitstellen 7:4. Gleichzeitig liegt der Auftragsprioritätswert im
CR8 an Bitstellen 3:0.
-
5 zeigt
eine Ausführungsform
der Implementierung des CR8, die von dem QoS-Mechanismus auf Plattformebene verwendet
wird, in welchem das PQR in 3 implementiert
ist. In dieser Ausführungsform
weist das CR8 zusätzlich
dazu, dass ein Auftragsprioritätswert
an Bitstellen 3:0 verwendet wird, PQR-Bits an Bitstellen 5:4 auf.
In genau dieser Ausführungsform
werden zwei Bits des CR8 verwendet, um den Cache-Prioritätslevel anzugeben, was vier
verschiedene Prioritätsebenen
für den
Cache erlaubt. Beispielsweise können
die beiden PQR-Bits 11 betragen, was die höchste Priorität anzeigt,
oder 00, was die niedrigste Priorität anzeigt. In einer Ausführungsform
beziehen sich die verschiedenen Prioritätsebenen in dem Cache auf die
Fähigkeit,
auf einen bestimmten Prozentsatz des Caches zuzugreifen. Beispielsweise
kann die höchste
Prioritätsebene
(Priorität
11) Zugriff auf 100% des Caches erlauben, die nächsthöhere Prioritätsebene
(10) kann Zugriff auf 50% des Caches ermöglichen, die nächste Prioritätsebene
(01) kann Zugriff auf 10% des Caches ermöglichen und die niedrigste
Priorität
(00) kann überhaupt
keinen Zugriff auf den Cache ermöglichen.
In einer anderen Ausführungsform
kann das CR8 zusätzliche
Bits verwenden, um Prioritätsebenen
für andere
Ressourcen als den Cache (nicht gezeigt) zu markieren.
-
6 zeigt
eine Ausführungsform
des Formats eines Speicherseitentabelleneintrag (page table entry
(PTE)), das verfügbare
Bits für
einen Priorisierungsprozess von Plattformressourcen verwendet. In
dieser Ausführungsform
wird Priorisierung von Plattformressourcen durch das Modifizieren
gewisser Eigenschaften in jedem Speicher-PTE ermöglicht, um die Plattformressourcen
mit dieser Speicherseite zu assoziieren. Der PTE in 4 zeigt
zwei separate Stellen innerhalb des gegenwärtigen PTE-Formats, die zur
Verwendung als Plattform-QoS-Bits zur Verfügung stehen.
-
In
einer Ausführungsform
können
einige der Software-gesteuerten Bits (62:52) 400 als Plattform-QoS-Bits
verwendet werden, indem eine Bitmaske in einem weiteren Modellspezifischen
Register (MSR) oder CR bereitgehalten wird. In einer anderen Ausführungsform
könnten
einige dieser Bits abhängig
von der Verfügbarkeit
der reservierten Bits (51:40) 402 als Plattform-QoS-Bits definiert
sein. Die genaue Verwendung, welche QoS-Plattformressourcen aktiviert sein können oder
nicht, ebenso wie die Priorisierungsfeinheit, hängt ausdrücklich von der Anzahl der Bits
ab, die verwendet werden können.
-
In
einer Ausführungsform
wird, wenn in dem Computersystem ein virtueller Speicher zugewiesen wird,
die Prioritätsebene
jeder Speicherseite zugeordnet und den assoziierten PTEs hinzugefügt. Die Priorität kann später durch
OS- oder VMM-Aufrufe geändert
werden. Die PTE-Information, einschließlich der Prioritätsbits von
Plattformressourcen, wird in den Übersetzungspuffer (translation
lookaside buffer) geladen. Nachfolgende Zugriffe auf die Seite werden mit
dieser Plattformprioritätsinformation
markiert.
-
7 ist
ein Flussdiagramm einer Ausführungsform
eines Prozesses zum Zuweisen von Computerplattformressourcen anhand
von QoS-Prioritätsebenen.
Der Prozess wird durch Bearbeitungslogik durchgeführt, die
Hardware (Schaltkreise, dedizierte Logik etc.), Software (wie solche,
die auf Allzweckcomputersystemen oder einer dedizierten Maschine läuft) oder
eine Kombination von beiden umfassen kann. Unter Bezugnahme auf 7 beginnt
der Prozess dadurch, dass die Bearbeitungslogik unter Ausschluss
eines zentralen Prozessorkerns für
eine oder mehrere Computersystemplattformressourcen einen QoS-Prioritätsebenenwert
festsetzt, wobei Bezug auf einen Auftrag genommen wird, der gegenwärtig auf dem
Computersystem abläuft
(Bearbeitungsblock 700). In einer Ausführungsform schließen die
Plattformressourcen den zentralen Prozessorcache, den Systemspeicher,
die Prozessor-Speicher-Verbindung
und die E/A ein. Anschließend
bestimmt die Bearbeitungslogik, ob die eine oder mehreren Computersystemplattformressourcen
dem Auftrag anhand der QoS-Prioritätsebeneneinstellung
(Bearbeitungsblock 702) zugewiesen wird/werden, und der
Prozess ist abgeschlossen.
-
8 ist
ein Flussdiagramm einer Ausführungsform
eines Prozesses zum Markieren von Speicheranfragen, die Zugriff
auf Plattformressourcen außerhalb
des Prozessorkerns benötigen,
mit QoS-Prioritätsebenenwerten.
Der Prozess wird durch Bearbeitungslogik durchgeführt, die
Hardware (Schaltkreise, dedizierte Logik etc.), Software (wie solche, die
auf Allzweckcomputersystemen oder einer dedizierten Maschine abläuft) oder
eine Kombination von beiden umfassen kann. Unter Bezugnahme auf 8 beginnt
der Prozess damit, dass die Bearbeitungslogik ein Plattform-QoS-Register
(TQR) mit einem Prioritätsebenenwert
für eine
oder mehrere Ressourcen belegt, die sich auf einen Auftrag beziehen,
der gegenwärtig
auf dem Computersystem abläuft
(Bearbeitungsblock 800). Als nächstes empfangt die Bearbeitungslogik
eine Speicher-E/A-Ressourcenanfrage (Bearbeitungsblock 802).
Falls die Ressourcenanfrage innerhalb des Prozessorkerns enthalten
ist, macht die Bearbeitungslogik im Hinblick auf die Ressourcenanfrage
nichts und kehrt zurück, um
eine andere Speicher-E/A-Ressourcenanfrage zu empfangen (Bearbeitungsblock 802).
Anderenfalls markiert die Bearbeitungslogik, falls die Ressourcenanfrage
Zugriff auf Speicher oder E/A außerhalb des Prozessorkerns
benötigt,
die Anfrage mit Verwendungsinformation von Plattformressourcen,
die mit dem Wert in dem PQR assoziiert ist (Bearbeitungsblock 806),
und der Prozess ist abgeschlossen. In einer Ausführungsform wird der markierte
Speicher-E/A-Zugriff dann durch eine oder mehrere QoS-aktivierte
Plattformressourcen bearbeitet, welche die markierte Ressourcenverwendungsinformation
verwenden, um die Prioritätsebene
zum Anwenden auf den Speicher-E/A-Ressourcenzugriff zu bestimmen.
-
9 ist
ein Flussdiagramm einer Ausführungsform
eines Prozesses zum Anfüllen
von Speicherseitentabelleneinträgen
mit QoS-Prioritätsebenenwerten
von Plattformressourcen. Der Prozess wird durch Bearbeitungslogik
durchgeführt,
die Hardware (Schaltkreise, dedizierte Logik etc.), Software (wie
solche, die auf einem Allzweckcomputersystem oder einer dedizierten
Maschine abläuft)
oder eine Kombination von beiden umfassen kann. Unter Bezugnahme
auf 9 beginnt der Prozess dadurch, dass die Bearbeitungslogik
eine Vielzahl von Speicherseitentabelleneinträgen mit einem QoS-Prioritätsebenenwert
für eine
oder mehrere Ressourcen, die sich auf einen Auftrag beziehen, belegt,
der gegenwärtig
auf dem Computersystem abläuft
(Bearbeitungsblock 900). In einer Ausführungsform wird der Prozess
durchgeführt,
wenn das System hochfährt, und
virtueller Speicher wird einem Prozess zugewiesen. In einer Ausführungsform
ist der Prozess eine Softwareanwendung. In einer anderen Ausführungsform
belegt das Betriebssystem oder der virtuelle Maschinenmanager den
QoS-Prioritätsebenenwert
in den Seitentabelleneinträgen
später
während
regulärem
Systembetrieb. Sodann priorisiert die Bearbeitungslogik die Zugänglichkeit
von Speicherorten anhand des QoS-Prioritätsebenenwerts, der für jede Speicherseite
gesetzt ist (Bearbeitungsblock 902), und der Prozess ist
abgeschlossen.
-
In
diesem Sinne werden Ausführungsformen eines
Verfahrens, eines Systems und eines computerlesbaren Mediums zum
Implementieren von Quality-of-Service-Prioritätsebenensteuerungen für Plattformressourcen
beschrieben. Diese Ausführungsformen
wurden unter Bezugnahme auf spezielle beispielhafte Ausführungsformen
derselben beschrieben. Personen, denen diese Offenbarung zuteil
wird, wird klar sein, dass verschiedene Modifikationen und Änderungen
an diesen Ausführungsformen
vorgenommen werden können,
ohne den breiteren Gedanken und Schutzbereich der hierin beschriebenen Ausführungsformen
zu verlassen. Die Spezifikation und Zeichnungen sind entsprechend
in einem eher illustrativen als restriktiven Sinne anzusehen.
-
Zusammenfassung
-
Ein
Verfahren, ein computerlesbares Medium und ein System werden offenbart.
In einer Ausführungsform
umfasst die Methode Festsetzen eines Quality-of-Service (QoS)-Prioritätsebenenwertes
für eine
oder mehrere Computersystemplattformressourcen unter Ausschluss
eines zentralen Prozessorkerns unter Bezug auf einen Auftrag, der
auf dem Computersystem läuft,
und Bestimmen, ob die eine oder mehreren Computersystemplattformressource(n)
dem Auftrag anhand der QoS-Prioritätsebenenfestsetzung
zugewiesen wird/werden.