Speculative execution

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Die fraglichen Angaben werden daher möglicherweise demnächst entfernt. Bitte hilf der Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst. Näheres ist eventuell auf der Diskussionsseite oder in der Versionsgeschichte angegeben. Bitte entferne zuletzt diese Warnmarkierung.

Bei einer Speculative execution werden untätige Prozessor-Ressourcen verwendet, um für einen potentiellen zukünftigen Stand des Programmflusses Berechnung vorauszuführen und Ergebnisse bereitzuhalten.

Hintergrund[Bearbeiten]

Speculative Execution ist eine Umsetzung der Eager execution (dt: eifrige Auswertung) Auswertungstrategie, dem Gegenteil der Lazy Evaluation, auf Prozessorebene. Damit wird es dem Prozessor ermöglicht, dauerhaft mehrere Befehle parallel auszuführen um effektiver und schneller zu arbeiten. Diese wurde auch deshalb eingeführt um die immer paralleler vorhandenen Prozessorresourcen (mehrere Pipelines etc.) effektiver auszulasten.

Technik[Bearbeiten]

Bei einer Speculative execution werden in Phasen, in denen der Prozessor nicht voll ausgelastet ist, die folgenden Programmschritte (in der Programmflusszukunft) auf ihre Ausführbarkeit untersucht mit dem Ziel, den wahrscheinlichsten Weg des Programmflusses zu finden. Der wahrscheinlichste Ausführungsweg wird verfolgt und die Ergebnisse werden als "Spekulative Ergebnisse" zwischengespeichert. Wenn das Programm an der Stelle angekommen ist, an dem es die Ergebnisse benötigt, stehen sie schon zur Verfügung, es muss nicht auf eine möglicherweise langwierige Berechnung gewartet werden. Die zwischengepeicherten Ergebnisse werden ausgelesen und der passende ausgeführt, die anderen werden verworfen. Durch dieses "Vordenken" des Prozessors wird dessen Leistungsfähigkeit auch in Phasen geringerer Auslastung genutzt, um ihn bei hoher Auslastung später zu entlasten.

Nachteile[Bearbeiten]

Ein Nachteil dieser Technik ist, dass Berechnungen auf Ausführungswegen, die sich als Fehlspekulation erweisen, ebenfalls in die Energiebilanz eingehen. Diese Berechnungen tragen nicht zu Rechenleistung bei und haben damit die Rechenleistungseffizienz pro Watt reduziert. Für mobile Rechensysteme wie Laptops kann dies für die autarke Betriebszeit relevant sein, weshalb beispielsweise der Intel Atom-Prozessor bewusst ohne diese Technologie entwickelt wurde.