stringtranslate.com

РУКА большая.МАЛЕНЬКАЯ

Cortex A57/A53 MPCore большой.Маленький процессорный чип

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, а затем Cortex-A17 в феврале 2014 года. И Cortex-A12, и Cortex-A17 также могут быть объединены в конфигурацию big.LITTLE с Cortex-A7. [4] [5]

Проблема, которую решает big.LITTLE

Для заданной библиотеки логики CMOS активная мощность увеличивается по мере того, как логика переключается больше в секунду, в то время как утечка увеличивается с количеством транзисторов. Таким образом, ЦП, разработанные для быстрой работы, отличаются от ЦП, разработанных для экономии энергии. Когда очень быстрый ЦП с неупорядоченными операциями простаивает на очень низких скоростях, ЦП с гораздо меньшей утечкой (меньше транзисторов) может выполнять ту же работу. Например, он может использовать меньший (меньше транзисторов) кэш памяти или более простую микроархитектуру, такую ​​как удаление неупорядоченного выполнения . big.LITTLE — это способ оптимизации для обоих случаев: мощности и скорости в одной системе.

На практике система big.LITTLE может быть на удивление негибкой. Одна из проблем — это количество и типы доменов питания и тактовой частоты, которые предоставляет ИС. Они могут не соответствовать стандартным функциям управления питанием, предлагаемым операционной системой. Другая проблема — это то, что ЦП больше не обладают эквивалентными возможностями, и сопоставление правильной программной задачи с правильным ЦП становится более сложным. Большинство этих проблем решается путем повышения гибкости электроники и программного обеспечения.

Миграция состояния выполнения

Существует три способа [6] размещения различных ядер процессора в конструкции big.LITTLE, в зависимости от планировщика , реализованного в ядре . [7]

Кластерная коммутация

Big.Little кластеризованная коммутация

Подход кластерной модели является первой и самой простой реализацией, объединяющей процессор в кластеры одинакового размера из «больших» или «маленьких» ядер. Планировщик операционной системы может видеть только один кластер за раз; когда нагрузка на весь процессор меняется с низкой на высокую, система переходит на другой кластер. Затем все соответствующие данные передаются через общий кэш L2 , активный кластер ядер отключается, а другой активируется. Используется Cache Coherent Interconnect (CCI). Эта модель была реализована в Samsung Exynos 5 Octa (5410). [8]

Внутриядерный коммутатор (миграция ЦП)

Большой.Маленький внутриядерный коммутатор

Миграция ЦП через внутриядерный коммутатор (IKS) включает в себя сопряжение «большого» ядра с «маленьким» ядром, возможно, с несколькими идентичными парами в одном чипе. Каждая пара работает как одно так называемое виртуальное ядро , и только одно реальное ядро ​​(полностью) включено и работает в один момент времени. «Большое» ядро ​​используется, когда спрос высок, а «маленькое» ядро ​​используется, когда спрос низкий. Когда спрос на виртуальное ядро ​​меняется (между высоким и низким), входящее ядро ​​включается, состояние выполнения передается , исходящее отключается, и обработка продолжается на новом ядре. Переключение выполняется через фреймворк cpufreq . Полная реализация big.LITTLE IKS была добавлена ​​в Linux 3.11. big.LITTLE IKS — это улучшение кластерной миграции (§ Кластерное переключение), основное отличие состоит в том, что каждая пара видна планировщику.

Более сложная компоновка включает несимметричную группировку «больших» и «маленьких» ядер. Один чип может иметь одно или два «больших» ядра и много больше «маленьких» ядер, или наоборот. Nvidia создала нечто похожее с маломощным «ядровым компаньоном» в своей системе на кристалле Tegra 3 .

Гетерогенная многопроцессорная обработка (глобальное планирование задач)

Большая.Маленькая гетерогенная многопроцессорная обработка

Самая мощная модель использования архитектуры big.LITTLE — гетерогенная многопроцессорная обработка (HMP), которая позволяет использовать все физические ядра одновременно. Потоки с высоким приоритетом или вычислительной интенсивностью в этом случае могут быть выделены для «больших» ядер, в то время как потоки с меньшим приоритетом или меньшей вычислительной интенсивностью, такие как фоновые задачи, могут выполняться ядрами «LITTLE». [9]

Эта модель была реализована в процессорах Samsung Exynos , начиная с серии Exynos 5 Octa (5420, 5422, 5430), [10] [11] и процессорах серии Apple A, начиная с Apple A11 . [12]

