Preparare l'hardware per lo standby moderno

All'ingresso allo standby moderno, i componenti hardware devono essere preparati per eseguire la transizione all'operazione a basso consumo. Dopo aver preparato componenti software e app per operazioni a basso consumo, i componenti hardware, inclusi i driver di dispositivo software, devono essere preparati in modo analogo per il funzionamento a basso consumo.

La parte restante di questo articolo illustra come preparare i dispositivi all'esterno e all'interno del sistema su un chip (SoC) per funzionare in modalità a basso consumo dopo che la piattaforma hardware entra in standby.

Transizione hardware alla modalità a basso consumo

Tutti i dispositivi all'esterno del SoC e all'interno del SoC devono entrare in modalità a basso consumo per ottenere una lunga durata della batteria durante la sospensione. Dopo che una piattaforma hardware entra in sospensione, i dispositivi nella piattaforma passano alle modalità a basso consumo in un processo ordinato che inizia con i dispositivi all'esterno del SoC.

Prima di tutto, tutti i dispositivi al di fuori del processore SoC o core devono entrare in modalità a basso consumo. La modalità di alimentazione può essere uno stato di inattività controllata dall'orologio, ad esempio inserendo un controller tocco collegato I²C in modalità sospensione. In alternativa, la modalità di alimentazione può essere uno stato a 0 watt chiamato D3cold. Una fotocamera Web collegata tramite USB passa spesso a D3cold durante lo standby moderno. Per altre informazioni, vedere Supporto di D3cold per dispositivi USB.

Ogni classe di dispositivo e il bus di connessione ha una terminologia e requisiti specifici per la transizione di un dispositivo alla modalità di alimentazione più bassa. Tuttavia, è fondamentale che una finestra di progettazione del sistema pianiti una modalità di funzionamento a basso consumo per ogni dispositivo nella piattaforma durante lo standby moderno. La durata della batteria del sistema e la possibilità di posizionare il SoC stesso in modalità a basso consumo dipendono dalla corretta gestione dell'alimentazione di ogni dispositivo al di fuori del SoC stesso.

Successivamente, i dispositivi di rete e radio vengono posizionati in modalità a basso consumo per la sospensione. Durante la sospensione, questi dispositivi spesso hanno ancora potenza applicata per mantenere la connettività e sono necessari per riattivare il SoC, se necessario. Le comunicazioni e i dispositivi radio in genere entrano nello stato D2/D3 a basso consumo, anche se l'ingresso in ogni stato è specifico della classe del dispositivo e specifico del bus.

Dopo che tutti i dispositivi al di fuori del SoC, inclusi i dispositivi di comunicazione, sono stati spenti, i controller host nel SoC verranno disattivati. Quasi tutti i soC hanno controller host USB, I²C, GPIO, SDIO e UART. Ognuno di questi componenti nel SoC deve essere disattivato per consentire al SoC di attivare una modalità a basso consumo.

Il processo di preparazione dell'hardware per la bassa potenza durante la sospensione può essere visualizzato come una piramide capovolto, come illustrato nel diagramma seguente. La potenza più bassa si ottiene quando l'intero chip SoC è spento, ma questo può verificarsi solo dopo che ogni set di dispositivi sopra di esso nella piramide è stato spento.

Piramide del potere

Accensione dei dispositivi all'esterno del SoC

Ogni dispositivo al di fuori del chip SoC deve entrare in modalità a basso consumo per due obiettivi chiave:

  • Ridurre il consumo di energia del dispositivo.
  • Consentire al soC stesso di spegnere consentendo al controller host on-SoC, a cui è connesso il dispositivo, di spegnere.

Il metodo per spegnere ogni dispositivo all'esterno del SoC varia in base alla classe del dispositivo e al bus collegato.

Alcuni dispositivi all'esterno del SoC vengono posizionati in uno stato di 0 watt senza consumo di energia denominato D3cold. I dispositivi comuni per D3cold includono fotocamere e sensori. Il driver deve salvare lo stato del registro del dispositivo e quindi eseguire la transizione del dispositivo allo stato di alimentazione D3. L'alimentazione verrà rimossa dal firmware ACPI attivando o disattivando una linea GPIO o disattivando un binario di alimentazione dall'IC di risparmio energia (PMIC).Power Power Rail will be removed by the ACPI firmware by toggling a GPIO line or off a power rail from the power management IC (PMIC).

Alcuni dispositivi al di fuori del SoC vengono posizionati in una modalità di inattività a basso consumo in cui viene mantenuto lo stato di registrazione oppure il dispositivo potrebbe semplicemente essere a controllo orario. Ad esempio, molti controller touch dispongono di uno stato a controllo orario che consuma meno di 1 milliwatt di potenza. I vantaggi tipici dell'uso di uno stato di controllo dell'orologio sono tempi di alimentazione più veloci e costi inferiori non dovendo connettere il dispositivo a una guida di alimentazione commutabile.

