据我所知,每个PCI
设备都有 4 个中断引脚。主板上许多不同PCI
设备(内置或外部设备)的引脚IO-APIC
通过可编程中断路由器路由到(高级可编程中断控制器)。这就是拓扑结构。
据我所知,当发生中断时,IO-APIC
将发出信号,并将 INT 发送到 CPU,然后奇迹发生,CPU 开始执行 ISR(中断服务程序)。
那是什么魔法?
CPU 和之间应该发生什么通信IO-APIC
来处理 INT?
我的意思是 CPU 如何接收中断向量(它是一个特殊的总线周期吗?)以及如果被许多设备共享PCI
会发生什么(作为平台参考)?IRQ
x86 Linux
答案1
中断向量已存储在中断向量表中,因此 CPU 无需从外设获取它。如果中断与 IO-APIC 或类似设备相关联,这些设备可能会因不同原因引发中断,则中断处理程序将查询该设备以找出其引发中断的原因。这没有特殊的总线周期,它与 CPU 从其外设之一获取任何信息的方式相同。