戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

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


問題文

表のCPIと構成比率で、3種類の演算命令が合計1,000,000命令実行されるプログラムを、クロック周波数が1GHzのプロセッサで実行するのに必要な時間は何ミリ秒か。
システムアーキテクト 2017年 午前2 問18の問題画像

選択肢

0.4
2.8(正解)
4
28

🔒 解説は解答すると表示されます

平均CPIによる実行時間算出【午前2解説】

正解の理由

各命令のCPIに構成比率を掛けて合計すると平均CPIが求まります。その平均CPIに命令総数を掛けて総サイクル数を求め、クロック周波数で割れば実行時間が出ます。今回の計算では平均CPIが になり、1,000,000命令で必要な時間は となるため、選択肢のうち (2.8)が正しいです。

解法ステップ

  1. 各命令の構成比率を小数に直す:20% → , 60% →
  2. 平均CPIを求める:
  3. 総サイクル数を求める:
  4. クロック周波数1GHz()で時間に換算:

選択肢別の誤答解説

  • ア: 0.4
    • 典型的な誤りは「平均CPIを誤って小数点以下で計算した」か、命令数や周波数の桁を誤って扱い のような誤操作をした場合です。今回の正しい平均CPIは であり、0.4は意味を成しません。
  • : 2.8
    • 平均CPI計算と単位変換(秒→ミリ秒)を正しく行った結果です。最終の時間は 2.8 ms になります。
  • ウ: 4
    • おそらく各CPIの単純平均 や別の誤った加重計算、あるいは命令数や周波数の桁を誤って扱い、位取りを間違えた結果として生じます。今回のデータでは単純平均は意味がなく、構成比で重み付けする必要があります。
  • エ: 28
    • 単位変換ミス(ms と s の混同)や、クロック周波数を と誤認して計算した場合に起こりやすい桁落ちです。正しくは 2.8 ms であり、28 は10倍の誤りです。

よくある誤解

  • 構成比率(%)をそのまま足す:パーセンテージは小数(0.20 など)に直してから掛け算する必要があります。20+20+60=100 は確認用であり、そのまま計算には使えません。
  • 単純平均と加重平均の混同:命令の割合が異なると単純平均ではなく加重平均(構成比で重み付け)を使います。
  • 周波数の単位変換ミス:GHz → Hz、秒 → ミリ秒の変換を忘れると10^3や10^9の桁落ちが発生します。

補足コラム

CPI(Cycles Per Instruction)は命令1件あたりの平均クロック数を表します。平均CPIはプロセッサ性能評価で重要な指標で、命令ミックス(構成比)によって変わります。実行時間は以下の三要素で表せます:
命令数とクロック周波数が固定なら、平均CPIを下げる(パイプライン改善や命令最適化)ことで実行時間が短くなります。
簡単な計算例(Python):
instr = 1_000_000
cpi = [3, 5, 2]
ratio = [0.20, 0.20, 0.60]
avg_cpi = sum(ci * r for ci, r in zip(cpi, ratio))
cycles = instr * avg_cpi
time_ms = cycles / 1e9 * 1e3  # 1 GHz -> seconds, *1e3 -> ms
print(avg_cpi, cycles, time_ms)  # 2.8 2800000 2.8

FAQ

Q. なぜ構成比は小数に直すのですか?
A. パーセンテージは比率です。計算では割合として扱うため、100で割って小数にします(20% → 0.20)。
Q. CPIとIPCの違いは?
A. CPIは1命令あたりのクロック数、IPC(Instructions Per Cycle)は1クロックあたりの命令数で、逆数的な関係にあります(理想的には IPC = 1 / CPI だが、命令長や並列実行などで直接逆数にならない場合もあります)。
Q. クロック周波数が変わったらどう影響しますか?
A. 周波数が高くなると実行時間は短くなります(時間はサイクル数を周波数で割った値)。例えば2GHzなら時間は今回の半分になります。

関連キーワード: CPI、平均CPI、命令実行時間、クロック周波数、ミリ秒変換
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

システムアーキテクト
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

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

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について