请求结点RN
可以向NOC发送读/写等请求事务,有以下几种类型的RN:
- RN-F 一般是处理器核或者核簇结点,包含了局部cache和一致性部件snoopee。与NOC上的一致性部件一起,维护“可缓存”数据的一致性(这种可缓存数据的地址一般是normal属性);RN-F可以发送所有请求事务类型;支持所有的snoop类型事务(这里不仅仅是指发送snoop类型事务,也包括了响应来自NOC的snoop类型事务)。
- RN-D 一般是支持SMMU的IO DMA请求点,不包含局部cache,也没有snoopee。能接收并响应来自RN-F的DVM类型事务(用于操作SMMU);主要负责发送DMA读/写主存时的数据一致性相关事务。
- RN-I 与RN-D类型,但不支持SMMU。
一致性结点HN
隶属于NOC的功能部件,接收来自RN的事务请求,有以下几种类型的HN:
- HN-F 包含了一个目录或者snoop filter来支持所有类型的事务请求,但不支持DVM类型的事务请求。HN-F管理所有RN-F的cache一致性,例如一个地址的最新数据究竟在哪几个RN-F的cache中,还是在NOC的L3 cache中;例如一个RN-F要写数据之前,首先就需要向HN-F拿到该地址的独占权(换句话说,HN-F协助RN-F获得地址的独占权);HN-F还可以用于管理内存请求之间的序,即HN-F是内存操作的保序点。我的理解:HN-F用于可缓存的normal属性地址范围。
- HN-I 支持部分类型的事务请求,不管理RN的数据一致性,用于针对外设的PIO操作的保序功能。我的理解:HN-I用于不可缓存的device属性地址范围。
- MN 专门用于接收DVM操作。
从结点SN
只能接收来自HN的请求,完成相关操作,并返回响应消息。
- SN-F 用于Normal属性内存,也可以处理非snoopable的读/写、原子操作请求和独占读写请求。
- SN-I 用于device属性的外设(或者Normal属性的内存),也可处理非snoopable的读/写,原子操作请求和独占读写请求。