Hardware-Virtualisierung für Embedded-Systeme Bringt ARM die Revolution in Auto und Industrie?

Über 100 Steuergeräte und mehrere Kilometer Kabel, dazu immer mehr Rechenleistung dür Assistenzsysteme, Infotainment und Navigation und last but not least hohe System-Robustness stellen die Automobilindustrie vor große Herausforderungen. ARM könnte mit einer neuen Architektur endlich den Weg zur Konsolidierung frei machen.

Die Automobilindustrie hat in den letzten Jahren weitreichende Änderungen erfahren: Mehr und mehr Leistungsmerkmale werden statt durch mechanische durch elektronische Systeme und der zugehörigen Software definiert, die zur Differenzierung auch zunehmend vom OEM selbst entwickelt wird.

Die Notwendigkeit, unterschiedliche Software einschließlich Code von OEMs zu behandeln, erhöht nun wiederum den Druck auf Tier-1s wie Bosch oder Continental, von denen einige Zulieferungen sicherheitskritische Anwendungen sind – von deren Modulen wird erwartet, dass sie auf der gleichen ECU wie Code von OEMs laufen. Deren Spektrum reicht von sicherheitsrelevanten Funktionen wie Bremsen , weniger wichtigen Funktionen wie Scheibenwischer, Einstellen der Sitzposition und Grafikdarstellung auf der Mensch-Maschine-Schnittstelle.

Neben vielen anderen kleinen Wehwehchen gibt es für Automobilhersteller damit vier große Herausforderungen. Zum einen will man der explodierenden Anzahl von Steuergeräten und deren Verkabelung, die nicht nur Geld kostet und zusätzliches Gewicht bringt, Herr werden, indem man mehrere Funktionen auf einer ECU konsolidiert. Wichtig ist natürlich dabei, die einzelnen Tasks voneinander zu isolieren, damit diese sich nicht gegenseitig abschießen und ggf. das Gesamtsystem zum Absturz bringen können. Echtzeitfähigkeit und die Fähigkeit, hohe Interruptlasten mit geringen Latenzzeiten zu verbinden, ist für viele Funktionen eine weitere Voraussetzung.

Desweiteren braucht man immer mehr Rechenleistung für ADAS (Advanced Driver Assistence System) und Benutzerschnittstellen für Infotainment und Navigation – für letztere will man auch noch Software-Bibliotheken aus der Applikations-Welt wiederverwerten können.

ARM hat mit ARMv8-R eine neue Mikroarchitektur enwickelt, die Hardware-Virtualisierung, die man aus der Applikations- und Server-Welt schon lange kennt, mit Echtzeitfähigkeit und Sicherheit zusammenführt.

Anders als bei der ARMv8-Architekur, die “nur” 2 Privileg-Modi für Betriebssystem und Anwendungsprogramme kennt, wurde ARMv8-R um einen weiteren Privileg-Ebene für einen echtzeitfähigen sogenannten VMM (Virtual Maschine Monitor) oder Hypervisor erweitert (Bild 1), welcher die Verwaltung parallel z.B. eines Betriebssystems wie Android für Infotainment/Navigation/GUI und eines RTOS übernimmt – dazu später mehr.

Auch in der Automatisierungstechnik könnte dank ARMv8-R eine Konsolidierung erfolgen: Während auf welchem Betriebssystem auch immer (z.B. Windows Embedded) unkritische Tasks wie Wireless-Kommunikation und Benutzer-GUI laufen, kann man auf einem RTOS parallel einen Zustandsautomaten implementieren und dann noch eine Motorsteuerung direkt als Task auf dem VMM laufen lassen.

Bedingt durch die Tatsache, dass ARMv8-R im Wesentlichen auf den auf der Applikations-Welt bekannten Architekturen ARMv7/ARMv8-A aufsetzt, ist der Schritt von der Kosumer- in die Embedded-Welt überschaubar – man kann alle Betriebssysteme, die dem 32-bit-A-Profil genügen, laufen lassen – theoretisch sogar Apples iOS und das neben einem RTOS.