Устройства с низкой мощностью
Состояние питания устройства D1, D2 и D3 — это состояния низкой мощности устройства. Начиная с Windows 8 D3 делится на две подстатки, D3hot и D3cold.
D1 и D2 являются промежуточными состояниями низкой мощности. Многие классы устройств не определяют эти состояния. Все устройства должны определять D3hot.
В следующих разделах описаны D1, D2 и D3:
Устройство Power State D1
Состояние питания устройства D1 — это самое высокопроизводительное состояние устройства с низкой мощностью. Оно имеет следующие характеристики.
Энергопотребление
Потребление меньше, чем в состоянии D0, но больше или равно ей в состоянии D2. Часто D1 — это состояние, в котором устройство получает достаточно энергии, чтобы сохранить аппаратный контекст устройства. Как правило, спецификация для класса шины или устройства, поддерживающая D1, подробно описывает это состояние.
Контекст устройства
В общем случае контекст устройства сохраняется оборудованием и не требуется восстановить драйвером. Спецификация для класса шины или устройства, поддерживающего D1, обычно предоставляет подробные требования для сохранения этого контекста.
Поведение драйвера устройства
Драйверы должны сохранять и восстанавливать или повторно инициализировать любой контекст, потерянный оборудованием. Как правило, устройства теряют мало контекста при входе в это состояние.
Время восстановления
Как правило, время, необходимое для восстановления устройства до D0 от D1, должно быть меньше, чем восстановление от D2 до D0.
Возможность пробуждения
Устройство в D1 может запрашивать пробуждение. Чтобы предоставить сведения о том, может ли это состояние поддерживать сигнал пробуждения, драйвер шины использует структуру DEVICE_CAPABILITIES или, начиная с Windows 8, интерфейс драйвера GUID_D3COLD_SUPPORT_INTERFACE .
Как правило, устройства, использующие D1, делают это, так как возобновление из этого состояния не требует драйвера для восстановления полного аппаратного контекста устройства. Чтобы свести к минимуму восприятие задержки пользователя, восстановление устройства до D0 от D1 должно повлечь за собой наименьшую возможную задержку. Минимизация задержки при переходе состояния является более важной, чем сокращение потребления энергии.
Устройство Power State D2
D2 — это промежуточное состояние низкой мощности устройства со следующими характеристиками:
Энергопотребление
Потребление меньше или равно потреблению в состоянии D1.
Контекст устройства
Как правило, большинство контекстов устройств теряется оборудованием. Часто это состояние сохраняет часть контекста, который используется для сигнала о событиях пробуждения. Спецификация для класса шины или устройства, поддерживающего D2, обычно предоставляет подробные требования для сохранения этого контекста.
Поведение драйвера устройства
Драйверы устройств должны сохранять и восстанавливать или повторно инициализировать любой контекст, потерянный оборудованием. Обычное устройство теряет большую часть контекста при вводе D2.
Время восстановления
Восстановление устройства от D2 до D0 занимает по крайней мере до тех пор, пока устройство восстанавливается от D1 до D0. Графический адаптер с большим буфером кадров является примером устройства с большим объемом аппаратного контекста для восстановления после перехода с D2 на D0. Для такого устройства время восстановления от D2 может быть гораздо больше времени восстановления от D1.
Возможность пробуждения
Устройство в D2 может запрашивать пробуждение. Чтобы предоставить сведения о том, может ли это состояние поддерживать сигнал пробуждения, драйвер шины использует структуру DEVICE_CAPABILITIES или, начиная с Windows 8, интерфейс драйвера GUID_D3COLD_SUPPORT_INTERFACE .
Как правило, драйверы, поддерживающие D2, так как их устройства не могут поддерживать пробуждение от D3. Для этих устройств потребление энергии в состоянии D2 снижается до самого низкого уровня, с которого устройство может восстановиться в ответ на сигнал пробуждения. В отличие от состояния D1, которое реализуется для уменьшения задержки, предполагаемой пользователем, цель реализации состояния D2 — экономия энергии. В результате время восстановления от D2 до D0 обычно превышает значение от D1 до D0. Например, в состоянии D2 снижение питания на шине может привести к отключению некоторых функций устройства, поэтому требуется дополнительное время для перезапуска и восстановления устройства.
Многие классы устройства не определяют это состояние.
Устройство Power State D3
D3 — это наименьшее питание устройства с низкой мощностью. Все устройства должны поддерживать это состояние.
Начиная с Windows 8 операционная система подразделяет D3 на два отдельных и отдельных подстата, D3hot и D3cold. Более ранние версии Windows определяют состояние D3, но не подстатки D3hot и D3cold. Однако все версии спецификации интерфейса управления питанием шины PCI определяют отдельные подстатки D3hot и D3cold, а версии 4 и более поздние версии спецификации расширенной конфигурации и интерфейса питания определяют подстатки D3hot и D3cold.
Хотя версии Windows до Windows 8 явно не определяют подстатки D3hot и D3cold D3, эти подстатики существуют неявно в этих более ранних версиях Windows. Устройство неявно находится в подстате D3hot, если устройство явно находится в состоянии D3, а компьютер находится в состоянии питания системы S0. В D3hot устройство подключено к источнику питания (хотя устройство может быть настроено для рисования низкого текущего), а наличие устройства на шине можно обнаружить. Устройство неявно находится в подстате D3cold, если оно явно находится в состоянии D3, и компьютер находится в состоянии SX с низким уровнем мощности (состояние, отличное от S0). В этом неявном подстате D3cold устройство может получить ловкое текущее значение, но устройство и компьютер эффективно отключаются до тех пор, пока не произойдет событие пробуждения.
Начиная с Windows 8 устройство может ввести и оставить подстаток D3cold, пока компьютер остается в состоянии S0. Для поддержки нового поведения D3hot и D3cold необходимо явно определить как отдельные подстатки D3.
D3hot — это единственная подсостояние D3, которую устройство может ввести непосредственно из D0. Устройство выполняет переход с D0 на D3hot под управлением программного обеспечения драйвером устройства. В D3hot устройство можно обнаружить на шине, к которому он подключается. Шина должна оставаться в состоянии D0, пока устройство находится в подстате D3hot. В D3hot устройство может вернуться в D0 или ввести D3cold. D3cold можно вводить только из D3hot.
D3cold — это подсостояние D3, в котором устройство физически подключено к шине, но наличие устройства на шине не может быть обнаружено (т. е. до включения устройства снова). В D3cold одно или оба из следующих значений:
- Шина, к которому подключается устройство, находится в состоянии низкой мощности.
- Устройство находится в состоянии низкой мощности, в котором устройство не отвечает, когда водитель шины пытается обнаружить его присутствие на шине.
Переход от D3hot к D3cold происходит без взаимодействия с драйвером устройства. Вместо этого драйвер устройства указывает, подготовлен ли он к переходу D3cold перед началом перехода с D0 на D3hot. Впоследствии переход от D3hot к D3cold может произойти или не может произойти, в зависимости от того, имеют ли все условия право на включение этого перехода.
Два таких условия: все устройства, использующие один и тот же источник питания, находятся в D3hot и подготовлены к переходу D3cold. Когда последнее из этих устройств входит в D3hot, родительский драйвер шины или драйвер фильтра ACPI отключает источник питания на эти устройства, что говорит о том, что устройства входят в D3cold.
Устройство, которое находится в D3cold, может оставить это подсостояние только путем ввода D0. Прямой переход от D3cold к D3hot отсутствует.
Если компьютер находится в состоянии S0 и устройство входит в подстаток D3hot, драйвер устройства обычно не может заранее определить, будет ли следующий переход устройства на D3cold или D0. Одним из исключений является подготовка компьютера к выходу из состояния S0. В этом случае следующий переход — D3cold.
В следующих разделах описаны D3hot и D3cold:
Дополнительные сведения см. в разделе "Поддержка D3cold" в драйвере.
Подсостояние D3hot
D3hot имеет следующие характеристики:
Питание энергопотребления в основном удаляется с устройства, но не с компьютера в целом. Компьютер, который находится в состоянии S0, может продолжать работать в этом состоянии или может подготовиться к переходу из S0 в состояние S0 с низкой мощностью Sx.
Контекст устройства
Драйвер устройства несет ответственность за восстановление контекста устройства. Драйвер должен сохранить и затем восстановить весь контекст устройства или повторно инициализировать устройство при переходе в состояние D0.
Поведение драйвера устройства
Драйвер устройства несет исключительно ответственность за восстановление контекста устройства, как правило, из последней рабочей конфигурации.
Время восстановления
Общее время восстановления является самым высоким из состояний питания устройства, за исключением D3cold, но обычно не намного больше времени восстановления от D2.
Возможность пробуждения
Устройство в подстате D3hot может или не может запрашивать пробуждение. Чтобы предоставить сведения о том, может ли эта подстатеция поддерживать сигнал пробуждения, драйвер шины использует структуру DEVICE_CAPABILITIES или, начиная с Windows 8, интерфейс драйвера GUID_D3COLD_SUPPORT_INTERFACE .
В D3hot доступно только минимальное ручее текущее. Драйверы и оборудование должны быть подготовлены к отсутствии питания. Спецификация шины, поддерживающей D3hot, обычно предоставляет подробные требования к источникам питания, которые можно использовать в этом состоянии. Чтобы вернуть устройство в рабочее состояние, драйверы устройства должны иметь возможность восстановить и повторно инициализировать устройство без зависимости от BIOS, чтобы запустить любой код в параметров, которые могут быть доступны для устройства.
Все классы устройства определяют подстаток D3hot.
Субстат D3cold
D3cold имеет следующие характеристики:
Энергопотребление
Питание полностью удалено с устройства и, возможно, из всей системы. Устройство может иметь возможность рисования текущего из источников бокового диапазона в зависимости от его конструкции.
Контекст устройства
Драйвер устройства несет ответственность за восстановление контекста устройства. Драйвер должен сохранить и затем восстановить контекст устройства или повторно инициализировать устройство при переходе в состояние D0.
Поведение драйвера устройства
Драйвер устройства несет исключительно ответственность за восстановление контекста устройства, как правило, из последней рабочей конфигурации.
Время восстановления
Общее время восстановления — это самый высокий из состояний питания устройства.
Возможность пробуждения
В подстате D3cold устройство может активировать сигнал пробуждения для пробуждения спящего компьютера. Эта возможность отображается в структуре DEVICE_CAPABILITIES и, начиная с Windows 8, подпрограммой GetIdleWakeInfo в интерфейсе драйвера GUID_D3COLD_SUPPORT_INTERFACE. После пробуждения компьютера драйвер устройства инициирует переход устройства с D3cold на D0. Дополнительные сведения см. в следующих замечаниях.
Начиная с Windows 8 устройство в подстате D3cold может активировать сигнал пробуждения на компьютер, который находится в состоянии питания системы S0. Эта возможность сообщается подпрограммой GetIdleWakeInfo . Структура DEVICE_CAPABILITIES не содержит сведения об этой возможности. После поступления сигнала пробуждения драйвер устройства инициирует переход устройства с D3cold на D0. В этом случае компьютер проснется при поступлении сигнала, и только устройство должно проснуться.
Во многих существующих аппаратных платформах устройство, которое находится в состоянии dx с низкой мощностью, может активировать сигнал пробуждения для пробуждения спящего компьютера. Однако то же устройство может не активировать сигнал пробуждения, если компьютер работает в состоянии S0. Таким образом, драйвер для этого устройства не должен инициировать переход устройства с D0 на состояние Dx с низкой мощностью, если компьютер находится в состоянии S0. В противном случае после выхода устройства из D0 он будет недоступен, пока компьютер не покидает состояние S0. Это устройство должно оставить состояние D0 только в том случае, если компьютер готовится оставить состояние S0.
Если устройство, которое находится в состоянии dx с низкой мощностью, может активировать сигнал пробуждения к компьютеру, работающему в состоянии S0, устройство не обязательно оставаться в D0, если компьютер находится в S0. Если компьютер находится в S0, и устройство находится в D0, но неактивно, драйвер может вооружить устройство для активации сигнала пробуждения, а затем инициировать переход устройства с D0 на это низкое питание Dx состояния.
Некоторые классы устройства определяют подсостояние D3cold.
Дополнительные сведения см. в разделе "Поддержка D3cold" в драйвере.