多核心與同步
關於x86的記憶體一致性模型(TSO,Total Store Order,全域儲存順序)的特徵,下列何者正確?
- A允許讀寫的任何組合被調換的、最弱的模型
- B完全不允許調換的循序一致性本身
- C只允許寫入之後對其他位址的讀取,比該寫入更早被看到的、相對較強的模型
查看答案與解析
正確答案:C. 只允許寫入之後對其他位址的讀取,比該寫入更早被看到的、相對較強的模型
在TSO中,寫入之間的順序、讀取之間的順序、讀取之後寫入的順序都會被保持,只有寫入之後對其他位址的讀取可以超前。這是直接反映儲存緩衝區存在的模型。多數程式在這個範圍內都能依直覺運作,所以在x86上需要屏障的場合相對較少。
- A. 這個說明比較接近ARM或RISC-V這類較弱的模型。
- B. 寫入與讀取的調換是會發生的。
- C. 正確。只會看到由儲存緩衝區造成的調換。