- Процесори з IP-ядрами ARM
- Загальна характеристика мультиядерних ARM-процесорів
- ARM11 MPCore
- Серія Cortex-A MPCore
Анотація: Лекція присвячена огляду мультиядерних процесорів однією з найбільш популярних на сьогоднішній день архітектур - 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 Гб / с для одиночного процесора.
Мал.8.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,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) - призначений для підтримки Портабельная програмного забезпечення та оптимізації межпроцессорного обміну.