表のCPIと構成比率で,3種類の演算命令が合計1,000,000命令実行されるプログラムを,クロック周波数が1GHzのプロセッサで実行するのに必要な時間は何ミリ秒か。
演算命令|CPI(Cycles Per Instruction)|構成比率(%)/浮動小数点加算|3|20/浮動小数点乗算|5|20/整数演算|2|60
0.4 2.8 4.0 28.0 購入状況を確認しています… 正答 2
解説 正解は2です。
CPI(Cycles Per Instruction、1命令あたりの平均クロック数)から、プログラムの実行時間を求める問題です。
命令の種類ごとにCPIが違うので、構成比率で重み付けした平均CPIを使います。
【計算】
平均CPI=3×0.2+5×0.2+2×0.6です。
これは0.6+1.0+1.2=2.8クロック/命令です。
総クロック数=1,000,000命令×2.8=2,800,000クロックです。
クロック周波数1GHzでは、1クロックの時間は1ナノ秒です。
実行時間=2,800,000×1ナノ秒=2,800,000ナノ秒=2.8ミリ秒です。
【選択肢別解説】
1:× 0.4ミリ秒は、上の計算結果と一致しません。
平均CPIを正しく求めると2.8ミリ秒になります。
2:○ 平均CPI2.8から総クロック数280万を求め、1クロック1ナノ秒を掛けると2.8ミリ秒になります。
3:× 4.0ミリ秒は、上の計算結果と一致しません。
重み付けした平均CPIで計算すると2.8ミリ秒です。
4:× 28.0ミリ秒は、正しい値の10倍で、桁を誤った値です。
正しくは2.8ミリ秒です。
【ポイント】
実行時間=命令数×平均CPI×クロック周期、という関係を覚えておきましょう。
1GHzなら1ナノ秒、100MHzなら10ナノ秒のように、周波数の逆数が周期です。