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

linux--LED子系統(tǒng)一文讀懂

Arm Linux中斷子系統(tǒng)先相關(guān)資料分享
Linux內(nèi)核輸入子系統(tǒng)的驅(qū)動(dòng)研究

需要了解的Linux的IRQ中斷子系統(tǒng)
詳細(xì)了解Linux設(shè)備模型中的input子系統(tǒng)

Linux中斷(interrupt)子系統(tǒng)之一:arch相關(guān)的硬件封裝層
openEuler Kernel技術(shù)內(nèi)核中斷子系統(tǒng)介紹
Linux系統(tǒng)中NFC子系統(tǒng)架構(gòu)分析
Linux中斷情景分析

Linux驅(qū)動(dòng)移植 Linux系統(tǒng)架構(gòu)優(yōu)點(diǎn)

Linux clock子系統(tǒng)是什么

評(píng)論