计算机体系结构中缓存一致性的方法有哪些?


缓存一致性主要有两种方法,如下所示:

  • 缓存-内存一致性

在单一缓存系统中,内存和缓存之间的一致性通过两种策略之一来维护:(1) 直写,(2) 回写。例如,当在处理器 P 上运行的任务请求内存位置 X 中的数据时,X 的内容将被复制到缓存中,然后传递给 P。

当 P 更新缓存中 X 的值时,也需要更新内存中的另一个副本以保持一致性。在直写策略中,每次更新缓存时都会更新内存,而在回写策略中,只有当缓存中的块被替换时才会更新内存。表格显示了直写与回写策略的比较。          

直写 vs. 回写

                               直写回写
序列事件内存缓存内存缓存
1
X
X
2P 读取 XXXXX
3P 更新 XXXXX
  • 缓存-缓存一致性

在多处理系统中,例如,当在处理器 P 上运行的任务请求全局内存位置 X 中的数据时,X 的内容将被复制到处理器 P 的本地缓存中,然后传递给 P。

有两种基本的缓存一致性策略:(1) 写无效,(2) 写更新。写无效通过读取本地缓存直到发生写入操作来维护一致性。

当任何处理器通过写入操作更新 X 的值时,为 X 发布脏位将使所有其他副本无效。例如,当处理器 Q 将新值写入其缓存时,它会使 X 的所有其他副本无效。这将为 X 设置脏位。Q 可以继续更改 X,而无需进一步通知其他缓存,因为 Q 拥有 X 的唯一有效副本。

但是,当处理器 P 想要读取 X 时,它必须等待直到 X 被更新并且脏位被清除。写更新通过立即更新所有缓存中的所有副本来维护一致性。在每次写入操作期间都会设置所有脏位。毕竟,所有副本都已更新,所有脏位都已清除。表格显示了写更新与写无效策略的比较。

写更新 vs. 写无效

                                      写更新写无效
序列事件P 的缓存Q 的缓存P 的缓存Q 的缓存
1P 读取 XX
X
2Q 读取 XXXXX
3Q 更新 XX’X’INVX’
4Q 更新 X’X’’X’’INVX’’

更新时间: 2021-07-24

547 次查看

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告