<
  • Главная
Статьи

Розвиток ARM-ядер: можливості та продуктивність

  1. Про компанію ST Microelectronics

Про новому ядрі   ARM Cortex-M3 являє собою одну з реалізацій архітектури ARM7v

Про новому ядрі

ARM Cortex-M3 являє собою одну з реалізацій архітектури ARM7v. Це новітня версія ядра ARM для вбудованих додатків. Ядро засноване на гарвардської архітектурі і використовує роздільні шини доступу до даних і до команд (на відміну від Фон-неймановской архітектури, де дані і команди «ділять між собою» одну шину). Гарвардська архітектура спочатку дозволяє досягти максимальної продуктивності, і, не дивлячись на те, що фізично дана архітектура складніше, із закону Мура слід, що ускладнення архітектури виправдано завжди, коли дане ускладнення призводить до збільшення продуктивності.

Мета Cortex-M3 - зайняти ринок вбудованих систем. Це ядро ​​створено як «дуже низькоспоживаючі», при цьому володіє відмінним співвідношенням «ціна-продуктивність». Основними областями застосування даних контролерів є автоелектроника і бездротові додатки. Як і у випадку з усіма ядрами від компанії ARM, багато великих виробників вже купили ліцензію на нову версію перспективного контролера і приступили до її реалізації. Деякі з компаній вже випустили власні продукти (STMicroelectronics, NXP, Luminary Micro). Для нової платформи існує і активно розвивається цілий ряд програмно-апаратних засобів, що вийшли прямо з екосистеми ARM7TDMI, це дозволяє новим користувачам швидко освоювати даний контролер.

Інша ядро ​​ARM, орієнтоване на той же ринок, - ядро ​​ARM7TDMI (і ARM7TDMI-S). Воно було випущено більше 10 років тому і вивело компанію ARM на домінуючу позицію в розробках процесорних ядер. Безліч виробників (близько 20) розробляють і продають мікроконтролери на базі ARM7. Також вражає кількість програмних засобів розробки і налагоджувальних пристроїв. Завдяки своїм якостям і масовості, ARM7TDMI прийнято вважати робочою конячкою сучасного світу вбудованих пристроїв.

Мал. 1. Блок-схема STM32

відмінності

Крім того, що Cortex-M3 використовує гарвардську архітектуру, це, в першу чергу, більш оптимізоване зменшене базове ядро, завдяки чому поряд із зменшенням ціни збільшується швидкість роботи. В ядро ​​інтегровані контролер переривань, шинна матриця і налагоджувальні модулі. Крім того, інтегрований модуль управліннями режимами енергозбереження (sleep mode). Дане ядро ​​розроблено тільки для роботи з вдосконаленим набором інструкцій THUMB-2, що дозволяє звести до мінімуму використання асемблера.

набір інструкцій

Як вже було сказано, нове Мікроконтроллерні ядро ​​Cortex-M3 було створено тільки для роботи з інструкціями THUMB-2, на відміну від вихідного ARM7, з яким можна працювати як в ARM-, так і в THUMB-режимах. Переваги даного нововведення:

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

переривання

Наступне нововведення Cortex-M3 - це вбудований векторний контролер вкладених переривань (NVIC- Nested Vector Interrupt Controller). На відміну від зовнішнього контролера переривань, який присутній в ARM7TDMI, контролер, інтегрований в ядро ​​Cortex-M3, може забезпечувати від 32 фізичних переривань з 8 рівнями пріоритету до 240 переривань з 256 рівнями пріоритету (в залежності від реалізації конкретним виробником мікроконтролера). Завдяки цьому час входу в переривання досить мало і завжди детерміновано, що дозволяє використовувати дані контролери в автомобільних та інших відповідальних додатках реального часу.

NVIC використовує стекову модель роботи. Програмний лічильник (program counter), регістр статусу програми (program status register), регістр зв'язку (link register) і регістри загального призначення - все завантажуються в стек при вході в обробник переривань. Після виходу з обробника вміст регістрів відновлюється. Тому вже немає необхідності працювати вручну зі стеком в асемблерному коді для збереження даних на вході в обробник переривань і виході з нього.

