ハードウェア割り込みの基礎知識

「割り込み」や、「割り込みレベル」、「INT」や「IRQ」等の言葉を一度は聞いたことがあるでしょうか?
最近のパソコンは既に購入時に色々付いていてそれ以上拡張することはあまり無く、これらの言葉も普段は耳にすることは無いと思います。しかし、本体背面の拡張スロットに何か拡張ボードを増設するときなどには、必ずこれらの単語にお目にかかることと思います。でも…一体何のことでしょう?割り込みって?INTとIRQって何が違うの…??
ここでは、それらの疑問を解決して、拡張ボードを増設する際に付いて回る「割り込み」について学習しましょう。

●割り込みって?

ではまず、例をひとつ挙げましょう。次の様な状況を想像して下さい。
夕方になったので、風呂に湯を入れる事にしました。ところが、今は夕食を作っている最中でもあるので、台所から手は離せません。さて、この状況下で溢れたり、まだ足りなかったりしないように丁度いい湯量にするためにはどうしたらいいでしょうか?
普通は、とりあえず風呂に栓をして湯を入れ始めてから、適当な時間を見計らってどのくらいの湯量になったか風呂に確認に行くでしょう。しかし、この方法だと一定時間ごとに台所を離れなければならず、料理の効率も落ちますよね。非常に効率が悪いです。さて、そこで湯量があるラインを超えたらブザーが鳴るお風呂ブザーを自作して、それを使ったとします。そうすると、もうこのブザーが鳴るまで料理をやめて風呂を見に行く必要は無くなり、無駄が無くなります。料理に専念出来ますね。
ここでは「お風呂ブザー」が、「割り込み」に相当します。つまり、風呂で何か人間の操作が必要な事象が起こったよという事を報告する…これこそが「割り込み」の役目なんです。この割り込み動作があることで、料理を作っている人は効率的に家事を進めることが出来るわけです。

さて、では話をパソコンの方に戻しましょう。今の例とパソコンがどういう関係があるのか?というと…全く同じような状況がパソコンの内部でも起こっているんです。その一例として、キーボードについて考えてみましょう。
キーボードは、パソコンに文字や命令を入力するためのものです。ここからポチポチとキーを押すわけですが、その人間がキーを押すスピードに比べて、パソコンの処理速度というものはまるで桁違いに早いわけです。なぜなら、パソコンが出たての頃…つまり15年前のワープロソフトでも、ちゃんと人間が文字を打つスピードにはついて来るんですから。加速度的に性能が向上した現在のパソコンでは、その処理能力も想像を絶するものがあると思います。
と言うことで文字入力の時の文字と文字の入力の間隔、0.1秒〜1秒の間CPUは暇です。正確に言うと全く暇って訳じゃないんですが、まぁココでは暇ってことにしておきます。さて、その時にCPUが「文字入力」を受け付けるにはどうしたらいいでしょう?
ひとつの方法は、先程の風呂の例のように、CPUが一定時間毎にキーボードに確認しに行く方法です。「ねぇ、あれからなんか文字入力受け付けた?」ってな具合にです。しかし、これだと…いかに高速なCPUとは言え、やはりせっかくの性能をキーボードへの定期巡回にまわさねばならず、無駄です。
そこで、割り込みの登場です。キーボードに、キーが入力されたらその事をCPUに伝えるための伝令役を設置するんです。そうすると、キーが押されるとその情報がCPUに伝わり、CPUは「あぁ、今文字入力が来たんだな。よし、処理に入るか」と、効率的に動くことが可能になります。その処理が終わるとCPUは、また次の割り込み情報が来るまで安心して寝ることも出来るでしょう。
割り込みとは、このように不測の事態をCPUに知らせるための専用ホットラインのようなものでもあります。

さて、ではCPUが既になにかの任務を遂行中で忙しいときに割り込み要求が来たらどうなるでしょう?やはりその仕事が終わるまで割り込みは待たされるのか??律儀に順番は守るのか…?。いえいえ、答えはNOです。
先程から何度も言っている「割り込み」ですが、ここで取り上げているのは物理的な機械からの割り込み要求ですので、正式には「ハードウェア割り込み」と言います。まぁ、それに対してプログラムから発効される「ソフトウェア割り込み」と言うものもありますが、ここでは取り上げません。ハードウェア割り込みは、他のどんなプログラム…ソフトウェアの実行よりも優先されます。つまり、ハードウェア割り込みがCPUに通達された時点で、現在処理しているプログラムは後回しにされ、その割り込みの方を処理する仕組みになっています。そして、その割り込み処理が完了すると、改めて先程のプログラムの処理を続行するのです。
これを実際に目で見る方法があります。windows環境でのみ有効ですが、CPUが何か思い処理をやっている最中…その最中に、マウスをグルグルと高速で動かしてみて下さい。若干処理が遅くなるのが解ると思います。これは、マウスからの「マウスが動いたよ」という割り込みが連続してCPUに送られるため、CPUの処理が若干中断されて本来の処理が遅くなるために起こります。


