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

Мультиядерные процессоры

ARM-архитектуры

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

Александр КАЛАЧЕВ

forther@yandex.ru

введение

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

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

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

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

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

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

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

Процессоры МРСоге позволяют производителю использовать одни и те же ядра с раз-

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

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

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

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

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

і

Конфигурируемое число линий запросов на прерывание

і

Блок контроля и распределения прерываний

Таймер

Сторожевой

таймер

Интерфейс

к

процессору

Векторный

сопроцессор

Таймер

Сторожевой

таймер

Интерфейс

к

процессору

IRQ

Процессорное ядро ARM11

Векторный

сопроцессор

Таймер

Сторожевой

таймер

Интерфейс

к

процессору

IRQ

Процессорное ядро ARM11

Векторный

сопроцессор

Таймер

Сторожевой

таймер

Интерфейс

к

процессору

IRQ

Процессорное ядро ARM 11

Векторный

сопроцессор

IRQ

Процессорное ядро ARM 11

Кэш Кэш

инструкции данных

7\

Кэш Кэш

инструкции данных

Шины

Кэш Кэш

инструкции данных

передачи инструкции и

VI

данных

Гх-

Шина контроля согласования кэшей

ЛД-

Блок отслеживания операций

Системная шина АМВА З AXI

Кэш Кэш

инструкции данных

Первичный 64-битный интерфейс AMBA3AXI Вторичный 64-битный интерфейс АМВА 3 AXI с адресной фильтрацией

] - ] -

0

Li-

1

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

Технологии ускорения выполнения Java-приложений — 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].

Процессоры 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 позволяет разработчикам систем на кристалле рассматривать отдельный процессор как одиночный, что упрощает процесс разработки и уменьшает время выхода продукта на рынок.

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

• 90-нм технологический процесс;

• рабочая частота — 320-620 МГц;

• занимаемая площадь с кэшем — 1,46; 2,54 мм2 (без кэша — 0,9; 1,8 мм2);

• размер кэша — 16/16 кбайт;

• потребляемая мощность —

0,23-0,43 мВт/МГц

(без кэша — 0,18-0,37 мВт/МГц). Занимаемая ядром площадь, диапазон рабочих частот и потребляемая мощность зависят от использованного при реализации технологического процесса, библиотек компонентов и оптимизации. Приведенные данные получены при следующих условиях производства: технологический процесс — TSMC; стандартный набор библиотек компонентов ARM Artisan.

Серия Cortex-A MPCore

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

Блок отладки и трассировки технологии ARM CoreSigth"

Блок вычислений с плавающей точкой/ NEON Блок трассировки/ отладки Блок вычислений с плавающей точкой/ NEON Блок трассировки/ отладки Блок вычислений с плавающей точкой/ NEON Блок трассировки/ отладки Блок вычислений с плавающей точкой/ NEON Блок трассировки/ отладки

Процессорное ядро

Кэш инструкций Кэш данных Кэш инструкций Кэш данных Кэш инструкций Кэш данных Кэш инструкций Кэш данных

Блок контроля и распределения прерываний

Блок отслеживания операций

Блок передачи данных между кэшами Фильтр слежения (Snoop Filtering) Таймеры

Системная шина АМВА З AXI

Первичный 64-битный интерфейс Вторичный 64-битный интерфейс

АМВА 3 AXI АМВА 3 AXI с адресной фильтрацией

-О- -U-

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

устройств общего плана. Поддерживается также технология 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 обладает более чем в три раза широкой полосой пропускания, чем процессоры ARM1176JZ-S.

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

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

• Порт ускорения согласования Accelerator Coherence Port (ACP) — для увеличения системной производительности и снижения энергопотребления.

• Блок Advanced Bus Interface — для снижения задержек в устройствах с требованиями к полосе пропускания.

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

Компоненты 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.

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

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

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

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

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

Интерфейс

CoreSigth/

JTAG

Порт отладки приложений CoreSigth

Блок мониторинга

Двойной блок декодирования инструкций

ж

Пул

преобразования виртуальных регистров в физические

Переходы

Очередь

инструкций

Очередь

инструкций

Блок предварительной выборки инструкций

Режим

быстрых

циклов

Кэш

инструкций

Блок предсказания переходов

| Буфер глобальной истории ~~|

| Кэш целевого адреса инструкции BR~|

Стек возвратов

Блок внеочередного выполнения команд

Очередь

инструкций

АЛУ/

умножитель

АЛУ

Математический

сопроцессор/

NEON

Адреса

Подсистема

памяти

Автоматическая перевыборка

Блок ассоциативной трансляции — uTLB

Счетверенный слот С пересылкой данных Блок управления памятью — MMU

Кэш данных

Контроллер

прерываний

PL390

Контроллер кэша второго уровня

Шинный интерфейс

| Первый интерфейс | | Второй интерфейс (с фильтрацией) |

т

Трассировщик

CoreSigth

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

мени разработки и сокращения времени выхода продукта на рынок. Данная поддержка включает в себя компоненты 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-совместимый отладочный интерфейс. Инструмент 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-процессор. Он предназначен для различных применений: от мобильных устройств типа смартфонов, коммуникаторов, мультимедийных проигрывателей и т. п. до встраиваемых пользовательских или индустриальных компьютеров.

Интерфейс трассировки/отладки

Блок загрузки/ приема данных

Буфер приема данных

Кэш данных

ту

64-битный интерфейс АМВА З AXI

Рис. 4. Структурная схема процессора ARM Cortex-A5

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

Процессор Производительность ядра, 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

Процессор Cortex-A5 (рис. 4) предусматривает возможность миграции решений для большого количества лицензированных ядер, основанных на ARM926EJ-ST и ARM1176JZ-ST. Обладая производительностью, лучшей, чем процессоры ARM1176JZ-S, при уровне энергопотребления и занимаемой площади процессора ARM926EJ-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 является под-

держка ее процессорными ядрами двух потоков исполнения.

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

Таким образом, мультиядерные процессоры 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. MIPS32R 1004KT Coherent Processing System (CPS) Core — http://www.embeddeddeveloper.com/cores/ documents/MIPS32_1004K_rev1.pdf

6. MIPS32R 1004KT Coherent Processing System Datasheet. MIPS Technologies Inc.