このページの本文へ

ロードマップでわかる!当世プロセッサー事情第106回

バスの歴史を振り返る XT Bus~ISA Bus編

2011年06月20日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷

割り込み信号を使う利点とは?

図3 FDD書き込み時の処理の流れ

 ここで利用される1つ目の方法が「Polling」(ポーリング)である。Pollingの場合、CPUは定期的にFDD I/Fに対して「書き込み終わったかな?」と確認をする。高速なI/Oだとそうでもないのだが、FDDのような低速なI/O機器では完了までに時間が掛かる。そのためCPUは、完了するまで何度も何度もFDD I/Fにアクセスして、そのつど状況を確認することになる。

 2つ目の方法が、「IRQ」(Interrupt ReQuest)信号を使うというものだ。図4がIRQを使う場合の処理の流れだ。FDDが書き込みを開始するところまでは同じである。

図4 IRQを使ったFDD書き込み時の処理の流れ

 違うのはその先で、FDDは書き込みが完了したら、それをFDD I/Fに通知する。さらにFDD I/FはIRQ信号を使って、CPU側に「何かが終わった」(もしくは何かが起きた)ことを通知する。IRQ信号自体は1本、つまり「起きた」か「起きない」かの1bitデータなので、具体的に「何が起きた」かまでの通知は不可能だが、それはそれほど問題ではない。このIRQ信号がセットされると、CPUには割り込みが掛かり、特定の処理ルーチンに飛ぶことになる。この処理ルーチンの中でCPUはFDD I/Fにアクセスし、完了通知なりエラー通知なりを読み取るという仕組みだ。

 この方式のメリットは2つある。

  • イベント(例ではFDDの書き込み完了)が発生すると、直ちにそれをCPUに通知できる。Pollingではイベント発生からそれをCPUが知るまでに、タイムラグが発生する。FDD程度ならともかく、高速デバイスだとこれが結構なボトルネックになる場合がある。
  • CPUにPollingさせる必要がないので、待ち時間でほかの処理ができる。

 一方で欠点は、1デバイスについて1つのIRQを占有することだ。XT Busに割り当てられているIRQとしては、以下の8種類があった。

0 システムタイマー 4 COM1
1 キーボード 5 HDDコントローラー/LPT2(PC/AT)
2 汎用(未使用) 6 FDD
3 COM2 7 LPT1

 このうち、システムタイマーとキーボードはマザーボード上で使われるため、XT Busには信号が来ていない。またXT BusではIRQ2が利用できることになっているが、「IBM PC/AT」のISA Busでは、これの扱いが面倒なことになる。

この連載の記事

注目ニュース

ASCII倶楽部

最新記事

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン