Химические и амперные материалы; Materials Engineering
Проектирование операционных систем для энергоэффективных инженерных устройств
Table of Contents
Современные инженерные устройства — от портативных медицинских мониторов до промышленных датчиков IoT — требуют операционных систем, которые делают больше, чем просто управляют задачами; они должны тщательно распределять каждый милливатт. По мере сокращения аппаратного обеспечения и повышения ожиданий производительности ОС стала центральным арбитром потребления энергии. Проектирование ОС, которая минимизирует энергопотребление без ущерба для отзывчивости или надежности, является сложной, но важной дисциплиной. В этой статье рассматриваются основные принципы, методы и новые стратегии, которые определяют энергоэффективный дизайн ОС для инженерных приложений.
Роль операционной системы в энергоэффективности
Операционная система организует аппаратные ресурсы, и ее решения напрямую влияют на потребление энергии. В отличие от оптимизации на уровне приложений, ОС имеет общесистемную видимость: она контролирует частоты ЦП, состояния простоя, распределение памяти и периферийную активность. Хорошо спроектированная энергоосознающая ОС может снизить общую мощность системы на 30-50% по сравнению с наивной реализацией, особенно в устройствах с переменной рабочей нагрузкой. Для инженерных устройств, которые должны работать в течение многих лет на одной батарее или собирать энергию из окружающей среды, эта разница имеет решающее значение.
ОС также должна абстрагировать управление питанием от разработчиков приложений. Вместо того, чтобы заставлять каждую программу управлять состояниями аппаратного сна, ядро предоставляет политические механизмы (губернаторы, блоки питания, PM времени работы устройства), которые адаптируются к условиям реального времени. Это отделение политики от механизма позволяет системным интеграторам настраивать энергетическое поведение без переписывания программного обеспечения.
Основные методы энергоэффективного проектирования ОС
Динамическое натяжение и частотное масштабирование (DVFS)
DVFS остается краеугольным камнем управления мощностью на уровне ОС. Настраивая напряжение и тактовую частоту процессора в ответ на спрос на рабочую нагрузку, ОС торгует пиковой производительностью для экономии энергии. Современные управляющие DVFS — такие как Linux по требованию , консервативный и — используют метрики использования процессора для выбора оптимальных рабочих точек. Квадратная зависимость между напряжением и мощностью означает, что даже умеренное снижение частоты приводит к значительному увеличению энергии. Например, работа ядра на 80% частоты вместо 100% может сократить мощность почти на 36%, при этом лишь незначительно увеличивая задержку.
Однако эффективность DVFS зависит от гранулярности рабочей нагрузки. Короткие всплески вычислений могут не выиграть от изменений частоты из-за накладных расходов на переход. ОС должна прогнозировать будущий спрос или реагировать в течение микросекунд. Недавние работы по использованию счетчиков производительности оборудования и историй конкретных задач улучшили точность DVFS. Для получения более подробной информации о компромиссах реализации см. документацию по частотному масштабированию процессора Linux .
Расширенные состояния сна и управление бездельем
Когда у процессора нет готовых задач, ОС должна перейти в состояние простоя малой мощности. Современные процессоры предлагают несколько состояний сна (C-состояний) с различными задержками пробуждения и экономией энергии. Регулятор холостого хода ОС выбирает наиболее глубокое подходящее состояние на основе прогнозируемой продолжительности холостого хода. Для инженерных устройств, которые проводят большую часть времени в ожидании ввода датчика или сетевых пакетов, эффективное управление холостым ходом доминирует над экономией энергии.
Помимо процессора, ОС должна управлять компонентами системы на чипе (SoC): контроллеры памяти, межсоединения и периферийные устройства могут каждый вводить самообновляющиеся или энергозависимые состояния. Концепция управления питанием в режиме реального времени позволяет ядру приостанавливать отдельные устройства, когда они не используются, даже когда основной процессор остается активным. Это тонкое управление имеет важное значение для устройств со многими периферийными устройствами, такими как встроенный контроллер с Wi-Fi, Bluetooth и несколькими датчиками. Координация этих состояний без нарушения гарантий в реальном времени является постоянной проблемой.
Планирование задач по оптимизации энергетики
Традиционные алгоритмы планирования определяют приоритеты справедливости или пропускной способности. Энерго-осознающие планировщики добавляют мощность в качестве цели планирования. Методы включают:
- Гонка к холостяку: Завершите работу как можно быстрее, затем введите глубокий сон. Это хорошо работает для взрывных рабочих нагрузок, где мощность сна очень низкая.
- Энергоэффективный выбор частоты: Графикатор выбирает самую низкую частоту, которая соответствует предельным ограничениям для задач в реальном времени.
- Миграция кластера: На гетерогенных архитектурах (например, ARM big.LITTLE) ОС переносит потоки на высокоэффективные ядра для лёгкой работы и большие ядра для тяжёлых нагрузок.
Планирование с учетом энергии также должно учитывать тепловую связь между ядрами и шаблонами доступа к памяти. Например, перемещение задачи на ядро ближе к своим данным в иерархии кэша снижает мощность памяти. Документация Linux Energy-Aware Scheduling обеспечивает углубленный взгляд на то, как эти политики реализуются на практике.
Управление памятью и питанием I/O
Память (DRAM) потребляет значительную мощность, особенно при активном доступе.Основная система может уменьшить энергию памяти за счет:
- Распределение с учетом банковских данных: Распределение доступа к памяти между банками, чтобы избежать банковских конфликтов и позволить банкам дольше оставаться в режиме с низким энергопотреблением.
- Сжатие и кластеризация страниц: Группировка активных страниц в меньшее количество областей памяти, чтобы неиспользуемые области можно было помещать в самообновляющиеся.
- NUMA-знает планирование: На мульти-сокетных системах, сохраняя потоки и данные на одном узле, чтобы минимизировать удаленный трафик памяти.
Для ввода/вывода в ОС используются такие методы, как объединение прерываний сети, запись пакетных дисков и отключение неиспользуемых контроллеров через ACPI. Задача заключается в поддержании отзывчивости: задержка прерывания на несколько миллисекунд может сэкономить энергию, но может нарушить крайний срок считывания датчиком.
Проблемы в реальном времени и встроенных системах
Энергоэффективная конструкция ОС особенно требовательна к инженерным устройствам, которые должны соответствовать жестким срокам в реальном времени - например, контроллер двигателя в роботизированной руке или система сбора данных в бортовом самописце. Здесь экономия энергии не может достигаться за счет пропущенных сроков. Расписание в реальном времени, такое как Rate Monotonic или Earliest Deadline First, должно быть расширено с помощью электроосведомленности при сохранении тестов на планирование.
Один из подходов заключается в использовании времени бездействия: после того, как задача завершается раньше, оставшийся слэк используется для снижения частоты или ввода сна. Это требует точного анализа времени и низких накладных расходов. Другая проблема заключается в том, что состояния глубокого сна имеют большие задержки пробуждения. Если задача должна реагировать в течение 100 мкс, ОС не может войти в состояние C с задержкой выхода 500 мкс. Поэтому ОС должна выбирать глубину сна на основе кратчайшего периода простоя, который произойдет до следующего крайнего срока.
Перерывы в работе также влияют на энергию. Некоторые микроконтроллеры позволяют ОС откладывать прерывания до следующего графика, что позволяет дольше простаивать. Но это добавляет джиттера. Инженеры должны взвесить компромисс между экономией энергии и точностью времени для каждого конкретного приложения.
Новые технологии и будущие направления
Машинное обучение для прогнозирования управления мощностью
Традиционное управление питанием ОС опирается на фиксированные эвристики (например, пороги использования). Машинное обучение предлагает потенциал для адаптации политики к шаблонам рабочей нагрузки, которые меняются с течением времени. Например, нейронная сеть может предсказать будущий спрос на процессор на основе прошлых задач и триггеров датчиков, позволяя ОС активно устанавливать частоты или состояния бездействия. Ранние эксперименты показывают 10-20% дополнительной экономии энергии по сравнению с лучшими статичными регуляторами.
Однако запуск моделей ML на устройствах с ограниченным энергопотреблением сам по себе потребляет энергию. ОС должна либо выгружать вывод на выделенный ускоритель с низким энергопотреблением, либо использовать легкие модели (например, деревья решений), которые помещаются в ядро. В исследовательском документе «Управление мощностью на основе обучения для многоядерных процессоров» [FLT: 1]] обеспечивает тщательную оценку таких подходов. Поскольку встроенное оборудование ML становится более распространенным, мы можем ожидать, что менеджеры мощности ОС будут включать изученные политики в качестве стандартной функции.
Низкоэнергетическая аппаратная синергия
ОС не может достичь максимальной энергоэффективности без тесной интеграции с аппаратным обеспечением. Новые SoC предлагают мелкозернистые домены мощности, регуляторы напряжения на ядро и энергонезависимую память, которая сохраняет состояние во время глубокого сна. ОС должна раскрыть эти возможности через системы управления питанием при обработке аппаратных ошибок и вариаций.
Такие технологии, как околопороговые вычисления (NTC), позволяют процессорам работать при очень низких напряжениях, но они чувствительны к температуре и изменению процесса. ОС должна контролировать датчики на чипе и регулировать поля напряжения - задача, требующая циклов управления в реальном времени. Кроме того, гетерогенные архитектуры (например, ARM big.LITTLE, x86 гибридные ядра) позволяют ОС назначать задачи наиболее энергоэффективному ядру для каждой рабочей нагрузки. ARM big.LITTLE архитектура является хорошо известным примером того, как аппаратная гетерогенность может использоваться энергоосознанной ОС.
Еще одним перспективным направлением является использование энергосберегающих устройств, которые собирают энергию из солнечных, вибрационных или радиочастотных источников. Эти устройства имеют прерывистое энергоснабжение; ОС должна управлять вычислениями по циклам питания, сохраняя состояние до энергосберегающей памяти до сбоя питания. Это «прерывистое вычисление» требует механизмов контрольно-пропускных пунктов на уровне ОС, сдвига парадигмы от непрерывной работы питания.
Заключение
Проектирование операционных систем для энергоэффективных инженерных устройств является многомерной задачей, которая охватывает DVFS, управление бездействия, планирование, оптимизацию памяти и ввода / вывода и ограничения в реальном времени. Успешные проекты интегрируют эти методы в согласованную политику, которая адаптируется к рабочей нагрузке, оборудованию и условиям окружающей среды. По мере созревания машинного обучения и новых аппаратных возможностей ОС будет играть еще большую роль в сжатии последней капли энергии с каждого устройства - что позволит продлить срок службы батареи, меньшие форм-факторы и более широкое развертывание автономных систем от удаленных мониторов окружающей среды до медицинских имплантатов. Инженеры, которые осваивают эти принципы, будут на переднем крае создания устойчивой, высокопроизводительной технологии.