États d’alimentation faible de l’appareil

Les états d’alimentation des appareils D1, D2 et D3 sont les états d’alimentation faible de l’appareil. À compter de Windows 8, D3 est divisé en deux sous-états, D3hot et D3cold.

D1 et D2 sont des états intermédiaires à faible alimentation. De nombreuses classes d’appareils ne définissent pas ces états. Tous les appareils doivent définir D3hot.

Les sections suivantes décrivent D1, D2 et D3 :

État de l’alimentation de l’appareil D1

L’état d’alimentation de l’appareil D1 est l’état de faible alimentation de l’appareil le plus élevé. Ses caractéristiques sont les suivantes :

Consommation d’énergie
La consommation est inférieure à l’état D0, mais supérieure ou égale à celle-ci dans l’état D2. Souvent, D1 est un état de contrôle d’horloge dans lequel l’appareil reçoit suffisamment de puissance pour préserver le contexte matériel de l’appareil. En règle générale, la spécification d’un bus ou d’une classe d’appareil prenant en charge D1 décrit cet état plus en détail.

Contexte de l’appareil
En général, le contexte de l’appareil est conservé par le matériel et n’a pas besoin d’être restauré par le pilote. La spécification d’un bus ou d’une classe d’appareil prenant en charge D1 fournit généralement des exigences détaillées pour préserver ce contexte.

Comportement du pilote de périphérique
Les pilotes doivent enregistrer et restaurer ou réinitialiser tout contexte perdu par le matériel. En règle générale, toutefois, les appareils perdent peu de contexte lors de l’entrée de cet état.

Heure de restauration
En règle générale, le temps nécessaire pour restaurer l’appareil vers D0 à partir de D1 doit être inférieur à la restauration de D2 à D0.

Fonctionnalité de mise en éveil
Un appareil dans D1 peut être en mesure de demander le réveil. Pour fournir des informations sur la prise en charge d’un signal de sortie de veille, un pilote de bus utilise la structure DEVICE_CAPABILITIES ou, à partir de Windows 8, l’interface du pilote GUID_D3COLD_SUPPORT_INTERFACE.

En règle générale, les appareils qui utilisent D1, car la reprise à partir de cet état ne nécessite pas que le pilote restaure le contexte matériel complet de l’appareil. Pour réduire la perception du retard de l’utilisateur, la restauration d’un appareil vers D0 à partir de D1 doit entraîner le moins de retard possible. La réduction du délai de transition d’état est plus importante que la réduction de la consommation d’énergie.

État de l’alimentation de l’appareil D2

D2 est un état intermédiaire de faible alimentation de l’appareil avec les caractéristiques suivantes :

Consommation d’énergie
La consommation est inférieure ou égale à celle dans l’état D1.

Contexte de l’appareil
En général, la plupart du contexte de l’appareil est perdu par le matériel. Souvent, cet état conserve la partie du contexte utilisé pour signaler les événements de veille. La spécification d’un bus ou d’une classe d’appareil qui prend en charge D2 fournit généralement des exigences détaillées pour préserver ce contexte.

Comportement du pilote de périphérique
Les pilotes de périphérique doivent enregistrer et restaurer ou réinitialiser tout contexte perdu par le matériel. Un appareil classique perd le plus de contexte lorsqu’il entre dans D2.

Heure de restauration
La restauration de l’appareil de D2 vers D0 prend au moins autant de temps que la restauration de l’appareil de D1 vers D0. Une carte graphique qui a une mémoire tampon de trame volumineuse est un exemple d’appareil qui a une grande quantité de contexte matériel à restaurer après une transition de D2 à D0. Pour un tel appareil, l’heure de restauration de D2 peut être beaucoup plus grande que la durée de restauration de D1.

Fonctionnalité de mise en éveil
Un appareil dans D2 peut être en mesure de demander le réveil. Pour fournir des informations sur la prise en charge d’un signal de sortie de veille, un pilote de bus utilise la structure DEVICE_CAPABILITIES ou, à partir de Windows 8, l’interface du pilote GUID_D3COLD_SUPPORT_INTERFACE.

En règle générale, les pilotes qui prennent en charge D2, car leurs appareils ne peuvent pas prendre en charge la mise en éveil de D3. Pour ces appareils, la consommation d’alimentation dans l’état D2 passe au niveau le plus bas à partir duquel l’appareil peut récupérer en réponse à un signal de veille. Contrairement à l’état D1, qui est implémenté pour réduire le délai perçu par l’utilisateur, l’objectif de l’implémentation de l’état D2 est de conserver la puissance. Par conséquent, le temps de restauration de D2 à D0 dépasse généralement celui de D1 à D0. Dans l’état D2, par exemple, la réduction de l’alimentation du bus peut entraîner la désactivation d’un appareil de certaines de ses fonctionnalités, ce qui nécessite un temps supplémentaire de redémarrage et de restauration de l’appareil.

