双处理器机器如何处理中断?

时间:2009-03-01 04:05:15

标签: hardware cpu multicore interrupt cpu-architecture

我知道双核CPU如何处理中断。我想知道如何在具有多个物理处理器的电路板上实现中断处理。

是否有任何中断责任由物理板的配置决定?每个处理器必须能够处理某些类型的中断,如磁盘I / O.除非有一些电路来管理和分配适当的处理器中断?我的猜测是该方案必须是处理器中立的,因此任何处理器和内核都可以运行中断处理程序。

如果核心正在等待磁盘读取,那么当磁盘准备就绪时,该核心是否会运行中断处理程序?

4 个答案:

答案 0 :(得分:7)

在x86系统上,每个CPU都有自己的本地APIC(高级可编程中断控制器),它们也相互连接,并连接到I / O APIC,处理路由设备中断到本地APIC。

操作系统可以对APIC进行编程,以确定哪些中断被路由到哪些CPU(或让APIC做出决定)。

我认为多核CPU会为每个核心配备一个本地APIC,但老实说我不确定。

有关详细信息,请参阅以下链接:

答案 1 :(得分:3)

您感兴趣的是SMP Processor Affinity。 Here是一篇关于如何在Linux中处理它的优秀文章。 Advanced Programmable Interrupt Controller (APIC)是你在现代系统中管理它的方式。基本上,除非您有一个使用此接口正确设置的操作系统,否则默认情况下将全部转到处理器0。此外,您不一定希望发出命令的核心等待特定中断。您希望负载较少的核心接收它。

答案 2 :(得分:1)

我早就回答了这个问题。也许它可以为你提供一些见解:))

how do interrupts in multicore/multicpu machines work

答案 3 :(得分:0)

我想说这取决于硬件制造商......

然而this link让我相信大多数可能是由主处理器和/或第一核心处理的。

Another link