Vorbreiten der Hardware für den modernen Standbymodus

Hardwarekomponenten müssen auf der Einstieg in die moderne Standby-Funktion vorbereitet sein, um den Übergang zu einem Niedrigen-Strom-Betrieb zu machen. Nachdem Softwarekomponenten und Apps für den Betrieb mit geringer Leistung vorbereitet wurden, müssen Hardwarekomponenten, einschließlich ihrer Softwaregerätetreiber, ähnlich vorbereitet sein für den Betrieb mit geringer Leistung.

Der Rest dieses Artikels erläutert, wie sie die Geräte außerhalb und innerhalb des Systems auf einem Chip (SoC) vorbereiten, um im Niedrig-Power-Modus zu arbeiten, nachdem die Hardwareplattform standby ist.

Hardwareübergänge zum Modus mit geringer Leistung

Alle Geräte außerhalb des SoC und innerhalb des SoC müssen einen Niedrigleistungsmodus eingeben, um während des Schlafes lange Akkulaufzeit zu erzielen. Nachdem eine Hardwareplattform den Schlaf eingibt, wechseln die Geräte in der Plattform in einen geordneten Prozess, der mit den Geräten außerhalb des SoC beginnt.

Zunächst müssen alle Geräte außerhalb des SoC- oder Core-Silicons einen Niedrigleistungsmodus eingeben. Der Strommodus kann ein leerer Uhrzustand sein, z. B. ein I²C-angefügter Touchcontroller in einem Schlafmodus. Oder der Strommodus kann ein power-gated, 0-Watt-Zustand namens D3cold sein. Eine USB-angefügte Webkamera wechselt häufig während des modernen Standby-Modus zu D3cold. Weitere Informationen finden Sie unter Unterstützung von D3cold für USB-Geräte.

Jeder Geräteklasse und Verbindungsbus verfügt über eigene Terminologie und Anforderungen für den Übergang eines Geräts zum niedrigsten Leistungsmodus. Es ist jedoch wichtig, dass ein Systemdesigner einen Betriebsmodus mit geringer Leistung für jedes Gerät in der Plattform während des modernen Standbys plant. Die Akkulaufzeit des Systems und die Möglichkeit, den SoC selbst in einem Niedrigleistungsmodus zu platzieren, hängt von der richtigen Energieverwaltung jedes Geräts außerhalb des SoC selbst ab.

Als Nächstes werden Netzwerk- und Radiogeräte im Modus mit niedriger Leistung für den Schlaf platziert. Während des Schlafes haben diese Geräte häufig immer noch Strom auf die Erhaltung der Konnektivität angewendet und sind erforderlich, um die SoC bei Bedarf zu aktivieren. Kommunikations- und Funkgeräte geben in der Regel den D2/D3-Zustand mit niedriger Leistung ein, obwohl der Einstieg in jeden Zustand gerätespezifische und busspezifische Geräte ist.

Nachdem alle Geräte außerhalb des SoC, einschließlich Kommunikationsgeräte, heruntergefahren wurden, werden die Hostcontroller auf dem SoC deaktiviert. Fast jede SoC verfügt über USB, I²C, GPIO, SDIO und UART-Hostcontroller. Jede dieser Komponenten auf dem SoC muss deaktiviert werden, damit der SoC einen Niedrigleistungsmodus eingeben kann.

Der Prozess zum Vorbereiten der Hardware für geringe Leistung während des Schlafs kann als nach oben orientierte Pyramide dargestellt werden, wie im folgenden Diagramm dargestellt. Die niedrigste Leistung wird erreicht, wenn der gesamte SoC-Chip heruntergefahren wird, dies kann jedoch nur auftreten, nachdem jede Gruppe von Geräten über der Pyramide heruntergefahren wurde.

Power pyramid

Herunterschalten der Geräte außerhalb des SoC

Jedes Gerät außerhalb des SoC-Chips muss einen Niedrigleistungsmodus für zwei wichtige Ziele eingeben:

  • Verringern Sie den Stromverbrauch des Geräts.
  • Lassen Sie den SoC selbst herunter, indem der On-SoC-Hostcontroller, mit dem das Gerät verbunden ist, heruntergeschaltet werden kann.

Die Methode zum Herunterfahren jedes Geräts außerhalb des SoC variiert je nach Geräteklasse und angefügtem Bus.

