割り込み1
割り込みの種類
外部割込みと内部割込み
ハードウェア要因な割り込みを外部割込み、ソフトウェア要因の割り込みを内部割込み
と考えればいいかな。最近のマイコンは周辺デバイスもパッケージに集積されているから
DMACなんかもCPUの一部とか思っちゃうけど。DMACはあくまで周辺デバイスで分類するなら外部割込み。
内部割込みは、0割、オーバーフロー、禁止領域への書き込み、割り込み命令の実行がトリガーになって発生する。
禁止領域への書き込みってニュアンスがあれだけど、MC68000とかは奇数アドレスに対してワードアクセスしようとするとエラーが出たと思う、これって内部割込みが発生していたんじゃないかな。おいたをしたら怒られて割り込みが発生させてしまうのがMPUということで。
割り込み命令とは
これまたMS-DOSとか古いOSのシステムコール(プログラム終了とか)はこの仕組みを利用していた。
プログラムからOSに対して効率よくシステムコールをかけるのにこの仕組みが便利だったということかな。レジスタに機能の番号をセットして割り込み命令を実行するみたいな感じだったと思う。
NMI
ソフト的にマスクできない割り込み。
優先度も最も高い。
実際の使い方はNMIピンがあってそこにスイッチを付けてデバッグ用のNMIスイッチだったり
電圧の監視ICにつなげたりする。
優先度
たとえばIRQピンが3本あって同時に割り込みが発生したときどれが優先されるかという話。
このとき、一回の割り込み処理にめっちゃ時間が掛かる割り込み要因の優先度を上げたら
当然ながらシステム全体のリアルタイム性は下がる。
多重割り込み
多重割り込みが許可されていれば、優先度の低い割り込み処理の途中で優先度の高い割り込みが入ると後者が優先され、前者は後者の処理時間分だけ遅延させられる。
余談でマイコンが多重割り込みをサポートしてなくても割り込み処理の中で優先度処理してるケースも多いな。
多重割り込みがつかえるとき最大割り込み処理時間はもっとも優先度の低い割り込み処理が発生してから処理が完了するまでの時間となる