CHI中的resp type

Rsp分为4大类;


=======================Completion response===========================
□ 除了PCrdReturn,PrefetchTgt,其他所有的trans都需要comp resp;
通常是一个trans的最后一个发送的message, 来自completer; 这个响应保证trans到达了POS/POC;
□ 通常RN还会发送一个compack;
Read and Atomic transaction completion
□ Read trans的响应,既可以通过compdata opcode, 直接从RDATA chnnel返回,也可以分成两个,一个通过RespsepDat从RSP channel返回,一个利用DataSepResp从RDAT channel返回;
□ Atomic的响应,是用compdata直接从RDATchannel 返回;
CompData/DataSepResp响应,包含的resp域段指示了如下信息:
        □ Cache state, 指示当前RN, 最终获得什么状态;
        □ Pass dirty, 指示最终flush的任务,是否传递给了当前RN;
□ RespSepData也包含resp域段,这个域段要么设置成全0,要么和DataSepResp保持一致


对于有错误指示的resp, 其cache state可以是任意值;

Dataless transaction completion
□ Dataless transactions and the MakeReadUnique transaction without data的响应,来自RSP通道;
□ 可以使用的opcode有Comp, CompPersist, CompCMO, or CompStashDone opcode;
□ 响应中的resp域段包含如下信息:
        □ Cache state, 对于非CMO trans, 指示了当前RN中的cacheline的最终状态;
        □ 对于CMOtrans, 此域段无效,当前cacheline的状态不变;

□ 对于有错误指示的resp, 其cache state可以是任意值;

 Write and Atomic transaction completion
□ Write and AtomicStore completion从resp通道返回,可以使用comp/compDBIDResp opcode;
□ Resp filed必须设置成0;Cache state和pass dirty的信息,包含在了writedata中;
□ Comp:
    当completion需要分开返回comp和dbidresp/dbidrespord(indicates that the Completer provides certain transaction ordering guarantees)时,使用;
□ Compdbidresp:
    当completion需要和dbidresp/dbidrespord合并返回时使用;

□ Comp/compDBIDResp 的选择:
    所有copyback的请求,必须使用compDBIDResp的响应;
    Non-copyback和AtomicStore,两者都可以使用;

□ DVM的响应,resp filed也是0;

==========================WriteData response===============================
Writedata resp通过WDATAchannel发送,可以使用如下的一些opcode;
CopyBackWrData
□ Used for WriteBack, WriteClean, WriteEvictFull, and WriteEvictOrEvict, and CopyBack Combined Write transactions
□ 将当前RN中该cacheline的数据,发送到HN;
指示了在发送该copyback操作时,当前RN中该cacheline的状态;


NonCopyBackWrData
□ Used for WriteUnique and WriteNoSnp, and Non-CopyBack Combined Write transactions,and dvm trans;
Cacheline 状态指示一定是invalid;


NCBWrDataCompAck
□ Used for Non-CopyBack Write and Combined Write transactions.
□ Combined NonCopyBackWrData and CompAck. 
□ The cache state in the response must be I.


WriteDataCancel
□ Used to inform the Completer that a Write request is canceled before write data is sent
□ A Request Node can send WriteDataCancel instead of NonCopyBackWrData in WriteNoSnpPtl, WriteUniquePtl, WriteUniquePtlStash, and corresponding Combined Write transactions
□ A Home Node can send WriteDataCancel instead of NonCopyBackWrData in WriteNoSnpFull, WriteNoSnpPtl, and corresponding Combined Write transactions to the Subordinate Node
        □ 访问device memory时,不能使用;
        □ BE filed全0;
        □ Cacheline state必须是invalid:


□ Resp域段包含如下信息:
        □ Cache state, 表明在发送请求之前的状态,可能不是准确的,因为在发送请求之后,可能会收到其他人的snoop信息;
        □ Pass dirty, 同上;
        

==========================Snoop response==============================
A Snoop response can be with or without data
Snoop response without data
□ 在没有数据传输时使用;
□ 在srsp channel发送;
□ 可以包含data pull信息;
□ 经常使用在给SnpDVMOp transaction回响应;
Snoop response without data to Home and Direct Cache Transfer (DCT)
□ 在需要给RN发送数据,但是不需要给HN发送数据时使用;
□ It is sent on the SRSP channel and uses the SnpRespFwded opcode
Snoop response with data
□ 在需要将整条cacheline的数据发送给HN时使用;
□ It is sent on the WDAT channel and uses the SnpRespData opcode
□ It can include a Data Pull request for stash snoops
Snoop response with partial data
□ 有partial cacheline的数据需要发送给HN时使用;
□ It is sent on the WDAT channel and uses the SnpRespDataPtl opcode. 
□ It can include a Data Pull request for stash snoops.
□ 当cachline的状态是UDP,且snp不是SnpMakeInvalid时使用;
Snoop response with data to Home and DCT
□ 当数据既要发送给HN,也要发送给RN时使用(RN->HN);
□ It is sent on the DAT channel and uses the SnpRespDataFwded opcode.


同样,resp filed包含两个信息;
□ Cache state, 表示当前这个被snp的RN,在发送了snoop resp之后的状态;
□ Pass dirty,只能在Snoop response with data时有效;
□ Snoop resp还包含了FwdState field,在Snoop responses with DCT时使用,用来指示传递给RN的cache state和pass dirty是什么样的;


此处两个状态不一致,第一个是被snp的RN, 之后的状态,第二个是被snp的RN, 要把状态fwd给发起请求的RN,;
□ Snp resp中的cacheine state必须是准确的,即使resp err指示当前有data err;

========================Miscellaneous response============================
□ 不能归结到上述三种响应之中的其他响应;
其resp/resperr 域段,没有具体的实际意义,必须设置成0;
CompAck
□ 当RN收到comp响应是使用;
□ Used by Read, Dataless, WriteNoSnp, WriteEvictOrEvict, and WriteUnique transactions
□ (copyback的操作,是看writedata, 所以不需要compack)
RetryAck
□ Response is permitted for any request transaction except PCrdReturn or PrefetchTgt.
PCrdGrant
ReadReceipt

□ 当某个请求具有order需求时,会发送该响应;
□ SN发送时,指示的时它接受了这个读请求,不会再发送retry ack;
□ Applies to ReadNoSnp, ReadNoSnpSep, and ReadOnce* request transactions.
DBIDResp
□ Applies to Write, Combined Write, DVMOp, and Atomic request transactions.
□ HN->RN, SN->HN或者RN;
DBIDRespOrd
□ Applies to Write, Combined Write, and Atomic request transactions
□ DBIDRespOrd is not permitted in DVM transactions
□ HN->RN
Persist
□ 对于CleanSharedPersistSep trans,completer发送该响应,表明写数据已经到达了POP;
StashDone
□ Sent by a Completer for StashOnceSep to signal the ordering of the request at the Completer
TagMatch
□ Sent by the Completer for a Write transaction with TagOp of Match to signal the completion of the Tag Match operation.

Silent cache state transitions
□ RN可以因为内部的一些event,改变cacheline状态,而不需要通知其他人;

□ 主要其实就是现在unique的权限是我的,当然可以随时修改我的数据;

RN在发送对应的trans,得到响应响应之后的状态转变参考:
Cache state transitions at a Requester

RN在被snopp之后,状态的转变参考:
Cache state transitions at a Snoopee
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值