CHI trans简介--prefetch
- requester sends a prefetchtgt directly to the subordinate;
- no response is given;
什么是prefetchtgt
- 用来预测性的从main memory中取数据;
- 访问的是Snoopable的地址空间,从RN中,直接发送给SN;
- 此命令不包含response;
- SN收到该请求后,将从off-chip memory获取数据,同时将读取回来的数据进行缓存,以便于后续读取相同地址的命令使用;
- 此命令不能被retry, RN在发送了该请求之后,会很快的deallocate这个请求;
- 作为receiver, 必须要能够接受这个指令,而不能和读取相同地址的操作之间,有任何的依赖;
- receiver接收到该指令后,允许做一些内部的处理,或者直接将这个命令丢弃掉,而不用做其他的一些动作;
- 从off-chip memory中读取回来的数据,不能够一直占着SN的资源,等待后续读取相同地址的读操作;
- 该命令如下的一些域段不会使用,可以是任意值:
- TxnID, Order, Endian, Size, MemAttr, SnpAttr, Excl, LikelyShared;
状态转换
此命令不涉及状态变化;
与之相关联的域段
datasource
- 0b0110
- prefetchTgt memory prefetch was useful;
- 读数据很快的从SN返回了,因为prefetchtgt 请求,在之前已经提前让SN读取了该地址的数据;
- 0b0111
- prefetchTgt memory prefetch was not useful;
- 读请求经过了一整套读取memory的操作,没有任何的latency reduction
- 返回not useful的原因,可能由多个,这个是由实现具体决定的;
- prefetch被SN drop了;
- 取回来之后放在buffer中被替换了;
- 读请求先于prefetch到达SN;
communication node
其他场景
发往non-supporting address的PregetchTgt trans,必须被丢弃;
这种场景,需要有一个component来记录和报告此种错误;