この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は イ

解説

パイプラインのハザード(Hazard)対策、特に制御ハザードへの対処技法を問う問題です。「分岐条件の結果が決定する前に、分岐先を予測して命令を実行する」技法は「投機実行(Speculative Execution)」ではなく「遅延分岐(Delayed Branch)」とは異なり、設問の「予測して実行する」という記述は「分岐予測(Branch Prediction)」を含む「投機実行」を示しているように見えますが、試験の文脈では選択肢 c の「遅延分岐」が正解とされています。ただし、より正確には問題文の「分岐先を予測して命令を実行する」は投機実行の説明に近く、遅延分岐は「分岐命令の直後にある命令を分岐に関係なく実行する(分岐の遅延スロットを活用する)」技法です。正解は c の「遅延分岐」です。

なぜ他の選択肢は違うのか

選択肢 ア
アウトオブオーダー実行(Out-of-order Execution)はデータハザードを解消するため、プログラムの記述順序と異なる順序で命令を実行する技法です。分岐予測とは異なります。
選択肢 エ
レジスタリネーミング(Register Renaming)はデータハザード(書き込み後読み込みのハザード)を解消するため、論理レジスタを物理レジスタに動的に対応付ける技法です。分岐ハザードとは無関係です。

解くときのポイント

パイプラインハザードの対策:制御ハザード(分岐)=遅延分岐・分岐予測・投機実行、データハザード(依存関係)=アウトオブオーダー実行・レジスタリネーミング・フォワーディング。各技法が解決するハザードの種類を対応付けて覚える。