NVICとRL78/G1xの割込みコントローラ比較
LPC820やCortex M0/M0+マイコンは、割込み処理性能を強化した新しいNVIC: Nested Vectored Interrupt Controllerを持っています。RL78/G1xは、4バンク構成の従来型割込みコントローラです。NVICは、これまでソフトで行っていた割込み 処理を、殆どNVICハードで行います。頻繁な割込みに対する効率化(テール・チェイン)などにより、割込み応答時間が均一になり、高速処理が可能です。
CPU | LPC820 | RL78/G13、RL78/G14 |
割込み回路 | NVIC: Nested Vectored Interrupt Controller | Interrupt Controller |
レジスタバンク | なし | 4バンク(RB0/1/2/3) |
レジスタ待避場所 | スタック | バンク バンク使用時はスタック |
PUSH/POP動作 | ハード:NVIC処理(ソフト比、応答時間が均一で高速) | ソフト処理 |
多重割込み受付 | デフォルト許可 | デフォルト禁止(受付はソフトでEI設定要) |
テール・チェイン機能 | あり | なし |
割込み優先レベル | 4(高0/1/2/3低)、デフォルトレベル0 | 4(高0/1/2/3低)、デフォルトレベル3 |
ISR記述 | 規定ISR名でCソース記述(オーバーライド可能) | __interruptを付加し、規定ISR名記述(オーバーライド不可) |
割込み起因のバグは、再現性が低く、デバッグが厄介なものです。定量的な評価はできませんが、NVICの謳い文句やこの比較表以上に、割込み処理に対して、有効になると思います。