In genere, ogni dispositivo al di fuori del SoC deve essere in grado di entrare in una modalità a basso consumo che consuma meno di 1 milliwatt di potenza. I dispositivi che non possono raggiungere questo livello di alimentazione con uno stato di controllo orario interno devono implementare il controllo dell'alimentazione tramite D3cold.

I dispositivi di rete e radio rappresentano l'eccezione rilevante per le linee guida di 1 milliwatt. I dispositivi di rete e radio potrebbero richiedere una maggiore potenza per mantenere una connessione alla rete o per ascoltare i dispositivi wireless. Alcuni progettisti di sistema fanno riferimento a queste transizioni di stato di alimentazione come runtime D3 (RTD3).

Risparmio energia diretto per dispositivi PCIe

Le schede PCIe all'esterno del SoC devono abilitare un meccanismo di risparmio energia diretto denominato Device-S4 per garantire che possano entrare in modalità a basso consumo. Senza Device-S4, se un utente collega un dispositivo a una porta radice PCIe con slot accessibili dall'utente in un sistema di standby moderno desktop e il driver per il dispositivo non supporta il runtime D3 (RTD3), il dispositivo PCIe potrebbe impedire al sistema di immettere DRIPS. Per evitare questo problema, gli OEM devono acconsentire esplicitamente alle porte radice del dispositivo PCIe a Device-S4. Affinché Device-S4 sia coinvolto per un determinato dispositivo PCIe, è necessario soddisfare i requisiti seguenti:

  1. La porta radice PCIe padre per il dispositivo deve essere specificata come vincolo per DRIPS.
  2. La porta radice PCIe padre deve applicare la reimpostazione fondamentale del dispositivo per tutti gli elementi figlio downstream della porta radice alla transizione D0-D3> della porta radice e annullare la reimpostazione del dispositivo fondamentale a tali elementi figlio durante la transizione D3-D0>. Per altre informazioni sulle reimpostazioni fondamentali di PCIe, vedere la sezione 6.6.1 della specifica di base PCI Express. L'applicazione della reimpostazione fondamentale può essere fornita da meccanismi ACPI supplementari. Per altre informazioni, vedere questa guida su PCI Power Management. Per indicare che la piattaforma rispetta questo requisito di reimpostazione fondamentale, il firmware deve definire _DSD con supporto per GUID {FDF06FAD-F744-4451-BB64-ECD792215B10}. Senza questo, DRIPS diretto non verrà attivato per i dispositivi in tale porta radice PCIe. Per altre informazioni, vedere i dati specifici del dispositivo ACPI (_DSD) per le porte radice PCIe.
  3. Le risorse di alimentazione devono essere univoce per una determinata porta radice PCIe, ad esempio non condivisa con altre porte radice.

Si noti che le schede PCIe che richiedono i moduli di supporto per la compatibilità (CSM) non funzioneranno nei sistemi di standby moderni. CSM non è supportato nel BIOS nei sistemi di standby moderni a causa del requisito di avvio protetto UEFI. Per altre informazioni, fare riferimento alla specifica del programma di compatibilità hardware di Windows.

Per altre informazioni sul risparmio energia per specifiche classi di dispositivi, i progettisti di sistema sono invitati a esaminare Gestione alimentazione specifica del dispositivo per standby moderno, nonché la documentazione specifica del dispositivo in Microsoft Collaborate.

Accensione dei dispositivi di rete

L'alimentazione dei dispositivi di rete e radio è un'altra parte fondamentale della preparazione dell'hardware per il funzionamento a basso consumo durante la sospensione. I dispositivi di rete e radio sono diversi da altri dispositivi al di fuori del SoC, perché devono rimanere acceso con potenza applicata per ascoltare eventi interessanti e riattivare il SoC. Ad esempio, la radio Wi-Fi deve essere in grado di ascoltare i pacchetti che corrispondono ai modelli WoL e svegliare il SoC quando viene rilevato un pacchetto corrispondente.

Windows esegue la transizione dei dispositivi di rete allo stato D2/D3 durante la sospensione se si prevede di riattivare il SoC. Lo stack di rete di Windows configurerà i modelli WoL e gli offload del protocollo prima di posizionare il dispositivo nello stato D2/D3 a basso consumo. Tutti i dispositivi di rete, tra cui Wi-Fi, mobile broadband (MBB) e Ethernet cablata, devono essere in grado di entrare nello stato D2/D3 durante la sospensione. Se non è necessario un dispositivo di rete per riattivare il sistema, Windows eseguirà la transizione del dispositivo allo stato D3. Il dispositivo di rete può essere posizionato nello stato D3 se l'utente ha abilitato la modalità aereo o disabilitato il dispositivo di rete specifico.

Ogni dispositivo ha un metodo fisico diverso per riattivare il SoC dalla modalità di alimentazione più bassa. È previsto che i dispositivi di rete in SDIO o UART segnalino una linea GPIO per riattivare il SoC. Si prevede che i dispositivi di rete connessi tramite USB o HSIC usino la segnalazione usb in banda per riattivare il SoC. I dispositivi di rete su bus PCI o PCIe devono usare la segnalazione PME in banda per riattivare il SoC.

