IRQ 和中斷向量表

IRQ 和中斷向量表

我讀了很多關於 IRQ 的文章,似乎存在衝突和過時的資訊。其中一些可以追溯到 Windows 95。

  1. 軟體中斷和硬體中斷都是由中斷向量表管理和調度的。如果不是,那麼如何控制不同。

  2. 我讀到 PCI 模式 IRQ 和 ISA 模式 IRQ 之間存在差異,這是真的嗎?如果是這樣,您如何設定模式,它們的功能有何不同?

  3. 現在我們有了 PCI Express,它們是否使用 PCI 模式 IRQ(如果存在),它們如何運作(中斷方面)。

編輯 4. 看這張圖,似乎有很多 IRQ,並且它們被映射到記憶體。這意味著什麼? IRQ 數量遠多於 16 個。我知道 APIC 允許更多,但這麼多?

在此輸入影像描述

提前致謝 :-)

答案1

沒有不同的模式,舊的 ISA 總線和 PCI 總線上有不同的硬體。 ISA 總線在總線上提供了 16 條 IRQ 線,設備可以使用這些線來發出注意信號。可程式中斷控制器(實際上是一對級聯的 8259A 晶片)會透過對這些線路進行優先排序並在其中一條活動時向 CPU 發出訊號來回應這些線路。這導致CPU呼叫中斷服務程序。 IRQ 0-7 觸發 int 8-F,IRQ 8-15 觸發 int 70-77。中斷也可以透過軟體 int 指令觸發,並導致 CPU 呼叫中斷向量表中對應槽所指向的例程。

PCI 沒有為總線上的所有裝置共用16 條IRQ 線,而是為總線上名為INTA-INTD 的每個插槽提供4 條不同的IRQ 線,允許每個裝置最多有4 個不同的IRQ 供自己使用。實際上,設備僅使用 INTA,硬體將其路由到特定的 IRQ。

您在影像中看到的數字不是記憶體位址,它們只是 IRQ 編號的十六進位表示法。

APIC 支援 256 個中斷向量。

相關內容