Энергоэффективность Windows 7

В новой статье мы продолжим разговор о фундаментальных аспектах системы, сконцентрировав свое внимание на управлении питанием . Управление питанием ( или энергоэффективность ) – это характеристика, которую должен иметь в виду каждый член экосистемы. Энергетическая эффективность запущенного компьютера всегда ограничивается самым слабым его компонентом . В разработкеWindows 7 мы уделили особое внимание вопросам потребления энергии и продолжим эту деятельность в тесном взаимодействии с вендорами экосистемы Windows . Говоря о необходимости баланса потребностей в любой сфере, отметим, что потребление электропитания – пожалуй, наиболее наглядная область для наблюдения: при тестировании запущенных систем мы подключаем к ним ваттметры и смотрим на изменения в энергопотреблении . Автором очередной нашей статьи выступил Дин ДеВитт ( DeanDeWhitt ), программный менеджеры командыKernel . -- Стивен

Энергетическая эффективность является одной из наиболее активных тем в современном компьютерном мире. Представьте что было бы, если бы производители процессоров и наборов микросхем вместо привычной тактовой частоты маркировали свою продукцию характеристикой «производительность на ватт». Возможно, что вы не раз встречались в прессе с информацией о различных промышленных консорциумах, сфокусированных на «зеленых» вычислениях, призванных сократить потребление электропитания и, как следствие, ‑ влияние на окружающую среду. Да и время работы от аккумулятора остается важнейшим параметром при выборе мобильных компьютеров. В связи с вышесказанным появился большой интерес к тому, каким образом Windows управляет электропитанием.

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

Когда мы говорим об энергетической эффективности и энергопотреблении, мы делим проблемную область на три основных компонента:

  • Базоваяаппаратнаяплатформа : Процессор, набор микросхем и память, а в случае мобильных платформ еще и емкость аккумулятора. Базовая аппаратная платформа может оказывать существенное влияние на энергопотребление платформы – максимальная частота процессора, количество ядер, если процессор создавался для мобильных устройств, и количество общей системной памяти являются основными факторами.
  • Windows : ОС отвечает за управление большинством присутствующих в системе устройств и здесь часто приходится идти на компромисс между производительностью и энергопотреблением, а обеспечивается это за счет применения различных схем энергопотребления. Сложности заключаются в необходимости грамотного управления питанием устройств и обеспечении эффективности новых функций с точки зрения потребления системных ресурсов (процессорного времени, памяти и дискового пространства).
  • Расширения : расширения – это общая категория, в которую входят другие устройствами, драйвера, службы и приложения. Устройства, драйвера и другие приложения также могут оказывать серьезное влияние на общее энергопотребление системы. Одно приложение может привести к сокращению времени работы аккумулятора на 20% и более.

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

Базовая аппаратная платформа

Базовая аппаратная платформа диктуется самим производителем систем. Пользователю при покупке доступен исчерпывающий выбор систем – от экономичных с низким энергопотреблением до прожорливых. Настольные и мобильные компьютеры сегодня выпускаются в огромном количестве форм-факторов, с разными возможностями и разными уровнями энергопотребления. В некоторых мобильных компьютерах используются аккумуляторы с 3 или 6 ячейками, в других же могут использоваться аккумуляторы с 9 ячейками или внешние. Задача Windows – быть энергетически эффективной в широком диапазоне аппаратного обеспечения экосистемы Windows. Давай посмотрим, на что расходуется электроэнергия в современном ноутбуке:

clip_image002

В настольных компьютерах имеет место схожее распределение потребления, хотя абсолютные значения, конечно, выше. Монитор является одним из основных потребителей питания и в настольных системах.

Операционная система

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

Большинство пользователей осуществляют настройку энергопотребления Windows через элемент панели управления Power Options, а на мобильных компьютерах через иконку аккумулятора в области уведомлений. Поскольку Windows позволяет управление питанием, в ней предусмотрены схемы энергопотребления, которые позволяют быстро перейти от одних настроек к другим в зависимости от нужд пользователя.

clip_image004

С помощью схем энергопотребления можно управлять различными энергосберегающими функциями, присутствующими в Windows, включая таймеры простоя для отключения монитора, автоматического перехода в спящий режим, да и никто не мешает вам создать собственную схему. Функции отключения монитора и самого компьютера крайне важны с точки зрения энергосбережения и времени работы от аккумулятора. Как показано выше, энергопотребление монитора может составлять до 40% общего энергопотребления типичного мобильного компьютера и от 30 до более чем 100 Вт у настольного.

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

