DE10318622A1 - Hardwarebasierte Nutzungsmessung - Google Patents

Hardwarebasierte Nutzungsmessung Download PDF

Info

Publication number
DE10318622A1
DE10318622A1 DE10318622A DE10318622A DE10318622A1 DE 10318622 A1 DE10318622 A1 DE 10318622A1 DE 10318622 A DE10318622 A DE 10318622A DE 10318622 A DE10318622 A DE 10318622A DE 10318622 A1 DE10318622 A1 DE 10318622A1
Authority
DE
Germany
Prior art keywords
processor
cpu
counter
count
usage
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
DE10318622A
Other languages
English (en)
Inventor
Edgar Loveland Circenis
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27765817&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE10318622(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE10318622A1 publication Critical patent/DE10318622A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Eine hardwarebasierte Nutzungsmeßvorrichtung und ein entsprechendes Verfahren werden in einem Computersystem verwendet, das eine oder mehrere zentrale Prozessoreinheiten (CPUs) aufweist, um ein Maß einer CPU-Nutzung zu liefern. Die Vorrichtung umfaßt einen Zustandsindikator, der mit einer CPU gekoppelt ist. Der Zustandsindikator empfängt eine Anzeige, wenn die CPU in einem ersten Zustand ist, was ein Besetzt-Zustand sein kann. Ein Zähler, der mit dem Zustandsindikator gekoppelt ist und mit einem Systemtakt gekoppelt ist, empfängt ein Maß einer Systemzeit von dem Systemtakt und empfängt Daten, die auf die Anzeige bezogen sind, wann die CPU in dem ersten Zustand ist, und erzeugt einen Zählwert, der die Zeit anzeigt, zu der die CPU in dem ersten Zustand ist. Eine Datenbenutzungsbereitstellungsvorrichtung, die mit dem Zähler gekoppelt ist, behält einen nicht-flüchtigen Wert des Zählwertes bei.

Description

  • 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.

Claims (20)

  1. Hardwarebasierte Nutzungsmeßvorrichtung mit folgenden Merkmalen: einem Zustandsindikator (120), der mit einem Prozessor (110) gekoppelt ist, wobei der Zustandsindikator eine Anzeige empfängt, wenn der Prozessor in einem ersten Zustand ist; einem Zähler (140), der mit dem Zustandsindikator (120) gekoppelt ist und mit einem Systemtakt (130) gekoppelt ist, wobei der Zähler ein Maß einer Systemzeit von dem Systemtakt empfängt und Daten, die auf die Anzeige bezogen sind, wenn der Prozessor (110) in dem ersten Zustand ist, empfängt und einen Zählwert erzeugt, der eine Zeit anzeigt, zu der der Prozessor in dem ersten Zustand ist; und einer Datenbenutzungsbereitstellungsvorrichtung (150), die mit dem Zähler (140) gekoppelt ist, wobei die Datenbenutzungsbereitstellungsvorrichtung in der Lage ist, den Zählwert zu liefern.
  2. Vorrichtung gemäß Anspruch 1, bei der der erste Zustand ein Besetzt-Zustand ist, und bei der der Zustandsindikator (120) ein Inaktiv-Indikator ist.
  3. Vorrichtung gemäß Anspruch 2, bei der der Prozessor (210) ein Betriebssystem aufweist, das den Prozessor anhält, wenn der Prozessor gerade nicht verarbeitet, und bei der der Inaktiv-Indikator (120) eine Hardwarevorrichtung ist, die mit einem Anschlußstift des Prozessors gekoppelt ist, wobei die Hardwarevorrichtung ein Signal liest, das an dem Anschlußstift anliegt, um die Inaktiv-Anzeige zu empfangen.
  4. Vorrichtung gemäß Anspruch 2, bei der der Prozessor (110) ein Betriebssystem aufweist, das den Prozessor in eine Inaktiv-Schleife plaziert, wenn der Prozessor inaktiv ist, und bei der der Inaktiv-Indikator ein extern sichtbares Register aufweist, das einen Wert hält, der anzeigt, daß der Prozessor in dem inaktiven Zustand ist.
  5. Vorrichtung gemäß einem der Ansprüche 2 bis 4, bei der der Zählwert basierend auf dem Maß einer Systemzeit, zu der der Prozessor (110) in dem Besetzt-Zustand ist, inkrementiert wird.
  6. Vorrichtung gemäß einem der Ansprüche 1 bis 5, bei der, wenn der Prozessor (110) eingeschaltet wird, der Zähler (140) einen gegenwärtigen Wert des Zählwertes empfängt.
  7. Vorrichtung gemäß einem der Ansprüche 1 bis 6, bei der der Zähler (140) den Zählwert auf einer periodischen Basis an die Datenbenutzungsbereitstellungsvorrichtung (150) liefert.
  8. Vorrichtung gemäß einem der Ansprüche 1 bis 6, bei der die Benutzungsdatenbereitstellungsvorrichtung (150) den Zähler abfragt, um den Zählwert zu erhalten.
  9. Vorrichtung gemäß einem der Ansprüche 1 bis 8, die ferner eine Schnittstelle (160) aufweist, die die Datenbenutzungsbereitstellungsvorrichtung (150) mit einem externen Netz koppelt, wobei die Schnittstelle (160) zum Bereitstellen von Prozessornutzungsdaten an das externe Netz verwendet wird.
  10. Vorrichtung gemäß einem der Ansprüche 1 bis 9, die ferner eine Mehrzahl von Prozessoren aufweist, wobei jeder der Mehrzahl von Prozessoren einen zugeordneten Zustandsindikator und einen zugeordneten Zähler auf weist, wodurch sich der zugeordnete Zustandsindikator und der zugeordnete Zähler kombinieren, um einen Zählwert für ihren jeweiligen Prozessor zu liefern.
  11. Vorrichtung gemäß Anspruch 10, bei der die Datenbenutzungsbereitstellungsvorrichtung (150) einen nichtflüchtigen Zählwert für jeden der Mehrzahl von Prozessoren beibehält.
  12. Vorrichtung gemäß Anspruch 10 oder 11, bei der die Mehrzahl von Prozessoren in einer oder mehreren Zellen angeordnet sind.
  13. Hardwarebasiertes Verfahren (600) zum Messen einer Prozessornutzung in einem Computersystem, das eine Mehrzahl von Prozessoren (110) aufweist, wobei das Verfahren folgende Schritte aufweist: Bestimmen (650), wann einer der Mehrzahl von Prozessoren besetzt ist; Liefern einer Besetzt-Anzeige an einen Zähler (140), der einem besetzten Prozessor zugeordnet ist; Empfangen eines Maßes einer Computersystemzeit an dem Zähler; Inkrementieren eines Zählwertes in dem Zähler (140) basierend auf der bereitgestellten Besetzt-Anzeige und einer Größe einer Computersystemzeit, die der Prozessor als besetzt bestimmt ist; und Beibehalten des Zählwertes.
  14. Verfahren gemäß Anspruch 13, das ferner folgenden Schritt aufweist: Reinitialisieren des Zählwertes in dem Zähler (140) unter Verwendung des beibehaltenen Wertes des Zählwertes, wenn der Prozessor eingeschaltet wird.
  15. Verfahren gemäß Anspruch 13 oder 14, bei dem das Beibehalten des Zählwertes folgende Schritte aufweist: Aktualisieren eines gegenwärtigen Wertes des Zählwertes von dem Zähler (140) in einer Benutzungsdatenbereitstellungsvorrichtung (150); und Speichern des aktualisierten gegenwärtigen Zählwertes.
  16. Verfahren gemäß Anspruch 15, bei dem das Aktualisieren des gegenwärtigen Zählwertes ein periodisches Empfangen des gegenwärtigen Zählwertes von dem Zähler (140) aufweist.
  17. Verfahren gemäß Anspruch 15, bei dem das Aktualisieren des gegenwärtigen Zählwerts ein Abfragen des Zählers (140) aufweist.
  18. Vorrichtung, die eine hardwarebasierte Nutzungsmessung zentraler Prozessoreinheiten (CPUs) in einem Computersystem liefert, mit folgenden Merkmalen: einer Mehrzahl von CPUs, wobei die Mehrzahl von CPUs in einer oder mehreren Zellen angeordnet sind; für jede Zelle, einer Einrichtung zum Messen einer Computersystemzeit; und für jede der Mehrzahl von CPUs: einer Einrichtung zum Bestimmen, wann eine CPU besetzt ist, einer Einrichtung zum Bereistellen einer Anzeige, wenn die CPU besetzt ist, einer Einrichtung zum Empfangen einer Anzeige und eines Maßes einer Computersystemzeit, einer Einrichtung zum Kombinieren der Anzeige und des Maßes der Computersystemzeit, um einen Zählwert zu erzeugen, der eine CPU-Nutzung anzeigt, und einer Einrichtung zum Beibehalten des Zählwertes.
  19. Vorrichtung gemäß Anspruch 18, die ferner eine Einrichtung zum Reinitialisieren des Zählwertes auf ein Einschalten der CPU hin aufweist.
  20. Vorrichtung gemäß Anspruch 18 oder 19, die ferner eine Einrichtung zum Berichten eines CPU-Nutzungswertes an ein Netz außerhalb des Computersystems aufweist.
DE10318622A 2002-07-23 2003-04-24 Hardwarebasierte Nutzungsmessung Ceased DE10318622A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/200,175 2002-07-23
US10/200,175 US6816809B2 (en) 2002-07-23 2002-07-23 Hardware based utilization metering

Publications (1)

Publication Number Publication Date
DE10318622A1 true DE10318622A1 (de) 2004-02-26

Family

ID=27765817

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10318622A Ceased DE10318622A1 (de) 2002-07-23 2003-04-24 Hardwarebasierte Nutzungsmessung

Country Status (4)

Country Link
US (2) US6816809B2 (de)
JP (1) JP2004054932A (de)
DE (1) DE10318622A1 (de)
GB (1) GB2393292B (de)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103574B1 (en) * 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
US7694164B2 (en) * 2002-09-20 2010-04-06 Intel Corporation Operating system-independent method and system of determining CPU utilization
US7961723B2 (en) 2002-10-08 2011-06-14 Netlogic Microsystems, Inc. Advanced processor with mechanism for enforcing ordering between information sent on two independent networks
US7627721B2 (en) * 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
US8037224B2 (en) 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US20050033831A1 (en) * 2002-10-08 2005-02-10 Abbas Rashid Advanced processor with a thread aware return address stack optimally used across active threads
US7984268B2 (en) * 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US8478811B2 (en) * 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US8176298B2 (en) 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US20050033889A1 (en) * 2002-10-08 2005-02-10 Hass David T. Advanced processor with interrupt delivery mechanism for multi-threaded multi-CPU system on a chip
US9088474B2 (en) * 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US7924828B2 (en) * 2002-10-08 2011-04-12 Netlogic Microsystems, Inc. Advanced processor with mechanism for fast packet queuing operations
US7461215B2 (en) * 2002-10-08 2008-12-02 Rmi Corporation Advanced processor with implementation of memory ordering on a ring based data movement network
US8015567B2 (en) 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
US20050044324A1 (en) * 2002-10-08 2005-02-24 Abbas Rashid Advanced processor with mechanism for maximizing resource usage in an in-order pipeline with multiple threads
US7334086B2 (en) 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US7043649B2 (en) * 2002-11-20 2006-05-09 Portalplayer, Inc. System clock power management for chips with multiple processing modules
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7146514B2 (en) * 2003-07-23 2006-12-05 Intel Corporation Determining target operating frequencies for a multiprocessor system
AU2004277167A1 (en) * 2003-09-22 2005-04-07 Kim Hyeung-Yun Methods for monitoring structural health conditions
US20050071688A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation Hardware CPU utilization meter for a microprocessor
US7617488B2 (en) * 2003-12-30 2009-11-10 Intel Corporation Method and apparatus and determining processor utilization
US7356678B2 (en) * 2004-01-12 2008-04-08 Hewlett-Packard Development Company, L.P. Security measures in a partitionable computing system
US20060242406A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US8347078B2 (en) * 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US20060089917A1 (en) * 2004-10-22 2006-04-27 Microsoft Corporation License synchronization
US20060165005A1 (en) * 2004-11-15 2006-07-27 Microsoft Corporation Business method for pay-as-you-go computer and dynamic differential pricing
US8176564B2 (en) 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US7610631B2 (en) * 2004-11-15 2009-10-27 Alexander Frank Method and apparatus for provisioning software
US20060106920A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Method and apparatus for dynamically activating/deactivating an operating system
US8464348B2 (en) * 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) * 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US20060265758A1 (en) * 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US8353046B2 (en) * 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
US7539647B2 (en) * 2005-08-25 2009-05-26 Microsoft Corporation Using power state to enforce software metering state
US20070118481A1 (en) * 2005-11-22 2007-05-24 Erik Bostrom Method and apparatus for monitoring software usage
US7698490B2 (en) * 2005-12-21 2010-04-13 Nvidia Corporation Passive USB power configuration switching
JP4911984B2 (ja) * 2006-02-08 2012-04-04 東京エレクトロン株式会社 ガス供給装置,基板処理装置,ガス供給方法及びシャワーヘッド
US7414550B1 (en) 2006-06-30 2008-08-19 Nvidia Corporation Methods and systems for sample rate conversion and sample clock synchronization
DE602007000755D1 (de) * 2006-07-26 2009-05-07 Magix Ag Einzel-Track Last Anzeige
US20080077868A1 (en) * 2006-09-22 2008-03-27 Bartucca Francis M System and Method for Visually Representing Resource Usage in a Multi-Node Data Processing System
US7925901B2 (en) * 2007-03-15 2011-04-12 International Business Machines Corporation Method and system for estimating processor utilization from power measurements
US7814301B2 (en) * 2007-04-11 2010-10-12 Hewlett-Packard Development Company, L.P. Clock architecture for multi-processor systems
US9209792B1 (en) 2007-08-15 2015-12-08 Nvidia Corporation Clock selection system and method
US7643964B2 (en) * 2007-08-21 2010-01-05 Texas Instruments Incorporated Method, system and apparatus for measuring an idle value of a central processing unit
US20090094455A1 (en) * 2007-10-09 2009-04-09 Microsoft Corporation Frequency Managed Performance
US7904287B2 (en) * 2007-11-13 2011-03-08 International Business Machines Corporation Method and system for real-time prediction of power usage for a change to another performance state
US8327173B2 (en) * 2007-12-17 2012-12-04 Nvidia Corporation Integrated circuit device core power down independent of peripheral device operation
GB2454599B (en) * 2008-01-15 2012-03-14 Ibm Method and apparatus for utilization and/or throughput measurement of a hardware device
US9596324B2 (en) * 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
US9411390B2 (en) 2008-02-11 2016-08-09 Nvidia Corporation Integrated circuit device having power domains and partitions based on use case power optimization
US9423846B2 (en) 2008-04-10 2016-08-23 Nvidia Corporation Powered ring to maintain IO state independent of the core of an integrated circuit device
US8762759B2 (en) 2008-04-10 2014-06-24 Nvidia Corporation Responding to interrupts while in a reduced power state
EP2141643A1 (de) * 2008-07-04 2010-01-06 Koninklijke KPN N.V. Durch Prozessornutzung gesteuerte Softwareverwendung
US8332861B1 (en) * 2008-10-31 2012-12-11 Hewlett-Packard Development Company, L.P. Virtualized temporary instant capacity
US8250395B2 (en) * 2009-11-12 2012-08-21 International Business Machines Corporation Dynamic voltage and frequency scaling (DVFS) control for simultaneous multi-threading (SMT) processors
US9032411B2 (en) * 2009-12-25 2015-05-12 International Business Machines Corporation Logical extended map to demonstrate core activity including L2 and L3 cache hit and miss ratio
US20130096878A1 (en) 2010-06-24 2013-04-18 Valtion Teknillinen Tutkimuskeskus State inference in a heterogeneous system
US8527801B2 (en) 2010-06-30 2013-09-03 International Business Machines Corporation Performance control of frequency-adapting processors by voltage domain adjustment
CA2747484C (en) * 2010-07-29 2016-08-16 Accenture Global Services Limited Time tracking technology
US8917733B2 (en) 2011-12-06 2014-12-23 Qualcomm Incorporated Using wireless wide area network protocol information for managing a performance level of a processor
CN102662822B (zh) * 2012-04-26 2015-02-04 华为技术有限公司 负载监控装置和方法
US9395799B2 (en) 2012-08-09 2016-07-19 Nvidia Corporation Power management techniques for USB interfaces
US9471395B2 (en) 2012-08-23 2016-10-18 Nvidia Corporation Processor cluster migration techniques
US8947137B2 (en) 2012-09-05 2015-02-03 Nvidia Corporation Core voltage reset systems and methods with wide noise margin
WO2014175883A1 (en) * 2013-04-24 2014-10-30 Empire Technology Development, Llc Datacenter managed thread and multi-processing support
US9830242B2 (en) * 2015-01-14 2017-11-28 Mediatek Inc. Loading calculation method and loading calculation system for processor in electronic device
US9864667B2 (en) * 2015-09-25 2018-01-09 Intel Corporation Techniques for flexible and dynamic frequency-related telemetry
US10360128B2 (en) * 2017-01-23 2019-07-23 American Express Travel Related Services Company, Inc. System and method for dynamic scaling of concurrent processing threads
US11494280B2 (en) 2020-04-09 2022-11-08 Hewlett Packard Enterprise Development Lp Consumption monitoring device and related method for networked resources
CN111552614A (zh) * 2020-04-28 2020-08-18 杭州迪普科技股份有限公司 一种cpu使用率的统计方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4511960A (en) * 1982-01-15 1985-04-16 Honeywell Information Systems Inc. Data processing system auto address development logic for multiword fetch
US4503495A (en) * 1982-01-15 1985-03-05 Honeywell Information Systems Inc. Data processing system common bus utilization detection logic
JPS6024655A (ja) 1983-07-19 1985-02-07 Nec Corp 中央処理装置使用率測定装置
US4924428A (en) * 1987-12-08 1990-05-08 Northern Telecom Limited Real time digital signal processor idle indicator
JPH0816877B2 (ja) * 1991-06-10 1996-02-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システム用資源データの実時間捕獲及び減縮方法及びシステム
US5654905A (en) 1995-09-15 1997-08-05 Ast Research, Inc. System for tracking computer usage time
DE19704742A1 (de) * 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
US5872913A (en) * 1997-03-07 1999-02-16 International Business Machines Corporation System and method for low overhead, high precision performance measurements using state transistions
US7051330B1 (en) * 2000-11-21 2006-05-23 Microsoft Corporation Generic application server and method of operation therefor

