令和5年度 春期 午前 問9
コンピュータ構成要素
パイプライン制御に関する問題
全ての命令が 5 ステージで完了するように設計された,パイプライン制御の CPU がある。20 命令を実行するには何サイクル必要となるか。ここで,全ての命令は途中で停止することなく実行でき,パイプラインの各ステージは 1 サイクルで動作を完了するものとする。
- ア20
- イ21
- ウ24
- エ25
答えと解説を見る
✓ これが正解ウ24
解説
命令数にステージ数を足して一を引きます。
設問は、全ての命令が5ステージで完了するパイプライン制御のCPUで、20命令を実行するのに必要なサイクル数を四つから選ばせています。見分けの軸は、最初の一本ぶんの立ち上がりを数えているかどうかと、重なっている一サイクルを二重に数えていないかどうか、という二点です。一本目の命令が完了するまでは、ステージの数だけ、つまり5サイクルかかります。二本目からは一サイクルごとに一本ずつ出てくるので、残りの19本には19サイクルです。合わせて24サイクルとなり、一般には命令数にステージ数を足して1を引いた形にまとめられます。1を引くのは、一本目が完了するサイクルと二本目が始まるサイクルが重なっているからで、数え方を最初の一本と残りに割ると重複を数えずに済みます。ちなみにパイプラインを使わない場合は20命令×5ステージで100サイクルかかるので、この仕組みが効いている度合いも見て取れます。
ほかの選択肢はなぜ違うのか
- ア20:20 という値です。パイプラインが埋まったあとの、一サイクルに一命令という理論上の速さだけを見ています。最初の一本が完了するまでに要する立ち上がりのぶんが計上されていません。
- イ21:21 という値です。立ち上がりを二サイクルとみなして計算した形にあたります。立ち上がりに要するのはステージの数ぶんですから、そこに2を置いた点が実際とずれています。
- エ25:25 という値です。命令数とステージ数を足しただけで、重なっているぶんを差し引いていません。二重に数えた一サイクルが残るため、正しい値より1だけ大きくなっています。
出典:令和5年度 春期 応用情報技術者試験 午前 問9
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)