Чим насправді різниця між серіями Cortex-M і Cortex-R?


25

Це цікаво! Я шукав знайти чітку статтю, але не зміг знайти чіткої статті для цього. Також я знайшов це посилання: ARM Cortex-R та це посилання: Cortex-R Series, але вони не зовсім зрозумілі. на сторінці вікі написав:

Сердечники призначені для надійного використання в режимі реального часу

і на сторінці Cortex-R написано:

Процесори реального часу ARM Cortex®-R пропонують високоефективні обчислювальні рішення для вбудованих систем, де необхідні надійність, висока доступність, толерантність, технічне обслуговування та реагування в режимі реального часу.

а це:

  1. Висока продуктивність: Швидка обробка в поєднанні з високою тактовою частотою
  2. У режимі реального часу: обробка відповідає різким обмеженням у реальному часі у будь-яких випадках
  3. Безпечний: Надійні, надійні системи з високою стійкістю до помилок
  4. Ефективність: Оптимальні для продуктивності, потужності та площі

Для першого номера: Наприклад, для Cortex-M, нещодавно NXP створив серію NXP_LPC4XXX, яка має тактову частоту 200 МГц, а для Cortex-R - це ви можете побачити: TMS570LS ARM Cortex ™ -R4 мікроконтролери , це смішно, оскільки має 180 МГц тактова частота.

Для другого числа: це зрозуміло.

Для номер три: Не зрозуміло! що означає це речення? значить, чи не Cortex-M безпечний / надійний?

Для номер п’ять: Ну, я думаю, це просто претензія!

Хто має досвід роботи над цією серією (Cortex-R)? Яка ваша думка з цього приводу? У чому полягає глибока та чітка різниця між серіями Cortex-M та Cortex-R?


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

3
re: пункт 1: цілком можливо, що Cortex-R вимагає меншої кількості тактових циклів для (деяких) операцій, тому продуктивність може бути не просто продиктована тактовою частотою. Вам потрібно буде вивчити детальні дані - або орієнтир обох систем ...
Брайан Драммонд

@BrianDrummond Я не згоден
Roh

5
@Roh Cortex-R може використовувати "класичний" набір інструкцій ARM, який включає деякі відносно складні інструкції (наприклад, shift і op) і передбачає окремі інструкції; Cortex-M надає лише IS на основі Thumb2, який використовує інструкцію If-then для передбачення інструкцій. Крім того, навіть при обмеженні відносно простих мікроархітектур продуктивність не пропорційна тактовій частоті.
Пол А. Клейтон

Відповіді:


17

Смішно, я використовую як на роботі :)

Cortex-M3 (ми використовуємо STM32) - це MCU загального призначення, який є швидким і великим (флеш-накопичувач), достатньо для більшості складних вбудованих додатків.

Однак R4 - це зовсім інший звір - принаймні, версія Texas Instruments, яку я використовую: RM42, подібно до TMS570. RM42 - це Cortex-R4 з двома ядрами, що працюють на "замкнутому кроці" для надмірності, а це означає, що одне ядро ​​на 2 вказівки попереду іншого та використовується для перевірки та виправлення помилок. Крім того, одне з ядер (фізично) дзеркально / перевернуто та повернуто на 90 градусів для поліпшення радіаційної / шумової стійкості :)

RM42 працює з більшою тактовою частотою, ніж STM32 (100 МГц проти 72 МГц), має дещо інший набір інструкцій і виконує деякі інструкції швидше, ніж M3 (наприклад, інструкції з поділу виконуються за один цикл на R4, не впевнені, що вони виконують на М3).

Таймери HW ДУЖЕ точні порівняно з Cortex-M3. Зазвичай нам потрібен статичний зсув для виправлення дрейфу на M3 - не так, як для R4 :)

Там, де я б назвав Cortex-M3 MCU загального призначення, я б назвав Cortex-R4 складним MCU в режимі реального часу / безпеки. Якщо я не помиляюся, RM42 сумісний з SIL3 ...

IMO R4 - це великий крок у складності, навіть якщо ви не плануєте реально використовувати функції реального часу / безпеки.

