[第31回]国家試験解説[AP令和5年春]

応用情報技術者試験 令和5年春期 問9

全ての命令が5ステージで完了するように設計された,パイプライン制御のCPUがある。20命令を実行するには何サイクル必要となるか。ここで,全ての命令は途中で停止することなく実行でき,パイプラインの各ステージは1サイクルで動作を完了するものとする。

ア:20   イ:21   ウ:24   エ:25

出典 IPA公開[過去問題]:https://www.ipa.go.jp/shiken/mondai-kaiotu/ps6vr70000010d6y-att/2023r05h_ap_am_qs.pdf

パイプライン制御とは

マイクロプロセッサ(CPU)内部での命令実行方式の1つです。

1つの命令を複数の段階に分割してそれぞれを別の回路で実行することで、いくつかの命令の実行を並行して進める方式。

CPUが処理する命令は「命令の読み込み(フェッチ)」や「解釈(デコード)」、「実行」など複数の段階があります。(パイプラインではない)単純な処理では1つの命令が全て完了してからでないと次の命令を実行できないため、効率が悪く、高速に処理ができない問題がありました。

パイプラインでは1件目の「命令を実行」をしている時に2件目の「命令の解釈」を行、3件目の「命令読み込み」を行うことで並列で処理ができ、1件あたりの処理時間を大幅に短くすることができます。

1つの命令が5ステージからなり、全部で20命令をパイプライン制御で実行する場合、上図のように1つずつズラしながら実行します。5ステージ×20命令=25と考えるかもしれませんが、実際には1つずつズレているだけなので、5ステージ+19命令×1ステージ=5+19=24となります。

上図はイメージしやすいように表化しましたが、計算で求めることもできます。ただ、この問題の様に命令サイクルを問うタイプの問題は他にもあるので仕組みで理解するほうがいいでしょう。

正解は「ウ:24」です。