-
TECHNISCHES GEBIET
-
Ausführungsformen der Offenbarung betreffen das Gebiet der Energieverwaltung und genauer Verfahren und Vorrichtungen zum Verwalten der Energie einer Plattform basierend auf verschiedenen Richtlinien bezüglich der Wartezeit.
-
HINTERGRUND
-
In der heutigen technologischen Welt verbessert sich das Leistungsverhalten elektronischer Geräte mit einer reißenden Geschwindigkeit, verbunden mit einer rasanten Zunahme in ihrer Rechenleistung. Bei diesem Anwachsen werden die Geräte hungrig nach Energie, d. h. sie verbrauchen mehr Energie. Um Energie zu sparen, kann ein Prozessor während kurzer Intervalle der Inaktivität in einem Gerät in einen Schlafmodus (z. B. einen Zustand niedriger Leistung)eintreten.
-
Zum Beispiel definiert die Spezifikation Advanced Configuration and Power Interface (ACPI) (z. B. Version 3.0a, herausgegeben am 30. Dezember 2005), die gemeinsam von Hewlett-Packard®, Intel®, Microsoft®, Phoenix® und Toshiba® entwickelt worden ist, verschiedene Leistungszustände (z. B. die Leistungszustände C0–C3 eines Prozessors während des normalen Arbeitszustandes G0/S0 des Gerätes) in mit ACPI kompatiblen Systemen. Gemäß der Spezifikation ACPI kann der Zustand C0 der normale Ausführungszustand des Prozessors sein. Zwar kann der Prozessor, wenn er während eines kurzen Intervalls der Inaktivität im Zustand C1 ist, keine Befehle ausführen, er kann jedoch fast momentan in einen Ausführungszustand zurückkehren, während im Zustand C3 (der im Vergleich zu C1 ein tieferer Schlafzustand ist und mehr Energie spart als C1) der Cache des Prozessors seinen Zustand halten kann, jedoch jegliche Snoops ignoriert. Der Prozessor kann im Vergleich mit dem Rückkehren aus dem Zustand C1 eine längere Zeit benötigen, um aus dem Zustand C3 in einen normalen Ausführungszustand (C0) zurückzukehren. Abwandlungen bei jedem der Zustände, einschließlich des Zustandes C3 (z. B. tiefer Schlaf, tieferer Schlaf usw.), die sich darin unterscheiden können, wie tief der Prozessor schläft (d. h. welche Funktionalitäten des Prozessors deaktiviert sind, um Energie zu sparen) und wie lange er braucht, um aufzuwachen, sind ebenfalls möglich.
-
Eine herkömmliche Energieverwaltung, einschließlich der, die durch den Standard ADPI definiert ist, kann basierend auf Heuristik durchgeführt werden, die im Prozessor gesammelt wird, und auf Leitlinien, die durch das Betriebssystem gegeben werden, durchgeführt werden, und ein Algorithmus für die Energieverwaltung kann vergangene Prozessoraktivitäten betrachten, um zukünftige Aktivität vorauszusagen. Zum Beispiel kann das Betriebssystem die Auslastung der zentralen Verarbeitungseinheit betrachten, um diese Richtlinie zur Verfügung zu stellen. Basierend auf diesen Faktoren kann der Prozessor in einen aus einer Vielzahl von Schlafzuständen eintreten. Obwohl ein Prozessor in zeitlichen Abständen in einen Zustand niedriger Leistung eintreten kann, können andere Komponenten der Plattform mit einer längeren Aufweckzeit üblicherweise nicht in einen solchen Zustand niedriger Leistung eintreten, damit ein besseres Leistungsverhalten sichergestellt wird.
-
1 ist eine beispielhafte grafische Darstellung des Gesamtenergieverbrauchs einer Plattform (Linie A) eines Rechensystems des Standes der Technik und des Energieverbrauchs seines Prozessors des Standes der Technik (Linie B) über eine Arbeitsbelastung, die aus Intervallen der Aktivität besteht, in denen Anwendungen laufen, gefolgt von Inaktivität (Schlafzustand). Mit Bezug auf 1 kann der Prozessor seine Leistung von bis zu 20 Watt (W) während kurzer Aktivitätsintervalle auf fast 1 W skalieren, wenn Ruhe ist. Während der Prozessor in Ruhe ist, kann die Plattform immer noch eine Ruheleistungsbasis ~ 9 W haben, von denen weniger als 1 W auf den Prozessor zurückgeführt werden kann. Das heißt, der Rest der Komponenten der Plattform in dem Rechensystem kann während Ruhezuständen nicht so gut wie der Prozessor nach unten skalieren. Die Plattform dieser beispielhaften Rechenvorrichtung kann im Ruhezustand noch ungefähr 8–10 W Leistung verbrauchen, da große Teile der Systemressourcen, mit längerer Wartezeit (d. h. einer längeren Zeit, die notwendig ist, um aus einem Schlafzustand aufzuwachen) hochgefahren gehalten werden, um ein besseres Leistungsverhalten sicherzustellen, während der Prozessor in Zeitabständen während eines Ruheintervalls in geeignete Schlafzustände eintreten kann.
-
US 2004 0146003 A1 offenbart ein System und ein Verfahren zur Überwachung der Verwendung von Periphergeräten und zum Versetzen eines zweiten Periphergeräts in einen Zustand niedriger Energie, wenn die Verwendungserfassung für andere Geräte anzeigt, dass das zweite Periphergerät nicht verwendet wird.
-
Dementsprechend ist es die Aufgabe der Erfindung, ein Verfahren bereitzustellen, mit dem eine verbesserte Energieverwaltung einer Vielzahl von Komponenten eines Systems erreicht werden kann und um zur Energieeinsparung zumindest eine und bevorzugt mehrere Komponenten unter Berücksichtigung ihrer jeweiligen Wartezeittoleranz, um aus den Schlafzuständen aufzuwachen, in Schlafzustände zu versetzen, sowie eine entsprechende Vorrichtung.
-
Diese Aufgabe wird gelöst durch ein Verfahren mit den Merkmalen gemäß Anspruch 1 sowie eine Vorrichtung mit den Merkmalen gemäß Anspruch 7.
-
Bevorzugte Ausführungsformen sind in den Unteransprüchen angegeben.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsformen der Offenbarung werden mittels beispielhafter Ausführungsformen, die jedoch keine Beschränkungen darstellen, beschrieben werden, die in den beigefügten Zeichnungen veranschaulicht sind, bei denen gleiche Bezugszeichen ähnliche Elemente bezeichnen und in denen:
-
1 eine beispielhafte grafische Darstellung eines Gesamtenergieverbrauchs einer Plattform bei einem beispielhaften Rechensystem und des Energieverbrauchs seines Prozessors ist;
-
2 ein Blockschaubild eines Energieverwaltungssystems gemäß verschiedenen Ausführungsformen ist;
-
3 ein weiteres Blockschaubild eines Energieverwaltungssystems gemäß verschiedenen Ausführungsformen ist;
-
4 ein Ablaufdiagramm eines Energieverwaltungsverfahrens gemäß verschiedenen Ausführungsformen ist;
-
5 ein beispielhaftes Ablaufdiagramm eines Berichtssystems für die Wartezeittoleranz eines WiFi-Multimedia(WMM)-Energiesparmodus gemäß verschiedenen Ausführungsformen ist; und
-
6 ein Blockschaubild eines beispielhaften Computersystems veranschaulicht, das zum Umsetzen einiger Ausführungsformen in die Praxis geeignet sein kann.
-
GENAUE BESCHREIBUNG VERANSCHAULICHENDER AUSFÜHRUNGSFORMEN
-
Veranschaulichende Ausführungsformen umfassen, sind jedoch nicht beschränkt auf Verfahren und Vorrichtungen für die Energieverwaltung einer Plattform basierend auf Richtlinien für die Wartezeit.
-
Verschiedene Aspekte der veranschaulichenden Ausführungsformen werden beschrieben, indem Ausdrücke verwendet werden, die üblicherweise von den Fachleuten benutzt werden, um anderen Fachleuten das Wesen ihrer Arbeit zu verdeutlichen. Es wird jedoch den Fachleuten deutlich werden, dass alternative Ausführungsformen mit nur einigen der beschriebenen Aspekte in die Praxis umgesetzt werden können. Zu Zwecken der Erläuterung sind bestimmte Zahlen, Materialien und Anordnungen aufgeführt, um für ein gründliches Verständnis der veranschaulichenden Ausführungsformen zu sorgen. Es wird jedoch einem Fachmann deutlich werden, dass alternative Ausführungsformen ohne die bestimmten Einzelheiten in die Praxis umgesetzt werden können. In anderen Fällen werden gut bekannte Merkmale weggelassen oder vereinfacht, um die veranschaulichenden Ausführungsformen nicht zu verschleiern.
-
Weiter werden verschiedene Arbeitsschritte als mehrere getrennte Arbeitsschritte beschrieben werden, wiederum in einer Weise, die für das Verständnis der veranschaulichenden Ausführungsformen am hilfreichsten ist; jedoch sollte die Reihenfolge der Beschreibung nicht so ausgelegt werden, dass sie voraussetzt, dass diese Arbeitsschritte notwendigerweise von der Reihenfolge abhängig sind. Insbesondere brauchen diese Arbeitsschritte nicht in der Reihenfolge der Darstellung ausgeführt zu werden.
-
Die Formulierungen „bei manchen Ausführungsformen” und „bei verschiedenen Ausführungsformen” werden wiederholt benutzt. Diese Formulierungen beziehen sich im Allgemeinen nicht auf dieselbe Ausführungsform; sie können es jedoch. Die Ausdrücke „aufweisend”, „mit” und „umfassend” sind Synonyme, so lange der Kontext nichts anderes vorschreibt. Die Formulierung „A und/oder B” bedeutet „(A), (B) oder (A und B)”. Die Formulierung „A/B” bedeutet „(A), (B) oder (A und B)”, ähnlich wie bei der Formulierung „A und/oder B”. Die Formulierung „wenigstens eines aus A, B und C” bedeutet „(A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C)”. Die Formulierung „(A) B” bedeutet „(B) oder (A B)”, das heißt, A ist optional.
-
2 ist ein Blockschaubild eines Energieverwaltungssystems 10 gemäß verschiedenen Ausführungsformen. Bei verschiedenen Ausführungsformen kann das Energieverwaltungssystem 10 in einem Verarbeitungserät verwendet werden, das zum Beispiel ein Laptop, ein Mobiltelefon, ein Personal Computer, ein persönlicher digitaler Assistent, ein Palmtop, eine Settop-Box oder irgendein anderer geeigneter Typ eines Verarbeitungsgerätes sein kann. Bei verschiedenen Ausführungsformen kann das Energieverwaltungssystem 10 in einem mobilen Verarbeitungsgerät verwendet werden.
-
Das Energieverwaltungssystem 10 kann einen Energieverwaltungscontroller (PMC – Power Management Controller) 15 umfassen. Der PMC 15 kann mit einer ersten Vielzahl von Komponenten 20, 22, 26 gekoppelt sein und kann so gestaltet sein, dass er Richtlinien 30, 32, 36 für die Energieverwaltung jeweils von den Komponenten 20, 22, 26 empfängt. Bei verschiedenen Ausführungsformen kann der PMC-Controller auch Information 40 empfangen, wie es später diskutiert wird. Ansprechend wenigstens teilweise auf die empfangenen Richtlinien 30, 32, 36 für die Energieverwaltung und/oder die Information 40 kann der PMC 15 so gestaltet sein, dass er eine Energieverwaltungsstrategie (PM-Strategie) 50 zum Verwalten der Energie einer zweiten Vielfalt von Komponenten und/oder Ressourcen 60, 62, 66, die mit dem Verarbeitungsgerät verknüpft sind, erzeugt.
-
Bei verschiedenen Ausführungsformen kann die erste Vielzahl der Komponenten 20, 22, 26 eine oder mehrere Hardware/Software-Komponenten umfassen, die mit dem Verarbeitungsgerät verknüpft sind. Bei verschiedenen Ausführungsformen können die Komponenten 20, 22, 26 zum Beispiel externe Baugruppen umfassen, die an das Verarbeitungsgerät gekoppelt sind und/oder Baugruppen/Hardware innerhalb des Verarbeitungsgerätes, einschließlich, jedoch nicht beschränkt auf einen universellen seriellen Bus (USB – Universal Serial Bus) (einschließlich Baugruppen, die mit den verschiedenen Versionen des USB-Standards kompatibel sind, z. B. USB 2.0, 3.0 usw.), eine Baugruppe zum Anschluss an Peripheriekomponenten (PCI – Peripheral Component Interconnect), eine PCI Express(PCIe)-Baugruppe, eine Netzwerkschnittstellenkarte, ein Peripheriegerät, einen Drucker, einen Scanner, ein Plattenlaufwerk, eine Kamera, einen Netzwerkadapter, ein Serial Advance Technology Attachment (SATA), ein Parallel Advanced Technology Attachment (PATA), usw. Bei verschiedenen Ausführungsformen können die Komponenten 20, 22, 26 auch einen oder mehrere Controller umfassen, die so ausgelegt sind, dass sie eine oder mehrere Baugruppen/Funktionen in dem Verarbeitungsgerät steuern, einschließlich, jedoch nicht beschränkt auf einen USB-Hostcontroller, einen Speichercontroller, einen Ethernet-Controller, einen Grafikcontroller, einen Festplattencontroller (HDD – Hard Disk Drive), einen Audiocontroller, eine Advanced Host Controller Interface (AHCI) usw. Bei verschiedenen Ausführungsformen können die Komponenten 20, 22, 26 auch eine oder mehrere Softwareanwendungen, die auf dem Verarbeitungsgerät laufen, einen oder mehrere Gerätetreiber, ein Betriebssystem usw. umfassen.
-
Bei verschiedenen Ausführungsformen kann jede der Komponenten 20, 22, 26 dynamisch jeweils Richtlinien 30, 32, 36 für die Energieverwaltung an den PMC 15 senden. Die Richtlinien für die Energieverwaltung können eine oder mehrere Wartezeit-Parameter der jeweiligen Komponente umfassen. Zum Beispiel können die Richtlinien für die Energieverwaltung eine Wartezeittoleranz der Komponente umfassen. Bei verschiedenen Ausführungsformen kann die Wartezeittoleranz wenigstens teilweise auf der maximalen Wartezeit basieren, die die Komponente tolerieren kann, ohne ihr Leistungsverhalten in negativer Weise zu beeinflussen. Zum Beispiel kann die Wartezeittoleranz einer Komponente 20 wenigstens teilweise auf der maximalen Wartezeit basieren, die die Komponente 20 von der Erzeugung eines Prozessor-Unterbrechungsereignisses (z. B. eines Hardware(HW)-Interrupts) an, während eine oder mehrere Komponenten des Verarbeitungsgerätes in einem Schlafmodus sind, bis ein erster Befehl, der mit der Komponente 20 verknüpft ist, beim Eintritt in einen Normal-/Ausführungszustand (z. B. C0) ausgeführt wird. Bei verschiedenen Ausführungsformen kann die Wartezeittoleranz einer Komponente wenigstens teilweise auf der Verzögerung basieren, die die Komponente tolerieren kann, ohne ihr Leistungsverhalten in negativer Weise zu beeinflussen, wenn die Komponente und/oder andere Komponenten des Systems aus einem Schlafmodus in einen Normal-/Ausführungszustand übergehen.
-
Bei verschiedenen Ausführungsformen können die PM-Richtlinien einer Komponente ein weiteres oder mehrere weitere Elemente umfassen, einschließlich, jedoch nicht beschränkt auf einen Dienstequalität (QoS – Quality of Service) der Komponente, interne Heuristik, wie Häufigkeit von Unterbrechungen, Muster der Eingabe/Ausgabe (I/O – Input/Output), Ruhedauer (d. h. wenn die Komponente die Zeit bis zur nächsten geplanten Zeitgeberunterbrechung kennt), eine Arbeitslasterwartung und/oder irgendeine andere geeignete Information über die Komponente, die für den PMC 15 hilfreich sein kann, um die PM-Strategie 50 zu erzeugen. Bei verschiedenen Ausführungsformen können eine oder mehrere der Komponenten 20, 22, 26 auch eine Speicherzugriffswartezeit der Komponente in ihren PM-Richtlinien umfassen.
-
Bei verschiedenen Ausführungsformen kann zum Beispiel eine der Komponenten 20, 22, 26 eine Audiowiedergabe-Softwareanwendung sein. Die Audiowiedergabe-Anwendung darf keine Wartezeit tolerieren, während sie aktiv eine Audiodatei wiedergibt. Wenn sie jedoch ruht, d. h. wenn keine Audiodatei empfangen/wiedergegeben wird, kann die Audiowiedergabe-Anwendung eine längere Wartezeit tolerieren, die wenigstens teilweise auf der Differenz zwischen dem Zeitpunkt, zu dem die Anwendung beginnt, die Audiodatei zu empfangen, und dem Zeitpunkt, zu dem die Anwendung die Wiedergabe der Audiodatei beginnen muss, um den Verlust von Daten zu vermeiden, basiert. Für einen Fachmann würde es deutlich sein, dass die Wartezeittoleranz der Anwendung teilweise auf ihrem Puffervermögen basieren kann. Bei verschiedenen Ausführungsformen kann die Anwendung dynamisch ihre Wartezeittoleranz an den PMC 15 als einen Teil ihrer Richtlinie für die Energieverwaltung senden. Somit kann, während eine Audiodatei wiedergegeben wird, die Audiowiedergabe-Anwendung eine Wartezeittoleranz von Null oder eine minimale Wartezeittoleranz an den PMC 15 senden, während die Anwendung in einem Schlafzustand eine größere Wartezeittoleranz senden kann.
-
Bei verschiedenen Ausführungsformen kann eine Komponente zwischen Aktivitätsintervallen schlummern. Zum Beispiel kann ein Client eines drahtlosen Nahbereichsnetzwerks (WLAN – Wide (Wireless) Local Area Network) in einen energiesparenden (Schlummer)-Zustand eintreten, warm immer er ruht, wie es durch die Standards 802.11 des Institute of Electrical and Electronics Engineers (IEEE) (z. B. 802.11e – Änderungen von 2005) definiert ist. Der WLAN-Client kann seinen Funk über Intervalle abschalten, die zum Beispiel in dem WiFi-Multimedia(WMM)-Energiesparmodus des Standards IEEE 802.11e definiert sind, in denen ein Zugangspunkt (AP – Access Point) Daten für den Client puffern kann. Diese Schlummerintervalle können in der Größenordnung mehrerer Millisekunden sein. Eine Netzwerkschnittstellenkarte (NIC – Network Interface Card) des WLAN kann erkennen, wann der Funk einzuschalten ist, der WLAN-Client zu wecken ist und/oder die Kommunikation zu beginnen ist. 5 veranschaulicht ein beispielhaftes Blockschaubild eines Berichtssystems über die Wartezeittoleranz bei einem WMM-Energiesparmodus gemäß verschiedenen Ausführungsformen der Erfindung. Wie es in der 5 veranschaulicht ist, kann, wenn der WLAN-Client wach ist, er eine geringe Wartezeit tolerieren, z. B. nur 100 Mikrosekunden (μs). Wenn er jedoch schlummert, kann der Client eine größere Wartezeit tolerieren, z. B. ungefähr 1 Millisekunde (ms). Bei verschiedenen Ausführungsformen kann die NIC dementsprechend eine Wartezeittoleranz von 100 μs an den PMC 15 (1) als ein Teil seiner PM-Richtlinien während des Wachzustandes des Client senden. Wenn der Client jedoch schlummert, kann die NIC eine Wartezeittoleranz von 1 ms an den PMC 15 senden.
-
Mit Bezug auf 2 kann bei verschiedenen Ausführungsformen der PMC 15 auch Information 40 empfangen, die ebenfalls verwendet werden kann, um die Energieverwaltungsstrategie 50 zu erzeugen. Zum Beispiel kann bei verschiedenen Ausführungsformen die Information 40 Heuristik über Verkehr und Aktivitätsmuster des Verarbeitungsgerätes und/oder seiner Komponenten, einschließlich seines Prozessors, umfassen. Die Information 40 kann bei verschiedenen Ausführungsformen zusätzliche Information umfassen, die den Fachleuten bekannt ist, z. B. Information, die notwendig ist, um die Leistung in einem herkömmlichen, mit ACPI kompatiblen System oder anderen herkömmlichen Leistungssteuersystemen zu steuern. Bei verschiedenen Ausführungsformen kann ein OS und/oder ein Prozessor des Verarbeitungsgerätes Information 40 erzeugen.
-
Wenigstens teilweise auf die empfangenen Richtlinien 30, 32, 36 für die Energieverwaltung und die Information 40 ansprechend, kann der PMC 15 so ausgelegt werden, dass er die PM-Strategie 50 zum Verwalten der Energie der zweiten Vielfalt der Komponenten und/oder Ressourcen 60, 62, 66, die mit dem Verarbeitungsgerät verknüpft sind, erzeugt. Bei verschiedenen Ausführungsformen kann die zweite Vielzahl der Komponenten und/oder Ressourcen 60, 62, 66 verschiedene Kernkomponenten und Plattformkomponenten des Verarbeitungsgerätes umfassen, z. B. einen Prozessor, einen Spannungsregler, eine Anzeigetafel, einen Takterzeuger, einen Phasenregelkreis usw. Bei verschiedenen Ausführungsformen können die erste Vielzahl der Komponenten 20, 22, 26 und die zweite Vielzahl der Komponenten und/oder Ressourcen 60, 62, 66 eine oder mehrere gemeinsame Komponenten haben. Zum Beispiel kann bei verschiedenen Ausführungsformen der PMC 15 PMC-Richtlinien von einem USB-Hostcontroller empfangen und für diesen eine PM-Strategie 50 erzeugen.
-
Bei verschiedenen Ausführungsformen kann die PM-Strategie 50 festlegen, dass eine oder mehrere der Komponenten 60, 62, 66 in eine aus einer Vielzahl von Schlafebenen eintreten. Wenn alle Komponenten 20, 22, 26 eine Wartezeittoleranz von wenigstens 1 ms in ihren jeweiligen PM-Richtlinien festgelegt haben, kann der PMC 15 eine oder mehrere aus der zweiten Vielzahl der Komponenten und/oder Ressourcen 60, 62, 66 anweisen, in eine aus einer Vielzahl von Schlafebenen einzutreten, so dass die eine oder die mehreren Komponenten weniger als 1 ms brauchen, um aus ihrer jeweiligen Schlafebene als Antwort auf eine Unterbrechung, z. B. ein Prozessorunterbrechungsereignis, einen HW-Interrupt usw., aufzuwachen. In ähnlicher Weise, wenn die festgelegte maximale Wartezeittoleranz aller Komponenten 20, 22, 26 zum Beispiel wenigstens 5 ms beträgt, kann die PM-Strategie 50 eine oder mehrere aus der Vielzahl der Komponenten und/oder Ressourcen 60, 62, 66 anweisen, in tiefere Schlafebenen einzutreten, so dass die Komponenten weniger als 5 ms benötigen, um aufzuwachen. Bei verschiedenen Ausführungsformen kann die Vielzahl der möglichen Schlafebenen ähnlich den C-Zuständen sein, die in der ACPI-Spezifikation festgelegt sind, und/oder weitere Schlafebenen können von einem Fachmann in Betracht gezogen werden. Das heißt, wenn man die Wartezeittoleranz und weitere Information in den PM-Richtlinien der Komponente 20, 22, 26 bekannt sind, kann die PM-Strategie 50 ermöglichen, dass eine oder mehrere der Komponenten 60, 62, 66 in einen geeigneten Schlafmodus eintreten, wann immer die Wartezeittoleranzen hoch genug sind, so dass Energie gespart wird, ohne das Leistungsverhalten der Komponenten 20, 22, 26 nachteilig zu beeinflussen.
-
Bei verschiedenen Ausführungsformen können verschiedene weitere Faktoren ebenfalls in Betracht gezogen werden, während die PM-Strategie 50 entwickelt wird. Wenn zum Beispiel eine der Komponenten 20, 22, 26 einen Parameter hoher QoS und eine Wartezeittoleranz von zum Beispiel 100 μs in ihren PM-Richtlinien festlegt, kann der PMC 15 eine Schlafebene für die Komponenten 60, 62, 66 derart festlegen, dass die Komponenten weit vor den 100 μs aufwachen, um den Parameter hoher QoS zu befriedigen.
-
Bei verschiedenen Ausführungsformen kann der PMC 15 weniger als alle Komponenten 60, 62, 66 anweisen, in einen Schlafmodus einzutreten, während er eine oder mehrere andere Komponenten anweist, nicht in einen Schlafmodus einzutreten (oder in einen unterschiedlichen Schlafmodus einzutreten). Wenn zum Beispiel ein Spannungsregulator und ein Takterzeuger zwei der Komponenten 60, 62, 66 sind, und wenn der Spannungsregulator im Vergleich zu dem Takterzeuger eine längere Zeit benötigt, um aufzuwachen, kann der PMC 15 den Spannungsregulator anweisen, in eine Ebene des leichteren Schlafens einzutreten (oder überhaupt nicht in eine Schlafebene einzutreten), verglichen mit einer tieferen Schlafebene für den Takterzeuger für gegebene Wartezeittoleranzen, die von den Komponenten 20, 22, 26 erhalten werden. Wenn jedoch die erhaltenen Wartezeittoleranzen von den Komponenten 20, 22, 26 ausreichend hoch sind, dann können sowohl der Spannungsregulator als auch der Takterzeuger basierend auf der PM-Strategie 50 in eine Ebene des tieferen Schlafes eintreten.
-
Bei verschiedenen Ausführungsformen wird, je tiefer die Schlafebene ist, um so mehr Funktionalitäten einer Komponente deaktiviert, um so höher ist die Energieeinsparung und um so mehr Zeit würde die Komponente benötigen, um in einen normalen Ausführungszustand zurückzukehren (d. h. aufzuwachen).
-
Bei verschiedenen Ausführungsformen können einige aus der zweiten Vielzahl der Komponenten und/oder der Ressourcen 60, 62, 66, z. B. einige der Takterzeuger, Spannungsregulatoren, PLLs, nur ein- und ausgeschaltet werden. Das heißt, es kann für einige dieser Komponenten nur eine einzige Ebene des Schlafes geben (z. B. den Modus niedriger Leistung), die diese Komponenten für den Fall, dass die Wartezeittoleranzen der Komponenten 20, 22, 26 ausreichend hoch sind, zeitweilig abschaltet. Demgemäß kann die PM-Strategie 50 auch das Ein- und Ausschalten einiger/aller dieser Komponenten steuern.
-
Bei verschiedenen Ausführungsformen können die Komponenten 20, 22, 26 kontinuierlich jeweilige PM-Richtlinien an den PMC 15 schicken. Als Alternative können die Komponenten 20, 22 und 26 jeweilige PM-Richtlinien in regelmäßigen Intervallen schicken. Verschiedene alternative Szenarien können auch möglich sein, bei denen einige der Komponenten kontinuierlich senden, während der Rest periodisch, in regelmäßigen Intervallen, jeweilige PM-Richtlinien sendet. Bei verschiedenen Ausführungsformen kann eine Komponente ihre PM-Richtlinien am Beginn senden und ihre PM-Richtlinien nur dann erneut senden, wenn es eine Änderung in den PM-Richtlinien gibt.
-
3 ist ein Blockschaubild eines Energieverwaltungssystems 100 gemäß verschiedenen Ausführungsformen der Erfindung. Bei verschiedenen Ausführungsformen kann das System 100 einen Prozessorkomplex-Energieverwaltungscontroller (PCPMC – Processor Complex Power Management Controller) 105 umfassen, der an einen Eingabe/Ausgabe(I/O)-Komplex-Energieverwaltungscontroller (IOPMC – Input/Output Complex Power Management Controller) 110 gekoppelt ist. Bei verschiedenen Ausführungsformen kann der PCPMC 105 in einem zentralen Verarbeitungskomplex eines Verarbeitungsgerätes angeordnet sein, während der IOPMC 110 in einem I/O-Komplex des Verarbeitungsgerätes angeordnet sein kann.
-
Wie es von den Fachleuten leicht verstanden wird, kann es, obwohl die 3 lediglich zwei Energieverwaltungscontroller veranschaulicht (PCPMC 105 und IOPMC 110), bei verschiedenen Ausführungsformen mehr als zwei Energieverwaltungscontroller geben. Zum Beispiel kann in einer Multiprozessorumgebung jeder Verarbeitungskomplex einen zugeordneten Prozessorkomplex-Energieverwaltungscontroller haben. Bei verschiedenen Ausführungsformen kann ein einzelner Verarbeitungskomplex mehr als einen Prozessorkomplex-Energieverwaltungscontroller umfassen. Bei verschiedenen Ausführungsformen können Energieverwaltungscontroller auch in verschiedenen anderen Bereichen eines Verarbeitungsgerätes angeordnet sein, obwohl dies in der 3 nicht veranschaulicht ist.
-
Bei verschiedenen Ausführungsformen kann der PCPMC 105 PM-Richtlinien von einer Vielzahl von Software(SW)-Anwendungen, Gerätetreibern und/oder einem Betriebssystem (OS – Operating System) 150 erhalten. Wie es den Fachleuten deutlich würde, kann 150, obwohl als einzelner Block veranschaulicht, eine Vielzahl von Komponenten darstellen. Bei verschiedenen Ausführungsformen können die PM-Richtlinien von SW/05, einschließlich der Wartezeittoleranzen, an den PCPMC 105 über eine Registerschnittstelle und/oder über Erweiterungen zum Beispiel zu einer mit ACPI kompatiblen Schnittstelle des C-Zustands transportiert werden. Die PM-Richtlinien können die maximale Wartezeittoleranz umfassen, die das OS ab der Erzeugung eines Prozessor-Unterbrechungsereignisses (z. B. eines HW-Interrupts), während es in einem Schlafzustand verweilt wird und bis der erste Befehl, beim Eintreten in einen Normal-/Ausführungszustand, ausgeführt wird, tolerieren kann.
-
Mit Bezug auf die 3 kann der IOPMC 110 PM-Richtlinien von einer Vielzahl von Baugruppen 112, 114, 116, 118, einer Vielzahl von Verbindungen 122, 124, 126, 128 und/oder einer Vielzahl von Teilsystemen 132, 134 und 136 erhalten. Die Verbindungen und/oder die Teilsysteme können verwendet werden, um eine oder mehrere Baugruppen mit dem Verarbeitungsgerät zu koppeln. Zum Beispiel kann die Baugruppe 112 eine USB-Einheit sein, und das entsprechende Teilsystem 132 kann ein USB-Controller sein, und die Verbindung 122 kann eine USB-Verbindung sein, und jede(s) kann ihre eigenen Beschränkungen für die Wartezeit haben. Bei verschiedenen Ausführungsformen können mehrere Baugruppen (z. B. 116 und 118) an ein einziges Teilsystem gekoppelt sein. Bei verschiedenen Ausführungsformen können die Teilsysteme 132, 134 und/oder 136 einen USB-Hostcontroller, einen Speichercontroller, einen Ethernet-Controller oder einen Grafikcontroller umfassen, sind jedoch nicht darauf beschränkt. Bei verschiedenen Ausführungsformen kann jede der Baugruppen 112, ..., 118 eine Richtlinien für die Energieverwaltung an ihre jeweilige Verbindung senden. Bei verschiedenen Ausführungsformen können eine oder mehrere der Verbindungen 122, ..., 128 die Richtlinien für die Energieverwaltung der Baugruppe mit Energieverwaltungsanleitungen einer Verbindung anreichern und an eines der Teilsysteme 132, 134, 136 senden.
-
Die Teilsysteme 132, 134, 136 können die PM-Richtlinien berücksichtigen, die von jeweiligen Verbindungen und/oder Baugruppen empfangen worden sind, um PM-Richtlinien für ein Teilsystem zu erzeugen und sie an den IOPMC 110 zu schicken. Wenn zum Beispiel eine USB-Einheit 112 und ein zugeordneter USB-Controller (Teilsystem 132) eine Wartezeittoleranz von 1 ms bzw. 800 μs haben, kann der USB-Controller die niedrigere der beiden Wartezeittoleranzen, d. h. 800 μs, in die PM-Richtlinien des Teilsystems einstellen und sie zu dem IOPMC 110 senden.
-
Bei verschiedenen Ausführungsformen, wenn die Baugruppen 116, 118, die Verbindungen 126, 128 und/oder das Teilsystem 136 unterschiedliche PM-Richtlinien haben (einschließlich unterschiedlicher Wartezeittoleranzen), kann das Teilsystem 136 einfach jede der empfangenen PM-Richtlinien (zusammen mit seinen eigenen PM-Richtlinien) erneut an den IOPMC 110 senden. Als Alternative kann bei verschiedenen Ausführungsformen das Teilsystem 136 alle empfangenen PM-Richtlinien berücksichtigen und vereinheitlichte PM-Richtlinien des Teilsystems entwickeln. Zum Beispiel kann das Teilsystem 136 das Minimum der Wartezeittoleranzen für die Baugruppen 116, 118, die Verbindungen 126, 128 und/oder das Teilsystem 136 an den IOPMC 110 senden.
-
Die Baugruppen 112, ..., 118, die Verbindungen 122, ..., 128, die Teilsysteme 132, ..., 136 und/oder die Anwendungen, Gerätetreiber, das OS 150 können zusätzliche Information in die gesendeten PM-Richtlinien einfügen. Zum Beispiel können bei verschiedenen Ausführungsformen die PM-Richtlinien einen QoS-Parameter, interne Heuristik, wie Unterbrechungshäufigkeit, I/O-Verkehrsmuster, Ruhedauerzeit (d. h. wenn eine Baugruppe/ein Teilsystem die Zeit bis zur nächsten geplanten Zeitgeberunterbrechung weiß), eine Arbeitslasterwartung und/oder andere geeignete Information, die für die Energieverwaltungscontroller hilfreich sein kann, umfassen, sind jedoch nicht darauf beschränkt. Bei verschiedenen Ausführungsformen kann eine oder können mehrere der Baugruppen/Teilsysteme auch jeweilige Speicherzugriffswartezeiten in ihren PM-Richtlinien umfassen. Bei verschiedenen Ausführungsformen können die PM-Controller die Speicherzugriffswartezeit, zusammen mit der Wartezeittoleranz, berücksichtigen, um geeignete PM-Strategien zu erzeugen Bei verschiedenen Ausführungsformen kann die Wartezeittoleranz wenigstens teilweise auf der zugeordneten Speicherzugriffswartezeit basieren.
-
Sobald der PCPMC 105 und der IOPMC 110 Richtlinien für die Energieverwaltung von den Anwendungen, den Gerätetreibern, dem OS, den Baugruppen, Verbindungen und/oder Teilsystemen erhalten haben, können der PCPMC 105 und der IOPMC 110 die Richtlinien austauschen, verhandeln und/oder gemeinsam eine dynamische Energieverwaltungsstrategie für eine Vielzahl von Komponenten (in der 3 nicht gezeigt), die mit dem Verarbeitungsgerät verknüpft sind, formulieren, z. B. für verschiedene Kernkomponenten und Plattformkomponenten des Verarbeitungsgerätes, einschließlich, jedoch nicht beschränkt auf einen Prozessor, einen Spannungsregulator, eine Anzeigetafel, einen Takterzeuger und/oder einer Phasenregelkreis. Bei verschiedenen Ausführungsformen kann die entwickelte Energieverwaltungsstrategie der PM-Strategie 50 der 2 ähnlich sein.
-
Bei verschiedenen Ausführungsformen können der IOPMC 110 und der PCPMC 105 weitere Faktoren in Betracht ziehen, während sie die PM-Strategie entwickeln. Wenn zum Beispiel das Verarbeitungsgerät eine direkte Medienschnittstelle (DMI – Direct Media Interface) enthält, kann die Wartezeit der DMI ebenso in Betracht gezogen werden, wenn die PM-Strategie entwickelt wird.
-
Bei verschiedenen Ausführungsformen können die Anwendungen, die Treiber und/oder das OS 150, die Baugruppen 112, ..., 118, die Verbindungen 122, ... 128 und/oder die Teilsysteme 132, ..., 136 eine Empfehlung für ihr Leistungsverhalten in ihre jeweiligen PM-Richtlinien einstellen, wobei die Empfehlung für das Leistungsverhalten den gegenwärtigen Wert des Leistungsverhaltens und die vorausgesagten zukünftigen Werte des Leistungsverhaltens, wenn verfügbar, dieser Komponenten umfassen kann. Die Energieverwaltungscontroller können bei verschiedenen Ausführungsformen eine Wartezeittoleranz für diese Komponenten aus der empfangenen Empfehlung für das Leistungsverhalten berechnen. Als Alternative kann die gesendete Empfehlung für das Leistungsverhalten die Wartezeittoleranz umfassen.
-
Obwohl die Baugruppen 112, ..., 118 und die Teilsysteme 132, ..., 136 der 3 so gezeigt sind, dass sie mit dem IOPMC 110 gekoppelt sind, können bei verschiedenen Ausführungsformen einige der Baugruppen und Teilsysteme an den PCPMC 105 gekoppelt sein, anstatt (oder als Option zusätzlich) mit dem IOPMC 110. Zum Beispiel kann ein externer Bus und/oder eine Grafikkarte auf einem PCIe Grafik(PEG)-Port an den PCPMC 105 gekoppelt sein und jeweilige PM-Richtlinien für den PCPMC 105 zur Verfügung stellen.
-
4 ist ein Ablaufdiagramm eines Energieverwaltungsverfahrens 200, das für die Richtlinien für die Energieverwaltung der 2 und 3 gemäß verschiedenen Ausführungsformen geeignet ist. Mit Bezug auf die 2 und 3 können, bei 210, der PCPMC 105 und der IOPMC 110 Energieverwaltungs-Richtlinien von einer ersten Vielzahl von Komponenten empfangen, welche eine (n, s) oder mehrere der Anwendungen, Gerätetreiber und den OS 150, Baugruppen 112, ... 118, Verbindungen 122, ..., 128 und/oder Teilsysteme 132, ..., umfassen. Bei 220 können der PCPMC 105 und der IOPMC 110 gemeinsam eine PM-Strategie für eine zweite Vielzahl von Baugruppen entwickeln, einschließlich einer oder mehrerer Kernkomponenten und Plattformkomponenten des Verarbeitungsgerätes, zum Beispiel für einen Prozessor, einen Spannungsregulator, eine Anzeigetafel, einen Takterzeuger und/oder einen Phasenregelkreis. Bei verschiedenen Ausführungsformen kann eine oder können mehrere aus der ersten Vielzahl der Komponenten auch in der zweiten Vielzahl der Komponenten enthalten sein.
-
Bei 230 wird entschieden, basierend wenigstens teilweise auf der entwickelten PM-Strategie, ob eine oder mehrere aus der zweiten Vielzahl der Komponenten und/oder Ressourcen in einen Schlafmodus (z. B. einen Modus niedriger Leistung) eintreten soll. Wenn keine der Komponenten in einen Schlafmodus eintritt, können der PCPMC 105 und der IOPMC 110 weiter Richtlinien für die Energieverwaltung von der ersten Vielzahl der Komponenten bei 210 erhalten.
-
Wenn die entwickelte PM-Strategie bei 230 angibt, dass eine oder mehrere aus der zweiten Vielzahl der Komponenten und/oder Ressourcen in einen Schlafmodus eintreten sollen, können die bezeichneten Komponenten in geeignete Schlafmodi eintreten, bei 240, basierend wenigstens teilweise auf der entwickelten PM-Strategie. Die Komponenten können in dem Schlafmodus verbleiben, wenn es keine Unterbrechung gibt, z. B. ein Prozessorunterbrechungsereignis, einen HW-Interrupt oder irgendeine andere einschlägige Unterbrechung, die den Fachleuten gut bekannt ist. Beim Erfassen einer solchen Unterbrechung bei 250 können die Komponenten bei 260 aus dem Schlafzustand austreten, um in einen normalen Ausführungszustand einzutreten, und der PCPMC 105 und der IOPMC 110 kann weiter die Richtlinien für die Energieverwaltung von der ersten Vielzahl der Komponenten bei 210 empfangen.
-
6 veranschaulicht ein Blockschaubild eines beispielhaften Computersystems 500, das geeignet sein kann, einige der Ausführungsformen in die Praxis umzusetzen, einschließlich der Systeme zum Empfangen von Richtlinien für die Energieverwaltung und zum Entwickeln von Energieverwaltungsstrategien basierend wenigstens teilweise auf den empfangenen Richtlinien für die Energieverwaltung. Bei manchen Ausführungsformen kann das Computersystem 500 einen Kommunikationsmechanismus oder einen Bus 511 zum Kommunizieren von Information und eine Komponente mit integrierter Schaltung, so wie einen Prozessor 512, der mit dem Bus 511 gekoppelt ist, zum Verarbeiten von Information umfassen.
-
Das Computersystem 500 umfasst weiter einen Speicher mit wahlfreiem Zugriff (RAM – Random Access Memory) oder eine andere dynamische Speichereinheit 504 (die als Hauptspeicher bezeichnet wird), die an den Bus 511 zum Speichern von Information und Befehlen, die von dem Prozessor 512 ausgeführt werden, gekoppelt ist. Der Hauptspeicher 504 kann außerdem zum Speichern temporärer Variablen oder anderer ummittelbarer Information während des Ausführens von Befehlen durch den Prozessor 512 verwendet werden.
-
Firmware 503 kann eine Kombination aus Software und Hardware sein, so wie ein elektronisch programmierbare Nur-Lese-Speicher (EPROM – Electronical Programmable Read Only Memory), wobei die Arbeitsschritte für die Routine auf dem EPROM aufgezeichnet sind. Die Firmware 503 kann Basiscode einbetten, einen Basis-Eingabe/Ausgabe-Systemcode (BIOS – Basic Input/Output Sytem Code) oder einen ähnlichen Code. Die Firmware 503 kann es dem Computersystem 500 möglich machen, sich selbst hochzufahren.
-
Das Computersystem 500 weist auch einen Nur-Lese-Speicher (ROM – Read Only Memory) und/oder eine weitere statische Speichereinheit 506, die an den Bus 511 gekoppelt ist, zum Speichern von statischer Information und von Befehlen für den Prozessor 512 auf. Die statische Speichereinheit 506 kann Software auf Betriebssystemebene und auf Anwendungsebene speichern.
-
Das Computersystem 500 kann weiter mit einer Anzeigevorrichtung 521 gekoppelt sein, so wie einer Kathodenstrahlröhre (CRT – Cathode Ray Tube) oder einer Flüssigkristallanzeige (LCD – Liquid Crystal Display), die an den Bus 511 gekoppelt ist, zum Anzeigen von Information für den Benutzer eines Computers. Ein Chipsatz, so wie der Chipsatz 536, kann die Schnittstelle zu der Anzeigevorrichtung 521 bilden.
-
Eine alphanumerische Eingabevorrichtung (Tastatur) 522, die alphanumerische und weitere Tasten umfasst, kann ebenfalls an den Bus 511 zum Kommunizieren von Information und Befehlsauwahlen an den Prozessor 512 gekoppelt sein. Eine zusätzliche Benutzereingabevorrichtung ist die Cursorsteuervorrichtung 523, so wie eine Maus, eine Rollkugel, ein Trackpad, ein Stift oder Cursor-Richtungstasten, die an den Bus 511 zum Kommunizieren von Richtungsinformation und Befehlsauswahlen an den Prozessor 512 und zum Steuern der Cursorbewegung auf eine Anzeigevorrichtung 521 gekoppelt ist. Ein Chipsatz, so wie der Chipsatz 536, kann eine Schnittstelle mit den Eingabe/Ausgabe-Vorrichtungen bilden.
-
Ein weiteres Gerät, das an den Bus 511 gekoppelt werden kann, ist ein Druckgerät 524, das zum Drucken von Befehlen, Daten oder anderer Information auf ein Medium, so wie Papier, Film oder ähnliche Typen von Medien, benutzt werden kann. Weiterhin können als Option ein Tonaufzeichnungs- und Wiedergabegerät, so wie ein Lautsprecher und/oder ein Mikrofon (nicht gezeigt) mit dem Bus 511 gekoppelt sein, um eine Audioschnittstelle mit dem Computersystem 500 zu bilden. Eine weitere Baugruppe, die mit dem Bus 511 gekoppelt sein kann, ist eine verdrahtete/drahtlose Kommunikationsmöglichkeit 525.
-
Das Computersystem 500 hat eine Energieversorgung 528, so wie eine Batterie, eine Wechselstrom-Steckerverbindung und Gleichrichter usw., wie ein Durchschnittsfachmann basierend wenigstens auf den hierin zur Verfügung gestellten Lehren verstehen würde.
-
Bei verschiedenen Ausführungsformen kann ein Energieverwaltungscontroller (in der 6 nicht gezeigt), ähnlich dem PMC 15 der 2 und/oder dem PCPMC 105/IOPMC 110 der 3, in dem Computersystem 500 der 6 enthalten sein. Bei verschiedenen Ausführungsformen kann der Energieverwaltungscontroller an den Bus 511 gekoppelt sein und kann Richtlinien für die Energieverwaltung von einer Vielzahl von Komponenten des Computersystems 500 erhalten, z. B. einer oder mehreren Anwendungen, die so ausgelegt sind, dass sie von dem Prozessor 512 ausgeführt werden, einem OS des Computersystems 500, einem oder mehreren Gerätetreibern des Computersystems 500, Firmware 503, einem Chipsatz 536, einem oder mehreren Controllern (z. B. einem USB-Hostcontroller, einem Speichercontroller, einem Ethernet-Controller, einem Grafikcontroller usw., in der Figur nicht gezeigt) des Computersystems 500, einem oder mehreren Geräten, die an das Computersystem 500 gekoppelt sind, einschließlich, jedoch nicht beschränkt auf eine Anzeigevorrichtung 521, eine Tastatur 522, eine Cursorsteuervorrichtung 523, ein Druckgerät 524, eine Kommunikationsschnittstelle 525 usw. Bei verschiedenen Ausführungsformen kann der Energieverwaltungscontroller Richtlinien für die Energieverwaltung für eine Vielzahl von Komponenten des Computersystems 500 entwickeln, z. B. für eine oder mehrere Plattformkomponenten des Computersystems 500, einen Prozessor 512, einen Chipsatz 536, einen oder mehrere Spannungsregulatoren und Takterzeuger, die in dem Computersystem 500 enthalten sind, einen Phasenregelkreis, eine Anzeigetafel (z. B. die Anzeigevorrichtung 521) usw. Bei verschiedenen Ausführungsformen kann der Prozessor 512 so ausgelegt sein, dass er eine Vielzahl von Aufgaben ausführt, um einen Betriebssystemdienst, einen Gerätetreiberdienst und/oder eine oder mehrere Anwendungsfunktionen zur Verfügung zu stellen. Bei verschiedenen Ausführungsformen kann der Energieverwaltungscontroller Richtlinien für die Energieverwaltung und Empfehlungen für das Leistungsverhalten, wie zuvor diskutiert, von einer oder mehreren der Aufgaben, die von dem Prozessor 512 ausgeführt werden, erhalten.
-
Bei einer oder mehreren Ausführungsformen können der Prozessor 512 und der Energieverwaltungscontroller zusammen auf einer integrierten Schaltung angeordnet sein. Wenn der Energieverwaltungscontroller einen PCPMC und einen IOPMC (ähnlich wie bei 3) enthält, können bei verschiedenen Ausführungsformen der Prozessor 512 und der PCPMC zusammen auf einem integrierten Chip angeordnet sein, und bei verschiedenen Ausführungsformen kann der IOPMC in einem I/O-Komplex (in der Figur nicht gezeigt) des Computersystems 500 angeordnet sein. Bei verschiedenen Ausführungsformen kann der Prozessor 512 so ausgelegt sein, dass er als einer oder mehrere der Energieverwaltungscontroller arbeitet, die zuvor diskutiert worden sind. Bei verschiedenen Ausführungsformen können das Computersystem 500, einschließlich dem Prozessor 512, verschiedene Hardwarekomponenten und/oder der Energieverwaltungscontroller Abmessungen oder Formen haben, die so gestaltet sind, dass sie es erleichtern, dass das Computersystem 500 für die mmobile Verarbeitung benutzt werden kann. Bei verschiedenen Ausführungsformen kann das Computersystem 500 als ein Mobiltelefon, ein Laptop, ein persönlicher digitaler Assistent, ein Palmtop, ein MP3-Player, ein Personal Computer, eine Settop-Box oder irgendein anderer geeigneter Typ eines Verarbeitungsgerätes verwendet werden. Bei verschiedenen Ausführungsformen kann das Computersystem 500 als ein mobiles Verarbeitungsgerät verwendet werden. Bei verschiedenen Ausführungsformen können der Prozessor 512 und verschiedene Komponenten des Computersystems 500 in einem Gehäuse untergebracht sein, das eine Abmessung oder Form hat, die so gestaltet ist, dass sie es erleichtert, dass das Computersystem für die mobile Verarbeitung verwendet wird.