« 労働時間 | トップページ | やり尽くしました »

2022年11月29日 (火)

NMI

NMI(割り込み禁止できない割り込み)って、結構難しいよ....

なんでかって言うと....

普通の割り込みって、割り込んだ時に
自動的に割り込み禁止になる。

多重割り込みできる環境でも、大概は自分自身の
割り込みは禁止された状態で実行される。

そうでないと、割り込みリクエストが出っぱなしになると
ずっと呼び出しが繰り返されて、あっという間に
スタック食いつぶしたりするし、
そもそも処理プログラムに入れない。

普段はこういうメカニズム気にしないから
気づきにくいけど。

OS環境ではそもそもハードウエア割り込みなんて
起こりえないし、組み込みマイコンだって
ベクタ割り込みコントローラーとかで
うまく処理されていて、なかなか気づかない。

------

ところがNMIはその名の通り、マスク不能な割り込みなので
割り込み要求が出て続ける限り、NMIルーチンの実行も
出来なくなっちゃう。
(永遠に処理ハンドラにジャンプし続ける)

ハードウエアとかで、一回だけNMIリクエストが出るように
なってる必要があるし、かつNMI処理が終わるまでは
次のNMIを無視するハード機構が必要だ。

これって、現実的にNone Maskedじゃないよね....

------

というのが、今どきの組み込みマイコンでも
NMIがあまり出てこないわけだと思うんだけど。

そういや、こういう解説も(webでは)見ない気がするよな....

知ってる人は知ってるけど、実は世間では
知られてない系の話なのか

| |

« 労働時間 | トップページ | やり尽くしました »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 労働時間 | トップページ | やり尽くしました »