Описана система программного управления энергопотреблением, разработанная для двухъядерного микропроцессора «Эльбрус-2С+» в составе ВК «Монокуб». Управление выполняется средствами ОС «Эльбрус», основанной на ядре Linux-2.6.33. Приведены результаты измерений и некоторые особенности реализации.
Существенное значение для серверных платформ имеет проблема энергопотребления в состоянии простоя [1], вызванного временным отсутствием подлежащих выполнению задач. В системах на базе операционной системы (ОС) Linux при этом вызывается служебная функция, которая в наиболее простом случае представляет собой цикл, ожидающий прихода прерывания или установки специального флага, приводящего к перепланированию задач, т.е. конвейер команд работает, и подается питание. Таким образом, при простое часть энергии от источника питания тратится впустую. Для уменьшения энергопотребления в этом случае было предложено использовать состояния сна процессора, если они поддерживаются аппаратурой [2]. В принципе, могут вводиться несколько состояний С1–Сn, которые различаются глубиной сна – количеством отключаемых физических элементов и временем возврата в активное состояние C0.
При аппаратной поддержке состояний сна задача сводится к реализации в ОС алгоритма, определяющего номер наиболее приемлемого из них (с учетом средней загруженности процессора) и фактически переводящего в это состояние процессорное ядро при простое. Существенное значение в логике алгоритма имеет продолжительность периода простоя, не прерываемого от внешних источников. В частности, к нежелательному эффекту приводят прерывания от таймера, инициирующего периодическое переключение задач. По этой причине для исключения лишних прерываний в случае отсутствия задач (типичная ситуация для простоя) вводится режим динамических прерываний от таймера.
Поставленная проблема решалась применительно к вычислительному комплексу (ВК) «Монокуб», построенному на базе микропроцессора (системы на кристалле) «Эльбрус-2С+», где интегрируются универсальная часть, включающая два процессорных ядра и северный мост, и кластер из четырех цифровых сигнальных процессоров (DSP). ВК «Монокуб» работает под управлением ОС «Эльбрус» на базе ядра Linux-2.6.33 и может быть использован для построения мощных серверных платформ.
В микропроцессор «Эльбрус-2С+» введены следующие механизмы аппаратной поддержки управления энергопотреблением, выполняемого средствами ОС:
- система команд дает возможность реализовать состояние сна C1, основанное на отключении конвейера;
- в составе северного моста имеются контроллеры, позволяющие обеспечить генерацию динамических прерываний по таймеру.
Кроме того, возможность отключения синхроимпульса в процессорном ядре позволила провести измерения, необходимые для оценки эффективности описанных в статье методов.
В состав программных средств, на основе которых решалась поставленная задача, входили как стандартные архитектурно-независимые модули Linux [3, 4], так и реализованные автором архитектурно-зависимые модули.
Важным фактором при проведении работы было наличие встроенного программно-недоступного алгоритма управления энергопотреблением, физически реализованного в микропроцессоре «Эльбрус-2С+». В связи с этим, помимо решения основной проблемы, в работе проведена сравнительная оценка эффективности встроенного алгоритма.
Подробнее... Загрузить файл ![]()
Содержание:
Введение
1. Основной цикл управления энергопотреблением
Функциональное описание
Аппаратная поддержка состояний сна
Динамические прерывания от таймера
2. Экспериментальные результаты
Моделирование состояния сна с отключенным синхроимпульсом
Измерения времени
Заключение
Литература