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

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

OCW3

 

OCW3

 スペシャル・マスク・モードの設定や解除,割り込み番号の読み出し,ISR/IRRの読み出しなどを行うレジスタです.三つの機能がひとつのレジスタに収まっているため,ある機能を使うときは他の機能は無効(なにもしない)ビット状態にして使います.

 ビット6〜5が“11”ならスペシャル・マスク・モード(同モードについてはOCW1の項を参照),“10”なら解除になります.

 ビット2はポール・コマンドです.通常PICはCPUに割り込みをかけて,CPUはINTA信号とともにベクタを受け取り,それぞれの割り込みルーチンに飛びますが,あえてINTAを使用せず,PICから割り込み要求がきたらソフトウェアでベクタを読み出し,それぞれの処理を行おうというのがポール・コマンドです.

 ビット2を“1”にするとポール・コマンドとなり,次にPICのベース・アドレス+0番地をリードすると下位3ビットに受け付けられた割り込み番号が読み出されます.この方法はかなり小さなシステムで,割り込みベクタ領域としてメモリを使うことすらもったいないような場合に適した使い方です.PCではポール・コマンドを使う意味はほとんどありません.

 ビット1,0はPIC内部のIRRやISRを読み出すコマンドです.このコマンド発行後にPICのベース・アドレス+0番地をリードすると指定したレジスタが読み出されます.ビット1,0の場合“10”なら次のリードでIRRが,“11”だと次のリードでISRが読み出されます.

現在のPCの割り込みコントローラ

 以上は8259Aをベースとした説明でしたが,実際のPCではどうなっているのかをもう少し調べてみましょう.現在のPCはチップ・セットと呼ばれるLSIにその機能の大部分が集約されています.PICも例外ではなく,チップ・セットの中に収められています.

 チップ・セットにはいろいろと種類がありますが,今回はIntelのP2X4(82371AB)を取り上げます.P2X4に内蔵された割り込みコントローラは8259AのCMOS版である,82C59相当品です.8080/8085モード関連についての記述はありませんが,実質上意味がないので削られていると考えたほうが自然でしょう.

 P2X4の割り込みコントローラまわりにはPCIサポートなどのために,一部レジスタの追加が行われています.

PCの割り込みブロック図

 現在のPCの割り込み系統はおおむね図4のようになっています.割り込みコントローラはPCI/ISAブリッジ・チップにあり,PCIの割り込みを含めてすべての割り込みはPCI/ISAブリッジ・チップがいったん受け,CPUに通知します.

(図4)

PCの割り込み信号の流れ

(約8Kバイト)

 昔のCPUにあったINTAという信号はなくなり,通常のメモリやI/Oアクセスと同様CPUのバス・サイクルのひとつとして「割り込みアクノリッジ・サイクル」が定義されたため,ホストブリッジ・チップがこのサイクルをデコードし,PCIバスに割り込みアクノリッジ・サイクルを発生させます.

 PCI/ISAブリッジ・チップはこの割り込みアクノリッジ・サイクルに応答して,割り込みベクタを出します.このベクタ番号がホスト・ブリッジを経由してCPUまで伝えられるという仕組みです.


Copyright 2000 桑野 雅彦

新刊のご案内


Copyright 1997-2001 CQ Publishing Co.,Ltd.