Einige Geräte außerhalb des SoC werden in einem 0-Watt-, no-power-verbrauchten Zustand namens D3cold platziert. Allgemeine Geräte für D3cold umfassen Kameras und Sensoren. Der Treiber muss den Registerzustand des Geräts speichern und dann auf den D3-Stromzustand übertragen. Power wird von der ACPI-Firmware entfernt, indem eine GPIO-Linie oder ein Power Rail aus dem Power Management IC (PMIC) deaktiviert wird.

Einige Geräte außerhalb des SoC werden im Leerlaufmodus mit niedriger Leistung platziert, in dem der Registerzustand beibehalten wird, oder das Gerät kann einfach uhrgeschützt sein. So verfügen beispielsweise viele Touchcontroller über einen uhrgesteuerten Zustand, der weniger als 1 Milliwatt Strom verbraucht. Die typischen Vorteile für die Verwendung eines Uhr-gated-Zustands sind schnellere Power-On-Zeit und geringere Kosten, indem sie das Gerät nicht mit einer umschaltbaren Power Rail verbinden müssen.

Im Allgemeinen muss jedes Gerät außerhalb des SoC in den Niedrigleistungsmodus gelangen, der weniger als 1 Milliwatt Strom verbraucht. Geräte, die dieses Leistungsniveau nicht mit einem internen Uhr-Gated-Zustand erreichen können, sollten Power-Gating über D3cold implementieren.

Netzwerk- und Funkgeräte sind die bemerkenswerte Ausnahme der 1-Milliwatt-Richtlinie. Netzwerk- und Funkgeräte erfordern möglicherweise mehr Strom, um eine Verbindung mit dem Netzwerk zu erhalten oder drahtlose Geräte zu hören. Einige Systemdesigner verweisen auf diese Power-State-Übergänge als Laufzeit D3 (RTD3 ).

Weitergeleitete Energieverwaltung für PCIe-Geräte

PCIe-Karten außerhalb des SoC müssen einen gerichteten PowerManagement-Mechanismus namens Device-S4 aktivieren, um sicherzustellen, dass sie einen Niedrigleistungsmodus eingeben können. Ohne Device-S4 unterstützt ein Benutzer ein Gerät in einen PCIe-Stammport mit benutzerfreundlichen Steckplätzen auf einem Desktop-Modern-Standby-System, und der Treiber für das Gerät unterstützt die Laufzeit D3 (RTD3) möglicherweise nicht, kann das PCIe-Gerät verhindern, dass das System DRIPS eingibt. Um dieses Problem zu vermeiden, müssen OEMs sich in den Stammports des PCIe-Geräts auf Device-S4 anmelden. Für Geräte-S4, die für ein bestimmtes PCIe-Gerät eingesetzt werden sollen, müssen die folgenden Anforderungen erfüllt sein:

  1. Der übergeordnete PCIe-Stammport für das Gerät muss als Einschränkung für DRIPS angegeben werden.
  2. Der übergeordnete PCIe-Stammport muss den grundlegenden Geräterücksetzung für alle untergeordneten Elemente nach dem Stammport auf dem D0-D3-Übergang> des Stammports anwenden und die grundlegenden Geräte auf diese untergeordneten Geräte auf den Übergang D3-D0> zurücksetzen. Weitere Informationen zu grundlegenden Zurücksetzen von PCIe finden Sie unter Abschnitt 6.6.1 der PCI Express Base-Spezifikation. Die Anwendung des grundlegenden Zurücksetzens kann durch ergänzende AKPI-Mechanismen bereitgestellt werden. Weitere Informationen finden Sie in diesem Leitfaden zu PCI Power Management. Um anzugeben, dass die Plattform diese grundlegende Reset-Anforderung berücksichtigt, muss die Firmware _DSD definieren, wobei die GUID {FDF06FAD-F744-4451-BB64-ECD792215B10} unterstützt wird. Ohne dies wird die direkt ausgerichtete DRIPS für Geräte unter diesem PCIe-Stammport nicht ausgelöst. Weitere Informationen finden Sie in den ACPI-Gerätespezifischen Daten (_DSD) für PCIe-Stammports.
  3. Power-Ressourcen müssen für einen bestimmten PCIe-Stammport eindeutig sein, d. h. nicht für einen anderen Stammport freigegeben.

