令和3年度 春期 午前Ⅱ 問22
コンピュータ構成要素
CPIに関する問題
表の CPI と構成比率で,3 種類の演算命令が合計 1,000,000 命令実行されるプログラムを,クロック周波数が 1 GHz のプロセッサで実行するのに必要な時間は何ミリ秒か。
| 演算命令 | CPI(Cycles Per Instruction) | 構成比率(%) |
|---|---|---|
| 浮動小数点加算 | 3 | 20 |
| 浮動小数点乗算 | 5 | 20 |
| 整数演算 | 2 | 60 |
- ア0.4
- イ2.8
- ウ4.0
- エ28.0
答えと解説を見る
✓ これが正解イ2.8
解説
平均 CPI 2.8 × 100 万命令 × 1 ナノ秒で 2.8 ミリ秒です。
実行時間は、命令数×平均 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 クロックです。クロック周波数 1 GHz は 1 秒間に 10 億クロックなので、1 クロックは 1 ナノ秒です。したがって実行時間は 2,800,000×1 ナノ秒=2.8 ミリ秒です。命令数、平均 CPI、1 クロックの時間の三つを掛け合わせる形で覚えておくと、単位の換算でも迷いません。
ほかの選択肢はなぜ違うのか
- ア0.4:0.4 ミリ秒は、表の CPI と構成比率をどう組み合わせても、この条件からは導けない値です。平均 CPI 2.8 に 100 万命令を掛けた 280 万クロックを 1 GHz で換算すると 2.8 ミリ秒であり、0.4 にはなりません。
- ウ4.0:4.0 ミリ秒は、浮動小数点加算と乗算の CPI 3 と 5 の単純平均 4 を、全命令の CPI として使った場合の値です(1,000,000×4×1 ナノ秒)。構成比率で重み付けしておらず、整数演算の CPI 2 も無視しています。
- エ28.0:28.0 ミリ秒は、正しい値の 10 倍です。例えばクロック周波数を 100 MHz(1 クロック 10 ナノ秒)として計算すると、2,800,000×10 ナノ秒=28 ミリ秒となり、この値になります。周波数の換算で桁を取り違えた形です。
出典:令和3年度 春期 ネットワークスペシャリスト試験 午前Ⅱ 問22
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)