РУКА большая.МАЛЕНЬКАЯ
ARM big.LITTLE — гетерогенная вычислительная архитектура, разработанная Arm Holdings , объединяющая относительно энергосберегающие и более медленные процессорные ядра ( LITTLE ) с относительно более мощными и энергоемкими ( big ). Цель состоит в том, чтобы создать многоядерный процессор , который сможет лучше адаптироваться к потребностям динамических вычислений и потреблять меньше энергии, чем просто масштабирование тактовой частоты . Маркетинговые материалы ARM обещают экономию электроэнергии для некоторых видов деятельности до 75%. [1] Чаще всего архитектуры ARM big.LITTLE используются для создания многопроцессорной системы на кристалле (MPSoC).
В октябре 2011 года big.LITTLE был анонсирован вместе с Cortex-A7 , который был разработан с учетом архитектурной совместимости с Cortex-A15 . [2] В октябре 2012 года ARM анонсировала ядра Cortex-A53 и Cortex-A57 ( ARMv8-A ), которые также являются взаимосовместимыми, что позволяет использовать их в чипе big.LITTLE. [3] Позже ARM анонсировала Cortex-A12 на выставке Computex 2013, а в феврале 2014 года — Cortex-A17. И Cortex-A12, и Cortex-A17 также можно объединить в конфигурации big.LITTLE с Cortex-A7. [4] [5]
Проблема, которую решает big.LITTLE
[ редактировать ]Для данной библиотеки КМОП- логики активная мощность увеличивается по мере того, как логика переключается чаще в секунду, а утечка увеличивается с увеличением количества транзисторов. Таким образом, процессоры, предназначенные для быстрой работы, отличаются от процессоров, предназначенных для экономии энергии. Когда очень быстрый вышедший из строя ЦП простаивает на очень низких скоростях, ЦП с гораздо меньшими утечками (меньшее количество транзисторов) может выполнять ту же работу. Например, он может использовать кэш-память меньшего размера (меньшее количество транзисторов) или более простую микроархитектуру, например, с удалением внеочередного выполнения . big.LITTLE — это способ оптимизации для обоих случаев: мощности и скорости в одной системе.
На практике система big.LITTLE может оказаться на удивление негибкой. Одной из проблем является количество и типы доменов питания и тактовой частоты, которые обеспечивает микросхема. Они могут не соответствовать стандартным функциям управления питанием, предлагаемым операционной системой. Другая причина заключается в том, что центральные процессоры больше не имеют эквивалентных возможностей, и соответствие правильной программной задачи правильному процессору становится более трудным. Большинство этих проблем решаются за счет повышения гибкости электроники и программного обеспечения.
Миграция рабочего состояния
[ редактировать ]Есть три способа [6] чтобы различные ядра процессора были расположены в виде big.LITTLE, в зависимости от планировщика, реализованного в ядре . [7]
Кластерная коммутация
[ редактировать ]Подход с использованием кластерной модели — это первая и самая простая реализация, в которой процессор распределяется по кластерам одинакового размера из «больших» или «МАЛЕНЬКИХ» ядер. Планировщик операционной системы может видеть одновременно только один кластер; когда нагрузка на весь процессор меняется с низкой на высокую, система переходит на другой кластер. Затем все соответствующие данные передаются через общий кэш L2 , активный основной кластер выключается и активируется другой. Используется Cache Coherent Interconnect (CCI). Эта модель реализована в Samsung Exynos 5 Octa (5410). [8]
Внутриядерный переключатель (миграция ЦП)
[ редактировать ]Миграция ЦП через коммутатор внутри ядра (IKS) предполагает объединение «большого» ядра с «МАЛЕНЬКИМ» ядром, возможно, с множеством идентичных пар в одном чипе. Каждая пара работает как одно так называемое виртуальное ядро , и одновременно (полностью) включено и работает только одно реальное ядро. «Большое» ядро используется, когда спрос высок, а «МАЛЕНЬКОЕ» ядро — когда спрос низкий. Когда потребность в виртуальном ядре меняется (между высоким и низким), входящее ядро включается, передается рабочее состояние , исходящие отключаются, и обработка продолжается на новом ядре. Переключение осуществляется через платформу cpufreq . Полная реализация big.LITTLE IKS была добавлена в Linux 3.11. big.LITTLE IKS — это улучшение миграции кластеров ( § Clustered Switching ), основное отличие в том, что каждая пара видна планировщику.
Более сложная схема предполагает несимметричное группирование «больших» и «МАЛЕНЬКИХ» ядер. Один чип может иметь одно или два «больших» ядра и множество «МАЛЕНЬКИХ» ядер, или наоборот. Nvidia создала нечто подобное с маломощным «компаньонным ядром» в своей системе Tegra 3 System-on-Chip .
Гетерогенная многопроцессорная обработка (глобальное планирование задач)
[ редактировать ]Наиболее мощной моделью использования архитектуры big.LITTLE является гетерогенная многопроцессорная обработка (HMP), которая позволяет использовать все физические ядра одновременно. В этом случае потоки с высоким приоритетом или интенсивностью вычислений могут быть выделены «большим» ядрам, тогда как потоки с меньшим приоритетом или меньшей интенсивностью вычислений, такие как фоновые задачи, могут выполняться «МАЛЕНЬКИМИ» ядрами. [9]
Эта модель реализована в Samsung Exynos, начиная с серии Exynos 5 Octa (5420, 5422, 5430), [10] [11] и процессоры Apple серии A, начиная с Apple A11 . [12]
Планирование
[ редактировать ]Парное расположение позволяет осуществлять переключение прозрачно для операционной системы с использованием существующего средства динамического масштабирования напряжения и частоты (DVFS). Существующая поддержка DVFS в ядре (например cpufreq
в Linux) просто увидит список частот/напряжений и будет переключаться между ними по своему усмотрению, как это происходит на существующем оборудовании. Однако слоты нижнего уровня активируют «Маленькое» ядро, а слоты высокого класса активируют «Большое» ядро. Это первое решение, предоставляемое планировщиком ЦП Linux «крайний срок» (не путать с одноименным планировщиком ввода-вывода) с 2012 года. [13]
Альтернативно, все ядра могут быть доступны планировщику ядра , который будет решать, где будет выполняться каждый процесс/поток. Это потребуется для непарной схемы, но, возможно, может быть использовано и для парных ядер. Это создает уникальные проблемы для планировщика ядра, который, по крайней мере на современном аппаратном обеспечении, способен предполагать, что все ядра в SMP -системе равны, а не разнородны. Дополнение к Linux 5.0 2019 года под названием Energy Aware Scheduling — это пример планировщика, который по-другому учитывает ядра. [14] [15]
Преимущества глобального планирования задач
[ редактировать ]- Более детальный контроль рабочих нагрузок, переносимых между ядрами. Поскольку планировщик напрямую переносит задачи между ядрами, накладные расходы ядра уменьшаются, а экономия энергии может быть соответственно увеличена.
- Реализация в планировщике также позволяет быстрее принимать решения о переключении, чем в платформе cpufreq, реализованной в IKS.
- Возможность простой поддержки несимметричных кластеров (например, с 2 ядрами Cortex-A15 и 4 ядрами Cortex-A7).
- Возможность использовать все ядра одновременно для обеспечения улучшенной пиковой производительности SoC по сравнению с IKS.
Преемник
[ редактировать ]В мае 2017 года ARM объявила DynamIQ преемником big.LITTLE. [16] Ожидается, что DynamIQ обеспечит большую гибкость и масштабируемость при разработке многоядерных процессоров. В отличие от big.LITTLE, он увеличивает максимальное количество ядер в кластере до 8 для процессоров Armv8.2, 12 для Armv9 и 14 для Armv9.2. [17] и позволяет варьировать конструкции ядра в пределах одного кластера и до 32 кластеров в целом. Эта технология также предлагает более детальный контроль напряжения каждого ядра и более высокую скорость кэша L2. Однако DynamIQ несовместим с предыдущими разработками ARM и изначально поддерживается только ядрами ЦП Cortex-A75 и Cortex-A55 и их преемниками.
Ссылки
[ редактировать ]- ^ «большая.МАЛЕНЬКАЯ технология» . ARM.com. Архивировано из оригинала 22 октября 2012 года . Проверено 17 октября 2012 г.
- ^ «ARM представляет свой самый энергоэффективный прикладной процессор за всю историю; переосмысливает традиционное соотношение мощности и производительности с помощью big.LITTLE Processing» (пресс-релиз). АРМ Холдингс . 19 октября 2011 года . Проверено 31 октября 2012 г.
- ^ «ARM выпускает серию Cortex-A50, самые энергоэффективные 64-битные процессоры в мире» (пресс-релиз). АРМ Холдингс . Проверено 31 октября 2012 г.
- ^ «Новый процессор Cortex-A12 от ARM готов стать основой для смартфонов среднего класса стоимостью 200 долларов, которые появятся в 2014 году» . Грань . Апрель 2014.
- ^ «ARM Cortex A17: усовершенствованная версия Cortex A12 для массового рынка в 2015 году» . АнандТех. Апрель 2014.
- ^ Брайан Джефф (18 июня 2013 г.). «Десять вещей, которые нужно знать о big.LITTLE» . АРМ Холдингс . Архивировано из оригинала 10 сентября 2013 года . Проверено 17 сентября 2013 г.
- ^ Джордж Грей (10 июля 2013 г.). «Обновление программного обеспечения big.LITTLE» . Линаро . Архивировано из оригинала 4 октября 2013 года . Проверено 17 сентября 2013 г.
- ^ Питер Кларк (6 августа 2013 г.). «Сравнительный анализ большой и маленькой архитектуры ARM» . Проверено 17 сентября 2013 г.
- ^ Обработка Big.LITTLE с помощью ARM Cortex-A15 и Cortex-A7 (PDF) , ARM Holdings , сентябрь 2013 г., заархивировано из оригинала (PDF) 17 апреля 2012 г. , получено 17 сентября 2013 г.
- ^ Брайан Клуг (11 сентября 2013 г.). «Samsung объявляет о поддержке big.LITTLE MP в Exynos 5420» . АнандТех . Проверено 16 сентября 2013 г.
- ^ «Samsung представляет новые продукты своего подразделения системных LSI на Всемирном мобильном конгрессе» . Самсунг Завтра. Архивировано из оригинала 16 марта 2014 года . Проверено 26 февраля 2013 г.
- ^ «Будущее уже здесь: iPhone X» . Отдел новостей Apple . Проверено 25 февраля 2018 г. .
- ^ Маккенни, Пол (12 июня 2012 г.). «Большое.НЕБОЛЬШОЕ обновление планировщика» . LWN.net .
- ^ Перре, Квентин (25 февраля 2019 г.). «Энергоэффективное планирование объединено в Linux 5.0» . сообщество.arm.com .
- ^ «Энергосберегающее планирование» . Документация ядра Linux .
- ^ Хамрик, Мэтт (29 мая 2017 г.). «Изучение новых процессоров Dynamiq и ARM» . Анандтех . Проверено 10 июля 2017 г.
- ^ ООО, Арм. «ДинамIQ – Арм®» . Рука | Архитектура цифрового мира . Проверено 18 октября 2023 г.
Дальнейшее чтение
[ редактировать ]- Дэвид Зинман (25 января 2013 г.). «Статус big.LITTLE MP от 25 января 2013 г.» . LWN.net . Проверено 25 января 2013 г.
- Николя Питре (15 февраля 2012 г.). «Поддержка Linux для ARM big.LITTLE» . LWN.net . Проверено 18 октября 2012 г.
- Пол Маккенни (12 июня 2012 г.). «Большое.НЕБОЛЬШОЕ обновление планировщика» . LWN.net . Проверено 18 октября 2012 г.
- Джейк Эдж (5 сентября 2012 г.). «KS2012: ARM: большое.МАЛЕНЬКОЕ обновление» . LWN.net . Проверено 18 октября 2012 г.
- Джон Стоукс (20 октября 2011 г.). «Новый процессор Cortex A7 от ARM создан специально для супертелефонов Android» . Арс Техника . Проверено 31 октября 2012 г.
- Эндрю Каннингем (30 октября 2012 г.). «ARM становится 64-битной с новыми конструкциями Cortex-A53 и Cortex-A57» . Арс Техника . Проверено 31 октября 2012 г.
Внешние ссылки
[ редактировать ]- big.LITTLE Обработка
- big.LITTLE Обработка с помощью ARM CortexTM-A15 и Cortex-A7 (PDF) (полное техническое объяснение)