Поделиться через


Переход между неактивным и активными состояниями

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

После ввода состояния DRIPS платформа обычно будет находиться в самом низком режиме питания. Во время спящего режима платформа периодически переключается между этим режимом простоя (DRIPS) и активным режимом. Низкая мощность достигается в спячем режиме, тратя большую часть времени в режиме DRIPS и очень мало времени в активном режиме.

Переход из режима ожидания в активность

Windows передаст SoC в активный режим по следующим причинам:

  • Событие пробуждения по запросу из-за прерывания сетевого устройства (Wi-Fi, мобильной широкополосной связи или Ethernet). Сетевое устройство создает прерывание при обнаружении соответствующего шаблона WoL или при изменении состояния носителя или подключения. Прерывание пробуждает SoC с помощью внеполосного GPIO, встроенного USB-возобновления сигналов или прерывания PCI PME.
  • Событие пробуждения по запросу из-за прерывания устройства платформы от источника, такого как датчик топлива батареи, контроллер заряда батареи или тепловые датчики.
  • Событие пробуждения по запросу из-за прерывания, вызванного вводом пользователем на клавиатуре, сенсорной панели, внешнем usb-периферийных устройствах, кнопке питания или переключателе крышки.

После пробуждения SoC и выхода платформы из состояния DRIPS процессоры начинают выполнять код снова. Однако экран остается отключенным, если прерывание не было результатом ввода пользователем или подключения к источнику питания. Драйвер для устройства, вызывающего прерывание, отвечает за сообщение о присутствии пользователя в ОС, если прерывание соответствует входным данным пользователя. Диспетчер питания Windows определяет, должен ли экран быть включен; Системный конструктор должен убедиться, что прерывание с каждого устройства подключено и запрограммировано для пробуждения SoC из состояния DRIPS.

Разработчики систем должны тесно сотрудничать с поставщиком SoC, чтобы подключить прерывания устройств для пробуждения SoC. Для некоторых устройств SoC требуется подключение устройств к специальным входным данным с поддержкой пробуждения или настройке для пробуждения с помощью системного встроенного ПО.

Переход от активного к простою

Windows переводит платформу SoC из активного режима в режим простоя после остановки всех действий программного обеспечения и перевода устройств на и вне микросхемы SoC в состояния низкой мощности.

SoC переходит между режимами простоя и активного режима во время спящего режима на основе триггеров, описанных в предыдущем разделе. Всякий раз, когда soC активен, Windows будет агрессивно пытаться вернуть его в состояние простоя (DRIPS), чтобы снизить потребление энергии.

SoC также будет активен, когда система выходит из современного резервного режима в ответ на входные данные пользователя, например нажатие кнопки питания. SoC будет автоматически помещен в состояние простоя (DRIPS), если все следующие условия верны:

  • Все устройства за пределами SoC были отключены.
  • Все сетевые и устройства радио связи перешли в режим низкого энергопотребления, чтобы ожидать пакеты, соответствующие шаблонам WoL или прерываниям пробуждения.
  • Все контроллеры узлов в SoC были отключены.
  • Все фоновые задачи приложения завершены.
  • Все действия ЦП и GPU остановлены, и все ЦП неактивны.

Почти все современные проблемы с питанием в режиме ожидания связаны с обеспечением выполнения всех этих пяти условий. Windows включает встроенное средство диагностики с именем SleepStudy , чтобы узнать, какие из этих условий не выполняются, когда SoC не позволяет вводить состояние простоя (DRIPS).