Partager via


Gestion de l’alimentation pour les appareils matériels de stockage

Introduction

Ce document est destiné à servir de guide pour les oem et les fabricants d’appareils qui utilisent les pilotes SATA et NVMe de Microsoft sur Mise à jour de mai 2019 de Windows 10 ou versions plus récentes du système d’exploitation. Les conseils généraux de Microsoft sont de fournir des solutions intégrées qui « fonctionnent simplement » en termes d’équilibrage des performances, de la réactivité et de l’efficacité énergétique. Comme c’est le cas avec les performances globales du système, un matériel d’appareil mal se comporte peut compromettre l’efficacité globale et l’autonomie de la batterie. En général, le système tente d’équilibrer l’efficacité énergétique et les performances.

Le diagramme ci-dessous illustre les états d’alimentation de l’appareil définis par ACPI D0 (fonctionnement) à D3 (désactivé). Notez que lorsque l’appareil passe à des états d’alimentation plus profonds, la consommation d’énergie est réduite, mais la latence augmente. Notez également que Windows prend en charge différents états fonctionnels (F-States), qui peuvent être utilisés pour contrôler les fonctionnalités et l’alimentation des niveaux affinés dans l’état D0. Cela peut être utile pour la gestion de l’alimentation d’exécution où le système doit rester hautement réactif, mais doit tout de même économiser de l’énergie.

États d’alimentation

gestion de l’alimentation de l’état de veille ACPI-Defined

Lorsque le système n’est pas utilisé, Windows peut le placer de manière opportuniste dans un état de veille défini par ACPI pour économiser l’énergie. De même, Windows peut choisir des états de veille profonde au fil du temps pour conserver encore plus d’énergie. Par exemple, le système peut passer à S3 pendant une période, puis passer à S4 Hibernate. Lorsque le système passe à un état de veille, la règle générale consiste à placer l’appareil dans l’état D le plus profond possible, sauf s’il est compatible avec la veille et qu’il est armé pour l’éveil. Dans ces conditions, un état D moins profond peut être approprié. De même, lorsque le système sort de veille, l’appareil revient à D0.

Gestion de l’alimentation du runtime

Afin d’obtenir une efficacité énergétique maximale, certains composants implémentent une logique d’inactivité très fine pour déterminer quand les appareils peuvent être mis hors tension, même lorsque le système est en cours d’utilisation. Par exemple, un périphérique de stockage haut de gamme peut désactiver certains blocs fonctionnels pendant l’exécution si le pilote estime qu’ils n’ont pas été utilisés depuis un certain temps. Cela n’est possible que si ces blocs fonctionnels peuvent être remis en ligne et rendus fonctionnels suffisamment rapidement pour que l’utilisateur n’encoure pas de latences notables.

Gestion de l’alimentation de secours moderne

Lorsque le système n’est pas utilisé, Windows peut désactiver de façon opportuniste l’alimentation de certains ensembles d’appareils pour économiser l’énergie. En veille moderne, le système reste en S0. Même dans S0, tous les périphériques peuvent être mis hors tension en raison de délais d’inactivité. Cet état est défini comme « S0 Low Power Idle ». Une fois que tous les appareils sont dans un état de faible consommation, une plus grande partie de l’infrastructure système (par exemple, busses, minuteurs, ...) peut être hors tension. La règle générale consiste à placer l’appareil dans l’état D le plus profond possible lorsqu’il est inactif, même lorsque l’état du système est S0. En fonction des détails d’implémentation du complexe du processeur et de la conception de la plateforme, les périphériques peuvent être nécessaires pour passer à un état F, D3 Chaud ou D3 Froid (l’alimentation est coupée). Pour atténuer la nécessité pour un pilote de fonction de gérer ces détails d’implémentation, les pilotes doivent passer à l’état de périphérique approprié le plus profond afin d’optimiser l’autonomie de la batterie.

Prise en charge de D3

Lorsque le système n’est pas utilisé, Windows peut désactiver de façon opportuniste l’alimentation de certains ensembles d’appareils pour économiser l’énergie. En veille moderne, le système reste en S0. Même dans S0, tous les périphériques peuvent être mis hors tension en raison de délais d’inactivité. Cet état est défini comme « S0 Low Power Idle ». Une fois que tous les appareils sont dans un état de faible consommation, une plus grande partie de l’infrastructure système (par exemple, busses, minuteurs, ...) peut être hors tension. La règle générale consiste à placer l’appareil dans l’état D le plus profond possible lorsqu’il est inactif, même lorsque l’état du système est S0. En fonction des détails d’implémentation du complexe du processeur et de la conception de la plateforme, les périphériques peuvent être nécessaires pour passer à un état F, D3 Chaud ou D3 Froid (l’alimentation est coupée). Pour atténuer la nécessité pour un pilote de fonction de gérer ces détails d’implémentation, les pilotes doivent passer à l’état de périphérique approprié le plus profond afin d’optimiser l’autonomie de la batterie.

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

La _DSD ACPI ci-dessus est la méthode recommandée pour accepter ou refuser la prise en charge de D3 pour les périphériques de stockage. Toutefois, il existe également une clé de Registre globale qui peut être utilisée pour modifier la prise en charge de D3 si nécessaire.

  • Nom : StorageD3InModernStandby
  • Type : REG_DWORD
  • Chemin d’accès : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Storage\
  • Valeur :
    • 0 – Désactiver la prise en charge de D3
    • 1 – Activer la prise en charge de D3

Si la clé de Registre n’est pas configurée, Storport case activée la configuration _DSD pour déterminer s’il faut activer D3. Si le _DSD n’est pas implémenté, Storport case activée si la plateforme figure sur la liste d’autorisation pour la prise en charge de D3.

Relation parent/enfant pour la gestion de l’alimentation

Pendant la mise sous tension, la relation parent/enfant est toujours appliquée pour les périphériques de stockage. Pendant la mise hors tension, le seul cas où la relation d’alimentation parent/enfant n’est pas appliquée est si le contrôleur prend uniquement en charge D3Hot et que l’appareil signale F1 à PoFx (c’est-à-dire que DEVSLP est pris en charge ou s’il s’agit d’un SSD dans un système de secours moderne), le contrôleur est alors autorisé à entrer dans D3 alors que l’appareil est en F1.

Contenu de cette section

Rubrique Description

NVMe

Cette rubrique décrit les instructions de gestion de l’alimentation pour les périphériques de stockage NVMe.

SATA/AHCI

Cette rubrique décrit les instructions de gestion de l’alimentation pour les périphériques de stockage SATA/AHCI.