Homepage von Prof. Dr.-Ing. Jörn Schneider
englisch

Projektbeschreibung ProSyMig

Forschungsprojekt ProSyMig

Programm- und Systemanalysewerkzeuge zur Migration eingebetteter Software auf Multi-Core Systeme

Die Einführung von Multi-Core Systemen stellt für die Embedded Softwaretechnologie einen disruptiven Technologiesprung dar. Die existierenden Systeme sind für eine sequentielle Abarbeitung ausgelegt und es gibt praktisch keine SW-Entwickler am Markt, die über Erfahrung mit echt parallelen Systemen verfügen.

In dem vom Bundesministerium für Bildung und Forschung (BMBF) geförderten Projekt¹ ProSyMig von Prof. Jörn Schneider  wird an Methoden und Werkzeugen geforscht, die einmal das nahezu automatische Parallelisieren existierender Echtzeitsoftware für die Steuerung von Airbag, Bremse und Motor sowie anderer Steuergeräte im Automobil ermöglichen sollen. Ausgangspunkt sind die Milliarden von Zeilen bewährten Quellcodes der Automobilindustrie,  die bei der bevorstehenden Umstellung auf Multi-Core Prozessoren ansonsten mühsam von Hand neu programmiert bzw. auf ihre Verwendbarkeit für Multi-Core Systeme überprüft werden müssten.

Für die Automobilindustrie gibt es vielfältige Gründe für den baldigen Wechsel auf Multi-Core Systeme. Zu den primären Auslösern zählt die, bei vergleichbarer Rechenleistung, deutlich höhere Abwärme von Single Core Prozessoren. Aufgrund des zunehmenden Leistungshunger der Systeme kann diese ansonsten nicht mehr wie bisher ohne aktive Kühlung abgeführt werden.

Darüberhinaus gibt es weitere technologische Grenzen, die den Paradigmenwechsel zur Parallelverarbeitung erzwingen. Single-Core Systeme werden zum Beispiel dann unsinnig, wenn die Taktfrequenzen in jene Bereiche vorstoßen, bei denen der überproportional gesteigerte Energiebedarf dazu führt, dass die Verlustwärme nicht mehr abgeführt werden kann, oder es zu teuer ist, die elektromagnetische Verträglichkeit sicherzustellen, oder wenn in Kombination mit der einhergehenden Strukturverkleinerung die Empfindlichkeit gegenüber kosmischer Strahlung die Zuverlässigkeit und Sicherheit der Systeme gefährdet. Der Schritt zu Multi-Core Systemen muss bei vielen eingebetteten Systemen also schon bei wesentlich geringeren Taktfrequenzen erfolgen als bei klassischen IT-Systemen.

Der Paradigmenwech­sel zu Multi-Core Systemen gefährdet existierendes Vermögen – wiederverwendbare Software. Bei Automobilherstellern und -zulieferern ist die Neuentwicklung von Software die Ausnahme, mittels Kompo­nentenmodellen und Produktlinienarchitekturen wird Software wo immer möglich wiederver­wendet. Echte Nebenläufigkeit führt hier zu einem Bruch. Kaum ein Stück Software in Automobil­steuergerä­ten ist so programmiert, dass es ohne weiteres tatsächlich parallel zu den anderen Software­teilen aus­geführt werden kann. Zwar ist Software in Tasks organisiert, die vom Echtzeitbe­triebssystem (OSEK oder AUTOSAR OS) verwaltet werden, aber eine Verteilung existierender Tasks auf verschiedene Prozes­sorkerne ist meist nicht möglich. Es gibt zu viele verdeckte Abhängigkeiten zwischen Tasks. Das kön­nen Rei­henfolgebedingungen sein, d.h. eine bestimmte Aktion in einem Task muss vor einer weiteren in einem anderen Task ausgeführt werden. Das kann aber auch die Notwendigkeit zum wechsel­seitigen Aus­schluss sein, sprich zwei Tasks teilen sich Ressourcen. Ein weiterer Grund kann eine zeitliche Bedingung sein, also beispielsweise Aktion 1 in Task A muss x µs vor Aktion 2 in Task B erfolgen. Die erzwungene Sequentialisierung in einem Sys­tem mit einer CPU bietet zahlreiche Möglichkeiten, um Reihenfolgebedingungen, wechsel­seitigen Ausschluss oder zeitliche Bedingungen zu implementieren. Die typischen Beispiele reichen hier vom Sperren der Inter­rupts, um exklusiven Zugriff (mutual exclu­sion) zu ermöglichen, bis zur Sequentialisierung von Tasks durch Vergabe identischer Prioritäten – was bei Multi-Core Systemen naturgemäß beides nicht funk­tioniert. Da es sich bei den meisten Automobilsteuergeräten um Echt­zeitsysteme handelt, kommt die Problematik hinzu, dass sich durch die Verteilung auf mehrere Cores zunächst ein völlig anderes zeit­liches Verhalten ergibt: Die Aktorik wird früher – oder gar später! – angesteuert. Was die Umstel­lung auf Multi-Core Systeme zusätzlich erschwert, ist der Mangel an ent­sprechend ausgebildeten Experten.

Fazit: Die Migration existierender Software auf Multi-Core Systeme ist eine zentrale und schwer zu lösende Aufgabe für die Automobilindustrie. Ohne Übertreibung kann man sagen, dass der Paradig­menwechsel zu echter Nebenläufigkeit die größte softwaretechnische Herausforderung ist, die diese Branche auf absehbare Zeit zu bewältigen hat.


¹ BMBF FKZ: 17N1309

 

 

Manfred Stüber,  1. April 2015