Branch Delay Slot

In der Rechnerarchitektur ist eine Branch Delay Instruction ein Maschinenbefehl, der direkt einem bedingten Verzweigungsbefehl folgt und unabhängig davon, ob die Verzweigung genommen wurde oder nicht, immer ausgeführt wird. Die Position eines solchen Maschinenbefehls in der Pipeline heißt Branch Delay Slot (Warteplatz). Branch Delay Slots werden verwendet, um die Pipeline besser auszulasten. Sie können sowohl in verschiedenen RISC-Architekturen wie MIPS, PA-RISC, SPARC und SuperH als auch in DSP-Architekturen wie µPD77230 und TMS320C3x/TMS320C4x gefunden werden.

Funktionsweise

Bei Prozessoren, die eine Pipeline verwenden, wird die Ausführung eines Befehls in mehrere Stufen aufgeteilt. Dabei werden mehrere Befehle parallel ausgeführt, wobei in jeder Stufe genau ein Befehl bearbeitet wird.

Bei Verzweigungsbefehlen tritt dabei ein sogenannter Hazard auf: wenn der nächste Befehl geladen wird, ist der Verzweigungsbefehl noch nicht fertig ausgeführt; deshalb ist nicht klar, welcher Befehl geladen werden soll. Daher muss nach einem Verzweigungsbefehl gewartet werden. Um diese Wartezeit ausnutzen zu können, wird die Branch Delay Instruction verwendet. Sie wird in jedem Fall ausgeführt, unabhängig vom Resultat des Verzweigungsbefehls.