遅延スロット
例えば、R3000のパイプラインは5段であり、1段目は命令フェッチ、2段目は命令デコード、3段目はアドレス計算である。従って、2段目で分岐命令であると判明した時点でパイプラインをフリーズさせ、3段目でアドレス計算を行いプログラムカウンタを書き換えるが、既に分岐命令の次の命令はパイプライン上にある。これを無効化しないことでパイプラインの効率を上げようとすると、分岐遅延スロットが生じる。分岐遅延スロットでは分岐命令の結果に依存しない任意の命令を実行できる。このような最適化は、コンパイラが命令を分岐遅延スロットに移動させることでなされる。また、デバッガでブレークポイントを設定する場合や、ステップ実行をする場合、分岐遅延スロットは特殊な取り扱いが必要になる。つまり、ブレークポイントについては分岐遅延スロットでは設定できないようにするか、もし設定できるようにするなら分岐遅延スロットからの実行再開後、該当する分岐命令のターゲットアドレスに分岐するように単なる実行再開とは区別した動作が必要となる。