Подготовка оборудования к современному режиму ожидания
При переходе в современный режим ожидания аппаратные компоненты должны быть подготовлены к переходу на работу с низким энергопотреблением. После подготовки программных компонентов и приложений к работе с низким энергопотреблением компоненты оборудования, включая драйверы их программных устройств, должны быть аналогичным образом подготовлены для работы с низким энергопотреблением.
В оставшейся части этой статьи объясняется, как подготовить устройства за пределами и внутри системы на микросхеме (SoC) для работы в маломощном режиме после выхода аппаратной платформы в режим ожидания.
Переход оборудования в режим низкого энергопотребления
Все устройства за пределами SoC и внутри SoC должны переходить в режим низкой мощности, чтобы обеспечить длительное время работы батареи во время сна. После перехода аппаратной платформы в спящий режим устройства на платформе переключаются в режимы с низким энергопотреблением в упорядоченном процессе, который начинается с устройств за пределами SoC.
Во-первых, все устройства за пределами SoC или core silicon должны перейти в режим малой мощности. Режим питания может находиться в состоянии простоя с часовым режимом, например, если сенсорный контроллер, подключенный к I²C, помещается в спящий режим. Или режим питания может быть 0-ваттным состоянием под названием D3cold. Веб-камера, подключенная к USB, часто переходит на D3cold во время современного режима ожидания. Дополнительные сведения см. в разделе Поддержка D3cold для USB-устройств.
Каждый класс устройства и шина подключения имеют собственную терминологию и требования для перехода устройства в режим наименьшего энергопотребления. Однако очень важно, чтобы разработчик системы планировал режим работы с низким энергопотреблением для каждого устройства на платформе во время современного режима ожидания. Время работы батареи системы и возможность размещения самого SoC в режиме низкого энергопотребления зависит от правильного управления питанием каждого устройства за пределами самого SoC.
Затем сетевые и радиоустройства помещаются в режим с низким энергопотреблением для спящего режима. Во время спящего режима на этих устройствах часто по-прежнему применяется питание для поддержания подключения, и при необходимости их требуется для пробуждения SoC. Устройства связи и радио обычно переходить в состояние D2/D3 с низким энергопотреблением, хотя вход в каждое состояние зависит от класса устройства и шины.
После выключения всех устройств за пределами SoC, включая устройства связи, контроллеры узлов в SoC будут отключены. Почти каждый SoC имеет хост-контроллеры USB, I²C, GPIO, SDIO и UART. Каждый из этих компонентов на SoC должен быть отключен, чтобы SoC переключился в режим малой мощности.
Процесс подготовки оборудования к низкому энергопотреблению во время сна можно визуализировать как перевернутую пирамиду, как показано на следующей схеме. Самая низкая мощность достигается при выключении всей микросхемы SoC, но это может произойти только после того, как каждый набор устройств над ним в пирамиде был выключен.
Выключение устройств за пределами SoC
Каждое устройство за пределами микросхемы SoC должно переходить в режим низкой мощности для двух ключевых целей:
- Уменьшите энергопотребление устройства.
- Разрешите самому soC выключать питание, разрешив выключение питания контроллера узла on-SoC, к которому подключено устройство.
Метод выключения каждого устройства за пределами SoC зависит от класса устройства и подключенной шины.
Некоторые устройства за пределами SoC находятся в состоянии без энергопотребления мощностью 0 Вт под названием D3cold. Распространенные устройства для D3cold включают камеры и датчики. Драйвер должен сохранить состояние регистрации устройства, а затем перевести устройство в состояние питания D3. Встроенное ПО ACPI будет отключать питание, переключив линию GPIO или выключив шину питания от ic управления питанием (PMIC).
Некоторые устройства за пределами SoC помещаются в режим бездействия с низким энергопотреблением, в котором сохраняется состояние регистрации, или устройство может быть просто часы. Например, многие сенсорные контроллеры имеют состояние с часовым контролем, которое потребляет менее 1 милливатта энергии. Типичные преимущества использования часового режима — это более быстрое время включения питания и более низкая стоимость за счет того, что устройство не подключается к переключаемой направляющей питания.
Как правило, каждое устройство за пределами SoC должно быть способно входить в режим с низким энергопотреблением, который потребляет менее 1 милливатта энергии. Устройства, которые не могут достичь этого уровня питания с внутренним состоянием с часовым шлюзом, должны реализовать энергопотребление через D3cold.
Сетевые и радиоустройства являются заметным исключением из 1-милливаттного руководства. Сетевым и радиоустройствам может потребоваться больше энергии для поддержания подключения к сети или прослушивания беспроводных устройств. Некоторые системные конструкторы называют эти переходы состояния питания средой выполнения D3 (RTD3).
Управление питанием для устройств PCIe
Карты PCIe за пределами SoC должны включать механизм управления направленным питаниемпод названием Device-S4 , чтобы гарантировать, что они могут перейти в режим низкого энергопотребления. Без device-S4, если пользователь подключает устройство к корневому порту PCIe с доступными пользователями слотами на настольной современной резервной системе, а драйвер для устройства не поддерживает среду выполнения D3 (RTD3), устройство PCIe может помешать системе войти в DRIPS. Чтобы избежать этой проблемы, изготовители оборудования должны выбрать в корневых портах устройства PCIe значение Device-S4. Чтобы устройство-S4 было задействовано для данного устройства PCIe, необходимо выполнить следующие требования:
- Родительский корневой порт PCIe для устройства должен быть указан в качестве ограничения для DRIPS.
- Родительский корневой порт PCIe должен применять базовый сброс устройства для всех дочерних элементов, подчиненных корневому порту при переходе D0–>D3 корневого порта, и отменять основной сброс устройства для этих дочерних элементов при переходе D3–>D0. Дополнительные сведения об основных сбросах PCIe см. в разделе 6.6.1 базовой спецификации PCI Express. Применение фундаментального сброса может быть обеспечено дополнительными механизмами ACPI. Дополнительные сведения см. в этом руководстве по управлению питанием PCI. Чтобы указать, что платформа соблюдает это фундаментальное требование сброса, встроенное ПО должно определить _DSD с поддержкой GUID {FDF06FAD-F744-4451-BB64-ECD792215B10}. Без этого для устройств с этим корневым портом PCIe не будет активирована направленная DRIPS. Дополнительные сведения см. в статье Данные устройства ACPI (_DSD) для корневых портов PCIe.
- Ресурсы питания должны быть уникальными для заданного корневого порта PCIe, т. е. не должны использоваться ни с каким другим корневым портом.
Обратите внимание, что карты PCIe, для которых требуются модули поддержки совместимости (CSM), не будут работать в современных резервных системах. CSM не поддерживается в BIOS в современных резервных системах из-за требования к безопасной загрузке UEFI. Дополнительные сведения см. в спецификации программы совместимости оборудования Windows.
Дополнительные сведения об управлении питанием для определенных классов устройств разработчикам систем рекомендуется ознакомиться с разделом Управление питанием для конкретных устройств в современном режиме ожидания, а также в документации по конкретному устройству в Microsoft Collaborate.
Выключение сетевых устройств
Выключение сети и радиоустройств является еще одной ключевой частью подготовки оборудования к работе с низким энергопотреблением во время спящего режима. Сетевые и радиоустройства отличаются от других устройств за пределами SoC, так как они должны оставаться в состоянии включения, чтобы слушать интересные события и разбудить SoC. Например, Wi-Fi радио должен быть способен прослушивать пакеты, соответствующие шаблонам WoL, и пробуждение SoC при обнаружении соответствующего пакета.
Windows переводит сетевые устройства в состояние D2/D3 во время спящего режима, если они должны разбудить SoC. Сетевой стек Windows настроит шаблоны WoL и разгрузку протокола перед переводом устройства в состояние D2/D3 с низким энергопотреблением. Все сетевые устройства, включая Wi-Fi, мобильную широкополосную связь (MBB) и проводную сеть Ethernet, должны быть способны входить в состояние D2/D3 во время спящего режима. Если сетевое устройство не требуется для пробуждения системы, Windows передаст устройство в состояние D3. Сетевое устройство можно поместить в состояние D3, если пользователь включил режим "в самолете" или отключил определенное сетевое устройство.
Каждое устройство имеет свой физический метод для пробуждения SoC из режима наименьшего энергопотребления. Сетевые устройства в SDIO или UART, как ожидается, будут сигнализировать линию GPIO для пробуждения SoC. Предполагается, что сетевые устройства, подключенные через USB или HSIC, будут использовать сигнальную передачу по USB для пробуждения SoC. Предполагается, что сетевые устройства на шинах PCI или PCIe будут использовать сигнальную сигнализацию PME в диапазоне для пробуждения SoC.
Кроме того, радиоустройство, например устройство Bluetooth или NFC, должно перейти в состояние D2, если пользователь включил радио для этого устройства. В состоянии D2 радио bluetooth прослушивает события ввода от парных мышей и клавиатур. При обнаружении события ввода переключатель Bluetooth переключает линию GPIO, подключенную к SoC, что приводит к выходу SoC из режима низкой мощности.
Каждое сетевое или радиоустройство имеет собственную реализацию выключения для современного режима ожидания. Разработчикам систем рекомендуется читать документы, относящиеся к определенному классу устройства, на веб-сайте Microsoft Collaborate.
Выключение контроллеров узла SoC
После выключения всех устройств за пределами SoC, включая сетевые и радиоустройства, контроллеры узла, к которым подключены устройства, должны выключать питание. К распространенным хост-контроллерам относятся USB, PCI, SDIO, GPIO и I²C.
Драйвер для каждого хост-контроллера может выключать оборудование только после выключения каждого устройства, подключенного к контроллеру узла. Распространенным примером является хост-контроллер USB. Контроллер узла USB может выключать питание только после того, как все подключенные к нему USB-устройства перейдют в состояние выборочной приостановки. Если к хост-контроллеру USB подключена мышь и клавиатура USB, хост-контроллер может выключиться только после выключения мыши и клавиатуры. Если мышь или клавиатура остаются включено, контроллер узла USB также остается в включенном режиме.
Все хост-контроллеры в SoC должны выключать питание для спящего режима, чтобы выключился сам SoC. Вот почему крайне важно, чтобы каждое устройство выполняло управление питанием устройства. Сам SoC может выключается только при отключении каждого хост-контроллера. Контроллеры узла могут выключать питание только после выключения всех подключенных к ним устройств.
Выключение ЦП и GPU
С точки зрения управления питанием ЦП и GPU на микросхеме SoC отличаются от других устройств. ЦП и GPU выключаются в процессе выключения самого SoC и могут быть отключены всякий раз, когда нет программных действий, направленных на них.
Большая часть активности программного обеспечения в системе будет остановлена на этапах подготовки, описанных в разделе Подготовка программного обеспечения для современного резервного копирования. Приложения Microsoft Store будут приостановлены на этапе PLM. Классические приложения будут приостановлены в рамках этапа DAM. Единственные действия ЦП, которые остаются после того, как платформа переходит на фазу устойчивости, — это бездействующие операции самой Windows. Аналогичным образом, активность GPU невелика, так как все приложения были приостановлены, а экран отключен.
Windows постоянно управляет состоянием питания ЦП в системе, даже если экран включен и пользователь работает с компьютером. Одно и то же управление состоянием питания ЦП переводит ЦП в режим с низким энергопотреблением во время спящего режима. Если все ЦП находятся в режиме низкого энергопотребления и все контроллеры узла в SoC отключены, можно отключить сам SoC.
Выключение SoC
После выключения всех отдельных контроллеров узла, ЦП и GPU на SoC Windows определит, безопасно ли выключать всю soC. Поставщик SoC предоставляет подключаемый модуль подсистемы питания (PEP), чтобы сообщить Windows, когда все состояние SoC было сохранено, чтобы SoC был готов к переходу в режим с низким энергопотреблением. Для soCs на основе Intel pep предоставляется в папке "Входящие".
Каждый поставщик SoC имеет разную реализацию состояния с низким энергопотреблением на уровне SoC. Обычно это состояния с ограничением по времени или питанием, в которых содержимое памяти сохраняется в режиме самообновляющегося, а система может быть разбужена программируемым таймером и небольшим количеством контактов GPIO, которые потребляют очень мало энергии. Windows относится к самому низкому состоянию питания SoC как к самому глубокому состоянию простоя платформы среды выполнения (DRIPS).
Состояние DRIPS всегда имеет следующие характеристики:
- DRIPS — это наименьшее состояние энергопотребления для SoC, в котором память сохраняется в режиме самообновлений.
- DRIPS позволяет SoC выполнять пробуждение событий с сетевых устройств, радиоустройств и устройств ввода.
- Код ЦП не может выполняться во время состояния DRIPS.
- Когда SoC находится в состоянии DRIPS, платформа потребляет наименьшее количество энергии во время спящего режима (за исключением отклонений в энергопотреблении, вызванных сетевыми и радиоустройствами).