接下來看看每個組件。
? 首先是distributor,一個SoC只有一個。
?它的組件只能與distributor通信。所以,可以看出,distributor是GIC-600中的核心,其作用是收集所有的中斷,并轉發(fā)給相應的目標core。
圖3 GIC-600 distributor和SPI collator
對于core來說,可以通過上圖中的ACE-Lite slave接口訪問GIC-600中除去GITS_TRANSLATER的所有寄存器。由于為了實現(xiàn)LPI,GIC-600的distributor要維護幾張表,且這些表格保存在內存中,所以需要一個master接口去訪存。在上圖中,對應的是ACE-Lite master總線接口。Distributor還包含三組AXI4-Stream接口,分別用于redistributor,ITS和其它distributor(比如多路服務器)的通信。
SPI collator對外的接口比較簡單,輸入SPIs,是來自外設的中斷線。在GIC-600中,SPI數(shù)目是32的整數(shù)倍,目前最多支持960。輸出SPI_r,是經過時鐘同步的SPI信號,如果需要,可以送給發(fā)出SPI的外設。
Wake request模塊是配合SoC功耗管理用的,如果需要實現(xiàn)core的idle狀態(tài)管理,或者powergating,在distributor把中斷發(fā)給目標core之前必須喚醒該core。所以喚醒信號是每個core一個。
簡單介紹完distributor,需要再講講AXI4-Stream總線。
圖4 AMBA演進
在AXI4-Stream中,去掉了地址項,允許無限制的數(shù)據突發(fā)傳輸規(guī)模。正如spec中所說,這個總線是用于master和slave之間交換數(shù)據用的。接口信號比較簡單,如下圖:
圖5 AXI4-Stream接口信號列表
大部分信號和AXI類似,ACLK和ARESETn信號,不必多說。TREADY和TVALID是mater和salve的握手信號,slave可以通過TREADY反壓master的數(shù)據傳送。
需要注意的是TDEST和TID,TDEST提供數(shù)據流的路由信息,也就是說一個master可以接幾個slave設備。TID提供數(shù)據流的標識,意味著master可以給slave交叉發(fā)送不同數(shù)據流。
如果兩個設備要實現(xiàn)雙向傳輸,就需要互為master和slave。拿GIC-600來說,一個SoC中只有一個distributor,同時可以有若干redistributor,但是redistributor只與distributor通信,且需要雙向傳輸。也就是說distributor能看到多個redistributor,而一個redistributor只能看到distributor。
Distributor可以通過TDEST把數(shù)據路由給相對應的redistributor,并且通過redistributor發(fā)過來的TID以區(qū)分不同的redistributor。
TDATA數(shù)據流包含三種類型:data、position、null。data是數(shù)據;position作為占位符使用,可以用來表征data的相對位置,null不包含任何有用的信息。
數(shù)據流的結構可以有很多種,比如可以只傳數(shù)據;也可以將數(shù)據和null或position混合傳輸。
-
soc
+關注
關注
38文章
4338瀏覽量
221704 -
中斷
+關注
關注
5文章
904瀏覽量
42524 -
gic
+關注
關注
0文章
14瀏覽量
6348
發(fā)布評論請先 登錄
ARM CORELINK GIC-600AE通用中斷控制器技術參考手冊
扒一扒GIC-600的相關知識
介紹SMMU的相關知識
ldo內部結構和工作原理
GIC-600的組件是如何連接的

評論