De nombreuses classes d’appareil ne définissent pas cet état.

État de l’alimentation de l’appareil D3

D3 est l’état de faible alimentation de l’appareil à faible alimentation. Tous les appareils doivent prendre en charge cet état.

À compter de Windows 8, le système d’exploitation divise D3 en deux sous-états distincts et distincts, D3hot et D3cold. Les versions antérieures de Windows définissent l’état D3, mais pas les sous-états D3hot et D3cold. Toutefois, toutes les versions de la spécification de l’interface de gestion de l’alimentation PCI Bus définissent des sous-états D3hot et D3cold distincts, et les versions 4 et ultérieures de la spécification advanced Configuration et Power Interface définissent les sous-états D3hot et D3cold.

Bien que les versions de Windows antérieures à Windows 8 ne définissent pas explicitement les sous-états D3hot et D3cold de D3, ces sous-états existent implicitement dans ces versions antérieures de Windows. Un appareil est implicitement dans le sous-état D3hot si l’appareil est explicitement dans l’état D3 et que l’ordinateur est dans l’état d’alimentation du système S0. Dans D3hot, un appareil est connecté à une source d’alimentation (bien que l’appareil puisse être configuré pour dessiner le courant faible) et la présence de l’appareil sur le bus peut être détectée. Un appareil est implicitement dans le sous-état D3cold s’il est explicitement dans l’état D3 et que l’ordinateur est dans un état Sx à faible alimentation (un état autre que S0). Dans ce sous-état D3cold implicite, l’appareil peut recevoir un courant de tourment, mais l’appareil et l’ordinateur sont effectivement désactivés jusqu’à ce qu’un événement de veille se produise.

À compter de Windows 8, un appareil peut entrer et quitter le sous-état D3cold pendant que l’ordinateur reste dans l’état S0. Pour prendre en charge ce nouveau comportement, D3hot et D3cold doivent être définis explicitement comme des sous-états distincts de D3.

D3hot est le seul sous-état de D3 que l’appareil peut entrer directement à partir de D0. Un appareil effectue une transition de D0 à D3hot sous contrôle logiciel par le pilote de périphérique. Dans D3hot, l’appareil peut être détecté sur le bus auquel il se connecte. Le bus doit rester dans l’état D0 pendant que l’appareil se trouve dans le sous-état D3hot. À partir de D3hot, l’appareil peut revenir à D0 ou entrer D3cold. D3cold ne peut être entré qu’à partir de D3hot.

D3cold est un sous-état de D3 dans lequel l’appareil est physiquement connecté au bus, mais la présence de l’appareil sur le bus ne peut pas être détectée (autrement dit, jusqu’à ce que l’appareil soit à nouveau activé). Dans D3cold, l’un ou les deux éléments suivants est vrai :

  • Le bus auquel l’appareil se connecte est dans un état à faible alimentation.
  • L’appareil est dans un état à faible alimentation dans lequel l’appareil ne répond pas lorsque le pilote de bus tente de détecter sa présence sur le bus.

La transition de D3hot à D3cold se produit sans interaction avec le pilote de périphérique. Au lieu de cela, le pilote de périphérique indique s’il est préparé pour une transition D3cold avant d’initier la transition de D0 à D3hot. Par la suite, une transition de D3hot à D3cold peut ou non se produire, selon que toutes les conditions sont appropriées pour activer cette transition.

Deux conditions de ce type sont que tous les appareils qui utilisent la même source d’alimentation sont dans D3hot et sont préparés pour une transition D3cold. Lorsque le dernier de ces appareils entre dans D3hot, le pilote de bus parent ou le pilote de filtre ACPI désactive la source d’alimentation sur ces appareils, c’est-à-dire que les appareils entrent dans D3cold.

Un appareil qui se trouve dans D3cold peut laisser ce sous-état uniquement en entrant D0. Il n’y a pas de transition directe entre D3cold et D3hot.

Lorsque l’ordinateur est dans l’état S0 et qu’un appareil entre dans le sous-état D3hot, le pilote de périphérique est généralement incapable de déterminer à l’avance si la transition suivante de l’appareil est vers D3cold ou D0. L’une des exceptions est que l’ordinateur se prépare à quitter l’état S0. Dans ce cas, la transition suivante est vers D3cold.

Les sections suivantes décrivent D3hot et D3cold :

Pour plus d'informations, consultez Prise en charge de D3cold dans un pilote.

Sous-état D3hot

D3hot présente les caractéristiques suivantes :

La consommation d’alimentation est principalement supprimée de l’appareil, mais pas de l’ordinateur dans son ensemble. L’ordinateur, qui est dans l’état S0, peut continuer à s’exécuter dans cet état, ou il peut se préparer à passer de S0 à un état Sx à faible alimentation.

