Мультиядерные процессоры ARM-архитектуры


Калачев Александр

Введение

Процессоры с ядрами ARM сейчас достаточно популярны в среде разработчиков мобильных устройств и встраиваемых систем различного применения. Самые массовые из них — это мобильные телефоны, смартфоны, коммуникаторы, мультимедийные устройства. Архитектура обладает такими привлекательными свойствами, как удобная и эффективная система команд, мощная поддержка при разработке не только аппаратной базы, но и программного обеспечения, высокая энергоэффективность. Относительно недавно было заявлено о разработке мультиядерной архитектуры на базе ARM, что открывает данным процессорам путь на рынок высокопроизводительных приложений. В частности, одно из возможных применений — ноутбуки, сравнимые с их аналогами на архитектуре х86, а то и превосходящие их.

На данный момент компанией ARM представлены три мультиядерные архитектуры: ARM11 MPCore, Cortex-A9 MPCore и Cortex-A5 MPCore. Каждая из этих архитектур может масштабироваться от одного до четырех процессоров на основе ядер ARM11, Cortex-A9 и Cortex-A5. Код, написанный для одиночных процессоров, может исполняться и на мультиядерных.

Целевая область применения процессоров MPCore — это мобильные приложения с высокими требованиями по производительности совместно с ограниченными энергетическими ресурсами. Благодаря масштабируемой пиковой производительности, процессоры могут достаточно легко справляться с требованиями современных высокопроизводительных встраиваемых приложений при сохранении инвестиций в программное обеспечение в условиях развивающегося рынка.


Общая характеристика мультиядерных ARM-процессоров

Процессоры MPCore поддерживают полностью когерентный кэш данных, существенно упрощая как симметричный, так и асимметричный мультипроцессинг, собственно как и любую другую мультипроцессорную технологию [1-4].

Производительность приложений увеличивается благодаря возможности разделения ядрами данных кэша, распределения и балансирования вычислительной нагрузки между процессорами, портирования многозадачных приложений, а также масштабируемости приложений благодаря эффективной загрузке процессора многопоточными приложениями, характерными для современного программного обеспечения. Возможность передачи данных между кэшами процессоров позволяет процессорам эффективно разделять данные без необходимости доступа в память.

Оптимизированный кэш первого уровня существенно ускоряет операции с данными при сохранении достаточно низкого энергопотребления. Аппаратная реализация индексации и тэгирования данных кэша снимают временные издержки при устранении наложения адресов или необходимости очистки кэша при смене контекста в операционной системе. Кэш данных используется как при операциях чтения, так и при записи данных совместно с адаптируемым буфером записи, который позволяет существенно снизить количество обращений к основной памяти и может формировать запросы на массированную передачу данных из нескольких запросов к памяти. Уникальная система кэш-памяти ускоряет выделение пространства кэша, в результате чего оно выполняется всего за один цикл.

Процессоры MPCore позволяют производителю использовать одни и те же ядра с разными конфигурациями для продуктов с различными свойствами и требованиями.

К настоящему времени лицензию на выпуск процессоров ARM MPCore приобрели более чем 15 компаний, включая Broadcom, NEC Electronics, NVIDIA, Renesas Technology, Toshiba и Sarnoff Corporation. Эти процессоры использованы в большом количестве приложений и устройств, представленных на современном рынке. Технология существенно расширяет спектр приложений, предлагая более эффективные модели операций.

Все мультиядерные решения от ARM базируются на шинной архитектуре AMBA 3 AXI, дающей возможность подключать к процессорам не только память и периферийные устройства, но и другие процессоры. Шинный интерфейс процессоров MPCore и масштабируемость позволяют настраивать производительность системы, оптимизировать ее энергопотребление при снижении общей стоимости решения и риска его морального старения при переходе к следующему поколению цифровых устройств. Интеграция с существующими системными компонентами также снижает риски, связанные, например, с поддержкой операционных систем и продуктов на базе данных процессоров. Поддерживается стандартная для ARM-архитектур модель программирования с поддержкой существующих операционных систем и приложений. Доступны совместимые с Linux 2.6 SMP операционные системы и инструменты разработки.

Занимаемая процессорами площадь на кристалле, диапазон рабочих частот и потребляемая мощность зависят от использованного при реализации технологического процесса, библиотек компонентов и оптимизации.

