SC 的第二點約束 :store 必須被 所有(包括自身)執行流 同時看到 ,但是不要求寫操作“立即”對其他處理器可見;允許寫操作延遲一會兒被其他核觀察到。
而 嚴格一致性模型,包括1. store 必須被 所有(包括自身)執行流 同時看到2. 看到的時間 必須是 某個處理器完成寫操作的時間 // 即 一旦某個處理器完成寫操作, 所有其他處理器立即能觀察到它的結果。
特性 | 順序一致性(SC) | 嚴格一致性(Strict Consistency) |
---|---|---|
是否按真實時間順序執行 | ? 不是,允許只要邏輯上可解釋的全局順序就行 | ? 是,必須和真實時間順序完全一致 |
寫是否要立刻對所有線程可見 | ? 不需要,可以晚一點 | ? 需要立即對所有線程可見(同步廣播) |
是否可構造交錯序列解釋執行結果 | ? 是的,只要能構造即可 | ? 同時必須與真實時間順序一致 |
是否能有緩存寫延遲、store buffer | ? 可以 | ? 不行,所有寫立即全系統同步 |
現代 CPU 是否支持 | ? 需要 barrier/fence 才能模擬 | ? 幾乎無現實實現(代價太高) |