gpt4 book ai didi

cpu-architecture - 微星 : Why do we need to write the line back when other CPU is going to override it?

转载 作者:行者123 更新时间:2023-12-05 06:45:48 25 4
gpt4 key购买 nike

在 Hennessy/Patterson 的《计算机体系结构》一书中,第 5 版,第 360 页,他们描述了 MSI 协议(protocol),并写下如下内容:

If the line is in state "Exclusive" (Modified), then on receiving "Write Miss" from the bus the current CPU 1) writes back the line into the bus, and then 2) goes into "Invalid" state.

为什么我们需要回写该行,如果它无论如何都会被其他 CPU 的连续写入覆盖?

这是否与每个 CPU 应该看到相同的写入这一事实有关? (但我不明白为什么看不到其他 CPU 的这个特定写入是个问题)

这是他们书中的协议(protocol)(绿色问题,紫色很清楚:我们需要回写以便为请求 CPU 提供线路): enter image description here

最佳答案

在 MSI 协议(protocol)中,将修改后的数据写回内存并不是绝对必要的。状态图似乎还假设一个系统具有低成本内存访问(数据由内存提供,即使在另一个缓存中的共享状态中找到)和连接到内存接口(interface)的共享总线。

但是,修改后的数据不能像共享状态一样简单地删除,因为请求处理器可能只修改缓存 block 的一部分(例如,只有一个字节)。请求处理器未修改的 block 的任何部分都必须在内存中或请求处理器处仍然可用(其他处理器已使其副本无效)。通过共享总线和低成本内存访问,添加回写内存与仅将数据传输到其他处理器的成本差异很小。

此外,即使在具有字大小缓存 block 的字寻址系统上,保持旧数据可用也允许以推测方式发送写入未命中请求(与乱序执行或预取写入一样)没有正确性问题。

(按字节跟踪修改后的[或有效作为修改后的超集]状态将允许以额外的状态位和更复杂的通信系统为代价避免一些数据通信。)

关于cpu-architecture - 微星 : Why do we need to write the line back when other CPU is going to override it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21194540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com