Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ACPI 6.3-Spezifikation definiert eine Reihe von Namespaceobjekten, um Geräteleistungsinformationen für ein Gerät anzugeben. Eine Gruppe von Objekten kann z. B. die Energieressourcen angeben, die ein Gerät in jedem unterstützten Gerätestromzustand benötigt. Ein anderer Objekttyp kann die Fähigkeit des Geräts beschreiben, als Reaktion auf Hardwareereignisse aus einem Energiesparzustand aufzuwachen.
Gerätestromverwaltung in Windows
Während ein System ausgeführt wird (d. h., das System befindet sich im ACPI-definierten Arbeitszustand, S0), können einzelne Geräte Übergänge zwischen Gerätestromzuständen vornehmen, je nach Aktivität, um Energie zu sparen. In herkömmlichen PC-Systemen werden ACPI-definierte Ruhezustände (S1 bis S4) auch verwendet, um Energie zu sparen, aber diese getrennten Ruhezustände mit hoher Latenz werden nicht auf Windows SoC-Plattformen verwendet. Daher hängt die Akkulaufzeit stark davon ab, wie Plattformen laufzeitbasierte Gerätestromverwaltung implementieren.
Geräte, die in das SoC integriert sind, können über das Windows Power Framework (PoFx) energieverwaltet werden. Diese Framework-integrierten Geräte werden von PoFx über ein soC-spezifisches Power Engine Plug-In (MicroPEP) verwaltet, das die Besonderheiten der SoC-Leistungs- und Taktsteuerung kennt. Weitere Informationen über PoFx finden Sie unter Übersicht über das Power Management Framework.
Für Peripheriegeräte, die nicht in das SoC integriert sind, verwendet Windows ACPI Device Power Management. Bei diesen ACPI-verwalteten Geräten trifft der Besitzer der Energierichtlinie in einem Gerätetreiberstapel (in der Regel die Funktion oder der Klassentreiber) Entscheidungen über den Wechsel des Gerätestromzustands, und der Windows ACPI-Treiber Acpi.sysruft ASL-Steuerungsmethoden auf, um die erforderlichen plattformspezifischen Leistungssteuerungen anzuwenden.
Es ist möglich, dass bestimmte Gerätestapel das ACPI Device Power Management allein oder in Kombination mit dem MicroPEP für die On-SoC Energieverwaltung verwenden.
Wie in Geräteenergiemanagement in ACPI beschrieben, unterstützt Windows die D3cold Power-Management-Fähigkeiten, die in der ACPI 5.0-Spezifikation definiert sind. Durch die Verwendung dieser Unterstützung können sich Geräte, Plattformen und Treiber dafür entscheiden, dass die Geräteleistung während der Laufzeit im Leerlauf vollständig entfernt wird. Diese Funktion kann die Akkulaufzeit erheblich verbessern. Das Entfernen von Energie muss jedoch von allen betroffenen Komponenten unterstützt werden, um erfolgreich zu D0 zurückzukehren. Aus diesem Grund müssen Treiber (Bus und Funktion) sowie die Plattform selbst kennzeichnen, dass sie dies unterstützen. Weitere Informationen zur D3cold-Treiber-Opt-In finden Sie unter Unterstützen von D3cold in einem Treiber.
Gerätestromverwaltung in ACPI
Namespacegeräte unterstützen bis zu vier Geräteleistungszustände, nummerierte D0 (Vollfunktion oder "Ein") bis D3 (keine Funktion oder "aus"). Jeder Zustand kann unterschiedliche Energieanforderungen haben, wobei höher nummerierte Zustände weniger Energie verbrauchen als weniger nummerierte Zustände. Darüber hinaus verfügt der D3(off)-Zustand über zwei Unterzustände, D3hot und D3cold. Der D3hot-Unterstatus erfordert, dass das Gerät auf seinem übergeordneten Bus zugänglich bleibt, damit es auf busspezifische Softwarebefehle reagieren kann. Diese Anforderung und die zur Erfüllung verwendete Leistung werden in D3cold entfernt. Schließlich kann ein Gerät aktiviert werden, um sich aufgrund eines Hardwareereignisses aus einem niedrigen Leistungszustand aufzuwecken und falls notwendig auch die Plattform aus einem Leerlaufzustand zu reaktivieren.
Die Plattform zeigt ihre Unterstützung für D3cold an, indem sie dem Betriebssystem die Kontrolle über das Feature "_PR3 Support" (Bit 2) gewährt, wenn dies mithilfe der plattformweiten OSPM Capabilities-Methode angefordert wird. Weitere Informationen finden Sie unter Abschnitt 6.2.10.2, "Plattformweite OSPM-Funktionen", in der ACPI 5.0-Spezifikation.
Energieverwaltete Geräte verwenden untergeordnete Objekte, um ihre Leistungsfähigkeit dem Betriebssystem zu beschreiben. In den folgenden Abschnitten werden diese Funktionen und Objekte beschrieben.
Energie-Ressourcen und -Zustände
Ein Gerät deklariert seine Unterstützung für einen Energiezustand, indem er die Menge der benötigten Energieressourcen auflistet, um in diesem Zustand zu sein. ACPI Power Resources stellt die Spannungsschienen dar, die Geräte einschalten, und die Taktsignale, die sie steuern. Diese Ressourcen werden im Stammverzeichnis des Namespace deklariert. Jede Energieressource verfügt über eine _ON und eine _OFF Methode, über die sie gesteuert wird, und eine _STA Methode, um ihren Zustand zu melden. Weitere Informationen finden Sie unter Abschnitt 7.1, "Deklarieren eines Power Resource-Objekts" der ACPI 5.0-Spezifikation.
Der Windows ACPI-Treiber , Acpi.sys, überwacht die Energieabhängigkeiten zwischen Geräten, die Ressourcen gemeinsam nutzen, und stellt beim Übergang dieser Geräte zwischen Energiezuständen sicher, dass nur die von einem Gerät tatsächlich benötigten Energieressourcen zu einem bestimmten Zeitpunkt aktiviert werden.
Energieressourcenanforderungen (_PRx)
Es gibt ein Power Resource Requirements (_PRx)-Objekt, wobei x = 0, 1, 2 oder 3 für jeden unterstützten Gerätestromzustand. Wenn sich der Gerätetreiber für den Übergang zu einem neuen Energiezustand entscheidet, stellt Acpi.sys sicher, dass alle für den neuen Zustand erforderlichen Energieressourcen aktiviert sind und dass alle ressourcen, die nicht mehr verwendet werden, deaktiviert werden.
| Unterstützter Gerätestatus | Zu verwendendes Objekt für Ressourcenanforderungen | Ressourcen, die in das Anforderungsobjekt eingeschlossen werden sollen |
|---|---|---|
| D0 (erforderlich) | _PR0 | Alle für die volle Funktion des Geräts erforderlichen Energie- und Taktkomponenten. |
| D1 | _PR1 | Alle für die klassendefinierte eingeschränkte Funktionalität dieses Zustands erforderlichen Leistungs- oder Takteinstellungen. |
| D2 | _PR2 | Jede für die von der Klasse definierte eingeschränkte Funktionalität dieses Zustands erforderliche Leistung oder Takt. |
| D3hot (erforderlich) | _PR3 | Nur die Leistung oder die Taktraten, die erforderlich sind, damit das Gerät auf seinem Bus erscheint und auf einen busspezifischen Befehl reagieren kann. |
Wenn eine bestimmte Plattform die D3cold-Funktion unterstützt und der Gerätetreiber für ein Gerät D3cold aktiviert, werden die _PR3-Energieressourcen des Geräts, sofern sie nicht von anderen Geräten genutzt werden, nach dem Wechsel zu D3cold abgeschaltet.
Weitere Informationen zu den Energieressourcenanforderungen für ein Gerät, das D3cold unterstützt, finden Sie unter Firmware requirements for D3cold.
Geräteleistungszustand (_PSx)
Es gibt eine Power State-Methode, _PSx, wobei x = 0, 1, 2 oder 3 für jeden unterstützten Geräte-Energiezustand Dx. Diese Methode ist optional, aber wenn sie vorhanden ist, wird sie aufgerufen, bevor die Energieressourcen für den Zustand deaktiviert werden, und nachdem die Energieressourcen für den Zustand aktiviert wurden. _PSx soll alle plattformspezifischen Aktionen ausführen, die für den Stromzyklus erforderlich sind. _PSx dürfen nicht auf Geräteregister zugreifen, die dem Funktionstreiber zugewiesen sind, auf Busstandardregister zugreifen, die dem Bustreiber zugewiesen sind, oder Netzressourcen ein- oder ausschalten, bei dem es sich um einen für Acpi.sysreservierten Vorgang handelt.
Wake-Funktionen
Energieverwaltete Geräte können möglicherweise Ereignisse erkennen, wenn sie sich im Energiesparzustand befinden und die Plattform aufwecken, um sie zu verarbeiten. Um dieses Feature zu aktivieren, benötigt Windows Informationen zu den Funktionen der Plattform und des Geräts.
Sx-Geräte-Aufwachzustand (_SxW)
Auf einer bestimmten Plattform gibt es eine bestimmte Zuordnung zwischen Gerätezuständen, die die Wake-Funktion und Systemzustände unterstützen, die auf Wake-Ereignisse reagieren können. ACPI definiert das _SxW-Objekt, um diese Informationen dem Betriebssystem bereitzustellen. Es gibt ein SxW-Objekt für jeden unterstützten Systemleistungszustand, Sx. Da SoC-Plattformen immer in S0 sind, ist das einzige interessante Objekt hier _S0W. Dieses Objekt gibt die Fähigkeit der Plattform an, als Reaktion auf das Wakesignal eines Geräts aus einem energiearmen Ruhezustand aufzuwachen. Das Objekt wird von Windows verwendet, um den Ziel-D-Zustand für das Gerät während des Leerlaufs des Systems zu ermitteln. Weitere Informationen zu _S0W finden Sie unter Abschnitt 7.2.20, "_S0W (S0 Device Wake State)", in der ACPI 5.0-Spezifikation.
Für die meisten SoC-Plattformen werden Geräte im Leerlauf aggressiv in den D3-Zustand versetzt, und das System kann aus einem energiesparenden Ruhezustand aufwachen, während sich das Gerät in diesem Zustand befindet. Für ein solches System gibt das _S0W-Objekt 3 zurück (oder 4, wenn es auch D3cold unterstützt).
_S0W(4) ist eine Anforderung für D3Cold, unabhängig davon, ob das Gerät das Wake unterstützt.
Jeder D-Zustand kann als leistungsärmster aufweckfähiger Zustand festgelegt werden, und verwenden unterschiedliche Werte für einige Geräteklassen oder Busse. Beispielsweise verwenden SDIO- und USB-verbundene Geräte den Zustand D2 für diesen Zustand.
Um die Migration von Gerätetreibern von Windows 7 zu Windows 8 oder Windows 8.1 zu erleichtern, muss Ihr Gerät möglicherweise auch _S4W bereitstellen. Derzeit ist die einzige Geräteklasse mit dieser Anforderung Netzwerk (Ndis.sys).
Wake-fähige Unterbrechungen (_CRS)
Die Ressourcenbeschreibung für ein Gerät gibt an, dass das Gerät in der Lage ist, ein Wake-Ereignis zu erkennen und zu signalisieren, indem ein Interrupt als "Wake-fähig" markiert wird (entweder ExclusiveAndWake oder SharedAndWake). Windows- und Gerätetreiber bieten eine spezielle Behandlung solcher Unterbrechungen, um sicherzustellen, dass sie aktiviert sind, wenn das Gerät in einen Energiesparzustand wechselt. Weitere Informationen finden Sie in den Beschreibungen der Interrupt- und GpioInt-Ressourcendeskriptoren in Abschnitt 6.4.3.6, "Extended Interrupt Descriptor" und Abschnitt 6.4.3.8.1 , "GPIO Connection Descriptors", der ACPI 5.0-Spezifikation.
Aktivierung
Je nach Benutzerszenario oder Systemrichtlinie können aufweckfähige Geräte möglicherweise tatsächlich aktiviert sein oder nicht. Daher können aufweckfähige Unterbrechungen aktiviert oder deaktiviert sein, wenn das Gerät im Leerlauf ist. Zusätzlich zum Aktivieren von Unterbrechungen verwendet Windows die folgenden Mechanismen, um das Aufwecken eines Geräts zu ermöglichen.
Geräte-Ruhezustand-Aufwecken (_DSW)
ACPI definiert das _DSW-Objekt als Möglichkeit für das Betriebssystem, die ACPI-Plattformfirmware über die nächste Ruhezustands- oder Energiesparzeit im Leerlauf zu informieren. Dieses Objekt ist optional und wird nur verwendet, wenn die Plattform im Voraus plattformspezifische Wake-Hardware konfigurieren muss. Der Ziel-D-Zustand für das Gerät und der Ziel-S-Zustand für das System werden beide bereitgestellt. Die Kombination aus D-Zustand und S-Zustand entspricht immer den Informationen, die vom _SxW Objekt(n) des Geräts bereitgestellt werden.
Power Resources for Wake (_PRW)
In einigen Fällen müssen zusätzliche Energiequellen eingeschaltet werden, damit ein Gerät aus dem Ruhezustand geweckt werden kann. In diesem Fall kann das Gerät das _PRW-Objekt bereitstellen, um diese zusätzlichen Energieressourcen auflisten zu können. Der Windows ACPI-Treiber, Acpi.sys, verwaltet diese Energieressourcen wie gewohnt, und stellt sicher, dass sie aktiviert sind, wenn sie von einem Gerät (d. h. einem aktivierten Gerät) benötigt werden und andernfalls deaktiviert sind.
_PRW wird auch verwendet, um die Aufwachfunktion für herkömmliche PC-Plattformen mit vollständiger ACPI-Unterstützung zu definieren.