正答3
解説
正解は3です。
パイプライン処理では、分岐命令の結果が出るまで次に実行する命令が決まらず、処理が止まる問題(制御ハザード)が起こります。
この待ち時間を減らす技法のうち、分岐先を予測して先に実行するものを問う問題です。
【選択肢別解説】
1:× アウトオブオーダー実行は、データの準備ができた命令から、プログラムの順序にとらわれずに実行する方式です。
分岐先を予測して実行する技法ではありません。
2:× 遅延分岐は、分岐命令の直後に置いた命令を、分岐するかどうかにかかわらず実行する方式です。
分岐先を予測するのではなく、空き時間を有効な命令で埋める工夫です。
3:○ 投機実行は、分岐の結果が決まる前に分岐先を予測して命令を先に実行する方式です。
予測が当たればそのまま結果を使い、外れれば結果を破棄してやり直します。
4:× レジスタリネーミングは、同じレジスタ名を使うことによる見かけ上の依存関係を、別の物理レジスタを割り当てて解消する技法です。
分岐先の予測とは関係ありません。
【ポイント】
投機実行は分岐予測と組み合わせて使われ、予測が外れたときは実行結果を取り消します。
制御ハザードへの対策として、分岐予測、投機実行、遅延分岐をセットで覚えておきます。