CHI read trans flow

=================Read transactions with DMT and without snoops================

对于不产生snoop的read trans,建议使用DMT功能,如下图所示:

注意点:

a. SNF并不需要给HNF回响应,因为RN发送的compack可以释放HNF处记录的请求;

================Read transaction with DMT and with snoops=====================

对于带snoop的read trans, 并且数据是从memory来的,DMT也推荐使用;

 

注意点:

a. SNF并不需要给HNF回响应,因为RN发送的compack可以释放HNF处记录的请求;

==========================Read transaction with DCT==========================

对于read trans需要snoop,并且数据来自其他RN, DCT推荐使用;

DCT from cache line in UC state

 Double data return in a DCT transaction

这里的图,协议应该给错了;

================Read transaction without DMT or DCT=========================

====Read transaction with snoop response with partial data and no memory update====

典型的命令是readunique;

====Read transaction with snoop response with partial data and memory update======

典型的用法是readclen;

======== ReadOnce* and ReadNoSnp with early Home deallocation===============

 

 

问:这个地方,HN->SN, 为什么要有order需求?

       因为RN发送过来时,expack==0,且是一个DMT trans, 那HN发送之后,就必须要有人通知他释放,所以order置位,让SN发送readreceipt通知他;

==ReadNoSnp transaction with DMT and separate Non-data and Data-only response====

 

1. RNF发送readnosnp给HNF;

2. HNF发送一个readnosnpsep给SNF, 告诉他,等会你只需要返回数据就可以了;

3. HNF发送一个respsepdata给RNF, 告诉他,这个请求已经被我接收了,等会还会有一个sep data返回给你;

4. SNF发送一个readreceipt给HNF, 告诉他,这个请求已经被接收,不会再retry了。这个时候,HNF发现,RNF发送给他的命令没有order要求,HNF已经做完了自己该做的事情,因此,收到这个message之后,就直接释放了;

5. RNF收到respsepdata之后,返回compack给HNF;这个不是功能层面需要的,它和SNF返回数据之间,不一定谁先谁后,因此,HNF如果是再收到readreceipt之后,再收到这个命令,可以直接丢弃;

6. SNF将数据返回给RNF;

==ReadNoSnp transaction with DMT with ordering and separate Non-data and Data-only==

Readnosnp的order域段非0,说明:

a. 下一个相同地址的request, 在收到respsepdata之后,才可以发送;

b. RNF在发送compack之前,必须要等到respsepdata和至少一个datasepresp;

c. HNF此时不能够再发送下一个相同地址的请求给SNF, 直到收到compack;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值