2010-12-10 73 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號碼。