GIC-600的组件是如何连接的

描述

为了适应大规模的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的带宽。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分