GIC-600的内部结构组件

接下来看看每个组件。
• 首先是distributor,一个soc只有一个。
•它的组件只能与distributor通信。所以,可以看出,distributor是gic-600中的核心,其作用是收集所有的中断,并转发给相应的目标core。
图3 gic-600 distributor和spi collator
对于core来说,可以通过上图中的ace-lite slave接口访问gic-600中除去gits_translater的所有寄存器。由于为了实现lpi,gic-600的distributor要维护几张表,且这些表格保存在内存中,所以需要一个master接口去访存。在上图中,对应的是ace-lite master总线接口。distributor还包含三组axi4-stream接口,分别用于redistributor,its和其它distributor(比如多路服务器)的通信。
spi collator对外的接口比较简单,输入spis,是来自外设的中断线。在gic-600中,spi数目是32的整数倍,目前最多支持960。输出spi_r,是经过时钟同步的spi信号,如果需要,可以送给发出spi的外设。
wake request模块是配合soc功耗管理用的,如果需要实现core的idle状态管理,或者powergating,在distributor把中断发给目标core之前必须唤醒该core。所以唤醒信号是每个core一个。
简单介绍完distributor,需要再讲讲axi4-stream总线。
图4 amba演进
在axi4-stream中,去掉了地址项,允许无限制的数据突发传输规模。正如spec中所说,这个总线是用于master和slave之间交换数据用的。接口信号比较简单,如下图:
图5 axi4-stream接口信号列表
大部分信号和axi类似,aclk和aresetn信号,不必多说。tready和tvalid是mater和salve的握手信号,slave可以通过tready反压master的数据传送。
需要注意的是tdest和tid,tdest提供数据流的路由信息,也就是说一个master可以接几个slave设备。tid提供数据流的标识,意味着master可以给slave交叉发送不同数据流。
如果两个设备要实现双向传输,就需要互为master和slave。拿gic-600来说,一个soc中只有一个distributor,同时可以有若干redistributor,但是redistributor只与distributor通信,且需要双向传输。也就是说distributor能看到多个redistributor,而一个redistributor只能看到distributor。
distributor可以通过tdest把数据路由给相对应的redistributor,并且通过redistributor发过来的tid以区分不同的redistributor。
tdata数据流包含三种类型:data、position、null。data是数据;position作为占位符使用,可以用来表征data的相对位置,null不包含任何有用的信息。
数据流的结构可以有很多种,比如可以只传数据;也可以将数据和null或position混合传输。

2018年智能家居尚未规模化应用 目前依旧是供给大于需求
0glass AR眼镜在互联网大会互联网之光博览会亮相
影像测量机的功能介绍
三相异步电机中转矩大小与转速有什么影响?
以太坊生态有什么新的数据
GIC-600的内部结构组件
汽车自适应巡航控制系统(ACC)技术详解
基于微机电系统激光雷达扫描方案
一文解析UWB技术的发展与应用
盘点一周内中兴诺基亚等企业的巨额交易
IT基础设施建设需求扩大,2020年中国IT支出将达到20683.5亿元
量子通信在理论上是无条件安全的吗?
直流220V变成直流5V的两种方法
ios11发正式版:ios11正式版新功能有惊喜,iphone6升级后还能再用三年,苹果良心之作
FreeRTOS中相对延时与绝对延时的区别
中国联通通过美国联邦通信委员会及参议院审查
畅想未来的物联网生活
懂营销产品好的OPPO为什么会被贴负面标签
JDI发布透明指纹识别模块,可用于未来的智能手机
车载以太网RClamp10012PQ防护解析