平成27年度 秋期 応用情報技術者試験 午前 問8
テクノロジ/コンピュータ構成要素CPUのパイプライン処理を有効に機能させるプログラミング方法はどれか。ここで,CPUは命令の読込みとデータのアクセスを分離したアーキテクチャとする。
出典:平成27年度 秋期 応用情報技術者試験 午前 問8
- アCASE文を多くする。
- イ関数の個数をできるだけ多くする。
- ウ分岐命令を少なくする。
- エメモリアクセス命令を少なくする。
正解:ウ
解説
パイプライン処理は複数の命令の実行段階を重ねて処理することで高速化を図りますが,分岐命令が実行されると分岐先が確定するまで後続命令の先読みが無駄になる「パイプラインハザード」が生じます。したがって,分岐命令を減らすことがパイプラインを有効に機能させるためのプログラミング上の工夫になります。
選択肢ごとの解説
- ア誤り。CASE文(多分岐)を多くすると分岐が増え,かえってパイプラインの乱れが生じやすくなります。
- イ誤り。関数呼出しの増加はスタック操作や分岐(ジャンプ)を伴うことが多く,パイプラインには不利に働きます。
- ウ正しい。分岐命令はパイプラインの先読みを乱す主要因であるため,分岐命令を減らすことがパイプラインを有効に機能させます。
- エ誤り。メモリアクセス命令の削減はキャッシュ効率などには寄与しますが,パイプラインの分岐ハザードには直接関係しません。