CPU 如何被 APIC 中断以及如何处理共享中断?

CPU 如何被 APIC 中断以及如何处理共享中断?

据我所知,每个PCI设备都有 4 个中断引脚。主板上许多不同PCI设备(内置或外部设备)的引脚IO-APIC通过可编程中断路由器路由到(高级可编程中断控制器)。这就是拓扑结构。

据我所知,当发生中断时,IO-APIC将发出信号,并将 INT 发送到 CPU,然后奇迹发生,CPU 开始执行 ISR(中断服务程序)。

那是什么魔法?

CPU 和之间应该发生什么通信IO-APIC来处理 INT?

我的意思是 CPU 如何接收中断向量(它是一个特殊的总线周期吗?)以及如果被许多设备共享PCI会发生什么(作为平台参考)?IRQx86 Linux

答案1

中断向量已存储在中断向量表中,因此 CPU 无需从外设获取它。如果中断与 IO-APIC 或类似设备相关联,这些设备可能会因不同原因引发中断,则中断处理程序将查询该设备以找出其引发中断的原因。这没有特殊的总线周期,它与 CPU 从其外设之一获取任何信息的方式相同。

相关内容