3.8.1 Управление оборудованием и питанием |
Предыдущая Содержание Следующая |
Для того, чтобы понять, как встраиваемая система потребляет энергию, очень полезно узнать энергопотребление различных устройств, составляющих её. Давайте рассмотрим портативное устройство, которое состоит из следующих компонентов:
▪Процессор, такой как MIPS или StrongArm ▪Память (и DRAM, и флеш-память) ▪Сетевая карта, например, карта для беспроводного доступа ▪Звуковая карта ▪Блок ЖК дисплея
Обычно блок ЖК дисплея будет крупнейшим потребителем электроэнергии в системе; затем CPU; затем звуковой карта, память и сетевая карта. Как только стало возможным идентифицировать устройства, потребляющие максимальную мощность, могут быть изучены методы для поддержания устройств в режимах потребления малой мощности. Много аппаратных устройств, доступных сегодня на рынке, имеют различные режимы работы, чтобы удовлетворять различным требованиям по энергопотреблению; они имеют возможность работать с очень малой мощностью, если не используются, и переключиться на нормальный режим энергопотребления, когда они используются обычным образом. Драйверы устройств для таких устройств должны принять управление питанием во внимание. Из различных аппаратных устройств наиболее важным является центральный процессор. Многие процессоры для рынка встраиваемых систем обеспечивают надёжные схемы энергосбережения, которые мы сейчас проанализируем. Двумя базовыми фактами управления питанием процессора являются:
▪Мощность, потребляемая процессором, прямо пропорционально тактовой частоте. ▪Мощность, потребляемая процессором, прямо пропорционально квадрату напряжения.
Новые встраиваемые процессоры принимают это во внимание и предлагают две схемы: динамическое изменение частоты и динамическое изменение напряжения. Примером процессора, который поддерживает динамическое изменение частоты, является SA1110, а примером процессора, который поддерживает динамическое управление напряжением, является процессор Crusoe от Transmeta. Режимы, предлагаемые процессорами, как правило находятся под управлением ОС, которая может выбрать режим в зависимости от загрузки системы. Обычно встраиваемые системы являются системами, управляемыми событиями, и процессор тратит много времени в ожидании событий от пользователя или от внешнего мира. ОС, работающая на таких системах, может настроить энергопотребление процессора в зависимости от загрузки системы. В случае, если процессор простаивает в ожидании пользовательских событий, ему надо уделять внимание минимальным задачам, необходимым для системы, таким как обслуживание прерываний от таймера. Если процессор поддерживает режим ожидания, то в таких условиях ОС может перевести процессор в режим ожидания. Режим ожидания представляет собой режим, в котором различные тактовые частоты процессора остановлены (тактовые частоты для периферийных устройств всё же могут быть активны). Некоторые процессоры идут ещё дальше и предлагают другой режим, называемый спящим режимом, в котором питание процессора и большинства периферийных устройств отключено. Это режим с самым низким энергопотреблением; однако, использование этого режима является очень сложным и чтобы использовать спящий режим, ОС должна учитывать следующие факторы:
▪Состояние системы, такое как состояние центрального процессора и периферийных устройств, должно быть сохранено в памяти так, чтобы контекст сохранения мог быть восстановлен при возвращении системы из состояния сна. ▪Время для выхода из состояния сна должно быть достаточно быстрым, чтобы отвечать характеристикам системы реального времени (с аппаратной и программной точки зрения). ▪События, которые должны пробудить систему, должна быть оценены и надлежащим образом внесены в программное обеспечение. ▪Отслеживание времени, когда система переходит в спящий режим, очень сложная задача. Помимо того факта, что система должна продолжать отслеживание времени, когда спит, система должна также учитывать тот факт, что могут быть задачи, которые спят и должны быть пробуждены после того, как система переходит в спящий режим. Обычно это могут быть внешние аппаратные часы (например, RTC), которые не будут выключены в спящем режиме; RTC могут быть запрограммированы на пробуждение системы для задач, находящихся в режиме ожидания. RTC может также использоваться для поддержания внешнего времени, которое система сможет засинхронизировать после возвращения из состояния сна.
Операционная система играет очень важную роль в реализации системы управления питанием. Роль операционной системы является многогранной:
▪Как уже говорилось выше, она принимает решения относительно того, когда процессор может переключаться в другие режимы, такие как режим ожидания и спящий режим. Также в ОС должны быть разработаны соответствующие механизмы пробуждения. ▪Предоставление поддержки динамического изменения частоты и напряжения в зависимости от загрузки системы. ▪Предоставление драйверного ядра, чтобы драйверы различные устройств могли быть написаны с возможностью использования энергосберегающих режимов периферийных устройств. ▪Экспорт системы управления питанием для специальных приложений. Этот шаг является очень важным, потому что требования к питанию каждого встраиваемого устройства очень уникальны и, следовательно, очень трудно поместить политики в ОС, чтобы они подходили различным встраиваемым устройствам. Вместо это ОС должна просто создать базовую систему управления питанием, но оставить политики приложениям, которые смогут настроить данную систему в зависимости от требований.
Мы покажем, как Linux предлагает каждую из них разработчикам встраиваемых систем, но перед этим мы должны разобраться в действующих стандартах управления питанием.
|
Предыдущая Содержание Следующая |