平成27年度秋期 応用情報技術者試験 午前 問8
CPUのパイプライン処理を有効に機能させるプログラミング方法はどれか。ここで,CPUは命令の読込みとデータのアクセスを分離したアーキテクチャとする。
- ア CASE文を多くする。
- イ 関数の個数をできるだけ多くする。
- ウ 分岐命令を少なくする。
- エ メモリアクセス命令を少なくする。
解答・解説を見る
正解:ウ
AI解説
パイプライン処理は複数の命令を段階(ステージ)をずらして並行実行する方式である。分岐命令があると、先読みして処理中の後続命令が分岐成立時に無駄になり、パイプラインをやり直す必要が生じる(分岐ハザード)。したがって分岐命令を少なくするプログラミングがパイプラインを有効に機能させる。 ア: CASE文は多方向分岐であり、分岐命令を増やしてパイプラインの乱れ(ハザード)を増やすため逆効果である。 イ: 関数呼出しもジャンプ(分岐)を伴うため、個数を増やすことはパイプラインには不利に働く。 ウ: 正解。分岐命令を減らせば命令の流れが乱れず、パイプラインの並行実行効果を最大限に発揮できる。 エ: 本問のCPUは命令読込みとデータアクセスを分離したアーキテクチャなので、メモリアクセス命令の削減はパイプライン阻害の主因への対策にならない。 💡 「パイプラインの敵=分岐(制御ハザード)」。対策技術である分岐予測・投機実行・遅延分岐とセットで覚えておくと関連問題にも対応できる。
出典:平成27年度 秋期 応用情報技術者試験 午前 問8 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。