Несмотря на различия в ядрах и некоторые различия в построении мультиядерных вариантов процессоров есть ряд технологий, поддерживаемый ими всеми.

Технологии ускорения выполнения lava-приложений — Jazelle DBX и Jazelle RCT—необходимы для оптимизации процесса адаптивной компиляции на лету (Just In Time, JIT и Dynamic Adaptive Compilation, DAC), а также уменьшения расхода памяти до трех раз.

Технология TrustZone применяется для обеспечения безопасности транзакций, управления цифровыми сертификатами, создания базы для проверки и защиты прав (Digital Rights Management, DRM).


ARM11 MPCore

Синтезируемый процессор ARM11 MPCore поддерживает микроархитектуру ARM11 и может содержать от одного до четырех процессоров (рис. 1), достигая производительности до 2600 DMIPS, и имеет расширенную полосу пропускания памяти порядка 1,3 Гбайт/с для одиночного процессора [1].

Рис. 1. Структура процессора ARM11 MPCore

Процессоры ARM11 MPCore поддерживают архитектуру ARMv6, в том числе Thumb, расширение цифровой обработки сигналов, SIMD мультимедийную обработку данных и ARM Jazelle Java.

Процессор имеет высокопроизводительную подсистему памяти. Каждый процессор имеет свои независимые кэши данных и инструкций с поддержкой согласования данных. Размер кэшей инструкций и данных можно независимо изменять в пределах от 16 до 64 кбайт индивидуально для каждого ядра.

Поддерживается 64-битный интерфейс AMBA AXI с одиночной или двойной 64-битной шинной системой AMBA 3 AXI. Системная 64-битная шина AMBA 3 AXI упрощает обмен данными в системе при достаточно большой полосе пропускания и простой системе тактирования.

В состав процессора включены векторные сопроцессоры (Vector Floating Point coprocessors), работающие с числами в формате с плавающей точкой.

Блок контроля и распределения прерываний является программируемым: можно сконфигурировать до 255 независимых источников аппаратных прерываний.

Добавлена система управления энергопотреблением: мультипроцессор имеет возможность отключать неиспользуемые ресурсы и процессоры (Adaptive Shutdown), что в итоге дает динамическое энергопотребление порядка 0,49 мВт/МГц. Таким образом, экономится до 85% энергии.

ARM11 MPCore позволяет разработчикам систем на кристалле рассматривать отдельный процессор как одиночный, что упрощает процесс разработки и уменьшает время выхода продукта на рынок.

Технические характеристики:

Занимаемая ядром площадь, диапазон рабочих частот и потребляемая мощность зависят от использованного при реализации технологического процесса, библиотек компонентов и оптимизации. Приведенные данные получены при следующих условиях производства: технологический процесс — TSMC; стандартный набор библиотек компонентов ARM Artisan.


Серия Cortex-A MPCore

Процессоры семейства Cortex-A MPCore — Cortex-A5 MPCore и Cortex-A9 MPCore [2-4], — помимо небольшой занимаемой площади и энергоэффективности, обладают богатым арсеналом возможностей и функциональностью архитектуры ARMv7, что в итоге дает высокую производительность и низкое энергопотребление, как на специфических прикладных приложениях, так и для устройств общего плана. Поддерживается также технология Thumb-2, обеспечивающая высокую производительность при одновременном уменьшении размера кода на 30%.

Процессоры, входящие в состав мультипроцессоров Cortex-A MPCore, имеют блок операций с плавающей точкой, способный выполнять операции с одинарной и двойной точностью. Математический сопроцессор обладает примерно вдвое большей производительностью, чем предыдущие версии сопроцессоров ARM. Архитектура ARM Cortex-A5/A9 имеет мультимедийное 128-битное SIMD расширение архитектуры — NEON, предназначенное для поддержки мультимедийных операций и функций цифровой обработки сигналов (например, для ускорения работы таких алгоритмов, как H.264 или MP3). Также данный модуль расширяет систему команд набором инструкций ARM NEON Advanced SIMD, впервые представленным с процессором Cortex-A8.

Блок предсказаний ветвлений поддерживает целевые проходы и буферы глобальной истории, при этом точность предсказаний, согласно тестам, порядка 95%.

Подсистема памяти имеет возможность загрузки данных в кэш первого уровня за один цикл. Оптимизированная подсистема AMBA AXI обладает более чем в три раза широкой полосой пропускания, чем процессоры ARM1176lZ-S.

