平成22年度 春期 午前 問10
コンピュータ構成要素
CPIに関する問題
同じ命令セットをもつコンピュータ A と B がある。それぞれの CPU クロック周期,及びあるプログラムを実行したときの CPI(Cycles Per Instruction)は,表のとおりである。そのプログラムを実行したとき,コンピュータ A の処理時間は,コンピュータ B の処理時間の何倍になるか。
〔表〕
│ CPU クロック周期 │ CPI コンピュータ A │ 1 ナノ秒 │ 4.0 コンピュータ B │ 4 ナノ秒 │ 0.5
- ア1/32
- イ1/2
- ウ2
- エ8
答えと解説を見る
✓ これが正解ウ2
解説
1 命令が 4 ナノ秒と 2 ナノ秒なので 2 倍です。
処理時間は、実行する命令の数に 1 命令あたりのクロック数を掛け、さらにクロック 1 回分の時間を掛けて求めます。設問は同じ命令セットをもつ 2 台で同じプログラムを走らせると断っているので、実行される命令の数は両方で等しく、比を取れば約分で消えてしまいます。残るのは 1 命令あたりにかかる時間だけで、これはクロック周期と CPI の掛け算です。一方は 1 ナノ秒に 4.0 を掛けて 4 ナノ秒、もう一方は 4 ナノ秒に 0.5 を掛けて 2 ナノ秒になります。設問が聞いているのは前者の処理時間が後者の何倍かという向きなので、4 を 2 で割って正解は 2 倍です。命令数を仮に 100 本と置くと 400 ナノ秒と 200 ナノ秒になり、やはり 2 倍で、何本に置き換えても比は変わりません。クロック周期が短いほうが必ず速いとは限らないことを示す、ちょうど逆転した例になっています。
ほかの選択肢はなぜ違うのか
- ア1/32:クロック周期と 1 命令あたりのクロック数を、相手側の値と取り違えて掛け合わせた形です。1 ナノ秒に 0.5 を掛けた 0.5 と、4 ナノ秒に 4.0 を掛けた 16 を比べるとこの値になりますが、組合せが入れ替わっています。
- イ1/2:2 ナノ秒を 4 ナノ秒で割った形で、割り算の向きが逆になっています。設問は前者の処理時間が後者の何倍かと聞いているので、割られる側と割る側を取り違えるとこの値が出てきます。
- エ8:1 命令あたりのクロック数どうしだけを比べた形で、4.0 を 0.5 で割るとこの値になります。クロック 1 回分の時間がまったく違う 2 台なので、クロック数だけを並べても処理時間の比にはなりません。
出典:平成22年度 春期 応用情報技術者試験 午前 問10
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)