●技術的な事

と言うことで、割り込みが具体的にどんな役割を担っているかお解り頂けたことと思います。次は、少々具体的な仕組みの話に入りましょう。

割り込みコントローラー

この図は、実際にパソコンの内部で割り込みを処理する「割り込みコントローラー」という回路の概念図です。8個の割り込みを受け付ける事の出来る「8259」というICを2個直列に繋ぎ、全部で15個の割り込みを処理できる機構になっています。
この図で「拡張スロット INT●」と書いた割り込みが全部で8個ありますね。拡張スロット用だったら拡張ボードがこれらを全部使えるのか?というと、残念ながらそうではありません。この回路図に書いてある名称は、PC-9801が発売されたかなり初期の頃のものなんです。この割り込み(IRQ)と、一般に使われるINTとの対応表を以下に示します。

デバイス名割り込み要求信号割り込み名割り込みレベル
現在は…(PC-9821Xv13の場合)
8259
マスタ
IRQ0タイマタイマ
IRQ1キーボードキーボード
IRQ2CRTVCRTV
IRQ3拡張バスINT0空き
IRQ4RS-232CRS-232C
IRQ5拡張バスINT1本体内蔵2ndCCU
IRQ6拡張バスINT2空き
IRQ7スレーブスレーブ
8259
スレーブ
IRQ8プリンタ(V30)/NDP(286/386)数値データプロセッサ
IRQ9拡張バスINT3内蔵HDインターフェース
IRQ10拡張バスINT41内蔵FDインターフェース(640KB)
IRQ11拡張バスINT42内蔵FDインターフェース(1MB)
IRQ12拡張バスINT5内蔵サウンド機能
IRQ13拡張バスINT6内蔵マウスインターフェース
IRQ14NDP(V30)/無(286/386)内蔵プリンタポート
IRQ15未使用システムタイマ

ごらんのように、現在のパソコンでは初期状態では空いている割り込みは、ほんの数個しか無いんです。CanBeや最近のValusterシリーズでは、もっと少ないことも予想されます。では、拡張スロットが3基〜4基空いているのに、拡張機器そのものは2個しか増設できないのでしょうか?だったらなんで拡張スロットがはじめから多く付いているのか…?

実は、少し工夫をすることで割り込みをさらに空けることができるんです。具体的に簡単に空けることができるものとしては、まずIRQ5(INT1)の「本体内蔵2ndCCU」です。これは、RS-232Cの2個目の端子です。ですが、通常RS-232C端子に接続するものは一個のモデムくらいのものです。よって、使っていないこの2ndCCU端子を切り離すことで、IRQ5(INT1)を解放させることができます。
具体的な方法は、システムセットアップメニューの中から行います。HELPキーを押しながら電源スイッチを入れるか、リセットボタンを押して下さい。その中の「動作環境の設定」という項目のなかにある「2nd CCU」を、「使用しない」にすると、この割り込みを解放して拡張機器が使えるようになります。

次に空けられるものは、IRQ10(INT41)の「内蔵FDインターフェース(640KB)」です。これは640KBのフロッピーディスクを読むときに使われますが、現在ではまず間違いなく1.25MB、または1.44MBしか使われません。よって、この機能は不要です。そして、この割り込みも使わないので解放することができます。
やはりシステムセットアップメニューを表示して下さい。その中の「ディップスイッチ3の設定」という項目の中にある「フロッピーディスクモード」を「1M」に設定すると、このIRQ10(INT41)を解放して拡張機器が使えるようになります。


ここまでは通常の場合でも空けることができるので、これで拡張スロットが使用できる割り込みは4個にまで増えました。大抵は拡張ボードを4枚も刺すことはまれであろうと思うので、これで十分事足りると思います。ですが、場合によってはこれでも割り込みが足らないということもあるかもしれません。その場合は、さらに2つ割り込みを空けることもできます。

まず、IRQ9(INT3)は「内蔵HDDインターフェース」です。が、HDDをSCSIに全面換装し、内蔵IDE機器を全て捨てるなら、この割り込みも解放することが可能です。SCSIボード自体が割り込みを一つ食うのでIDEとSCSIの併用では割り込みを2つ消費することになります。が、内蔵IDEに未練が無いのであれば、こちらを破棄して割り込みをひとつ解放しても構わないでしょう。その際は、IDEのケーブルを完全にマザーボードから抜き、システムセットアップメニューで「内蔵固定ディスク」を「切り離す」にしておきましょう。

そして、IRQ12(INT5)の「内蔵サウンド機能」も切り離すことができます。これを切り離すと本体内蔵のPCM回路が働かなくなり、Windows環境等においてPCM音声が鳴らなくなります。それでも構わないのでしたら、システムセットアップメニューの「サウンド」を「使用しない」にしておきましょう。また、この内蔵サウンド機能の割り込みは、同じくシステムセットアップメニューから変更することができます。INT0/INT1/INT41/INT5のいずれかを選択することができるので、場合によっては変更して使い続ける事もできるでしょう。

ということで、空けようと思えば最大6つの割り込みを解放し、拡張ボードが使うことができます(但しXv13/R16の場合)。機種によってはこれより少ない数しか解放できない場合もあると思いますが(CanBe等)、うまくこのテクニックを使って割り込みの問題を解決して下さい。


ということで、現在我が家のPC-9821Xv13/R16では割り込みは以下のようにして使っています。

IRQ	INT	用途
----------------------------------
00		[タイマ]
01		[キーボード]
02		[CRTV]
03	INT0	Adaptec AHA-2940AU
04		[RS-232C]
05	INT1	2ND CCU
06	INT2	PowerVR PX2
07		[スレーブ]
08		[数値データプロセッサ]
09	INT3	未使用
10	INT41	Mate-X PCM
11	INT42	[1MB/FDC]
12	INT5	PC-9801-118
13	INT6	[PC-9800 Bus Mouse]
14		[プリンター]
15		[システムタイマ]
赤字で示したものが、拡張スロットに刺している増設ボードです。INT0とINT2は、元々空いている割り込みですのでそれを使用しています。2ndCCUは、我が家の場合アナログモデムを接続しているので、使用しています。IRQ9(INT3)は本来内蔵HDDインターフェースですが、我が家ではIDE機器は捨てたので未使用となって空いています。そしてフロッピーディスクを1M固定モードで使用し、それによって空いた内蔵FDインターフェース(640KB)のIRQ10(INT41)に、内蔵サウンド機能の割り込みを充てました。そして、その元々内蔵サウンド機能が使っていたIRQ12(INT5)は、拡張FM音源ボードであるPC-9801-118という拡張ボードが使っています。
ちなみに「Adaptec AHA-2940AU」とはSCSIホストアダプタの事で、「PowerVR PX2」はNECの3Dカードである「PC 3DEngine2」の事です。


●拡張ボードを使うときは

拡張ボードを使うときは、まず事前に空いている割り込みがあるかどうかを大前提として確認しましょう。確認するには、Windows95ではコントロールパネルの中の「システム」を選択し、その中の「デバイスマネージャー」を表示します。これの一番上部の「コンピュータ」という所をダブルクリックすれば、現在使用している割り込みを表示し、確認することができます。補助として、パソコン購入時に添付されてきた本体の説明書も見ておきましょう。PC-9821Xv13/R16では、「システムを拡張する」という項目に割り込みについての説明が書いてあります。

さて、割り込みが空いていると解ったら、まずは拡張ボードの説明書に書いてある通りにセットアップしましょう。横着して手順を飛ばして作業すると、結局うまくいかずにやり直しと言うことがあります。それなら、素直に指示されるとおりにやった方がよほどスマートなやり方です。しかし、説明書が無かったり、よく書いてなかったりする場合もあるでしょう。そのようなときは、基本的に以下のような手順でセットアップするといいようです。
まず、拡張ボードをまだ刺さない状態で、「コントロールパネル」の中の「ハードウェア」を選択します。そして、「自動的に検出しますか」で「いいえ」を選び、これから拡張する目的のものを自分で選択してドライバをインストールします。そうすると、最後の段階でコンピューターが自動的に割り当てた割り込みレベル等が一覧で表示されます。それの指示の通りに拡張ボードの割り込みスイッチ等を切り替え、そして指示通り電源を切ります。そして拡張ボードを本体に刺し、パソコンを再起動させれば通常は完了です。


ということで、パソコンを使ううえでかなりの難易度を誇る割り込みについて解説してみましたがいかがでしょうか。Windows95が普及し、パソコンが広く一般家庭や企業・学校にも配備されるようになってきました。が、一方でパソコン特有の物理的・電気的問題もまだ数多く残されている為に初心者がとまどう場面もまだ多いでしょう。この解説が、少しでもパソコンの活用の役に立てるなら幸いです。


▲Back
Copyright(C)1998 JSRC/All right reserved.