对于一个完整的CHI网络,离不开以下三个部分:RN、ICN、SN
其中,ICN(Interconnect)包括HN和MN
RN(Request Node): 产生协议transaction给互连,包含读和写。
SN(Slave Node): 用于接收来自HN的请求,完成相应的操作并返回一个响应。
HN (Home Node) : 用于接收来自RN的协议transaction,完成相应的一致性操作并返回一个响应。
MN(Misc/Miscellaneous Node): 用于接收来自RN的DVM操作,完成相应的操作并返回一个响应。
它们又有多种子类型
对于RN
RN-F(Fully coherent Request Node,全一致性请求节点):
1、包含硬件一致性cache;
2、允许产生所有协议定义的transactions;
3、支持所有的snoop transactions。
RN-D(IO coherent Request Node with DVM support,支持DVM的IO一致性请求节点):
1、不包含硬件一致性cache;
2、可以接收DVM操作;
3、可以产生协议定义的部分transactions。
RN-I(IO coherent Request Node,IO一致性请求节点):
1、不包含硬件一致性cache;
2、不能接受DVM操作;
3、可以产生协议定义的部分transactions;
4、不要求具有snoop功能。
对于HN
HN-F ( Fully coherent Home Node,全一致性主节点) :
1、用于接收除了DVM操作所有的请求操作
2、包括一个PoC(Point of Coherence)点,通过监听RN-Fs,管理各Master一致性,完成所有的snoop响应后,发送一个响应给发出请求的RN;
3、最好是一个PoS(Point of Serialization)点,用于管理多个memory请求的顺序。可能包含目录或监听过滤,以此来减少冗余的snoop请求。
HN-I ( Non-coherent Home Node,非一致性主节点 ) :
1、处理有限的一部分协议定义的Request:
2、不包含PoC点,也不具备处理snoop请求;
3、最好是一个PoS点,管理访问IO 子系统的请求顺序。
对于SN
SN-F :
1、用于normal memory的从节点,
2、可以处理Non-snoop读写请求、atomic请求、CMO(Cache Maintenance Operation)请求
SN-I :
1、用于peripheral或normal memory的从节点,
2、可以处理Non-snoop读写、atomic操作、CMO请求。
其中,normal memory是指内存,peripheral是指外设。对于CHI来说,normal memory是可以做一致性维护的,外设处于一致性范围之外。
由上篇我们知道,CHI分为3个层次:协议层、网络层、链接层
对于协议层,协议节点之间的通讯基于channel
以TX字母为前缀的通道用于发送消息,以RX字母为前缀的通道用于接收消息
上图中我们可以看出,channel 分为4类
request:REQ
response : SRSP、CRSP
snoop :SNP
data : WDAT、RDAT
由上篇我们得知,传输类型有以下几种:Read、write、dataless、Combined Write 、Atomic 、Other、Snoop
下一篇我们来讲一下Read