スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.2075
あるCPUにおいて、4つのステージ(各ステージの処理時間はすべて同じ10ナノ秒)で構成されるパイプライン処理を用いて、100個の命令を連続して実行する場合の総処理時間を求めるシナリオを考える。このとき、すべての命令を完了させるために要する総処理時間として、最も適切なものはどれか。

【正解の解説】

最初の命令が4ステージを通過するのに40ナノ秒かかり、残りの99命令が10ナノ秒ごとに1つずつ完了するため、合計で1030ナノ秒となる。

工場でベルトコンベアを使ってお菓子を次々に箱詰めする作業をイメージしてください。最初の1箱が完成するまでに40秒かかりますが、2箱目以降は10秒に1個のペースで次々と完成します。つまり、100個の命令を処理する場合、最初の1個に40秒、残りの99個がそれぞれ10秒ずつ(計990秒)かかるため、合計で1030秒となるのがパイプライン処理の仕組みです。

スポンサーリンク

【その他の選択肢の解説】

最初の命令が4ステージを通過するのに40ナノ秒かかり、残りの100命令が10ナノ秒ごとに1つずつ完了するため、合計で1040ナノ秒となる。

合計100個の命令を実行する場合、最初の1個はすでに最初の計算に含まれているため、後ろに続く残りの命令は「99個」になります。これを「100個」と勘違いして計算してしまうと、実際より1命令分多く見積もることになり、1040ナノ秒という誤った答えになってしまうのが試験でよくある罠です。

各ステージの処理時間が10ナノ秒であり、それが4つのステージで構成されるため、1命令あたり40ナノ秒となり、100命令では合計で4000ナノ秒となる。

これは命令を1つずつ順番に最後まで終わらせてから次の命令に取りかかる「非パイプライン方式」の計算方法です。工場に例えるなら、1人のお客さんがレジで全商品の会計を終わるまで次の人が並べない状態と同じです。パイプライン処理は作業を同時並行で進めることで時間を短縮する技術なので、この計算方法は本質を誤解しています。

パイプライン処理の効率に関わらず、100個の命令をそれぞれ4つのステージで順番に実行していくため、100命令に40ナノ秒を掛け合わせて合計4000ナノ秒となる。

選択肢Cと同様に、すべての工程を直列で順番にこなす前提で計算しているため、パイプライン処理の強みである「同時進行による効率化」が全く反映されていません。ITの試験では、このように最新の高速な仕組みを適用せず、古い直列処理の計算をしてしまうミスを誘う問題が多く出題されるので注意が必要です。