在计算机体系结构中,什么是窥探缓存协议?


由于其相对简单的特性,窥探缓存协议在共享总线多处理器中非常流行。它们既有写更新策略,也有写无效策略版本。写无效窥探缓存协议在许多方面都类似于此协议,因此在学习了写更新协议之后,也易于理解。

在窥探缓存协议中,可以省略命令的传输路径的定义,因为命令在共享总线上统一广播。该协议同时应用写回和直写更新策略。前者用于私有块,后者用于共享块。

缓存中块的可能状态的描述,包括:

  • **有效-独占** - 块是内存块的唯一副本。缓存和内存块一致。

  • **共享** - 内存块存在多个缓存副本,并且所有副本都一致。

  • **脏** - 它是内存块的唯一副本,并且内存块不一致。

对在多个读/写命中/未命中操作中要实现的命令的描述。

**读未命中** - 窥探缓存控制器在总线上广播Read-blk命令。

  • 如果存在共享的数据副本,则包含缓存会提供所需的副本,如图(a)所示,其中Pj发生读未命中。请求处理器中的结果状态将为共享。

  • 如果存在脏副本,则它提供必要的副本并更新主内存。所有副本都变为共享。此机制如图(b)所示。

  • 如果存在有效-独占副本,则它提供必要的副本,所有副本都变为共享。

  • 如果没有块的缓存副本,则内存发送该块,该块变为有效-独占。

**写命中** - 如果块的状态为有效-独占或脏,则可以在本地执行写操作(不向总线发出命令),新状态将为脏(写回策略)。

如果块为共享,则窥探缓存控制器在总线上广播Update-blk命令。Update-blk命令包含更新数据的地址和值。包括内存副本在内的所有副本都将被更新(写更新,直写策略)并保持共享。

**写未命中** - 窥探缓存控制器在总线上广播Write-blk命令。Write-blk命令包含更新数据的地址和值。

  • 如果只有内存包含该块,则它将使用更新数据的新的值进行更新,并将更新的块发送到请求处理器,在那里它变为有效-独占,如图(a)所示。

  • 如果存在共享副本,则包括内存副本在内的所有副本都将被更新,并将更新的块发送到请求的处理器,如图(b)所示。所有副本的结果状态将为共享。

  • 如果存在脏或有效-独占副本,则它将被更新,并将内存块和更新的块发送到请求处理器。所有副本的结果状态将为共享。

更新于:2021年7月23日

7K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告