По-справжньому приємний приклад різниці складності: периферійний модуль SPI має 9 регістрів керування та статусу на STM32, тоді як RM42 має 42. Це так з усіма периферійними пристроями :)

Редагувати:

Для чого це варто, в моїх випадках використання Cortex-R4 при 100 МГц зазвичай на 50-100% швидше, ніж Cortex-M3 @ 72 МГц при виконанні точно таких же завдань. Може тому, що R4 має кеш даних та інструкцій?

Ще одне порівняння, кілька 1000 рядків коду С та ASM виконуються під час скидання перед тим, як досягти виклику main()з підмножиною функцій безпеки, якими я зараз користуюся: D, а не периферійна ініціалізація чи що-небудь, просто запуск та самотест (процесор, оперативна пам'ять, Flash ECC тощо).

На цій сторінці є детальніше


Наприклад, R4 контролюватиме гальмівну систему ABS або промислову машину, тоді як M3 контролюватиме щось не таке, як критичне для безпеки або місії
Morten Jensen

Чудова відповідь, але прокоментувати лише одне. Усі пристрої R4 в Техасі не мають кеш-пам'яті, вони використовують щільно пов'язану оперативну пам’ять, яка в основному є оперативною пам’яттю, яка, швидше за все, є дуже близькою до ядер. Я думаю, що вони зробили це через те, що кеші не підходять для цього типу систем (їм потрібна дуже детермінована система, щоб мати описану вами функцію в режимі реального часу .. або щось подібне)
morcillo

@morcillo дякую за ваш коментар. Мене спонукало вважати, що всі R4 мали кеш даних та інструкцій за цією діаграмою від ARM: arm.com/assets/images/Cortex-R4-chip-diagram-LG.png - ти знаєш, що з цього зробити? Я припускав D cacheі I cacheбули абревіатурами кешу даних та інструкцій.
Morten Jensen

Якщо говорити правду, я не знаю. Єдине, що я знаю, це те, що пристрої cortex R4, виготовлені інструментами TEXAS INSTRUMENTS, не мають кеш-пам'яті з причини, подібної до тієї, яку я вам сказав. Я читав це дуже давно. Можливо, вони це змінили або, можливо, я змішую 2 різних монстра, але, наскільки я пам’ятаю, у пристроїв R4 немає кешу (HALcogen не генерує ініціалізацію кешу). Можливо, я абсолютно помиляюся ... якщо мені, будь ласка, повідомте мене .. завжди добре дізнатися щось нове :)
morcillo

3

Сімейство ARM Cortex-R (v7-R)

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

Сімейство ARM Cortex-M (v7-M)

  • Різноманітні рішення для детермінованих програм мікроконтролерів.
  • Вони були розроблені в основному для домену мікроконтролерів, де потреба у швидкому, дуже детермінованому управлінні перериванням поєднується з прагненням до надзвичайно низького числа воріт та мінімально можливого споживання енергії.
  • Сімейство процесорів ARM Cortex ™ -M - це сукупний набір сумісних енергоефективних, простих у використанні процесорів, розроблених для того, щоб допомогти розробникам задовольнити потреби вбудованих завтрашніх програм. Ці вимоги включають в себе надання більшої кількості функцій з меншими витратами, підвищення рівня підключення, кращого використання коду та підвищення енергоефективності.

Інша відмінність, здається, полягає в тому, що Cortex-M підтримує лише набір інструкцій на основі Thumb2, а Cortex-R також може використовувати базовий / класичний (32-бітний) набір інструкцій. Це -R і -A поділяють посібник з архітектури (для v7), тоді як M має окремий ARManual, може мати певне значення.
Пол А. Клейтон

2

Приємна стаття тут .

Серії Cortex-R і cortex-M призначені для різних вимог і для різних застосувань. Важливо знати параметри та функції, які їх розділяють, оскільки там можуть бути додатки, куди вони можуть вміститися. Цей документ призначений для такого сценарію та допомагає дизайнерам у виборі. Кінцева мета - допомогти дизайнерам або розробникам зрозуміти архітектуру ARM.


Хоча добре мати посилання на цю цікаву статтю, вам слід хоча б спробувати узагальнити статтю у своїй відповіді.
AndrejaKo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.