Status Low-Power Geräts

Die Gerätestromzustände D1, D2 und D3 sind die Zustände mit geringer Stromversorgung des Geräts. Ab Windows 8 ist D3 in zwei Unterstates unterteilt: D3hot und D3cold.

D1 und D2 sind zwischengeschaltete Zustände mit geringer Leistung. Viele Geräteklassen definieren diese Zustände nicht. Alle Geräte müssen D3hot definieren.

In den folgenden Abschnitten werden D1, D2 und D3 beschrieben:

Gerätestromzustand D1

Der Gerätestromzustand D1 ist der leistungsschwache Zustand des Geräts mit der höchsten Leistung. Das Repository weist die folgenden Merkmale auf:

Stromverbrauch
Der Verbrauch ist kleiner als im D0-Zustand, aber größer oder gleich dem Verbrauch im D2-Zustand. Häufig ist D1 ein durch die Uhr geschlossener Zustand, in dem das Gerät gerade genug Strom erhält, um den Hardwarekontext des Geräts beizubehalten. In der Regel beschreibt die Spezifikation für einen Bus oder eine Geräteklasse, die D1 unterstützt, diesen Zustand ausführlicher.

Gerätekontext
Im Allgemeinen wird der Gerätekontext von der Hardware beibehalten und muss nicht vom Treiber wiederhergestellt werden. Die Spezifikation für eine Bus- oder Geräteklasse, die D1 unterstützt, stellt in der Regel detaillierte Anforderungen für die Beibehaltung dieses Kontexts bereit.

Verhalten des Gerätetreibers
Treiber müssen jeglichen Von der Hardware verloren gegangenen Kontext speichern und wiederherstellen oder erneut initialisieren. In der Regel verlieren Geräte jedoch wenig Kontext, wenn sie in diesen Zustand eintreten.

Wiederherstellungszeit
Im Allgemeinen sollte die Zeit, die zum Wiederherstellen des Geräts von D1 auf D0 erforderlich ist, geringer sein als die Wiederherstellung von D2 auf D0.

Aktivierungsfunktion
Ein Gerät in D1 kann möglicherweise eine Aktivierung anfordern. Um Informationen darüber anzugeben, ob dieser Zustand ein Aktivierungssignal unterstützen kann, verwendet ein Bustreiber die DEVICE_CAPABILITIES Struktur oder, beginnend mit Windows 8, die GUID_D3COLD_SUPPORT_INTERFACE Treiberschnittstelle.

Geräte, die D1 verwenden, tun dies in der Regel, da der Treiber beim Fortsetzen dieses Zustands nicht den vollständigen Hardwarekontext des Geräts wiederherstellen muss. Um die Wahrnehmung der Verzögerung durch den Benutzer zu minimieren, sollte die Wiederherstellung eines Geräts auf D0 von D1 die geringstmögliche Verzögerung verursachen. Die Minimierung der Verzögerung beim Zustandsübergang ist wichtiger als die Reduzierung des Stromverbrauchs.

Gerätestromzustand D2

D2 ist ein Gerätezwischenzustand mit geringer Stromversorgung mit den folgenden Merkmalen:

Stromverbrauch
Der Verbrauch ist kleiner oder gleich dem Verbrauch im D1-Zustand.

Gerätekontext
Im Allgemeinen geht der Großteil des Gerätekontexts durch die Hardware verloren. Dieser Zustand behält häufig den Teil des Kontexts bei, der zum Signalisieren von Aktivierungsereignissen verwendet wird. Die Spezifikation für eine Bus- oder Geräteklasse, die D2 unterstützt, stellt in der Regel detaillierte Anforderungen für die Beibehaltung dieses Kontexts bereit.

Verhalten des Gerätetreibers
Gerätetreiber müssen jeglichen von der Hardware verloren gegangenen Kontext speichern und wiederherstellen oder erneut initialisieren. Ein typisches Gerät verliert den größten Teil des Kontexts, wenn es in D2 eintritt.

Wiederherstellungszeit
Die Wiederherstellung des Geräts von D2 auf D0 dauert mindestens so lange, wie das Gerät von D1 auf D0 wiederhergestellt wird. Ein Grafikadapter mit einem großen Rahmenpuffer ist ein Beispiel für ein Gerät, das über einen großen Hardwarekontext verfügt, der nach einem Übergang von D2 zu D0 wiederhergestellt werden kann. Für ein solches Gerät kann die Wiederherstellungszeit von D2 viel größer als die Wiederherstellungszeit von D1 sein.

