ARM большой.LITTLE - ARM big.LITTLE

Cortex A57 / A53 MPCore big.LITTLE чип процессора

ARM большой.LITTLE это гетерогенные вычисления архитектура разработана ARM Holdings, сочетающие относительно экономичные батареи и более медленные ядра процессора (МАЛЕНЬКИЙ) с относительно более мощными и энергоемкими (большой). Обычно одновременно активна только одна "сторона", но все ядра имеют доступ к одним и тем же областям памяти, поэтому рабочие нагрузки можно переключать между Большим и Маленьким ядрами на лету.[1] Намерение состоит в том, чтобы создать многоядерный процессор которые могут лучше адаптироваться к динамическим вычислительным потребностям и потреблять меньше энергии, чем масштабирование часов один. Маркетинговые материалы ARM обещают до 75% экономии энергии для некоторых видов деятельности.[2] Чаще всего архитектуры ARM big.LITTLE используются для создания многопроцессорная система на кристалле (MPSoC).

В октябре 2011 года был анонсирован big.LITTLE вместе с Cortex-A7, который был разработан, чтобы быть архитектурно совместим с Cortex-A15.[3] В октябре 2012 года ARM объявила Cortex-A53 и Cortex-A57 (ARMv8-A ) ядра, которые также являются взаимно совместимыми, что позволяет использовать их в чипе big.LITTLE.[4] Позднее ARM объявила Cortex-A12 в Computex 2013 за которым следует Cortex-A17 в феврале 2014 года. И Cortex-A12, и Cortex-A17 также могут работать в паре в конфигурации big.LITTLE с Cortex-A7.[5][6]

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

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

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

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

Есть три способа[7] для размещения различных ядер процессора в большом.LITTLE дизайне, в зависимости от планировщик реализовано в ядро.[8]

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

Большая, маленькая кластерная коммутация

Подход с использованием кластерной модели - это первая и простейшая реализация, в которой процессор объединяется в кластеры одинакового размера из «больших» или «МАЛЕНЬКИХ» ядер. Планировщик операционной системы может одновременно видеть только один кластер; когда нагрузка в целом процессор переключается с низкого на высокий, система переходит в другой кластер. Все соответствующие данные затем проходят через общий Кэш L2, активный основной кластер отключается, а другой активируется. А Кэш-когерентное соединение (CCI). Эта модель была реализована в Samsung Exynos 5 Octa (5410).[9]

Переключатель в ядре (миграция ЦП)

Большой. Маленький переключатель в ядре

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

Более сложная компоновка включает несимметричную группировку «больших» и «МАЛЕНЬКИХ» ядер. Один чип может иметь одно или два «больших» ядра и намного больше «МАЛЕНЬКИХ» ядер, или наоборот. Nvidia создала нечто подобное с маломощным «ядром-компаньоном» в своих Тегра 3 Система на кристалле.

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

Разнородная мультиобработка Big.Little

Самая мощная модель использования архитектуры big.LITTLE - Неоднородный Мультиобработка (HMP), что позволяет использовать все физические ядра одновременно. Потоки с высокий приоритет или же вычислительная интенсивность в этом случае может быть распределена между «большими» ядрами, тогда как потоки с меньшим приоритетом или меньшей вычислительной интенсивностью, такие как фоновые задачи, могут выполняться «МАЛЕНЬКИМИ» ядрами.[10][11]

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

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

Парное расположение позволяет выполнять переключение прозрачно для Операционная система используя существующие динамическое напряжение и частотное масштабирование (DVFS) средство. Существующая поддержка DVFS в ядре (например, cpufreq в Linux) просто увидит список частот / напряжений и будет переключаться между ними по своему усмотрению, как и на существующем оборудовании. Однако слоты низкого уровня активируют «Маленькое» ядро, а слоты высокого уровня активируют «Большое» ядро. Это раннее решение, предоставляемое планировщиком «крайнего срока» ЦП Linux (не путать с одноименным планировщиком ввода-вывода) с 2012 года.[15]

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

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

  • Более детальный контроль рабочих нагрузок, переносимых между ядрами. Поскольку планировщик напрямую переносит задачи между ядрами, ядро накладные расходы уменьшается и мощность соответственно может быть увеличена экономия.
  • Реализация в планировщике также принимает решения о переключении быстрее, чем в структуре cpufreq, реализованной в IKS.
  • Возможность легко поддерживать несимметричные кластеры (например, с 2 ядрами Cortex-A15 и 4 ядрами Cortex-A7).
  • Возможность использовать все ядра одновременно для обеспечения улучшенной пиковой производительности SoC по сравнению с IKS.

