中斷子系統(tǒng)硬件架構
一個完整的設備中,與中斷相關的硬件可以劃分為3類,它們分別是:設備、中斷控制器和CPU本身。
設備:設備是發(fā)起中斷的源,當設備需要請求某種服務的時候,它會發(fā)起一個硬件中斷信號,通常,該信號會連接至中斷控制器,由中斷控制器做進一步的處理。在現(xiàn)代的移動設備中,發(fā)起中斷的設備可以位于soc(system-on-chip)芯片的外部,也可以位于芯片的內(nèi)部,因為目前大多數(shù)soc 都集成了大量的硬件 IP,例如 I2C、SPI、Display Controller 等等,就是內(nèi)部中斷源。
中斷控制器:中斷控制器負責收集所有中斷源發(fā)起的中斷,現(xiàn)有的中斷控制器幾乎都是可編程的,通過對中斷控制器的編程,我們可以控制每個中斷源的優(yōu)先級、中斷的電氣類型,還可以打開和關閉某一個中斷源,在smp系統(tǒng)中,甚至可以控制某個中斷源發(fā)往哪一個CPU 進行處理。對于 ARM 架構的 soc,使用較多的中斷控制器是VIC(Vector Interrupt Controller),進入多核時代以后,GIC(General Interrupt Controller)的應用也開始逐漸變多。STM32單片機的中斷控制器叫 NVIC,ARM架構的中斷控制器一般為GIC,不同架構有不同的中斷控制器。
CPU:最終響應中斷的部件,它通過對可編程中斷控制器的編程操作,控制和管理者系統(tǒng)中的每個中斷,當中斷控制器最終判定一個中斷可以被處理時,他會根據(jù)事先的設定,通知其中一個或者是某幾個
cpu 對該中斷進行處理,雖然中斷控制器可以同時通知數(shù)個 cpu 對某一個中斷進行處理,實際上,最后只會有一個 cpu 相應這個中斷請求,但具體是哪個 cpu進行響應是可能是隨機的,中斷控制器在硬件上對這一特性進行了保證,不過這也依賴于操作系統(tǒng)對中斷系統(tǒng)的軟件實現(xiàn)。
為什么需要中斷控制器?
CPU 要做的事情主要是運算。一個 CPU 有很多個中斷可以使用,他們之間也有優(yōu)先級。由于中斷過多,我們需要中斷進入 CPU處理之前,先進入中斷控制器,讓中斷控制器來控制中斷的優(yōu)先級、觸發(fā)方式、enable 和 disable等,為CPU減輕負擔,讓CPU專注于運算。
-
Linux
+關注
關注
87文章
11207瀏覽量
208713 -
硬件
+關注
關注
11文章
3211瀏覽量
66060 -
子系統(tǒng)
+關注
關注
0文章
109瀏覽量
12373 -
系統(tǒng)
+關注
關注
1文章
1006瀏覽量
21291
發(fā)布評論請先 登錄
相關推薦
評論