Состояния питания устройства
Состояние питания устройства описывает состояние питания устройства на компьютере независимо от других устройств на компьютере. Состояния питания устройства называются D0, D1, D2 и D3. D0 — это полностью состояние, а D1, D2 и D3 — это состояния с низкой мощностью. Номер состояния обратно связан с потреблением электроэнергии: более высокие нумерованные состояния используют меньше энергии. Начиная с Windows 8 состояние D3 делится на два подстата, D3hot и D3cold.
Состояния питания устройства характеризуются следующими атрибутами:
Потребление электроэнергии: сколько энергии использует устройство?
Контекст устройства: сколько из его операционного контекста сохраняется в этом состоянии?
Поведение драйвера устройства. Какие драйверы должны выполнять для устройства, чтобы восстановить устройство до полного рабочего состояния?
Время восстановления: сколько времени требуется для восстановления устройства до полного рабочего состояния? Большинство типов устройств имеют скромное время восстановления, которое отличается от одного класса устройства к следующему. Только несколько типов устройств, таких как GPU, имеют большие аппаратные контексты, которые требуют больше времени для восстановления.
Возможность пробуждения: может ли запрос устройства проснуться из этого состояния? Как правило, если устройство может запрашивать пробуждение из заданного состояния питания (например, D2), он также может запрашивать пробуждение из любого более высокого состояния питания (D1).
Точные определения состояний питания зависят от устройства. Не все устройства определяют все состояния; многие устройства определяют только состояния D0 и D3. Дополнительные сведения см. в спецификации справочника по классу управления питанием устройств, чтобы узнать, какие состояния питания устройства определены для конкретного устройства и какие операционные требования относятся к каждому состоянию. (Справочные спецификации доступны на сайте ACPI / веб-сайт управления питанием .)
Состояние питания устройства не обязательно совпадает с состоянием питания системы. Например, некоторые устройства могут находиться в состоянии off (D3), даже если система находится в состоянии работы системы (S0).
Состояние питания устройства может быть не связано с состоянием питания родительской шины устройства. Например, USB-устройство может находиться в состоянии D2 (выборочная приостановка), когда его родительский контроллер узла находится в состоянии D3. Эти два состояния, как представляется, несогласованы только потому, что определения состояний Dx отличаются по USB и на шине (обычно PCI или PCI Express), к которому подключен контроллер USB-узла.
Некоторые устройства могут использовать несколько различных режимов низкой мощности в пределах одного состояния питания устройства. Такое устройство может использовать эти режимы, если его драйвер может автоматически переключать устройство из одного режима в другой, не изменяя состояние питания устройства. Однако, как правило, если между режимами не существует никакой разницы между режимами, устройство должно использовать только самый низкий режим питания. Если режим низкой мощности, например режим низкой скорости, негативно влияет на производительность или не является прозрачным для программного обеспечения, отличного от драйвера устройства, оборудование не должно автоматически использовать его. Дополнительные сведения см. в справочнике по справочнику по классу управления питанием устройств.
Драйвер или диспетчер питания может запрашивать переход состояния питания устройства, и все драйверы должны быть готовы к обработке irPs, запрашивающих такие переходы. Дополнительные сведения см. в следующих статьях:
Отправка 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" в драйвере.
Сопоставление корневого порта PCI с конечной точкой
В системах Windows 10 общее состояние питания платформы зависит от состояний питания (D-состояний) интегрированных устройств SoC (System on Chip), включая корневые порты PCI. В зависимости от разрабатываемой платформы требования к D-состоянию для корневых портов PCI могут отличаться для каждого состояния питания платформы. OEM рекомендуется ссылаться на документацию по платформе IHV для требований к состоянию платформы и устройства.
В приведенной ниже таблице перечислены сопоставление состояний питания корневых портов PCI и подключенных конечных точек. D-состояния конечных точек, перечисленных ниже, должны быть достигнуты, чтобы корневой порт ввел целевое D-состояние.
Целевой целевой порт корневого порта D-State | Состояние D конечной точки |
---|---|
D0 | D0, D0:F1 |
D0:F1 | D3hot |
D3hot | D3cold (см. примечание ниже) |
Примечание.
Для состояния питания PCI D3cold требуется поддержка BIOS и драйверов устройств. Если поддержка отсутствует, конечная точка PCI сможет достичь только D3Hot. Дополнительные сведения см. в разделе "Поддержка D3Cold" в драйвере.