Простейшим способом сэкономить на энергопотреблении настольного компьютера является сокращение времени отключения монитора в режиме простоя до 2 ‑ 5 минут. Если у вас задействован скринсейвер, отключите его. На мобильном компьютере наиболее простым способом увеличить время работы аккумулятора является снижение яркости дисплея. Также стоит отметить, что большинство существующих комплексных решений (all-in-one) используют компоненты, предназначенные для ноутбуков, поэтому с точки зрения энергопотребления они больше напоминают мобильные компьютеры.

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

В Windows 7 мы упростили взаимодействие пользователей и системы управления питанием, а также сконцентрировали свое внимание на снижении энергопотребления в режиме простоя и добавили поддержку новых режимов работы устройств.

Есть две причины, по которым следует оптимизировать энергопотребление системы при ее простое. Во-первых, очень часто днем компьютер бездействует в течение продолжительных промежутков времени, а чем больше времени он бездействует, тем меньше электроэнергии расходуется. Во-вторых, энергопотребление в режиме простоя является базовым потреблением для всех остальных режимов работы. Система, потребляющая 15 Вт в режиме простоя, при нагрузке будет потреблять дополнительную энергию, суммирующуюся с базовой. Сокращая энергопотребление в режиме простоя, мы снижаем энергопотребление в любом ином сценарии работы.

Первым шагом в сокращении энергопотребления в режиме простоя является оптимизация использования процессора, памяти и диска. Сокращение использования процессора, пожалуй, является самой важной задачей, поскольку у процессора довольно широкий диапазон энергопотребления. При полном простое процессору требуется около 100-300 мВт. А при полной загрузке один только процессор может потреблять до 35 Вт. Такой широкий диапазон означает, что даже невысокая активность процессора может оказать существенное влияние на общее энергопотребление системы и время работы от аккумулятора. В Windows 7 мы внесли несколько изменений, которые призваны сократить использование процессора и позволить ему дольше находится в режиме пониженного энергопотребления. Изменения коснулись и запущенных служб: теперь службы помечены триггерами и включаются только тогда, когда они необходимы. И несмотря на то, что службы сами по себе эффективны и имеют минимальное влияние на энергопотребление, так можно добиться дополнительного эффекта. Мы работаем над поиском более интеллектуальных способов управления этими службами, чтобы они были доступны не только в Windows, но и ими мог бы воспользоваться любой, кто создает службы для инфраструктуры Windows. Также следует понимать, что это положительно сказывается и на времени загрузки.

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

Мы также внесли ряд изменений в управление питанием различных устройств, включая USB-устройства, чтобы реализовать выборочное отключение (по технологии Selective Suspend) широкого диапазона аудио-устройств, биометрических устройств, сканнеров и смарт-кард. Изменения коснулись и энергопотребления сетевых устройств – и проводных, и беспроводных. Эти изменения в Windows 7 позволят создавать более экономичные устройства.

И хотя большинство внесенных изменений сконцентрированы на сокращении энергопотребления в нескольких ключевых сценариях, в Windows 7 особое внимание уделено некоторым пользовательским сценариям, в которых необходимо увеличить время работы от аккумулятора. Одним из таких сценариев является воспроизведение видео. Оптимизации, внесенные в воспроизведение DVD, приводят к сокращению нагрузки на процессор и графическую плату. Все эти изменения дали свои плоды и ощутимо увеличили время работы от аккумулятора на многих мобильных платформах, которые мы продемонстрировали в ходе конференции WinHEC.

Расширения

Графические устройства, USB-устройства, принтеры, фоновые службы и все установленные приложения являются расширениями к Windows. Значительно сократить энергопотребление можно путем увеличения эффективности расширений.

Рассмотрим, например, некое USB-устройство, которое не поддерживает технологию Selective Suspend. Устройство (к примеру, сканер отпечатков пальцев) само по себе может иметь низкое энергопотребление, но до того момента, как оно войдет в режим ожидания, процессор вместе с набором микросхем должны опрашивать устройство на низкой частоте, чтобы понять, поступили ли новые данные. Такого рода опросы мешают процессору входить в режим низкого энергопотребления и, как результат, сокращают время работы от аккумулятора примерно на 20-25%.

