3.3.1 Cache一致性的基本概念 分类: 浅谈PCI ...

PCI设备对可Cache的存储器空间进行DMA读写的操作的过程较为复杂,有关Cache一致性的话题可以独立成书。而不同的处理器系统使用的Cache Memory的层次结构和访问机制有较大的差异,这部分内容也是现代处理器系统设计的重中之重。

本节仅介绍在Cache Memory系统中与PCI设备进行DMA操作相关的,一些最为基础的概念。在多数处理器系统中,使用了以下概念描述Cache一致性的实现过程。

1 Cache一致性协议

多数SMP处理器系统使用了MESI协议处理多个处理器之间的Cache一致性。该协议也被称为Illinois protocolMESI协议在SMP处理器系统中得到了广泛的应用。MESI协议使用四个状态位描述每一个Cache行。

  •  M(Modified)位。M 位为1 时表示当前Cache 行中包含的数据与存储器中的数据不一致,而且它仅在本CPUCache 中有效,不在其他CPUCache 中存在拷贝,在这个Cache行的数据是当前处理器系统中最新的数据拷贝。当CPU对这个Cache行进行替换操作时,必然会引发系统总线的写周期,将Cache行中数据与内存中的数据同步。
  •  E(Exclusive)位。E 位为1 时表示当前Cache行中包含的数据有效,而且该数据仅在当前CPUCache中有效,而不在其他CPUCache中存在拷贝。在该Cache行中的数据是当前处理器系统中最新的数据拷贝,而且与存储器中的数据一致。
  •  S(Shared)位。S 位为1 表示Cache行中包含的数据有效,而且在当前CPU和至少在其他一个CPU中具有副本。在该Cache行中的数据是当前处理器系统中最新的数据拷贝,而且与存储器中的数据一致。
  • I(Invalid)位。I 位为1 表示当前Cache 行中没有有效数据或者该Cache行没有使能。MESI协议在进行Cache行替换时,将优先使用I位为1Cache行。

MESI协议还存在一些变种,如MOESI协议和MESIF协议。基于MOESI协议的Cache一致性模型如3?5所示,该模型基于AMD处理器使用的MOESI协议。不同的处理器在实现MOESI协议时,状态机的转换原理类似,但是在处理上仍有细微区别。


MOESI协议引入了一个O(Owned)状态,并在MESI协议的基础上,进行了重新定义了S状态,而EMI状态和MESI协议的对应状态相同。

  •  O位。O位为1表示在当前Cache 行中包含的数据是当前处理器系统最新的数据拷贝,而且在其他CPU中一定具有该Cache行的副本,其他CPUCache行状态为S。如果主存储器的数据在多个CPUCache中都具有副本时,有且仅有一个CPUCache行状态为O,其他CPUCache行状态只能为S。与MESI协议中的S状态不同,状态为OCache行中的数据与存储器中的数据并不一致。
  •  S位。在MOESI协议中,S状态的定义发生了细微的变化。当一个Cache行状态为S时,其包含的数据并不一定与存储器一致。如果在其他CPUCache中不存在状态为O的副本时,该Cache行中的数据与存储器一致;如果在其他CPUCache中存在状态为O的副本时,Cache行中的数据与存储器不一致。

在一个处理器系统中,主设备(CPU或者外部设备)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值