-
Das technische Gebiet sind Bezahlen-Pro-Nutzung-Systeme
und -Verfahren, die eine Zentralprozessormessung verwenden, um eine
Prozessornutzung zur Abrechnung und zu anderen Zwecken zu bestimmen.
-
Viele Computersystembenutzer wenden
sich einem Bezahlenpro-Nutzung-Konzept zu, bei dem mit dem Benutzer
basierend auf einem bestimmten Maß einer Prozessornutzung innerhalb
des Computersystems abgerechnet wird. Ein Maß einer Prozessornutzung kann
basierend auf einem Meßschema sein,
das bestimmt, wann ein Prozessor in Benutzung ist. Ein derartiges
Messen einer Prozessornutzung wird gegenwärtig durch eine Software erzielt, die
innerhalb des Betriebssystems des Computersystems läuft. Bei
einem Computersystem, das eine Hardware aufweist, und das partitioniert
sein kann, erfordert ein Sammeln von Prozessornutzungsdaten von
einem Hardwaresystem Kommunikationen zwischen der Meßanwendung
und allen Betriebssystemen, die in der Hardware laufen. Der Bedarf
nach einer Kommunikation mit unterschiedlichen Betriebssystemen
stellt beträchtliche
Herausforderungen dar, da Betriebssysteme durch ihren Entwurf von
anderen Betriebssystemen getrennt sind und keine Sichtbarkeit gegenüber Nutzungsdaten
von anderen Betriebssystemen aufweisen. Ferner kann auf die Weise,
auf die partitionierte Systeme verwendet werden, eine Netzverbindbarkeit
unter Umständen
zwischen unterschiedlichen Betriebssystemen auf der gleichen Hardware
nicht möglich
sein, was die Fähigkeit
einer genauen Messung einer Prozessornutzung weiter verkompliziert.
Gegenwärtige
Lösungen
beinhalten ein unabhängiges
Kommunizieren mit jedem Betriebssystem und ein darauffolgendes Zusammenstellen
der Informationen zu einem späteren
Zeitpunkt. Diese Lösung
kann z. B. lästig
sein, wenn ein Netzzugriff eingeschränkt ist, keine Agentensoftware in stalliert
ist und Betriebssysteme zeitweilig außer Betrieb sind. Diese Lösung erfordert
außerdem
die Entwicklung von betriebssystemspezifischen Agenten, da jede
Partition in der Lage ist, unterschiedliche Instanzen der Betriebssysteme
laufenzulassen. Insbesondere werden, da Betriebssysteme in einem partitionierbaren
Computersystem gemäß einer
Vorgabe nicht miteinander kommunizieren, Datenbereitstellungsvorrichtungen
(Softwareagenten) benötigt, die
auf jedem Betriebssystem laufen sollen, um Nutzungsdaten von jeder
Partition zu sammeln und zu übertragen
oder anderweitig bereitzustellen. Die so gesammelten Nutzungsdaten
werden zusammengestellt, um einen Gesamtwert für eine Prozessornutzung zu
liefern.
-
Es ist die Aufgabe der vorliegenden
Erfindung, eine hardwarebasierte Nutzungsmeßvorrichtung, ein hardwarebasiertes
Verfahren oder eine Vorrichtung zu schaffen, die eine für sowohl
Benutzer als auch Anbieter vereinfachte Art und Weise zur Abrechnung
einer Prozessornutzung schaffen.
-
Diese Aufgabe wird durch eine hardwarebasierte
Nutzungsmeßvorrichtung
gemäß Anspruch
1, ein Verfahren gemäß Anspruch
13 oder eine Vorrichtung gemäß Anspruch
18 gelöst.
-
Es ist eine hardwarebasierte Nutzungsmeßvorrichtung
zur Verwendung in einem Computersystem offenbart, das eine oder
mehrere Zentralprozessoreinheiten (CPUs) aufweist, wobei die Vorrichtung einen
Zustandsindikator, der mit einer CPU gekoppelt ist, wobei der Zustandsindikator
eine Anzeige empfängt,
wenn die CPU in einem ersten Zustand ist; einen Zähler, der
mit dem Zustandindikator gekoppelt und mit einem Systemtakt gekoppelt
ist, wobei der Zähler
ein Maß einer
Systemzeit von dem Systemtakt empfängt und Daten empfängt, die
auf die Anzeige bezogen sind, wenn die CPU in dem ersten Zustand ist,
und einen Zählwert
erzeugt, der eine Zeit anzeigt, die die CPU in dem ersten Zustand
ist; und eine Datenbenutzungsbereitstellungsvorrichtung, die mit dem
Zähler
gekoppelt ist, wobei die Datenbenutzungsbereitstel lungsvorrichtung
in der Lage ist, den Zählwert
bereitzustellen, aufweist.
-
Außerdem ist ein hardwarebasiertes
Verfahren zum Messen einer Prozessornutzung in einem Computersystem,
das eine Mehrzahl von Prozessoren aufweist, offenbart, wobei das
Verfahren ein Bestimmen, wann einer der Mehrzahl von Prozessoren besetzt
(busy) (d. h. nicht inaktiv (idle)) ist; ein Liefern einer Besetzt-Anzeige
an einen Zähler,
der dem besetzten Prozessor zugeordnet ist; ein Empfangen eines
Maßes
einer Computersystemzeit an dem Zähler; ein Inkrementieren eines
Zählwertes
in dem Zähler
basierend auf der empfangenen Besetzt-Anzeige und einer Größe einer
Computersystemzeit, die der Prozessor als besetzt bestimmt wurde;
und ein Beibehalten des Zählwertes
aufweist.
-
Schließlich ist eine Vorrichtung
offenbart, die eine hardwarebasierte Nutzungsmessung von CPUs in
einem Computersystem, das eine Mehrzahl von CPUs aufweist, liefert.
Den CPUs zugeordnet ist eine Einrichtung zum Messen einer Computersystemzeit. Zusätzlich umfaßt die Vorrichtung
für jede
der Mehrzahl von CPUs eine Einrichtung zum Bestimmen, wann der Prozessor
besetzt ist; eine Einrichtung zum Bereitstellen einer Besetzt-Anzeige,
wenn der Prozessor besetzt ist; eine Einrichtung zum Empfangen der
Besetzt-Anzeige und eines Maßes
einer Computersystemzeit; eine Einrichtung zum Kombinieren der Besetzt-Anzeige
und des Maßes
einer Computersystemzeit, um einen Zählwert zu erzeugen, der eine Prozessornutzung
anzeigt; und eine Einrichtung zum Beibehalten des Zählwertes.
-
Bevorzugte Ausführungsbeispiele der vorliegenden
Erfindung werden nachfolgend Bezug nehmend auf die beigefügten Zeichnungen
näher erläutert, in
denen gleiche Bezugszeichen auf gleiche Elemente verweisen. Es zeigen:
-
1A ein
grundlegendes Blockdiagramm eines Systems, das CPU-Nutzungsdaten
in einem Computersystem mißt,
auf dem mehrere Instanzen von Betriebssystemen laufen;
-
1B ein
grundlegendes Blockdiagramm eines anderen Systems, das CPU-Nutzungsdaten
in einem Computersystem mißt,
auf dem mehrere Instanzen von Betriebssystemen laufen;
-
1C ein
detaillierteres Blockdiagramm spezifischer Komponenten des Systems
aus 1A;
-
2 ein
weiteres Blockdiagramm eines Systems, das CPU-Nutzungsdaten in einem
Computersystem mißt,
das mehrere CPUs aufweist, die mehrere Instanzen von Betriebssystemen
laufenlassen;
-
3 noch
ein weiteres Blockdiagramm eines Systems, das CPU-Nutzungsdaten
in einem Computersystem mißt,
das mehrere CPUs aufweist, die mehrere Instanzen von Betriebssystemen
laufenlassen; und
-
4 ein
Blockdiagramm eines Verfahrens zum Messen einer CPU-Nutzung in einem
Computersystem, das mehrere CPUs aufweist, die mehrere Instanzen
von Betriebssystemen laufenlassen.
-
Bezahlen-pro-Nutzung-Systeme ermöglichen
es Computerbenutzern, eine bestimmte Rechenkapazität zu erfassen,
die auf den spezifischen Bedarf des Benutzers zugeschnitten sein
kann, indem unter anderem dem Benutzer nur die tatsächliche
Nutzung der System-Zentralprozessoreinheiten (CPUs) berechnet wird.
Ein Maß einer
CPU-Nutzung kann basierend auf einem Meßschema sein, das bestimmt,
wann ein Prozessor in Benutzung oder besetzt ist. Ein derartiges
Messen einer CPU-Nutzung wird
gegenwärtig
durch eine Software erzielt, die in dem Betriebssystem des Computersystems
läuft. Dieser
Ansatz einer CPU-Messung unter Verwendung einer Software, die in
dem Betriebssystem läuft, ist
für CPUs
annehmbar, die einzelne Instanzen (d. h. Typ oder Version) von Betriebssystemen
laufenlassen. Ein derartiges Schema wäre zum Beispiel für ein Computersystem
annehmbar, auf dem nur UNIX oder nur Windows® läuft. Für Computersysteme jedoch, die
hardware- und softwarepartitionierbar sein können, erfordert ein Sammeln
von CPU-Nutzungsdaten von einem Hardwaresystem Kommunikationen zwischen
der Meßanwendung
und allen Betriebssystemen, die in der Hardware laufen. Der Bedarf
nach einer Kommunikation mit unterschiedlichen Betriebssystemen
stellt beträchtliche
Herausforderungen dar, da Betriebssysteme durch ihren Entwurf von
anderen Betriebssystemen getrennt sind und keine Sichtbarkeit gegenüber Nutzungsdaten
von anderen Betriebssystemen aufweisen. Ferner kann auf die Weise,
auf die partitionierte Systeme verwendet werden, eine Netzverbindbarkeit
unter Umständen
zwischen unterschiedlichen Betriebssystemen auf der gleichen Hardware
nicht möglich
sein, was die Fähigkeit
einer genauen Messung einer CPU-Nutzung weiter verkompliziert. Gegenwärtige Lösungen beinhalten
ein unabhängiges
Kommunizieren mit jedem Betriebssystem und ein darauffolgendes Zusammenstellen der
Informationen zu einem späteren
Zeitpunkt. Diese Lösung
kann z. B. lästig
sein, wenn ein Netzzugriff eingeschränkt ist, keine Agentensoftware
installiert ist und Betriebssysteme zeitweilig außer Betrieb sind.
Diese Lösung
erfordert außerdem
die Entwicklung von betriebssystemspezifischen Agenten, da jede
Partition in der Lage ist, unterschiedliche Instanzen der Betriebssysteme
laufenzulassen. Insbesondere werden, da Betriebssysteme in einem
partitionierbaren Computersystem durch eine Vorgabe nicht miteinander
kommunizieren, Datenbereitstellungsvorrichtungen (Softwareagenten)
benötigt,
die auf jedem Betriebssystem laufen sollen, um Nutzungsdaten von
jeder Partition zu sammeln und zu übertragen oder anderweitig
bereitzustellen. Die so gesammelten Nutzungsdaten werden zusammengestellt,
um einen Gesamtwert für
eine CPU-Nutzung zu liefern.
-
Die offenbarte Vorrichtung und das
offenbarte Verfahren zum Sammeln von CPU-Nutzungsdaten überwinden
diese Probleme.
-
Die Vorrichtung und das Verfahren
nehmen an, daß eine
CPU in einem ersten Zustand oder in einem zweiten Zustand sein kann.
Die CPU-Nutzung kann basierend auf einem Maß einer Zeit sein, die die CPU
in einem Zustand oder dem anderen verbringt. Bei einem Ausführungsbeispiel
kann der erste Zustand ein Besetzt-Zustand sein, was allgemein bedeutet,
daß auf
der CPU Prozesse laufen, die eine nützliche Arbeit für den Benutzer
des Computersystems durchführen.
Alternativ kann der erste Zustand ein inaktiver Zustand oder Leerlaufzustand
(idle) sein, bei dem die CPU keine nützliche Arbeit durchführt. Die
CPU-Nutzung kann auf einem Erfassen oder Bestimmen dessen basieren,
wann die CPU in dem ersten Zustand ist. Bei dem Ausführungsbeispiel,
bei dem der erste Zustand der Besetzt-Zustand ist, kann die Vorrichtung
eine Einrichtung zum Bestimmen, ob die CPU besetzt ist, umfassen.
Die Einrichtung zum Bestimmen, ob die CPU besetzt ist, kann eine
Hardwareeinrichtung umfassen. Alternativ kann die Einrichtung zum
Bestimmen, ob die CPU besetzt ist, eine Softwareeinrichtung umfassen.
Die Vorrichtung umfaßt
außerdem
eine Einrichtung zum Messen und Bereitstellen einer Systemzeit und
eine Einrichtung zum Kombinieren der Systemzeit und einer CPU-Besetzt-Anzeige,
um einen CPU-Nutzungswert
zu liefern. Bei einem Ausführungsbeispiel
kann die CPU-Nutzung ein Zählwert
sein. Ein Zähler
kann zum Beispiel für
jeden Systemtaktzyklus, den die CPU nicht in einen inaktiven Zustand
ist, um Eins inkrementieren. Die Hardwareeinrichtung zum Bestimmen,
ob die CPU besetzt ist, kann Hardwaremodifizierungen an dem Computersystem
umfassen. Die alternative Softwareeinrichtung zum Bestimmen, ob die
CPU inaktiv ist, kann Modifizierungen an dem oder den Betriebssystemen
der CPU umfassen. Die Vorrichtung kann ferner eine Einrichtung zum
Speichern einer nichtflüchtigen
Version des CPU-Nutzungswertes, eine Einrichtung zum Initialisieren
des CPU-Nutzungswertes auf ein Hochfahren der CPU hin und eine Einrichtung
zum Berichten des CPU-Nutzungswertes
an ein System oder Netz außerhalb
des Computersystems umfassen.
-
1A ist
ein grundlegendes Blockdiagramm eines Computersystems 100,
das ein hardwarebasiertes Nutzungsmessen implementiert. Das System 100 umfaßt eine
CPU 110, auf der mehrere Instanzen von Betriebssystemen
laufen können.
Das bedeutet, daß die
CPU 110 unterschiedliche Typen von Betriebssystemen (z.
B. UNIX, Windows®)
und unterschiedliche Versionen eines spezifischen Typs von Betriebssystem
unterstützen
kann. Mit der CPU 110 gekoppelt ist ein Inaktiv-Indikator 120.
Der Inaktiv-Indikator 120 ist in der Lage, entweder eine „Inaktiv"-Anzeige
oder eine „Nicht
Inaktiv"/"Besetzt"-Anzeige zu liefern. Bei einem Ausführungsbeispiel
liefert der Inaktiv-Indikator 120 ein Ausgangssignal, das anzeigt,
ob die CPU 110 „inaktiv"
ist. Der Betrieb und die Struktur des Inaktiv-Indikators 120 sind
später
beschrieben. Das Ausgangssignal des Inaktiv-Indikators 120 wird
an einen Zähler 140 geliefert.
Der Zähler 140 empfängt außerdem ein
Ausgangssignal von einem Systemtakt 130. Der Systemtakt 130 kann Ticks
oder Zyklen oder ein anderes Maß einer
Systemzeit messen und dann diese Daten oder eine modifizierte Form
der Systemzeitdaten an den Zähler 140 liefern.
-
Unter Verwendung der Eingangssignale
von dem Systemtakt 130 und dem Interaktiv-Indikator 120 mißt der Zähler 140 CPU-Zyklen für die CPU 110,
bei denen die CPU 110 in keinem inaktiven Zustand ist,
statt dessen jedoch einen Dienst für den Benutzer des Systems 100 durchführt. Während die CPU 110 eingeschaltet
ist, kann der Zähler 140 so
einen Zählwert
beibehalten, wie in 1A gezeigt
ist, wobei der Zählwert
(z. B. CPU-Zyklen) basierend auf den Systemzeitdaten und dem Inaktiv-Indikator-Ausgangssignal
aktualisiert wird.
-
Der Zählwert wird von dem Zähler 140 an eine
Benutzungsdatenbereitstellungsvorrichtung 150 geliefert.
Der Zählwert
kann auf einer periodischen Basis oder dann an die Benutzungsdatenbereitstellungsvorrichtung 150 geliefert
werden, wenn der Zähler 140 durch
die Benutzungsdatenbereitstel lungsvorrichtung 150 abgefragt
wird. Die Benutzungsdatenbereitstellungsvorrichtung 150 verfolgt
den Zählwert
und behält
eine nicht-flüchtige Hauptkopie
des Zählwertes
bei. Wenn die CPU 110 eingeschaltet wird (oder eine Hardwarekomponente, die
die CPU 110 enthält,
eingeschaltet wird), wird der gespeicherte nicht-flüchtige Zählwert von
der Benutzungsdatenbereitstellungsvorrichtung 150 an den
Zähler 140 geliefert,
um den Zählwert
in dem Zähler 140 zu
initialisieren. Da die Benutzungsdatenbereitstellungsvorrichtung 150 eine
nicht-flüchtige Kopie
des Zählwertes
beibehält,
ist, selbst wenn die CPU 110 oder eine andere Hardwarekomponente
zusätzlich
zu einem Verlust einer Leistungssituation entfernt wird, immer ein
aktueller oder nahezu aktueller Wert des Zählwertes verfügbar.
-
Die Benutzungsdatenbereitstellungsvorrichtung 150 behält eine
Verbindung oder Netzschnittstelle 160 mit einem System
oder Netz (nicht gezeigt) bei, das außerhalb des Computersystems 100 ist. Die
Schnittstelle 160 kann zum Beispiel eine Lokales-Netz-(LAN-)Schnittstelle
zu einem LAN sein. Das LAN kann einen Verwaltungsserver umfassen,
der Informationen von den verschiedenen Computersystemen empfängt und
verarbeitet, die mit dem LAN gekoppelt sind, einschließlich der
Zählwerte,
die eine CPU-Nutzung anzeigen. Die Benutzungsdatenbereitstellungsvorrichtung 150 kann
den gegenwärtigen Wert
des Zählwertes
mittels der Netzschnittstelle 160 an das Netz liefern.
Der Zählwert
kann periodisch oder dann, wenn er durch das Netz abgefragt wird, bereitgestellt
werden.
-
Wie oben angemerkt ist, liefert der
Inaktiv-Indikator 120 eine Anzeige, daß die CPU nicht inaktiv ist.
Der Inaktiv-Indikator
kann als eine Hardwaremodifizierung an dem Computersystem 100 implementiert
sein. Einige CPUs umfassen zum Beispiel einen Anschlußstift auf
dem CPU-Chip, der eine Halt-(Inaktiv-)Anzeige liefert. Einige Betriebssysteme
halten die CPU an, wenn die CPU keine Befehle verarbeitet (d. h.
die CPU ist inaktiv), und eine Halt-(Inaktiv-)Anzeige (d. h. ein
hoher oder niedriger oder 0- oder 1-Wert) kann an dem Anschlußstift festgestellt
werden. Bei einem Ausführungsbeispiel
kann der Inaktiv-Indikator 120 mit dem Anschlußstift gekoppelt sein,
um die Halt-(Inaktiv-)Anzeige zu lesen. Andere Betriebssysteme halten
die CPU nicht an, wenn die CPU inaktiv ist. Statt dessen kann das
Betriebssystem die CPU in eine Inaktiv-Schleife plazieren, in der die
CPU verbleibt, bis das Betriebssystem eine CPU-Verarbeitung benötigt. Bei
einem Ausführungsbeispiel
kann eine Veränderung
an dem Betriebssystem derart durchgeführt werden, daß auf einen
Eintritt in die Inaktiv-Schleife hin ein extern sichtbarer Registerwert
gesetzt wird, um anzuzeigen, daß die CPU
inaktiv ist. Wenn die CPU aus der Inaktiv-Schleife austritt, würde das
Register gelöscht.
Zusätzlich
zu den gerade beschriebenen beiden Ausführungsbeispielen des Inaktiv-Indikators 120 können andere
Strukturen und Verfahren verwendet werden, um anzuzeigen, daß die CPU 110 inaktiv
ist.
-
1B zeigt
eine Alternative 101 zu dem Ausführungsbeispiel der hardwarebasierten
Nutzungsmeßkomponenten
aus 1A. In 1B kann die CPU 110 ein
Betriebssystem, das einen Kommunikationskanal 140' zu der
Benutzungsdatenbereitstellungsvorrichtung 150 aufweist,
laufenlassen. Der Kommunikationskanal 140' kann verwendet
werden, um CPU-Nutzungsmetriken
zur Sammlung durch die Benutzungsdatenbereitstellungsvorrichtung 150 zu kommunizieren.
Bei diesem Ausführungsbeispiel wäre keine
Hardwaremodifizierung zum direkten Messen der CPU 110 erforderlich.
-
1C zeigt
ausgewählte
Komponenten der hardwarebasierten Nutzungsmeßvorrichtung detaillierter.
In 1C ist der Zähler 140 gezeigt,
der einen optionalen Prozessor 145 umfaßt, der verwendet werden kann,
um die Inaktiv-Anzeige und Systemzeitdaten zu verarbeiten, um eine
CPU-Nutzungsmetrik zusätzlich
zu dem Zählwert
zu erzeugen. Der Prozessor 145 kann zum Beispiel eine kumulative
Echt- oder Systemzeit berechnen, zu der die CPU 110 nicht inaktiv
ist. Die Benut zungsdatenbereitstellungsvorrichtung 150 ist
gezeigt, die einen nicht-flüchtigen Speicher 155 umfaßt, der
den empfangenen Zählwert
von dem Zähler 140 speichert.
Der nichtflüchtige Speicher 155 kann
jede nicht-flüchtige
Speichervorrichtung sein, die in der Lage ist, die Zählwerte
zu empfangen und zu speichern. Die Benutzungsdatenbereitstellungsvorrichtung 150 kann
auch einen optionalen Prozessor 156 umfassen, der verwendet
werden kann, um z. B. den empfangenen Zählwert in eine CPU-Metrik,
wie zum Beispiel die Gesamt-CPU-Nicht-Inaktiv-Stunden, in Echtzeit
umzuwandeln. Der Prozessor 156 kann außerdem Anforderungen nach den
Nutzungsdaten über
die Schnittstelle 160 oder nach einem periodischen Übertragen der
Nutzungsdaten an ein externes System auf dem LAN, das mit der Schnittstelle 160 verbunden
ist, handhaben.
-
2 ist
ein Blockdiagramm eines Computersystems 100', das CPU-Nutzungsdaten
mißt,
wobei das Computersystem 100' mehrere CPUs umfaßt, die
mehrere Instanzen von Betriebssystemen laufenlassen. In 2 umfaßt das Computersystem 100' eine
CPU 1 bis CPU N (als 110 – 113 bezeichnet). Diese Anordnung
soll anzeigen, daß das
Computersystem 100' N CPUs umfassen kann, wobei N eine
Ganzzahl ist. Jeder der CPUs 110 – 113 zugeordnet ist ein entsprechender
Inaktiv-Indikator
(120 – 123)
und ein entsprechender Zähler
(140 – 143).
Jeder der Zähler 140 – 143 empfängt ein
Eingangssignal von seinem jeweiligen Inaktiv-Indikator und von dem
Systemtakt 130. Der Systemtakt 130, der in 2 gezeigt ist, führt die
gleichen Funktionen durch und weist die gleiche Struktur auf wie
der Systemtakt 130, der in 1A gezeigt
ist. Jeder der Zähler
liefert ein Ausgangssignal (Zählwert
für seine
jeweilige CPU) an eine Benutzungsdatenbereitstellungsvorrichtung 150'.
Die Benutzungsdatenbereitstellungsvorrichtung 150' ähnelt der
Benutzungsdatenbereitstellungsvorrichtung 150, die in 1A gezeigt ist, mit der
Ausnahme, daß die
Benutzungsdatenbereitstellungsvorrichtung 150' ein nicht-flüchtiges
Maß des
Zählwertes
für jede
der CPUs 110 – 113
in dem Computersystem 100' beibe hält. Schließlich umfaßt das Computersystem 100' die
Schnittstelle 160 zum Kommunizieren von CPU-Nutzungsdaten
(Zählwerten)
an ein System oder Netz (nicht gezeigt) außerhalb des Computersystems 100'.
-
3 ist
ein Blockdiagramm eines Computersystems 100" , das mehrere
CPUs aufweist, die in Partitionen oder Zellen angeordnet sind. Eine
oder mehrere der CPUs können
mehrere Instanzen von Betriebssystemen laufenlassen oder bestimmte CPUs
können
spezifische Instanzen von Betriebssystemen 1aufenlassen, während andere
CPUs andere Instanzen von Betriebssystemen laufen lassen. Wie in 3 gezeigt ist, umfaßt das Computersystem 100" Hardwarezellen 1 bis
K, die als Zellen 200, 300 bzw. 400 bezeichnet
sind. Diese Anordnung soll anzeigen, daß das Computersystem 100" K
Zellen umfassen kann, wobei K eine Ganzzahl ist, einschließlich 1
(Eins), was anzeigt, daß das
Computersystem 100" eine Zelle aufweist. Jede der Zellen
ist ein Satz von Komponenten, die aus dem Computersystem 100" als
eine Gruppe entfernt werden können.
Wie in 3 ersichtlich
ist, ist die Anordnung von Komponenten innerhalb jeder Zelle identisch
hinsichtlich des Typs und der Anzahl von Komponenten. Die Zellen
müssen
jedoch nicht den gleichen Typ oder die gleiche Anzahl von Komponenten
umfassen. Zusätzlich
zu einer Unterteilung von Komponenten unter den Hardwarezellen 1 bis
K können
die Komponenten partitioniert oder logisch sortiert sein. Die Partitionen
können
jede Anzahl von CPUs oder jede Anzahl von Zellen aufweisen. Die
Zelle 1 (200) kann zum Beispiel vier separate Partitionen,
nämlich eine
für jede
der in der Zelle 1 installierten CPUs, aufweisen. Alternativ
können
die Zelle 1 (200) und die Zelle 2 (300) eine erste
Partition aufweisen und die verbleibende/n Zelle/n kann/können eine
oder mehrere zusätzliche
Partitionen aufweisen.
-
Unter Annahme der Zelle 200 als
einem Beispiel sind vier CPUs 210 – 213 enthalten. Die Zelle 200 kann
jedoch mehr oder weniger als vier CPUs umfassen. Jeder der CPUs
210 – 213
zugeordnet ist ein entsprechender Inaktiv-Indikator 220 – 223. Jeder der
Inaktiv-Indikatoren empfängt
eine Anzeige, wenn seine zugeordnete CPU inaktiv ist, und liefert
ein Ausgangssignal an einen entsprechenden Zähler 240 – 243, der
einen gegenwärtigen
Zählwert (CPU-Nutzungsmetrik)
liefert. Jeder der Zähler
240 – 243
empfängt
ein Eingangssignal von einem Systemtakt 230. Der Systemtakt 230 funktioniert
auf die gleiche Weise wie der in 1A gezeigte
Systemtakt 130.
-
Jeder der Zähler 240 – 243 liefert
seinen zugeordneten Zählwert
an eine Benutzungsdatenbereitstellungsvorrichtung 500.
Die Benutzungsdatenbereitstellungsvorrichtung 500 behält eine
Kopie des Zählwertes
(in 3 als 501 bzw. 512
gezeigt) für jede
der CPUs in den Zellen 200, 300 bzw. 400 bei. Die
Benutzungsdatenbereitstellungsvorrichtung 500 umfaßt die Schnittstelle 160 zu
einem System oder Netz (nicht gezeigt) außerhalb des Computersystems 100" .
-
Die Anordnung der Zellen 200, 300 und 400 ermöglicht es,
daß eine
oder mehrere der Zellen aus dem Computersystem 100" entfernt
werden können, während das
Computersystem in Betrieb behalten wird. Um einen Verlust der Zählwerte
für die
CPUs in einer entfernten Zelle zu vermeiden, sind die Zählwerte
in der Benutzungsdatenbereitstellungsvorrichtung 500 gespeichert.
Bei einem Ausführungsbeispiel
können
die gespeicherten Zählwerte
in einem nicht-flüchtigen
Speicher beibehalten werden. In Betrieb werden die Zählwerte,
die am nächsten
an dem CPUs sind (d. h. die Zählwerte
in den Zählern)
inkrementiert und die Zählwerte
in der Benutzungsdatenbereitstellungsvorrichtung 500 werden
periodisch aktualisiert. Die Zählwerte
können
basierend auf einem spezifischen Berichtsintervall oder durch eine
Abfrageaktion, die durch die Benutzungsdatenbereitstellungsvorrichtung 500 initialisiert
wird, aktualisiert werden.
-
Sollte eine der Zellen 200, 300 oder 400 durch
eine neue Zelle oder durch die ursprüngliche Zelle ersetzt werden, jedoch
mit einer oder mehreren CPUs, können
die Zählwerte
verloren gehen, wenn die Zelle ausgeschaltet wird. So wird, wann
immer die Zelle eingeschaltet wird, die Benutzungsdatenbereitstellungsvorrichtung 500 die
entsprechenden Zähler
in der Zelle reinitialisieren. Wenn zum Beispiel die Zelle 200 entfernt
ist und die CPU 210 durch eine neue CPU 210' ist,
liefert, wenn die ursprüngliche Zelle 200 wiederinstalliert
und eingeschaltet wird, die Benutzungsdatenbereitstellungsvorrichtung 500 den gespeicherten
Zählwert 501 an
den Zähler 240.
Die Benutzungsdatenbereitstellungsvorrichtung 500 initialisiert
außerdem
die Zähler 241 – 243 durch
ein Bereitstellen der jeweiligen gespeicherten Zählwerte 502 – 504. Da
die CPU 210 durch die neue CPU 210' ersetzt wurde,
spiegelt der gelieferte Zählwert 501 die
CPU-Nutzung für die CPU 210 wider.
Eine nachfolgende nicht inaktive Zeit der CPU 210' wird
durch ein Inkrementieren des Zählers 240 gezählt.
-
Bei dem obigen Beispiel ist die Ersatz-CPU 210' in
allen Belangen ähnlich
wie die ursprüngliche CPU 210,
so daß ein
Inkrementieren des Zählers 240,
wenn die neue CPU 210 installiert ist, genauso wie mit
der ursprünglichen
CPU 210 voranschreiten sollte. Die neue CPU 210 kann
sich jedoch auch in einigen Belangen von der ursprünglichen
CPU 210 unterscheiden. Bei einem Ausführungsbeispiel können die
Vorrichtung und das Verfahren zum Messen einer CPU-Nutzung die notwendige
Einrichtung zum Berücksichtigen
von Unterschieden zwischen CPUs umfassen. Ein Prozessor in dem Zähler 240 zum
Beispiel (ähnlich
dem Prozessor 145 aus 1C)
oder ein Prozessor in der Benutzungsdatenbereitstellungsvorrichtung 500 (ähnlich dem
Prozessor 156 aus 1C)
kann den kumulativen Zählwert
für die CPU 210 einstellen,
sollte die CPU 210 durch einen unterschiedlichen Typ oder
ein unterschiedliches Modell von CPU ersetzt werden, oder sollte
der Systemtakt 230 die Taktrate verändern, oder sollte ein Betriebssystem,
das auf der CPU 210 läuft,
sich derart verändern,
daß sich
eine Bestimmung des Zählwertes,
der zuvor an dem Zähler 240 bestimmt
würde, ändern würde. Sollte
der Sy stemtakt 230 zum Beispiel durch einen Systemtakt
ersetzt werden, der eine höhere
Taktrate als die des ursprünglichen
Systemtaktes 230 aufweist, könnte der Prozessor in dem Zähler 240 einfach
den bestimmten Zählwert
mit dem Verhältnis
der ursprünglichen
Taktrate zu der neuen Taktrate multiplizieren, um eine konsistente
Veränderungsrate
in dem Zählwert
aus dem zu erzeugen, was unter Verwendung der ursprünglichen
Taktrate bestimmt wurde und unter Verwendung der neuen Taktrate
bestimmt wurde.
-
4 ist
ein Flußdiagramm,
das eine hardwarebasierte CPU-Nutzungsoperation 600 unter
Verwendung des Systems 100" aus 3 zeigt. Die Operation 600 beginnt
bei einem Block 610. Bei einem Block 620 wird
die Zelle 200 ersetzt und die Hardwarekomponenten auf der
Zelle 200 werden hochgefahren. In einem Block 630 empfängt die Benutzungsdatenbereitstellungsvorrichtung 500 eine Anzeige
des Hochfahrens der Komponenten der Zelle 200 und die Benutzungsdatenbereitstellungsvorrichtung 500 sendet
die gespeicherten Zählwerte 501 – 504 an
die jeweiligen Zähler 240 – 243. In
einem Block 640 werden die empfangenen Zählwerte
verwendet, um die Zähler 240 – 243 zu
reinitialisieren. Die CPUs 210 – 213 sind jedoch inaktiv (Betriebssysteme
verarbeiten gerade nicht) und in einem Block 650 liefern
die Inaktiv-Indikatoren 220 – 223 eine Inaktiv-Anzeige
an ihre jeweiligen Zähler 240 – 243, wodurch
ein Inkrementieren der Zählwerte
vermieden wird. In einem Block 660 beginnt die CPU 210 mit
dem Laufenlassen eines Betriebssystems und der Inaktiv-Indikator 220 sendet
eine Anzeige an den Zähler 240,
das die CPU 210 nicht inaktiv ist. In einem Block 670 empfängt der
Zähler 240 die
Nicht-Inaktiv-Anzeige und die Systemzeit von dem Systemtakt 230 und
beginnt mit einem Inkrementieren des Zählwertes für die CPU 210. In
einem Block 680 stoppt das Betriebssystem, das auf der
CPU 210 läuft,
ihre Verarbeitung, hält
die CPU 210 an und stellt eine Halt-Anzeige fest. In einem
Block 690 empfängt der
Zähler 240 eine
Inaktiv-Anzeige und stoppt ein Inkrementieren des Zählwertes.
Die Operation 600 kann mit einem Inkrementieren von Zähl werten
für andere
CPUs in dem System 100" fortfahren und kann Routinen umfassen,
um die nicht-flüchtigen Zählwerte
in der Benutzungsdatenbereitstellungsvorrichtung 500 zu
aktualisieren.