Добавлена поддержка нескольких разобщенных транзакций с внешней памятью для более полной загрузки процессора.

Начиная с процессора Cortex-A9 MPCore, мультипроцессорная технология MPCore включает в себя следующие решения и технологии:

Структура процессоров Cortex-A MPCore представлена на рис. 2.

Рис. 2. Структура процессоров Cortex-A MPCore

Компоненты Program Trace Macrocell и CoreSight Design Kit позволяют разработчику отслеживать выполнение программы с сохранением истории выполнения либо в буфер кристалла, либо с выдачей ее через стандартный отладочный интерфейс, что весьма упрощает процесс разработки и отладки программ.

Применена технология Multicore TrustZone с виртуализацией прерываний для аппаратной поддержки защиты данных и расширенных возможностей решений по виртуализации приложений.

В структуру процессора включен общий контроллер прерываний — Generalized Interrupt Controller (GIC) — для поддержки переносимости программного обеспечения и оптимизации межпроцессорного обмена.


ARM Cortex-A9 MPCore

ARM Cortex-A9 MPCore [2, 3] поднимает пиковую производительность на новый высокий уровень при одновременной поддержке простоты решений и возможностей контроля потребляемой мощности, как на уровне процессора, так и на уровне системы в целом.

Процессор Cortex-A9 MPCore имеет возможность оптимизации производительности приложений, и по скорости выполнения, и по потребляемой мощности. Структура одиночного процессора ARM Cortex-A9 приведена на рис. 3.

Рис. 3. Структура процессора ARM Cortex-A9

Основные возможности

Энергоэффективный суперскалярный конвейер обладает производительностью более 2 DMIPS/МГц.

Оптимизированный по производительности и потребляемой мощности кэш первого уровня совмещает минимальное время задержки и минимальное энергопотребление. Добавлен контроллер кэша второго уровня, позволяющий осуществлять доступ с малыми временами задержки и высокой пропускной способностью к кэш-памяти размером до 2 Мбайт.

Мультипроцессор Cortex-A9 MPCore показывает практически линейную масштабируемость производительности на различных тестах [3].

Процессоры ARM Cortex-A9 (и одиночный вариант, и мультипроцессор) поддерживают ряд специфических расширений ARM-архитектуры, включая DSP, SIMD, Jazelle, TrustZone и Intelligent Energy Manager. В дополнение к этому ARM создала ряд поддерживающих технологий для сокращения времени разработки и сокращения времени выхода продукта на рынок. Данная поддержка включает в себя компоненты IP, системные средства разработки и отладки, библиотеку стандартизованных макроячеек и памяти — ARM Advantage.

Компоненты Physical IP содержат широкий спектр продуктов, включая стандартную библиотеку макроячеек и реализаций памяти для создания высокопроизводительных и низкопотребляющих систем с процессором Cortex-A9. Стандартные макроячейки содержат модули регулирования энергопотребления, позволяющие динамически управлять режимами работы в целях оптимизации энергопотребления с использованием таких технологий, как управление частотой, управление напряжением питания, блоки с различным напряжением питания. Библиотеки ячеек памяти также предлагаются с расширенными возможностями управления питанием.

Процессоры Cortex-A9 поддерживаются обширной библиотекой макроячеек PrimeCell fabric IP, включая контроллер динамической памяти — PL341 DDR2; контроллер статической памяти PL351; конфигурируемый интерфейс межсоединений PL301 AXI; контроллер кэша второго уровня — PL310 L2 Cache Controller, оптимизированный для высокопроизводительных приложений с использованием процессоров Cortex-A9.

Приложение AMBA Designer позволяет разработчикам систем на кристалле (SoC) конфигурировать и оптимизировать подсистемы связей AXI, а также экспортировать их в стандарт EDA.

С помощью средства разработки ARM RealView SoC Designer можно осуществлять быстрое расширение архитектуры и анализ производительности систем на основе Cortex-A9, а также разрабатывать драйверы и критически важные участки кода до того, как станет доступным аппаратная часть. Инструмент RealView System Generator предлагает средства моделирования поведения системы, исполняя ARM-код.

Технология ARM CoreSight используется для быстрой отладки и уменьшения времени выхода продукта на рынок. Технология Program Trace Macrocell создана для трассировки хода выполнения программы с поддержкой просмотра выполнения инструкций и включает ARMv7-совместим^IЙ отладочный интерфейс. Инструмент CoreSight для Cortex-A9 расширяет возможности отладки и трассировки.

