本文部分内容参考了CHI的Cache Stashing和DVM操作_谷公子的藏经阁的博客-CSDN博客
□ 注意此处RNF发送的noncopyback data, 只有8byte;
□ MN会发送两个SNP给每个RNF, 因为一个SNP,携带的信息不够;
□ 如果MN具备将来自同一个源头的non-sync/sync dvmop操作,排序的能力,那么对于non-sysn的dvm操作,可以不用等待snoop响应返回,直接返回comp; 否则,必须等待snoop结果之后再返回;
□ 对于上述这种能力,可以将comp和dbid合并返回,CompDBIDResp;
□ 区别点在于每个RN, 需要dvm操作真正完成之后,才会返回SnpResp_I;
Flow control
□ DVMPOp可以被retry;
□ 同一个RN, 再之前的DVMOp没有完成时,不能发送下一个;
□ MN至少要有一个entry,用来接收DVMOp;
□ 两个SNPdvmop的txnid, 是一样的;
□ 两个snp之间,没有顺序关系,可以任意先接收其中一个;
□ MN中多个SnpDVMOp(Non-sync), 可以outstanding发送;
□ MN中到RN的SnpDVMOp(Sync) outstanding为1;
□ 为了避免死锁,RN中必须要能够接收两个snpdvmop的能力时,MN才能发送snpdvmop的操作;
□ 对于invalidated page entries的sync-dvm, RN会发送stashonceseq;
□ 只有当RN可以接收下一个snpdvmop时,才会返回snopdvmop resp;
□ 每个RN节点,至少要能够接收一个snpdvmop(Non-Sync) 和一个SnpDVMOp(Sync) transaction;
DVMOp field value restrictions
Request message field value restrictions for DVMOp
□ DCT/STASH相关的域段必须全为0;
□ size: 8byte;
□ NS/likelyshared/Order/MemAttrr/excl/expack/mpam/tagop必须为0;
□ ADDR域段,拆分并复用成如下含义;---参考DVMOp payload
Data message field value restrictions for DVMOp
□ HomeNID/Resp/CBusy/CCID/DATAID等必须为0(贴图);
□ Opcode:NonCopyBackWriteData
□ RespErr: Must be 0b00 or 0b10
□ BE: Only BE[7:0] must be asserted
Snoop message field value restrictions for DVMOp
□ 看协议;
DVM Operation types
• TLB Invalidate.
• Branch Predictor Invalidate.
• Instruction Cache Invalidate:
— Physical address invalidate.
— Virtual address invalidate.
• Synchronization.
DVMOp payload:
dvm的payload, 是放在req通道的addr域段,以及data通道的低8byte数据;
分布如下:
后续内容copy CHI的Cache Stashing和DVM操作_谷公子的藏经阁的博客-CSDN博客
图片未copy,可以直接看原文;
DVMOp and SnpDVMOp packet
表4为使用8bytes write格式的RN发送的DVMOp request的payload分布,以及MN发送的SnpDVMOp requests的payload的分布。
在DVMop request中,request的address域段和write data的8bytes共同完成完整的request payload,其中request的Addr[3]没有用,且必须设置为0。
在SnpDVMOp中,两笔SnpDVMOp的address域段组成完整的request payload。SnpDVMOp request的Addr[3]指示哪一笔SnpDVMOp正在传输。
Maximum PA(MPA)和Maximum VA(MVA) address的有效组合是:
MPA = 44 : MVA = 49.
MPA = 45 : MVA = 51.
MPA = 46 to 52 : MVA = 53.
表4为Address和Data的数字指示哪些bit被用于DVMOp field。例如Addr[4]是被VA Valid所替代。在Request packet中,该bit会在address域段的第五bit,但是在snoop packet中,该bit会在address的第二bit,因为snoop packet没有包含地址的低3bits;
同样的,write data packet的Data[4]被PA[6]所替代,在snoop packet中,Addr[4]同样也被占用了。对于两个snoop packets,PA[6]是在第二个packet中,但是VA Valid是在第一个packet中。
表4 DVMOp and SnpDVMOp request payloads using a 49-bit VA and 44-bit PA
2.3 DVM Operations
本节描述CHI支持的DVM operations。
表5为DVM operations的Part Num域段值。
表5 Part Num field values
2.3.1 TLB Invalidate
TLB Invalidate operations的各个具体含义值参考CHI issue-C P265的表8-5。
2.3.2 Branch Predictor Invalidate
Branch Predictor Invalidate的各个具体含义值参考CHI issue-C P267的表8-6。
2.3.3 Physical Instruction Cache Invalidate
Physical Instruction Cache Invalidate的各个具体含义值参考CHI issue-C P268的表8-9。
2.3.4 Virtual Instruction Cache Invalidate
Virtual Instruction Cache Invalidate的各个具体含义值参考CHI issue-C P269的表8-11。
2.3.5 Synchronization
Synchronization的各个具体含义值参考CHI issue-C P270的表8-12。