Contexte de l’appareil
Le pilote de périphérique est uniquement responsable de la restauration du contexte de l’appareil. Le pilote doit conserver, puis restaurer tout le contexte de l’appareil ou réinitialiser l’appareil lors de la transition vers l’état D0.

Comportement du pilote de périphérique
Le pilote de périphérique est uniquement responsable de la restauration du contexte de l’appareil, généralement à partir de la configuration de travail la plus récente.

Heure de restauration
Le temps de restauration total est le plus élevé de l’un des états d’alimentation de l’appareil, à l’exception de D3cold, mais n’est généralement pas beaucoup plus grand que le temps de restauration de D2.

Fonctionnalité de mise en éveil
Un appareil dans le sous-état D3hot peut ou ne pas être en mesure de demander le réveil. Pour fournir des informations sur la prise en charge d’un signal de veille, un pilote de bus utilise la structure DEVICE_CAPABILITIES ou, à partir de Windows 8, l’interface du pilote GUID_D3COLD_SUPPORT_INTERFACE.

Dans D3hot, seul un courant de tourment minimal est disponible. Les pilotes et le matériel doivent être préparés pour l’absence de puissance. La spécification d’un bus prenant en charge D3hot fournit généralement des exigences détaillées pour les sources d’alimentation qui peuvent être utilisées dans cet état. Pour retourner l’appareil à l’état de fonctionnement, les pilotes de l’appareil doivent être en mesure de restaurer et de réinitialiser l’appareil sans dépendre du BIOS pour exécuter du code dans la ROM d’option qui peut être disponible pour l’appareil.

Toutes les classes d’appareil définissent le sous-état D3hot.

Sous-état D3cold

D3cold présente les caractéristiques suivantes :

Consommation d’énergie
La puissance a été entièrement supprimée de l’appareil et peut-être de l’ensemble du système. L’appareil peut être en mesure de dessiner le courant à partir de sources de bande latérale, en fonction de sa construction.

Contexte de l’appareil
Le pilote de périphérique est uniquement responsable de la restauration du contexte de l’appareil. Le pilote doit conserver, puis restaurer le contexte de l’appareil ou réinitialiser l’appareil lors de la transition vers l’état D0.

Comportement du pilote de périphérique
Le pilote de périphérique est uniquement responsable de la restauration du contexte de l’appareil, généralement à partir de la configuration de travail la plus récente.

Heure de restauration
Le temps de restauration total est le plus élevé de l’un des états d’alimentation de l’appareil.

Fonctionnalité de mise en éveil
Dans le sous-état D3cold, un appareil peut déclencher un signal de veille pour réveiller un ordinateur en veille. Cette fonctionnalité est signalée dans la structure DEVICE_CAPABILITIES et, à partir de Windows 8, par la routine GetIdleWakeInfo dans l’interface du pilote GUID_D3COLD_SUPPORT_INTERFACE. Une fois le signal réveillé l’ordinateur, le pilote de périphérique lance la transition de l’appareil de D3cold à D0. Pour plus d’informations, consultez les remarques suivantes.

À compter de Windows 8, un appareil dans le sous-état D3cold peut être en mesure de déclencher un signal de veille sur un ordinateur qui est dans l’état d’alimentation du système S0. Cette fonctionnalité est signalée par la routine GetIdleWakeInfo . La structure DEVICE_CAPABILITIES ne contient pas d’informations sur cette fonctionnalité. Une fois le signal de veille arrivé, le pilote de périphérique lance la transition de L’appareil de D3cold à D0. Dans ce cas, l’ordinateur est réveillé lorsque le signal arrive, et seul l’appareil doit se réveiller.

Dans de nombreuses plateformes matérielles existantes, un appareil qui est dans un état Dx à faible alimentation peut déclencher un signal de veille pour réveiller un ordinateur en veille. Toutefois, le même appareil peut ne pas être en mesure de déclencher un signal de veille si l’ordinateur est en cours d’exécution dans l’état S0. Par conséquent, le pilote de cet appareil ne doit pas lancer la transition de l’appareil de D0 à un état Dx à faible alimentation lorsque l’ordinateur est dans l’état S0. Sinon, une fois l’appareil quitté D0, il n’est pas disponible jusqu’à ce que l’ordinateur quitte l’état S0. Cet appareil doit laisser l’état D0 uniquement lorsque l’ordinateur se prépare à quitter l’état S0.

Si un appareil qui est dans un état Dx à faible alimentation peut déclencher un signal de sortie de veille sur un ordinateur qui s’exécute dans l’état S0, l’appareil n’est pas requis pour rester en D0 lorsque l’ordinateur est dans S0. Si l’ordinateur se trouve dans S0 et que l’appareil est en D0 mais inactif, le pilote peut armer l’appareil pour déclencher un signal de veille, puis lancer la transition de l’appareil de D0 à cet état Dx à faible alimentation.

Certaines classes d’appareil définissent le sous-état D3cold.

Pour plus d'informations, consultez Prise en charge de D3cold dans un pilote.