热门问题
时间线
聊天
视角
Load-link/store-conditional
来自维基百科,自由的百科全书
Remove ads
在电脑科学中,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 - on
Seamless Wikipedia browsing. On steroids.
Remove ads