Многоядерные процессоры

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

Показывать лекцию целиком

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