Sprungvorhersagetechniken in modernen Mikroprozessoren



Die Steigerung der Leistungsfähigkeit ist eine der wesentlichen Anforderungen bei der Entwicklung neuer Mikroprozessoren. Dabei kann auf der einen Seite durch Ausnutzung von Weiterentwicklungen auf dem Gebiet der Fertigungstechnologie eine höhere Taktrate ausgenutzt werden. Auf der anderen Seite bieten Weiterentwicklungen der Prozessorarchitektur und insbesondere die Ausnutzung von Parallelität Möglichkeiten, die Leistungsfähigkeit eines Prozessors zu steigern.

Die Unterbrechung des sequentiellen Kontrollflusses durch Sprunganweisungen stellt ein wesentliches Problem für Techniken zur Leistungssteigerung von Prozessoren dar und behindert die Ausnutzung von Parallelität auf Befehlsebene. Deshalb sind in allen heutigen Prozessoren Sprungvorhersagetechniken implementiert. Eine Sprungvorhersage versucht mittels der während der Ausführungszeit eines Programmes verfügbaren Information Sprungziele zu bestimmen und für die Ausführungseinheiten der Prozessorpipeline einen unterbrechungsfreien Befehlsstrom zu erzeugen. Eine gute Vorhersage ermöglicht einerseits eine hohe Auslastung der Ausführungsressourcen und damit eine hohe Leistung des Prozessors. Auf der anderen Seite bedeutet eine falsche Vorhersage zusätzliche Zeitverluste für die Korrektur der inkorrekt ausgeführten Anweisungen.

Um für eine hohe Anzahl von Sprunganweisungen eine richtige Vorhersage zu treffen, werden immer aufwendigere Techniken implementiert. Dabei wird Information über das vorherige Verhalten der betreffenden Sprunganweisung ausgenutzt, aber auch Information über das Verhalten größerer Programmeinheiten. Das Sammeln, Speichern und Auswerten dieser Information erfordert einen erheblichen Aufwand an Chipfläche, weshalb die Auswahl geeigneter Vorhersagetechniken und deren weitere Optimierung eine wesentliche Frage beim Entwurf von Mikroprozessoren darstellt.

Im Rahmen des Proseminars sollen unterschiedliche Techniken für eine Vorhersage von Sprüngen untersucht und hinsichtlich Aufwand und Leistungsfähigkeit bewertet werden.

Das Proseminar richtet sich an Studierende im Grundstudium Informatik (Diplom, Lehramt).