Softwaredesign für die AUTOSAR Adaptive Platform

Autor / Redakteur: Maximilian Odendahl / Sebastian Gerstl |

Die Entwicklung von Software für die AUTOSAR Adaptive Platform bringt, verglichen mit bestehenden Singlecore-Systemen oder dem existierenden AUTOSAR Classic, neue Herausforderungen. Besonders die Verteilung der Software auf die verschiedenen Prozessorkerne der Zielplattform spielt eine immer wichtigere Rolle.

Anbieter zum Thema

Im Vergleich zur bereits existierenden AUTOSAR Classic Plattform kommen mit der neuen AUTOSAR ADAPTIVE Plattform neue Herausforderungen auf Softwareentwickler zu, speziell was die Verteilung von Software auf verschiedene Prozessorkerne betrifft. Selbst für einfachere Algorithmen und Zielsysteme ergibt sich eine Vielzahl möglicher Lösungen, deren Entwicklung und Bewertung bisherige Entwicklungsansätze an ihre Grenzen bringen.
Im Vergleich zur bereits existierenden AUTOSAR Classic Plattform kommen mit der neuen AUTOSAR ADAPTIVE Plattform neue Herausforderungen auf Softwareentwickler zu, speziell was die Verteilung von Software auf verschiedene Prozessorkerne betrifft. Selbst für einfachere Algorithmen und Zielsysteme ergibt sich eine Vielzahl möglicher Lösungen, deren Entwicklung und Bewertung bisherige Entwicklungsansätze an ihre Grenzen bringen.
(Bild: Clipdealer)

Die Entwicklung von Software für Multi- und Manycore-Systeme erfordert eine vollkommen andere Herangehensweise, als es üblicherweise in Singlecore-Systemen der Fall ist. Neben der Parallelisierung von bestehendem C/C++ Code stellt vor allem eine optimale Verteilung bereits paralleler Software unter Berücksichtigung von zeitlichen und funktionalen Einschränkungen Entwickler vor besondere Herausforderungen.

Hierbei muss nicht nur die benötigte und verfügbare Rechenleistung berücksichtigt werden, sondern in wachsenden Maß auch die Kommunikation zwischen den Prozessorkernen, die zunehmend zum Flaschenhals für die Systemleistung wird. Um alle zeitlichen und funktionalen Einschränkungen zu erfüllen, ist daher eine gemeinsame Berücksichtigung von Rechenleistung und Kommunikation notwendig. Aus diesem Grund wurde im AUTOSAR Konsortium die Adaptive Platform spezifiziert, um Software flexibler für neuartige Zentralcomputern entwickeln zu können.

Bildergalerie

Entwickeln für die AUTOSAR Adaptive Platform

Um neuartige Anwendungsfälle bedienen zu können, werden vom Auto der Zukunft immer mehr rechenintensive Aufgaben übernommen, unter anderem:

  • Automatisiertes Fahren
  • Vernetzung des Fahrzeugs mit dem umgebenden Straßenverkehr ("V2X")
  • Anwendungen mit permanenter "over-the-air"-Aktualisierung

Diese Punkte soll unter anderem die AUTOSAR Adaptive Platform adressieren. Durch deren Einführung kommen aber grundlegende Änderungen auf die Entwickler zu. Eine kurze technische Übersicht zwischen den beiden Plattformen wird in der folgenden Tabelle gegeben:

Classic Platform Adaptive Platform
Basierend auf OSEK Basierend auf POSIX
Statische Task Konfiguration Unterstützung von dynamischen Scheduling
Gleicher Adressraum für alle Anwendungen Jede Anwendung besitzt ihren eigenen
(virtuellen) Adressraum
Optimiert auf Event-basierte Kommunikation  
(z.B.CAN, FlexRay)
Service-orientierte Kommunikation
Ausführung der Anwendung aus dem ROM Applikation wird aus dem RAM geladen

POSIX (Portable Operating System Interface) ist eine standardisierte Programmierschnittstelle zwischen der Applikation und dem Betriebssystem und wurde ursprünglich nicht für die Automobilbranche entwickelt. Jedoch machen POSIX-Betriebssysteme die Softwareentwicklung für das Fahrzeug deutlich flexibler und erlaubt die Nutzung von zahlreichen bestehenden Bibliotheken aus den Bereichen High Performance Computing, Embedded Vision und Machine Learning.

Ein wesentlicher Unterschied wird die Unterstützung von dynamischem Scheduling sein. Hierbei sind viele unterschiedliche Strategien abhängig vom eingesetzten Betriebssystem denkbar, z.B. Round-Robin oder prioritätsbasiertes Scheduling. Dynamisches Scheduling kann theoretisch die Performance von Anwendungen steigern, die Vorhersehbarkeit des zeitlichen Verhalten wird dadurch aber deutlich schwieriger. Ein Entwickler kann sehr selten alle potentiellen Thread-Interaktion in komplexen, parallelen System vorhersagen. Außerdem ist es oftmals schwierig, den wahren Schuldigen bei Systemeffekten und Performance Engpässen zu identifizieren. Adaptive AUTOSAR erlaubt auch die dynamische Erzeugung von weiteren Threads zur Laufzeit, was die Vorhersehbarkeit weiter beeinträchtigt.

Lösungsansätze mithilfe von Tools für Softwaredesign

