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