Планирование

Парное расположение позволяет выполнять переключение прозрачно для операционной системы с использованием существующего динамического масштабирования напряжения и частоты (DVFS). Существующая поддержка DVFS в ядре (например, в Linux) просто увидит список частот/напряжений и будет переключаться между ними по своему усмотрению, как это происходит на существующем оборудовании. Однако слоты нижнего уровня активируют ядро ​​«Little», а слоты верхнего уровня активируют ядро ​​«Big». Это раннее решение, предоставляемое планировщиком CPU «deadline» в Linux (не путать с планировщиком ввода-вывода с тем же названием) с 2012 года. [13]cpufreq

В качестве альтернативы все ядра могут быть представлены планировщику ядра , который будет решать, где выполняется каждый процесс/поток. Это потребуется для непарной компоновки, но, возможно, может также использоваться на парных ядрах. Это создает уникальные проблемы для планировщика ядра, который, по крайней мере, с современным товарным оборудованием, мог предполагать, что все ядра в системе SMP равны, а не разнородны. Дополнение 2019 года к Linux 5.0 под названием Energy Aware Scheduling является примером планировщика, который рассматривает ядра по-разному. [14] [15]

Преимущества глобального планирования задач

Преемник

В мае 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 и их преемниками.

Ссылки

  1. ^ "big.LITTLE technology". ARM.com. Архивировано из оригинала 22 октября 2012 г. Получено 17 октября 2012 г.
  2. ^ "ARM представляет свой самый энергоэффективный процессор приложений; переосмысливает традиционное соотношение мощности и производительности с помощью big.LITTLE Processing" (пресс-релиз). ARM Holdings . 19 октября 2011 г. Получено 31 октября 2012 г.
  3. ^ "ARM запускает серию Cortex-A50, самые энергоэффективные 64-битные процессоры в мире" (пресс-релиз). ARM Holdings . Получено 31 октября 2012 г. .
  4. ^ "Новый Cortex-A12 от ARM готов стать основой для смартфонов среднего класса стоимостью 200 долларов в 2014 году". The Verge . Апрель 2014 г.
  5. ^ "ARM Cortex A17: усовершенствованный Cortex A12 для массового рынка в 2015 году". AnandTech. Апрель 2014 г.
  6. ^ Брайан Джефф (18 июня 2013 г.). «Десять вещей, которые нужно знать о big.LITTLE». ARM Holdings . Архивировано из оригинала 10 сентября 2013 г. Получено 17 сентября 2013 г.
  7. Джордж Грей (10 июля 2013 г.). "big.LITTLE Software Update". Linaro . Архивировано из оригинала 4 октября 2013 г. Получено 17 сентября 2013 г.
  8. ^ Питер Кларк (6 августа 2013 г.). "Benchmarking ARM's big-little architecture" . Получено 17 сентября 2013 г. .
  9. ^ Big.LITTLE Processing with ARM Cortex-A15 & Cortex-A7 (PDF) , ARM Holdings , сентябрь 2013 г., архивировано из оригинала (PDF) 17 апреля 2012 г. , извлечено 17 сентября 2013 г.
  10. ^ Брайан Клуг (11 сентября 2013 г.). "Samsung объявляет о поддержке big.LITTLE MP в Exynos 5420". AnandTech . Получено 16 сентября 2013 г.
  11. ^ "Samsung представляет новые продукты своего подразделения System LSI на Всемирном мобильном конгрессе". Samsung Tomorrow. Архивировано из оригинала 16 марта 2014 года . Получено 26 февраля 2013 года .
  12. ^ "Будущее уже здесь: iPhone X". Apple Newsroom . Получено 25 февраля 2018 г.
  13. ^ Маккенни, Пол (12 июня 2012 г.). «Большое обновление планировщика LITTLE». LWN.net .
  14. ^ Перре, Квентин (25 февраля 2019 г.). «Energy Aware Scheduling объединено в Linux 5.0». community.arm.com .
  15. ^ "Energy Aware Scheduling". Документация ядра Linux .
  16. ^ Хамрик, Мэтт (29 мая 2017 г.). «Изучение новых процессоров Dynamiq и ARM». Anandtech . Получено 10 июля 2017 г. .
  17. ^ Ltd, Arm. "DynamIQ – Arm®". Arm | Архитектура для цифрового мира . Получено 18 октября 2023 г.

Дальнейшее чтение

Внешние ссылки