Compiler-Unterstützung für Zeitanalyse

01.07.2006 - 30.06.2009
Forschungsförderungsprojekt
Das Projekt COSTA beschäftigt sich mit der Analyse der Maximalen Programmausführungszeit (WCET) von Eingebetteten Systemen, wobei der Fokus im Speziellen auf der Entwicklung von Compiler-Techniken zur Unterstützung der WCET-Analyse liegt. Ein Compiler hat detailliertes Wissen über ein Programm und die darauf angewendeten Transformationen, was dazu benutzt werden kann, die Verwendbarkeit der WCET-Analysise und die Präzision der berechneten WCET-Schranke zu verbessern. Zur Erreichung dieser Ziele behandeln wir die folgenden zwei Beiträge: 1) Transformation von Fluss-Daten um die WCET-Analyse für optimierten Code zu unterstützen, und 2) eine Codegenerierung welche den Code durch die Vermeidung von Zeitanomalien besser vorhersagbar macht. Um die WCET zu berechnen sind Informationen notwendig, welche erreichbare Programmpfade beschreiben. Wir nehmen an, das solche Information ¿ auch ¿Fluss-Daten¿ genannt ¿ bereits mittels automatischer Berechnung oder manueller Zusicherungen vorliegen. Es ist vorteilhaft wenn solche Fluss-Daten auf einer abstrakten Ebene wie etwa auf Quellcodeebene vorliegen: die automatische Berechnung der Fluss-Daten hat in diesem Fall mehr Programminformation zur Verfügung und bei Verwendung von manueller Zusicherungen ist es wesentlich komfortabler, diese auf der selben Ebene anzugeben, wo man auch das Programm entwickelt. Um jedoch präzise Ergebnisse für einen konkreten Prozessor zu erhalten, muss die WCET-Analyse selbst auf der Ebene des Objektcodes gemacht werden. Innerhalb von COSTA werden wir eine Methode zur Transformation der Fluss-Daten entwickeln, welche die auf Quellcodeebene gesammelten Flussdaten konsistent hält wenn der Compiler während der Kompilierung Codetransformationen durchführt. Vorarbeiten haben gezeigt, dass die Anpassung der Fluss-Daten nicht ohne die Hilfe des Compilers gemacht werden kann. Neben den Fluss-Daten werden auch die Ausführungszeiten von Programminstruktionen benötigt um letztendlich die WCET zu berechnen. Da aber komplexe Prozessoren mit Features wie etwa Pipelining oder Caching kontext-abhängige Instruktionsausführungszeiten haben, ist es eine Herausforderung, diese Instruktionsausführungszeiten zu berechnen. Effekte wie die so genannten ¿Zeitanomalien¿ können auftreten, wobei im Extremfall sogar eine kleine Änderung einer Instruktionsausführungszeit zu einer unbeschrankten Veränderung der Gesamtausführungszeit führen kann. Aus diesem Grunde entwickeln wir als weitere Unterstützung der WCET-Analyse ein Compiler-Modul zur Codegenerierung, welches Instruktionsscheduling zur Vermeidung des potentiellen Auftretens von Zeitanomalien durchführt. Compiler, die eine Unterstützung der WCET-Analyse anbieten, werden dazu beitragen, die Qualität der Analyse zu verbessern sowie die Akzeptanz von WCET-Analysetechniken seitens der Industrie zu erhöhen.

Personen

Projektleiter_in

Subprojektleiter_in

Projektmitarbeiter_innen

Institut

Förderungsmittel

  • FWF - Österr. Wissenschaftsfonds (National)

Forschungsschwerpunkte

  • Information and Communication Technology

Schlagwörter

DeutschEnglisch
Maximale Programmausführungszeit (WCET)worst-case execution time analysis (WCET)
Flussfaktenflow facts
Compilertechnikencompilation techniques
Zeitanomalientiming anomalies
Laufzeitmessungenexecution time measurements

Externe Partner_innen

  • Institut für Computersprachen