システムアーキテクト試験 2017年 午前218


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

解説

演算命令のCPIと構成比率から実行時間を求める問題【午前2 解説】

要点まとめ

  • 結論:演算命令ごとのCPIと構成比率から加重平均CPIを求め、命令数とクロック周波数で実行時間を計算します。
  • 根拠:実行時間は「命令数 × CPI ÷ クロック周波数」で求められ、CPIは各命令の構成比率で加重平均します。
  • 差がつくポイント:CPIの加重平均計算を正確に行い、単位変換(秒→ミリ秒)を忘れないことが重要です。

正解の理由

この問題では、3種類の演算命令のCPIと構成比率から平均CPIを計算し、命令数とクロック周波数を用いて実行時間を求めます。
具体的には、平均CPIは
3×0.2+5×0.2+2×0.6=0.6+1.0+1.2=2.83 \times 0.2 + 5 \times 0.2 + 2 \times 0.6 = 0.6 + 1.0 + 1.2 = 2.8
となり、命令数1,000,000命令、クロック周波数1GHz(10910^9Hz)を使うと、
1,000,000×2.81,000,000,000=0.0028=2.8ミリ秒\frac{1,000,000 \times 2.8}{1,000,000,000} = 0.0028 \text{秒} = 2.8 \text{ミリ秒}
よって正解はイ: 2.8です。

よくある誤解

CPIの加重平均を単純平均で計算したり、クロック周波数の単位変換を忘れて秒とミリ秒を混同するミスが多いです。

解法ステップ

  1. 各演算命令のCPIと構成比率(%)を小数に直す(例:20% → 0.2)。
  2. 各命令のCPIに構成比率を掛けて加重平均CPIを求める。
  3. 命令数に加重平均CPIを掛けて総クロック数を計算する。
  4. 総クロック数をクロック周波数で割り、実行時間(秒)を求める。
  5. 秒をミリ秒に変換する(1秒 = 1000ミリ秒)。

選択肢別の誤答解説

  • ア: 0.4
    → CPIの加重平均を誤って小さく計算した可能性。構成比率の計算ミスが考えられます。
  • イ: 2.8
    → 正解。正確に加重平均CPIを計算し、単位変換も正しい。
  • ウ: 4
    → CPIの加重平均を過大評価したか、命令数や周波数の単位を誤った可能性。
  • エ: 28
    → 単位変換ミスで秒をミリ秒に変換せず、そのまま大きな値を選択した誤り。

補足コラム

CPI(Cycles Per Instruction)は命令1つあたりに必要なクロック数を示し、プログラム全体の性能評価に重要です。
構成比率は命令の実行割合を示し、加重平均CPIを求める際に必須です。
実行時間は「命令数 × CPI ÷ クロック周波数」で求められ、単位変換に注意しましょう。

FAQ

Q: CPIの加重平均はなぜ必要ですか?
A: プログラム内で命令ごとにCPIが異なるため、全体の平均的なCPIを求める必要があるからです。
Q: クロック周波数が1GHzとは何を意味しますか?
A: 1秒間に10億回のクロックがあることを示し、実行時間計算の分母として使います。
Q: 実行時間をミリ秒で求めるにはどうすればよいですか?
A: 秒で求めた値に1000を掛けてミリ秒に変換します。

関連キーワード: CPI, クロック周波数, 実行時間計算, 加重平均, 命令構成比率
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