基本情報技術者 2017年 春期 午前(科目A) 問08
問題文
動作クロック周波数が700MHzのCPUで、命令実行に必要なクロック数及びその命令の出現率が表に示す値である場合、このCPUの性能は約何MIPSか。

選択肢
ア:10
イ:50
ウ:70
エ:100(正解)
🔒 解説は解答すると表示されます
命令混合によるMIPS計算【午前解説】
正解の理由
各命令の平均クロック(CPI)を出現率で重み付けして求めます。
計算は次の通りです。
(サイクル/命令)
CPU周波数700MHzは700百万サイクル/秒なので、MIPSは次で求めます。
よって正答はエ(100)です。
計算は次の通りです。
(サイクル/命令)
CPU周波数700MHzは700百万サイクル/秒なので、MIPSは次で求めます。
よって正答はエ(100)です。
解法ステップ
- 出現率(%)を小数に変換する:30%→0.30、60%→0.60、10%→0.10。
- 各命令のクロック数に確率を掛けて合計し、平均CPIを求める。
。 - CPU周波数(MHz)を平均CPIで割ってMIPSを算出する。
。 - 選択肢から最も近い値(100)を選ぶ。
選択肢別の誤答解説
- ア:10
ここから生じる典型的なミスは、「CPIが70と誤認」や単位を誤って扱うことです。たとえば出現率を正しく小数化せずに計算を進めるなどの単位ミスで極端に小さいMIPSを得る場合があります。 - イ:50
50を得る場合は、CPIを14と誤算した可能性があります(700/14=50)。割合の扱いや平均の取り方で係数を二重に入れてしまうなどの計算ミスが原因です。 - ウ:70
70は「CPI=10と仮定」してしまった場合の結果(700/10=70)で、無条件分岐(10クロック)のみを代表値にしてしまった誤りによく対応します。 - エ:100(正解)
正しい手順で出現率を確率に直し、重み付き平均でCPIを求め、MHzをCPIで割ると得られます。
よくある誤解
- 出現率を%のまま掛け合わす(30,60,10をそのまま使う)と平均が100倍ずれるため誤答になります。
- 最大値や最小値だけでCPIを仮定して計算(例:無条件分岐の10サイクルのみを使う)すると代表値を誤ります。
- MHzとMIPSの関係を取り違え、CPIで割る代わりに掛けるミスをしやすい点に注意してください。
補足コラム
- MIPSは「百万命令毎秒」を示す単純な性能指標ですが、命令の種類や命令語あたりの仕事量が異なるアーキテクチャ間比較には注意が必要です。
- CPI(Cycles Per Instruction)は命令セットやパイプライン、キャッシュヒット率などに依存します。表面上のMIPSだけで性能を断定しないことが重要です。
- 出現率の合計が100%になっているかを必ず確認してください。合計が100でない場合は与えられた値の解釈や設問読み違いが疑われます。
FAQ
Q: 出現率が百分率で与えられたら必ず100で割る必要がありますか?
A: はい。%をそのまま掛けると桁がずれるため、0.30等の確率に直して計算してください。
A: はい。%をそのまま掛けると桁がずれるため、0.30等の確率に直して計算してください。
Q: MIPSの式は常に「MHz ÷ CPI」ですか?
A: はい。MHzは百万サイクル/秒なので、1命令あたり平均CPIサイクルかかるとするとMIPSはMHzをCPIで割った値になります。
A: はい。MHzは百万サイクル/秒なので、1命令あたり平均CPIサイクルかかるとするとMIPSはMHzをCPIで割った値になります。
Q: CPIが小数になることはありますか?
A: あります。パイプラインや複数命令の並列化により平均CPIは小数値になります。問題文の分布により小数になることを想定してください。
A: あります。パイプラインや複数命令の並列化により平均CPIは小数値になります。問題文の分布により小数になることを想定してください。
関連キーワード: CPU性能評価、MIPS、CPI、クロック周波数、平均クロック数、出現率の重み付け、命令実行時間、ベンチマーク、計算手順、百分率変換

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

