Steigerung der Produktivität von Rechnersystemen
Heterogene Rechnersysteme sind im Grunde genommen elektronische Systeme, in denen verschiedene Recheneinheiten (wie beispielsweise Audio- und Videosysteme oder vernetze Anwendungen) betrieben werden, die zusätzliche spezialisierte Ressourcen erfordern, um zu funktionieren. Diese Lücke zwischen dem Aufbau und der Produktivität dieser Systeme besteht aus zwei Gründen: Eingebettete Prozessoren werden immer komplexer, und die von diesen Prozessoren verarbeiteten Anwendungen zeichnen sich durch einen erhöhten Umfang sowie eine erhöhte Komplexheit aus. Daher untersuchten die Forscher des DynaGALS-Projekts drei Komplexe, um diese Probleme zu beseitigen: höhere Programmiersprachen, zeitliche Vorhersagbarkeit und komponentenbasierter Aufbau. Bezüglich des ersten Komplexes wandten sich die Forscher der Programmiersprache SystemJ zu. SystemJ ist insbesondere für den Aufbau von GALS-Systemen (Globally Asynchronous Locally Synchronous Systems) geeignet, einem wichtigen Teil des Projekts. Das Projekt DynaGALS definierte die Aufgabe und führte Fallstudien durch, um zu untersuchen, ob SystemJ für den Aufbau von eingebetteten Rechnersystemen verwendet werden kann. Zudem entwickelte das Forscherteam eine Programmiersprache mit zeitlicher Vorhersage, die sie Precision Timed C (Pret C) nannten. Diese Programmiersprache basiert auf der weitverbreiteten Sprache C, wobei zur Leistungsverbesserung einige dynamische Komponenten hinzugefügt wurden. Pret C ermöglicht die Speicherkommunikation zwischen zwei existierenden Threads, dies ist etwas, was in C üblicherweise nicht möglich ist. Als Ergebnis kann eine Abbildung der logischen Zeit auf die physikalische Zeit einfacher realisiert werden. Arpret, eine dedizierte Zielarchitektur, bei der eine Hardwarebeschleunigung mit einem Soft-Core-Prozessor kombiniert wird, der die Effizienz von Pret C steigert, wurde ebenfalls entwickelt. Der dritte Komplex, der während des DynaGALS-Projekts behandelt wurde, stand mit komponentenbasierten Systemen in Zusammenhang. Hierbei handelt es sich um komplexe Systeme, die aus verschiedenen Code-Blöcken oder Komponenten bestehen. Ein grundlegendes Problem besteht darin, die Komponenten, die getrennt voneinander entwickelt wurden, zusammenzufügen, wenn nur die Kommunikationsschnittstelle einer individuellen Komponente bekannt ist. Wird versucht, die verschiedenen Komponenten miteinander zu verbinden, kommt es häufig zu Diskrepanzen. Das Forscherteam entwickelte daher eine neue formale Herangehensweise unter Einsatz einer sogenannten "Converter Synthesis" (eine Form der Verifizierung), welche die Diskrepanzen zwischen den verschiedenen Komponenten überbrückt. Das Projekt mit einer Fördersumme von 111.667 EUR lief bis Februar 2010. SytemJ scheint die wichtigste Sprache auf Systemebene für den Aufbau komplexer und heterogener eingebetteter Systeme zu werden.