同じ命令セットをもつコンピュータAとBとがある。
それぞれのCPUクロック周期,及びあるプログラムを実行したときのCPI(Cycles Per Instruction)は,表のとおりである。
そのプログラムを実行したとき,コンピュータAの処理時間は,コンピュータBの処理時間の何倍になるか。
表/|CPUクロック周期|CPI/コンピュータA|1ナノ秒|4.0/コンピュータB|4ナノ秒|0.5
正答3
解説
正解は3です。
同じ命令セットなので、同じプログラムを実行したときの命令数は2台で等しくなります。
CPUの処理時間は「命令数×CPI×クロック周期」で求められます。
CPI(Cycles Per Instruction)は、1命令の実行に平均何クロックかかるかを表す値です。
【計算】
コンピュータAの1命令当たりの時間は、1ナノ秒×4.0=4ナノ秒です。
コンピュータBの1命令当たりの時間は、4ナノ秒×0.5=2ナノ秒です。
命令数は共通なので、処理時間の比は4ナノ秒÷2ナノ秒=2です。
よって、Aの処理時間はBの2倍です。
【選択肢別解説】
1:× 1/32倍は、AとBのCPIを入れ替えて、(1ナノ秒×0.5)÷(4ナノ秒×4.0)と計算した値です。
正しくはAが4ナノ秒、Bが2ナノ秒なので、Aの方が遅く1倍より大きくなります。
2:× 1/2倍は、AとBの比を逆にしたBの処理時間÷Aの処理時間です。
問われているのはAがBの何倍かなので、4÷2で2倍です。
3:○ Aは1命令に4ナノ秒、Bは2ナノ秒かかるので、Aの処理時間はBの2倍になります。
4:× 8倍は、CPIの比(4.0÷0.5=8)だけを見た値です。
クロック周期はBの方が4倍長いので、それも掛け合わせる必要があります。
【ポイント】
処理時間はクロック周期とCPIの積で比べます。
クロック周波数で与えられた場合は、周期=1÷周波数に直してから計算します。