基于硬件的缓存一致性协议的设计空间是什么?
基于硬件的协议支持缓存一致性问题的通用解决方案,而对数据的可缓存性没有任何条件限制。基于硬件的协议可以分类如下:
内存更新策略 - 多处理器中使用两种类型的内存更新策略。直写策略保持主内存和缓存之间的一致性;也就是说,当一个块在一个缓存中更新时,它也会立即在内存中更新。写回策略允许内存与最近更新的缓存块暂时不一致。
对于私有数据和不经常使用的共享数据,采用直写策略会导致互连网络上的流量不必要地增加。另一方面,由于错误检测和恢复功能仅在主内存中可用,因此它比写回方案更可靠。
写回策略避免了无用的互连流量;但是,它需要更复杂的缓存控制器,因为对尚未更新的内存位置的读取引用应该重定向到相应的缓存。
直写策略是一种贪婪策略,因为它会立即更新内存副本,而写回策略是一种延迟策略,会推迟内存更新。类似地,已经引入了贪婪和延迟缓存一致性策略来更新数据结构的缓存副本:
写更新策略(一种贪婪策略) - 写更新策略的关键思想是,每当处理器更新缓存的数据结构时,它也会立即更新所有其他缓存副本。
写失效策略(一种延迟策略) - 在写失效策略中,更新的缓存块不会直接传输到另一个缓存;相反,一个简单的失效命令会传输到所有其他缓存副本和共享内存中的原始版本,以便它们失效。
基于硬件的协议可以根据共享内存系统中使用的互连网络的功能分为三个基本类别。如果网络有效地支持广播,则称为窥探缓存协议。
大型互连网络无法有效地提供广播,因此需要一种结构能够精确地将一致性命令转发到包含刷新数据结构副本的那些缓存。为此,应为共享内存的每个块保留一个目录,以监控可能存在的缓存中块的实际位置。这种方法称为目录方案。
第三种方法试图避免使用代价高昂的目录方案,但支持高可扩展性。它建议使用多总线网络以及分层缓存一致性协议的应用,这些协议是基于单总线窥探缓存协议的派生或改进版本。