Interessant ist die Interrupt-Verarbeitung (Bild 4): Diese können, egal wovon und von wem sie ausgelöst wurden, in den Hypervisor geroutet werden. Dieser führt für jedes Gast-OS eine Liste mit abzuarbeitetenden Interrupts, die dann quasi als virtueller Distributor die Interrupts über eine virtuelle CPU-Schnittstelle den jeweiligen Betriebssystemen zur Abarbeitung zuführen.
Mit den neuen Möglichkeiten stellt sich natürlich auch die Frage, wie diese optimal zu nutzen sind. In mehr und mehr Konsumer-Software wird z.B. auf SIMD-Operationen zurückgegriffen, die Bestandteil von ARMv7/ARMv8-A sind. ARM hat daher primär aus Kompatibilitätsgründen NEON auch in ARMv8-R integriert, d.h. Integer- und Gleitkomma-SIMD-Operationen inclusive doppelte Genauigkeit gemäß IEEE754. Diese Instruktionen sind auch von einem RTOS nutzbar, was z.B. bei ADAS-Anwendungen wie Radar oder der Ansteuerung von Grafik-Displays und komplexen Algorithmen in der Industrie Nutzen stiftet. Aus AARch32 wurden weiterhin zwei Instruktionen für die Checksummenberechnung (CRC32/CRC32C) übernommen, dazu gemäß IEEE754-2008 Minimumberechnung, Maximumberechnung und die Überführung einer Integer-Zahl ins Gleitkommaformat. Nur der Vollständigkeit halber soll auch nicht verschwiegen werden, dass auch die besonders bei Cortex-M-Mikrocontrollern beliebten Thumb-Instruktionen (16/32 bit für eine möglichst hohe Codedichte) unterstützt werden.
Konsolidierung im Emedded-Markt
Bild 5 zeigt eine Industrieanwendung mit 3 virtuellen Maschinen (VM): Auf der ersten läuft ein Betriebssystem wie Android, das die Wireless-Kommunikation und die GUI steuert. In der zweiten VM findet sich ein RTOS, auf dem ein Zustandsautomat implementiert ist. Dazu wird für eine Minimierung der Latenzzeiten direkt ein Task auf dem Echtzeit-VMM ohne Betriebssystem ausgeführt.
Wenn man sich das Zeitdiagramm anschaut, soll angenommen werden, dass das RTOS jeweils mit einer Periodendauer T getriggert wird. Hat dieses seinen Zustandsautomaten abgearbeitet (gelber Balken), kann die restliche Zeit von Android verwendet werden, Daten zu übertragen und/oder das GUI upzudaten (blauer Balken). Ein Sonderfall tritt ein, wenn sich über einen hoch priorisierten Interrupt die Motorsteuerung meldet: In diesem Fall übernimmt durch den Interrupt ausgelöst der Hypervisor die Kontrolle und führt direkt die entsprechende Routine aus, bevor die Kontrolle wieder an die unterbrochene Routine der zweiten VM zurückgegeben wird.
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-1s (Black-Box) und Code des OEM selbst (White Box) laufen – mit mehreren Konsumer-Betriebssystemen und RTOSen gleichzeitig (Bild 6).
Ecosystem-Unterstützung für die ARMv8-R-Architektur wird durch eine Reihe von Betriebssystemen wie Green Hills Software's Integrity, Nucleus von Mentor Graphics und T-Kernel von eSOL geliefert werden. Diese integrierten Hard- und Softwarelösungen werden Sicherheitsstandards wie ISO 26262 und IEC 61508 erfüllen und auch durch AUTOSAR unterstützt werden.