割り込み信号を使う利点とは?
ここで利用される1つ目の方法が「Polling」(ポーリング)である。Pollingの場合、CPUは定期的にFDD I/Fに対して「書き込み終わったかな?」と確認をする。高速なI/Oだとそうでもないのだが、FDDのような低速なI/O機器では完了までに時間が掛かる。そのためCPUは、完了するまで何度も何度もFDD I/Fにアクセスして、そのつど状況を確認することになる。
2つ目の方法が、「IRQ」(Interrupt ReQuest)信号を使うというものだ。図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では、これの扱いが面倒なことになる。
この連載の記事
-
第768回
PC
AIアクセラレーター「Gaudi 3」の性能は前世代の2~4倍 インテル CPUロードマップ -
第767回
PC
Lunar LakeはWindows 12の要件である40TOPSを超えるNPU性能 インテル CPUロードマップ -
第766回
デジタル
Instinct MI300のI/OダイはXCDとCCDのどちらにも搭載できる驚きの構造 AMD GPUロードマップ -
第765回
PC
GB200 Grace Blackwell SuperchipのTDPは1200W NVIDIA GPUロードマップ -
第764回
PC
B100は1ダイあたりの性能がH100を下回るがAI性能はH100の5倍 NVIDIA GPUロードマップ -
第763回
PC
FDD/HDDをつなぐため急速に普及したSASI 消え去ったI/F史 -
第762回
PC
測定器やFDDなどどんな機器も接続できたGPIB 消え去ったI/F史 -
第761回
PC
Intel 14Aの量産は2年遅れの2028年? 半導体生産2位を目指すインテル インテル CPUロードマップ -
第760回
PC
14nmを再構築したIntel 12が2027年に登場すればおもしろいことになりそう インテル CPUロードマップ -
第759回
PC
プリンター接続で業界標準になったセントロニクスI/F 消え去ったI/F史 -
第758回
PC
モデムをつなぐのに必要だったRS-232-CというシリアルI/F 消え去ったI/F史 - この連載の一覧へ