×

弱内存模型中的围栏。 (英语) Zbl 1247.68155号

摘要:我们提出了一类在Coq中定义的放松记忆模型,通过所选允许的读写局部重新排序,以及通过内存查看处理器间和处理器内通信来参数化(例如存储原子性放松)。我们证明了从较弱的模型恢复给定模型(如序列一致性)所需的行为和内存围栏的位置的结果。基于这类模型,我们开发了一个工具({mathsf-diy}),该工具系统地自动生成并运行石蕊测试。这些测试可用于探索处理器实现的行为和模型的行为,从而将两者进行比较。我们详细介绍了Power的实验结果以及基于它们的模型。

MSC公司:

第68季度第60季度 规范和验证(程序逻辑、模型检查等)
68号30 软件工程的数学方面(规范、验证、度量、需求等)
68M99型 计算机系统组织
68吨15 定理证明(演绎、解析等)(MSC2010)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] 英特尔安腾处理器系列内存订购的正式规范,2002年10月。英特尔文档251429-001
[2] Adir A,Shurek G(2002)为多处理器验证生成具有冲突的并发测试程序。输入:HLDVT
[3] Adir A、Attiya H、Shurek G(2003)《PowerPC体系结构应用程序共享内存的信息流模型》。输入:TPDS
[4] Adve SV,Gharachorloo K(1995)《共享内存一致性模型:教程》。计算机29:66–76·Zbl 05091508号 ·doi:10.1109/2.546611
[5] Ahamad M、Bazzi RA、John R、Kohli P、Neiger G(1993)《处理器一致性的力量》。输入:SPAA
[6] Algale J共享记忆诗学。巴黎第七大学和INRIA博士论文,2010年11月26日。http://diy.inia.fr/alglave-thessis.pdf
[7] Algale J、Fox A、Ishtiaq S、Myreen MO、Sarkar S、Sewell P、Zappa Nardelli F(2009)《Power和ARM多处理器机器代码的语义》。输入:DAMP
[8] Algale J、Maranget L、Sarkar S、Sewell P(2010)《弱记忆模型中的栅栏》。输入:CAV·Zbl 1247.68155号
[9] 阿尔法体系结构参考手册,第4版(2002)
[10] AMD64架构程序员手册。《高级微设备》,2007年9月。(3卷)
[11] ARM体系结构参考手册(ARMv7-A和ARMv7-2008年4月)
[12] Arvind,Maessen J-W(2006)内存模型=指令重新排序+存储原子性。在:ISCA中。IEEE计算协会,洛斯阿拉米托斯
[13] Bertot Y,Casteran P(2004)In:Coq'Art。理论计算机科学中的EATCS文本。柏林施普林格
[14] Boehm H-J,Adve SV(2008)C++并发内存模型的基础。输入:PLDI
[15] Burckhardt S,Musuvathi M(2008)放松记忆模型的有效程序验证。输入:CAV·Zbl 1155.68428号
[16] Cantin J,Lipasti M,Smith J(2003)《验证记忆一致性的复杂性》。输入:SPAA
[17] Collier WW(1992)《关于并行架构的推理》。纽约普伦蒂斯·霍尔·Zbl 0759.68009号
[18] Hangal S,Vahia D,Manovit C,Lu J-YJ,Narayanan S(2004)TSOTool:使用内存一致性模型验证内存系统的程序。输入:ISCA
[19] Higham L,Kawash J,Verwaal N弱内存一致性模型第一部分:定义和比较。技术报告98/612/03,卡尔加里大学计算机科学系,1998年1月
[20] 英特尔64与IA-32体系结构软件开发人员手册(5卷)。英特尔公司,2010年3月。修订版34
[21] Lamport L(1979)如何使正确的多进程程序在多处理器上正确执行。IEEE传输计算46(7):779–782·数字对象标识代码:10.1109/12.599898
[22] Landin A、Hagersten E、Haridi S(1991)《无种族互连网络和多处理器一致性》。计算机建筑新闻19(3):106–115·数字对象标识代码:10.1145/115953.115964
[23] Manson J,Pugh W,Adve SV(2005)Java内存模型。输入:POPL·Zbl 1369.68079号
[24] Owens S,Sarkar S,Sewell P(2009)更好的x86内存模型:x86-TSO。输入:TPHOL
[25] 2009年1月Power ISA 2.06版
[26] Sarkar S、Sewell P、Zappa Nardelli F、Owens S、Ridge T、Braibant T、Myreen M、Algale J(2009)《x86-CC多处理器机器代码的语义》。输入:POPL
[27] Sarkar S、Sewell P、Algale J、Maranget L、Williams D(2011)《了解功率多处理器》。输入:PLDI
[28] Sewell P、Sarkar S、Owens S、Zappa Nardelli F、Myreen MO(2010)x86-TSO:一种适用于x86多处理器的严格且可用的程序员模型。社区ACM 53(7):89–97。(研究亮点)·Zbl 05766788号 ·数字对象标识代码:10.1145/1785414.1785443
[29] Shasha D,Snir M(1988)共享内存的并行程序的高效正确执行。ACM传输程序语言系统10(2):282–312·数字对象标识代码:10.1145/42190.42277
[30] Sparc体系结构手册第8版和第9版,1992年和1994年
[31] Yang Y,Gopalakrishnan G,Linstrom G,Slind K(2004)Nemos:内存一致性模型公理化和可执行规范的框架。包含:IPDPS
[32] Yang Y,Gopalakrishnan G,Lindstrom G(2007)UMM:具有集成模型检查功能的操作内存模型规范框架。收件人:CCPE
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。