基本情報技術者 2017年 秋期 午前(科目A) 問09
問題文
平均命令実行時間が20ナノ秒のコンピュータがある。このコンピュータの性能は何MIPSか。
選択肢
ア:5
イ:10
ウ:20
エ:50(正解)
平均命令実行時間が20ナノ秒のコンピュータの性能は何MIPSか【午前2 解説】
要点まとめ
- 結論: 平均命令実行時間が20ナノ秒なら1秒間に実行できる命令数は50,000,000件、性能は50 MIPSです。
- 根拠: MIPSは「1秒あたりの命令数を百万単位で表す値」で、で求まります。
- 差がつくポイント: ナノ秒→秒や百万()の桁を正しく扱うこと、MIPSとクロック周波数は同じ意味ではない点に注意してください。
正解の理由
平均命令実行時間 のとき、1秒あたりの命令数は
命令/秒です。これを百万()で割ると 50 MIPS になります。したがって正解は エ(50)です。
別の簡便式として、ナノ秒単位の平均命令時間 に対して
(例: )でも求められます。
よくある誤解
- 単位の桁違い(/ の取り扱いミス)で10倍・100倍の誤答になることが多いです。
- MIPSをそのままクロック周波数(MHz)と混同する誤り。MIPSは命令数ベース、MHzはクロック周期ベースで別概念です。
- 命令あたり複数サイクル(CPI>1)を無視して「クロック周波数=MIPS」と扱う誤りもあります。
解法ステップ
- 平均命令時間を秒に直す: .
- 1秒当たりの命令数を求める: 命令/秒.
- MIPSに変換する(百万単位で表す): MIPS.
- 選択肢から一致するものを選ぶ:50 → エ。
選択肢別の誤答解説
- ア: 5 — 単位変換で「1秒=10^8 ns」など誤った桁を使うとこの値になります。桁を1つ少なく扱う典型的ミスです。
- イ: 10 — 同様に桁(スケーリング)を誤って2×10^8 のような中途半端な変換をしてしまうと出やすい値です。
- ウ: 20 — 1000 を 400 や 500 など誤った係数で扱った場合に出る値で、 の取り扱いを間違えた結果です。
(いずれも根本は「ナノ秒→秒」「百万で割る」の単位と桁数の間違いです。)
補足コラム
- MIPSの限界: MIPSは命令数ベースの指標で、命令種別や命令長、CPI(Cycles Per Instruction)や命令ミックスによって実効的性能が変わります。異なるアーキテクチャ間の単純比較には向きません。
- クロックとの関係: 平均命令実行時間が1クロックだった場合、命令時間の逆数がクロック周波数になります(20 ns → 50 MHz)。ただし平均命令時間が複数サイクルの場合はこの単純対応は成り立ちません。
- 実務ではベンチマーク(例: SPEC)や実際の処理時間を用いて比較するのが望ましいです。
簡単な計算スクリプト(参考)
def mips_from_ns(avg_ns):
return 1000.0 / avg_ns
print(mips_from_ns(20)) # 出力: 50.0
FAQ
Q1: MIPSとMHzは同じですか?
A1: いいえ。MHzはクロック周波数(1秒あたりのクロック数)を示し、MIPSは1秒あたりの命令実行数(百万単位)です。CPIが1であれば数値は近づきますが一般には異なります。
A1: いいえ。MHzはクロック周波数(1秒あたりのクロック数)を示し、MIPSは1秒あたりの命令実行数(百万単位)です。CPIが1であれば数値は近づきますが一般には異なります。
Q2: 20ナノ秒は何MHzに相当しますか?
A2: 周期が20 nsなら周波数は Hz、つまり50 MHzです。ただしこれは「命令1件あたりが1クロック」に相当する場合の話です。
A2: 周期が20 nsなら周波数は Hz、つまり50 MHzです。ただしこれは「命令1件あたりが1クロック」に相当する場合の話です。
Q3: MIPSが高ければ常に速いですか?
A3: いいえ。命令の種類や命令あたりの仕事量が違えば、単純なMIPS比較で実際の性能差を正しく表せないことがあります。
A3: いいえ。命令の種類や命令あたりの仕事量が違えば、単純なMIPS比較で実際の性能差を正しく表せないことがあります。
関連キーワード: 平均命令実行時間、MIPS、ナノ秒、単位変換、CPI、クロック周波数、命令実行性能、IPC

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

