什麼是LR/SC(載入保留/條件式儲存)

載入保留(LR)與條件式儲存(SC)指令的組合。亦稱 LL 與 SC。在 LR 之後若其他核心寫入該位址,SC 就會失敗,因此可實現不可分割的更新。

日文名稱: LR/SC

「LR/SC(載入保留/條件式儲存)」出現在1領域的3道練習題中(多核心與同步等)。

這個名詞所屬的領域: 多核心與同步

練習LR/SC(載入保留/條件式儲存)的題目

在RISC-V的LR/SC(載入保留/條件式儲存)這類指令組中,SC(條件式儲存)會在什麼情況下失敗?

  1. A以SC寫入的值與以LR讀取的值相同時
  2. B從LR讀取到SC之間,其他核心寫入該位址等,使保留失效時
  3. CLR與SC之間只要執行了任何一個其他指令時
查看答案與解析

正確答案:B. 從LR讀取到SC之間,其他核心寫入該位址等,使保留失效時

LR在讀取值的同時,會「保留」該位址。之後以SC寫入時,若保留仍然有效就寫入並成功;若因其他核心的寫入等使保留失效,則不寫入並回傳失敗。相對於CAS檢查值是否一致,LR/SC檢查的是有無寫入,因此即使值曾改變又變回原樣,也能偵測到。ARM也有同樣的指令組。

解析中的「LR/SC(載入保留/條件式儲存)」

出現「LR/SC(載入保留/條件式儲存)」的題目(3題)

  1. 在RISC-V的LR/SC(載入保留/條件式儲存)這類指令組中,SC(條件式儲存)會在什麼情況下失敗?
  2. 關於原子指令(不可分割指令),下列說明何者正確?
  3. 關於使用CAS的無鎖資料結構中會出現的ABA問題,下列說明何者正確?

相關名詞

原子指令(Atomic instruction) 比較並交換(Compare-and-swap) 更新(Refresh) 互斥鎖(Mutex) 目錄式一致性(Directory-based coherence) 交易式記憶體(Transactional memory) 死結(Deadlock) 自旋鎖(Spinlock) 屏障同步(Barrier synchronization) 記憶體一致性模型(Memory consistency model)

前往名詞解釋列表