计算机体系结构中缓存一致性的方法有哪些?
缓存一致性有两种方法,如下所示-
缓存-内存一致性
在单个缓存系统中,内存和缓存之间的一致性使用以下两种策略之一来维护-(1)直写和(2)回写。例如,当一个在处理器P上运行的任务请求内存位置X中的数据时,X的内容被复制到缓存中,在那里它被传递给P。
当P更新缓存中X的值时,内存中的另一个副本也需要更新以保持一致性。在直写中,每次缓存更新时都会更新内存,而在回写中,只有在缓存中的块被替换时才会更新内存。该表显示了直写与回写策略。
直写与回写
缓存-缓存一致性
例如,在多处理系统中,当运行在处理器P上的任务请求全局内存位置X中的数据时,X的内容被复制到处理器P的本地缓存中,然后传递给P。
有两个基本的缓存一致性策略-(1)写无效,和(2)写更新。Write-invalidate通过从本地缓存读取直到发生写入来保持一致性。
当任何处理器通过写入更新X的值时,为X发布一个脏位会使所有其他副本无效。例如,当处理器Q将新值写入其缓存时,它会使X的所有其他副本无效。这为X设置了脏位。Q可以继续更改X,而无需进一步通知其他缓存,因为Q拥有X的唯一有效副本。
但是,当处理器P要读取X时,它必须等到X更新并清除脏位。写更新通过立即更新所有缓存中的所有副本来保持一致性。在每次写入操作期间设置所有脏位。毕竟,副本已经更新,所有脏位都被清除了。该表显示了写入更新与写入无效策略。
写更新与写无效