Стратегии управления питанием в суперскалярных процессорах для мобильных устройств

Введение

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

Понимание суперскалярных процессоров

Суперскалярный процессор содержит несколько исполнительных блоков (например, целые ALU, блоки с плавающей запятой, блоки загрузки / хранения) и может отправлять более одной инструкции каждый цикл. Для этого он использует сложную логику для извлечения инструкций, декодирования, переименования регистра и проверки зависимостей. Ключевые аппаратные компоненты включают:

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

Проблемы потребления энергии в мобильных устройствах

Мобильные устройства представляют собой уникальный набор ограничений, которые делают управление питанием в суперскалярных процессорах особенно сложным:

Эти проблемы требуют многогранного подхода, который сочетает в себе архитектурные инновации, методы на уровне схем и интеллектуальное управление временем выполнения.

Ключевые стратегии управления электроэнергией

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

DVFS является наиболее широко применяемой техникой управления мощностью в современных мобильных процессорах. Принцип прост: снизить напряжение питания и тактовую частоту, когда рабочая нагрузка не требует пиковой производительности, тем самым снижая как динамическую мощность (которая масштабируется как V2 f), так и, в меньшей степени, мощность утечки (которая зависит от напряжения). На практике DVFS реализуется как множество точек производительности (OPP) или P-состояний. Операционная система или выделенный диспетчер питания выбирает соответствующую OPP на основе таких показателей, как использование процессора, глубина очереди и параллелизм уровня инструкций.

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

Одним из заметных мобильных DVFS-подхода является per-core DVFS, где каждое ядро в многоядерном суперскалярном процессоре может работать при различном напряжении и частоте. Это позволяет тонкозернистому управлению: ядро, обрабатывающее легкую нагрузку, может работать при низкой OPP, в то время как другое ядро обрабатывает вычислительно интенсивную задачу при более высокой OPP. Однако для одноядерной DVFS требуются дополнительные регуляторы на чипе и острова напряжения, что увеличивает площадь и сложность конструкции.

Внешний справочник: Обзор масштабирования динамического напряжения

Сила бьется

Мощность затвора уменьшает ток утечки, отключая от напряжения питания простаивающие функциональные блоки или целые ядра. Сонный транзистор (или заголовок/футер) вставляется в распределительную сеть питания; когда блок не нужен, транзистор выключается, создавая виртуальную подачу, которая изолирует блок. Ключевой проблемой является задержка пробуждения: восстановление затвора питания до стабильного напряжения и повторное инициализация состояния занимает от десятков до сотен наносекунд. Поэтому затвор мощности наиболее эффективен, когда период простоя превышает определенное время безубыточности — иначе затраты энергии на заправку обратного питания отрицают экономию.

В мобильных суперскалярных процессорах, часто применяется определение мощности на уровне ядра (например, выключение целого большого ядра в конфигурации big.LITTLE) или при более тонкой детализации в ядре. Например, общий блок с плавающей запятой может быть приведен в действие, когда работают только целые инструкции. Утечка может составлять 30-50% от общей мощности на продвинутых узлах, что делает определение мощности критическим методом.

Внешняя ссылка: IEEE документ по методам определения мощности

Часы бьются

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

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

Адаптивное планирование инструкций и логика выпуска

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

Оптимизация иерархии памяти

Подсистема памяти, включая L1 кэш, L2 кэш и буферный блок (TLB) с обратной стороны перевода, потребляет большую долю (часто 30-40%) общей мощности процессора. Суперскалярные процессоры требуют многопортированных кэшей для поддержки нескольких нагрузок и хранилищ за цикл, что увеличивает как динамическую, так и пропускную способность. Ключевые стратегии включают:

Неоднородные вычисления и архитектура big.LITTLE

Одной из наиболее успешных стратегий управления мощностью для мобильных суперскалярных процессоров является использование гетерогенных многоядерных архитектур, таких как ARM big.LITTLE (DynamIQ). Этот подход объединяет одно или несколько высокопроизводительных «больших» ядер (например, серии Cortex-X) с несколькими энергоэффективными ядрами «LITTLE» (например, Cortex-A55). Большие ядра оптимизированы для максимальной производительности, с широкими сверхскалярными трубопроводами, глубоким исполнением вне порядка и большими кэшами, но они потребляют значительную мощность. Ядра LITTLE более узкие, в порядке или в ограниченном порядке конструкции, которые достигают гораздо меньшей мощности на инструкцию.

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

Внешняя ссылка: ARM big.LITTLE архитектура

Управление мощностью на уровне программного обеспечения

Методы управления питанием аппаратного обеспечения наиболее эффективны, когда дополняются программным управлением.Оперативная система играет центральную роль:

Будущие направления в управлении электроэнергией

В следующем десятилетии управление питанием в мобильных суперскалярных процессорах станет еще более интеллектуальным и адаптивным.

Контроллеры мощности на основе машинного обучения

Традиционные управляющие DVFS используют фиксированные пороги и простые предикторы. Модели машинного обучения, в частности, обучение с подкреплением и сети с долговременной кратковременной памятью (LSTM), могут изучать сложные отношения между поведением рабочей нагрузки, температурой и состоянием мощности. Было показано, что такие модели превосходят эвристические управляющие на 15-30% в энергоэффективности для реальных мобильных рабочих нагрузок. Однако сами модели потребляют энергию и должны быть оптимизированы для вывода на устройстве. Будущие мобильные процессоры могут включать специализированные легкие ускорители нейронных сетей для запуска этих контроллеров с минимальными накладными расходами.

Пороговые вычисления (NTC)

Операционные процессоры при напряжении питания, близком к пороговому напряжению транзистора, могут резко снизить как динамическую, так и статическую мощность (до 10х). Однако NTC страдает от снижения скорости цепи и повышенной чувствительности к изменчивости. Суперскалярные процессоры, предназначенные для NTC, должны использовать специализированные схемы для обнаружения и коррекции ошибок синхронизации и, возможно, потребуется уменьшить глубину трубопровода или ширину проблемы. Хотя NTC еще не готова к высокопроизводительным мобильным ядрам, она показывает перспективность для LITTLE ядер или для ускорителей, которые могут выдерживать более низкую пропускную способность.

3D-интеграция и расширенная упаковка

Логика стекания гибнет с помощью уровней памяти и подачи мощности, что может уменьшить длину и емкость межсоединений, сокращая динамическую мощность. 3D-интеграция также позволяет более тонкое заземление мощности, помещая регуляторы напряжения ближе к нагрузке. Будущие мобильные процессоры могут интегрировать отдельный смерч для регулирования напряжения, позволяя использовать одноядерные DVFS с минимальными паразитными потерями.

Приблизительные вычисления

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

Глобальное и совместное управление энергией

Поскольку мобильные устройства включают в себя несколько процессоров (CPU, GPU, NPU, DSP), системный диспетчер мощности, который координирует все компоненты, может достичь лучшей экономии энергии, чем управление по IP. Такие методы, как «гонка на холостяк» (завершение задач как можно быстрее, а затем ввод в состояние с низким энергопотреблением), требуют сотрудничества между аппаратным и программным обеспечением для минимизации холостого питания. Будущие системы могут использовать унифицированный микроконтроллер управления питанием, который контролирует тепловые, текущие и рабочие показатели по SoC, корректируя бюджеты для каждого домена в режиме реального времени.

Заключение

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