Aktivierungsfunktion
Ein Gerät in D2 kann möglicherweise eine Aktivierung anfordern. Um Informationen darüber anzugeben, ob dieser Zustand ein Aktivierungssignal unterstützen kann, verwendet ein Bustreiber die DEVICE_CAPABILITIES Struktur oder, beginnend mit Windows 8, die GUID_D3COLD_SUPPORT_INTERFACE Treiberschnittstelle.

Treiber, die D2 unterstützen, tun dies in der Regel, da ihre Geräte keine Aktivierung von D3 unterstützen können. Bei diesen Geräten sinkt der Energieverbrauch im D2-Zustand auf die niedrigste Ebene, von der aus das Gerät als Reaktion auf ein Aktivierungssignal wiederhergestellt werden kann. Im Gegensatz zum D1-Zustand, der implementiert wird, um die vom Benutzer wahrgenommene Verzögerung zu reduzieren, besteht das Ziel bei der Implementierung des D2-Zustands darin, Energie zu sparen. Daher überschreitet die Wiederherstellungszeit von D2 bis D0 in der Regel die Zeit von D1 bis D0. Im D2-Zustand kann beispielsweise eine geringere Stromversorgung des Bus dazu führen, dass ein Gerät einen Teil seiner Funktionalität ausschaltet, sodass zusätzliche Zeit zum Neustarten und Wiederherstellen des Geräts benötigt wird.

Viele Geräteklassen definieren diesen Zustand nicht.

Gerätestromzustand D3

D3 ist der Energiesparzustand des geräts mit der niedrigsten Leistung. Dieser Zustand muss von allen Geräten unterstützt werden.

Ab Windows 8 unterteilt das Betriebssystem D3 in zwei separate und unterschiedliche Unterstate, D3hot und D3cold. Frühere Versionen von Windows definieren den D3-Zustand, aber nicht die Unterstate D3hot und D3cold. Allerdings definieren alle Versionen der PCI Bus Power Management Interface Specification separate D3hot- und D3cold-Unterstates, und die Versionen 4 und höher der Advanced Configuration and Power Interface Specification definieren D3hot- und D3cold-Unterstates.

Obwohl Versionen von Windows vor Windows 8 nicht explizit die Unterstate D3hot und D3cold von D3 definieren, sind diese Unterstate implizit in diesen früheren Versionen von Windows vorhanden. Ein Gerät befindet sich implizit im Unterzustand D3hot, wenn sich das Gerät explizit im D3-Zustand befindet und sich der Computer im S0-Systembetriebszustand befindet. In D3hot ist ein Gerät mit einer Stromquelle verbunden (obwohl das Gerät möglicherweise so konfiguriert ist, dass es einen niedrigen Strom zeichnet), und das Vorhandensein des Geräts im Bus kann erkannt werden. Ein Gerät befindet sich implizit im Unterzustand D3cold, wenn es sich explizit im D3-Zustand befindet und sich der Computer in einem Sx-Zustand mit geringer Leistung befindet (ein anderer Zustand als S0). In diesem impliziten D3cold-Unterzustand empfängt das Gerät möglicherweise einen trickle current, aber das Gerät und der Computer werden effektiv deaktiviert, bis ein Aktivierungsereignis eintritt.

Ab Windows 8 kann ein Gerät den D3cold-Unterzustand eingeben und verlassen, während der Computer im Zustand S0 verbleibt. Um dieses neue Verhalten zu unterstützen, müssen D3hot und D3cold explizit als unterschiedliche Unterstate von D3 definiert werden.

D3hot ist der einzige Unterzustand von D3, den das Gerät direkt aus D0 eingeben kann. Ein Gerät wechselt vom Gerätetreiber unter Softwaresteuerung von D0 zu D3hot. In D3hot kann das Gerät in dem Bus erkannt werden, mit dem eine Verbindung hergestellt wird. Der Bus muss im D0-Zustand bleiben, während sich das Gerät im Unterzustand D3hot befindet. Von D3hot aus kann das Gerät entweder zu D0 zurückkehren oder D3cold eingeben. D3cold kann nur über D3hot eingegeben werden.

