Detailseite
Projekt Druckansicht

Generierung und Optimierung von Echtzeitfähigem Code für Eingebettete Multiprozess- und Multiprozessor-Systeme

Antragsteller Professor Dr. Heiko Falk
Fachliche Zuordnung Rechnerarchitektur, eingebettete und massiv parallele Systeme
Förderung Förderung von 2011 bis 2018
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 200265263
 
Erstellungsjahr 2017

Zusammenfassung der Projektergebnisse

Harte Echtzeitsysteme müssen beweisbar vorgegebene Zeitschranken einhalten. Das Einhalten aller dieser sogenannten Deadlines ist somit eine funktionale Eigenschaft des Systems. In modernen harten Echtzeitsystemen konkurrieren mehrere parallel laufende Tasks auf mehreren Prozessoren um Ressourcen wie Speicherzugriffe und Rechenzeit. Diese Tasks kommen nach beliebigen Anregungsmustern zur Ausführung und unterliegen oftmals allesamt den zuvor genannten Zeitschranken. Ein System wird als „planbar“ bezeichnet, wenn beweisbar alle Tasks sämtliche Zeitschranken unter allen Umständen einhalten. Üblicherweise wird ein System zunächst entworfen und implementiert. Jeder einzelne Task des fertigen Systems wird dann mit speziellen Werkzeugen hinsichtlich seines schlimmstmöglichen Laufzeitverhaltens analysiert. Die Ergebnisse dieser Analyse werden dann schließlich verwendet, um die Planbarkeit des Gesamtsystems zu zeigen oder zu widerlegen. Dabei sind Tasks hier nur noch unveränderliche Black Boxes. Stellt sich ein System als nicht planbar heraus, kann ein Task auf dieser Ebene nicht optimiert werden. Statt dessen müssen Ausführungshäufigkeiten der Tasks oder die zugrundeliegende Hardware-Architektur angepasst werden. Beides ist in der Praxis jedoch häufig unpraktikabel oder sehr teuer. Compiler können die Laufzeit einzelner Tasks erheblich optimieren. Vor diesem Projekt verfügten diese allerdings nicht über die nötigen Modelle, um den Einfluss ihrer Optimierungen auf die Planbarkeit des Gesamtsystems einschätzen zu können. Ressourcen wie kleine aber schnelle Scratchpad Speicher konnten daher nicht effizient genutzt werden. Optimierungen, um die Planbarkeit zu verbessern, erfolgen statt dessen weitestgehend manuell per Trial und Error-Verfahren durch den Programmierer. Im Rahmen dieses Projekts wurden die Planbarkeitsanalyse auf System-Ebene und die Optimierung von Programm-Code auf Compiler-Ebene miteinander vereint. Es wurde ein Optimierungsmodell basierend auf ganzzahlig-linearer Optimierung (Integer-Linear Programming, ILP) entworfen. Dieses ermöglicht dem Compiler, gezielt die Planbarkeit des Systems zu optimieren. Dies funktioniert sowohl für Multiprozess- als auch für Multiprozessor-Systeme. Das ILP-Modell garantiert dabei eine Optimalität im Rahmen der mathematischen Darstellung. Als alternatives Verfahren wurde weiterhin ein Optimierungsmodell auf Basis eines genetischen Algorithmus entworfen. Die Methoden wurden innnerhalb des WCET-Aware C Compiler (WCC) des Antragstellers implementiert und für die Plattformen Infineon TriCore sowie ARM7TDMI evaluiert. Die Evaluierung ergab, dass die genetischen Algorithmen zu rechenaufwendig sind, um damit komplexe Mehrprozess- und Mehrprozessor-Systeme zu optimieren. Die ILP-basierten Ansätze hingegen weisen einen akzeptablen Rechenaufwand auf. Da innerhalb des ILP-basierten Ansatzes nur wenige rechenintensive Analysen notwendig sind, eignet sich dieser Ansatz sehr gut zur planbarkeitsorientierten Optimierung auch relativ komplexer Systeme. Insbesondere bei Multiprozess-Systemen, die gleichzeitig auf mehreren Prozessorkernen arbeiten, zeigte sich bei speicherbasierten Optimierungsmethoden mit dem entworfenen ILP-Modell ein massives Verbesserungspotential im Hinblick auf die Planbarkeit.

Projektbezogene Publikationen (Auswahl)

 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung