Übersicht über das Power Management Framework
Windows 7 und frühere Versionen des Betriebssystems bieten nur Unterstützung für die Energieverwaltung auf Geräteebene, wodurch ein Treiber D-Zustände auf einem Gerät unterstützen kann. Die ACPI-Spezifikation (Advanced Configuration and Power Interface) definiert die Geräteleistungszustände D0 (vollständig ein) bis D3 (vollständig aus) und definiert die Systemleistungszustände S0 (vollständig ein) bis S5 (vollständig ausgeschaltet). Diese Versionen von Windows bieten keine Mechanismen zum unabhängigen Verwalten der Energieversorgung der einzelnen Komponenten in einem Gerät. In diesen Versionen von Windows können einige Treiber benutzerdefinierte Energiesteuerungen für Komponenten implementieren, aber diese Steuerelemente erhöhen in der Regel die Komplexität von Treibern und sind möglicherweise nur möglich, wenn Die Energieeinstellungen der Komponenten innerhalb des Geräts gesteuert werden.
Ab Windows 8 unterstützt das Laufzeit-Power Management-Framework (PoFx) die Energieverwaltung auf Komponentenebene. Eine Komponente oder ein Untergerät ist eine funktionale Hardwareeinheit in einem Gerät, die unabhängig von den anderen Komponenten desselben Geräts aktiviert oder in einen Zustand mit geringer Leistung versetzt werden kann. Beispielsweise kann ein Audiogerät über separate Komponenten für die Wiedergabe und Aufzeichnung verfügen, deren Energiezustände unabhängig voneinander verwaltet werden können. Wenn die Wiedergabekomponente verwendet wird, sich die Aufzeichnungskomponente jedoch im Leerlauf befindet, kann die Aufzeichnungskomponente in einen Zustand mit geringer Leistung versetzt werden, ohne die Aktivität der Wiedergabekomponente zu beeinträchtigen.
Ein Gerätetreiber registriert sich bei PoFx, um den Stromverbrauch in den einzelnen Komponenten eines Geräts unabhängig zu verwalten. PoFx bietet die differenzierte Steuerung, die erforderlich ist, um die Zeit zu verlängern, die ein tragbarer Windows-Computer, ein Tablet, ein Smartphone oder ein anderes mobiles Gerät mit Akkuladung ausführen kann. PoFx reduziert den Energieverbrauch auf eine Weise, die das Erscheinungsbild eines mobilen Geräts aufrecht erhält, das immer eingeschaltet und immer verbunden ist.
Ein Treiber unterstützt in der Regel eine bestimmte Anzahl von Komponentenleistungszuständen, F0, F1 usw., wobei F0 der vollständig aktivierte Zustand ist. Alle Komponenten unterstützen den F0-Zustand. Der Treiber, der der Energierichtlinienbesitzer (Power Policy Owner, PPO) für die Komponenten in einem Gerät ist, ist dafür verantwortlich, alle zusätzlichen Fx-Zustände mit geringer Leistung zu definieren, die eine Komponente haben könnte. (In der Regel ist der Funktionstreiber für ein Gerät der PPO.) Dieser Treiber bestimmt die Anzahl der Fx-Zustände mit niedriger Leistung pro Komponente und die Attribute jedes Fx-Zustands. Die Fx-Zustände, die dieser Treiber definiert, können von Komponente zu Komponente auf demselben Gerät variieren.
PoFx stellt eine Gerätetreiberschnittstelle (Device Driver Interface, DDI) bereit, über die ein Treiber status- und Funktioneninformationen zu den Komponenten in einem Gerät bereitstellen kann. Folgende Informationen werden erfasst:
- Die aktuelle Aktivitätsebene jeder Komponente
- Die Zeit, die die Komponente benötigt, um von einem Energiezustand in einen anderen zu wechseln
- Der Umfang der Latenz, die von Clients des Geräts toleriert werden kann, wenn die Komponente aus einem Zustand mit geringer Energieleistung reaktiviert wird
Darüber hinaus erhält PoFx systemweite Informationen über die Leistungs- und Taktdomänen, zu denen die Komponente gehört. (Die Geräte in einer bestimmten Energiedomäne teilen sich einen gemeinsamen Power Rail; die Geräte in einer bestimmten Zeitdomäne teilen sich ein gemeinsames Taktsignal.)
Basierend auf diesen Informationen trifft PoFx intelligente Entscheidungen darüber, wann eine Komponente in einen Low-Power-Zustand gelangen soll und welcher Low-Power-Zustand eintritt. Der Entscheidungsprozess umfasst Informationen von anderen Komponenten und anderen Geräten und berücksichtigt die Abhängigkeiten zwischen den Geräten und Komponenten in den verschiedenen Leistungs- und Uhrendomänen.
Informationen zu den ersten Schritten mit PoFx finden Sie unter Referenz zur Geräteenergieverwaltung und Energieverwaltung auf Komponentenebene.