Обзоры
Three Amigos 2001: ACPI, OnNow и Instantly Available PC Часть II. Instantly Available PС и OnNow
0

Three Amigos 2001: ACPI, OnNow и Instantly Available PC Часть II. Instantly Available PС и OnNow

Мы продолжаем рассказ о современных технологиях управления энергопотреблением ПК. В прошлый раз ("Компьютерное Обозрение", # 33, 2001) были рассмотрены элементы второй версии спецификаций ACPI — стандарта, разработанного Intel, Microsoft, Toshiba и Phoenix. Несмотря на непосредственное участие в разработке, корпорация Intel не могла удовлетвориться заложенными в стандарт общими положениями. Тем более что цель у Instantly Available PC несколько иная — обеспечение доступности ПК по пионерскому принципу "всегда готов!".

Модная и милая сердцу "восьмидесятников" тенденция конвергенции всех функций, связанных с обработкой информации, в обыкновенном настольном компьютере привела к неразрешимой дилемме. С одной стороны, мощный, интенсивно нагревающийся и шумный десктоп просто невозможно держать все время включенным. С другой — выключая его, пользователь теряет доступ ко всем электронным средствам связи. И что гораздо более важно, другие абоненты не в состоянии "достучаться" до отключившегося. Фактически на последней миле коммуникаций не только уменьшается скорость соединения, но и теряется первоначальный смысл, заложенный в концепцию Internet. Ну а если смышленый на свою беду пользователь решит сэкономить на дублирующем оборудовании и установит у себя программу обработки факсов или автоответчик с определителем номера? А в домашней обстановке ПК может превратиться в комбинированный телеприемник-видеомагнитофон-музыкальный центр. Сегодня, чтобы воспользоваться любой из вышеперечисленных функций, придется подождать, пока компьютер пройдет через длительный цикл загрузки. Избавиться от этого — означает сделать последний шаг от "Персональной электронной вычислительной машины" к бытовому или офисному устройству. Загнать джинна обратно в бутылку, из которой он и появился.

Версия Instantly Available PC (далее IAPC), представленная на официальном сайте инициативной группы, датирована 25 сентября 1998 года. Из этого можно сделать два вывода: или спецификации опередили время и даже сейчас индустрия далека от их реализации на практике, или Intel все-таки забросила собственный проект в пользу дальнейшего развития ACPI. Что ж, рассмотрим основные положения IAPC и попытаемся сделать выводы.

Intel: сокращаем, вырезаем, усекаем

Диаграмма состояний ACPI иллюстрирует наличие таких градаций "сна" (S0…S5). Intel полагает, что это явно завышенный показатель, и намекает проектировщикам (читайте по губам): "одного достаточно". Рекомендуется оставить S3 — Suspend-to-RAM, поскольку S2 — это чересчур сложно (остановка подачи тактовой частоты влечет трудно предсказуемые последствия), S4 — Suspend-to-Disk "не добавляет никакой иной ценности IAPC, кроме предоставления надежного способа восстановления… после сбоя электропитания", а S5 — Soft Off — вообще не является состоянием "сна". Легкость, с которой инженеры корпорации расправились с S4, удивляет, особенно на фоне всемирно известных калифорнийских проблем. Помимо S3, они дают "любезное разрешение" на внедрение S1, так как в условиях нынешней тотальной экономии тайваньские сборщики могут сделать вспомогательный источник питания (auxiliary power source), предназначенный для "сна", недостаточно мощным. Если запросы устройств, которые в текущей конфигурации системы должны поддерживать функцию "пробуждения", превышают его возможности, необходимо задействовать S1.

Процессорные состояния присутствуют в полном составе: C0…C3 (кто бы сомневался!). Северный мост (Host Bridge), отвечающий за работу с памятью, предлагается оставить включенным, поскольку собственно подача или отключение питания иногда вызывают появление нежелательных импульсов, способных вывести ОЗУ из состояния самообновления (self-refresh). Что касается выбора типа памяти, то здесь Intel опять в своем репертуаре: предпочтительно SDRAM (при больших объемах потребление <500 мВт), а еще лучше RDRAM (256 MB — 120 мВт). Южный мост, выступающий посредником в операциях с шинами ISA, IDE и USB, в произведенных корпорацией чипсетах содержит контроллер ACPI, который отвечает за реализацию вариантов Power-on-Suspend (S1 или S2), Suspend-to-RAM (S3), Suspend-to-Disk (S4).

Охлаждение ПК не ускользнуло от цепкого взора инженеров — абсолютно необходимым считается использование одного или лучше двух тепловых сенсоров. В идеале управление частотой вращения вентиляторов должно быть прерогативой не менеджеров филиппинских компаний, а исключительно IAPC. Определены три скорости, однако можно и просто выключать вентиляторы при вхождении в состояние S3. Остальное время они будут работать на полных оборотах. Относительно стратегии термальной политики и вопроса, что лучше — активное или пассивное охлаждение, у Intel нет особых рекомендаций. Корпорация лишь строго предупреждает: "правильно спроектированная система, использующая активную политику, никогда не должна нуждаться в снижении производительности процессора".

Несмотря на то что в IAPC нашли отражение все возможные варианты, сразу заметен акцент на нестандартном однокнопочном решении. Кратковременное нажатие на кнопку выключения питания должно перевести систему в состояние "сна", а удержание ее на протяжении 4 секунд вызовет незамедлительное программное выключение ПК (S5) или холодную перезагрузку (зависит от предварительных установок). Схеме светодиодной сигнализации далеко по сложности до "флажковой азбуки" во флоте, однако она достаточно функциональна. Если в наличии только один светодиод, то зеленый цвет говорит о состоянии S0, оранжевый — о S1—S3, мигающий огонек свидетельствует об ожидающих прочтения сообщениях (если есть голосовая почта или автоответчик). В двухдиодном варианте: один диод (зеленый) индицирует рабочее состояние, а другой (оранжевый или голубой) — состояние сна.

И наконец, наиболее важный вопрос — источник питания. Их должно быть два (dual mode): основной (main converter) и вспомогательный, меньшей мощности (standby converter). Учитывая инерционность индустрии, предлагается несколько вариантов реализации подсистемы питания: полностью соответствующий концепции IAPC и ряд более умеренных. В минимальные требования не включена необходимость генерирования +5 В в состоянии "сна". Конечно, это делает невозможным пробуждение от оборудования, подключенного к шине USB, и от 5-вольтовых PCI-карт. Поддерживается только одно PCI- или интегрированное в материнскую плату устройство. Данный вариант получил название "хорошего" (Good). По традиции вестерна остаются еще "плохой" и "злой". Но, несмотря на любовь к географии Запада, инженеры Intel представили варианты Better и Best. Лучшая версия предполагает питание для двух устройств, потребляющих в совокупности 1,2 A. Как и в первом случае, минимальная экономия электроэнергии составляет 35 %. Самый лучший вариант — подается питание 5 В, пробуждение могут генерировать 4 устройства (2 А — 3,3 В, 1 A — 5 В). Для реализации двойного питания рекомендуется трехступенчатая схема: стандартный ATX-блок поставляет 3 В, 5 В (основное питание) и 5 В (standby). 5 В конвертируется в 3,3 В, а также напрямую подается на генератор 5 В Dual Voltage, который в свою очередь получает напряжение и от основной 5-вольтовой линии. Соответственно, генератор 3-вольтового двойного питания соединен с конвертером (3 В) и основным выходом (3 В). От конвертера 3,3 В запитывается и регулятор напряжения, выдающий 2,5 В Dual Voltage.

Особое положение занимает в проекте IAPC так называемое Power Budgeting Software — ПО, контролирующее потребности устройств, которые должны поддерживать "пробуждение" в текущей конфигурации ПК. Если таковые превышают возможности вспомогательного питания в состоянии S3, то система будет переведена в S1 или S2.

OnNow: акцент на программном обеспечении

Драйверная архитектура OnNow

Несложно заметить, что и IAPC от Intel, и ACPI в целом совершенно не уделяют внимания ПО (за исключением Power Budgeting Software). Это и неудивительно, инженеры лишь снизошли до ультиматума: даны состояния — извольте выполнять. Microsoft со своей стороны решила сделать вид, что на самом деле о сокращении потребления электроэнергии и более высокой доступности ПК заботятся исключительно "парни из Редмонда". Изложение основ инициативы OnNow ведется с минимальным количеством отсылок на ACPI, с гордостью декларируется главенство ОС в вопросах регулирования питания.

Не будем подробно останавливаться на архитектуре OnNow. Любопытствующих отошлем к первой части статьи, где приведена общая для всех ACPI-совместимых систем диаграмма. Необходимо только заменить подписи "Ядро" на "Win32 API-расширения", а "Драйвер устройства" на комплект из "мини-драйвера", "политики класса драйверов" (class driver policy) и "драйвера управления шиной". Вместо общей структуры на рисунке показана более наглядная иллюстрация OnNow Driver Architecture.

Уровни "сна", которым было уделено очень много внимания в двух предыдущих рассмотренных стандартах, с точки зрения программного обеспечения фактически не существуют. Поэтому фразу "для пользователя OnNow-совместимый ПК представляется только включенным или выключенным, никакие другие состояния не должны выявлять себя" можно со смелостью отнести и к ОС. Ведь даже в S1 процессор не выполняет никаких инструкций, так как он фактически остановлен.

Исполнительный и контролирующий механизм OnNow базируется на сообщениях WM_POWERBROADCAST. Они рассылаются с различными наборами параметров как предвестники изменения уровня энергопотребления компьютера. Например, рассмотрим типичный процесс "засыпания". Когда ОС решает ввести систему в состояние "сна", она генерирует сообщение типа WM_POWERBRO-ADCAST с параметром PBT_APMQU-ERYSUSPEND, таким образом запрашивая разрешения у активных приложений. Им дается 20 секунд, чтобы прореагировать. По истечении срока все приложения, не изъявшие сообщение из очереди, "добровольно-принудительно" считаются согласными с остановкой системы. Такой "жесткий" подход позволяет с легкостью обходить "глухие к любым призывам", не соответствующие спецификациям OnNow или зависшие программы. ОС выдает последнее предупреждение в виде сообщения PBT_APMSUSPEND, информируя своих "подопечных" о том, что ПК через очередные 20 секунд неминуемо погрузится в "сон". Впрочем, если что-либо помешает этому процессу на любой из его стадий (например, приложение ответит сообщением BROADCAST_QUERY_DENY), то Windows с честью "капитулирует", публично признав свою неудачу и сгенерировав PBT_APM_QUERYSUS-PENDFAILED.

Помимо простого исполнения, необходимо регулировать и общую политику. Этой цели служат функции Set-ThreadExecutionState и SetSystemPowerState. Первая позволяет приложению явным образом продекларировать свое состояние: оно работает или пассивно занимает место в памяти. Большинство пользователей ПК рано или поздно сталкивались с неприятной ситуацией: смотришь себе кино или презентацию, в самом худшем случае — демонстрируешь бизнес-план боссу, а экран вдруг гаснет без видимой причины. Это работа системы управления питанием. Проблема особенно актуальна для владельцев ноутбуков — они просто не могут отключить коварную подсистему Power Management. SetThreadExecu-tionState — естественный выход, остается только надеяться, что разработчики вашей презентационной программы потрудились использовать данную возможность на практике. Если ОС определяет, что состояние потока не установлено и длительное время не было замечено активности пользователя, — боссу останется лишь поверить вам на слово. Функция имеет несколько параметров, позволяющих приложению точнее очертить круг необходимых ресурсов. Например, можно потребовать не выключать монитор, а можно лишь попросить не останавливать процессор. Если придет факс, то утилита, отвечающая за их прием и дальнейшее хранение, выставит флаг ES_SYSTEM_ REQUIRED, чтобы операция не была прервана посередине, а затем, по завершении своей работы, сбросит его. Необходимость в манипуляции флагами объясняется наличием минутного таймера неактивности — когда компьютер "пробуждается" от какого-либо события, ОС включает этот таймер. В случае отсутствия пользовательского ввода и установленного ES_SYSTEM_ REQUIRED или ES_CONTINUOUS через минуту система снова отправляется в "царство грез".

С функцией SetSystemPowerState все еще проще — она отвечает за перевод ПК в одно из состояний сна. Ее вызов может быть как условным, с ожиданием одобрения от приложений, так и безусловным. Первый из двух ее булевых параметров, fSuspend, по идее, должен указывать на необходимость перехода в состояние Suspend. Однако по причине "ill-defined" (неясной) терминологии, доставшейся OnNow в наследство от Advanced Power Management, и неопределенности различий между режимами Susspend и Standby флаг игнорируется. Установка его значения в FALSE (т. е. попытка войти в Standby) заставит ОС лишь выключить монитор. Другой параметр — fPower — является возвращаемым и указывает, были ли разосланы запросы другим приложениям. Значение FALSE выставляется также тогда, когда процесс остановки уже запущен.

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

Заключение

Очевидно, нынешний среднестатистический ПК далек от того, чтобы называться OnNow- или IAPC-совместимым. Существуют отдельные модели производства Compaq, Dell и других крупных производителей, которые могут претендовать на роль "образцово-показательного" внедрения IAPC в жизнь. Статус исключительности подчеркивает факт их перечисления на сайте Intel. Так что особой нужды в усовершенствовании описанных стандартов, вероятно, нет. Разве что в целях "синхронизации" с последними эволюционными движениями на рынке потребуется замена одних аббревиатур на другие: SDRAM на RDRAM, USB на FireWire и т. д.

В чем причина столь вялотекущей адаптации ACPI и ее производных? Скорее всего, не в нежелании потребителей платить за дополнительные функции или их невостребованности, а в сложности проведения столь глобальной инициативы в раздробленном на феодальные княжества мире ПК. Вспомним, сколько лет прошло, прежде чем технология Plug-and-Play смогла сыграть отводившуюся ей роль. Превратить компьютер из разрозненного набора "железяк" и программ в единое устройство, включающееся и работающее по мановению пульта дистанционного управления, — лишь прекрасная утопия, "земля обетованная" компьютинга.


Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: