1. DVM操作
与ACE类似,CHI支持分布式虚拟内存(DVM :Distributed Virtual Memory)操作。DVM请求传递操作以支持虚拟内存系统的维护。
DVM操作事务
CHI使用DVM操作来管理虚拟内存。
DVM操作执行以下事务:
- 事务旁路缓存(TLB)失效
- 指令缓存失效
- 分支预测器失效
- DVM同步
在CHI中,所有DVM操作分两部分发送到MN。这与ACE不同,ACE中的某些DVM操作需要两部分,而其他则只需一部分。
以下列表描述了CHI中的部分顺序:
- DVM操作的第一部分作为请求发送到MN,Opcode字段设置为DVMOp。请求Flit使用地址字段编码操作的属性。
- DVM操作的第二部分作为数据Flit发送,只有在请求节点从MN收到DBID响应后才会发送。这第二部分携带DVM操作所针对的地址。
当MN收到DVM操作的两部分时,MN生成DVM Snoop到参与一致性域的请求节点。MN在节点Snoop通道上以两部分发送DVM Snoop。
DVM Snoop的两部分必须使用相同的TxnID和Opcode SnpDVMOp,并使用以下参数:
- 第一部分使用地址字段编码操作属性和目标地址的高位地址位。
- 第二部分使用地址字段发送地址的剩余位。
为了区分这两部分,CHI要求地址字段的bit[3]设置为0以指示第一部分,设置为1以指示第二部分。
第二部分的DVM Snoop可以在第一部分之前到达RN。