Процессоры с IP-ядрами ARM
Процессоры с ядрами ARM на данный момент являются достаточно
популярными для мобильных устройств и встраиваемых систем различного применения. Самые массовые из них — это мобильные телефоны,
смартфоны, коммуникаторы, мультимедийные устройства. Архитектура
обладает такими привлекательными свойствами, как удобная и эффективная система команд, мощная поддержка при разработке аппаратной
базы и программного обеспечения, высокая энергоэффективность. Относительно недавно было заявлено о разработке мультиядерной архитектуры на базе ARM, что открывает данным процессорам путь на рынок высокопроизводительных приложений. В частности, одно из возможных
применений — ноутбуки, сравнимые, а то и превосходящие их аналоги на
архитектуре х86.
На данный момент компанией ARM представлены три мультиядерные архитектуры: ARM11 MPCore $$\text{\texttrademark}$$, Cortex-A9 MPCore $$\text{\texttrademark}$$ и Cortex-A5
MPCore $$\text{\texttrademark}$$. Каждая из этих архитектур может масштабироваться от одного до четырех процессорных ядер (ARM11, Cortex-A9 и Cortex-A5) [48-49-50-51].
Код, написанный для одиночных процессоров, также может исполняться
и на мультиядерных.
Целевая область применения процессоров MPCore лежит в области
мобильных приложений с высокими требованиями по производительности совместно с ограниченными энергетическими ресурсами. Благодаря
масштабируемой пиковой производительности данный процессор может
достаточно легко справляться с требованиями современных высокопроизводительных встраиваемых приложений при сохранении инвестиций в
программное обеспечение в условиях развивающегося рынка.
Общая характеристика мультиядерных
ARM-процессоров
Процессоры MPCore поддерживают полностью когерентный кэш
данных, существенно упрощая как симметричный, так и асимметричный
мультипроцессинг, собственно, как и любую другую мультипроцессорную
технологию.
Производительность приложений увеличивается благодаря возможности разделения ядрами данных кэша, возможности распределения и балансирования вычислительной нагрузки между процессорами, портирования многозадачных приложений, а также масштабируемости приложений
за счет эффективной загрузки процессора многопоточными приложениями, характерными для современного программного обеспечения. Возможность передачи данных между кэшами процессоров позволяет процессорам
эффективно разделять данные без необходимости доступа в память.
Оптимизированный кэш первого уровня существенно ускоряет операции с данными при сохранении достаточно низкого энергопотребления.
Аппаратная реализация индексации и тэгирования данных кэша снимают
временные издержки при устранении наложения адресов или необходимости очистки кэша в ходе смены контекста в операционной системе.
Кэш данных используется как при операциях чтения, так и при записи
данных совместно с адаптируемым буфером записи, который позволяет
существенно снизить количество обращений к основной памяти и может
формировать запросы на массированную передачу данных из нескольких
запросов к памяти. Уникальная система кэш-памяти ускоряет выделение
пространства кэша, в результате чего оно выполняется всего за один цикл.
Процессоры MPCore позволяют производителю использовать одни
и те же ядра с различными конфигурациями для продуктов с различными
свойствами и требованиями.
К настоящему времени лицензия на выпуск процесоров ARM
MPCore приобретена более чем 15 компаниями, включая Broadcom, NEC
Electronics, NVIDIA, Renesas Technology, Toshiba and Sarnoff Corporation, и
воплощена в большом количестве приложений и устройств, представленных на современном рынке. Технология существенно расширяет спектр
приложений, предлагая более эффективные модели операций.
Все мультиядерные решения от ARM базируются на шинной архитектуре AMBA 3 AXI, дающей возможность подключать к процессорам не
только память и периферийные устройства, но и другие процессоры.
Шинный интерфейс процессоров MPCore и масштабируемость позволяют настраивать производительность системы, оптимизировать ее энергопотребление и снижать общую стоимость решения и риск морального
старения при переходе к следующему поколению цифровых устройств.
Интеграция с существующими системными компонентами также снижает риски, связанные, например, с поддержкой операционных систем и
продуктов на базе данных процессоров. Работает стандартная для ARM-
архитектур модель программирования с поддержкой существующих операционных систем и приложений. Доступны совместимые с Linux 2.6
SMP операционные системы и инструменты разработки.
Занимаемая процессорами площадь на кристалле, диапазон рабочих частот и потребляемая мощность зависят от использованного при реализации технологического процесса, библиотек компонентов и оптимизации.
Несмотря на различия в ядрах и некоторые различия в построении
мультиядерных вариантов процессоров, есть ряд технологий, поддерживаемый ими всеми.
Технологии ускорения выполнения Java-приложений — Jazelle DBX
и Jazelle RCT для оптимизации процесса адаптивной компиляции "на лету" (Just In Time (JIT) and Dynamic Adaptive Compilation (DAC)), а также
для уменьшения расхода памяти — максимум в три раза.
Технология TrustZone предназначена для обеспечения безопасности
транзакций, управления цифровыми сертификатами, создания базы для
проверки и защиты прав (Digital Rights Management (DRM)).
ARM11 MPCore
Синтезируемый процессор ARM11 $$\text{\texttrademark}$$ MPCore $$\text{\texttrademark}$$ [48] поддерживает
микроархитектуру ARM11 и может содержать от одного до четырех процессоров (рис 8.1), достигая производительности до 2600 DMIPS; имеет
расширенную полосу пропускания памяти порядка 1,3 Гб/с для одиночного процессора.
(рис 8.1) Структура процессора ARM11 MPCoreПроцессоры ARM11 MPCore поддерживают архитектуру ARMv6 с
поддержкой Thumb $$\text{\textregistered}$$, расширений цифровой обработки сигналов, SIMD
мультимедийной обработки данных и ARM Jazelle $$\text{\textregistered}$$ Java.
У процессора высокопроизводительная подсистема памяти. Каждый
процессор имеет свои независимые кэши данных и инструкций с поддержкой согласования данных. Размер кэшей инструкций и данных можно независимо изменять в пределах от 16 Кб до 64 Кб индивидуально для
каждого ядра.
Поддерживается 64-битный интерфейс AMBA AXI $$\text{\texttrademark}$$ с одиночной или двойной 64-битной шинной системой AMBA 3 AXI. Системная 64-битная шина AMBA 3 AXI упрощает обмен данными в системе при достаточно большой полосе пропускания и простой системе тактирования.
Векторный сопроцессор (Vector Floating Point coprocessors) работает с числами в формате с плавающей точкой.
Блок контроля и распределения прерываний является программируемым — возможно сконфигурировать до 255 независимых источников аппаратных прерываний
Добавлена система управления энергопотреблением: мультипроцессор имеет возможность отключать неиспользуемые ресурсы и процессоры (Adaptive Shutdown), что в итоге дает динамическое энергопотребление порядка 0,49 мВт/МГц — экономится до 85% энергии.
ARM11 MPCore позволяет разработчикам систем на кристалле рассматривать отдельный процессор как одиночный процессор, упрощая тем самым процесс разработки и уменьшая время выхода продукта на рынок.
Технические характеристики:
90-нм технологический процесс;
рабочая частота — 320-620 МГц;
занимаемая площадь с кэшем 1,77 мм2;
размер кэша — 16 Кбайт / 16 Кбайт;
потребляемая мощность — 0,23-0,43 мВт/МГц (без кэша — 0,180,37 мВт/МГц).
Занимаемая ядром площадь, диапазон рабочих частот и потребляемая мощность зависят от использованного при реализации технологического процесса, библиотек компонентов и оптимизации. Приведенные числа получены при следующих условиях производства: технологический процесс — TSMC; стандартный набор библиотек компонентов — ARM Artisan.
Серия Cortex-A MPCore
Процессоры семейства Cortex-A MPCore $$\text{\texttrademark}$$ [49-50-51] — Cortex-A5 MPCore $$\text{\texttrademark}$$ и Cortex-A9 MPCore $$\text{\texttrademark}$$ — помимо небольшой занимаемой площади и энергоэффективности обладают богатым арсеналом возможностей и функциональностью архитектуры ARMv7, что в итоге дает высокую производительность и низкое энергопотребление, как на специфических прикладных приложениях, так и для устройств общего плана. Поддерживается также технология Thumb $$\text{\textregistered}$$ -2, обеспечивающая высокую производительность при одновременном уменьшении размера кода на 30%.
Процессоры, входящие в состав мультипроцессоров Cortex-A MPCore $$\text{\texttrademark}$$, имеют блок операций с плавающей точкой, способный выполнять операции с одинарной и двойной точностью. Он обладает примерно вдвое большей производительностью, чем предыдущие версии ARM FPU.
Архитектура ARM Cortex-A5/A9 (рис 8.2) имеет мультимедийное 128-битное SIMD расширение архитектуры — NEON, предназначенное для поддержки мультимедийных операций и функций цифровой обработки сигналов (например, для ускорения работы таких алгоритмов, как H.264 или MP3). Также данный модуль расширяет систему команд набором инструкций ARM NEON Advanced SIMD, впервые представленным с процессором Cortex-A8.
(рис 8.2) Структура процессоров Cortex-A MPCoreБлок предсказаний ветвлений поддерживает целевые проходы и буферы глобальной истории, при этом точность предсказаний, согласно тестам, будет порядка 95%.
Подсистема памяти обладает возможностью загрузки данных в кэш первого уровня за один цикл. Оптимизированная подсистема AMBA AXI обладает полосой пропускания, которая более чем в три раза шире, чем у процессоров ARM1176JZ-S.
Добавлена поддержка нескольких разобщенных транзакций с внешней памятью для более полной загрузки процессора.
Начиная с процессора Cortex-A9 MPCore мультипроцессорная технология MPCore включает в себя следующие решения и технологии:
порт ускорения согласования — Accelerator Coherence Port (ACP) — для увеличения системной производительности и снижения энергопотребления;
блок Advanced Bus Interface — для снижения задержек в устройствах с высокими требованиями к полосе пропускания.
Компоненты Program Trace Macrocell и CoreSight $$\text{\texttrademark}$$ Design Kit позволяют разработчику отслеживать выполнение программы либо с сохранением истории выполнения в буфер кристалла, либо с выдачей ее через стандартный отладочный интерфейс, что весьма упрощает процесс разработки и отладки программ.
Технология Multicore TrustZone $$\text{\textregistered}$$ имеет виртуализацию прерываний для аппаратной поддержки защиты данных и расширенных возможностей решений по виртуализации приложений.
Общий контроллер прерываний — Generalized Interrupt Controller (GIC) — предназначен для поддержки портабельности программного обеспечения и оптимизации межпроцессорного обмена.
ARM Cortex-A9 MPCore
ARM Cortex-A9 MPCore поднимает пиковую производительность на новый высокий уровень при одновременной поддержке простоты решений и возможностей контроля потребляемой мощности, как на уровне процессора, так и на уровне системы в целом.
Процессор Cortex-A9 MPCore имеет возможность оптимизации производительности приложений и по скорости выполнения, и по потребляемой мощности.
Основные возможности включают в себя следующее.
Энергоэффективный суперскалярный конвейер производительностью более 2,0 DMIPS/МГц.
Оптимизированный по производительности и потребляемой мощности кэш первого уровня совмещает минимальное время задержки и минимальное энергопотребление. Добавлен контролер кэша второго уровня, позволяющий осуществлять доступ с малыми временами задержки и высокой пропускной способностью к кэш памяти размером до 2 Мб.
Мультипроцессор Cortex-A9 MPCore иллюстрирует практически линейную масштабируемость производительности на различных тестах.
Процессоры ARM Cortex-A9 — и одиночный вариант (рис 8.3), и мультипроцессор — поддерживают ряд специфических расширений ARM-архитектуры, в том числе: DSP, SIMD, Jazelle $$\text{\textregistered}$$, TrustZone, Intelligent Energy Manager (IEM $$\text{\texttrademark}$$ ). В дополнение к этому ARM разработала ряд поддерживающих технологий для сокращения времени разработки и сокращения времени выхода продукта на рынок.
(рис 8.3) Структура процессора ARM Cortex-A9Данная поддержка включает в себя компоненты IP, системные средства разработки и отладки, библиотеку стандартизованных макроячеек и памяти — ARM Advantage.
Компоненты Physical IP включают широкий спектр продуктов, в том числе стандартную библиотеку макроячеек и реализаций памяти для создания высокопроизводительных и низкопотребляющих систем с процессором Cortex-A9. Стандартные макроячейки содержат модули регулирования энергопотребления, позволяющие динамически управлять режимами работы в целях оптимизации энергопотребления с применением таких технологий, как управление частотой, управление напряжением питания, блоки с различным напряжением питания. Библиотеки ячеек памяти также предлагаются с расширенными возможностями управления питанием.
Процессоры Cortex-A9 поддерживаются обширной библиотекой макроячеек PrimeCell $$\text{\textregistered}$$ fabric IP, включая: контроллер динамической памяти —PL341 DDR2; контроллер статической памяти — PL351; конфигурируемый интерфейс межсоединений — PL301 AXI; контроллер кэша второго уровня — PL310 L2 Cache Controller, оптимизированный для высокопроизводительных приложений с использованием процессоров Cortex-A9.
Приложение AMBA $$\text{\textregistered}$$ Designer tool позволяет разработчикам систем на кристалле (SoC) конфигурировать и оптимизировать подсистемы связей AXI и экспортировать их в стандарт EDA.
Средство разработки ARM RealView $$\text{\textregistered}$$ SoC Designer позволяет осуществлять быстрое расширение архитектуры, анализ производительности систем на основе Cortex-A9, а также разрабатывать драйверы и критически важные участки кода до того, как станет доступной аппаратная часть. Инструмент RealView System Generator предлагает средства моделирования поведения системы на основе ARM-кода.
Технология ARM CoreSight $$\text{\texttrademark}$$ используется для быстрой отладки и уменьшения времени выхода продукта на рынок. Процессор применяет технологию Program Trace Macrocell для трассировки хода выполнения программы с поддержкой просмотра выполнения инструкций и включает ARMv7-совместимый отладочный интерфейс. Инструмент CoreSight design kit для Cortex-A9 расширяет возможности отладки и трассировки.
Среда разработки программного обеспечения ARM RealView Development Suite включает в себя генератор кода, оптимизированный по производительности и плотности кода, с поддержкой компиляции кода для расширения архитектуры NEON, отладки приложений для мультипроцессора Cortex-A9 MPCore при помощи инструмента RealView ICE and Trace. Процессор Cortex-A9 поддерживается также широким спектром отладочных плат и систем разработки прототипов, как в FPGA, так и в виде программных средств.
ARM Cortex-A5
Процессор ARM $$\text{\texttrademark}$$ Cortex $$\text{\textregistered}$$ -A5 — самый маленький, низкопотребляющий, мультиядерный ARM-процессор, предназначенный для широкого круга устройств: от мобильных устройств типа смартфонов, коммуникаторов, мультимедийных проигрывателей и т. п. до встраиваемых пользовательских или индустриальных компьютеров.
Процессор Cortex-A5 (рис 8.4) предусматривает возможность миграции решений для большого количества лицензированных ядер, основанных на ARM926EJ-S $$\text{\textregistered}$$ и ARM1176JZ-S $$\text{\textregistered}$$. Обладая производительностью лучшей, чем процессоры ARM1176JZ-S, при уровне энергопотребления и занимаемой площади ARM926EJ-S процессора, Cortex-A5 дает примерно двукратный прирост отношения "производительность/потребляемая мощность" по сравнению со своими популярными предшественниками.
(рис 8.4) Структурная схема процессора ARM Cortex-A5Производительность еще больше увеличивается в мультипроцессорной конфигурации Cortex-A5 MPCore $$\text{\textregistered}$$.
Процессор ARM Cortex-A5 основан на одноканальном 8-стадийном конвейере с улучшенным блоком предсказания ветвлений. Достигаемая производительность — 1.5 DMIPS/МГц.
Одиночный процессор включает в себя 8-уровневый целочисленный конвейер, модуль NEON, блок вычислений с плавающей точкой. Все блоки процессора оптимизированы по потребляемой мощности и занимаемой площади.
Сравнительные характеристики мультиядерных процессоров ARM
| Процессор |
Производительность ядра,DMIPS/МГц |
Относительное энергопотребление,мВт/МГц |
Рабочие частоты,МГц |
Размер кэша (инструкций/данных), байт |
| ARM11 MPCore |
1.0 |
0,23-0,43 |
320-620 |
16-64 К /16-64 К |
| ARM Cortex-A9 MPCore |
2,0-2,5 |
|
<2000 |
16-64 К /16-64 К |
| ARM Cortex-A5 MPCore |
1,5 |
0,12 |
480 |
4-64 К /4-64 К |
Процессоры изготавливаются по 40-нм технологии, рабочая частота — 480 МГц, занимаемая на кристалле площадь — 0,53 мм2 (без кэша — 0,27 мм2), размер кэша инструкций/данных — 16 Кбайт/16 Кбайт. Площадь, занимаемая процессором с кэшем и блоком расширения NEON — 0,68 мм2. Энергопотребление — 0,12 мВт/МГц. Показатель энергоэффективности — 13 DMIPS/мВт.
Сравнительные характеристики ARM-процессоров представлены в таблице 8.1
Краткие итоги
Мультиядерные процессоры ARM представляют довольно мощную и энергоэффективную платформу для широкого класса приложений. Эти процессоры обладают возможностями мультимедийной обработки данных, поддержкой ряда технологий уплотнения кода и управления питанием. Они базируются на высокопроизводительной системной шине AMBA
Целевая область применения: мобильные устройства и встраиваемые системы различного применения — мобильные телефоны, смартфоны, коммуникаторы, мультимедийные устройства. Архитектура процессоров обладает весьма привлекательными свойствами: удобная и эффективная система команд, мощная поддержка при разработке и сопровождении продукта, как аппаратной базы, так и программного обеспечения, высокая энергоэффективность.
Контрольные вопросы
Укажите основные общие черты мультиядерной технологии ARM.
Опишите структуру процессора ARM11 MPCore.
Опишите структуру мультиядерных процессоров Cortex-A MPCore.
Укажите отличия процессоров Cortex-A5 MPCore и Cortex-A9 MPCore.
Упражнения
Оцените пиковую производительность мультиядерных процессоров с ARM-ядрами.
Проследите тенденции развития архитектуры ARM в разрезе производительности, энергопотребления, памяти.