Мультиядерные процессоры
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
данных (64 бита)
Гх-
Шина контроля согласования кэшей
ЛД-
Блок отслеживания операций (Snoop Control Unit, SCU)
Системная шина АМВА З 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 Блок трассировки/ отладки
Процессорное ядро (Cortex-A5 или Cortex-A9) Процессорное ядро (Cortex-A5 или Cortex-A9) Процессорное ядро (Cortex-A5 или Cortex-A9) Процессорное ядро (Cortex-A5 или Cortex-A9)
Кэш инструкций Кэш данных Кэш инструкций Кэш данных Кэш инструкций Кэш данных Кэш инструкций Кэш данных
Блок контроля и распределения прерываний
Блок отслеживания операций (Snoop Control Unit, SCU) Блок ускорения согласования кэшей Accelerator Coherence Port (ACP)
Блок передачи данных между кэшами Фильтр слежения (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
Контроллер кэша второго уровня
Шинный интерфейс (ВШ) Блок защиты памяти {ЕСС RAMs)
| Первый интерфейс | | Второй интерфейс (с фильтрацией) |
т
Трассировщик
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.