Лекция 8: Мультиядерные процессоры ARM-архитектуры
Процессоры с IP-ядрами ARM
Процессоры с ядрами ARM на данный момент являются достаточно популярными для мобильных устройств и встраиваемых систем различного применения. Самые массовые из них — это мобильные телефоны, смартфоны, коммуникаторы, мультимедийные устройства. Архитектура обладает такими привлекательными свойствами, как удобная и эффективная система команд, мощная поддержка при разработке аппаратной базы и программного обеспечения, высокая энергоэффективность. Относительно недавно было заявлено о разработке мультиядерной архитектуры на базе ARM, что открывает данным процессорам путь на рынок высокопроизводительных приложений. В частности, одно из возможных применений — ноутбуки, сравнимые, а то и превосходящие их аналоги на архитектуре х86.
На данный момент компанией ARM представлены три мультиядерные архитектуры: ARM11 MPCore , Cortex-A9 MPCore и Cortex-A5 MPCore . Каждая из этих архитектур может масштабироваться от одного до четырех процессорных ядер (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 MPCore [48] поддерживает микроархитектуру ARM11 и может содержать от одного до четырех процессоров ( рис. 8.1), достигая производительности до 2600 DMIPS; имеет расширенную полосу пропускания памяти порядка 1,3 Гб/с для одиночного процессора.
Процессоры 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,77 мм2;
- размер кэша — 16 Кбайт / 16 Кбайт;
- потребляемая мощность — 0,23-0,43 мВт/МГц (без кэша — 0,180,37 мВт/МГц).
Занимаемая ядром площадь, диапазон рабочих частот и потребляемая мощность зависят от использованного при реализации технологического процесса, библиотек компонентов и оптимизации. Приведенные числа получены при следующих условиях производства: технологический процесс — TSMC; стандартный набор библиотек компонентов — ARM Artisan.
Серия Cortex-A MPCore
Процессоры семейства Cortex-A MPCore [49-50-51] — Cortex-A5 MPCore и Cortex-A9 MPCore — помимо небольшой занимаемой площади и энергоэффективности обладают богатым арсеналом возможностей и функциональностью архитектуры ARMv7, что в итоге дает высокую производительность и низкое энергопотребление, как на специфических прикладных приложениях, так и для устройств общего плана. Поддерживается также технология Thumb -2, обеспечивающая высокую производительность при одновременном уменьшении размера кода на 30%.
Процессоры, входящие в состав мультипроцессоров Cortex-A MPCore , имеют блок операций с плавающей точкой, способный выполнять операции с одинарной и двойной точностью. Он обладает примерно вдвое большей производительностью, чем предыдущие версии ARM FPU.
Архитектура ARM Cortex-A5/A9 ( рис. 8.2) имеет мультимедийное 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 — для снижения задержек в устройствах с высокими требованиями к полосе пропускания.
Компоненты Program Trace Macrocell и CoreSight Design Kit позволяют разработчику отслеживать выполнение программы либо с сохранением истории выполнения в буфер кристалла, либо с выдачей ее через стандартный отладочный интерфейс, что весьма упрощает процесс разработки и отладки программ.
Технология Multicore TrustZone имеет виртуализацию прерываний для аппаратной поддержки защиты данных и расширенных возможностей решений по виртуализации приложений.
Общий контроллер прерываний — Generalized Interrupt Controller (GIC) — предназначен для поддержки портабельности программного обеспечения и оптимизации межпроцессорного обмена.