平成23年度秋期 応用情報技術者試験 午前 問9
CPUのパイプライン処理を有効に機能させるプログラミング方法はどれか。
- ア CASE文を多くする。
- イ 関数の個数をできるだけ多くする。
- ウ 分岐命令を少なくする。
- エ メモリアクセス命令を少なくする。
解答・解説を見る
正解:ウ
AI解説
パイプライン処理は、命令の取出し・解読・実行などのステージを重ねて複数命令を並行処理する方式である。分岐命令があると、分岐先が確定するまで先読みしていた後続命令が無駄になり、パイプラインの乱れ(分岐ハザード)が生じる。したがって分岐命令を少なくするウがパイプラインを有効に機能させる。 ア: CASE文は多分岐であり、分岐命令を増やしてパイプラインの乱れをむしろ増やす。 イ: 関数呼出しも呼出し・復帰という制御の移動(分岐)を伴うため、多くするとパイプライン効率は上がらない。 ウ: 正しい。分岐命令を減らせば命令の流れが乱れず、先読みした命令が無駄にならないため、パイプラインが有効に働く。 エ: メモリアクセス命令の削減は実行速度には寄与し得るが、パイプラインの乱れの主因である分岐の問題への対策ではない。 💡 「パイプラインの敵は分岐」と覚える。関連用語として分岐ハザード、分岐予測、遅延分岐、投機実行がセットで問われる。
出典:平成23年度 秋期 応用情報技術者試験 午前 問9 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。