Was ist wirklich der Unterschied zwischen der Cortex-M-Serie und der Cortex-R-Serie?

25

Es ist interessant! Ich habe nach einem klaren Artikel gesucht, aber ich konnte keinen klaren Artikel dafür finden. Auch ich fand diesen Link: ARM Cortex-R und diesen Link: Cortex-R-Serie, aber sie sind nicht genau klar. in der wiki seite schrieb:

Die Kerne sind für den robusten Echtzeiteinsatz vorgesehen

und auf der Cortex-R Seite schrieb:

Die ARM Cortex®-R-Echtzeitprozessoren bieten Hochleistungs-Computing-Lösungen für eingebettete Systeme, bei denen Zuverlässigkeit, hohe Verfügbarkeit, Fehlertoleranz, Wartbarkeit und Echtzeitreaktionen erforderlich sind.

und diese:

  1. Hohe Leistung: Schnelle Verarbeitung bei hoher Taktfrequenz
  2. Echtzeit: Die Verarbeitung erfüllt bei allen Gelegenheiten harte Echtzeitanforderungen
  3. Sicher: Zuverlässige und zuverlässige Systeme mit hoher Fehlerresistenz
  4. Kostengünstig: Merkmale für optimale Leistung, Leistung und Fläche

Für Nummer eins: Zum Beispiel für den Cortex-M hat der NXP kürzlich die NXP_LPC4XXX-Serie mit einer Taktrate von 200 MHz hergestellt, und für den Cortex-R können Sie Folgendes sehen: TMS570LS ARM Cortex ™ -R4-Mikrocontroller , lustig, weil er 180 MHz hat Taktfrequenz.

Für Nummer zwei: Es ist klar.

Für Nummer drei: Es ist nicht klar! Was bedeutet dieser Satz? Bedeutet das, dass Cortex-M nicht sicher / zuverlässig ist?

Zu Nummer fünf: Nun, ich denke, es ist nur ein Claim!

Wer hat die Erfahrung, mit dieser Serie (Cortex-R) zu arbeiten? Was ist deine Meinung dazu? Was ist der tiefgreifende und genaue Unterschied zwischen der Cortex-M-Serie und der Cortex-R-Serie?

Roh
quelle
Diese Aufzählungspunkte sollten, wie die Aufzählungspunkte auf jedem Datenblatt, immer nur als Marketingmaterial betrachtet werden.
Scott Seidman
3
Zu Punkt 1: Es ist durchaus möglich, dass der Cortex-R für (einige) Operationen weniger Taktzyklen benötigt, sodass die Leistung möglicherweise nicht einfach durch die Taktrate bestimmt wird. Sie müssten detaillierte Daten studieren - oder beide Systeme vergleichen ...
Brian Drummond
@ Brian Drummond Ich bin nicht einverstanden
Roh
5
@Roh Cortex-R kann den "klassischen" ARM-Befehlssatz verwenden, der einige relativ komplexe Befehle (z. B. shift und op) enthält und einzelne Befehle aussagt. Cortex-M stellt nur einen Thumb2-basierten IS bereit, der eine If-Then-Anweisung verwendet, um Anweisungen zu prädizieren. Darüber hinaus ist die Leistung selbst dann nicht proportional zur Taktrate, wenn sie auf relativ einfache Mikroarchitekturen beschränkt ist.
Paul A. Clayton

Antworten:

17

Komisch, ich benutze beide bei der Arbeit :)

Der Cortex-M3 (wir verwenden STM32s) ist eine Allzweck-MCU, die schnell und groß (Flash-Speicher) genug für die meisten komplexen Embedded-Anwendungen ist.

Der R4 ist jedoch ein ganz anderes Biest - zumindest die von mir verwendete Version von Texas Instruments: der RM42, ähnlich dem TMS570. Der RM42 ist ein Cortex-R4 mit zwei Kernen, die aus Redundanzgründen im "Lock-Step" -Verfahren ausgeführt werden. Dies bedeutet, dass ein Kern zwei Anweisungen vor dem anderen liegt und für einige Fehlerprüfungen und -korrekturen verwendet wird. Außerdem ist einer der Kerne (physisch) gespiegelt und um 90 Grad gedreht, um die Strahlungs- / Rauschresistenz zu verbessern :)

Der RM42 läuft mit einer höheren Taktrate als der STM32 (100MHz gegenüber 72MHz) und verfügt über einen etwas anderen Befehlssatz. Einige Befehle werden schneller ausgeführt als der M3 (z. B. Divisionsbefehle werden in einem Zyklus auf dem R4 ausgeführt, nicht sicher, ob sie ausgeführt werden) M3).

HW-Timer sind im Vergleich zu Cortex-M3 SEHR genau. Normalerweise benötigen wir einen statischen Offset, um die Drift auf den M3s zu korrigieren - nicht so beim R4 :)

Wo ich eine Cortex-M3 als Allzweck-MCU bezeichnen würde, würde ich die Cortex-R4 als komplexe Echtzeit- / Sicherheits-MCU bezeichnen. Wenn ich mich nicht irre, ist der RM42 SIL3-konform ...

IMO the R4 ist ein großer Komplexitätssprung, auch wenn Sie nicht vorhaben, die Echtzeit- / Sicherheitsfunktionen tatsächlich zu nutzen.

Ein wirklich schönes Beispiel für den Komplexitätsunterschied: Das SPI-Peripheriegerät verfügt über 9 Steuer- und Statusregister auf dem STM32, während das RM42 über 42 verfügt. So ist es mit allen Peripheriegeräten :)

BEARBEITEN:

