Чим насправді різниця між серіями 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.