Bitte beachten Sie, dass PCIe-Karten, die Kompatibilitätsunterstützungsmodule (CSM) erfordern, nicht in modernen Standbysystemen funktionieren. CSM wird aufgrund der UEFI Secure Boot-Anforderung im BIOS auf modernen Standbysystemen nicht unterstützt. Weitere Informationen finden Sie unter Windows Hardwarekompatibilitätsprogrammspezifikation.

Weitere Informationen zur Energieverwaltung für bestimmte Geräteklassen werden systemdesigner aufgefordert, gerätespezifische Power Management für moderne Standby sowie gerätespezifische Dokumentation zu Microsoft Collaborate zu überprüfen.

Herunterschalten von Netzwerkgeräten

Das Aktivieren der Netzwerk- und Funkgeräte ist ein weiterer wichtiger Bestandteil der Vorbereitung der Hardware für den Betrieb mit niedriger Leistung während des Schlafs. Netzwerk- und Radiogeräte unterscheiden sich von anderen Geräten außerhalb des SoC, da sie mit stromverwendeter Leistung bleiben müssen, um interessante Ereignisse zu hören und die SoC zu aktivieren. Beispielsweise muss das Wi-Fi-Radio in der Lage sein, Pakete zu hören, die mit WoL-Mustern übereinstimmen und die SoC wachen, wenn ein übereinstimmendes Paket erkannt wird.

Windows Übergänge von Netzwerkgeräten in den D2/D3-Zustand während des Schlafs, wenn sie erwartet werden, dass die SoC aktiviert wird. Der Windows Netzwerkstapel konfiguriert WoL-Muster und Protokoll-Offloads, bevor das Gerät in den Zustand mit niedriger Leistung D2/D3 platziert wird. Alle Netzwerkgeräte, einschließlich WLAN, mobiler Breitband (MBB), und kabelgebundenes Ethernet müssen in der Lage sein, den D2/D3-Zustand während des Schlafs einzugeben. Wenn ein Netzwerkgerät nicht zum Aktivieren des Systems erforderlich ist, übergibt Windows das Gerät in den D3-Zustand. Das Netzwerkgerät kann im D3-Zustand platziert werden, wenn der Benutzer den Flugzeugmodus aktiviert oder das bestimmte Netzwerkgerät deaktiviert hat.

Jedes Gerät verfügt über eine andere physische Methode, um den SoC aus dem niedrigsten Leistungsmodus zu aktivieren. Netzwerkgeräte auf SDIO oder UART werden erwartet, dass eine GPIO-Linie signalisiert wird, um die SoC zu aktivieren. Netzwerkgeräte, die über USB oder HSIC verbunden sind, werden erwartet, dass die In-Band-USB-Fortsetzungssignalierung verwendet wird, um die SoC zu aktivieren. Netzwerkgeräte auf PCI- oder PCIe-Bussen werden erwartet, dass die In-Band-PME-Signalisierung verwendet wird, um die SoC zu aktivieren.

Darüber hinaus wird ein Funkgerät, z. B. ein Bluetooth- oder Nahfeldkommunikationsgerät (NFC) erwartet, dass er zum D2-Zustand wechselt, wenn der Benutzer das Radio für dieses Gerät aktiviert hat. Im D2-Zustand hört ein Bluetooth Radio für Eingabeereignisse aus gekoppelten Mäusen und Tastaturen. Wenn ein Eingabeereignis erkannt wird, schaltet das Bluetooth Radio eine GPIO-Linie, die mit dem SoC verbunden ist, wodurch die SoC aus dem Modus mit niedriger Leistung aufwacht.

Jedes Netzwerk- oder Funkgerät verfügt über eine eigene Implementierung des Powerdowns für den modernen Standbymodus. Systemdesigner werden aufgefordert, die gerätespezifischen Dokumente auf der Microsoft Collaborate-Website zu lesen.

Herunterschalten von On-SoC-Hostcontrollern

Nachdem alle Geräte außerhalb des SoC, einschließlich Netzwerk- und Radiogeräte, heruntergefahren wurden, müssen die Hostcontroller, an die die Geräte angeschlossen sind, heruntergeschaltet werden. Allgemeine Hostcontroller umfassen USB, PCI, SDIO, GPIO und I²C.