D3cold ist ein Unterzustand von D3, in dem das Gerät physisch mit dem Bus verbunden ist, aber das Vorhandensein des Geräts im Bus nicht erkannt werden kann (d. b. bis das Gerät wieder eingeschaltet ist). In D3cold ist mindestens eine der folgenden Angaben wahr:

  • Der Bus, mit dem das Gerät eine Verbindung herstellt, befindet sich in einem Energiesparzustand.
  • Das Gerät befindet sich in einem Energiesparzustand, in dem das Gerät nicht reagiert, wenn der Bustreiber versucht, sein Vorhandensein im Bus zu erkennen.

Der Übergang von D3hot zu D3cold erfolgt ohne Gerätetreiberinteraktion. Stattdessen gibt der Gerätetreiber an, ob er für einen D3cold-Übergang vorbereitet ist, bevor er den Übergang von D0 zu D3hot initiiert. Anschließend kann ein Übergang von D3hot zu D3cold auftreten oder nicht, je nachdem, ob alle Bedingungen für diesen Übergang richtig sind.

Zwei dieser Bedingungen sind, dass sich alle Geräte, die dieselbe Stromquelle verwenden, in D3hot befinden und für einen D3cold-Übergang vorbereitet sind. Wenn das letzte dieser Geräte D3hot erreicht, schaltet der übergeordnete Bustreiber oder der ACPI-Filtertreiber die Stromquelle für diese Geräte aus, d. h., die Geräte werden in D3cold eingegeben.

Ein Gerät in D3cold kann diesen Unterzustand nur durch Eingabe von D0 verlassen. Es gibt keinen direkten Übergang von D3cold zu D3hot.

Wenn sich der Computer im Zustand S0 befindet und ein Gerät in den D3hot-Unterzustand eintritt, kann der Gerätetreiber in der Regel nicht im Voraus ermitteln, ob der nächste Übergang des Geräts zu D3cold oder D0 ist. Die einzige Ausnahme ist, wenn sich der Computer darauf vorbereitet, den S0-Zustand zu verlassen. In diesem Fall ist der nächste Übergang zu D3cold.

In den folgenden Abschnitten werden D3hot und D3cold beschrieben:

Weitere Informationen finden Sie unter Unterstützen von D3cold in einem Treiber.

D3hot-Unterzustand

D3hot hat die folgenden Merkmale:

Stromverbrauch Die Stromversorgung wird größtenteils vom Gerät entfernt, aber nicht vom gesamten Computer. Der Computer, der sich im Zustand S0 befindet, wird möglicherweise weiterhin in diesem Zustand ausgeführt, oder er bereitet sich darauf vor, von S0 in einen Sx-Zustand mit geringer Leistung zu wechseln.

Gerätekontext
Der Gerätetreiber ist allein für die Wiederherstellung des Gerätekontexts verantwortlich. Der Treiber muss den gerätekontext beibehalten und dann wiederherstellen oder das Gerät nach dem Übergang in den D0-Zustand erneut initialisieren.

Verhalten des Gerätetreibers
Der Gerätetreiber ist ausschließlich für die Wiederherstellung des Gerätekontexts verantwortlich, in der Regel aus der neuesten Arbeitskonfiguration.

Wiederherstellungszeit
Die gesamte Wiederherstellungszeit ist der höchste der Geräteleistungszustände, mit Ausnahme von D3cold, ist jedoch in der Regel nicht viel größer als die Wiederherstellungszeit von D2.

Aktivierungsfunktion
Ein Gerät im D3hot-Unterzustand kann möglicherweise eine Aktivierung anfordern. Um Informationen darüber zu liefern, ob dieser Unterzustand ein Aktivierungssignal unterstützen kann, verwendet ein Bustreiber die DEVICE_CAPABILITIES-Struktur oder ab Windows 8 die GUID_D3COLD_SUPPORT_INTERFACE-Treiberschnittstelle.

In D3hot ist nur ein minimaler Trickle Current verfügbar. Treiber und Hardware müssen auf fehlende Stromversorgung vorbereitet werden. Die Spezifikation für einen Bus, der D3hot unterstützt, stellt in der Regel detaillierte Anforderungen für Stromquellen, die in diesem Zustand verwendet werden können. Damit das Gerät wieder in den Betriebszustand übergeführt wird, müssen die Treiber des Geräts das Gerät wiederherstellen und erneut initialisieren können, ohne dass das BIOS code in der Options-ROM ausführen kann, der möglicherweise für das Gerät verfügbar ist.

