Arm Cortex-R
# Arm Cortex-R

Arm Cortex-R (in älterer Schreibweise ARM Cortex-R) ist eine Familie von 32-Bit Prozessoren, aufgebaut als ein Reduced Instruction Set Computer (RISC), basierend auf der Armv7-Architektur. Arm Cortex-R sind in der Anwendung auf harte Echtzeitanforderungen ausgelegt, werden üblicherweise mit einem auf die Anwendung optimierten Echtzeitbetriebssystem (RTOS) betrieben und finden unter anderem in sicherheitskritischen Anwendungen wie Steuergeräten zu Airbags oder Motorsteuerungen Anwendung. Weitere Anwendungsbereiche von Cortex-R liegen im Datendurchsatz optimierten Anwendungen wie den Steuereinheiten auf Festplatten und Solid-State-Drives.

Die von der Firma ARM Limited entwickelten IP-Cores werden für die jeweiligen Anwendung von verschiedenen Lizenznehmern übernommen, wie dies auch bei anderen ARM-Cores der Fall ist, und dann vom Lizenznehmer um zusätzliche Hardwaremodule wie Ein- und Ausgabeschnittstellen in eigenen integrierten Schaltkreisen ergänzt. Ein Lizenznehmer ist unter anderem die Firma Texas Instruments, welche die Prozessoren unter der Bezeichnung Hercules vermarktet. Diese Cortex-R können für sicherheitskritische Anwendungen nach IEC 61508 und ISO 26262 zertifiziert werden.

Die Mitglieder der Familie Cortex-R umfassen mit Stand Ende 2016 die Prozessoren mit den Typbezeichnungen Arm Cortex-R4(F), dieser Prozessor wurde im Jahr 2011 entwickelt, die Nachfolgemodelle Arm Cortex-R5(F), Arm Cortex-R7(F), Arm Cortex-R8(F), und den im Jahr 2016 entwickelten Arm Cortex-R52(F). Das (F) steht dabei für die integrierte Gleitkommaeinheit (FPU).

Die für echtzeitfähige Anwendungen nötigen Anpassungen dieser Prozessoren umfassen unter anderem:

* Speziell eng an den Core angebundene Speicherbereiche, sogenanntes englisch tightly-coupled memory, TCM, welche das nicht vorhersagbare Zugriffsverhalten von Caches vermeidet. In diesen Speicherbereichen können zeitkritische Routinen abgelegt werden, welche unabhängig von den Zuständen der Caches immer exakt das Gleiche zeitliche Ausführungsverhalten aufweisen.
* Eine zeitlich deterministische Interruptbehandlung.
* Eine erweiterte Ausnahmebehandlung direkt in Hardware und unabhängig von der Software.
* Einen erweiterten Speicherschutz in Form einer eigenen englisch memory protection unit, MPU.
* Eine mit Vorwärtsfehlerkorrektur (ECC) ausgestattete Speicherschnittstelle, welche Speicherfehler nicht nur erkennen, sondern in gewissen Umfang auch korrigieren kann.
* Einige Implementierungen sind auch als Dualcore mit der Fähigkeit zu Lockstep ausgeführt. Dabei wird der Dualcore nicht zur Steigerung der Rechenleistung in Summe verwendet, sondern das idente Programm wird von den beiden Cores parallel abgearbeitet und in Hardware die Ergebnisse auf Differenzen verglichen. So können hardwareseitige Ausfälle im integrierten Schaltkreis der CPU erkannt werden.
