プロが教えるわが家の防犯対策術!

なぜPCIデバイスは割り込みの共有が出来るのに、ISAデバイスはできないのですか?

A 回答 (3件)

ISAバスの割り込みコントローラはエッジトリガーに設定されていたからです。

同じ割り込みラインに二つ以上のデバイスからの割り込み要求があったとしてもエッジトリガーであるかぎりそれらを区別して正しく処理することは出来ません。したがってISAバスでは割り込みを共有できません。
レベルトリガーであればそれぞれを区別して処理することは可能です。PCIバスはレベルトリガーです。
EISAがPC AT互換機に採用されたときにレベルトリガーの割り込みを処理できるようにPCアーキテクチャが拡張されました。 http://ja.wikipedia.org/wiki/Intel_8259
    • good
    • 0

マイクロソフトの解説の抜粋より・・・


ISAは割り込み共有を認めていないのが前提で語られています。


デバイスドライバがその割り込みハンドラをフックしていない
この場合、デバイスドライバは、その割り込みハンドラをフックする前に、割り込みが発生する原因となるデバイスの初期化を行います。この状況はぜひとも避けたいことのひとつです。いくつかのドライバは、ISA バス割り込み環境 (割り込みが共有できない) のようにふるまうことが知られています。ISA の「共有不可能な」環境では、割り込みは仮想化されるまでプログラマブル割り込みコントローラ (PIC) でマスクされます。その割り込みハンドラがこれらの状況下でフックされる前に割り込みが発生する時は無害です。しかし、PCI バスの共有可能な割り込み環境では、他のデバイスが既に同じ割り込みをフックして、PIC で割り込みをアンマスクした場合、割り込みハンドラをフックする前のデバイスの割り込みの発生は、この処理されない割り込みがシステムをクラッシュする可能性を秘めています。
    • good
    • 0

ISA全盛期にIRQの共有って規格が無かったからとしか言いようがないかなぁ・・・。


PCIでIRQの共有が出来るように成った頃は、既にISAは衰退期だったし。

ちなみに、PCIでも初期のモノはIRQの共有は対応してませんし、OS側もWIN95OSR2以降でないとサポートしてません。
又、全ての機器がIRQの共有をして正常動作するとも限りません。
今でもボードの取付スロットを変えると不具合が解消したって話しはありますので。

http://home.impress.co.jp/magazine/dosvpr/q-a/99 …

http://www.alpha-data.co.jp/support/faq/all_qa00 …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!