平成29年度 秋期 システムアーキテクト試験 午前Ⅱ 問18

表の CPI と構成比率で,3種類の演算命令が合計 1,000,000命令実行されるプログラムを,クロック周波数が 1 GHz のプロセッサで実行するのに必要な時間は何ミリ秒か。

図の説明テキスト
演算命令 CPI (Cycles Per Instruction) 構成比率 (%)
浮動小数点加算 3 20
浮動小数点乗算 5 20
整数演算 2 60
解答・解説

正解: イ. 2.8

プログラムの実行時間は,以下の手順で求めることができます。

1. 平均CPI(1命令あたりの平均クロック数)の計算

表のCPIと構成比率から,各演算命令の重み付き平均(平均CPI)を求めます。

  • 浮動小数点加算:3×0.20=0.63 \times 0.20 = 0.6
  • 浮動小数点乗算:5×0.20=1.05 \times 0.20 = 1.0
  • 整数演算:2×0.60=1.22 \times 0.60 = 1.2

これらを合計すると,1命令あたりの平均クロック数は次のようになります。
0.6+1.0+1.2=2.8(クロック/命令)0.6 + 1.0 + 1.2 = 2.8\text{(クロック/命令)}

2. 総クロック数の計算

合計 1,000,0001,000,000(=106= 10^6)命令を実行するために必要な総クロック数を求めます。
2.8(クロック/命令)×106(命令)=2.8×106(クロック)2.8\text{(クロック/命令)} \times 10^6\text{(命令)} = 2.8 \times 10^6\text{(クロック)}

3. 実行時間の計算

クロック周波数が 1 GHz1\text{ GHz}(1秒間に 10910^9 クロック)であるため,総クロック数をクロック周波数で割ることで実行時間を算出します。
2.8×106(クロック)109(クロック/秒)=2.8×10−3(秒)=2.8(ミリ秒)\frac{2.8 \times 10^6\text{(クロック)}}{10^9\text{(クロック/秒)}} = 2.8 \times 10^{-3}\text{(秒)} = 2.8\text{(ミリ秒)}

したがって,正解はイです。

各選択肢の解説

  • ア(0.4):誤りです。計算過程や単位換算が正しくありません。
  • イ(2.8):正解です。平均CPIが 2.82.8 となり,10610^6 命令を 1 GHz1\text{ GHz} で実行すると 2.8ミリ秒2.8\text{ミリ秒} になります。
  • ウ(4.0):誤りです。構成比率を考慮せず単純平均などをとった場合にもこの値にはならず,不適切です。
  • エ(28.0):誤りです。命令数やクロック周波数の桁数(単位換算)を1桁誤った値です。

Spineチーム