-
HINTERGRUND DER ERFINDUNG
-
Einige
Computersysteme können adaptive Power-Management-Richtlinien
verwenden, um Leistungs- und Energieverbrauch zu regeln. Die Regelung
von Leistung und Energie wird mittels dynamischer Spannungs- und
Frequenzskalierung (dynamic voltage and frequency scaling, DVFS)
durchgeführt. Bei diesem Beispiel von Computersystemen
kann der Prozessor bei abnehmender Auslastung des Hauptprozessors
(central prozessor unit, CPU) auf einen niedrigeren Leistungszustand übergehen,
um Energie zu sparen. Steigt die Auslastung der CPU, kann der Prozessor
auf einen höheren Leistungszustand übergehen und
mehr Energie verbrauchen. Ein Industriestandard-Interface, das Advanced
Configuration and Power Interface (ACPI) genannt wird, ist zum Zwecke
der Regelung des Frequenz-/Spannungszustands des Prozessors definiert.
-
In
der ACPI-Terminologie wird ein Frequenz-/Spannungszustand Leistungszustand
(P-Zustand) genannt. Herkömmliche Implementierungen von
P-Zustand-Regelung basieren auf Anforderung. Bei bereits bestehenden
ACPI-basierten Plattformen kann ein Betriebssystem (operating system,
OS) eine Tabelle mit Leistungszustand-(P-Zustand)-Informationen
laden. Eine Betriebsfrequenz des Prozessors ist mit entsprechenden Informationen
bezüglich Regelung, Zustand und Latenz dargestellt. Außerdem
kann das OS einen Auslastungswert für jeden Zustand zum Übergang
auf den nächsten P-Zustand nach oben oder unten aufweisen.
Das OS kann die P-Zustände der CPU regeln, indem es direkt
den errechneten P-Zustand zu jeder beliebigen Zeit regelt.
-
Beispielsweise
wird ein Wertebereich vorher festgelegter P-Zustände bereitgestellt,
um den Energieverbrauch des Prozessors zu regeln. Nimmt die Auslastung
der CPU ab, wird der Prozessor auf einen niedrigeren vorher festgelegten
P-Zustand übergeführt, um Energie zu sparen. Steigt
die Auslastung der CPU, wird der Prozessor auf einen höheren
vorher festgelegten P-Zustand übergeführt und
kann mehr Energie verbrauchen. Bei bereits bestehenden Betriebssystemen
basiert die Zielauswahl an P-Zuständen auf der Kombination von
Prozessorauslastung und dem letzten ausgewählten P-Zustand.
-
Das
OS lenkt sein Augenmerk jedoch mehr auf Benutzer-Voreinstellungen,
Applikationsart (wie beispielsweise Echtzeitanforderungen, optische
Qualitätsansprüche, etc.) und reagiert nicht schnell
genug auf Änderungen bei der Nutzlast des Prozessors, die
durch die Hardware und eine Mikroarchitektur des Prozessors verursacht
werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Der
als die Erfindung betrachtete Gegenstand wird insbesondere im Schlussteil
der Beschreibung dargelegt und klar beansprucht. Die Erfindung wird
jedoch sowohl in Hinsicht auf Organisation als auch Betriebsverfahren,
zusammen mit Aufgaben, Merkmalen und Vorteilen davon unter Bezugnahme
auf die folgende ausführliche Beschreibung am besten verstanden,
wenn sie mit den begleitenden Zeichnungen gelesen wird, in denen:
-
1 eine
schematische Darstellung eines Blockdiagrammes eines Computersystems
gemäß den Ausführungsformen der vorliegenden
Erfindung ist;
-
2 eine
schematische Darstellung eines Blockdiagrammes eines Teiles einer
Verarbeitungsplattform gemäß einigen beispielhaften
Ausführungsformen der Erfindung ist;
-
3 eine
Darstellung eines Zeitdiagrammes ist, das Veränderungen
bei den P-Zustand-Werten über die Zeit zeigt, gemäß einigen
beispielhaften Ausführungsformen der Erfindung;
-
4 eine
Darstellung eines Ablaufdiagrammes eines Verfahrens zur Einstellung
eines oberen P-Zustand-Wertes innerhalb eines Bereiches von P-Zustand-Werten
gemäß einigen beispielhaften Ausführungsformen
der Erfindung ist; und
-
5 eine
Darstellung eines Ablaufdiagrammes eines Verfahrens zur Einstellung
eines unteren P-Zustand-Wertes innerhalb eines Bereiches von P-Zustand-Werten
gemäß einigen beispielhaften Ausführungsformen
ist.
-
Es
wird davon ausgegangen, dass aufgrund einer einfacheren und klareren
Darstellung, in den Figuren gezeigte Elemente nicht notwendigerweise
maßstabsgetreu gezeichnet wurden. Beispielsweise können die
Abmessungen einiger der Elemente im Verhältnis zu anderen
Elementen zur Verdeutlichung übermäßig groß dargestellt
sein. Wo es zweckmäßig erschien, können
weiter Bezugszeichen in den Figuren wiederholt sein, um entsprechende
oder analoge Elemente zu kennzeichnen.
-
AUSFÜHRLICHE BESCHREIBUNG DER
ERFINDUNG
-
In
der folgenden ausführlichen Beschreibung werden zahlreiche
spezifische Details angeführt, um ein gründliches
Verständnis der Erfindung bereitzustellen. Es ist jedoch
für einen Fachmann verständlich, dass die vorliegende
Erfindung ohne diese spezifischen Details betrieben werden kann.
In anderen Fällen wurden wohlbekannte Verfahren, Verfahrensweisen,
Komponenten und Schaltungen nicht im Detail beschrieben, um die vorliegende
Erfindung nicht in den Hintergrund rücken zu lassen.
-
Einige
Teile der ausführlichen Beschreibung, die folgen, sind
in Form von Algorithmen und symbolischen Darstellungen von Operationen
auf Datenbits oder binären digitalen Signalen innerhalb
eines Computerspeichers dargestellt. Diese algorithmischen Beschreibungen
und Darstellungen können die von Fachleuten im Bereich
der Datenverarbeitung verwendeten Techniken sein, um den Inhalt
ihrer Arbeit anderen Fachleuten mitzuteilen.
-
Soweit
nicht ausdrücklich anderweitig festgelegt, wird, wie aus
den folgenden Erörterungen offensichtlich, davon ausgegangen,
dass sich in der gesamten Beschreibung Erörterungen, die
Begriffe wie beispielsweise „verarbeiten”, „berechnen”, „ermitteln”, „bestimmen” oder
dergleichen verwenden, auf die Aktion und/oder Prozesse eines Computers
oder Computersystems oder eines ähnlichen elektronischen
EDV-Geräts beziehen, die Daten, als physikalische, wie
beispielsweise elektronische Größen innerhalb
der Register und/oder Speicher des EDV-Geräts in andere
Daten, die ebenso als physikalische Größen innerhalb
der Speicher, Register oder anderer solcher Informationsspeicher-, Übertragungs-
oder Anzeigegeräte des EDV-Geräts angezeigt werden,
manipulieren und/oder transformieren. Zusätzlich kann der
Begriff „Vielzahl” in der gesamten Beschreibung
verwendet werden, um zwei oder mehr Komponenten, Einheiten, Elemente,
Parameter und dergleichen zu beschreiben. Beispielsweise beschreibt „Vielzahl
an Befehlen” zwei oder mehr Befehle.
-
Es
ist selbstverständlich, dass die vorliegende Erfindung
bei einer Vielzahl von Anmeldungen verwendet werden kann. Obwohl
die vorliegende Erfindung in dieser Hinsicht nicht beschränkt
ist, können die hierin offenbarten Schaltungen und Techniken,
die durch Blockdiagramme, Ablaufdiagramme, Taktdiagramme etc. veranschaulicht
sein können, in vielen Vorrichtungen, wie beispielsweise
Computersystemen, Prozessoren, CPUs oder dergleichen, verwendet
werden. Prozessoren, die im Umfang der vorliegenden Erfindung eingeschlossen
sein sollen, beinhalten, lediglich als Beispiel, einen RISC-Rechner
(reduced instruction set computer), einen Prozessor mit Pipeline,
einen CISC-Rechner (complex instruction set computer), einen Mehrkernprozessor,
eine Computerplattform und dergleichen.
-
Einige
Ausführungsformen der Erfindung können beispielsweise
unter Verwendung eines maschinenlesbaren Mediums oder Artikels implementiert
werden, das einen Befehl oder einen Satz an Befehlen speichern kann,
die, wenn sie von einer Maschine ausgeführt werden (beispielsweise
von einem Prozessor und/oder von anderen geeigneten Maschinen),
dafür sorgen, dass die Maschine ein Verfahren und/oder
Operationen in Übereinstimmung mit Ausführungsformen
der Erfindung ausführt. Solche Maschinen können
beispielsweise jede geeignete Verarbeitungsplattform, EDV-Plattform,
jedes EDV-Gerät, Verarbeitungsgerät, Computersystem,
Verarbeitungssystem, jeden Computer, Prozessor oder dergleichen
beinhalten und können unter Verwendung jeder geeigneten
Kombination von Hardware und/oder Software implementiert sein.
-
Das
maschinenlesbare Medium oder der Artikel kann beispielsweise jede
geeignete Art von Speichereinheit, Speichergerät, Speicherartikel
und/oder Speichermedium beinhalten, beispielsweise Speicher, Wechseldatenträger
oder nicht austauschbarer Datenträger, löschbarer
oder nicht löschbarer Datenträger, beschreibbarer
oder nicht beschreibbarer Datenträger, digitaler oder analoger
Datenträger, Festplatte, Diskette, CD-ROM (Compact Disk
Read Only Memory), CD-R (Compact Disk Recordable), CD-RW (Compact
Disk Rewriteable), optische Disk, magnetischer Datenträger,
verschiedene Arten von DVDs (Digital Versatile Disks), ein Band,
eine Kassette oder dergleichen.
-
Die
Befehle können jede geeignete Art von Code beinhalten,
beispielsweise Quellcode, kompilierter Code, interpretierter Code,
ausführbarer Code, statischer Code, dynamischer Code oder
dergleichen und können unter Verwendung jeder geeigneten
höheren, maschinenorientierten, objektorientierten, visuellen,
kompilierten und/oder interpretierten Programmiersprache, z. B.
C, C++, Java, BASIC, Pascal, Fortran, Cobol, Assemblersprache, Maschinencode
oder dergleichen implementiert werden.
-
Verschiedene
Ausführungsformen stellen Techniken bereit, die die Prozessorleistung
dynamisch anpassen können. Beispielsweise können
solche Techniken Prozessoreffizienz ermitteln und können
die Leistung des Prozessors (z. B. seine Geschwindigkeit) anpassen.
Solche Anpassungen können eine Änderung des Betriebszustandes
des Prozessors (z. B. seines P-Zustands) beinhalten.
-
Beispielsweise
können Techniken, wenn sie feststellen, dass der Prozessor
auf den Speicher (memory bounded) oder auf ein anderes Gerät
wartet (wie beispielsweise eine Grafikkarte), die Operation des
Prozessors anpassen, sodass er langsamer läuft. Als Ergebnis
wird Energie gespart. Im Gegensatz dazu kann der Prozessor, wenn
festgestellt wird, dass er durch solche Beschränkungen
nicht mehr eingeschränkt ist, die gesparte Energie in die
Bereitstellung verbesserter Leistung (z. B. schnellere Operation)
durch Betrieb auf einer höheren Frequenz reinvestieren.
Solche Anpassungen bei dem Prozessorbetrieb können verschiedene
Techniken beinhalten. Beispielhafte Techniken beinhalten das Ein-
und Ausschalten des Taktsignals des Prozessors und/oder das Ändern
der Betriebsfrequenz des Prozessors mit oder ohne Spannungsänderung.
-
Bei
Ausführungsformen können solche Techniken innerhalb
des Prozessors implementiert werden. Bei weiteren Ausführungsformen
jedoch können Implementierungen externe Software und/oder
externe Hardware beinhalten.
-
Ausführungsformen
können ein oder mehrere Elemente beinhalten. Ein Element
kann jede Strukturanordnung zur Ausführung bestimmter Operationen
umfassen. Jedes Element kann als Hardware, Software oder jeder Kombination
davon, wie für einen vorgegebenen Satz an Designparametern
oder Leistungsbegrenzungen gewünscht, implementiert werden.
Obwohl Ausführungsformen mit speziellen Elementen in bestimmten
Anordnungen als Beispiel beschrieben werden können, können
Ausführungsformen andere Kombinationen von Elementen in
wechselnden Anordnungen beinhalten.
-
Es
ist wichtig zu beachten, dass jeglicher Verweis auf „eine
Ausführungsform” bedeutet, dass ein bestimmtes
Merkmal, eine Struktur oder Charakteristik, die in Verbindung mit
der Ausführungsform beschrieben wird, in mindestens einer
Ausführungsform enthalten ist. Die Verwendung des Ausdrucks „in
einer Ausführungsform” an verschiedenen Stellen
in der Beschreibung bezieht sich nicht notwendigerweise immer auf
die gleiche Ausführungsform.
-
Wendet
man sich 1 zu, ist ein Blockdiagramm
eines Computersystems 100 gemäß einer
beispielhaften Ausführungsform der Erfindung gezeigt. Obwohl
der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt
ist, kann Computersystem 100 ein Arbeitsplatzrechner (personal
computer, PC), ein PDA (personal digital assistant), ein Internetgerät,
ein Mobiltelefon, ein Laptop, eine mobile Einheit, ein drahtloses
Kommunikationsgerät und/oder jedes andere EDV-Gerät
sein.
-
Gemäß beispielhaften
Ausführungsformen der vorliegenden Erfindung kann Computersystem 100 eine
Haupt-Recheneinheit 110 beinhalten, die von einem Netzteil 120 angetrieben
wird. Die Haupt-Recheneinheit 110 kann eine Verarbeitungsplattform 130 beinhalten,
die durch eine Systemkopplungsstruktur 135 elektrisch an
ein Speichergerät 140 und eine oder mehr Schnittstellenschaltungen 150 gekoppelt
ist. Beispielsweise kann auf Wunsch die Systemkopplungsstruktur 135 ein
Adress-/Datenbus sein. Es ist selbstverständlich, dass
Kopplungsstrukturen neben Bussen verwendet werden können,
um Prozessor 130 mit Speichergerät 140 zu
verbinden. Beispielsweise können eine oder mehr festverschaltete
Leitungen und/oder ein Koppelfeld verwendet werden, um Verarbeitungsplattform 130 mit
Speichergerät 140 zu verbinden.
-
Verarbeitungsplattform 130 kann
ein Betriebssystem 139 und eine CPU 136 beinhalten,
die einen oder mehrere Kerne 137 beinhaltet. Betriebssystem 139 kann
auf Wunsch ein Power-Management-Modul 134 ausführen.
Zusätzlich kann Verarbeitungsplattform 130 einen
Cache-Speicher (nicht gezeigt) beinhalten, wie beispielsweise einen
statischen Direktzugriffsspeicher (static random access memory,
SRAM) und dergleichen, oder jede andere Art eines internen integrierten
Speichers. Speichergerät 140 kann einen dynamischen
Direktzugriffsspeicher (dynamic random access memory, DRAM), einen
Permanentspeicher oder dergleichen beinhalten. Bei einem Beispiel
kann Speichergerät 140 ein Softwareprogramm speichern,
das auf Wunsch von Verarbeitungsplattform 130 ausgeführt
werden kann.
-
Obwohl
der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt
ist, kann/können Schnittstellenschaltung(en) 150 eine
Ethernet-Schnittstelle und/oder eine universelle serielle Bus-(USB)-Schnittstelle
und/oder dergleichen beinhalten. Bei einigen beispielhaften Ausführungsformen
der Erfindung kann ein Eingabegerät oder mehrere Eingabegeräte 160 mit
Schnittstellenschaltungen 150 verbunden sein, um Daten
und Befehle in die Haupt-Recheneinheit 110 einzugeben.
Beispielsweise können Eingabegeräte 160 eine
Tastatur, Maus, Touchscreen, Trackpad, Trackball, Isopoint, ein
Spracherkennungssystem und/oder dergleichen beinhalten. Die Ausgabegeräte 170 können
betriebsbereit an Haupt-Recheneinheit 110 über
eine oder mehrere Schnittstellenschaltungen 150 gekoppelt
sein und können auf Wunsch ein oder mehrere Displays, Drucker,
Lautsprecherboxen und/oder andere Ausgabegeräte beinhalten.
Beispielsweise kann eines der Ausgabegeräte ein Display
sein. Das Display kann ein Röhrenmonitor (cathode ray tube,
CRT), ein Flüssigkristalldisplay (liquid crystal display,
LCD) oder jede andere Art Display sein.
-
Gemäß einigen
Ausführungsformen der Erfindung kann Computersystem 100 ein
oder mehrere Speichergeräte 180 beinhalten. Beispielsweise
kann Computersystem 100 auf Wunsch ein oder mehrere Festplatten,
ein oder mehrere CD-Laufwerke (compact disk drives), ein oder mehrere
DVD-Laufwerke (digital versatile disk drives) und/oder andere Eingabe/Ausgabe-(I/O – Input/Output)-Geräte
für Computerspeichermedien beinhalten.
-
Außerdem
kann Computersystem 100 Daten mit anderen Geräten über
eine Verbindung zu einem Netzwerk 190 austauschen. Die
Netzwerkverbindung kann jede Art Netzwerkverbindung beinhalten,
wie beispielsweise eine Ethernet-Verbindung, eine DSL-(digital subscriber
line)-Leitung, eine Telefonleitung, ein Koaxialkabel etc. Netzwerk 190 kann
jede Art von Netzwerk sein, wie beispielsweise das Internet, ein
Telefonnetz, ein Kabelnetz, ein Drahtlosnetzwerk, wie beispielsweise
ein dem IEEE Standard 802.11, 1999 entsprechendes Netzwerk,
einschließlich einem oder mehreren IEEE 802.11 verwandten
Standards, IEEE 802.16 Standard für drahtlose
Stadtbereichsnetze und/oder dergleichen.
-
Gemäß einer
beispielhaften Ausführungsform der Erfindung kann Verarbeitungsplattform 130 in
einem variablen Bereich von Betriebsfrequenzen arbeiten. Es ist
selbstverständlich, dass der variable Bereich zwei oder
mehr Betriebsfrequenzen beinhalten kann. Eine Auswahl der Betriebsfrequenz
von Verarbeitungsplattform 130 kann auf Wunsch basierend
auf der Auslastung von Verarbeitungsplattform 130, die über
ein Zeitfenster beobachtet wurde, von einem Power-Management-Modul 134 durchgeführt
werden. P-Zustand-Controller 132 kann dem Power-Management-Modul 134 einen
Ziel-P-Zustand bereitstellen. Power-Management-Modul 134 kann
einen Zielpunkt für den Energieverbrauch einstellen und
kann die Betriebsfrequenz und/oder Spannung der Verarbeitungsplattform
gemäß der ausgewählten Eingabe in dem
Ziel-P-Zustand modifizieren.
-
Bei
einigen Ausführungsformen der Erfindung können
P-Zustand-Werte auf Wunsch von einem BIOS (basic input output system) 145 bereitgestellt
werden. Das Power-Management-Modul 134 kann den geeigneten
P-Zustand exakt auswählen, um den Leistungsbedarf des Computersystems 100 zu
decken. Es ist selbstverständlich, dass P-Zustand-Controller 132 und/oder
Power-Management-Modul 134 mittels Hardware, Software und/oder
mittels jeder Kombination von Hardware und/oder Software implementiert
werden kann.
-
Gemäß Ausführungsformen
der Erfindung kann ein Power-Management-Modul 134 einen
Energieverbrauch von zwei oder mehr Kernen 137 unter Bestimmung
eines Bereiches von P-Zustand-Werten regeln. Um beispielsweise den
Wertebereich einzustellen, kann Power-Management-Modul 134 eine
obere P-Zustand-Grenze und eine untere P-Zustand-Grenze einstellen.
Beispielsweise kann die obere P-Zustand-Grenze basierend auf einem
Aktivitätsratenwert einer Verarbeitungsplattform bestimmt
werden, und die untere P-Zustand-Grenze kann basierend auf einer
minimalen Anforderung des Betriebssystems zur Ausführung
von Aufgaben des Betriebssystems bestimmt werden. P-Zustand-Controller 132 kann
auf Wunsch P-Zustand-Werte innerhalb des Bereichs der unteren und
oberen Grenzen gemäß einer Power-Management-Richtlinie
variieren.
-
Gemäß beispielhaften
Ausführungsformen der Erfindung kann die untere P-Zustand-Grenze
als ein minimal erforderlicher P-Zustand definiert sein, der von
dem Betriebssystem benötigt wird, um seine Aufgaben auszuführen,
beispielsweise eine Minimalfrequenz, die erforderlich ist, um einige
Multimedia-Aktionen ohne visuelle Störung und/oder Beeinträchtigung
der Benutzerwahrnehmung auszuführen. Gemäß einer
weiteren beispielhaften Ausführungsform der Erfindung kann
eine Videodekodierung es erfordern, dass einige vorher definierte
Frames pro Sekunde erzeugt werden. Fällt die Leistung der
CPU unter die zur Erzeugung der vorher definierten Frames erforderlichen
Leistung und/oder zur Erzeugung des nächsten Time-Frames,
kann das Ergebnis ein entfallener Frame und eine visuelle Störung
sein, wodurch die untere Grenze des P-Zustand-Bereichs angepasst
werden kann, um diese Anforderung zu erfüllen, obwohl der
Umfang der vorliegenden Erfindung nicht auf dieses Beispiel beschränkt
ist.
-
Wendet
man sich 2 zu, ist ein Blockdiagramm
eines Teiles einer Verarbeitungsplattform 200 gemäß einer
beispielhaften Ausführungsform der Erfindung gezeigt. Obwohl
der Umfang der Erfindung in dieser Hinsicht nicht beschränkt
ist, kann der Teil von Verarbeitungsplattform 200 ein Betriebssystem
(OS) 205 beinhalten. Betriebssystem 205 kann ein
Power-Management-Modul 210, einen P-Zustand-Controller 220 und
ein Power-Management-Richtlinien-Modul 240 beinhalten.
Der Teil von Verarbeitungsplattform 200 kann weiter eine
CPU 225, die Kerne 1 ... N 230 beinhaltet, ein
Register 260, das einen Ausgleichsparameter beinhaltet, und
ein BIOS 245 beinhalten, das eine oder mehrere P-Zustand-Tabellen 250 beinhaltet,
obwohl es selbstverständlich ist, dass der Umfang der vorliegenden
Erfindung nicht auf diese beispielhafte Ausführungsform
der Erfindung beschränkt ist.
-
Gemäß dieser
beispielhaften Ausführungsform kann die P-Zustand-Tabelle
auf Wunsch P-Zustand-Werte und Betriebsfrequenzen der CPU 225 beinhalten.
Beispielsweise können die P-Zustand-Werte gemäß den
fließenden P-Zustände und Energiezustände
des Prozessors (C-Zustände) bestimmt werden.
- P0 – kann
der P-Zustand sein, bei dem ein Gerät oder ein Prozessor
seine maximale Leistungsfähigkeit verwenden kann und maximale
Energie verbrauchen kann.
- P1 – kann der P-Zustand sein, bei dem die Leistungsfähigkeit
des Gerätes oder der Verarbeitungsplattform unter sein
Maximum beschränkt sein und weniger als eine maximale Energie
verbrauchen kann.
- Pn – kann ein oder mehrere P-Zustände sein,
bei denen die Leistungsfähigkeit eines Gerätes
oder einer Verarbeitungsplattform auf seinem minimalen Niveau sein
kann und minimale Energie verbraucht wird, während ein
aktiver Zustand aufrechterhalten wird.
- C0 – kann der C-Zustand sein, bei dem die Verarbeitungsplattform
ihre Befehle ausführen kann.
- C1 – kann der C-Zustand sein, bei dem der Prozessor
die geringste Latenz aufweist, beispielsweise Hardwarelatenz. In
diesem Zustand kann die Latenz gering genug sein, dass Betriebssoftware
den Latenzaspekt des Zustands nicht in Betracht zieht, wenn sie
darüber entscheidet, ihn zu nutzen oder nicht.
- C2 – kann der C-Zustand sein, der gegenüber
dem C1-Zustand verbesserte Energieersparnis bietet. Beispielsweise
kann über die ACPI-Systemfirmware eine Worst-Case-Hardwarelatenz
für diesen Zustand bereitgestellt werden und die Betriebssoftware
kann diese Informationen verwenden, um zu bestimmen, wann der C1-Zustand
anstelle des C2-Zustandes verwendet werden soll.
- C3 – kann der C-Zustand sein, der gegenüber
den C1- und C2-Zuständen verbesserte Energieersparnis bietet. Über
die ACPI-Systemfirmware kann die Worst-Case-Hardwarelatenz für
diesen Zustand bereitgestellt werden und die Betriebssoftware kann
diese Informationen verwenden, um zu bestimmen, wann der C2-Zustand
anstelle des C3-Zustandes verwendet werden soll.
-
Gemäß beispielhaften
Ausführungsformen der Erfindung können die P-Zustand-Tabellen
230 die nachstehende
Tabelle beinhalten, z. B. Tabelle 1 für jeden Kern 1 ...
N der Verarbeitungsplattform
200.
P-Zustand | PSS-Frequenz | %
maximale Frequenz | Niveau
erhöhen | Niveau
senken |
P0 | 3001 | 100 | 101 | 98 |
P1 | 3000 | 99 | 98 | 84 |
P2 | 2666 | 88 | 85 | 73 |
P3 | 2333 | 77 | 74 | 62 |
P4 | 2000 | 66 | 63 | 0 |
Tabelle
1
-
Gemäß diesem
Beispiel kann Tabelle 1 eine Vielzahl wählbarer P-Zustände
(z. B. P0, P1 .... P4) beinhalten. Power-Management-Modul 210 kann
einen ausgewählten P-Zustand (z. B. P0, P1 ... P4) verwenden, um
eine gewünschte Betriebsfrequenz und eine gewünschte
Betriebsspannung auf die Kerne 1 ... N 230 unabhängig
und/oder getrennt einzustellen.
-
Obwohl
der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt
ist, kann Power-Management-Modul 210 und/oder P-Zustand-Controller 220 und/oder
Power-Management-Richtlinien-Modul 240 und/oder Register 260 mittels
Hardware, Software und jeder gewünschten Kombination von Hardware
und Software implementiert sein.
-
Gemäß einer
beispielhaften Ausführungsform der Erfindung kann Power-Management-Modul 210 einen
Energieverbrauch von zwei oder mehr Kernen 230 durch Einstellen
eines Bereiches von P-Zustand-Werten regeln. Beispielsweise kann
Power-Management-Modul 210 eine obere P-Zustand-Grenze
des Bereichs, beispielsweise P1, und eine untere P-Zustand-Grenze
des Bereich, beispielsweise P3, einstellen, wobei die obere P-Zustand-Grenze
auf einem Aktivitätsratenwert einer Verarbeitungsplattform
basieren kann und die untere P-Zustand-Grenze auf einer minimalen
Anforderung des Betriebssystems basieren kann, um Aufgaben des Betriebssystems
auszuführen. P-Zustand-Controller 220 kann P-Zustand-Werte
einstellen, beispielsweise Werte aus Tabelle 1, die innerhalb des
Bereichs liegen, der durch die unteren und oberen P-Zustand-Grenzen eingestellt
wurde, und auf Wunsch gemäß einer Power-Management-Richtlinie,
die durch ein Power-Management-Richtlinien-Modul eingestellt wird.
-
Gemäß dieser
beispielhaften Ausführungsform der Erfindung kann Register 260 einen
Ausgleichsparameter (nicht gezeigt) beinhalten. Power-Management-Richtlinien-Modul 240 kann
den Ausgleichsparameter aus dem Register hochladen und den P-Zustand-Wert
gemäß dem Ausgleichsparameter variieren. Der Ausgleichsparameter
kann verwendet werden, um zwischen einem gewünschten Leistungsparameter
und gewünschten Energieeffizienz-Parametern der CPU 225 auszugleichen.
-
Gemäß Ausführungsformen
der Erfindung kann der Ausgleichsparameter anzeigen, dass beispielsweise
ein Wert beinhaltet werden soll, der definiert, dass ein gewünschtes
Power-Management-Richtlinien-Modul 240 zwischen Verbrauch
an eine gewünschte Leistungsrichtlinie und eine energieeffiziente
Richtlinie ausgleicht, wenn eine Präferenz gewünscht
wird. Ein Wert 0 kann beispielsweise maximale Leistung anzeigen, während
ein Wert 16 und/oder jeder andere Wert maximale Energieersparnis
anzeigen kann. Jeder Zwischenwert kann ein Ausgleichen zwischen
der Energie und Leistung anzeigen. Beispielsweise kann ein Wert
7 gleiche Wichtigkeit bezüglich Energie und Leistung anzeigen,
obwohl der Umfang der vorliegenden Erfindung in dieser Hinsicht
nicht beschränkt ist.
-
Power-Management-Richtlinien-Modul 240 kann
Richtlinien gemäß der Prozessoraktivität
bereitstellen. Beispielsweise kann die Richtlinie beinhalten:
eine
Energieeffizienz-Richtlinie – diese Richtlinie kann einen
Offset gegenüber niedrigeren P-Zuständen bilden,
indem die P-Zustände ausgewählt werden, die für
die verbrauchte Gesamtenergie das beste Ergebnis bereitstellen,
um eine Aufgabe der CPU auszuführen. Beispielsweise kann
auf Wunsch ein energieeffizienter Betriebspunkt immer im niedrigstmöglichen
P-Zustand laufen.
eine Leistungsrichtlinie – diese
Richtlinie kann einen Offset gegenüber höheren
P-Zuständen bilden, wobei die Leistung maximiert wird,
während andere Beschränkungen, wie beispielsweise
Energie- und/oder thermale Beschränkungen, erfüllt
werden. Beispielsweise kann der höchste Leistungs-Betriebspunkt
im höchstmöglichen P-Zustand laufen.
eine
ausgeglichene oder dynamische Richtlinie – diese Richtlinie
kann eine gewichtete Mischung sowohl aus Energieeffizienz als auch
aus Leistung bereitstellen. Beispielsweise kann diese Richtlinie
einen P-Zwischenzustand zwischen einem maximalen und minimalen P-Zustand
auswählen. Dieser Wert kann fest sein oder auf Wunsch über
die Zeit zwischen Maximal- und Minimalwerten variabel sein.
-
Gemäß einigen
Ausführungsformen der Erfindung kann Power-Management-Richtlinien-Modul 240 einen
Energieverbrauch der CPU (z. B. CPU 225) überwachen,
kann einen Energieeffizienzwert berechnen und kann den P-Zustand-Wert
gemäß einem gewünschten Energieeffizienzwert
variieren. Beispielsweise kann Power-Management- Richtlinien-Modul 240 einen
gewünschten Leistungsparameter der CPU bestimmen und kann
den P-Zustand-Wert gemäß dem gewünschten
Leistungsparameter der CPU variieren, obwohl der Umfang der vorliegenden
Erfindung in dieser Hinsicht nicht beschränkt ist.
-
Außerdem
kann Power-Management-Modul 210 obere und untere Grenzwerte
um die obere P-Zustand-Grenze einstellen. Beispielsweise kann Power-Management-Modul 210 die
CPU-Aktivität über ein vorher festgelegtes Zeitintervall überwachen.
Außerdem kann Power-Management-Modul 210 den Aktivitätsratenwert
des Prozessors berechnen und den oberen Grenzwert und unteren Grenzwert
mit der CPU-Aktivitätsrate vergleichen. Beispielsweise
kann Power-Management-Modul 210 die obere P-Zustand-Grenze
erhöhen, wenn die CPU-Aktivitätsrate über
dem oberen Grenzwert liegt und die obere P Zustand-Grenze senken,
wenn die CPU-Aktivitätsrate unter dem unteren Grenzwert
liegt. Gemäß einigen Ausführungsformen
der Erfindung kann eine ähnliche Verfahrensweise bezüglich
des Modifizierens der unteren P-Zustand-Grenze des P-Zustand-Bereiches
bereitgestellt werden.
-
Wendet
man sich 3 zu, ist eine Darstellung eines
Taktdiagrammes gezeigt, das Veränderungen bei P-Zustand-Werten über
die Zeit zeigt, gemäß einigen beispielhaften Ausführungsformen
der Erfindung. Obwohl der Umfang der vorliegenden Erfindung nicht
auf dieses Beispiel beschränkt ist, zeigt ein Taktdiagramm 300 drei
P-Zustände, z. B. P0, P1 und Pn. Gemäß diesem
Beispiel kann Pn die P-Zustände P3 und P4 beinhalten. Taktdiagramm 300 kann
weiter einen durchschnittlichen P-Zustand 310, eine obere
Grenze 330 und eine untere Grenze 320 beinhalten.
Die obere Grenze 330 und die untere Grenze 320 können
von Power-Management-Modul 210 eingestellt werden und der
P-Zustand kann auf Wunsch innerhalb des Bereichs der oberen und
unteren Grenzen 320 und 330 variieren. Durchschnittlicher
P-Zustand 310 ist ein berechneter Wert des durchschnittlichen
P-Zustands über die Zeit.
-
Gemäß diesem
Beispiel können obere und untere Grenze 320 und 330 auf
Wunsch um einen durchschnittlichen P-Zustand 310 eingestellt
werden. CPU 225 kann auf Wunsch ihren aktiven Zustand (z.
B. P-Zustand und/oder C-Zustand) innerhalb des Bereichs der oberen
und unteren Grenzen 320 und 330 verändern.
-
Gemäß einigen
beispielhaften Ausführungsformen der Erfindung kann die
obere Grenze 330 als ein P-Zustand-Wert definiert werden,
den die CPU nicht überschreiten darf, und die untere Grenze 320 kann
als der minimal erforderliche P-Zustand definiert werden, der von
dem Betriebssystem (z. B. Betriebssystem 205) benötigt
wird, um seine Aufgaben auszuführen. Beispielsweise können
solche Kriterien eine Minimalfrequenz sein, die erforderlich ist,
um einige Multimedia-Aktionen ohne visuelle Störung und/oder
Beeinträchtigung der Benutzerwahrnehmung auszuführen.
-
Das
Einstellen von oberen und unteren Grenzen 320 und 330 kann
mittels Hardware und/oder mittels Software und/oder mittels eines
Betriebssystems und/oder mittels eines Treibers und/oder mittels
einer Applikation durchgeführt werden, obwohl es selbstverständlich
ist, dass Ausführungsformen der Erfindung nicht auf diese
Beispiele beschränkt sind. Die P-Zustände können
als absolute Werte und/oder Basis- und Offsetwerte dargestellt werden.
Beispielsweise können die Werte der oberen und unteren
Grenzen mittels des Betriebssystems und/oder mittels eines Regelungsalgorithmus
eingestellt werden, der einen P-Zustand in einer geschlossenen Schleifenrückkopplung
variieren kann. Bei einigen Ausführungsformen kann auf
Wunsch ein tatsächlicher P-Zustand innerhalb des Bereichs
zwischen den beiden Grenzen durch die Hardware der CPU geregelt
werden.
-
Gemäß einer
beispielhaften Ausführungsform der Erfindung kann die obere
Grenze
330 des P-Zustand-Bereichs gemäß dem
folgenden Beispielalgorithmus eingestellt werden. Ein solcher bereits
bestehender Algorithmus kann einen prozentualen Leerlaufzeitanteil
verwenden. Wenn eine Leerlaufzeit der CPU über einen oberen
Grenzwert steigt, wird die P-Zustand-Anfrage gesenkt und wenn die
Leerlaufzeit einen unteren Grenzwert unterschreitet, wird der P-Zustand
erhöht. Beispielsweise kann eine Leerlaufzeit – Ti
in Prozent (%) als Ti = ((Zeit in C0)/(Zeit in C1 und darunter))·100%
berechnet werden, wobei C0 ein aktiver Betriebszustand der CPU ist
und C1 der Zustand ist, in dem die CPU inaktiv ist, z. B. im Schlafmodus.
Gemäß einer beispielhaften Ausführungsform
der Erfindung, wenn die CPU im P-Zustand P3 läuft und die
Grenzwerte auf 60% (der untere Grenzwert) und 80% (der obere Grenzwert)
eingestellt werden können, dann:
If Ti < 80% | //liegt der gegenwärtige
P-Zustand unter dem oberen Grenzwert |
P ← P2 | //P-Zustand P ist auf
das fließende P-Zustand-Niveau z. B. P2 |
| erhöht |
Else if Ti > 60% | //liegt der gegenwärtige
P-Zustand über dem unteren Grenzwert |
P ← P4 | //P-Zustand P ist auf
das vorhergehende P-Zustand-Niveau, z. B. |
| P2 gesenkt, andernfalls |
| verändert sich
P nicht und bleibt P3 |
End if | |
-
Gemäß einigen
beispielhaften Ausführungsformen der Erfindung kann die
untere Grenze des P-Zustand-Bereiches mittels eines geschlossenen
Schleifenalgorithmus und/oder einer Heuristik eingestellt werden.
Ein Beispiel für solch einen Algorithmus kann sein:
Es
soll definiert werden:
- Pe
- = effektiver P-Zustand,
z. B. der gewichtete Durchschnitt der verschiedenen P-Zustände über
die Zeit, die die CPU ausführte; und
- T'i
- = Ti·(untere
Grenze/Pe). T'i stellt die erwartete Leerlaufzeit dar, wenn die
CPU an dem unteren erlaubten P-Zustand ausführte.
If T'i < 80% | //liegt der gegenwärtige
P-Zustand unter dem oberen Grenzwert |
P ← P2 | //P-Zustand P ist auf
das fließende P-Zustand-Niveau z. B. P2 |
| erhöht |
Else if T'i > 60% | //liegt der gegenwärtige
P-Zustand über dem unteren Grenzwert |
P ← P4 | //P-Zustand P ist auf
das vorhergehende P-Zustand-Niveau, z. B. |
| P2 gesenkt |
Andernfalls | |
| verändert sich
P nicht und bleibt P3 |
End if | |
-
Obwohl
der Umfang der Erfindung in dieser Hinsicht nicht beschränkt
ist, ist es selbstverständlich, dass anderen Algorithmen
ebenfalls angewendet werden können, beispielsweise ist
es möglich, einen maximal tolerierbaren Leistungsverlust
dynamisch zu berechnen, der verwendet werden kann, um das Setzen
der unteren Grenze zu bestimmen.
-
Gemäß einigen
beispielhaften Ausführungsformen kann die Regelung der
P-Zustände innerhalb des erlaubten Bereichs durchgeführt
werden, indem ein Status-Benachrichtigungsmechanismus bereitgestellt wird,
wenn die CPU das durch die untere Grenze (z. B. aufgrund einer Energiegrenze
oder thermalen Beschränkung) eingestellte erforderliche
Leistungsniveau nicht liefern kann. Zusätzlich ist es selbstverständlich, dass
dieses Interface zu einem Legacy-Interface zusammenfallen kann,
indem auf Wunsch die oberen und unteren Grenzen 320 und 330 auf
den gleichen Wert eingestellt werden.
-
Wendet
man sich 4 zu, ist eine Darstellung eines
Ablaufdiagrammes eines Verfahrens zur Einstellung einer oberen Grenze
eines Bereiches von P-Zustand-Werten gemäß einigen
beispielhaften Ausführungsformen gezeigt. Gemäß diesem
Beispiel beginnt das Verfahren mit einem gegenwärtigen
P-Zustand-Wert (Textblock 410), der die tatsächliche
obere P-Zustand-Grenze ist. Die obere P-Zustand-Grenze kann innerhalb eines
Bereiches von ersten und zweiten Grenzwerten eingestellt werden.
Das Einstellen des ersten Grenzwertes (z. B. obere Grenze (PUL) und des zweiten Grenzwertes (z. B. untere
Grenze PLL) kann auf die Prozessoraktivität
bezogen sein (Textbox 420). Power-Management-Modul 210 kann
die CPU-Aktivität (Ti) über
ein vorher festgelegtes Zeitintervall (Textbox 430) überwachen
und kann die CPU-Aktivität mit dem ersten Grenzwert z.
B. obere Grenze (Textbox 440) vergleichen. Wenn die CPU-Aktivität
(Ti) geringer ist als der zweite Grenzwert,
z. B. PLL (Raute 460), dann kann
die obere Grenze des P-Zustandes gesenkt werden (Textbox 480). Wenn
die CPU-Aktivität (Ti) größer
ist als der erste Grenzwert, z. B. PUL (Raute 450),
dann kann die obere Grenze des P-Zustandes erhöht werden
(Textbox 470). Der Beispielalgorithmus kann in einer geschlossenen Schleife
laufen, um den oberen P-Zustand auf Wunsch gemäß der
Aktivität der CPU zu variieren.
-
Wendet
man sich 5 zu, ist eine Darstellung eines
Ablaufdiagrammes eines Verfahrens zur Einstellung einer unteren
Grenze eines Bereiches von P-Zuständen gemäß einigen
beispielhaften Ausführungsformen gezeigt. Gemäß diesem
Beispiel beginnt das Verfahren mit einem gegenwärtigen
geringsten P-Zustand-Wert des Bereiches der P-Zustände
(Textblock 510), der die tatsächliche untere Grenze
des P-Zustand-Bereiches ist. Die untere Grenze kann innerhalb eines
Bereiches von ersten und zweiten Grenzwerten eingestellt werden.
Das Einstellen des ersten Grenzwertes (z. B. obere Grenze (PUL) und des zweiten Grenzwertes (z. B. untere
Grenze PLL) kann auf die CPU-Aktivität
am geringsten P-Zustand-Wert bezogen sein (Textbox 520).
Power-Management-Modul 210 kann die CPU-Aktivität
(T'i) bei einer minimalen Energieverbrauchsanforderung bei gegenwärtiger
Aktivität der CPU über ein vorher festgelegtes
Zeitintervall (Textbox 530) abschätzen und kann
die geschätzte CPU-Aktivität (T'i) mit dem ersten
Grenzwert und den zweiten Grenzwerten (Textbox 540) vergleichen.
Wenn die CPU-Aktivität (T'i) geringer ist als der zweite
Grenzwert, z. B. PLL (Raute 560),
dann kann die untere P-Zustand-Grenze des P-Zustand-Bereiches gesenkt
werden (Textbox 580). Wenn die CPU-Aktivität (T'i)
größer ist als der erste Grenzwert, z. B. PUL (Raute 550), dann kann die untere
P-Zustand-Grenze des Bereiches der P-Zustände erhöht
werden (Textbox 570). Dieser Beispielalgorithmus kann in
einer geschlossenen Schleife laufen, um die geringste P-Zustand-Grenze
auf Wunsch gemäß der Aktivität der CPU
an der geringsten erlaubten P-Zustand-Grenze des Bereiches der P-Zustände
zu variieren.
-
Zahlreiche
spezifische Details wurden hierin gegeben, um ein gründliches
Verständnis der Ausführungsformen bereitzustellen.
Es ist jedoch für einen Fachmann selbstverständlich,
dass die Ausführungsformen ohne diese spezifischen Details
betrieben werden können. In anderen Fällen wurden
wohlbekannte Operationen, Komponenten und Schaltungen nicht im Detail
beschrieben, um die Ausführungsformen nicht in den Hintergrund
rücken zu lassen. Es kann ersichtlich sein, dass die hierin
offenbarten spezifischen strukturellen und funktionalen Details
repräsentativ sein können und nicht notwendigerweise
den Umfang der Ausführungsformen einschränken.
-
Verschiedene
Ausführungsformen können unter Verwendung von
Hardware-Elementen, Software-Elementen oder einer Kombination beider
implementiert werden. Beispiele von Hardware-Elementen können
Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z.
B. Transistoren, Widerstände, Kondensatoren, Induktionsspulen
und so weiter), integrierte Schaltungen, applikationsspezifische
integrierte Schaltungen (application specific integrated circuit,
ASIC), programmierbare Logikbaugruppen (programmable logic devices,
PLD), digitale Signalprozessoren (digital signal processors, DSP),
Field Programmable Gate Array (FPGA), Logikgatter, Register, Halbleitergeräte,
Chips, Mikrochips, Chipsätze und so weiter beinhalten. Beispiele
von Software können Softwarekomponenten, Programme, Applikationen,
Computerprogramme, Applikationsprogramme, Systemprogramme, Maschinenprogramme,
Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Hilfsprogramme,
Unterprogramme, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen,
Programmierschnittstellen (application program interfaces, API),
Befehlssätze, EDV-Code, Computercode, Codesegmente, Computercodesegmente,
Worte, Werte, Symbole oder jede Kombination davon beinhalten. Die
Bestimmung, ob eine Ausführungsform unter Verwendung von
Hardware-Elementen und/oder Software-Elementen implementiert wird,
kann in Übereinstimmung mit einer beliebigen Anzahl an Faktoren
variieren, wie beispielsweise gewünschte Rechengeschwindigkeit,
Energieniveaus, Wärmetoleranzen, Budget der Verarbeitungszyklen,
Eingabedatengeschwindigkeiten, Ausgabedatengeschwindigkeiten, Speicherressourcen,
Datenbusgeschwindigkeiten und andere Beschränkungen bezüglich
Design oder Leistung.
-
Einige
Ausführungsformen können unter Verwendung des
Begriffes „gekoppelt” und „verbunden” zusammen
mit ihren Ableitungen beschrieben werden. Diese Begriffe sind jedoch
nicht als Synonyme füreinander zu verstehen. Einige Ausführungsformen
können beispielsweise unter Verwendung der Begriffe „verbunden” und/oder „gekoppelt” beschrieben
werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem physischen
oder elektrischen Kontakt miteinander stehen. Der Begriff „gekoppelt” kann
jedoch auch bedeuten, dass zwei oder mehr Elemente nicht in direktem
Kontakt miteinander stehen, aber dennoch miteinander arbeiten oder
interagieren.
-
Obwohl
der Gegenstand sprachlich spezifisch auf Strukturmerkmale und/oder
methodologische Vorgänge beschrieben wurde, ist es selbstverständlich,
dass der in den beigefügten Ansprüchen definierte
Gegenstand nicht notwendigerweise auf die spezifischen, vorstehend
beschriebenen Merkmale oder Vorgänge beschränkt
ist. Vielmehr werden die vorstehend beschriebenen spezifischen Merkmale
und Vorgänge als beispielhafte Formen zur Implementierung
der Ansprüche offenbart.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- - IEEE Standard
802.11, 1999 [0029]
- - IEEE 802.11 [0029]
- - IEEE 802.16 Standard [0029]