In meinen Anwendungsfällen ist der Cortex-R4 bei 100 MHz normalerweise 50 bis 100% schneller als der Cortex-M3 bei 72 MHz, wenn genau dieselben Aufgaben ausgeführt werden. Vielleicht weil der R4 Daten- und Anweisungs-Caches hat?

Ein weiterer Vergleich: Einige 1000 Zeilen C- und ASM-Code werden beim Zurücksetzen ausgeführt, bevor der Aufruf main()mit der Untergruppe der Sicherheitsfunktionen erfolgt, die ich derzeit verwende: D und nicht die Peripherie-Initialisierung oder etwas anderes, nur Start und Selbsttest (CPU, RAM, Flash ECC usw.).

Diese Seite enthält weitere Details

Morten Jensen
quelle
ZB würde er R4 ein ABS-Bremssystem oder eine Industriemaschine steuern, während der M3 etwas steuern würde, das nicht sicherheits- oder geschäftskritisch ist
Morten Jensen
Tolle Antwort, aber nur eine Sache zu kommentieren. Alle R4-Geräte in Texas haben keinen Cache, sondern einen eng gekoppelten Arbeitsspeicher. Dies ist im Grunde genommen ein Arbeitsspeicher, der nicht nur schnell ist, sondern auch den Kernen sehr nahe kommt. Ich denke, sie haben das getan, weil Caches für diese Art von Systemen nicht gut sind (sie benötigen ein sehr deterministisches System, um die von Ihnen beschriebene Echtzeitfunktion zu haben .. oder so ähnlich)
morcillo
@ Morcillo vielen Dank für Ihren Kommentar. Ich wurde durch dieses Diagramm von ARM zu der Annahme gebracht, dass alle R4 Daten- und Anweisungs-Caches hatten: arm.com/assets/images/Cortex-R4-chip-diagram-LG.png - wissen Sie, was Sie davon halten sollen? Ich nahm an D cacheund I cachewar Abkürzungen für Daten- und Anweisungs-Cache.
Morten Jensen
Um die Wahrheit zu sagen, ich weiß es nicht. Ich weiß nur, dass die R4-Geräte von Cortex MADE BY TEXAS INSTRUMENTS aus einem ähnlichen Grund wie dem, den ich Ihnen gesagt habe, keinen Cache haben. Ich habe es vor langer Zeit irgendwo gelesen. Vielleicht haben sie das geändert oder ich vertausche 2 verschiedene Monster, aber soweit ich mich erinnere, haben die R4-Geräte keinen Cache (HALcogen generiert keine Cache-Initialisierung). Ich kann völlig falsch sein ... wenn ich bitte lass es mich wissen .. immer gut, etwas Neues zu lernen :)
Morcillo
3

ARM Cortex-R-Familie (v7-R)

  • Außergewöhnliche Leistung für Echtzeitanwendungen.
  • Prozessoren wurden für tief eingebettete Echtzeitanwendungen entwickelt, bei denen der Bedarf an geringem Stromverbrauch und gutem Interrupt-Verhalten mit außergewöhnlicher Leistung und starker Kompatibilität mit vorhandenen Plattformen in Einklang gebracht wird.
  • ARM Cortex®-R-Echtzeitprozessoren bieten Hochleistungs-Computing-Lösungen für eingebettete Systeme, bei denen Zuverlässigkeit, hohe Verfügbarkeit, Fehlertoleranz, Wartbarkeit und Echtzeitreaktionen erforderlich sind.

ARM Cortex-M-Familie (v7-M)

  • Kostensensitive Lösungen für deterministische Mikrocontroller-Anwendungen.
  • Wurden in erster Linie für den Mikrocontroller-Bereich entwickelt, in dem das Erfordernis eines schnellen, hoch deterministischen Interrupt-Managements mit dem Wunsch nach extrem geringer Gate-Anzahl und geringstmöglichem Stromverbrauch einhergeht.
  • Die ARM Cortex ™ -M-Prozessorfamilie ist eine aufwärtskompatible Reihe energieeffizienter, benutzerfreundlicher Prozessoren, mit denen Entwickler die Anforderungen der Embedded-Anwendungen von morgen erfüllen können. Diese Anforderungen umfassen die Bereitstellung von mehr Funktionen zu geringeren Kosten, die Erhöhung der Konnektivität, eine bessere Wiederverwendung von Code und eine verbesserte Energieeffizienz.
Giovani Mendes
quelle
Ein weiterer Unterschied scheint darin zu liegen, dass Cortex-M nur einen auf Thumb2 basierenden Befehlssatz unterstützt, während Cortex-R auch den einfachen / klassischen Befehlssatz mit fester Länge (32 Bit) verwenden kann. Dass -R und -A ein Architektur-Referenzhandbuch (für v7) gemeinsam verwenden, während M ein separates ARManual hat, könnte eine gewisse Bedeutung haben.
Paul A. Clayton
2

Hab einen guten Artikel über hier .

Die Cortex-R- und Cortex-M-Serien richten sich an unterschiedliche Anforderungen und Anwendungen. Es ist wichtig, die Parameter und Funktionen zu kennen, die sie voneinander trennen, da es Anwendungen geben kann, in die beide passen. Dieses Dokument richtet sich an ein solches Szenario und hilft den Designern bei der Auswahl. Das letzte Ziel besteht darin, den Designern oder Entwicklern zu helfen, die Architekturen von ARM besser zu verstehen.

Butzke
quelle
Es ist zwar gut, einen Link zu diesem interessanten Artikel zu haben, aber Sie sollten zumindest versuchen, den Artikel in Ihrer Antwort zusammenzufassen.
AndrejaKo