1. CMN600AE的介绍
CoreLink CMN-600 Coherent Mesh Network 是基于Mesh拓扑结构,对外支持AMBA CHI/ACE-LITE等接口,内部改用路由结构转发数据,并提供硬件一致性和系统缓存,还支持多芯片互联。CMN600在T16FFC上可以做到2Ghz,另外AE版本增加了车规芯片的安全功能,总线内部采用EDC检查,接口采用的奇校验。
CMN-600AE具有以下特点:
功能安全合规性:该网络符合功能安全标准,例如ISO 26262(汽车电子领域的功能安全标准)或IEC 61508(工业自动化领域的功能安全标准)等。
高性能:CMN-600AE采用了先进的连通性算法和协议,以提供低延迟、高带宽和高吞吐量的数据传输。
可靠性:该网络具有内建的容错机制,能够在节点故障时自动重新路由数据流,确保系统的连通性和可靠性。
低功耗:CMN-600AE优化了功耗,可以在满足高性能需求的同时降低能源消耗。
它应用于整个soc之间的cache一致性
举个例子如下为一个CMN 2X2的mesh结构:
对DDR发起访问的master为CPU和GPU,CPU内部有自己的L1/L2/L3cache,当GPU发起DDR访问时,会通过HN-F节点去管理整个系统的cache一致性。
2. CHI协议简介
CHI协议是比较大的一块,对它理解的也不够深入就不展开讲了,这里就讲一些基本的概念。
2.1 CHI节点分类
SNOOP消息:是一种在高速缓存系统中用于通信和控制的消息。当一个处理器修改了缓存中的某个数据项时,它会发送一个Snoop消息给其他处理器,告知它们该数据项的状态发生了变化。其他处理器接收到Snoop消息后,根据消息中的信息更新自己的缓存状态,以保证缓存一致性。
在MESI协议中,当一个处理器修改了缓存中的数据项时,它会将该数据项的状态由Shared(共享)变为Modified(修改),然后向其他处理器发送Snoop消息,告知它们该数据项已被修改。其他处理器接收到Snoop消息后,如果它们也缓存了该数据项,并且数据项的状态是Shared,则会将状态变为Invalid(无效),表示自己的缓存中的数据已经过期。这样一来,当其他处理器再次访问该数据项时,就会从主内存中重新获取最新的数据,保证了缓存的一致性。
通过使用Snoop消息和缓存一致性协议,可以确保多个处理器或核心之间共享的数据在高速缓存中始终保持一致,避免了数据不一致的问题,提高了系统的性能和可靠性。
DVM消息:(Distributed Virtual Memory messages)DVM消息的作用是通知相关的硬件和软件组件,TLB中的某些条目已经无效或失效,需要进行相应的处理。这些消息可以触发TLB的刷新、更新或使其失效。通过DVM消息,系统可以确保TLB中的数据与实际的内存映射保持一致,并防止出现无效的地址转换。
2.2 CHI的消息路由之SAM(system address map table)表
如图1-1所示,当CPU发起一笔没有被cache的DDR访问时,RN节点通过SAM表中的映射关系,物理地址查找对应的HN-F节点, 当到达HN-F节点时,又通过SAM表查找到对应的SN-F/SBSX节点,最终到达DDR
配置SAM有如下约束:
• 每个RN/HN必须有自己SAM,且每个RN的节点SAM表需要配置成一致,每个HN节点的SAM表也需要配置成一致
• RN的sam表用于将物理地址映射到对应的HN 节点上
• HN的sam表用于将物理地址映射到对应DDR上
2.3 RN(CPU)发起访问的详细过程
• RN0根据内部的SAM知道要把请求发给HN0(TgtID是HN0,SrcID是RN0);
•HN0在通过内部的SAM知道要继续发给SN0(ReturnNID是RN0);
•SN0接收请求,返回数据(HomeNID是HN0,TgtID从HN0的ReturnNID而来);
•RN0接收到SN0的数据响应,返回CompAck给HN以结束此次transaction(TgtID是HN0,从HomeNID而来)
3. CMN 配置
3.1 RN-F/RN-D SAM表配置
配置memory地址RN到HN路由
3.2 配置路由的HN-F的node ID
举个例子:假如por_rnsam_sys_cache_grp_region0.region0_base_addr= 0xc000_0000 , por_rnsam_sys_cache_grp_hn_nodeid_reg0.nodeid_0 = 0x30 por_rnsam_sys_cache_grp_hn_nodeid_reg0.nodeid_1 = 0x40, 则说明RN-X发出去c000_0000开头的地址会路由到HN-F node=0x30,0x40两个node上面。
3.3 配置非一致性地址出口
配置方法和上面一致
4. CMN600AE的架构
4.1 CMN600AE的路由方式
根据配置SAM来实现路由,根据2级mapping来实现,RN->HN根据RN SAM来实现,和HN->SN根据HN SAM来实现,CHI的协议中也是如此定义SAM的。
4.2 CMN600AE的双chip方案
如图为CMN600AE的spec所描述的双chip方案,chip和chip之间的连接是根据PCIE所连接,PCIE与CMN600的网络的连接接口为CXS,对接的模块为CXG,用于CHI协议的转化为CCIX。
4.3 CMN600AE的qos机制
在mesh的架构中CMN600网络提高性能的方法:
1、mesh的架构层,通过多级的cache,以及设计HNF node可以去snoop cluster中的cache,提高性能
2、协议层,CHI协议中支持DMT、DCT、和prefetch功能提高性能
3、soc层,支持qos机制来提高性能,qos的value一共有4bit,值为0-15,值越高优先级越高
在RN 的节点是qos发出的源头,如图所示,RN-D/RN-I的qos配置在该节点内,对应RNF节点来说配置在对应的XP节点内,qos的值支持以下机制配置:
- 直接bypass
- Latency regulation:根据每个包的延时来调整qos值
- Period regulation:根据一段时间内包完成的延时来调整qos值
- HNF内部对qos的处理:在HNF内部配置POCQ可以为32或者64个Entry,qos一共被分为4类HH/H/M/L优先级,如图设置32个Entry,1个固定的SFevict使用,其他给qos使用,配置的个数如下,当L的包收到5个后,会占5个entry,再来一个L的包会触发chi协议中的retry机制,来带M的qos,会选择空闲的15个entry内找一个来处理该包的数据。
HNI/D的处理:来源高优先级的qos先处理,并且qos的值会直接透传到下一级。
5.术语
ATB(Advanced Trace Bus):For moving trace data around the chip,see CoreSight
ACE(AXI Coherency Extensions):Used in big LITTLE systems for smartphones,tablets,etc
CHI(Coherent Hub Interface):The highest performance,used in networks and servers