Реализация властного планирования в Суперскалярные Cpu системы

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

Основы суперскалярной архитектуры и энергопотребления

Чтобы понять планирование, учитывающее энергопотребление, необходимо сначала оценить источники рассеивания мощности в суперскалярном процессоре. Типичный внерядовой суперскалярный конвейер включает в себя этапы извлечения, декодирования, переименования, выдачи, исполнения и фиксации. Каждый этап использует динамическую мощность (пропорционально активности переключения, напряжение квадратное и частоту) и статическую мощность (ток утечки). Широкая ширина проблемы и спекулятивное исполнение, характерные для суперскалярной конструкции, усиливают оба компонента мощности. Например, 4-ходовое суперскалярное ядро может дублировать исполнительные блоки, регистрировать порты файлов и переименовывать логику, что приводит к квадратичному росту динамической мощности, поскольку планировщик пытается поддерживать занятость всех блоков. Статическая мощность, тем временем, масштабирует с количеством транзисторов, которое увеличивается с каждым архитектурным усовершенствованием.

Планирование с учетом энергопотребления непосредственно нацелено на компромисс между извлечением параллелизма на уровне инструкций (ILP) и управлением бюджетом мощности. Без такого планирования процессор может достичь пределов мощности теплового проектирования (TDP), что приводит к дросселированию, которое фактически ухудшает производительность. Цель состоит в том, чтобы динамически корректировать решения о расписании, такие как скорость выпуска инструкций, выбор блока исполнения и глубина спекуляций, чтобы оставаться в пределах мощности и тепловых ограничений при максимизации пропускной способности.

Основные методы для планирования Power-Aware

Динамическое натяжение и частотное масштабирование (DVFS)

