検索
連載

NMI(ノンマスカブル割り込み)って何?Q&Aで学ぶマイコン講座(51)(2/4 ページ)

マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。51回目は、初心者の方からよく質問される「NMI(Non-maskable interrupt/ノンマスカブル割り込み)って何?」についてです。

Share
Tweet
LINE
Hatena

NMIとは?

 NMI以外の割り込みについては、ユーザーがソフトウェアで、受け付けるかいなかを設定することができます。また、マイコンによっては、その優先順位を設定することもできます。しかし、NMIの場合はマスクできない構成になっており、優先順位は最上位に位置付けられています。これは、NMIがシステムの致命的な障害などの緊急事態用に設けられた割り込みであるからです。

 他の割り込みには、マスクするビットや有効化/無効化を制御するビットがあり、それをユーザーがソフトウェアを使って制御できます。例えば、CCR(Condition Code Register)に割り込みマスクビットを持っていたり、個別に割り込みイネーブル/ディセーブルビットを持っていたりするので、これらのビットを使って割り込みを制御します。一方で、NMIにはそのようなビットはなく、NMIの割り込み要因が発生すると必ず受け付けられます。
(注意:ただし、NMIの許可ビットを持っているマイコンもあります)

 また、NMIの要因の発生はシステムの致命的な障害によるため、割り込み処理の優先順位は一番高くなっています。他の割り込みを処理していても、NMIの割り込みが優先実行され、その間は他の割り込みを一切受け付けません。

 以上がNMIの一般的な説明ですが、実際にはマイコンによって扱いが異なります。

 さまざまなマイコンのNMIの仕様を見ていきましょう。

実際のNMIの例

 市販されているマイコンのNMIの仕様を調べてみると、次のような種類が挙げられます。

【1】マイコンの仕様上で決められた割り込み要因に割り当てある場合

 例えば、STM32F4シリーズのように、NMIがCSSに割り当てられており、ユーザーが他の要因を選択できない場合です。

【2】NMIが外部端子に割り当てられており、ユーザーが割り込み要因をハードウェアで選択できる場合

 外部にNMI用の端子を設け、ユーザーがハードウェアを使って、自由に選択できる場合です。

 これには次の2種類があります。

   (a)NMI端子が専用端子の場合

   (b)NMI端子が汎用IOとの兼用端子の場合

【3】NMIの許可ビットがある場合

 一部のマイコンではNMIの許可ビットを持っています。

【4】NMIがない、もしくは代替機能を持つ場合

 NMIのないマイコンもあります。また、マスクできない割り込みを持っていてもNMIと呼ばず、その名称が異なるマイコンもあります。

 次ページからは、それぞれを詳しく解説していきます。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る