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 线,而是为总线上的每个插槽提供了 4 条不同的 IRQ 线(称为 INTA-INTD),允许每个设备拥有最多 4 个不同的 IRQ 供自己使用。实际上,设备仅使用 INTA,硬件会将其路由到特定的 IRQ。

您在图像中看到的数字不是内存地址,它们只是 IRQ 编号的十六进制表示。

APIC 支持 256 个中断向量。

相关内容