在計算機體系結構中,什麼是窺探快取協議?


由於其相對簡單的特性,窺探快取協議在共享匯流排多處理器中非常流行。它們既有寫更新策略,也有寫無效策略版本。寫無效窺探快取協議在許多方面都類似於此協議,因此在學習了寫更新協議之後,也易於理解。

在窺探快取協議中,可以省略命令的傳輸路徑的定義,因為命令在共享總線上統一廣播。該協議同時應用寫回和直寫更新策略。前者用於私有塊,後者用於共享塊。

快取中塊的可能狀態的描述,包括:

  • **有效-獨佔** - 塊是記憶體塊的唯一副本。快取和記憶體塊一致。

  • **共享** - 記憶體塊存在多個快取副本,並且所有副本都一致。

  • **髒** - 它是記憶體塊的唯一副本,並且記憶體塊不一致。

對在多個讀/寫命中/未命中操作中要實現的命令的描述。

**讀未命中** - 窺探快取控制器在總線上廣播Read-blk命令。

  • 如果存在共享的資料副本,則包含快取會提供所需的副本,如圖(a)所示,其中Pj發生讀未命中。請求處理器中的結果狀態將為共享。

  • 如果存在髒副本,則它提供必要的副本並更新主記憶體。所有副本都變為共享。此機制如圖(b)所示。

  • 如果存在有效-獨佔副本,則它提供必要的副本,所有副本都變為共享。

  • 如果沒有塊的快取副本,則記憶體傳送該塊,該塊變為有效-獨佔。

**寫命中** - 如果塊的狀態為有效-獨佔或髒,則可以在本地執行寫操作(不向匯流排發出命令),新狀態將為髒(寫回策略)。

如果塊為共享,則窺探快取控制器在總線上廣播Update-blk命令。Update-blk命令包含更新資料的地址和值。包括記憶體副本在內的所有副本都將被更新(寫更新,直寫策略)並保持共享。

**寫未命中** - 窺探快取控制器在總線上廣播Write-blk命令。Write-blk命令包含更新資料的地址和值。

  • 如果只有記憶體包含該塊,則它將使用更新資料的新的值進行更新,並將更新的塊傳送到請求處理器,在那裡它變為有效-獨佔,如圖(a)所示。

  • 如果存在共享副本,則包括記憶體副本在內的所有副本都將被更新,並將更新的塊傳送到請求的處理器,如圖(b)所示。所有副本的結果狀態將為共享。

  • 如果存在髒或有效-獨佔副本,則它將被更新,並將記憶體塊和更新的塊傳送到請求處理器。所有副本的結果狀態將為共享。

更新於:2021年7月23日

7K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告