CPUのパイプライン処理を有効に機能させるプログラミング方法はどれか。
ア | CASE文を多くする。 |
イ | 関数の個数をできるだけ多くする。 |
ウ | 分岐命令を少なくする。 |
エ | メモリアクセス命令を少なくする。 |
パイプラインは,1つの命令の実行サイクルを複数のステージに分割し,各段階の処理を別々の装置が担当することによって,各命令のステージを重ねて,並列実行することにより 1命令あたりの実行効率を上げる方式である。
ア | × | CASE文を多くすることは、分岐命令が増えることと同じである。よってパイプライン処理の効率は悪くなる。 |
イ | × | 関数の個数を多くすると、関数の戻り値によって次の処理が変わる可能性が増えるのでパイプライン処理の効率は悪くなる。 |
ウ | ○ | 分岐命令がある場合、結果によって次に実行するべき命令がわからないため、パイプラインを止めて次に実行すべき命令が判明するのを待たなければならない。すなわち分岐命令を少なくすることでパイプラインハザードが減りパイプライン処理が有効に機能しやすくなる。 |
エ | × | メモリアクセス命令はCPUの内部処理ではないので並行実行しやすい。したがってメモリアクセス命令を減らせばCPUの内部処理が増えるためパイプライン処理の効率は悪くなる。 |