Also Published As

Publication number Publication date
GB2393292B (en) 2005-11-30
GB2393292A (en) 2004-03-24
US6816809B2 (en) 2004-11-09
US8463578B2 (en) 2013-06-11
JP2004054932A (ja) 2004-02-19
GB0316794D0 (en) 2003-08-20
US20040019456A1 (en) 2004-01-29
US20040249601A1 (en) 2004-12-09

Similar Documents

Publication Publication Date Title
DE10318622A1 (de) Hardwarebasierte Nutzungsmessung
EP0333123B1 (de) Modular strukturiertes ISDN-Kommunikationssystem
DE60122780T2 (de) Betriebssystemunabhängiges verfahren und system zur bestimmung der cpu-ausnützung
DE60113780T2 (de) Verfahren und Vorrichtung zum Verfolgen von Hardwarezustanden mit dynamischen rekonfigurierbaren Testschaltungen
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE69735575T2 (de) Verfahren und Vorrichtung zur Unterbrechungsverteilung in einem skalierbaren symmetrischen Mehrprozessorsystem ohne die Busbreite oder das Busprotokoll zu verändern
DE60319125T2 (de) Integrierte schaltung mit mehreren betriebsarten
DE102007016060A1 (de) Computerarbeitslastneuverteilung
DE10333817A1 (de) Emulationsschnittstellensystem
DE4227345A1 (de) Cachescheduler
DE102005055000A1 (de) Modulares Avioniksystem eines Flugzeuges
DE102004057021A1 (de) Verfahren und System zum Testen eines Computersystems durch ein Anlegen einer Last
DE19617976A1 (de) Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
DE69816714T2 (de) Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen
DE102014119155A1 (de) System und Verfahren zum Adaptiven Spannung/Frequenz-Skalieren
DE112013006588T5 (de) Verwaltungssystem zum Verwalten eines Computersystems und Verwaltungsverfahren hierfür
DE69822364T2 (de) Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen
DE102009004726A1 (de) Systeme und Verfahren zum Verfolgen von Befehlszeigern und Datenzugriffen
DE102010003538A1 (de) Verfahren zur Überprüfung von Signal- und Modulaktivitäten in einem Timermodul und Timermodul
DE102018130166A1 (de) Latenzmessungstechnologie
WO2004114143A2 (de) Clusteranordnung
DE102013211266B4 (de) Aufrechterhalten der Bandbreiten-Servicequalität einer Hardware-Ressource über einen Hardware-Zähler
CN108763065A (zh) 一种移动应用灰度发布系统及方法
DE10205762A1 (de) Verfahren und Struktur zur Charakterisierung von Bayesianischen Belief-Netzwerken
DE112017005778T5 (de) Mikrocontroller-energie-profiler

Legal Events

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

Ipc: G06F 11/34 AFI20051017BHDE

8131 Rejection