為了適應大規模的SoC設計,GIC-600被設計成分布式IP。
所謂分布式,GIC-600由幾種組件構成,每個組件可以跟其它相關模塊在物理設計上擺放在一起,并與其擁有共同的電源域;組件之間通過片上網絡(network on chip,簡稱NoC)通信,從而達到更好的時序。
GIC-600的重要組件包括以下幾種:
? Distributor:GIC-600的核心部件,負責與其它組件通信,主要處理SPI和LPI
? Redistributor:與cluster或core交互,主要處理PPI和SGI
? ITS(Interrupt Translation Service):處理基于消息的中斷,用于解析LPI
? SPI collator:顧名思義,收集整理SPI
? Wake request:產生wake_request給core
在具體介紹每個組件之前,我們有必要先來研究一下這些組件之間是如何連接的。主要有兩種方式,
如何連接
第一種是利用片上網絡,比如CMN-600這樣的IP
圖1 利用NoC連接GIC-600的組件
第一種方法,適合大規模的物理設計,尤其是全局時鐘方案復雜的SoC。比如有很多的cluster,一般而言,一個redistributor對應一個cluster,這樣redistributor可以和cluster一起做布局布線,redistributor和cluster之間的通信可以保持在一個比較高的頻率,且timing容易實現。
同樣,對于有很多PCIe控制器的設計,ITS可以和PCIe控制器放在一起,實現LPI。對于SPI來說,一般多是給低速的外設準備的,所以SPI collator可以和distributor放在一起。
Wake request組件的主要作用就是可以產生喚醒信號給core,如果SoC設計中沒有做關于core功耗方面的設計,這個組件可以不需要;如果有功耗控制的需求,這些喚醒信號要給SCP(system control processor)或者相關的模塊,再做進一步的設計,具體取決于設計需要了。
第二種是私有的橋接。
圖2 利用私有橋接連接GIC-600的組件
第二種方法,適合規模較小的,全局時鐘方案簡單的SoC,GIC-600的組件不依賴于片上網絡(因為沒有可用接口,比如NIC等)。這種方法的弊端是,組件之間的走線可能會非常長,并且可能需要在別的IP中穿行。好處是,不占用任何NoC的帶寬。
-
通信
+關注
關注
18文章
6072瀏覽量
136431 -
soc
+關注
關注
38文章
4204瀏覽量
219104 -
中斷
+關注
關注
5文章
900瀏覽量
41755 -
gic
+關注
關注
0文章
14瀏覽量
6291
發布評論請先 登錄
相關推薦
ARM之中斷GIC分析
ARM GIC(八)GICv3架構的變化
ARM體系中對中斷的處理資料分享
ARM GIC電源管理使用手冊指南
探討系統IP的好處和基于Cortex-A處理器的高性能虛擬機的軟件支持
GIC ITS的ITS tables和Command Queue訪問簡析
ARM CORELINK GIC-600AE通用中斷控制器技術參考手冊
扒一扒GIC-600的相關知識
介紹SMMU的相關知識
GIC是什么意思 GIC硬件原理
![<b class='flag-5'>GIC</b>是什么意思 <b class='flag-5'>GIC</b>硬件原理](https://file1.elecfans.com/web2/M00/A8/3E/wKgZomUVIneAQ3IaAACxHAZkJgY327.jpg)
GIC-600的內部結構組件
![<b class='flag-5'>GIC-600</b>的內部結構<b class='flag-5'>組件</b>](https://file1.elecfans.com/web2/M00/AC/E1/wKgaomVKAwWASjQXAACbxq8jSXE185.jpg)
gic和ARM Core的連接
![<b class='flag-5'>gic</b>和ARM Core的<b class='flag-5'>連接</b>](https://file1.elecfans.com/web2/M00/AC/E3/wKgaomVKC6OAQN8fAAIQbYJ2LQo942.jpg)
gic的組件介紹
![<b class='flag-5'>gic</b>的<b class='flag-5'>組件</b>介紹](https://file1.elecfans.com/web2/M00/AE/D9/wKgZomVLPsOAbjf0AAGF_P_UoCc736.png)
評論