Статьи

Введення в архітектуру Cortex-M3. Частина 1

Односкрісталльние рішення, виконані на основі вбудованих ARM-процесорів знаходять своє застосування в самих різних областях ринку, включаючи такі ресурсомісткі сегменти як корпоративні додатки, автомобільні системи, домашні та бездротові мережеві технології і багато інших героїв.

Сімейство процесорів на базі архітектури ARM Cortex забезпечують необхідні ресурси для вирішення такого широкого кола завдань.

Сімейство процесорів Cortex включає в себе три основних підродини архітектури ARMv7: підродина А для дуже ресурсномістких додатків, які виконуються під управлінням складних операційних систем; підродина R для застосування в системах реального часу; і підродина М, оптимізованого для застосування в недорогих вбудованих додатків. Процесори сімейства Cortex-M3 - перші ARM процесори, що базується на архітектурі ARMv7-М, які були спеціально спроектовані для досягнення високої продуктивності всієї системи в недорогих високоекономічних вбудованих додатках, таких як, наприклад, системи промислового контролю, автомобільна електроніка, провідні та безпровідні телекомунікаційні системи , системи керування електроприводами і т.п. Для досягнення цієї мети було внесено безліч змін в базову архітектуру, зокрема, істотно спрощено процес створення програмного коду, що зробило рентабельним застосування процесорів на базі архітектури Cortex-M3 навіть в найпростіших додатках. Для збільшення продуктивності системи, процесори повинні працювати або з більш високою тактовою частотою або використовувати більш витончені методи збільшення ефективності обчислень. Підвищення тактової частоти в принципі може збільшити продуктивність, але в той же час збільшує енергоспоживання і складність застосування. З іншого боку, підвищення ефективності обчислень при більш низькій тактовій частоті значно більш переважно. В основі процесора на базі архітектури Cortex-M3 лежить ядро, виконане по Гарвардської технології з 3-ступінчастим конвеєром, що забезпечує такі привабливі можливості, як пророцтво переходів, однотактной множення і вбудоване розподіл, що забезпечує продуктивність близько 1.25 MIPS / МГц (в тесті Drystone).

У процесорах Cortex-M3 реалізований новий набір команд Thumb -2, що дозволяє досягти на 70% більшої продуктивності на мегагерц, ніж класичні ARM процесори на базі ARM7TDMI-S, що використовують класичний набір команд Thumb, і на 35% більше продуктивності, ніж ті ж процесори, що виконують базовий набір команд ARM (за даними того ж тіста Drystone).

Скорочення часу виходу кінцевого продукту на ринок і зниження витрат на розробку є найважливішими критеріями при виборі процесора, точно так само як можливість швидко та легко створювати програмний код є одним з ключових вимог в цьому питанні.

Процесори на базі архітектури Cortex-M3 розроблялися з метою забезпечити якомога більш швидке і просте створення ефективного програмного коду без використання ассемблерних вставок, при цьому від програміста не повинно було бути потрібним дуже глибокого знання особливостей архітектури процесора для створення додатків середньої складності. Дані процесори використовують спрощену стекову модель програмування, в якій вдалося поєднати стандартні команди ARM з кілька переробленими і адаптованими до ядра ARM ідеями, що застосовувалися в 8- і 16-розрядних мікроконтролерах, що довели свою високу ефективність. У той же час вбудоване управління переривань дозволяє створювати дуже прості обробники переривань без використання ассемблерних вставок або яких-небудь маніпуляцій з регістрами.

Новій, ключовою особливістю системи команд Thumb-2 є більш ефективна реалізація компілятора мови С з можливістю операцій з бітами і бітовими полями, апаратним розподілом і більш ефективною реалізацією конструкцій умов типу if / then. З точки зору розробника програмного коду, процесори з набором команд Thumb-2 дозволяють створювати код набагато швидше, простіше й ефективніше. Більш того, при використанні набору команд Thumb-2 і відповідного компілятора, більше не доведеться робити болісний вибір між оптимізацією коду за швидкістю або за обсягом - в нових компіляторах можлива оптимізація як за обсягом, так і за швидкістю. Це ще більше прискорює процес розробки програмного коду, так як тепер програмістам немає потреби заздалегідь компілювати критичні ділянки коду і прілінковивают їх до основної програми у вигляді бібліотек.

Постійним обмеженням в застосуванні більш продуктивних процесорів є їх вартість. Сучасні технології виробництва є дорогими і тому вирішальним моментом у зменшенні вартості процесора є площа його кристала. Процесори, виконані за технологією Cortex-M3 використовують найменше ядро ​​ARM на сьогоднішній день, що містить всього 33 тисячі вентилів, виконані по 0.18 мкм технології, і зменшені до розумних розмірів периферійні модулі. Вимоги ядра обсягу пам'яті також мінімізовані за рахунок впровадження технологій зберігання невирівняні даних, бітових операцій і системи команд Thumb-2.

Ефект від цих нововведень виражається в більш ніж 25% зниження вимог до пам'яті в порівнянні з класичними ARM процесорами. Порівняльні графіки продуктивності і обсягу коду в різних областях застосування наведені відповідно на рис. 1 і 2.

