Мультиядерные процессоры 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 позволяет разработчикам систем на кристалле рассматривать отдельный процессор как одиночный, что упрощает процесс разработки и уменьшает время выхода продукта на рынок.
Технические характеристики:
- 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, что в итоге дает высокую производительность и низкое энергопотребление, как на специфических прикладных приложениях, так и для устройств общего плана. Поддерживается также технология 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 включает в себя следующие решения и технологии:
- Порт ускорения согласования Accelerator Coherence Port (ACP) — для увеличения системной производительности и снижения энергопотребления.
- Блок Advanced Bus Interface — для снижения задержек в устройствах с требованиями к полосе пропускания.
Структура процессоров 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 представляют довольно мощную и энергоэффективную платформу для широкого класса приложений. Они обладают возможностями мультимедийной обработки данных, поддержкой ряда технологий уплотнения кода и управления питанием.
Литература
- ARM11 MPCore — http://www.arm.com/products/CPUs/ARM11MPCoreMultiprocessor.html
- ARM Cortex-A9 MPCore — http://www.arm.com/products/CPUs/ARMCortex-A9_MPCore.html
- The ARM Cortex-A9 Processors — http://www.arm.com/pdfs/ARMCortexA-9Processors.pdf
- ARM Cortex-A5 — http://www.arm.com/products/CPUs/ARM-Cortex-A5.html
- MlPS32R 1004KT Coherent Processing System (CPS) Core — http://www.embeddeddeveloper.com/cores/documents/MIPS32_1004K_rev1.pdf
- MlPS32R 1004KT Coherent Processing System Datasheet. MIPS Technologies Inc.