Load-link/store-conditional

在電腦科學中,load-linked/store-conditional(LL/SC),也會被稱作load-reserved/store-conditional (LR/SC)load-linkstore-conditional (LL/SC)是一对用于并发同步访问内存的CPU指令。Load-link返回内存位置处的当前值,随后的store-conditional在该内存位置处保存新值(如果从load-link后没有被修改)。这被用于实现无锁算法read-modify-write原子操作。

历史

LL/SC最初是Jensen, Hagensen, Broughton在勞倫斯利佛摩國家實驗室S-1 AAP multiprocessor 页面存档备份,存于而设计。

实现

LL/SC指令被下述架构支持:

LL/SC的硬件实现典型地不允许嵌套LL/SC对。[1] 嵌套的LL/SC机制用于提供MCAS原语(多字Compare-And-Swap,字可以是分布的)。[2] 2013年Trevor Brown, Faith Ellen, Eric Ruppert软件实现了多地址LL/SC扩展。[3]这被用来优化二叉搜索树。[4]

参见

参考文献

  1. Larus, James R.; Rajwar, Ravi. . Morgan & Claypool. 2007: 55. ISBN 978-1-59829-124-7.
  2. Fraser, Keir. (PDF) (技术报告). University of Cambridge Computer Laboratory: 20. February 2004 [2017-11-22]. UCAM-CL-TR-579. (原始内容存档 (PDF)于2020-11-12).
  3. Brown, Trevor; Ellen, Faith; Ruppert, Eric. (PDF). . ACM. 2013: 13–22 [2017-11-22]. ISBN 978-1-4503-2065-8. doi:10.1145/2484239.2484273. (原始内容 (PDF)存档于2015-02-03). See also slides 页面存档备份,存于
  4. Brown, Trevor; Ellen, Faith; Ruppert, Eric. (PDF). . ACM. 2014: 329–342 [2017-11-22]. ISBN 978-1-4503-2656-8. doi:10.1145/2555243.2555267. (原始内容存档 (PDF)于2019-10-24).
  • Jensen, Eric H.; Hagensen, Gary W.; Broughton, Jeffrey M. (PDF) (技术报告). Lawrence Livermore National Laboratory. November 1987 [2017-11-22]. UCRL-97663. (原始内容 (PDF)存档于2017-02-02).
  • Bruner, John D.; Hagensen, Gary W.; Jensen, Eric H.; Pattin, Jay C.; Broughton, Jeffrey M. (PDF) (技术报告). Lawrence Livermore National Laboratory. 11 November 1987 [2017-11-22]. UCRL-97646. (原始内容 (PDF)存档于2017-02-02).
  • Detlefs, D.; Martin, P.; Moir, M.; Steele, Jr., Guy L. . . ACM. 2001: 190–9. ISBN 1-58113-383-9. doi:10.1145/383962.384016.
  • Reinholtz, Kirk. . C/C++ Users Journal. December 2004.
  • Sites, R. L. . Comm. ACM. February 1993, 36 (2): 33–44. doi:10.1145/151220.151226.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.