The semantics of x86-CC multiprocessor machine code

作者: Susmit Sarkar , Peter Sewell , Francesco Zappa Nardelli , Scott Owens , Tom Ridge

DOI: 10.1145/1480881.1480929

关键词:

摘要: Multiprocessors are now dominant, but real multiprocessors do not provide the sequentially consistent memory that is assumed by most work on semantics and verification. Instead, they have subtle relaxed (or weak) models, usually described only in ambiguous prose, leading to widespread confusion.We develop a rigorous accurate for x86 multiprocessor programs, from instruction decoding model, mechanised HOL. We test against actual processors vendor litmus-test examples, give an equivalent abstract-machine characterisation of our axiomatic model. For programs (in some precise sense) data-race free, we prove HOL their behaviour consistent. also contrast model with aspects Power ARM behaviour.This provides solid intuition low-level programming, sound foundation future verification, static analysis, compilation concurrent code.

参考文章(21)
Lisa Higham, Jalal Kawash, Nathaly Verwaal, DEFINING AND COMPARING MEMORY CONSISTENCY MODELS University of Calgary. ,(1997)
Lisa Higham, LillAnne Jackson, Jalal Kawash, Programmer-centric conditions for itanium memory consistency international conference of distributed computing and networking. pp. 58- 69 ,(2006) , 10.1007/11947950_7
William W. Collier, Reasoning About Parallel Architectures ,(1992)
Nancy A. Lynch, Victor M. Luchangco, Memory consistency models for high-performance distributed computing Massachusetts Institute of Technology. ,(2001)
David Aspinall, Jaroslav Ševčík, Formalising java's data race free guarantee theorem proving in higher order logics. pp. 22- 37 ,(2007) , 10.1007/978-3-540-74591-4_4
Seungjoon Park, David L. Dill, An executable specification, analyzer and verifier for RMO (relaxed memory order) Proceedings of the seventh annual ACM symposium on Parallel algorithms and architectures - SPAA '95. pp. 34- 41 ,(1995) , 10.1145/215399.215413
Mustaque Ahamad, Gil Neiger, James E. Burns, Prince Kohli, Phillip W. Hutto, Causal memory: definitions, implementation, and programming Distributed Computing. ,vol. 9, pp. 37- 49 ,(1995) , 10.1007/BF01784241
S.V. Adve, K. Gharachorloo, Shared memory consistency models: a tutorial IEEE Computer. ,vol. 29, pp. 66- 76 ,(1996) , 10.1109/2.546611
Vijay A. Saraswat, Radha Jagadeesan, Maged Michael, Christoph von Praun, A theory of memory models Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming - PPoPP '07. pp. 161- 172 ,(2007) , 10.1145/1229428.1229469
Lamport, How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs IEEE Transactions on Computers. ,vol. 28, pp. 690- 691 ,(1979) , 10.1109/TC.1979.1675439