Intel 8259
8259は1980年に初代PCに採用され、1983年に開発されたPC/XTでも引き続き採用された。2番目の8259はPC/ATの開発の際に追加された。8259は対称型マルチプロセッサPCでも採用されたので、APICと共存している。
8259は元々単体のチップであったが、いまや最近のx86マザーボードではサウスブリッジ(ICH)やプラットフォームコントローラーハブ(PCH)の一部となっている。
8259での主要な接続ピンは以下のようなものである。8本の割り込み要求入力(IRQ0~IRQ7)、1本の割り込み出力(INTR)、割り込みACK(INTA)、割り込みレベルないし割り込みベクタオフセット用通信ライン(D0-D7)である。CAS0からCAS2を使って8259同士をカスケード接続することができる。
マスターとなる8259に8個までの8259をスレーブ接続できるので、全部で64個のIRQを提供できる。つまり、マスターの8259のIRQにスレーブの8259のINTをカスケード接続する。
8259には3つのレジスタ、Interrupt Mask Register(IMR)、Interrupt Request Register(IRR)、In-Service Register(ISR)がある。IRRはACKを未処理の現在の割り込みマスクを保持し、ISRはEOIを未処理の割り込みマスクを保持し、IMRはACKを送信してはならない割り込みのマスクを保持する。
End Of Interrupt(EOI)は指定EOI、非指定EOI、自動EOIをサポートしている。指定EOIはISRのACKを返すIRQレベルを指定する。非指定EOIはISRのIRQレベルをリセットする。自動EOIは割り込みにACKが返ってきた後、すぐにISRのIRQレベルをリセットする。
エッジおよびレベル割り込みトリガモードをサポートしている。
優先度設定および優先度回転モードもサポートしている。