Elektroniknet Logo

Safety für Auto, Industrie und Medizin

ARM Cortex-R52 für funktionale Sicherheit


Fortsetzung des Artikels von Teil 2

Verbessertes Interrupt-Handling

Bild 5. Beispiel für Virtualisierung in der Automobil-Industrie. Unsichere Betriebssysteme können zusammen mit zugeliefertem Code von Tier Ones und System-Code durch VMs voneinander isoliert werden.
Bild 5. Beispiel für Virtualisierung in der Automobil-Industrie. Unsichere Betriebssysteme können zusammen mit zugeliefertem Code von Tier Ones und System-Code durch VMs voneinander isoliert werden.
© DESIGN&ELEKTRONIK

Im Automobilbereich ermöglicht ARMv8-R sogar die Konsolidierung von Funktionen mit unterschiedlichen SIL (Safety Integrity Level): Der Hypervisor läuft immer auf dem höchsten erforderlichen SIL; zuammen mit der Hardware richtet er die VMs für geringere SILs ein. In diesem können dann sogar gemischt Zulieferungen von Tier-1 (Black-Box) und Code des OEM selbst (White Box) laufen – mit mehreren Konsumer-Betriebssystemen und RTOSen gleichzeitig (Bild 5).

Verbessertes Interrupt-Handling

ARMs erste CPU, die auf ARMv8-R basiert, ist der Cortex-R52. Anders als der Name vermuten lässt, handelt es sich nicht um eine Weiterentwicklung des R5, vielmehr wurde als Entwicklungsbasis die 8-stufige superskalare Dual-Issue-In-Order-Pipeline des vor allen Dingen aus dem Smartphone-Markt bekannten Cortex-A53 genommen (Bild 6), die in diversen Aspekten wie Sprungvorhersage, Anzahl der Ausführungseinheiten und ein breiterer Instruktions-Puffer verbessert wurde (zehn Stufen bei Ausführung von Gleitkomm-/NEON-Befehlen). Im Backend gibt es eine geteilte Pipeline für Laden/Speichern, zwei ALUs (davon eine mit Hardware-Dividierer), eine NEON-Pipeline und eine für Sprünge/Verzweigungen.

Bezüglich der Dual-Issue-Fähigkeiten hatte ARM schon beim A53 die Typen der Instruktionen erweitert, die von dem zweiten Befehls-Slot (Slot 1) abgearbeitet werden konnten. Während beim A53-Vorgänger A7 nur Slot 0 den vollständigen Befehlssatz und Slot 1 nur Integer- und Verzweigungs-Operationen abarbeiten konnte, kann Slot 1 nunmehr auch Laden/Speichern- und Gleitkomma/NEON-Operationen ausführen. In der Realität dürfte der A52 in seinem Durchsatz damit nur noch durch die jeweils verfügbaren Ausführungseinheiten limitiert sein.

Bild 6. Pipeline des Cortex-R52. Offizielle Angaben von ARM gibt es nicht, auf Grund der uns vorliegenden Informationen gehen wir jedoch von der Korrektheit des Diagramms aus.
Bild 6. Pipeline des Cortex-R52. Offizielle Angaben von ARM gibt es nicht, auf Grund der uns vorliegenden Informationen gehen wir jedoch von der Korrektheit des Diagramms aus.
© DESIGN&ELEKTRONIK

Hinsichtlich der Sprungvorhersage nehmen wir an, dass Verbesserungen bezüglich der Trefferrate und der Latenzzeit bei Fehlvorhersagen vorgenommen wurden. Auch wenn ARM wie üblich bei diesem Thema keine Details herausgibt, erwarten wir zusätzliche konditionale und indirekte Vorhersagen, der kontitionale Prediktor hat vermutlich eine 6 kbit große gshare-Struktur und der indirekte Prediktor dürfte 256 Einträge und Pfadhistorie aufweisen.

Verbessert wurde das in der Vergangenheit zu Recht bemängelte Interrupt-Handling, vor allen Dingen die Latenzzeiten. Beim R52 kann der Kunde bis zu 32 Interrupts als sogenannte »Fast-Interrupts« konfigurieren, bei denen bei Sicherung aller Allzweck-Register auf dem Stack nach 32 Taktzyklen die erste Instruktion in der Interrupt-Service-Routine ausgeführt werden kann. Reduziert man die Datensicherung aus den Registern auf ein Minimum, reduziert sich die Anzahl auf 27 Taktzyklen. Dies ist rund die Hälfte der beim Cortex-R5 erforderlichen Taktzyklen. Bei den nicht als schnell konfigurierten Interrupts erhöhen sich beide Zahlen um jeweils sechs Taktzyklen. Auch wenn dieser Fortschritt natürlich bemerkenswert ist, muss man natürlich immer im Hinterkopf haben, dass es Mikrocontroller-CPUs von ARM und anderen Herstellern basierend auf einfacheren Architekturen gibt, die nochmals deutlich weniger Taktzyklen als Interrupt-Latenz aufweisen (z.  B. Cortex-M4 zehn Zyklen ohne Fetch- und Decodier-Stufe [1], Infineon TriCore 9 Zyklen ohne Fetch- und Decodier-Stufe [2]).

Der Cortex-R52 kann bei der Fertigung in einem 20-nm-Prozess bis zu 1 GHz Taktfrequenz erreichen. Von 20 nm ist man in der Industrie im Gegensatz zum Smartphone allerdings noch weit entfernt, selbst die kostengünstige 28-nm-Fertigung fängt erst an, ihren Weg in diese Märkte zu finden (z.  B. NXPs i.MX 8). In diesem Prozess würden wohl 300 bis 400 MHz realistisch sein, bei 300 MHz beträgt die Zeit zu einem vollständigen Kontextwechsel zwischen zwei Tasks nur noch 5 µs, eine deutliche Verbesserung (bis zu Faktor 14) zu den Vorgängern. Bei 300 MHz erreicht der R52 eine Rechenleistung von 1308 CoreMark, dies ist pro MHz gegenüber dem R5 eine Steigerung um rund 25 % (4,36 CM/MHz gegenüber 3,47 CM/MHz).


  1. ARM Cortex-R52 für funktionale Sicherheit
  2. Drei neue Register für Hypervisor-Modus
  3. Verbessertes Interrupt-Handling
  4. Bis zu Quad-Core im Lockstep-Betrieb

Verwandte Artikel

ARM Germany GmbH