第1章 PCのアドレス・マップと

割り込みコントローラ(8)

割り込みコントローラ動作の内部構造

 

割り込みコントローラ動作の内部構造

 PICの動作を理解するうえで,最低限PICの中がどのようになっているかを理解しておいたほうがよいでしょう.

 PICの内部構造は図2のようになっています.IRR(割り込みリクエスト・レジスタ)は,IR入力ピンに要求が発生したことを示すレジスタです.ISR(イン・サービス・レジスタ)は,「現在どの割り込み要求がCPUに受け付けずみになっているか」を示すレジスタです.

(図2)

割り込みコントローラ(8259A)の内部ブロック図

 割り込み優先度は,CPUから割り込み応答(INTA)があったときIRRにセットされた割り込みのうち,どれをサービス対象にするかで決定されます.また,各割り込み入力ごとに割り込み発生禁止/許可を制御するため,割り込みマスク・レジスタが用意されています.

 ISRとIRRはCPUからリードが可能です.またマスク・レジスタはリード/ライトとも可能で,動作中に常に書き換えることができます.

割り込みコントローラのシングル動作

 PICの割り込み動作はそれほど複雑なものではありませんが,PCで使われているカスケード接続の前に,まずシングル(マスタのみ)時の動作を見ておくことにします.シングル動作時の割り込みコントローラとCPU間のやりとりの概要を図3に示します.

(図3)

割り込み応答動作の概略

 

 まず,割り込み要求(IRn)が発生すると,当該IRRレジスタがセットされ,CPUに対して割り込み要求を発生します.CPUは割り込みを受け付けると,INTA信号で応答します.INTA信号は2回出るところがポイントです.CPU側からの1回目は単なるパルスを出すだけで何もせず,2回目でデータ・バスの下位8ビットに乗っている値を割り込みベクタとして受け取ります.

 PIC側では1回目のINTAでIRRに格納された割り込みのうち,どれをサービス対象とするのか(どれがもっとも優先度が高いか)を決定します.決定された割り込み要因のIRRビットはクリア(“0”)され,ISRビットの該当ビットをセット(“1”)します.ISRがセットされるとそれと同一,またはそれ以下の優先度の割り込みは自動的にマスクされ入らなくなります.優先度は通常IR0がもっとも高く,IR7がもっとも低くなっています.

 ここで優先度を確定し,2回目のINTAパルスがきたときにデータ・バスにベクタ番号を出力するという仕組みです.ベクタ番号は下位3ビットが割り込み番号(IRnの番号)と一致しており,上位5ビットはイニシャライズ時に任意設定可能です.


Copyright 2000 桑野 雅彦

新刊のご案内


Copyright 1997-2001 CQ Publishing Co.,Ltd.