2010-12-10 52 views
1

请您告诉我硬件/驱动程序如何引发中断?并在一个SMP中,哪个CPU被中断? 如果IRQ由多个设备共享,内核如何识别哪个设备导致中断。有关中断和中断处理的问题

/内甚

+0

我对你的问题感兴趣,但我需要警告你:你对“硬件/驱动程序如何引发中断”有点含糊。简而言之,硬件在给定中断向量处执行代码。这是如何完成的。我猜你想要更具体的东西。 – 2010-12-10 13:16:41

+0

我的意思是无论外围硬件需要CPU注意力,它都会引发中断,不是吗? CPU执行该中断的中断处理程序。现在我的问题是硬件如何引发一个中断(通过执行一些指令或...) – 2010-12-10 19:28:51

回答

1

传统上有从设备运行到中断控制器,当它是高(或低,或在边缘上)产生一个中断,并且CPU开始执行一个实际的中断线路中断处理器。

在现代系统中断往往是发送到中断控制器(或可能有几个)的总线上的消息。

关于更多细节,您需要更具体,细节因您所谈论的硬件类型而异。

0

中断处理程序也称为ISR是OS中设备驱动程序的一部分。在OS中,每个irq数字表示来自中断控制器的中断线。

设备硬连线到中断控制器,如果设备中产生中断,中断控制器将发出相应的CPU信号。中断目标CPU可在每个中断线的中断控制器中编程。

为了在硬件中共享中断号,例如ARM中的GPIO,中断控制器或设备应为实际中断号提供一个额外的寄存器。另外,ISR应该查询该寄存器的真实IRQ号码。