令和3年度 春期 ネットワークスペシャリスト試験 午前Ⅱ 問22

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

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

正解: イ. 2.8

プログラムの実行時間は、以下の手順で計算します。

  1. 平均CPIの計算
    表に示された各演算命令のCPIと構成比率を用いて、1命令あたりの平均実行サイクル数(平均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
    • 平均CPI = 0.6+1.0+1.2=2.80.6 + 1.0 + 1.2 = 2.8 サイクル/命令
  2. 総実行サイクル数の計算
    プログラムは合計1,000,000命令を実行するため、総実行サイクル数は以下のようになります。

    • 総実行サイクル数 = 1,000,000 命令×2.8 サイクル/命令=2,800,000 サイクル1,000,000 \text{ 命令} \times 2.8 \text{ サイクル/命令} = 2,800,000 \text{ サイクル}
  3. 実行時間の計算
    プロセッサのクロック周波数は 1 GHz(=109= 10^9 Hz)です。1秒間に 10910^9 回のクロックが発生するため、1サイクルあたりの時間は 1109\frac{1}{10^9} 秒となります。

    • 実行時間(秒) = 2,800,000 サイクル×1109 秒/サイクル=2,800,000×10−9 秒=0.0028 秒2,800,000 \text{ サイクル} \times \frac{1}{10^9} \text{ 秒/サイクル} = 2,800,000 \times 10^{-9} \text{ 秒} = 0.0028 \text{ 秒}

    求める解答の単位は ミリ秒(1 秒=1,000 ミリ秒1 \text{ 秒} = 1,000 \text{ ミリ秒})であるため、単位を変換します。

    • 0.0028 秒×1,000=2.8 ミリ秒0.0028 \text{ 秒} \times 1,000 = 2.8 \text{ ミリ秒}

よって、必要な時間は2.8ミリ秒となり、正解は「イ」です。

各選択肢の解説

  • ア (0.4): 誤り。正しい計算式から導かれる値ではありません。
  • イ (2.8): 正解。上記の計算手順の通り、2.8ミリ秒となります。
  • ウ (4.0): 誤り。正しい計算式から導かれる値ではありません。
  • エ (28.0): 誤り。単位変換やゼロの数を間違え、桁がずれた場合の誤答と考えられます。

Spineチーム