DVFS является наиболее широко принятой техникой управления питанием. За счет снижения рабочего напряжения и частоты процессор может достичь почти кубической экономии мощности (поскольку динамическая мощность ≈ C × V2 × f. В контексте планирования DVFS часто сочетается с прогнозированием рабочей нагрузки. Планировщик контролирует комбинацию инструкций и использование трубопровода, затем отправляет запросы на контроллер частоты напряжения. Например, во время фаз, связанных с памятью, с множеством промахов кэша, масштабирование частоты приводит к минимальным потерям производительности, потому что трубопровод уже застопорился. И наоборот, во время фаз, связанных с вычислениями, планировщик может запрашивать более высокую частоту для поддержания пропускной способности, при условии, что позволяет бюджет мощности. Современные процессоры, такие как Intel SpeedStep и AMD Cool'n'Quiet, реализуют такое совместное планирование между аппаратным обеспечением и управляющими уровня ОС.

Часовые шестерни и энергетические шестерни

Часовое вещание отключает тактовый сигнал к неиспользуемым функциональным блокам, устраняя динамическую мощность в этих блоках. Осознающие мощность планировщики могут усиливать динамическое вещание, намеренно оставляя блоки бездействовать, когда их использование обеспечит маргинальный прирост ILP. Например, если планировщик видит несколько инструкций с плавающей точкой в окне, он может направлять целочисленные операции от трубопровода с плавающей точкой и позволять четным операциям полностью деактивировать его. Мощное вещание идет дальше, отключая питание до холостых секций, уменьшая статическую утечку. Однако паттерн питания вызывает задержку пробуждения; планировщик должен прогнозировать периоды простоя достаточно долго, чтобы оправдать накладные расходы. Такие методы, как «счетчики холостого цикла» и «предикторы на основе истории», помогают планировщику решить, когда вентилировать весь кластер исполнения.

Инструкция Throttling и проблема контроля ширины

В суперскалярном процессоре стадия выпуска выбирает до N инструкций за цикл от станций резервирования. Throttling ограничивает эту ширину — например, выдавая только 2 инструкции, даже если аппаратное обеспечение поддерживает 4. Это уменьшает количество одновременно активных исполнительных блоков, снижая как динамическую, так и статическую мощность. Планировщик может динамически регулировать ширину проблемы на основе измерителя мощности или теплового датчика. Исследования показывают, что уменьшение ширины проблемы наполовину может сократить мощность на 30-40% с падением производительности всего на 5-10% для многих рабочих нагрузок. Задача состоит в том, чтобы определить, когда дросселирование наименее вредно, например, во время фаз с высокими зависимостями данных или задних ларьков.

Power-Aware инструкция переупорядочение и отправка

Традиционные внештатные планировщики расставляют приоритеты для инструкций, которые разблокируют зависимые цепи, максимизируя ILP. Вариант с электропитанием добавляет второй критерий: энергетическая стоимость использования определенных исполнительных блоков. Например, блок разделения может потреблять 5× энергию дополнительного блока. Планировщик может задержать инструкцию независимого деления, если более простая инструкция готова и бюджет питания ограничен. Это аналогично «энерго-осознанному планированию» в гетерогенных системах. Аналогично, планировщик может распространять инструкции по нескольким блокам, чтобы избежать локализованных тепловых горячих точек, даже если это означает выдачу немного меньше инструкций за цикл.

Спекуляционный контроль

Суперскалярные процессоры в значительной степени полагаются на предсказание ветвей и спекулятивное исполнение, чтобы заполнить трубопровод. Спекуляция по неправильному пути тратит энергию на извлечение, декодирование и выполнение неправильных инструкций. Расчетное планирование может динамически регулировать агрессивность ветви предиктора или ограничивать глубину спекуляций (например, ограничивать количество неразрешенных ветвей в полете). Предсказательные модели, основанные на надежности ветвей, могут останавливать спекуляции, когда бюджет мощности низок. Некоторые процессоры даже реализуют «растягивание спекуляций», которое уменьшает ширину притязаний или задерживает фронтенд, когда уверенность в прогнозах падает ниже порога.

Архитектурная поддержка планирования с учетом мощности

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

Моделирование мощности в аппаратном обеспечении

Точная силовая модель имеет важное значение, но нетривиальное. Динамическая мощность зависит от активности переключения каждого функционального блока, которая зависит от рабочей нагрузки. Многие исследовательские предложения используют счетчики активности, которые накапливают переходы на линиях шины, порты регистра файлов и входы блока исполнения. Эти счетчики обновляются каждый цикл и умножаются на удельные коэффициенты мощности. Полученная оценка мощности сравнивается с текущим бюджетом. Для статической мощности модели утечки учитывают температуру и напряжение; поскольку утечка увеличивается экспоненциально с температурой, тепловая обратная связь имеет решающее значение. Передовые конструкции интегрируют классификаторы машинного обучения, которые прогнозируют потребление энергии на основе истории инструкций, как видно в работе Isci и Martonosi (2003) по мониторингу мощности во время выполнения.

Реализация плана

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

Другой подход заключается в использовании "окна инструкций с учетом мощности", где размер буфера переупорядочения динамически уменьшается при напряжении высокой мощности. Меньшее окно ограничивает количество инструкций в полете, уменьшая давление регистрового файла и накладные расходы. Это фактически дросселя мощности, который торгует ILP для меньшей мощности. Размер окна может быть отрегулирован каждые несколько сотен циклов на основе тенденций мощности.

Машинное обучение и прогнозное управление мощностью

Статическая эвристика часто не достигает должного уровня, поскольку характеристики рабочей нагрузки быстро меняются. Модели машинного обучения (ML), особенно обучения с подкреплением (RL), показали перспективность в обучении оптимальным политикам планирования. Например, агент RL может наблюдать состояние (текущая мощность, температура, IPC, скорость прогнозирования ветвей) и выбирать действия (ширина вопроса, уровень DVFS, глубина спекуляций). Со временем он учится минимизировать функцию затрат, которая уравновешивает производительность и мощность. Исследования Sridharan et al. (2016) продемонстрировали, что планировщик на основе RL может достичь экономии энергии 10-15% по сравнению с фиксированной пороговой политикой.

Однако для внедрения ML внутри процессора требуются легкие модели. Деревья решений или небольшие нейронные сети с двоичными весами могут быть синтезированы в аппаратном обеспечении с низкой задержкой. Обучение может быть выполнено в автономном режиме на типичных рабочих нагрузках и параметрах модели, загруженных в память на чипе. Альтернативно, онлайн-обучение может адаптироваться к новым шаблонам, хотя это увеличивает сложность. Будущие процессоры могут включать выделенные «ядра управления мощностью», которые запускают алгоритмы ML и сообщают подсказки планирования в логику проблемы основного ядра.

Примеры тематических исследований и промышленности

Коммерческие процессоры все чаще включают планирование с учетом энергопотребления. Скайлейк Intel и новые ядра используют «блок управления мощностью» (PCU), который контролирует датчики и регулирует частоту и напряжение на ядро или кластер. PCU также влияет на планировщик инструкций через сигналы дросселирования, когда мощность превышает пределы. Архитектура ARM big.LITTLE задает потоки через высокопроизводительные и энергоэффективные ядра, но последние проекты ARMv9 также включают управление мощностью на ядро, которое может закрывать отдельные исполнительные блоки.

В области исследований IBM POWER7 представила планировщик с «осведомленным о ваттах» планировщиком, который может переносить инструкции между блоками с плавающей запятой и вектором на основе бюджетов мощности. Совсем недавно архитектура «Halide» Gruber et al. (2021) предлагает планировщик, который использует легкую прогностическую модель, чтобы решить между выдачей инструкции по нагрузке (которая может вызвать промахи кэша и высокую мощность от активности контроллера памяти) и операцией «регистр-регистрация».

Внешние ссылки: Для всестороннего обследования см. «Обзор планирования с использованием Power-Aware в многопроцессорных системах» Журавлева и др. (2012) Для глубокого погружения в моделирование мощности, обратитесь к «Мониторинг мощности в высокопроизводительных процессорах: методология и эмпирические данные» Исси и Мартоноси (2003) . Другая соответствующая работа — «Планирование с использованием Power-aware с использованием обучения с подкреплением» Шридхарана и др. (2016) .

Проблемы в Power-Aware Scheduling

Точность энергетических и тепловых моделей

Решения планировщика зависят от надежных оценок мощности. Однако динамическая мощность, как известно, трудно измерять цикл за циклом. Многие предложения используют среднюю мощность над окном, что может не предотвратить переходные тепловые всплески. Тепловые эффекты добавляют медленную постоянную времени; короткий всплеск мощности может не вызывать перегрев, но устойчивую высокую мощность. Планировщик должен учитывать как мгновенную, так и кумулятивную энергию. Калибровка коэффициентов мощности для различных комбинаций инструкций по углам процесса также является проблемой, поскольку утечка варьируется в зависимости от условий производства.

Накладные расходы vs. энергосбережение

Каждое действие по экономии энергии — уменьшение ширины проблемы, DVFS, спекуляция дросселирование — несет штраф за производительность. Искусство планирования с учетом мощности заключается в минимизации потери производительности при максимизации экономии энергии. Оптимальная точка зависит от рабочей нагрузки и предпочтений пользователя (например, производительность на ватт против абсолютной производительности). В серверных средах часто приемлемо снижение производительности на 5% для экономии энергии на 20%; во встроенных системах компромисс может быть более строгим. Более того, агрессивные изменения планирования могут вызывать колебания: планировщик может снизить напряжение только для обнаружения падения производительности, а затем снова поднять его, что приводит к нестабильности. Для предотвращения этого часто используются гладкие политики управления, такие как PID-контроллеры.

Интеграция с менеджерами мощности высшего уровня

Современные системы имеют несколько уровней управления питанием: планировщик ОС, системное прошивка (ACPI) и аппаратный планировщик. Эти слои должны сотрудничать. Например, ОС может запросить определенное состояние мощности (P-состояние) через ACPI, но аппаратный планировщик может дополнительно настроить ширину проблемы в этом состоянии. Конфликты могут возникнуть, если ОС переопределяет аппаратные решения. Усилия по стандартизации, такие как SCMI ARM, направлены на обеспечение единого интерфейса. Другая проблема заключается в том, что планирование с использованием программных средств в процессоре должно учитывать энергопотребление иерархии памяти и ввода/вывода; представление только для процессора может быть неоптимальным.

Будущие направления

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

Другим перспективным направлением является использование приблизительных вычислений. Некоторые рабочие нагрузки допускают неточность (например, обработка изображений, вывод машинного обучения). Графикатор может намеренно пропускать определенные инструкции или снижать точность (например, использовать низкоточную арифметику), когда мощность ограничена, обеспечивая изящную деградацию производительности вместо внезапного дросселирования.

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

Заключение

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