簡體   English   中英

順序一致性是否意味着緩存一致性?

[英]Does sequential consistency implies cache coherence?

緩存一致性的定義說:

  1. 讀取必須返回最近的寫入。
  2. 每次寫入最終都必須可以通過讀取訪問。
  3. 所有處理器以相同的順序看到對給定位置的寫入

在順序一致性

  1. 所有操作都有一個總順序
  2. 每個操作都是原子的。
  3. 總順序應遵循程序順序。

如果我們遵循順序一致性,緩存一致性的每一個條件似乎都得到了滿足。 所以我猜順序一致性意味着緩存一致性(並且順序一致性比緩存一致性強)。

是的。 連貫性可以看作是每個位置的順序一致性。

所以為了順序一致性:如果執行的結果可以通過具有以下屬性的不同執行來解釋:

  1. 應該有所有位置的加載/存儲的總順序。

  2. 這個順序與每個內核的程序順序一致。

  3. 讀取應該按此順序在它之前看到最近的寫入。

那么執行是順序一致的。

為了連貫性,您只需要每個位置的總訂單,但除此之外,適用與順序一致性相同的規則。

因此,任何順序一致的執行都是一致的。 但反過來不一定是真的。

順序一致性的關鍵是所有處理器將以相同的順序查看所有事件,但不能保證何時會發生。 結果,在許多情況下,您將無法獲得最近的寫入。

在一個強一致的系統中,順序和新近度都得到滿足。

順便說一句,我在一些文獻中看到了對順序一致性的較弱定義——所有處理器都會以某種順序看到事件,但所有的順序都是相同的。 這意味着,如果您有多個寫入,它們可能會以任何順序執行 - 可能不是按照客戶提交它們的順序; 但無論順序是什么,所有處理器都將獲得相同的順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM