外部割り込み 【external interrupt】 ハードウェア割り込み / hardware interrupt
概要
外部割り込み(external interrupt)とは、実行中の処理を中断して強制的に指定された処理を実行させる割り込み処理の種類の一つで、実行中のプログラム以外の外部の要因によって発生したもの。ハードウェアによる処理要求により引き起こされるためハードウェア割り込みとも呼ばれる。主に入出力装置やタイマーなどが処理を要求するため発生するもので、利用者がキーボードを操作したり、ネットワークを通じて外部からデータを受信したり、外部記憶装置がデータの読み書きを終えたりすると発生する。
装置が割り込みを行いたいときは割り込みコントローラと呼ばれる回路やICチップを呼び出し、CPUに割り込み信号を送信してもらう。CPU側が制御命令により一時的に禁止したり再開したりできるものを「マスカブル割り込み」(maskable interrupt)、抑止できず強制的に割り込まれるものを「ノンマスカブル割り込み」(non-maskable interrupt)という。
これに対し、実行中のプログラムでエラーや例外が発生したり、OSの機能を呼び出したりする際に発生する割り込みは「内部割り込み」(internal interrupt)あるいは「ソフトウェア割り込み」(software interrupt)という。
割り込みコントローラ (interrupt controller)
コンピュータ内部の制御回路の一つで、周辺機器とCPUの間に接続され、周辺機器からの割り込み処理要求を受信してCPUに割り込み信号を発生させる装置。周辺機器に対する窓口を担うCPUの秘書のような存在で、単体のICチップではなくチップセットなどの一部として実装されることが多い。
周辺機器はボタンを利用者に押されるなど何らかの処理を行いたくなると、それをCPUに伝えるために割り込み信号を発信する。割り込みコントローラがコンピュータ内に存在する場合、この信号はいったんコントローラに集められる。
コントローラは装置ごとに設定されている優先度などに基づいてどのタイミングでどの信号をCPUに伝えるかを判断し、適切な順序で信号を伝える。また、無効に設定されている機器からの信号を無視してCPUに伝えないといった処理も行う。