応用情報技術者 2013年 春期 午前2 問10
問題文
CPUのパイプラインハザードのうち、制御ハザードの発生原因として、適切なものはどれか。
選択肢
ア:キャッシュミス
イ:先行する命令の結果に依存する演算命令
ウ:ハードウェア資源の競合
エ:分岐命令(正解)
CPUのパイプラインハザードのうち、制御ハザードの発生原因【午前2 解説】
要点まとめ
- 結論:制御ハザードは主に分岐命令によって発生し、次に実行すべき命令の決定が遅れることが原因です。
- 根拠:分岐命令の結果が確定するまで、パイプラインは正しい命令を確定できず、誤った命令をフェッチする可能性があります。
- 差がつくポイント:制御ハザードとデータハザード、構造ハザードの違いを明確に理解し、分岐命令が制御ハザードの代表例であることを押さえることです。
正解の理由
制御ハザードは、プログラムの制御の流れを変える命令、特に分岐命令が原因で発生します。分岐命令の結果が判明するまで、次に実行すべき命令のアドレスが確定しないため、パイプラインは正しい命令を読み込めず、誤った命令の実行や無駄な処理が発生します。これが制御ハザードの本質であり、選択肢の中で分岐命令(エ)が該当します。
よくある誤解
キャッシュミスやハードウェア資源の競合は制御ハザードではなく、それぞれメモリアクセス遅延や構造ハザードの原因です。データ依存はデータハザードに分類されます。
解法ステップ
- パイプラインハザードの種類を確認する(制御、データ、構造)。
- 制御ハザードの定義を理解する(制御の流れの不確定性による遅延)。
- 各選択肢の原因をハザードの種類に当てはめる。
- 分岐命令が制御ハザードの典型例であることを確認。
- 正解を選択肢エと判断する。
選択肢別の誤答解説
- ア: キャッシュミスはメモリアクセスの遅延であり、制御ハザードではなくメモリ関連の遅延問題です。
- イ: 先行命令の結果に依存する演算命令はデータハザードの原因であり、制御ハザードとは異なります。
- ウ: ハードウェア資源の競合は構造ハザードの原因で、制御ハザードとは区別されます。
- エ: 分岐命令は制御の流れを変えるため、制御ハザードの典型的な原因です。
補足コラム
制御ハザードを軽減するために、分岐予測や遅延分岐といった技術が用いられます。分岐予測は分岐の結果を予測して先読みし、パイプラインの停止を減らす手法です。これによりCPUの性能向上が図られています。
FAQ
Q: 制御ハザードとデータハザードの違いは何ですか?
A: 制御ハザードは分岐命令など制御の流れの不確定性による遅延、データハザードは命令間のデータ依存による遅延です。
A: 制御ハザードは分岐命令など制御の流れの不確定性による遅延、データハザードは命令間のデータ依存による遅延です。
Q: キャッシュミスはパイプラインハザードに含まれますか?
A: キャッシュミスはパイプラインの遅延要因ですが、制御・データ・構造ハザードのいずれにも分類されず、メモリアクセス遅延として扱われます。
A: キャッシュミスはパイプラインの遅延要因ですが、制御・データ・構造ハザードのいずれにも分類されず、メモリアクセス遅延として扱われます。
関連キーワード: パイプラインハザード、制御ハザード、分岐命令、データハザード、構造ハザード

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

