応用情報技術者 2023年 秋期 午前2 問09
問題文
パイプラインの性能を向上させるための技法の一つで、分岐条件の結果が決定する前に、分岐先を予測して命令を実行するものはどれか。
選択肢
ア:アウトオブオーダー実行
イ:遅延分岐
ウ:投機実行(正解)
エ:レジスタリネーミング
パイプラインの性能向上技法【午前2 解説】
要点まとめ
- 結論:分岐条件の結果が確定する前に分岐先を予測して命令を実行する技法は「投機実行」である。
- 根拠:投機実行は分岐予測に基づき、正しいかどうか確定する前に命令を先読みして処理を進めるため、パイプラインの停滞を減らす。
- 差がつくポイント:分岐予測と命令の先行実行を理解し、他の技法(アウトオブオーダー実行や遅延分岐)との違いを明確に区別できること。
正解の理由
「投機実行」は分岐命令の結果がまだ判明していない段階で、分岐先の命令を予測して実行する技法です。これにより、分岐によるパイプラインの停止を回避し、CPUの処理効率を向上させます。分岐予測が正しければそのまま処理が進み、誤っていれば結果を破棄して正しい分岐先から再実行します。
よくある誤解
投機実行は「アウトオブオーダー実行」と混同されやすいですが、アウトオブオーダー実行は命令の順序を入れ替えて実行する技法であり、分岐予測とは直接関係ありません。
解法ステップ
- 問題文の「分岐条件の結果が決定する前に分岐先を予測して命令を実行する」という表現に注目する。
- 各選択肢の特徴を整理する。
- 「アウトオブオーダー実行」は命令の順序変更、「遅延分岐」は分岐命令の遅延スロット利用、「レジスタリネーミング」はレジスタ競合回避の技法。
- 分岐予測と先行実行を行うのは「投機実行」であると判断する。
- よって正解はウ。
選択肢別の誤答解説
- ア: アウトオブオーダー実行
命令の実行順序を動的に変更し、依存関係のない命令を先に処理する技法であり、分岐予測とは異なる。 - イ: 遅延分岐
分岐命令の直後の命令を必ず実行することで分岐遅延を埋める技法で、分岐先の予測や先行実行ではない。 - ウ: 投機実行
分岐予測に基づき、分岐結果が確定する前に命令を実行し、パイプラインの停滞を防ぐ技法。 - エ: レジスタリネーミング
レジスタの競合を回避し、命令の並列実行を促進する技法で、分岐予測とは無関係。
補足コラム
投機実行はCPUの高性能化に不可欠な技術であり、分岐予測の精度向上とセットで用いられます。誤った予測時には実行結果を破棄し、正しい分岐先から再実行するため、ハードウェアの制御が複雑になりますが、パイプラインの効率を大幅に改善します。
FAQ
Q: 投機実行とアウトオブオーダー実行はどう違いますか?
A: 投機実行は分岐予測に基づく先行実行、アウトオブオーダー実行は命令の依存関係を考慮して順序を変える技法です。
A: 投機実行は分岐予測に基づく先行実行、アウトオブオーダー実行は命令の依存関係を考慮して順序を変える技法です。
Q: 遅延分岐はなぜ使われるのですか?
A: 分岐命令の直後の命令を必ず実行することで、分岐によるパイプラインの空転を減らすためです。
A: 分岐命令の直後の命令を必ず実行することで、分岐によるパイプラインの空転を減らすためです。
関連キーワード: 投機実行、分岐予測、パイプライン、CPU性能向上、遅延分岐、アウトオブオーダー実行、レジスタリネーミング

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