Обробники можуть бути розставлені по пріоритетах з метою забезпечення негайного виконання певного переривання, навіть якщо в цей час виконується якесь інше (з нижчим пріоритетом). Пріоритети можуть змінюватися за потребою в будь-якому місці програми. Використання техніки tail-chain дозволяє не виконувати довготривалі операції pop-push при послідовному виконанні декількох переривань, а просто при закінченні циклу одного обробника - «перестрибувати» на початок наступного. І це займає всього лише 3 такту замість 32 для повного циклу pop-push. Все це дозволяє скоротити затримки і збільшити продуктивність.

Якщо NVIC в даний конкретний момент зберігає дані в стек (перед тим як приступити до обробки переривання), і в цей час приходить запит на переривання з більш високим пріоритетом, то все, що потрібно, щоб почати виконання цього переривання - защелкивание нового адреси вектора. Аналогічно, якщо NVIC в даний момент проводить відновлення зі стека, то ця операція буде припинена, і процесор приступить до виконання нового переривання. Це також сприяє зменшенню часу затримок і забезпечує передбачуваність часу входу в переривання.

режими сну

Схема керування живленням ядра Cortex-M3 передбачає наступні режими енергозбереження: Sleep Now, Sleep on Exit (по виходу з останнього в черзі переривання) і SLEEPDEEP режим.

Для зручності отримання регулярного тимчасового інтервалу NVIC містить інтегрований системний таймер, який може бути використаний як тактовий сигнал для операційних систем реального часу (RTOS) або як пробуджує сигнал для виконання чергових завдань (scheduled tasks). Наявність цієї можливості - одне з головних відмінностей від попередніх ARM-архітектури.

Модуль захисту пам'яті

Модуль захисту пам'яті є опціональним і залежить від реалізації мікроконтролера конкретним виробником. Якщо даний модуль вбудований, то він дозволяє зв'язати певні ділянки пам'яті з певними процесами в додатку і визначає правила управління доступом з інших процесів. Наприклад, частина пам'яті може бути повністю заблокована для всіх програмних процесів, в той час як деякі інші ділянки пам'яті можуть бути доступні тільки для читання при виконанні певних процесів. Також виконання програми може бути призупинено при спробі звернення до будь-якої область пам'яті. Все це забезпечує істотне поліпшення надійності роботи програми, особливо в додатках реального часу.

налагодження

Інтегрований debug модуль і «trace Debug Access Port» можуть бути реалізовані або на двухпроводном «Serial Wire Debug Port» або на Serial Wire JTAG Debug Port. Спільно з модулем точок зупину (Breakpoint unit), модулем стеження за даними (Data Watchpoint), модулем відстеження (Trace unit), модулем редагування Flash, а також опціональним наявністю деяких інших блоків, це дозволяє вирішувати широкий спектр завдань на рівні налагодження програми і спостереженні за поведінкою ядра. Більшість цих модулів налагодження вже були вбудовані в ARM-архітектури, проте в Cortex-M3 всі вони реалізовані одночасно, що дає розробнику широкі можливості для втілення його ідей.

рівень інтеграції

Незважаючи на те, що ARM7-ядра не мають такого ступеня інтеграції, як ядра сімейства Cortex, в даний час на ринку присутня найширший ряд мікроконтролерів на базі ядра ARM7 з багатющою периферією, що дозволяє трансформувати даний контролер з сегмента загального призначення в вузько-профільний мікроконтролер або навіть систему на кристалі. І в цьому сенсі можна виділити не менше 150 різних мікроконтролерів на ядрі ARM7.

Для абсолютної більшості вбудованих додатків практично завжди можна знайти ARM7-реалізацію, яка в тій чи іншій мірі була б «заточена» саме під цю конкретну задачу. До стандартного ядра виробник мікросхеми зазвичай додає різну пам'ять, периферію, таку як контролери послідовних шин, контролери пам'яті, графічні контролери і т. Д. Контролери випускаються в різних корпусах, для будь-якої складності роботи: для промислового застосування, для установки в автомобілі, а також - зі здатністю працювати в розширеному температурному діапазоні. Мікроконтролери також можуть включати в себе встановлені програмні пакети, такі як TCP / IP-стек або ще більш специфічне програмне забезпечення.

