Стратегии управления питанием в суперскалярных процессорах для мобильных устройств
Введение
Современные мобильные устройства полагаются на суперскалярные процессоры для обеспечения высокой производительности, необходимой для требовательных приложений - от потокового видео и дополненной реальности до вывода игр и машинного обучения в реальном времени. Эти процессоры достигают своей скорости, выполняя несколько инструкций за тактовый цикл, используя глубокие трубопроводы, выполнение не по порядку и спекулятивные методы. Тем не менее, эта архитектурная сложность стоит дорого: потребление энергии резко возрастает с каждым дополнительным функциональным блоком и более высокой тактовой частотой. Для мобильных устройств, ограниченных конечной емкостью батареи и строгими тепловыми бюджетами, остро стоит необходимость в эффективных стратегиях управления мощностью. В этой статье рассматриваются ключевые проблемы потребления энергии в суперскалярных процессорах для мобильных устройств и исследуются наиболее эффективные стратегии - от динамического напряжения и частотного масштабирования до новых контроллеров на основе машинного обучения - которые обеспечивают устойчивый баланс между производительностью и энергоэффективностью.
Понимание суперскалярных процессоров
Суперскалярный процессор содержит несколько исполнительных блоков (например, целые ALU, блоки с плавающей запятой, блоки загрузки / хранения) и может отправлять более одной инструкции каждый цикл. Для этого он использует сложную логику для извлечения инструкций, декодирования, переименования регистра и проверки зависимостей. Ключевые аппаратные компоненты включают:
- Прибор и декодирование инструкций: Считывает несколько инструкций из кэша инструкций и декодирует их для определения их потребностей в ресурсах.
- Регистровое переименование: Устраняет ложные зависимости данных (write-after-read, write-after-write) путём отображения архитектурных регистров в больший набор физических регистров.
- Запасные станции и буфер перезаказа: Отслеживайте инструкции по полёту, контролируйте доступность операнда и убедитесь, что результаты выполнены в программном порядке.
- Множественные функциональные блоки: Включают параллельное выполнение независимых инструкций.
Параллельность, извлекаемая этими механизмами, напрямую увеличивает пропускную способность, но каждый дополнительный функциональный блок и управляющая им логика увеличивают количество транзисторов, которые переключают каждый цикл, повышая динамическое потребление энергии. Кроме того, мощность утечки, которая доминирует в меньших технологических узлах, растет с общим количеством транзисторов независимо от активности.
Проблемы потребления энергии в мобильных устройствах
Мобильные устройства представляют собой уникальный набор ограничений, которые делают управление питанием в суперскалярных процессорах особенно сложным:
- Ограниченная емкость батареи: Смартфоны и планшеты обычно имеют батареи в диапазоне 3000-5000 мАч. Процессор, который потребляет даже несколько ватт во время большой нагрузки, может разряжать батарею за несколько часов.
- Тепловые ограничения: Избыток тепла приводит к дросселированию (снижению производительности) для предотвращения превышения температуры кожи над пределами комфорта и безопасности. Тепло также ускоряет деградацию батареи и может повредить другие компоненты.
- Пользовательский опыт требует: Пользователи ожидают мгновенной реакции на всплески активности (например, запуск приложения, рендеринг веб-страниц), а также требуют длительного времени ожидания. Процессор должен быть в состоянии быстро перейти к высокой производительности, а затем быстро вернуться в состояние простоя с низким энергопотреблением.
- Технология масштабирования процессов: По мере сокращения транзисторов токи статической утечки увеличиваются, что затрудняет поддержание низкой мощности в периоды простоя. Новые узлы также создают проблемы, такие как повышенная изменчивость и более высокое сопротивление в межсоединениях.
- Вариабельность рабочей нагрузки: Мобильные рабочие нагрузки очень разнородны: процессор может одновременно запускать декод видео, поток пользовательского интерфейса, работу синхронизации фона и задачу обработки датчиков. Система управления питанием должна адаптироваться к этим разнообразным требованиям, не накладывая на себя накладных расходов.
Эти проблемы требуют многогранного подхода, который сочетает в себе архитектурные инновации, методы на уровне схем и интеллектуальное управление временем выполнения.
Ключевые стратегии управления электроэнергией
Динамическое натяжение и частотное масштабирование (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%) общей мощности процессора. Суперскалярные процессоры требуют многопортированных кэшей для поддержки нескольких нагрузок и хранилищ за цикл, что увеличивает как динамическую, так и пропускную способность. Ключевые стратегии включают:
- Путь прогнозирования и путь к заданию: Вместо доступа ко всем способам набор-ассоциативного кэша предиктор определяет наиболее вероятный способ, снижая энергию на доступ.Если предсказание неверно, то правильный способ доступен в следующем цикле, неся штраф за задержку.
- Кэш фильтра: Небольшой кэш первого уровня с низким энергопотреблением (например, кэш L0) может фильтровать доступ к большему кэшу L1, экономя энергию, когда данные находятся в меньшей памяти.
- Неоднородные архитектуры кэша (NUCA): В многоядерных мобильных процессорах распределенные банки кэша с различными задержками доступа и характеристиками мощности позволяют планировщику размещать часто доступные данные в ближайшем банке.
- Подблокировка и определение мощности тега/данных: Линии кэша делятся на подблоки; неиспользуемые подблоки могут быть поданы по мощности.
Неоднородные вычисления и архитектура big.LITTLE
Одной из наиболее успешных стратегий управления мощностью для мобильных суперскалярных процессоров является использование гетерогенных многоядерных архитектур, таких как ARM big.LITTLE (DynamIQ). Этот подход объединяет одно или несколько высокопроизводительных «больших» ядер (например, серии Cortex-X) с несколькими энергоэффективными ядрами «LITTLE» (например, Cortex-A55). Большие ядра оптимизированы для максимальной производительности, с широкими сверхскалярными трубопроводами, глубоким исполнением вне порядка и большими кэшами, но они потребляют значительную мощность. Ядра LITTLE более узкие, в порядке или в ограниченном порядке конструкции, которые достигают гораздо меньшей мощности на инструкцию.
Менеджер питания (часто планировщик ОС или выделенное прошивка) мигрирует потоки между типами ядер на основе характеристик рабочей нагрузки. Легкие задачи (например, фоновая синхронизация, опрос датчиков) выполняются на ядрах LITTLE, в то время как сложные задачи (например, кодирование видео, игровой движок) назначаются на большие ядра. Глобальная миграция задач позволяет всему процессору работать в маломощной оболочке большую часть дня, в то же время сохраняя возможность доставлять всплески высокой производительности, когда это необходимо. Последние реализации также поддерживают «гибридные» архитектуры, где большие и LITTLE ядра могут работать одновременно для задач, которые могут быть параллелизированы.
Внешняя ссылка: ARM big.LITTLE архитектура
Управление мощностью на уровне программного обеспечения
Методы управления питанием аппаратного обеспечения наиболее эффективны, когда дополняются программным управлением.Оперативная система играет центральную роль:
- Политики планировщиков процессоров: Современные планировщики (например, Linux CFS с энерго-осознанным планированием) используют данные модели для каждой задачи для принятия решений о назначении. Они могут упаковывать задачи в подмножество ядер, чтобы позволить другим ядрам оставаться энерго-зависимыми, или распространять их, чтобы уменьшить потребность в частотном масштабировании. Было показано, что энерго-осознанное планирование снижает энергопотребление на 10-20% по сравнению с планировщиками на основе нагрузки.
- Динамические фреймворки управления питанием: Силовые HAL и cpuidle Android позволяют аппаратному и программному обеспечению сотрудничать: ядро может помещать ядро в состояние глубокого простоя (с питанием), когда оно не требуется, и аппаратный монитор может разбудить его при прерывании.
- Компиляторы могут генерировать код, который улучшает параллелизм на уровне команд (снижая количество требуемых циклов и, таким образом, позволяя использовать более низкие частоты) и который уменьшает доступ к памяти (путем содействия повторному использованию регистра и использования префектуры). Некоторые компиляторы также вставляют подсказки, которые направляют контроллер мощности процессора, например, указание на то, что цикл является вычислительным и должен использовать высокую производительность, или что раздел кода устойчив к задержкам.
- Осведомленность на уровне приложений: Приложения могут использовать API ОС, чтобы намекать на свои требования к производительности. Например, видеоплеер может сигнализировать, что он ожидает стабильного уровня производительности для плавного воспроизведения, что позволяет диспетчеру питания избегать агрессивных изменений частоты, которые вызывают джиттер.
Будущие направления в управлении электроэнергией
В следующем десятилетии управление питанием в мобильных суперскалярных процессорах станет еще более интеллектуальным и адаптивным.
Контроллеры мощности на основе машинного обучения
Традиционные управляющие DVFS используют фиксированные пороги и простые предикторы. Модели машинного обучения, в частности, обучение с подкреплением и сети с долговременной кратковременной памятью (LSTM), могут изучать сложные отношения между поведением рабочей нагрузки, температурой и состоянием мощности. Было показано, что такие модели превосходят эвристические управляющие на 15-30% в энергоэффективности для реальных мобильных рабочих нагрузок. Однако сами модели потребляют энергию и должны быть оптимизированы для вывода на устройстве. Будущие мобильные процессоры могут включать специализированные легкие ускорители нейронных сетей для запуска этих контроллеров с минимальными накладными расходами.
Пороговые вычисления (NTC)
Операционные процессоры при напряжении питания, близком к пороговому напряжению транзистора, могут резко снизить как динамическую, так и статическую мощность (до 10х). Однако NTC страдает от снижения скорости цепи и повышенной чувствительности к изменчивости. Суперскалярные процессоры, предназначенные для NTC, должны использовать специализированные схемы для обнаружения и коррекции ошибок синхронизации и, возможно, потребуется уменьшить глубину трубопровода или ширину проблемы. Хотя NTC еще не готова к высокопроизводительным мобильным ядрам, она показывает перспективность для LITTLE ядер или для ускорителей, которые могут выдерживать более низкую пропускную способность.
3D-интеграция и расширенная упаковка
Логика стекания гибнет с помощью уровней памяти и подачи мощности, что может уменьшить длину и емкость межсоединений, сокращая динамическую мощность. 3D-интеграция также позволяет более тонкое заземление мощности, помещая регуляторы напряжения ближе к нагрузке. Будущие мобильные процессоры могут интегрировать отдельный смерч для регулирования напряжения, позволяя использовать одноядерные DVFS с минимальными паразитными потерями.
Приблизительные вычисления
Для многих мобильных приложений (например, обработки изображений, аудио, синтеза датчиков) совершенно точное вычисление не требуется.Приближённые вычислительные методы, такие как снижение точности арифметики с фиксированной точкой или допускание случайных ошибок в предсказании ветвей, могут значительно снизить энергопотребление. Суперскалярные процессоры могут интегрировать приблизительные функциональные блоки, которые работают при более низком напряжении или с пониженной активностью переключения, обеспечивая экономию энергии при снижении ограничений точности.
Глобальное и совместное управление энергией
Поскольку мобильные устройства включают в себя несколько процессоров (CPU, GPU, NPU, DSP), системный диспетчер мощности, который координирует все компоненты, может достичь лучшей экономии энергии, чем управление по IP. Такие методы, как «гонка на холостяк» (завершение задач как можно быстрее, а затем ввод в состояние с низким энергопотреблением), требуют сотрудничества между аппаратным и программным обеспечением для минимизации холостого питания. Будущие системы могут использовать унифицированный микроконтроллер управления питанием, который контролирует тепловые, текущие и рабочие показатели по SoC, корректируя бюджеты для каждого домена в режиме реального времени.
Заключение
Суперскалярные процессоры стали краеугольным камнем производительности мобильных вычислений, но их ненасытный аппетит к мощности требует тщательного управления. Обсуждаемые стратегии - DVFS, питание, часовое вождение, адаптивная логика проблем, оптимизация иерархии памяти, гетерогенные архитектуры и сотрудничество в области программного обеспечения - позволили сегодняшним смартфонам обеспечить производительность, подобную настольным компьютерам, в форм-факторе размером с ладонь. Тем не менее, путь вперед не статичен. По мере того, как узлы процессов сокращаются, проблемы утечки усиливаются, и ожидания пользователей как по производительности, так и по времени автономной работы будут иметь важное значение для поддержания прогресса. Благодаря интеграции контроллеров на основе машинного обучения, почти пороговой работы и оптимизации на системном уровне. Охватывая эти новые методы, дизайнеры чипов и системные архитекторы могут обеспечить, чтобы будущие мобильные суперскалярные процессоры оставались мощными и энергоэффективными, предлагая пользователям бесшовный опыт, который длится весь день.