Состояния питания устройства

Состояние питания устройства описывает состояние питания устройства на компьютере независимо от других устройств на компьютере. Состояния питания устройства называются D0, D1, D2 и D3. D0 — полностью включенное состояние, а D1, D2 и D3 — состояния с низким энергопотреблением. Номер состояния обратно связан с энергопотреблением: более высокие нумерованные состояния используют меньше энергии. Начиная с Windows 8 состояние D3 делится на два подсостояния: D3hot и D3cold.

Состояния питания устройства характеризуются следующими атрибутами:

  • Энергопотребление. Сколько энергии использует устройство?

  • Контекст устройства. Какая часть рабочего контекста сохраняется устройством в этом состоянии?

  • Поведение драйвера устройства. Что должны сделать драйверы для устройства, чтобы восстановить полностью рабочее состояние устройства?

  • Время восстановления. Сколько времени занимает восстановление устройства до полного рабочего состояния? Большинство типов устройств имеют небольшое время восстановления, которое мало отличается от одного класса устройства к другому. Только некоторые типы устройств, например GPU, имеют очень большие аппаратные контексты, восстановление которых занимает значительно больше времени.

  • Возможность пробуждения. Может ли устройство запрашивать пробуждение из этого состояния? Как правило, если устройство может запрашивать пробуждение из заданного состояния питания (например, D2), оно также может запрашивать пробуждение из любого состояния с более высоким энергопотреблением (D1).

Точные определения состояний питания зависят от устройства. Не все устройства определяют все состояния; многие устройства определяют только состояния D0 и D3. Ознакомьтесь со справочной спецификацией управления питанием класса устройства, чтобы узнать, какие состояния питания устройства определены для конкретного устройства и каковы эксплуатационные требования для каждого состояния. (Справочные спецификации доступны на веб-сайте ACPI/Power Management .)

Состояние питания устройства не обязательно совпадает с состоянием питания системы. Например, некоторые устройства могут находиться в состоянии выключения (D3), даже если система находится в рабочем состоянии системы (S0).

Может показаться, что состояние питания устройства не связано с состоянием питания родительской шины устройства. Например, USB-устройство может находиться в состоянии D2 (выборочная приостановка), когда его родительский хост-контроллер находится в состоянии D3. Эти два состояния, как представляется, являются несогласованными только потому, что определения состояний Dx различаются на USB и в шине (обычно PCI или PCI Express), к которым подключен хост-контроллер USB.

Обратите внимание, что некоторые устройства поддерживают несколько различных режимов низкого энергопотребления в одном состоянии питания устройства. Такое устройство может использовать эти режимы, если его драйвер может автоматически переключать устройство из одного режима в другой без изменения состояния питания устройства. Однако, как правило, если между режимами нет различий, доступных для пользователя, устройство должно использовать только режим с наименьшим питанием. Если режим низкого энергопотребления, например режим низкой скорости, отрицательно влияет на производительность или не является прозрачным для программного обеспечения, отличного от драйвера устройства, оборудование не должно использовать его автоматически. Дополнительные сведения см. в справочнике по управлению питанием класса устройства.

Драйвер или диспетчер питания может запросить переход состояния питания устройства, и все драйверы должны быть готовы к обработке IRP, которые запрашивают такие переходы. Дополнительные сведения см. в следующих разделах:

Отправка IRP_MN_QUERY_POWER или IRP_MN_SET_POWER для состояний питания устройства

Обработка IRP_MN_QUERY_POWER для состояний питания устройства

Обработка IRP_MN_SET_POWER для состояний питания устройства

Как и система, устройство может переходить из рабочего состояния (D0) в любое состояние с низким энергопотреблением (D1, D2 или D3) и из любого состояния с низким энергопотреблением в рабочее. На следующей схеме показана диаграмма состояния, показывающая допустимые переходы состояния питания устройства.

схема, иллюстрирующая допустимые переходы состояния питания устройства.

На этом графике показано деление D3 на D3hot и D3cold. D3hot и D3cold определяются, начиная с Windows 8. Все устройства должны поддерживать состояние D0 и подсостояние D3hot. Другие состояния, показанные на схеме, являются необязательными.

На предыдущем графике переход от D3hot к D3cold является единственным прямым переходом между состояниями устройства с низким энергопотреблением. Все остальные переходы между состояниями с низким энергопотреблением требуют промежуточного перехода на D0, что позволяет драйверу устройства настроить оборудование устройства по мере необходимости либо для перехода в следующее состояние с низким энергопотреблением, либо для того, чтобы оставаться в D0. Однако устройство выходит из D3hot и входит в D3cold при отключении питания к устройству, что не требует вмешательства со стороны драйвера устройства. Этот драйвер выполняет любую необходимую настройку оборудования устройства до того, как устройство перейдет в D3hot; Для подготовки устройства к переходу с D3hot на D3cold дополнительная настройка не требуется. Дополнительные сведения см. в разделе Поддержка D3cold в драйвере.

Сопоставление D-состояния корневого порта PCI с конечной точкой

В Windows 10 системах общее состояние питания платформы зависит от состояний питания (D-состояния) интегрированных устройств SoC (System on Chip), включая корневые порты PCI. В зависимости от разрабатываемой платформы требования D-состояния для корневых портов PCI могут отличаться для каждого состояния питания платформы. Изготовителям оборудования рекомендуется ознакомиться с документацией по конкретным платформам IHV, чтобы ознакомиться с требованиями к состоянию питания платформы и устройства.

В таблице ниже перечислены сопоставления состояний питания корневых портов PCI и подключенных к ним конечных точек. D-состояния конечных точек, перечисленных ниже, должны быть достигнуты, чтобы корневой порт вошел в целевое D-состояние.

Целевое D-состояние корневого порта Состояние D конечной точки

D0

D0, D0:F1

D0:F1

D3hot

D3hot

D3cold*

*Для состояния питания PCI D3cold требуется поддержка BIOS и драйверов устройств. Если поддержка отсутствует, конечная точка PCI сможет достичь только D3Hot. Дополнительные сведения см. в разделе Поддержка D3Cold в драйвере.