割り込みコントローラ

割り込みコントローラとは、プロセッサに設けられた一つのIRQ端子を複数のIRQ端子に拡張するための論理回路のことです。

割り込みコントローラは、プロセッサのペリフェラルです。

割り込みコントローラを使うことにより、複数のハードウェア割り込みを効率的に処理することができます。

割り込みコントローラの基本的な仕組み

割り込みコントローラは、あるIRQ端子でIRQが発生すると、プロセッサのIRQ端子にハードウェア割り込みを掛けます。

その割り込み処理の中で、割り込みコントローラに割り当てられたI/Oアドレスに対するIN命令を使って、IRQが発生したIRQ端子の番号を読み出します。この番号を指定して、ソフトウェア割り込み命令を実行します。

この番号に対応した割り込み処理は、割り込みベクタで指定できるので、割り込みコントローラで発生したそれぞれのIRQに対して、任意の割り込み処理を実行できます。

割り込みコントローラの設定

一般的な割り込みコントローラは、以下の設定が可能です。

・IRQの有効と無効の設定

・IRQの優先度の設定

・IRQの受付再開の設定

これらは、OUT命令を使って設定します。詳細は、プロセッサのペリフェラルを確認してください。

IRQの有効と無効の設定

これは、割り込みコントローラが拡張した複数のIRQ端子のそれぞれIRQの有効と無効の設定です。

あるIRQを無効設定にすると、プロセッサにそのIRQが発行されなくなります。

IRQの優先度の設定

これは、割り込みコントローラで同時に複数のIRQが発生したり、あるIRQの処理中に別のIRQが発生したりした場合に、どういう優先度でプロセッサにIRQを発行するかの設定です。

詳細は、利用する割り込みコントローラの仕様を確認してください。

IRQの受付再開の設定

IRQ端子でIRQが発生すると、そのIRQ端子で新たにIRQが発生しても割り込みコントローラは、それを無視します。

そのIRQ端子でのIRQの受付を再開させるには、OUT命令を使って、そのIRQ端子に対して、受付再開の設定をする必要があります。