ノンマスカブル割込み(NMI)とは、マスク(禁止)できない最優先の割込みで、停電処理やシステム暴走検知など緊急時・致命的な障害に用いられ、CPUは強制的に割込み処理を実行します。通常の割り込み(マスカブル割込み)と異なり、ソフトウェアで無効化できず、ウォッチドッグタイマーのタイムアウトやシステムクロック異常などで発生し、データ保護や再起動処理に利用されます。
マスカブル割込みとの違い
- マスカブル割込み :CPU側で割込みの受付を一時的に禁止(マスク)できる一般的な割込み。タイマーやキーボード入力など、通常の制御に使われます。
- ノンマスカブル割込み (NMI):マスク命令で禁止できず、常に受け付けられる割込み。最上位の優先度を持ち、他の割込み処理中でも強制的に実行されます。
主な用途と発生要因
- 用途:停電時のデータバックアップ処理、システムのリセット、ハードウェアの致命的な障害発生時の対応。
- 発生要因の例:
- ウォッチドッグタイマーのオーバーフロー:プログラムが暴走してリセット信号が出なくなったことを検知。
- システムクロックの異常。
- タンパ(不正検知)。
特徴
- 最優先:他の割込みより優先され、実行中は他の割込みを受け付けません。
- 緊急性:システムの存続に関わるような緊急事態に対応するために設計されています。
- 専用端子:多くの場合、NMI専用の外部入力端子に割り当てられています。
具体例
- マイコンがフリーズした際に、ウォッチドッグタイマーがNMIを発生させ、システムを強制的にリセットして復旧させる。
- 突然の停電を検知し、メモリにデータを書き込む処理をすぐに実行させる。

コメント