問題 No.1781
CPUのパイプライン処理において、条件分岐命令の実行などによって本来実行されるはずではない命令がパイプラインに持ち込まれ、後続の処理効率が低下する現象を指す用語はどれか。
【正解の解説】
分岐ハザード
これは、電車の線路のポイント切り替えで、進行方向が変わったのに前の勢いで違うルートに進んでしまい、慌てて引き返すようなものです。CPUも「こっちの道に進むはず」と予測して先回りして作業を進めますが、予測が外れるとそれまでの作業が無駄になり、やり直しのロスが発生してしまいます。
スポンサーリンク
【その他の選択肢の解説】
構造ハザード
構造ハザードは、例えばプリンターや計算機など、1つの機械を2人同時に使おうとして順番待ちが発生する状態に似ています。CPU内の回路(演算器など)の数が足りないために同時に処理できず競合が起きる問題であり、分岐命令の予測ミスとは原因が全く異なります。
データハザード
データハザードは、料理で「前の工程で作っているソースが完成しないと、次の盛り付けができない」という待ち時間が発生する状態に似ています。命令同士のデータの依存関係が原因であり、条件分岐の予測失敗で発生する問題とは区別して覚える必要があります。
ロードハザード
ロードハザードはデータハザードの特殊なケースであり、主にメモリからレジスタに値が読み込まれるまでのわずかな時間差が原因で発生します。条件分岐命令の予測ミスによって本来不要な命令が持ち込まれる現象そのものを指す用語ではありません。