如何在MESI protocol中处理不在缓存中的内存位置的写入操作?我已经看到状态图将其标记为Write Miss但我无法跟踪现实中发生的事情。
我认为这会导致总线上的加载操作,以确保尝试写入的处理器获得对该位置的独占访问权限,然后修改该块。这是在现实中如何完成的,还是在无效状态实现中定义写入的处理?
答案 0 :(得分:2)
如果政策是分配写错误:
如果该块不存在于任何其他缓存中但仅存在于主存储器中,则首先将该块提取到缓存中,标记为M(已修改)状态,然后写入继续。
如果块存在于某些其他缓存中,则其他缓存中的副本首先失效,以便此缓存获得块的仅副本,然后写入继续。
如果策略写入未分配:所有写入未命中都直接转到主内存。副本不会被提取到缓存中。如果主内存没有该块的唯一副本(其他一些缓存有副本),则其他副本首先失效,写入发生在主内存中。