Der Treiber für jeden Hostcontroller kann die Hardware nur herunterfahren, nachdem jedes Gerät, das mit dem Hostcontroller verbunden ist, heruntergefahren wurde. Ein gängiges Beispiel ist der USB-Hostcontroller. Der USB-Hostcontroller kann nur nach allen USB-Geräten, die mit ihr verbunden sind, einen selektiven Angehaltenen Zustand einschalten. Wenn ein USB-Hostcontroller über eine USB-Maus und tastatur angeschlossen ist, kann der Hostcontroller nur nach dem Herunterschalten der Maus und der Tastatur abgeschaltet werden. Wenn entweder die Maus oder die Tastatur aktiviert bleibt, bleibt der USB-Hostcontroller ebenfalls aktiviert.

Alle Hostcontroller auf dem SoC müssen für den Schlaf deaktiviert werden, damit sich der SoC selbst herunterschalten kann. Deshalb ist es wichtig, dass jedes Gerät die Energieverwaltung für Geräte ausführt. Der SoC selbst kann nur heruntergefahren werden, wenn jeder Hostcontroller heruntergefahren wurde. Die Hostcontroller können nur heruntergefahren werden, nachdem alle Geräte, die mit ihnen verbunden sind, heruntergefahren sind.

Herunterschalten von CPUs und GPUs

In Bezug auf die Energieverwaltung unterscheiden sich CPUs und GPUs auf dem SoC-Chip von anderen Geräten. CPUs und GPUs power down als Teil des Powering the SoC selbst und können heruntergefahren werden, wenn keine Softwareaktivitäten darauf ausgerichtet sind.

Die meisten Softwareaktivitäten auf dem System werden durch die Vorbereitungsphasen beendet, die in der Vorbereitungssoftware für moderne Standby-Software beschrieben sind. Microsoft Store Apps werden als Teil der PLM-Phase angehalten. Desktopanwendungen werden als Teil des Abschlusses der DAM-Phase angehalten. Die einzigen CPU-Aktivitäten, die bleiben, nachdem die Plattform die Resilienzphase eingegeben hat, sind Leerlaufvorgänge von Windows selbst. Ebenso gibt es wenig GPU-Aktivität, da alle Apps angehalten wurden und der Bildschirm deaktiviert ist.

Windows verwaltet kontinuierlich den Leistungszustand der CPUs auf dem System, auch wenn der Bildschirm aktiviert ist und der Benutzer mit dem PC arbeitet. Die gleiche CPU-Power-Statusverwaltung platziert die CPUs im Modus mit niedriger Leistung während des Schlafs. Wenn sich alle CPUs im Low-Power-Modus befinden und alle Hostcontroller auf dem SoC heruntergeschaltet wurden, kann der SoC selbst heruntergefahren werden.

Aktivieren des SoC

Wenn alle einzelnen Hostcontroller, CPUs und GPUs auf dem SoC heruntergefahren wurden, bestimmt Windows, ob es sicher ist, den gesamten SoC selbst zu aktivieren. Der SoC-Anbieter stellt ein Power Engine Plug-In (PEP) bereit, um Windows zu informieren, wenn der gesamte Zustand auf dem SoC gespeichert wurde, damit der SoC bereit ist, einen Niedrigleistungsmodus einzugeben. Für Intel basierte SoCs wird der PEP-Posteingang bereitgestellt.

Jeder SoC-Anbieter verfügt über eine andere Implementierung eines soC-breiten Low-Power-Zustands. Diese Zustände sind in der Regel entweder ein Uhr- oder Power-Gated-Zustand, in dem Speicherinhalte in selbstaktualisierung erhalten bleiben, und das System kann von einem programmierbaren Zeitgeber und einer kleinen Anzahl von GPIO-Pins aktiviert werden, die sehr wenig Strom verbrauchen. Windows bezieht sich auf den niedrigsten SoC-Power-Zustand als tiefen Laufzeit-Leerlaufplattformstatus (DRIPS).

Der DRIPS-Zustand weist immer die folgenden Merkmale auf:

  • DRIPS ist der niedrigste Stromverbrauchszustand für den SoC, in dem der Arbeitsspeicher im Selbstaktualisierungsmodus beibehalten wird.
  • DRIPS ermöglicht es dem SoC, Ereignisse aus Netzwerken, Radio und Eingabegeräten zu aktivieren.
  • Während des DRIPS-Zustands darf kein CPU-Code ausgeführt werden.
  • Wenn sich der SoC im DRIPS-Zustand befindet, verwendet die Plattform die geringste Energiemenge, die während des Schlafs möglich ist (mit Ausnahme von Varianzen im Stromverbrauch, die durch Netzwerk- und Radiogeräte verursacht werden).