Преемник

В мае 2017 года ARM объявила DynamIQ как преемник big.LITTLE.[18] Ожидается, что DynamIQ обеспечит большую гибкость и масштабируемость при разработке многоядерных процессоров. В отличие от big.LITTLE, он увеличивает максимальное количество ядер в кластере до 8, позволяет варьировать структуру ядер в одном кластере и до 32 кластеров. Технология также предлагает более точный контроль напряжения для каждого ядра и более высокую скорость кэш-памяти L2. Однако DynamIQ несовместим с предыдущими проектами ARM и изначально поддерживается только Cortex-A75 и Cortex-A55 Ядра процессора.

Рекомендации

  1. ^ Нгуен, Хуберт (17 января 2013 г.). "Что такое ARM big.LITTLE?". UberGizmo.com.
  2. ^ «технология big.LITTLE». ARM.com. Архивировано из оригинал 22 октября 2012 г.. Получено 17 октября 2012.
  3. ^ «ARM представляет свой самый энергоэффективный процессор приложений в истории; переопределяет традиционную взаимосвязь мощности и производительности с обработкой big.LITTLE» (Пресс-релиз). ARM Holdings. 19 октября 2011 г.. Получено 31 октября 2012.
  4. ^ «ARM запускает серию Cortex-A50, самые энергоэффективные 64-битные процессоры в мире» (Пресс-релиз). ARM Holdings. Получено 31 октября 2012.
  5. ^ «Новый Cortex-A12 ARM готов к работе со смартфонами среднего класса 2014 года за 200 долларов». Грань. Апрель 2014 г.
  6. ^ «ARM Cortex A17: усовершенствованный Cortex A12 для массового использования в 2015 году». AnandTech. Апрель 2014 г.
  7. ^ Брайан Джефф (18 июня 2013 г.). "Десять фактов о big.LITTLE". ARM Holdings. Архивировано из оригинал 10 сентября 2013 г.. Получено 17 сентября 2013.
  8. ^ Джордж Грей (10 июля 2013 г.). "Обновление ПО big.LITTLE". Линаро. Архивировано из оригинал 4 октября 2013 г.. Получено 17 сентября 2013.
  9. ^ Питер Кларк (6 августа 2013 г.). «Сравнительный анализ большой-маленькой архитектуры ARM». Получено 17 сентября 2013.
  10. ^ Обзор методов проектирования и управления асимметричными многоядерными процессорами, ACM Computing Surveys, 2015.
  11. ^ Обработка Big.LITTLE с помощью ARM Cortex ™ -A15 и Cortex-A7 (PDF), ARM Holdings, Сентябрь 2013 г., архивировано из оригинал (PDF) 17 апреля 2012 г., получено 2013-09-17
  12. ^ Брайан Клаг (11 сентября 2013 г.). «Samsung объявляет о поддержке big.LITTLE MP в Exynos 5420». АнандТех. Получено 16 сентября 2013.
  13. ^ «Samsung представляет новые продукты из своего бизнеса системных LSI на Всемирном мобильном конгрессе». Samsung Завтра. Получено 26 февраля 2013.
  14. ^ «Будущее здесь: iPhone X». Apple Newsroom. Получено 25 февраля 2018.
  15. ^ Маккенни, Пол (12 июня 2012 г.). «Большое.LITTLE обновление планировщика». LWN.net.
  16. ^ Перре, Квентин (25 февраля 2019 г.). «Планирование с учетом энергопотребления интегрировано в Linux 5.0». community.arm.com.
  17. ^ «Планирование с учетом энергопотребления». Документация ядра Linux.
  18. ^ Хамрик, Мэтт (29 мая 2017 г.). «Изучение Dynamiq и новых процессоров ARM». Анандтех. Получено 10 июля 2017.

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

внешняя ссылка