Рис
Рис.1 Порівняння продуктивності процесорів ARM7DTMI і Cortex-M3 в різних додатках

Мал
Мал. 2. Порівняння необхідного обсягу коду для процесорів ARM7DTMI і Cortex-M3 в різних додатках

Останнім часом процесори на основі технології ARM знайшли найширше застосування в безлічі вбудованих додатків. Процесори на основі архітектури CortexM3 є подальшим і найбільш прогресивним розвитком класичної архітектури ARM і, по всій видимості, стануть найбільш популярними в самий найближчий час за рахунок більш високої продуктивності, менш складною моделі програмування, прекрасної системи обробки переривань і низької ціни. Деякі переваги процесорів на базі архітектури Cortex-M3 перед процесорами на базі класичної архітектури наведені в табл. 1.

Таблиця 1. Порівняння ядер ARM7TDMI-S і Cortex-M3

ПараметрЯдроARM7TDMI-SCortex-M3

Ядро ARMv4T ARMv7-M Архітектура фон Неймана Гарвардська Підтримувані системи команд Thumb Thumb / Thumb-2 Переривання FIQ / IRQ NMI + від 1 до 240 фізичних переривань Час обробки переривання 24..42 тактів 12 тактів Покроковий режим немає Інтегрований Захист пам'яті немає 8 регіональних механізмів захисту пам'яті Продуктивність 0.95 DMIPS / МГц (в режимі ARM) 1.25 DMIPS / МГц потужність 0.28 мВт / МГц 0.19 мВт / МГц Площа кристала, мм2 0.62 (тільки ядро) 0.86 (ядро і стандартна периферія)

Заяви, подібні наведеним вище, можуть на перший погляд здатися голослівними і необгрунтованими. В цьому випадку є сенс ближче познайомитися з архітектурою Cortex-M3.

Процесор на базі архітектури Cortex-M3 в своїй основі має ієрархічну структуру. Вона включає в себе ядро ​​CM3Core з розвиненою периферією, що включає в себе механізми управління переривань, захисту пам'яті і внутрішньосхемною налагодження та інші. Цей набір має прекрасну конфигурируемого, що дозволяє застосовувати цей процесор для вирішення широкого спектра завдань і найбільш повно відповідати вимогам, що висуваються до нього. Ядро Cortex-M3 і інтегровані в нього компоненти (рис. 3) створені з урахуванням вимог до мінімізації необхідного обсягу пам'яті і споживання енергії.

Мал
Мал. 3. Блок-схема ядра Cortex-M3

Ядро Cortex-M3 базується на Гарвардської архітектури та має роздільні шини для команд і для даних на відміну від стандартних ARM процесорів, що використовують фон Неймановская архітектуру і суміщені шину і пам'ять як для даних, так і для команд.

Оскільки процесори Cortex-M3 зчитують дані і команди одночасно, це дозволяє виробляти деякі операції одночасно і таким чином істотно підвищити продуктивність системи.

Вбудований в ядро ​​конвеєр має три стадії роботи: вибірка команди, декодування команди, виконання команди. Для випадків, коли в конвеєрі декодируется команда переходу, на стадії декодування також проводиться вибірка інструкції пророкування переходу, що також призводить до прискорення виконання програми. Процесор вибирає команду призначення переходу під час власне стадії декодування. Пізніше, на стадії виконання команд, перехід дозволяється і до цього моменту вже відомо, яка команда буде наступною. У разі, якщо перехід не здійснюється, наступна послідовність команд і так вже доступна. У разі ж, якщо перехід відбувається, команда переходу стає доступною в той же час, коли власне перехід і дозволяється, таким чином зводячи час простою до єдиного такту.

Ядро процесора Cortex-M3 містить декодер для традиційної системи команд Thumb і для нової системи Thumb-2, вдосконалене АЛУ з підтримкою апаратного множення і ділення, що управляє логікою і інтерфейсами до інших компонентів системи.

Процесор на базі архітектури Cortex-M3 являє собою 32-розрядний процесор з 32-розрядними шиною даних, банком регістрів і інтерфейсом з пам'яттю. Він містить 13 регістрів загального призначення, два покажчика стека, регістр зв'язків, лічильник команд, регістр статусу і безліч спеціальних регістрів.

Процесор на базі архітектури Cortex-M3 підтримує два режими роботи, Thread і Handler, а також два рівня доступу до коду (привілейований і непривілейований), що дозволяють створювати складні відкриті і при цьому не жертвувати безпекою. Непривілейований рівень доступу обмежує або повністю забороняє доступ і використання деяких ресурсів типу певних команд або областей пам'яті. Режим Thread є стандартним режимом роботи і підтримує розподіл рівнів доступу, тоді як режим Handler включається лише в деяких випадках і весь код отримує привілейований рівень доступу.

В наступних частинах статті ми детально розглянемо принципи розподіл пам'яті, операції з битами, переваги системи команд Thumb-2 перед стандартною системою команд Thumb, роботу контролера переривань, модуля захисту пам'яті, контролерів шин і інтерфейсів. Також будуть розглянуті принципи зберігання невирівняні даних в пам'яті, режими енергозбереження і, власне, розглянемо основні сімейства процесорів на базі архітектури Cortex-M3.

chipnews.ru

Новости