コンピュータの基礎応用問題
パイプライン処理中に分岐命令が発生したとき、一般的に起きる問題として最も適切なものはどれか。
A.パイプライン全体が停止し、CPUがリセットされる
✗ 分岐命令でCPUがリセットされることはありません。パイプラインの制御機構が対処します。
B.分岐先が確定するまでパイプラインにバブル(無効ステージ)が生じ、処理効率が低下する← 正解
✓ 正解です。分岐先アドレスが確定するまでフェッチ済みの命令が無効になり、パイプラインにバブルが挿入されてCPI(命令あたりサイクル数)が増加します。
C.分岐命令はパイプラインの最終ステージのみで処理されるため、性能への影響はない
✗ 分岐命令はパイプラインの早い段階でフェッチされますが、分岐先確定には後のステージが必要なため性能に影響します。
D.分岐命令が検出された時点で先行する全命令の実行結果が破棄される
✗ 分岐前に完了済みの命令の実行結果は保持されます。破棄されるのは分岐後に誤ってフェッチされた命令です。