←前ページへ :  INDEX :  次ページへ→


10-3.ハードウェア割り込み

  コンピュータの周辺機器はたくさんあり、タイマーのように周辺機器とはユーザーが認識していないものまで含まれている。そしてそれら周辺機器に操作が加えられたり、周辺機器の操作が完了したり、異常が発生した場合に割り込みが発生する。しかし CPUには割り込みを受ける線は1本しかない。そこで割り込みコントローラーという ICが活躍する。

  この割り込みコントローラーはPC-9801(9821)シリーズ、DOS/Vパソコンともに、 8259(もしくはその互換チップ)というチップで、これは8台の機器がつなげる。しかし8台では少ないので、上図のように8259を2つつなげて、15台の機器を管理している。キーボードやタイマーなどは1つめの8259(マスターコントローラーという)につながっており、マウスなどは2つめの8259(スレーブコントローラーという)につながっている。 (どこにつながっていてもプログラマーには関係ないんだけど)

  そして、各機器から割り込み要求があると、8259がCPUに「割り込みだよ!」と知らせる。するとCPUは今実行している命令が終わると(ある処理が終わったらではなくて命令が終わると)、8259に「誰から?」と訪ね答えを聞く。実際は割り込み番号を聞く。

  電話中に他の電話がかかってくると出られないのと一緒で、CPUも割り込み処理中は他の割り込みを受け付けることができない。そこで8259に「今割り込み処理してるからね」と教える。

  受け取った割り込み番号ごとに、実行すべき割り込み処理のプログラムが格納されている場所がメモリー上に記録されており、そのアドレスを調べて割り込み処理をする。割り込み処理が終わると8259に「割り込み処理がやっと終わったよ」と知らせる。もし、割り込み処理中に他の割り込みがあると、8259はそれを覚えておいて、この時点でCPUに「また割り込みがあったよ」と知らせて、CPUは割り込みをまた行う。もし割り込み処理中に新たな割り込みがなければ、それまでやっていた処理の続きを行う。

  なお、同時に複数の割り込みがあった場合は8259が優先度を決めて(8259につながっている順番)CPUに知らせてくれる。


←前ページへ :  INDEX :  次ページへ→