Der übergeordnete Bustreiber entfernt die Systemleistung nicht aus dem übergeordneten Bus eines Geräts, das in D3hot eintritt, es sei denn, der Computer als Ganzes geht in den Zustand S0 über.

Alle Geräteklassen definieren den D3hot-Unterzustand.

D3cold-Unterzustand

D3cold hat die folgenden Merkmale:

Stromverbrauch
Die Stromversorgung wurde vollständig vom Gerät und möglicherweise aus dem gesamten System entfernt. Je nach Konstruktion kann das Gerät den Aktuellen aus Seitenbandquellen zeichnen.

Gerätekontext
Der Gerätetreiber ist allein für die Wiederherstellung des Gerätekontexts verantwortlich. Der Treiber muss den Gerätekontext beibehalten und anschließend wiederherstellen oder das Gerät nach dem Übergang in den D0-Zustand erneut initialisieren.

Verhalten des Gerätetreibers
Der Gerätetreiber ist ausschließlich für die Wiederherstellung des Gerätekontexts verantwortlich, in der Regel aus der neuesten Arbeitskonfiguration.

Wiederherstellungszeit
Die gesamte Wiederherstellungszeit ist der höchste der Energiezustände des Geräts.

Aktivierungsfunktion
Im D3cold-Unterzustand kann ein Gerät möglicherweise ein Aktivierungssignal auslösen, um einen computer imAktivzustand zu reaktiven. Diese Funktion wird in der DEVICE_CAPABILITIES-Struktur und ab Windows 8 von der GetIdleWakeInfo-Routine in der GUID_D3COLD_SUPPORT_INTERFACE-Treiberschnittstelle gemeldet. Nachdem das Signal den Computer reaktiviert hat, initiiert der Gerätetreiber den Übergang des Geräts von D3cold zu D0. Weitere Informationen finden Sie in den folgenden Anmerkungen.

Ab Windows 8 kann ein Gerät im D3cold-Unterzustand ein Aktivierungssignal für einen Computer auslösen, der sich im Energiezustand des S0-Systems befindet. Diese Funktion wird von der GetIdleWakeInfo-Routine gemeldet. Die DEVICE_CAPABILITIES-Struktur enthält keine Informationen zu dieser Funktion. Nachdem das Aktivierungssignal eintrifft, initiiert der Gerätetreiber den Übergang des Geräts von D3cold zu D0. In diesem Fall ist der Computer beim Eintreffen des Signals einaktiv, und nur das Gerät muss reaktiviert werden.

Auf vielen vorhandenen Hardwareplattformen kann ein Gerät, das sich im Zustand "Dx" mit geringer Leistung befindet, ein Aktivierungssignal auslösen, um einen computer imAktivzustand zu reaktivieren. Dasselbe Gerät kann jedoch möglicherweise kein Aktivierungssignal auslösen, wenn der Computer im S0-Zustand ausgeführt wird. Daher darf der Treiber für dieses Gerät den Übergang des Geräts von D0 in einen Dx-Zustand mit geringer Leistung nicht initiieren, wenn sich der Computer im Zustand S0 befindet. Andernfalls ist das Gerät, nachdem es D0 verlassen hat, nicht mehr verfügbar, bis der Computer den Zustand S0 verlässt. Dieses Gerät sollte den D0-Status nur dann verlassen, wenn der Computer sich darauf vorbereitet, den Zustand "S0" zu verlassen.

Wenn ein Gerät, das sich im Zustand "Dx" mit geringer Leistung befindet, ein Aktivierungssignal für einen Computer auslösen kann, der im S0-Zustand ausgeführt wird, muss das Gerät nicht in D0 verbleiben, wenn sich der Computer in S0 befindet. Wenn sich der Computer in S0 befindet und sich das Gerät in D0 befindet, sich aber im Leerlauf befindet, kann der Treiber das Gerät armisieren, um ein Aktivierungssignal auszulösen, und dann den Übergang des Geräts von D0 zu diesem Dx-Zustand mit geringer Leistung initiieren.

Einige Geräteklassen definieren den D3cold-Unterzustand.

Weitere Informationen finden Sie unter Unterstützen von D3cold in einem Treiber.