Energieverwaltung für Speicherhardwaregeräte

Einführung

Dieses Dokument ist als Leitfaden für OEMs und Gerätehersteller gedacht, die die mitgelieferten SATA- und NVMe-Treiber von Microsoft unter Windows 10 Mai 2019 Update oder neueren Betriebssystemversionen verwenden. Die allgemeine Anleitung von Microsoft besteht darin, In-Box-Lösungen bereitzustellen, die in Bezug auf Leistung, Reaktionsfähigkeit und Energieeffizienz „einfach funktionieren“. Wie bei der Gesamtsystemleistung kann schlecht funktionierende Gerätehardware die Gesamteffizienz und die Akkulaufzeit beeinträchtigen. Im Allgemeinen versucht das System, die Energieeffizienz mit der Leistung auszugleichen.

Das folgende Diagramm veranschaulicht die ACPI-definierten Geräteenergiezustände D0 (in Betrieb) bis D3 (aus). Beachten Sie, dass beim Übergang des Geräts in tiefere Energiezustände der Stromverbrauch reduziert wird, die Latenz jedoch zunimmt. Beachten Sie auch, dass Windows unterschiedliche Funktionszustände (F-Zustände) unterstützt, die verwendet werden können, um die Funktionalität und Leistung der feinkörnigen Ebenen innerhalb des D0-Zustands zu steuern. Dies kann für die Laufzeit-Energieverwaltung nützlich sein, wenn das System sehr reaktionsschnell bleiben muss, aber dennoch Energie sparen muss.

Betriebszustände

ACPI-Definierte Energieverwaltung für den Schlafzustand

Wenn das System nicht verwendet wird, kann Windows das System opportunistisch in einen ACPI-definierten Ruhezustand versetzen, um Energie zu sparen. Ebenso kann Windows im Laufe der Zeit Tiefschlafzustände wählen, um noch mehr Energie zu sparen. Beispielsweise kann das System für einen Zeitraum in S3 übergehen und schließlich in S4 Hibernate übergehen. Wenn das System in einen Schlafzustand übergeht, lautet die allgemeine Faustregel, das Gerät in den tiefstmöglichen D-Zustand zu versetzen, es sei denn, das Gerät ist wachfähig und für das Aufwachen bereit. Unter diesen Bedingungen kann ein flacherer D-Zustand angemessen sein. Ebenso wechselt das Gerät, wenn das System aufwacht, zurück zu D0.

Laufzeit-Energieverwaltung

Um eine maximale Energieeffizienz zu erreichen, implementieren einige Komponenten eine sehr feinkörnige Leerlauflogik, um zu bestimmen, wann Geräte heruntergefahren werden können, selbst wenn das System aktiv verwendet wird. Beispielsweise könnte ein High-End-Speichergerät bestimmte Funktionsblöcke während der Laufzeit deaktivieren, wenn der Treiber der Ansicht ist, dass sie längere Zeit nicht verwendet wurden. Dies ist nur möglich, wenn diese Funktionsblöcke schnell genug wieder online gebracht und funktionsfähig gemacht werden können, sodass dem Benutzer keine merklichen Latenzen entstehen.

Modernes Standby-Energieverwaltung

Wenn das System nicht verwendet wird, schaltet Windows gegebenenfalls die Stromversorgung einiger Geräte ab, um Energie zu sparen. Im Modern Standby bleibt das System im S0. Auch im S0-Modus können alle Peripheriegeräte aufgrund von Leerlaufzeitüberschreitungen möglicherweise heruntergefahren werden. Dieser Zustand wird als „S0 Low Power Idle“ bezeichnet. Sobald sich alle Geräte in einem Energiesparzustand befinden, kann noch mehr Systeminfrastruktur (z. B. Busse, Timer usw.) heruntergefahren werden. Die allgemeine Faustregel lautet, das Gerät im Leerlauf in den tiefstmöglichen D-Zustand zu versetzen, selbst wenn der Systemstatus S0 ist. Abhängig von den Implementierungsdetails des Prozessorkomplexes und des Plattformdesigns müssen Peripheriegeräte möglicherweise in einen F-Zustand, D3 Hot oder D3 Cold (Stromausfall) wechseln. Um die Notwendigkeit eines Funktionstreibers zum Verwalten dieser Implementierungsdetails zu verringern, sollten Treiber in den tiefsten geeigneten Gerätezustand wechseln, um die Batterielebensdauer zu maximieren.

