Управление питанием для аппаратных устройств хранения данных

Введение

Этот документ предназначен в качестве руководства для изготовителей оборудования и производителей устройств, использующих встроенные драйверы SATA и NVMe корпорации Майкрософт в обновление Windows 10 за май 2019 г. или более поздних версиях ОС. Корпорация Майкрософт предоставляет встроенные решения, которые "просто работают" с точки зрения балансировки производительности, скорости реагирования и энергоэффективности. Как и в случае с общей производительностью системы, плохое поведение оборудования устройства может поставить под угрозу общую эффективность и время работы батареи. Как правило, система пытается сбалансировать эффективность энергопотребления с производительностью.

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

Состояния включения

Управление питанием состояния спящего режима ACPI-Defined

Если система не используется, Windows может оппортунистически поместить систему в состояние сна, определенное ACPI, чтобы сэкономить энергию. Кроме того, Windows может со временем выбирать состояния глубокого спящего режима, чтобы сэкономить еще больше энергии. Например, система может перейти на S3 в течение определенного периода и в конечном итоге перейти на S4 Hibernate. Когда система переходит в спящий режим, общее правило заключается в том, чтобы поместить устройство в максимально глубокое D-состояние, если только устройство не поддерживает пробуждение и не вооружается для пробуждения. В этих условиях может быть уместно более мелкое D-состояние. Аналогичным образом, когда система выходит из спящего режима, устройство будет переходить обратно в D0.

Управление питанием среды выполнения

Для достижения максимальной эффективности энергопотребления некоторые компоненты реализуют очень детализированную логику простоя, чтобы определить, когда устройства могут быть отключены, даже если система активно используется. Например, высокопроизводительное запоминающее устройство может отключить некоторые функциональные блоки во время выполнения, если драйвер считает, что они не использовались в течение некоторого периода времени. Это возможно только в том случае, если эти функциональные блоки можно вернуть в режим "в сети" и сделать их функциональными достаточно быстро, чтобы у пользователя не было заметных задержек.

Современное управление резервным питанием

Если система не используется, Windows может оппортунистически отключить питание некоторых устройств для экономии энергии. В режиме современного режима ожидания система остается в S0. Даже в S0 все периферийные устройства могут в конечном итоге отключиться из-за времени ожидания простоя. Это состояние определяется как "S0 Low Power Idle". Когда все устройства находятся в состоянии низкого энергопотребления, может быть выключена еще больше системной инфраструктуры (например, шин, таймеров и т. д.). Общее правило заключается в том, чтобы поместить устройство в максимально глубокое D-состояние, когда оно бездействует, даже если системное состояние S0. В зависимости от деталей реализации процессорного комплекса и структуры платформы периферийные устройства могут потребоваться для перехода в состояние F, D3 Hot или D3 Cold (выключение питания). Чтобы снизить потребность в драйвере-функции для управления этими сведениями о реализации, драйверы должны перейти к самому глубокому соответствующему состоянию устройства, чтобы максимально увеличить время работы батареи.

Поддержка D3

Если система не используется, Windows может оппортунистически отключить питание некоторых устройств для экономии энергии. В режиме современного режима ожидания система остается в S0. Даже в S0 все периферийные устройства могут в конечном итоге отключиться из-за времени ожидания простоя. Это состояние определяется как "S0 Low Power Idle". Когда все устройства находятся в состоянии низкого энергопотребления, может быть выключена еще больше системной инфраструктуры (например, шин, таймеров и т. д.). Общее правило заключается в том, чтобы поместить устройство в максимально глубокое D-состояние, когда оно бездействует, даже если системное состояние S0. В зависимости от деталей реализации процессорного комплекса и структуры платформы периферийные устройства могут потребоваться для перехода в состояние F, D3 Hot или D3 Cold (выключение питания). Чтобы снизить потребность в драйвере-функции для управления этими сведениями о реализации, драйверы должны перейти к самому глубокому соответствующему состоянию устройства, чтобы максимально увеличить время работы батареи.

ASL Copy  
Name (_DSD, Package () { 
     
          ToUUID("5025030F-842F-4AB4-A561-99A5189762D0"), 
     
            Package () { 
 
                Package (2) {"StorageD3Enable", 1}, // 1 - Enable; 0 - Disable 
 
            } 
        } 
 ) 

Приведенный выше _DSD ACPI является предпочтительным способом согласия на поддержку D3 для запоминающего устройства. Однако существует также глобальный раздел реестра, который можно использовать для изменения поддержки D3 при необходимости.

  • Имя: StorageD3InModernStandby
  • Тип: REG_DWORD
  • Путь: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Storage\
  • Значение:
    • 0 — отключение поддержки D3
    • 1 — включение поддержки D3

Если раздел реестра не настроен, Storport проверка конфигурацию _DSD, чтобы определить, следует ли включить D3. Если _DSD не реализована, Storport будет проверка, включена ли платформа в список разрешений для поддержки D3.

Связь "родители-потомки" для управления питанием

Во время включения питания связь "родитель-потомок" всегда применяется для устройств хранения данных. Во время выключения питания единственный случай, когда отношение "родитель-потомок" не применяется, это если контроллер поддерживает только D3Hot, а устройство передает F1 в PoFx (т. е. поддерживается DEVSLP или это SSD в современной резервной системе), контроллер может входить в D3, пока устройство находится в F1.

В этом разделе

Раздел Описание

NVMe

В этом разделе рассматриваются рекомендации по управлению питанием для устройств хранения NVMe.

SATA/AHCI

В этом разделе рассматриваются рекомендации по управлению питанием для устройств хранения данных SATA/AHCI.