応用情報技術者 2013年 春期 午前2 問09
問題文
表に示す命令ミックスによるコンピュータの処理性能は何MIPSか。

選択肢
ア:11
イ:25
ウ:40(正解)
エ:90
🔒 解説は解答すると表示されます
命令ミックスでのMIPS算出【午前2解説】
正解の理由
命令ごとの実行時間と出現頻度から「平均命令実行時間」を求め、その逆数で1秒あたりの命令数を出します。表のデータを重み付き平均すると平均実行時間は ns になり、これをMIPS(百万命令/秒)に換算すると になります。したがって選択肢の中では ウ が正しい答えです。
計算の要点:
- 平均実行時間 ns
- MIPS
- よって (MIPS)
解法ステップ
- 出現頻度(%)を割合に直す:50%→0.5、30%→0.3、20%→0.2。
- 各命令の実行時間(ns)を重み付きで和を取る:
- 平均実行時間から命令毎の処理速度を求める:
- MIPS(百万命令/秒)に直す:
(短縮式:MIPS = 1000 ÷ 平均実行時間(ns))
簡単な計算例(Python)
times_ns = [10, 40, 40]
freq = [0.5, 0.3, 0.2]
t_avg = sum(t*f for t,f in zip(times_ns, freq)) # 25.0 ns
mips = 1000.0 / t_avg # 40.0 MIPS
print(t_avg, mips)
選択肢別の誤答解説
-
ア: 11
誤りの典型例は「各命令の実行時間を合計してしまう」操作です。
誤計算例:10 + 40 + 40 = 90(ns)を平均時間と誤解し、1/(90e-9) = 11.11×10^6命令/秒 ≒ 11 MIPS とする。実際には種類ごとの出現頻度を考慮した重み付き平均を取る必要があります。 -
イ: 25
これは「平均実行時間(25 ns)をそのままMIPSと読み替える」誤りです。平均実行時間が25 nsであることは正しいですが、MIPSは「命令/秒を百万単位で表した値」であり、単位変換が必要です。平均時間25 ns → MIPS は です。25とするのは単位の取り違え(nsとMIPSの混同)です。 -
エ: 90
あり得る誤りの一例は「最速命令だけを基準にして全体の性能を過大評価する」ことです。例えば整数演算の最速値のみを取って MIPS とし、適当に効率係数0.9を掛けて MIPS とする誤りです。これは出現頻度を無視してしまっており、実際の命令構成を反映していません。
(いずれの誤りも「出現頻度を割合として扱う」「単位を揃える」「重み付き平均を取る」という基本手順の欠落が原因です)
よくある誤解
- 出現頻度を%で与えられた場合、100で割らずにそのまま掛けてしまう(50,30,20 をそのまま掛ける)と計算が狂います。必ず0.5, 0.3, 0.2にすること。
- 平均実行時間(ns)とMIPS(百万命令/秒)を混同する。単位変換(ns → 秒、命令/秒 → MIPS)を明示する習慣をつけてください。
- 単純平均((10+40+40)/3)や合計(10+40+40)で処理性能を出してしまうミス。頻度による重みづけが必須です。
補足コラム
- MIPSとCPIの関係:CPUのクロック周波数 f (Hz) と CPI(1命令あたり平均クロック数)を知れば、命令/秒 = f / CPI となり、MIPS = f / (CPI × 10^6) です。本問の「実行速度(ns)」は1命令あたりの時間なので、CPI とクロックから求める場合と同等に扱えます。
- 実務では「命令ミックス」はプログラム特性に依存します。ベンチマークを取る際はターゲットアプリケーションに近いミックスを使うことが重要です。
FAQ
Q. 出現頻度が整数百分率で与えられたらどう扱う?
A. 100で割って割合(0〜1)に直して重み付き和を取ります。例:50% → 0.5。
A. 100で割って割合(0〜1)に直して重み付き和を取ります。例:50% → 0.5。
Q. 平均実行時間を出す以外のアプローチは?
A. 各命令種別の「命令/秒」を出してから出現割合で重み付けして合計する方法でも同じ結果になります(ただし単位に注意)。
A. 各命令種別の「命令/秒」を出してから出現割合で重み付けして合計する方法でも同じ結果になります(ただし単位に注意)。
Q. 小数点の扱いはどうする?
A. 中間計算は十分な桁数で行い、最終答案では問題の指示に従った有効桁で記載してください。概算でOKな場合でも単位変換ミスは致命的です。
A. 中間計算は十分な桁数で行い、最終答案では問題の指示に従った有効桁で記載してください。概算でOKな場合でも単位変換ミスは致命的です。
関連キーワード: MIPS、平均実行時間、重み付き平均、単位変換、命令ミックス

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