Наприклад, лінія продуктів STR7 (від STMicroelectronics) має 3 головних сімейства розвитку з більш ніж 45 різними продуктами на базі ядра ARM7 (в різних корпусах, з різною кількістю пам'яті і т.д.). Кожне сімейство має свій набір периферії, призначений для спеціальних завдань. Скажімо, гілка STR730 розроблена з урахуванням того, що вона буде застосовуватися в промислових і автомобільних додатках: вона має розширений діапазон робочих температур, велика кількість портів введення / виводу, 3 CAN-інтерфейсу. У той же час сімейство STR710 націлене на споживчий ринок, а також на ринок складного промислового устаткування і містить безліч інтерфейсів: CAN, USB, ISO7816, кілька UART, і, не дивлячись на наявність зовнішнього інтерфейсу пам'яті, - великий об'єм вбудованої ОЗУ і Flash.

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

інструментарій

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

Більшість таких виробників випускають налагоджувальні плати, забезпечуючи їх в першу чергу інтерфейсом по завантаженню програмного коду, а також різної корисної периферією: LCD-дисплеями, світлодіодами, кнопками і т. Д. Більш дорогі налагоджувальні плати комплектуються інтегрованим середовищем розробки (IDE), що включає в себе компілятор, линкер, дебагер і інші програмні засоби розробки. Крім того, такі комплекти можуть містити JTAG-адаптер.

З іншого боку, багато компаній випускають програмні засоби розробки: від програм візуального моделювання алгоритмів до компіляторів різних мов програмування. Сучасні середовища розробки підтримують також операційні системи (RTOS) для зручності налагодження ПО.

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

Для Cortex-M3 вже сформувалася певна база засобів розробки, але поки ще не настільки досконала, як для ARM7.

Що ж вибрати?

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

Інтегровані в ядро ​​модулі налагодження, набір інструкцій THUMB-2 прискорюють освоєння контролера і дозволяють в найкоротші терміни вивести новий продукт на ринок. Cortex-M3 - легше і швидше ARM7TDMI.

Останнім часом цілий ряд великих виробників почав випуск контролерів на Cortex-M3, а багато фірм вже придбали ліцензії на їх майбутнє виробництво.

Перекласти готовий дизайн зі старого ядра ARM7TDMI на новий Cortex-M3 - не дуже складне завдання. Однак же, якщо розробка була розрахована на ARM7TDMI, а часу для адаптації під інше ядро ​​вже не залишилося, то можна порекомендувати не використовувати специфічні можливості старого процесора. Це дасть можливість спрощеного і більш швидкого переходу на нове ядро ​​в майбутньому.

література

1. ftp://ftp.iar.se/WWWfiles/Viewpoints/Choosing_an_ARM_Processor.pdf

2. http://infocenter.arm.com/help/topic/com.arm.doc.ddi0337e/DDI0337E_cortex_m3_r1p1_trm.pdf

3. http://www.standardics.nxp.com/products/lpc1000/

4. http://www.st.com/mcu/inchtml-pages-stm32.html

5. http://mcu.compel.ru/mcu_list.php?clear=ps&CORE_TYPE=Cortex-M3 .

Отримання технічної інформації, замовлення зразків, поставка -
e-mail: [email protected]

Про компанію ST Microelectronics

Компанія STMicroelectronics є №1 виробником електроніки в Європі Компанія STMicroelectronics є №1 виробником електроніки в Європі. Компоненти ST широко представлені в оточуючих нас споживчих товарах - від iPhone до автомобілів різних марок. Лідери індустріального ринку вибирають компоненти ST за їх надійність і видатні технічні параметри. У компанії ST працює 48 000 співробітників в 35 країнах. Виробничі потужності розташовані в 12 країнах світу. Понад 11 тисяч співробітників зайняті дослідженнями і розробками - інноваційне лідерство ... читати далі

Php?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью