Sprungvorhersage erklärt: Der fast perfekte Prophet im Prozessor

Ohne Sprungvorhersage wären Prozessoren deutlich langsamer, ohne sie hätte es aber auch Spectre nicht gegeben. Erforderlich macht sie das Pipelining, das wiederum Taktraten von mehreren Gigahertz überhaupt erst ermöglicht. Dabei wird die Ausführung eines Befehls in einfachere, kleine Einheiten zerlegt. Bei aktuellen Prozessorkernen wird jeder Befehl in deutlich mehr als zehn Schritten abgearbeitet, Wikichips nennt für AMDs Zen 3 19 Pipeline-Stufen(öffnet im neuen Fenster) , Sifives leistungsfähigster RISC-V-Kern kommt auf bis zu 18 .
Das ist so lange unproblematisch, bis der Prozessor bei der Befehlsausführung auf einen bedingten Sprung trifft. Dann ist oft noch nicht klar, ob dessen Bedingung erfüllt ist. Natürlich könnte der Prozessor nun eine Pause einlegen und warten, bis feststeht, wo es im Programm weitergeht. Das würde aber bedeuten, dass Dutzende Befehle warten müssen, schließlich werden in jedem Takt mehrere davon dekodiert. Um das zu vermeiden, rät der Prozessor, wo es weitergeht. Damit er möglichst oft richtig liegt, wurden immer aufwendigere Mechanismen zur Sprungvorhersage entwickelt. Wir sehen uns deren Geschichte und Funktion an.