ILP-orientierte Hard- und Softwaretechniken



Um bei der Ausführung durch moderne Mikroprozessoren eine hohe Geschwindigkeit zu erzielen, werden an die Eigenschaften von Maschinenprogrammen eine Reihe von Anforderungen gestellt. Bei den zunehmend an Bedeutung gewinnenden superskalaren Prozessoren steht dabei die Auslastung einer immer größeren Anzahl von Verarbeitungseinheiten und die Ausnutzung einer immer tieferen Pipeline im Vordergrund. Diese parallelen Ressourcen können nur dann sinnvoll genutzt werden, wenn genügend Parallelität auf Befehlsebene in einer für den Prozessor nutzbaren Form im Programm vorhanden ist. Um Programme unter diesen Gesichtspunkten zu modifizieren, werden in einem Übersetzer eine Reihe von Programmtransformationen durchgeführt, die ein gegebenes Programm in ein semantisch äquivalentes mit geringerer Ausführungszeit umwandeln.

Das Seminar beschäftigt sich im wesentlichen mit statischen und dynamischen Scheduling-Techniken. Auf der Seite der statischen Techniken, also der im Übersetzer angewandten Transformationen, werden insbesondere lokales und globales Instruction-Scheduling und Software-Pipelining betrachtet. Die Themen zu den dynamischen Ansätzen beziehen sich auf Techniken, die es einem superskalaren Prozessor erlauben, die in einem Programm vorkommenden Anweisungen in geeigneter Weise den Ausführungsressourcen zuzuordnen. Parallel dazu wird die Abbildung von Befehlen in einem Programm auf spezielle Architektur- und Implementierungsmerkmale von Prozessoren betrachtet. An dieser Stelle soll auf die Bedeutung der Sichtweise von Prozessor und Übersetzer als ein System eingegangen werden.

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