エンベデッドシステムスペシャリスト 2017年 午前2 問02
問題文
内部割込みの要因として、適切なものはどれか。
選択肢
ア:DMA転送が完了した。
イ:インターバルタイマが満了した。
ウ:演算がオーバフローした。(正解)
エ:電源電圧の低下を検出した。
🔒 解説は解答すると表示されます
内部割込みの発生要因【午前2解説】
正解の理由
内部割込みは、プログラムの命令を実行した結果としてCPU内部で発生する割込みです。例えば、演算結果が表現できる範囲を超えるオーバフローや、0による除算などが原因になります。
したがって、演算によって発生するウが適切です。
解法ステップ
- 割込みの原因が、命令の実行に伴うものか、外部の装置や事象によるものかを見分けます。
- 演算結果のオーバフローは、命令を実行した結果としてCPU内部で検出されます。
- DMA転送の完了、タイマの満了、電源電圧の低下は、外部の装置や事象に起因するため、内部割込みではありません。
選択肢別の誤答解説
-
ア:DMA転送が完了した。
DMAコントローラなどの入出力装置からCPUへ通知される事象です。外部割込みに該当します。 -
イ:インターバルタイマが満了した。
タイマというハードウェアから通知される事象です。時間経過による外部割込みに該当します。 -
ウ:演算がオーバフローした。
命令の実行結果としてCPUが検出する事象です。内部割込みに該当します。 -
エ:電源電圧の低下を検出した。
電源監視回路などが検出してCPUに通知する事象です。外部割込みに該当します。
よくある誤解
-
CPUが検出する事象はすべて内部割込みだと思う
外部装置からの通知をCPUが受け取って処理する場合でも、原因が外部にあれば外部割込みです。 -
タイマはCPUの処理に関係するため内部割込みだと思う
インターバルタイマの満了はハードウェアから通知されるため、外部割込みとして扱います。 -
「内部」をコンピュータ本体の内部という意味で考える
内部割込みの「内部」は、装置の物理的な場所ではなく、命令の実行に起因するかどうかを指します。
補足コラム
内部割込みは、命令実行中に発生する例外として扱われることもあります。オーバフローのほか、未定義命令の実行や不正なメモリアクセスなどが代表例です。一方、入出力完了やタイマ満了など、命令実行とは独立した事象によるものは外部割込みです。
FAQ
Q. 内部割込みは、プログラムの誤りでしか発生しませんか?
A. いいえ。オーバフローなど、プログラムの誤りとは限らない演算結果によっても発生します。
A. いいえ。オーバフローなど、プログラムの誤りとは限らない演算結果によっても発生します。
Q. DMA転送の完了は、CPUが関係していても外部割込みですか?
A. はい。DMAコントローラなどの外部装置が発生させる通知なので、外部割込みです。
A. はい。DMAコントローラなどの外部装置が発生させる通知なので、外部割込みです。
関連キーワード: 内部割込み、外部割込み、オーバフロー、例外、DMA転送

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

