大家好,又到了每日學(xué)習(xí)的時間了,今天我們來聊一聊英特爾 Altera系列 cyclone V HPS GIC.
一、CYCLONE V GIC配置
Cyclone v使用雙核ARM CORTEX A9硬核處理器,MPU系統(tǒng)框圖如下:
由上面圖可以看出,雙核CORTEXA9共同使用一個GIC,pl390。PL390實現(xiàn)了180個中斷源,包括了專用的FPGA中斷。每個核都有16個一組的軟件中斷(SGI)及16個一組的私有中斷(PPI)。這32個中斷占用了GIC的0-31中斷號,也稱為interrupt ID。但是這32個中斷采用了中斷與寄存器分區(qū)抽像。關(guān)于這個中斷與寄存器分區(qū),后面講講。具體的中斷映射,請參照cyclone v HPS手冊。
PL390負(fù)責(zé)收集所有的中斷信號,并對這些中斷信號進行管理,包括中斷行為,中斷路由及安全擴展等。具體如下:
l ARM安全擴展,這部分內(nèi)容需要了解ARM TRUSTZONE技術(shù)。
l 使能,關(guān)閉及生成外圍中斷。
l 生成軟件中斷。
l 中斷門限及優(yōu)先級設(shè)置。
l 多處理器環(huán)境中的路由。
PL330支持三種中斷類型,PPI,SPI,SGI。
l PPI中斷為CPU核私有中斷,只連接到指定CPU核。
l SPI由PL330路由到相應(yīng)的CPU核。
l SGI由軟件編程PL330直接生成,用與核間通信。
PL390支持兩中中斷模型:
l 1:N:只讓一個CPU核處理中斷。軟件通過系統(tǒng)編程GIC實現(xiàn)中斷路由,讓指定CPU核處理該中斷。
l N:N:每個處理器都會收到中斷,它們獨立處理這些中斷。這種方式在SGI上使用,用于CPU核間通信。
二、MPU GIC
PL390提供一個AMBA總線接口給SOC系統(tǒng)訪問其內(nèi)部寄存器,可以進行可尋址配置及訪問,同時還可以提供最多8個CPU接口,也就是說可以最多為8個CPU提供中斷服務(wù)。
整個GIC被分成兩個部分,distributor(中斷分配器)與多個CPU接口。再看下面一張圖。
這張圖中,紅色箭頭直接穿過distributor,分配到FIQ與IRQ,這就是bypass模式,也稱為旁路模式,這種模式下,所有中斷被直接分配到了相應(yīng)的CPU核。而橙色箭頭方向表示GIC提供了一個AXI接口,可以用于訪問distributor,對GIC進行配置。藍(lán)色表示軟件可以通過CPU接口直接編程GIC,產(chǎn)生中斷,該中斷具有廣播性質(zhì)。
通用GIC系統(tǒng)框圖如下所示:
由上圖可以看到GIC明顯分成了Distributor與cpu接口兩部分。所有的中斷都經(jīng)過Distributor,SGI中斷只是能edge觸發(fā)。
三、GIC編程模型
CPU接口寄存器如下圖所示,在CYCLONE V中的偏移地址是0xfffec000。
GICC_CTRL(CPU接口控制寄存器)
Enable= 1來轉(zhuǎn)發(fā)中斷。
中斷優(yōu)先級屏蔽寄存器(GICC_PMR)
用來設(shè)置一個優(yōu)先級,低于該優(yōu)先級的中斷不會送到CPU。如果設(shè)置成0,那就意味著所有中斷都屏蔽了,都不會送到ARM核。
GICC_BPR(二進制點寄存器)
優(yōu)先級值被分成組優(yōu)先級與子優(yōu)先級,跟IP地址掩碼相似。這樣設(shè)置后,有相同組優(yōu)先級的中斷被認(rèn)為有相同的等級。這樣就分成兩種情況,如果一個中斷要搶占一個正在活動的中斷,那么該中斷必須有一個比活動中斷小的優(yōu)先級。如果沒有活動中斷情況下,相同組的中斷比較子優(yōu)先級,產(chǎn)生一個。
GICC_IAR(中斷確認(rèn)寄存器)
當(dāng)接收到中斷時,讀取該寄存器并讀取中斷ID及SGI中產(chǎn)生中斷的CPUID,通知gic中斷處理程序已被確認(rèn)。
中斷結(jié)束寄存器(GICC_EOIR)
當(dāng)中斷服務(wù)程序(ISR)中的中斷處理完成時,記錄相應(yīng)的中斷ID,并通知gic已執(zhí)行eoi處理。寫該寄存器通過GIC中斷處理完畢。
-
英特爾
+關(guān)注
關(guān)注
61文章
10138瀏覽量
173532 -
Altera
+關(guān)注
關(guān)注
37文章
799瀏覽量
155118
發(fā)布評論請先 登錄
相關(guān)推薦
測試芯片出爐 Altera/英特爾搶得14nm頭籌
英特爾CEO親自上陣解讀重金收購Altera背后原因
為物聯(lián)網(wǎng)帶來驚喜 英特爾推出Cyclone10 FPGA系列

評論