応用情報技術者 2014年 春期 午前2 問08
問題文
100MIPSのCPUで動作するシステムにおいて、タイマ割込みが1ミリ秒ごとに発生し、タイマ割込み処理として1万命令が実行される。この割込み処理以外のシステムの処理性能は、何MIPS相当になるか。ここで、CPU稼働率は100%、割込み処理の呼出し及び復帰に伴うオーバヘッドは無視できるものとする。
選択肢
ア:10
イ:90(正解)
ウ:99
エ:99.9
100MIPSのCPUで動作するシステムのタイマ割込み処理性能計算【午前2 解説】
要点まとめ
- 結論:割込み処理に消費する命令数を差し引くと、実際のシステム処理性能は90MIPS相当となります。
- 根拠:1ミリ秒ごとに1万命令の割込み処理が発生し、CPUは100MIPSで動作しているため、割込み処理にかかる時間を計算し差し引きます。
- 差がつくポイント:割込み処理の命令数を時間に換算し、全体のCPU稼働率100%から割込み処理時間を除く計算が正確にできるかが重要です。
正解の理由
タイマ割込みは1msごとに1万命令を実行します。CPUは100MIPSなので、1秒間に1億命令処理可能です。
1ms間に割込み処理が1万命令なので、割込み処理にかかる時間は
よって、1msのうち0.1msは割込み処理に使われ、残り0.9msが通常処理に使えます。
したがって、通常処理の性能は
となり、選択肢の中ではイが正解です。
1ms間に割込み処理が1万命令なので、割込み処理にかかる時間は
よって、1msのうち0.1msは割込み処理に使われ、残り0.9msが通常処理に使えます。
したがって、通常処理の性能は
となり、選択肢の中ではイが正解です。
よくある誤解
割込み処理の命令数を単純に引くだけでなく、時間換算してCPU稼働率から差し引く必要があります。
割込み処理の呼出し・復帰のオーバヘッドは無視できるため、命令数だけで計算します。
割込み処理の呼出し・復帰のオーバヘッドは無視できるため、命令数だけで計算します。
解法ステップ
- CPUの処理能力(100MIPS)を1秒あたりの命令数に換算する(1億命令/秒)。
- 割込み処理の命令数(1万命令)をCPUの命令処理速度で割り、割込み処理にかかる時間を求める。
- 1msの割込み周期に対して割込み処理時間を差し引き、通常処理に使える時間を算出する。
- 通常処理に使える時間の割合をCPU性能に掛けて、実質的な処理性能を求める。
- 選択肢と照合し、最も近い値を選ぶ。
選択肢別の誤答解説
- ア: 10
割込み処理時間を過大評価しすぎて、通常処理性能が極端に低くなっています。 - イ: 90
正解。割込み処理時間を正しく計算し、通常処理性能を求めています。 - ウ: 99
割込み処理時間を過小評価し、ほぼ割込みが無いかのように計算しています。 - エ: 99.9
割込み処理の影響をほぼ無視しており、実際の割込み負荷を考慮していません。
補足コラム
MIPS(Million Instructions Per Second)はCPUの処理速度を示す指標で、命令数と時間の関係から性能評価に使われます。
割込み処理はCPUのリソースを消費するため、割込み頻度や処理命令数を考慮しないと実効性能を正確に把握できません。
また、割込みの呼出し・復帰に伴うオーバヘッドがある場合はさらに性能低下が起こりますが、本問題では無視しています。
割込み処理はCPUのリソースを消費するため、割込み頻度や処理命令数を考慮しないと実効性能を正確に把握できません。
また、割込みの呼出し・復帰に伴うオーバヘッドがある場合はさらに性能低下が起こりますが、本問題では無視しています。
FAQ
Q: 割込み処理の呼出し・復帰のオーバヘッドがある場合はどう計算しますか?
A: そのオーバヘッド分の命令数や時間を割込み処理時間に加算し、通常処理時間をさらに減らして計算します。
A: そのオーバヘッド分の命令数や時間を割込み処理時間に加算し、通常処理時間をさらに減らして計算します。
Q: CPU稼働率が100%でない場合はどう計算しますか?
A: CPU稼働率を考慮し、実際にCPUが動作している時間に対して割込み処理時間を差し引いて計算します。
A: CPU稼働率を考慮し、実際にCPUが動作している時間に対して割込み処理時間を差し引いて計算します。
関連キーワード: MIPS, タイマ割込み、CPU性能計算、割込み処理時間、命令数換算

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