Устройства – это не единственная область, в которой требуются дополнительные усилия, чтобы обеспечить экономный расход электроэнергии. Приложения и службы также могут оказывать существенное влияние на общее энергопотребление системы. Возьмем, к примеру, приложение, которое увеличивает временное разрешение платформы с помощью timeBeginPeriod API. В таком случае процессор не сможет эффективно использовать режимы пониженного энергопотребления. В нашей практике встречались приложения, в которых разрешение было увеличено до 1 мс, при этом время работы от аккумулятора типичного ноутбука снижалось до 10%.

Мы стараемся помочь увеличить энергетическую эффективность расширений к Windows путем взаимодействия с нашими партнерами. Мы обеспечиваем их мощными инструментами для выявления проблем, связанных с энергопотреблением, в приложениях и устройствах. В Windows 7 мы добавили специальную утилиту, которая генерирует HTML-отчет о проблемах в энергопотреблении. Если хотите оценить ее в деле, то запустите консоль от лица администратора и введите команду powercfg / energy. Перед этим необходимо закрывать все запущенные приложения и открытые документы – утилита призвана отыскивать проблемы питания исключительно в режиме простоя. Команда powercfg с параметром /energy может помочь вам отыскать USB-устройства, которые не поддерживают Selective Suspend, и приложения, увеличивающие временное разрешение платформы.

Для более глубокого анализа предусмотрен Windows Performance Toolkit https://www.microsoft.com/whdc/system/sysperf/perftools.mspx, который позволяет разработчикам оценивать потребление ресурсов разрабатываемых приложений, избавляться от узких мест и идентифицировать проблемы, влияющие на энергоэффективность системы.

А что насчет выключения компьютера ?

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

  • Сон: Все открытые приложения, документы и файлы хранятся в системной памяти, а остальные элементы системы отключены. В связи с тем, что питание подается только на память, в спящем режиме потребляется очень мало электроэнергии – как правило, менее 1 Вт и менее 3 Вт на мобильных и настольных компьютерах соответственно. Главным преимуществом спящего режима является минимальное время готовности к работе – большинство систем выходят из режима сна за менее, чем 2 секунды.
  • Гибернация : Все открытые приложения, документы и файлы копируются из оперативной памяти на жесткий диск в файл гибернации. После того, как содержимое оперативной памяти скопировано в него, компьютер выключается. Гибернация в большинстве случаев используется на мобильных компьютерах, поскольку потребление электропитания в этом режиме на большинстве компьютер составляет менее 0.1 Вт. Даже если аккумулятор полностью разрядится, вся информация будет с легкостью восстановлена с жесткого диска. В связи с тем, что объемы системной памяти постоянно растут, а в некоторых компьютерах дисковое пространство ограничено, режим гибернации вряд ли сможет претендовать на роль идеального решения. (Кстати говоря, запустив утилиту Disk Cleanup или введя в консоли команду powercfg hibernateoff, вы можете освободить пространство на диске, предусмотренное для файла гибернации).
  • Выключение: Это обычный режим выключения Windows, при котором ничего не сохраняется в память или на диск, а при следующем включении система вновь загружается с нуля.

Используя обычный настольный компьютер, мы выполняли измерение его энергопотребления в режимах сна, гибернации, выключении и в обычном рабочем состоянии, когда был открыт рабочий стол и не выполнялось ни одной программы. Мы также измеряли латентность восстановления – интервал времени, необходимый системе для возврата в рабочее состояние.

clip_image006

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

Дальнейшие шаги

Перед нами стоит задача постоянного улучшения энергоэффективности компьютеров под управлением Windows, и в Windows 7 были внесены существенные изменения в платформу управления энергопотреблением. Тем не менее, впереди нас ждет немало работы. От бета-тестирования мы ожидаем получить важные данные телеметрии, которые позволят всесторонне оценить энергоэффективность и систему управления питанием разрабатываемой нами ОС. И, конечно же, мы продолжим тесное взаимодействие с другими представителями экосистемы, поскольку работаем над обеспечением максимальной энергетической эффективности на разных этапах жизни компьютеров – с момента их изготовления и на протяжении всего периода эксплуатации.

Дин ДеВитт (Dean DeWhitt),

программный менеджеры команды Kernel