Обзор платформы управления питанием

Windows 7 и более ранние версии операционной системы обеспечивают поддержку только управления питанием на уровне устройства, что позволяет драйверу поддерживать D-состояния на устройстве. Спецификация интерфейса расширенной конфигурации и питания (ACPI) определяет состояния питания устройства от D0 (полностью включен) до D3 (полностью выключен), а также определяет состояния питания системы от S0 (полностью включено) до S5 (полностью выключено). Эти версии Windows не предоставляют механизмы для независимого управления питанием, предоставляемым отдельным компонентам устройства. В этих версиях Windows некоторые драйверы могут реализовывать пользовательские элементы управления питанием для компонентов, но эти элементы управления обычно усложняют драйверы и могут быть доступны только в том случае, если параметры питания компонентов управляются на устройстве.

Начиная с Windows 8, платформа управления питанием во время выполнения (PoFx) добавляет поддержку управления питанием на уровне компонентов. Компонент ( или подчиненный) — это функциональная аппаратная единица на устройстве, которую можно включить или переключить в состояние с низким энергопотреблением независимо от других компонентов на том же устройстве. Например, звуковое устройство может иметь отдельные компоненты для воспроизведения и записи, состояниями питания которых можно управлять независимо друг от друга. Если используется компонент воспроизведения, но компонент записи неактивен, компонент записи может быть переключен в маломощное состояние, не мешая активности компонента воспроизведения.

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

Драйвер обычно поддерживает некоторое количество состояний питания компонентов: F0, F1 и т. д., где F0 — это состояние полного включения. Все компоненты поддерживают состояние F0. Драйвер, который является владельцем политики питания (PPO) для компонентов на устройстве, отвечает за определение любых дополнительных состояний низкой мощности Fx, которые могут иметь компонент. (Обычно драйвером функции для устройства является PPO.) Этот драйвер определяет количество маломощных состояний Fx для каждого компонента и атрибуты каждого состояния Fx. Fx указывает, что этот драйвер определяет, может отличаться от компонента к компоненту на одном устройстве.

PoFx предоставляет интерфейс драйвера устройства (DDI), с помощью которого драйвер может предоставлять сведения о состоянии и возможностях о компонентах на устройстве. Эти данные включают:

  • Текущий уровень активности каждого компонента
  • Время, необходимое компоненту для перехода из одного состояния питания в другое
  • Задержка, которую могут допускать клиенты устройства, когда компонент выходит из состояния с низким энергопотреблением

Кроме того, PoFx получает системные сведения о доменах питания и часов, к которым принадлежит компонент. (Устройства в определенном домене питания совместно используют общую шину питания; устройства в определенном домене часов совместно используют общий сигнал времени.)

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

Чтобы приступить к работе с PoFx, см . статьи Справочник по управлению питанием устройств и Управление питанием на уровне компонентов.