Защита от перемещения страницы
Из Википедии, бесплатной энциклопедии
  (Перенаправлено с Big.LITTLE )
Перейти к навигации Перейти к поиску

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

ARM big.LITTLE - это гетерогенная вычислительная архитектура, разработанная ARM Holdings , сочетающая относительно экономичные и более медленные процессорные ядра ( LITTLE ) с относительно более мощными и энергоемкими ( большими ). Обычно одновременно активна только одна «сторона» или другая, но все ядра имеют доступ к одним и тем же областям памяти, поэтому рабочие нагрузки можно переключать между Большим и Малым ядрами на лету. [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 [ править ]

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

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

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

В зависимости от планировщика, реализованного в ядре, существует три способа [7] объединения ядер процессора в проект big.LITTLE . [8]

Кластерная коммутация [ править ]

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

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

Переключатель в ядре (перенос ЦП) [ править ]

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

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

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

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

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

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

Эта модель была реализована в Samsung Exynos, начиная с серии Exynos 5 Octa (5420, 5422, 5430), [12] [13] и процессоров Apple A , начиная с Apple 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 г. , извлечено 17 сентября 2013 г.
  12. Брайан Клуг (11 сентября 2013 г.). «Samsung объявляет о поддержке big.LITTLE MP в Exynos 5420» . AnandTech . Проверено 16 сентября 2013 года .
  13. ^ «Samsung представляет новые продукты из своего бизнеса системных LSI на Всемирном мобильном конгрессе» . Самсунг завтра . Проверено 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. ^ Humrick, Matt (29 мая 2017). «Изучение Dynamiq и новых процессоров ARM» . Anandtech . Проверено 10 июля 2017 года .

Дальнейшее чтение [ править ]

  • Дэвид Зинман (25 января 2013 г.). «Статус big.LITTLE MP 25 января 2013» . LWN.net . Проверено 25 января 2013 года .
  • Николя Питр (15 февраля 2012 г.). «Поддержка Linux для ARM big.LITTLE» . LWN.net . Проверено 18 октября 2012 года .
  • Пол МакКенни (12 июня 2012 г.). «Большое.LITTLE обновление планировщика» . LWN.net . Проверено 18 октября 2012 года .
  • Джейк Эдж (5 сентября 2012 г.). «KS2012: ARM: большое.Маленькое обновление» . LWN.net . Проверено 18 октября 2012 года .
  • Джон Стоукс (20 октября 2011 г.). «Новый Cortex A7 от ARM создан специально для Android-смартфонов» . Ars Technica . Проверено 31 октября 2012 года .
  • Эндрю Каннингем (30 октября 2012 г.). «ARM становится 64-битной с новыми проектами Cortex-A53 и Cortex-A57» . Ars Technica . Проверено 31 октября 2012 года .

Внешние ссылки [ править ]

  • big.LITTLE Обработка
  • big.LITTLE Обработка с ARM CortexTM-A15 и Cortex-A7 (PDF) (полное техническое объяснение)