D3-Support

Wenn das System nicht verwendet wird, schaltet Windows gegebenenfalls die Stromversorgung einiger Geräte ab, um Energie zu sparen. Im Modern Standby bleibt das System im S0. Auch im S0-Modus können alle Peripheriegeräte aufgrund von Leerlaufzeitüberschreitungen möglicherweise heruntergefahren werden. Dieser Zustand wird als „S0 Low Power Idle“ bezeichnet. Sobald sich alle Geräte in einem Energiesparzustand befinden, kann noch mehr Systeminfrastruktur (z. B. Busse, Timer usw.) heruntergefahren werden. Die allgemeine Faustregel lautet, das Gerät im Leerlauf in den tiefstmöglichen D-Zustand zu versetzen, selbst wenn der Systemstatus S0 ist. Abhängig von den Implementierungsdetails des Prozessorkomplexes und des Plattformdesigns müssen Peripheriegeräte möglicherweise in einen F-Zustand, D3 Hot oder D3 Cold (Stromausfall) wechseln. Um die Notwendigkeit eines Funktionstreibers zum Verwalten dieser Implementierungsdetails zu verringern, sollten Treiber in den tiefsten geeigneten Gerätezustand wechseln, um die Batterielebensdauer zu maximieren.

ASL Copy  
Name (_DSD, Package () { 
     
          ToUUID("5025030F-842F-4AB4-A561-99A5189762D0"), 
     
            Package () { 
 
                Package (2) {"StorageD3Enable", 1}, // 1 - Enable; 0 - Disable 
 
            } 
        } 
 ) 

Das obige ACPI _DSD ist die bevorzugte Methode, um die D3-Unterstützung für Speichergeräte zu aktivieren oder zu deaktivieren. Es gibt jedoch auch einen globalen Registrierungsschlüssel, mit dem die D3-Unterstützung bei Bedarf geändert werden kann.

  • Name: StorageD3InModernStandby
  • Typ: REG_DWORD
  • Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Storage\
  • Wert:
    • 0 – D3-Unterstützung deaktivieren
    • 1 – D3-Unterstützung aktivieren

Wenn der Registrierungsschlüssel nicht konfiguriert ist, überprüft Storport die _DSD-Konfiguration, um festzustellen, ob D3 aktiviert werden soll. Wenn _DSD nicht implementiert ist, prüft Storport, ob die Plattform auf der Zulassungsliste für D3-Unterstützung steht.

Übergeordnete/untergeordnete Beziehung für die Energieverwaltung

Während des Einschaltens wird die übergeordnete/untergeordnete Beziehung für Speichergeräte immer erzwungen. Während des Herunterfahrens wird die Eltern-Kind-Energiebeziehung nur dann nicht erzwungen, wenn der Controller nur D3Hot unterstützt und das Gerät F1 an PoFx meldet (d. h. DEVSLP wird unterstützt oder es ist eine SSD in einem modernen Standby-System). dann darf der Controller in D3 eintreten, während sich das Gerät in F1 befindet.

In diesem Abschnitt

Thema Beschreibung

NVMe

Dieses Thema behandelt Energieverwaltungsrichtlinien für NVMe-Speichergeräte.

SATA/AHCI

Dieses Thema behandelt Energieverwaltungsrichtlinien für SATA/AHCI-Speichergeräte.