在電腦科學中,load-linked/store-conditional(LL/SC),也會被稱作load-reserved/store-conditional (LR/SC),load-link與store-conditional (LL/SC)是一對用於並行同步訪問主記憶體的CPU指令。Load-link返回主記憶體位置處的當前值,隨後的store-conditional在該主記憶體位置處儲存新值(如果從load-link後沒有被修改)。這被用於實現無鎖演算法與read-modify-write原子操作。
此條目需要擴充。 (2017年11月22日) |
此條目需要精通或熟悉相關主題的編者參與及協助編輯。 (2017年11月22日) |
歷史
LL/SC最初是Jensen, Hagensen, Broughton在勞倫斯利佛摩國家實驗室為S-1 AAP multiprocessor (頁面存檔備份,存於互聯網檔案館)而設計。
實現
LL/SC指令被下述架構支援:
- Alpha: ldl_l/stl_c , ldq_l/stq_c
- PowerPC: lwarx/stwcx , ldarx/stdcx
- MIPS架構: ll/sc
- ARM架構: ldrex/strex (ARMv6 , v7), ldxr/stxr (ARM version 8)
- RISC-V: lr/sc
LL/SC的硬件實現典型地不允許巢狀LL/SC對。[1] 巢狀的LL/SC機制用於提供MCAS原語(多字Compare-And-Swap,字可以是分佈的)。[2] 2013年Trevor Brown, Faith Ellen, Eric Ruppert軟件實現了多地址LL/SC擴充。[3]這被用來最佳化二叉搜尋樹。[4]
參見
- 非阻塞同步
- 事務主記憶體(Transactional memory)
參考文獻
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.