Inoltre, si prevede che un dispositivo radio, ad esempio un dispositivo Bluetooth o NFC (Near-Field Communications), passi allo stato D2 se l'utente ha attivato la radio per questo dispositivo. Nello stato D2, una radio Bluetooth rimane in ascolto degli eventi di input da mouse e tastiere abbinate. Se viene rilevato un evento di input, la radio Bluetooth attiva o disattiva una linea GPIO connessa al SoC, che fa sì che il SoC si riattiva dalla modalità a basso consumo.

Ogni dispositivo di rete o radio ha la propria implementazione dell'alimentazione per lo standby moderno. I progettisti di sistema sono invitati a leggere i documenti specifici della classe del dispositivo nel sito Web Microsoft Collaborate.

Accensione dei controller host SoC

Dopo che tutti i dispositivi al di fuori del SoC, inclusi i dispositivi di rete e radio, sono stati spenti, i controller host a cui sono collegati i dispositivi devono spegnere. I controller host comuni includono USB, PCI, SDIO, GPIO e I²C.

Il driver per ogni controller host può spegnere l'hardware solo dopo che ogni dispositivo connesso al controller host è spento. Un esempio comune è il controller host USB. Il controller host USB può essere spento solo dopo che tutti i dispositivi USB connessi a esso hanno immesso uno stato di sospensione selettiva. Se un controller host USB ha un mouse USB e una tastiera connessi, il controller host può spegnere solo dopo che sia il mouse che la tastiera sono spenti. Se il mouse o la tastiera rimane acceso, anche il controller host USB rimane acceso.

Tutti i controller host nel SoC devono essere spenti per poter spegnere il SoC stesso. Questo è il motivo per cui è fondamentale che ogni dispositivo esegua il risparmio energia del dispositivo. Il SoC stesso può essere spento solo quando ogni controller host è spento. I controller host possono essere spenti solo dopo che tutti i dispositivi connessi sono stati spenti.

Spegnimento di CPU e GPU

In termini di risparmio energia, CPU e GPU nel chip SoC sono diverse da altri dispositivi. CPU e GPU vengono spente come parte dell'alimentazione del SoC stesso e possono essere spente ogni volta che non vi è alcuna attività software destinata a loro.

La maggior parte delle attività software nel sistema verrà arrestata attraverso le fasi di preparazione descritte in Preparare il software per lo standby moderno. Le app di Microsoft Store verranno sospese come parte della fase PLM. Le applicazioni desktop verranno sospese durante il completamento della fase DAM. Le uniche attività della CPU che rimangono dopo che la piattaforma entra nella fase di resilienza sono operazioni inattive di Windows stesso. Analogamente, c'è poca attività GPU perché tutte le app sono state sospese e lo schermo è disattivato.

Windows gestisce continuamente lo stato di alimentazione delle CPU nel sistema, anche quando lo schermo è acceso e l'utente sta lavorando con il PC. La stessa gestione dello stato di alimentazione della CPU inserisce le CPU in una modalità a basso consumo durante la sospensione. Quando tutte le CPU sono in modalità a basso consumo e tutti i controller host nel SoC sono stati spenti, il SoC stesso può essere spento.

Accensione del SoC

Quando tutti i singoli controller host, CPU e GPU nel SoC sono stati spenti, Windows determinerà se è sicuro spegnere l'intero SoC stesso. Il fornitore soC fornisce un plug-in motore di alimentazione (PEP) per indicare a Windows quando tutto lo stato nel SoC è stato salvato in modo che il SoC sia pronto per entrare in una modalità a basso consumo. Per i SoC basati su Intel, viene fornita la posta in arrivo PEP.

Ogni fornitore soC ha un'implementazione diversa di uno stato soC a basso consumo. Questi stati sono in genere stati con controllo dell'orologio o con controllo dell'alimentazione in cui il contenuto della memoria viene mantenuto in modalità di aggiornamento automatico e il sistema può essere risvegliato da un timer programmabile e da un numero ridotto di pin GPIO che consumano pochissima potenza. Windows fa riferimento allo stato di alimentazione soC più basso come stato della piattaforma inattiva di runtime più profondo (DRIPS).

Lo stato DRIPS ha sempre le caratteristiche seguenti:

  • DRIPS è lo stato di consumo di energia più basso per il SoC in cui la memoria viene mantenuta in modalità di aggiornamento automatico.
  • DRIPS consente al SoC di riattivare gli eventi dai dispositivi di rete, radio e input.
  • Non è consentito eseguire codice CPU durante lo stato DRIPS.
  • Quando il SoC si trova nello stato DRIPS, la piattaforma sta consumando la quantità minima di potenza possibile durante la sospensione (ad eccezione delle variazioni nel consumo di energia causato da dispositivi di rete e radio).