Risparmio energia per dispositivi hardware di archiviazione

Introduzione

Questo documento è destinato a una guida per gli OEM e i produttori di dispositivi che usano i driver SATA e NVMe di Microsoft in Aggiornamento di Windows 10 (maggio 2019) o versioni più recenti del sistema operativo. Le linee guida generali di Microsoft sono la soluzione predefinita che "funziona semplicemente" in termini di bilanciamento delle prestazioni, velocità di risposta ed efficienza energetica. Come accade con le prestazioni complessive del sistema, l'hardware del dispositivo con comportamento non adeguato può compromettere l'efficienza complessiva e la durata della batteria. In generale, il sistema tenta di bilanciare l'efficienza energetica con le prestazioni.

Il diagramma seguente illustra gli stati di alimentazione dei dispositivi definiti da ACPI D0 (funzionante) a D3 (disattivato). Si noti che quando il dispositivo passa a stati di alimentazione più profondi, il consumo di energia è ridotto, ma la latenza aumenta. Si noti anche che Windows supporta diversi stati funzionali (F-States), che possono essere usati per controllare le funzionalità e la potenza dei livelli con granularità fine all'interno dello stato D0. Ciò può essere utile per il risparmio energia in fase di esecuzione in cui il sistema deve rimanere altamente reattivo, ma deve comunque risparmiare energia.

Stati di alimentazione

ACPI-Defined stato sospensione risparmio energia

Quando il sistema non è in uso, Windows può posizionare il sistema in uno stato di sospensione definito dall'ACPI per risparmiare energia. Allo stesso modo, Windows può scegliere stati di sospensione profondi nel tempo per risparmiare ancora più potenza. Ad esempio, il sistema può passare a S3 per un periodo e infine passare a Ibernazione S4. Quando il sistema passa a uno stato di sospensione, la regola generale del pollice consiste nell'inserire il dispositivo nel più profondo possibile stato D, a meno che il dispositivo non sia in grado di riattivare e sia armato per la riattivazione. In queste condizioni, può essere appropriato uno stato D più superficiale. Analogamente, quando il sistema si riattiva, il dispositivo tornerà a D0.

Risparmio energia di runtime

Per ottenere la massima efficienza energetica, alcuni componenti implementeranno una logica di inattività molto fine per determinare quando i dispositivi possono essere spenti, anche quando il sistema è in uso attivo. Ad esempio, un dispositivo di archiviazione di fascia alta potrebbe disabilitare determinati blocchi funzionali durante il runtime se il driver ritiene che non siano stati usati per un certo periodo di tempo. Ciò è possibile solo se questi blocchi funzionali possono essere reintroteti online e resi funzionali abbastanza rapidamente in modo che l'utente non incorra in latenze evidenti.

Risparmio energia standby moderno

Quando il sistema non è in uso, Windows può spegnere l'alimentazione per alcuni set di dispositivi per risparmiare energia. In Standby moderno, il sistema rimane in S0. Anche se in S0, tutti i dispositivi periferici potrebbero essere spenti a causa di timeout di inattività. Questo stato è definito come "S0 Low Power Idle". Una volta che tutti i dispositivi si trovano in uno stato a basso consumo, anche più dell'infrastruttura di sistema (ad esempio bus, timer, ...) potrebbero essere spenti. La regola generale di thumb consiste nell'inserire il dispositivo nel più profondo possibile stato D quando è inattiva, anche quando lo stato del sistema è S0. A seconda dei dettagli di implementazione del processore complesso e della progettazione della piattaforma, i dispositivi periferici possono essere necessari per passare a uno stato F, D3 Hot o D3 Cold (l'alimentazione è tagliata). Per ridurre la necessità di un driver di funzione per gestire questi dettagli di implementazione, i driver devono passare allo stato più profondo del dispositivo appropriato per ottimizzare la durata della batteria.

Supporto D3

Quando il sistema non è in uso, Windows può spegnere l'alimentazione per alcuni set di dispositivi per risparmiare energia. In Standby moderno, il sistema rimane in S0. Anche se in S0, tutti i dispositivi periferici potrebbero essere spenti a causa di timeout di inattività. Questo stato è definito come "S0 Low Power Idle". Una volta che tutti i dispositivi si trovano in uno stato a basso consumo, anche più dell'infrastruttura di sistema (ad esempio bus, timer, ...) potrebbero essere spenti. La regola generale di thumb consiste nell'inserire il dispositivo nel più profondo possibile stato D quando è inattiva, anche quando lo stato del sistema è S0. A seconda dei dettagli di implementazione del processore complesso e della progettazione della piattaforma, i dispositivi periferici possono essere necessari per passare a uno stato F, D3 Hot o D3 Cold (l'alimentazione è tagliata). Per ridurre la necessità di un driver di funzione per gestire questi dettagli di implementazione, i driver devono passare allo stato più profondo del dispositivo appropriato per ottimizzare la durata della batteria.

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

Il _DSD ACPI precedente è il modo preferito per acconsentire esplicitamente o meno al supporto D3 per i dispositivi di archiviazione. Esiste tuttavia anche una chiave del Registro di sistema globale che può essere usata per modificare il supporto D3, se necessario.

  • Nome: StorageD3InModernStandby
  • Tipo: REG_DWORD
  • Percorso: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Storage\
  • Valore:
    • 0 - Disabilitare il supporto D3
    • 1 - Abilitare il supporto D3

Se la chiave del Registro di sistema non è configurata, Storport verificherà la configurazione _DSD per determinare se abilitare D3. Se il _DSD non è implementato, Storport verificherà se la piattaforma è nell'elenco elementi consentiti per il supporto D3.

Relazione padre/figlio per il risparmio energia

Durante l'accensione, la relazione padre/figlio viene sempre applicata per i dispositivi di archiviazione. Durante l'alimentazione, l'unico caso in cui la relazione di alimentazione padre/figlio non viene applicata è se il controller supporta solo D3Hot e il dispositivo segnala F1 a PoFx (ad esempio DEVSLP è supportato o è un'unità SSD in un sistema di standby moderno), il controller può immettere D3 mentre il dispositivo è in F1.

Contenuto della sezione

Argomento Descrizione

NVMe

Questo argomento illustra le linee guida per il risparmio energia per i dispositivi di archiviazione NVMe.

SATA/AHCI

Questo argomento illustra le linee guida per il risparmio energia per i dispositivi di archiviazione SATA/AHCI.