写入无效协议和写入更新协议(总线窥探)之间的区别 缓存一致性:
在多处理器系统中,每个处理器都有自己的缓存,当处理器被允许更新他们各自的缓存块的数据时,数据将处于不一致的状态。这个问题被称为缓存一致性。
缓存一致性协议
为了保持数据的一致性,缓存一致性协议被使用。这些协议在多处理器系统中更新高速缓存副本。在总线侦查机制中,处理器对总线进行侦查(监控),并对相关事件(数据更新)采取适当行动,以确保数据一致性。
通常用于更新缓冲区副本的2个协议是 -
- 写入-更新协议
- 写入-验证协议
写入更新协议
使用这个协议,如果一个处理器更新它的缓存数据,它也会立即更新所有其他的缓存副本。广播机制被用来发送新的数据块到所有拥有副本的缓存中。
写入-验证协议
在这里,不需要立即将更新的缓存块发送给其他缓存。简单地说,一个无效的命令被发送到所有其他的缓存副本和共享内存中的原始版本,这样他们所有的数据副本就变得无效了。它用 “I”表示,”I”指的是无效的/脏的数据。
如果现在有任何其他处理器(除了更新缓存数据的处理器)想要读取数据(缓存副本),更新处理器就会为其提供更新的数据。写入-无效方法用于多处理器系统,如Pentium 4和PowerPC。
写入无效协议与写入更新协议的区别
/ | 写入无效协议 | 写入更新协议 |
---|---|---|
1 | 当对同一字进行多次写时,需要进行一次初始无效,中间没有读。 | 当对同一字进行多次写入,中间没有读时,需要多次写入广播。 |
2 | 对于多字缓存块,只有对该块中任何一个字的第一次写才需要产生无效。这个协议适用于高速缓存块。 | 在多字缓存块中,当每个字被写入缓存块时,需要一个写广播。这个协议在单个字上起作用。 |
3 | 需要更长的时间(由其他非更新处理器),因为任何读取无效数据的行为都需要从更新处理器那里获取新的数据拷贝(其缓存有更新的数据)。 | 读取数据花费的时间更少,因为更新处理器写入的数据在另一个缓存中也会立即更新。(读取处理器应该事先有一份数据副本)(尽管最初更新所有的缓存副本可能需要一些时间)。 |
4 | 由于写入的数据在读取器的缓存中没有即时更新,在一个处理器中写入一个字和在另一个处理器中读取写入的值之间的延迟要比写入更新大。 | 由于写入的数据在读者的缓存中是即时更新的,所以在写更新方案中,在一个处理器中写入一个字和在另一个处理器中读取写入的值之间的延迟通常较短。 |
5 | 更新的数据被提供给需要它的处理器。 | 更新后的数据被提供给包含被更新的同一缓存块副本的处理器。 |
6 | 每当一个处理器频繁修改数据时,更新的数据就会被发送给需要它的处理器。不需要在每次修改数据后再进行广播。 | 当一个处理器频繁地修改数据时,对于每一个修改,都需要进行写广播。写入广播的次数与修改的次数相同。 |
写入无效协议和写入更新协议(总线侦听)的区别
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:写入无效协议和写入更新协议(总线侦听)的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-write-invalidate-protocol-write-update-protocol-bus-snooping.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。