Werkzeugkette  ARGO KIT

Der AVES-Flugsimulator des DLR bietet eine Möglichkeit den ARGO-Ansatz in der Praxis zu erproben. Bild: DLR

In Luft- und Raumfahrttechnologie, Automatisierungstechnik und Automobilindustrie müssen intelligente elektronische Rechnersysteme eine Reihe von Sicherheits- und Echtzeitanforderungen erfüllen. So muss die Software etwa bei kritischen Ereignissen eine sehr kurze Reaktionszeit einhalten. Das Programmieren entsprechender Anwendungen ist zeit- und kos-tenaufwendig. Eine neue Werkzeugkette (Toolchain) zum effizienten, standardisierten, echtzeitfähigen und modellbasierten Programmieren entwickeln Partner aus Forschung und Industrie im nun gestarteten EU-Konsortium ARGO. Projektkoordinator ist das Karlsruher Institut für Technologie (KIT). Die Basis bildet die Open-Source-Software Scilab.

Immer mehr auch sicherheitskritische eingebettete Elektroniklösungen sind mit schnellen, energieeffizienten Mehrkernprozessoren ausgestattet. „Zwei der wichtigsten Anforderungen zukünftiger Anwendungen sind zum einen noch höhere Performanz, also Leistung, in Echtzeit und eine weitere Reduktion der Kosten – ohne dabei die funktionale Sicherheit zu beeinträchtigen“, sagt Professor Jürgen Becker vom Institut für Technik der Informationsverarbeitung (ITIV) des KIT, der ARGO koordiniert. „Dazu müssen die Mehrkernprozessoren das erforderliche Leistungsspektrum bei möglichst geringem Energieverbrauch automatisiert und effizient programmiert zur Verfügung stellen.“

Mehrkern- oder Multicore-Systeme vereinen mehrere Prozessorkerne auf einem Chip. Die Kerne arbeiten parallel und bringen dadurch mehr Geschwindigkeit und Leistung. Die Programmierung solcher heterogener Multicore-Prozessoren ist sehr komplex. Gleichzeitig müssen die Programme genau auf die Zielhardware zugeschnitten sein – und außerdem die zusätzlichen Echtzeitanforderungen erfüllen. Das EU-Forschungsprojekt ARGO – benannt nach dem überaus schnellen Schiff der griechischen Sage – zielt darauf ab, diese Programmierung durch automatische Parallelisierung modellbasierter Anwendungen (Applikationen) und Codegenerierung erheblich zu vereinfachen. Bislang muss ein Programmierer seinen Code, das heißt die Anweisungen an den Computer, meist an die Hardware-Architektur anpassen, was sehr aufwendig ist und eine Übertragbarkeit auf andere Architekturen verhindert.

„Mit ARGO entsteht eine neue standardfähige Werkzeugkette für Programmierer, die dann auch ohne genaue Kenntnis der komplexen parallelen Prozessorhardware den Prozess der automatischen Parallelisierung anforderungsgerecht steuern können. Daraus ergibt sich eine deutliche Verbesserung der Leistung bei gleichzeitiger Reduktion der Kosten“, so Becker.

Die Komplexität der Parallelisierung und der Anpassung an die Zielhardware lässt sich künftig mit der ARGO-Werkzeugkette weitgehend automatisiert mit geringem Aufwand bewältigen. Im Projekt werden beispielhaft echtzeitkritische Anwendungen aus den Bereichen der Echtzeit-Flugdynamiksimulation und der Echtzeit-Bildverarbeitung untersucht und bewertet.