私はIRQについてたくさん読んでいますが、矛盾した古い情報があるようです。その一部はWindows95にまでさかのぼります。これが私が混乱していることです。
ソフトウェア割り込みとハードウェア割り込みの両方が、割り込みベクタテーブルによって管理およびディスパッチされていますか。そうでない場合は、どのように制御されますか。
PCIモードIRQとISAモードIRQ)には違いがあると読みましたが、本当ですか?もしそうなら、どのようにモードを設定し、どのように機能が異なりますか?
PCI Expressができたので、PCIモードIRQを使用しますか(存在する場合)、どのように機能しますか(割り込みに関して)。
編集4.この写真を見ると、多くのIRQがあり、それらがメモリにマップされているように見えます。これの意味は何ですか? 16を超えるIRQがあります。 APICでさらに多くのことが可能になることは知っていますが、これだけですか?
前もって感謝します :-)
異なるモードはなく、古いISAバスとPCIバスには異なるハードウェアがあります。ISAバスは、バス上に16本のIRQラインを提供しました。プログラム可能な割り込みコントローラー(実際にはカスケード接続された8259Aチップのペア)は、これらのラインに優先順位を付け、アクティブなときにCPUにシグナルを送ることで、これらのラインに応答しました。これにより、CPUは割り込みサービスルーチンを呼び出しました。IRQ0 -7はint8-Fをトリガーし、IRQ8-15はint70-77をトリガーしました。割り込みはソフトウェアint命令を介してトリガーすることもでき、CPUは割り込みベクトルテーブルの対応するスロットが指すルーチンを呼び出します。
バス上のすべてのデバイスで共有される16本のIRQラインの代わりに、PCIはINTA-INTDという名前のバス上の各スロットに4本の異なるIRQラインを提供し、各デバイスが独自に使用するために最大4本の異なるIRQを持つことができるようにしました。実際には、デバイスはINTAのみを使用し、INTAはハードウェアが特定のIRQにルーティングします。
画像に表示されている番号はメモリアドレスではなく、単にIRQ番号の16進表現です。
APICは256個の割り込みベクタをサポートしています。