Linaro расширяет поддержку Linux для ARM Big.Little

Linaro разработал новый способ для разработчиков Linux и Android для реализации многоядерной архитектуры распределения нагрузки ARM Big.Little таким образом, чтобы оптимизировать соотношение мощности и производительности.
В дополнение к выпущенному в мае встроенному коммутатору ядра (IKS) новый глобальный планировщик задач (GTS) предлагает более быстрое, более детальное управление расписанием, поддержку несимметричных комбинаций ядер и возможность одновременной работы всех ядер.

Разработка приложений, оптимизированных для четырехъядерных процессоров, является достаточно сложной задачей, но максимально эффективно использовать SoC с различными типами ядер - как в архитектуре ARM Big.Little - еще сложнее.
К счастью, ARM и Linaro , некоммерческая фирма по разработке программного обеспечения и инструментов для Linux и Android, совместно принадлежащая ARM и большинству ее основных лицензиатов, разрабатывают новые модели программного обеспечения для поддержки Big.Little.

В мае Linaro выпустил модель In-kernel Switcher (IKS) в своих сборках Big.Little для Linux, а теперь выпустил альтернативную реализацию Global Task Scheduler (GTS), которая, как утверждается, предлагает множество улучшений в производительности и гибкости.
Ранее называемый HMP (гетерогенная многопроцессорная обработка) или « Big.Little MP », GTS отличается повышением производительности / мощности, а также способностью запускать все ядра одновременно.

В то время как мир технологий продолжает набрасывать обороты концепции ARM Big.Little (см. Далее), ARM и Linaro продолжают настойчиво пропагандировать и расширять концепцию многоядерного распределения нагрузки.
Изначально заявленная как схема объединения ядер Cortex-A15 с более медленными и более энергоэффективными ядрами Cortex-A7 на системах на кристаллах (SoC) для оптимизации энергопотребления или производительности в зависимости от задачи, Big.Little также будет поддерживать комбинации будущих, ARMv8, 64-битных ядер Cortex-A57 и Cortex-A53.
Кроме того, недавно объявленный наследник Cortex-A9, Cortex-A12 , будет поддерживать гибридные игры Big.Little с Cortex-A7.


ARM Cortex-A12 архитектура

Схемы IKS и GTS облегчают разработчикам использование этой объединенной мощности для оптимизации мощности или производительности.
Хотя Линаро полагает, что GTS превосходит IKS и должен заменить его в большинстве приложений, IKS не исчезнет.
В блоге Linaro для GTS говорится: «Ключевым атрибутом IKS является то, что он опирается на существующие хорошо понятные механизмы в ядре Linux, и его легко реализовать, протестировать и охарактеризовать в производственной среде».

IKS ограничивается адресацией каждой пары ядер Cortex-A15 и -A7 как одного виртуального ядра с использованием драйвера cpufreq.
Он решает в любой момент времени, активен ли ядро ​​-A15 или медленнее -A7 при выключении парного ядра.
GTS добавляет возможность адресовать ядра индивидуально;
По словам Линаро, опираясь на статистику средней загруженной нагрузки, планировщик Linux отслеживает среднюю загрузку каждой задачи, а затем переносит задачи в лучшее ядро.

GTS преимущества

Выдвигаемые основные моменты GTS включают в себя:

  • Возможность использовать все ядра одновременно для улучшения пиковой производительности
  • Лучшая поддержка несимметричных SoC, таких как наличие двух ядер Cortex-A15 и четырех ядер Cortex-A7
  • Более точное управление рабочими нагрузками, которые переносятся между ядрами, снижая нагрузку на ядро ​​и повышая эффективность энергопотребления.
  • Улучшение соотношения производительности и мощности до 10% благодаря более быстрым решениям о переключении

В объявлении в блоге Linaro также отмечается другая многоядерная работа, которая будет проводиться в Linaro, которая повлияет на Big.Little, в том числе проект «упаковки для небольших задач».
Когда мобильное устройство находится в режиме ожидания, технология перемещает «небольшие» задачи, выполняемые несколькими ядрами, в одно ядро, чтобы повысить эффективность.
Более длительный проект - перевести GTS на будущие SoC Big.Little, объединяющие 64-битные ядра Cortex-A57 и Cortex-A53.

Big.Little выйдет в семи SoC в этом году

До сих пор единственным коммерческим Big.Little SoC является Samsung Exynos 5420 Octa, найденный в международной версии смартфона Samsung Galaxy S 4.
Согласно блогу Linaro, нынешнее поколение Exynos 5, объединяющее четыре ядра Cortex-A15 и -A7, не может использовать ни IKS, ни GTS.

Как и Exynos 5 Octa, ожидается, что большинство реализаций Big.Little SoC будут использоваться на устройствах Android.
Код Linaro специально предназначен для ядра Linux, а не для Android в целом.
Тем не менее, производители устройств Android могут применить исправление GTS Big.Little к существующим ядрам Linux или подождать появления новых ядер Linux, которые включают исправления, а затем добавить их в свои конструкции на основе Big.Little SoC, говорит ARM.

По данным блога ARM от 18 июня, более дюжины полупроводниковых компаний уже получили лицензии и активно строят SoC Big.Little, и ожидается, что несколько компаний анонсируют SoC в этом году.
По слухам, MediaTek разрабатывает SoC MT8135, который должен выйти к концу года и использует Big.Little для интеграции двух ядер -A15 и двух -A7.

Ранее в этом году ARM заявили, что Mediatek, Fujitsu Semiconductor, Renesas Mobile и CSR будут поставлять ядра Big.Little в течение 2013 года. Другие публично анонсированные лицензии Big.Little включают LSI, HiSilicon и Marvell.

Некоторые из этих поставщиков работают над SoC, которые в основном предназначены для серверов на базе ARM, а не для мобильных устройств.
Другие могут оказаться в новом поколении сетевых SoC ARM .

До сих пор Qualcomm и Apple, которые лицензируют ARM Cortex IP, но не конкретную архитектуру ядра ARM, еще не стали использовать Big.Little.
Ни один из них не имеет Nvidia, которая решила реализовать несколько аналогичную схему распределения нагрузки на своей платформе Tegra 4 SoC.
Tegra 4 добавляет пятое ядро ​​с низким энергопотреблением, но использует тот же базовый дизайн Cortex-A9, что и остальные четыре ядра.
Тем временем Texas Instruments, похоже, разрабатывает собственную схему балансировки нагрузки для своих SoAP OMAP.

IKS и GTS теперь доступны в ежемесячных технических выпусках Linaro для аппаратной эталонной платформы ARM TC2 Versatile Express , которая предлагает два ядра Cortex-A15 и три ядра -A7.
Оба они также доступны во временной сборке Linaro с поддержкой долгосрочных поддерживаемых ядер (LSK) и будут включены в «первый полный Linaro LSK», который будет основан на следующем ядре с долгосрочной поддержкой (LTS), говорит Линаро.
Ожидается, что IKS будет выпущен апстримом в грядущем ядре Linux 3.11 или Linux 3.12, в то время как GTS найдет свой путь к ядру «в ближайшие несколько кварталов», говорит компания.

Дополнительную информацию можно найти на странице объявлений Linaro GTS .