IRQが足りないときの対策は

IRQ不足で拡張カードをこれ以上増やせません。何かいい方法はありませんか。


IRQ(Interrupt ReQuest)とはCPUへのハードウェア割り込み要求のことで,各種デバイスをPCに接続する場合,各機器が利用するIRQ番号が重複しないように設定しなければなりません。
 基本的には,すべてのデバイスに固有のIRQ番号が必要です。AT互換機では制御用の割り込みとして1〜15までのIRQが利用可能になっていますが,いくつかはシステムリソースとして利用され,ユーザーに解放されているのは3,4,5,7,9,10,11,12,14,15の10個です。
 かなりの数に思えますが,現在市販されているPCではあらかじめ搭載されているデバイスもIRQを利用するため,実際には一般的に表1のように空きIRQが少なくなります。
 最近のビデオカードにはIRQを利用しないものもありますが,それでも空きは3個,これではどうにも少ないですね。
 ほかにもUSBポートを搭載していれば,USBコントローラの分のIRQが必要です。
 IRQの空きを増やすためには,まず,不要なポートをDisable(無効化)にし,IDEをやめてSCSI化する,LANを組んでいるならプリンタサーバーを利用するなどすればその分余裕が出てきます。シリアルポートもインテリジェントタイプのものなら複数のポートを1個のIRQで制御できるので,オンボードのポートを使用せず,こうした拡張カードを増設するといいでしょう。
 ビジネスマシンなら思い切って音源を外してしまうという手もあります。
 Windows 95はBIOSセットアップで無効化したIDEコントローラやポートを見つけてきますが,使っていなければこれらのIRQに重ねてしまってもかまいません。
 以上の対処をすべて行うと表2となり,だいぶ余裕が出てきます。副次的に,拡張カードのポートやSCSIドライブは一般にオンボードポートやIDEのものよりも高速なので,全体的なボトムアップも図れます。同時に各デバイスをPCI化してしまえば,IRQを複数の機器で共有することも可能ですし,全体のパフォーマンスも向上します(ただし共有には若干のコツが必要です)。
 PCカードベイを取り付けて,適宜差し替えるというのも有効な方法です。
 ただし,いくつか欠点もあって,どちらも実現のためにかなり費用がかかり,前者では拡張スロットを大量に使用し,後者は性能的に今いち満足できるものではありません(デスクトップ機用のCardBusベイが発売されるとよいのですが)。IEEE1394やUSBなどの普及が進めばこうした苦労も軽減されるのでしょうが,今しばらくはうまくなだめすかしつつIRQと付き合っていくよりありません。
 場合によってはPCを追加購入して役割分担させたほうがよいでしょう。なお,上記のようなことを実行すると,自動的にもう1台用意できるだけのパーツが余るというオチもついています。
(菊地 潤)

IRQ
デバイス
3
シリアルポート1
4
シリアルポート2
5
SoundBlaster互換音源
7
パラレルポート1
9
(ビデオ回路)
10
空き
11
空き
12
PS/2マウスポート
14
プライマリIDE
15
セカンダリIDE
表1 IRQ対策施行前

IRQ
デバイス
3
空き
4
インテリジェントシリアル
5
SoundBlaster互換音源
7
空き
9
(ビデオ回路)
10
空き
11
空き
12
PS/2マウスポート
14
SCSIコントローラ
15
NIC
表2 IRQ対策施行後