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 Paradigmenwechsel zu Multi-Core Systemen gefährdet existierendes Vermögen – wiederverwendbare Software. Bei Automobilherstellern und -zulieferern ist die Neuentwicklung von Software die Ausnahme, mittels Komponentenmodellen und Produktlinienarchitekturen wird Software wo immer möglich wiederverwendet. Echte Nebenläufigkeit führt hier zu einem Bruch. Kaum ein Stück Software in Automobilsteuergeräten ist so programmiert, dass es ohne weiteres tatsächlich parallel zu den anderen Softwareteilen ausgeführt werden kann. Zwar ist Software in Tasks organisiert, die vom Echtzeitbetriebssystem (OSEK oder AUTOSAR OS) verwaltet werden, aber eine Verteilung existierender Tasks auf verschiedene Prozessorkerne ist meist nicht möglich. Es gibt zu viele verdeckte Abhängigkeiten zwischen Tasks. Das können Reihenfolgebedingungen 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 wechselseitigen Ausschluss 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 System mit einer CPU bietet zahlreiche Möglichkeiten, um Reihenfolgebedingungen, wechselseitigen Ausschluss oder zeitliche Bedingungen zu implementieren. Die typischen Beispiele reichen hier vom Sperren der Interrupts, um exklusiven Zugriff (mutual exclusion) zu ermöglichen, bis zur Sequentialisierung von Tasks durch Vergabe identischer Prioritäten – was bei Multi-Core Systemen naturgemäß beides nicht funktioniert. Da es sich bei den meisten Automobilsteuergeräten um Echtzeitsysteme handelt, kommt die Problematik hinzu, dass sich durch die Verteilung auf mehrere Cores zunächst ein völlig anderes zeitliches Verhalten ergibt: Die Aktorik wird früher – oder gar später! – angesteuert. Was die Umstellung auf Multi-Core Systeme zusätzlich erschwert, ist der Mangel an entsprechend 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 Paradigmenwechsel zu echter Nebenläufigkeit die größte softwaretechnische Herausforderung ist, die diese Branche auf absehbare Zeit zu bewältigen hat.
¹ BMBF FKZ: 17N1309
Thema
Programm- und Systemanalysewerkzeuge zur Migration eingebetteter Software auf Multi-Core Systeme
Projektleiter
Prof. Dr.-Ing. Jörn Schneider
Fachbereich Informatik
Fachhochschule Trier
Mitarbeiter
Michael Bohn, M.Sc.
Fachbereich Informatik
Fachhochschule Trier
Christian Eltges, M.Sc.
Fachbereich Informatik
Fachhochschule Trier
Robert Rößger, B.Sc.
Fachbereich Informatik
Fachhochschule Trier
Partner
AbsInt Angewandte Informatik GmbH
Science Park 1
66123 Saarbrücken
Prof. Dr. Reinhard Wilhelm
Universität des Saarlandes
Lehrstuhl für Programmiersprachen und Übersetzerbau
Campus E 1 3
66123 Saarbrücken
Laufzeit
3 Jahre, ab 1. Juni 2009
Fördervolumen
260.000 Euro über 3 Jahre
Mittelgeber/Projektträger
Bundesministerium für Bildung und Forschung BMBF (FKZ: 17N1309) /
Projektträger Forschung an Fachhochschulen – AiF (Arbeitsgemeinschaft industrieller Forschungsvereinigungen "Otto von Guericke" e.V.)
Paper
2011
2010
Präsentationen
Migration harter Echtzeitsysteme auf Multi-Core Plattformen - Herausforderungen durch echte Nebenläufigkeit und Lösungsansätze
Sie verlassen die offizielle Website der Hochschule Trier