Für die oben genannten Problemstellungen ist eine manuelle Auslegung und Programmierung unter wirtschaftlichen Aspekten bereits heute nicht mehr machbar. Manuelle Ansätze, wie z.B. die mehrmalige Ausführung einer Anwendung und anschließendem Vergleich von detaillierten Traces, werden in der Zukunft aufgrund der steigenden Komplexität ebenfalls nicht mehr möglich sein.

Eine neue Generation von automatisierten Entwicklertools versucht diese Probleme durch Compiler-basierte statische und dynamische Datenflussanalyse, automatische Laufzeitabschätzung und Berechnung von Affinity-Masken zu lösen. Ziel dabei ist eine automatische Optimierung der Software und einer automatischen Verteilung auf homogene- und heterogene Zielarchitekturen. Während des gesamten Entwicklungsprozesses wird dabei die Zielplattform direkt mit einbezogen, was eine kombinierte Software- und Hardware-Optimierung ermöglicht.

Eine solche Toolchain für die sequentielle C/C++ Programmierung sowie für die AUTOSAR Classic Platform ist stammt beispielsweise von der Firma Silexica. Diese wird derzeit für die AUTOSAR Adaptive Platform entsprechend weiterentwickelt. Bild 1 zeigt, wie die einzelnen Elemente einer automatischen Analyse von Adaptive AUTOSAR Anwendungen aussehen können.

Die Thread-Analyse ist dabei der schwierigste Teil. Zum einen muss dabei der Programmfluss abstrahiert und durch Ereignisse ersetzt werden, die ihre Source Code Eigenschaften beinhalten und semantische Eigenschaften repräsentieren. Diese beeinflussen sowohl den Ausführungsfluss als auch den globalen Zustand der Anwendung. Zum anderen soll sie schnelle Algorithmen nutzen, um die Abhängigkeiten bzgl. Reihenfolge und Datenkonsistenz dieser Events berechnen und extrahieren zu können.

Mögliche Events für die abstrakte Darstellung einer Anwendung sind hierbei unter anderem das Thread Management des Betriebssystems, Process/library loading (z.B. via vma_link), signals (z.B. via SIGSEGV), Pthreads calls für Mutexes (z.B. pthread_mutex_lock) und Barriers und gemeinsame Zugriffe auf den gleichen Speicherbereich. Die semantische Analyse benötigt dann unterschiedliche Heuristiken um die unterschiedlichen Effekte zu verstehen. So müssen z.B. zwei Abhängigkeiten zwischen zwei Mutex Ereignisse völlig anders bewertet werden als die Abhängigkeiten zwischen zwei Barrieren-Ereignissen.

Full-System Simulation

Die auf der AUTOSAR Adaptive Platform basierenden Anwendungen haben den Vorteil, dass sie zur Laufzeit in das System eingebunden werden. Das erlaubt, sie unabhängig voneinander zu entwickeln, testen und verteilen beziehungsweise aktualisieren. Die Service-orientierte Kommunikation ermöglicht es zudem, Anwendungen zu jedem beliebigen Zeitpunkt in das Gesamtsystem zu integrieren. Sie ist kompatibel mit SOME/IP der AUTOSAR Classic Platform. Im zentralen Supercomputer im Auto der Zukunft können so, wie in Bild 3 schematisch dargestellt, mehrere Systeme parallel laufen.

Dies erhöht allerdings nochmals die zuvor beschriebenen, wachsenden Schwierigkeiten des zeitlichen Verständnis des Gesamtsystems. Daher werden auch in Zukunft eine neue Generation von Tools notwendig sein, um der steigenden Komplexität im Auto der Zukunft Herr zu werden.

Fazit: Die Herausforderungen der AUTOSAR Adaptive Plattform bewältigen

Die zunehmende Komplexität von modernen Multiprozessorsystemen in Kombination mit verkürzten Entwicklungszyklen und steigenden Anwendungsanforderungen haben zu einer Effizienzlücke geführt: Die effiziente Nutzung moderner Multiprozessorsysteme kann mit manueller Systemauslegung und Programmierung nur beschränkt wirtschaftlich bewerkstelligt werden. Mit steigender Plattform- und Software-Komplexität wird dieses Problem zukünftig sogar noch größer.

Aufgrund der Einführung der AUTOSAR Adaptive Platform kommen weitere Herausforderungen auf Software Entwickler hinzu. Neben dem Wechsel von OSEK zu POSIX ist hier vor allem die Möglichkeit von dynamischen Scheduling hervorzuheben. Diese neu gewonnene Flexibilität ist hierbei Segen und Fluch zugleich, da die Vorhersehbarkeit des zeitlichen Verhaltens des Systems stark eingeschränkt ist.

Neuartige Software Design Automation Tools können genutzt werden, um datengetriebene Entscheidungen zu treffen, sein Gesamtsystem besser verstehen zu können und die Lücke zwischen Software- und Hardwareinnovationen der letzten Jahre zu schließen.

Der Autor

Der Autor: Maximilian Odendahl , Silexica GmbH.
Der Autor: Maximilian Odendahl , Silexica GmbH.
(Bild: Silexica)

* Maximilian Odendahl studierte Computer Engineering an der RWTH Aachen und war nach seinem Abschluss am Institut for Communication Technologies and Embedded Systems (ICE) als Wissenschaftlicher Mitarbeiter mit dem Schwerpunkt der Toolentwicklung für heterogenen Multicore-Systeme tätig. Von Januar 2013 bis Dezember 2014 war er zusätzlich Oberingenieur des ICE. Heute ist er geschäftsführender Gesellschafter der Silexica Gmb.

(ID:45152266)