Hardware/Software Codesign



Eine hohe Abarbeitungsgeschwindigkeit von Programmen stellt ein wesentliches Entwurfsziel bei der Implementierung von modernen Mikroprozessoren dar. Dabei kommen einerseits immer neue Mechanismen zur Beschleunigung der sequentiellen Ausführung einer Befehlsfolge zur Anwendung. Andererseits wird durch eine wachsende Anzahl von Verarbeitungseinheiten die stärkere Ausnutzung von Parallelität auf Befehlsebene ermöglicht.

Diese Hardwaretechniken stellen jeweils Anforderungen an die Eigenschaften eines Programms, damit dieses tatsächlich effizient abgearbeitet werden kann. Ein Quellprogramm in ein semantisch äquivalentes Maschinenprogramm mit diesen Eigenschaften zu überführen, ist die Aufgabe der Optimierungsphasen in einem Übersetzer. Mit den steigenden Anforderungen von Seiten der Hardware wächst der Aufwand der hierbei eingesetzten Verfahren. Eine Auswirkung dieser Entwicklung ist, daß die gegenwärtig eingesetzten Optimierungstechniken ihrerseits eine Unterstützung von seiten der Hardware erfordern. Damit ist eine Situation entstanden, die die Entwicklung von Hardware und Übersetzertechniken im Zusammenhang erfordert.

Im Rahmen des Seminars sollen eine Reihe solcher Techniken (predicated execution, speculative execution, branch prediction, instruction scheduling) und ihre Zusammenhänge untersucht werden.

Das Seminar richtet sich an Studierende im Hauptstudium Informatik (Diplom). Kenntnisse auf den Gebieten Übersetzerbau/Programmiersprachen und Rechnerarchitektur sind hilfreich, aber nicht Voraussetzung.