Среда разработки программного обеспечения ARM RealView Development Suite включает в себя генератор кода, оптимизированный по производительности и плотности кода, с поддержкой компиляции кода для расширения архитектуры NEON, отладки приложений для мультипроцессора Cortex-A9 MPCore при помощи инструмента RealView ICE and Trace. Процессор Cortex-A9 поддерживается также широким спектром отладочных плат и систем разработки прототипов, как в FPGA, так и в виде программных средств.


ARM Cortex-A5

ARM Cortex-A5 [4] — самый маленький низкопотребляющий мультиядерный ARM-процессор. Он предназначен для различных применений: от мобильных устройств типа смартфонов, коммуникаторов, мультимедийных проигрывателей и т. п. до встраиваемых пользовательских или индустриальных компьютеров.

Процессор Cortex-A5 (рис. 4) предусматривает возможность миграции решений для большого количества лицензированных ядер, основанных на ARM926El-ST и ARM1176lZ-ST. Обладая производительностью, лучшей, чем процессоры ARM1176lZ-S, при уровне энергопотребления и занимаемой площади процессора ARM926El-S, Cortex-A5 дает примерно двукратный прирост отношения производительность/потребляемая мощность по сравнению со своими популярными предшественниками.

 

Производительность еще больше увеличивается в мультипроцессорной конфигурации Cortex-A5 MPCore.

ARM Cortex-A5 основан на 8-уровневом конвейере с улучшенным блоком предсказания ветвлений. Достигаемая этим процессором производительность — 1,5 DMIPS/МГц.

Одиночный процессор включает в себя целочисленный конвейер, модуль NEON и блок вычислений с плавающей точкой. Все блоки процессора оптимизированы по потребляемой мощности и занимаемой площади.

Процессоры изготавливаются по 40-нм технологии. Рабочая частота — 480 МГц, занимаемая на кристалле площадь — 0,53 мм2 (без кэша — 0,27 мм2), размер кэша инструкций/данных — 16/16 кбайт. Площадь, занимаемая процессором с кэшем и блоком расширения NEON, — 0,68 мм2. Энергопотребление — 0,12 мВт/МГц. Показатель энергоэффективности — 13 DMIPS/мВт.


Заключение

Наиболее близкий конкурент мультиядер-ных ARM-процессоров — это когерентная процессорная система MIPS32 1004K, также содержащая до 4 процессорных ядер [5, 6]. Показатели и структурная организация этих процессорных мультиядерных архитектур весьма схожи. Одним из существенных отличий системы MIPS32 1004K является под держка ее процессорными ядрами двух потоков исполнения.

Сравнительные характеристики процессоров представлены в таблице.

Таблица. Сравнительные характеристики процессоров

Процессор Производительность ядра, DMIPS/МГц Относительное энергопотребление, мВт/МГц Рабочая частота, МГц Размер кэша (инструкций/данных), кбайт
ARM11 MPCore 1 0,23-0,43 320-620 16-64/16-64
ARM Cortex-A9 MPCore 2-2,5   <2000 16-64/16-64
ARM Cortex-A5 MPCore 1,5 0,12 480 4-64/4-64
MIPS32 1004K 1,6 0,5 800 8-64/0-64

Таким образом, мультиядерные процессоры ARM представляют довольно мощную и энергоэффективную платформу для широкого класса приложений. Они обладают возможностями мультимедийной обработки данных, поддержкой ряда технологий уплотнения кода и управления питанием.


Литература
  1. ARM11 MPCore — http://www.arm.com/products/CPUs/ARM11MPCoreMultiprocessor.html
  2. ARM Cortex-A9 MPCore — http://www.arm.com/products/CPUs/ARMCortex-A9_MPCore.html
  3. The ARM Cortex-A9 Processors — http://www.arm.com/pdfs/ARMCortexA-9Processors.pdf
  4. ARM Cortex-A5 — http://www.arm.com/products/CPUs/ARM-Cortex-A5.html
  5. MlPS32R 1004KT Coherent Processing System (CPS) Core — http://www.embeddeddeveloper.com/cores/documents/MIPS32_1004K_rev1.pdf
  6. MlPS32R 1004KT Coherent Processing System Datasheet. MIPS Technologies Inc.