relaxed memory
Recently Published Documents


TOTAL DOCUMENTS

68
(FIVE YEARS 10)

H-INDEX

18
(FIVE YEARS 2)

2022 ◽  
Vol 6 (POPL) ◽  
pp. 1-30
Author(s):  
Alan Jeffrey ◽  
James Riely ◽  
Mark Batty ◽  
Simon Cooksey ◽  
Ilya Kaysin ◽  
...  

Program logics and semantics tell a pleasant story about sequential composition: when executing (S1;S2), we first execute S1 then S2. To improve performance, however, processors execute instructions out of order, and compilers reorder programs even more dramatically. By design, single-threaded systems cannot observe these reorderings; however, multiple-threaded systems can, making the story considerably less pleasant. A formal attempt to understand the resulting mess is known as a “relaxed memory model.” Prior models either fail to address sequential composition directly, or overly restrict processors and compilers, or permit nonsense thin-air behaviors which are unobservable in practice. To support sequential composition while targeting modern hardware, we enrich the standard event-based approach with preconditions and families of predicate transformers. When calculating the meaning of (S1; S2), the predicate transformer applied to the precondition of an event e from S2 is chosen based on the set of events in S1 upon which e depends. We apply this approach to two existing memory models.


2021 ◽  
Author(s):  
Runzhou Tao ◽  
Jianan Yao ◽  
Xupeng Li ◽  
Shih-Wei Li ◽  
Jason Nieh ◽  
...  

Author(s):  
Alasdair Armstrong ◽  
Brian Campbell ◽  
Ben Simner ◽  
Christopher Pulte ◽  
Peter Sewell

AbstractArchitecture specifications such as Armv8-A and RISC-V are the ultimate foundation for software verification and the correctness criteria for hardware verification. They should define the allowed sequential and relaxed-memory concurrency behaviour of programs, but hitherto there has been no integration of full-scale instruction-set architecture (ISA) semantics with axiomatic concurrency models, either in mathematics or in tools. These ISA semantics can be surprisingly large and intricate, e.g. 100k+ lines for Armv8-A.   In this paper we present a tool, Isla, for computing the allowed behaviours of concurrent litmus tests with respect to full-scale ISA definitions, in Sail, and arbitrary axiomatic relaxed-memory concurrency models, in the Cat language. It is based on a generic symbolic engine for Sail ISA specifications, which should be valuable also for other verification tasks. We equip the tool with a web interface to make it widely accessible, and illustrate and evaluate it for Armv8-A and RISC-V.   By using full-scale and authoritative ISA semantics, this lets one evaluate litmus tests using arbitrary user instructions with high confidence. Moreover, because these ISA specifications give detailed and validated definitions of the sequential aspects of systems functionality, as used by hypervisors and operating systems, e.g. instruction fetch, exceptions, and address translation, our tool provides a basis for developing concurrency semantics for these. We demonstrate this for the Armv8-A instruction-fetch model and self-modifying code examples of Simner et al.


2020 ◽  
Vol 4 (OOPSLA) ◽  
pp. 1-30
Author(s):  
Radha Jagadeesan ◽  
Alan Jeffrey ◽  
James Riely
Keyword(s):  

Author(s):  
Sung-Hwan Lee ◽  
Minki Cho ◽  
Anton Podkopaev ◽  
Soham Chakraborty ◽  
Chung-Kil Hur ◽  
...  
Keyword(s):  

Author(s):  
Conrad Watt ◽  
Christopher Pulte ◽  
Anton Podkopaev ◽  
Guillaume Barbier ◽  
Stephen Dolan ◽  
...  

Author(s):  
Sung-Hwan Lee ◽  
Minki Cho ◽  
Anton Podkopaev ◽  
Soham Chakraborty ◽  
Chung-Kil Hur ◽  
...  
Keyword(s):  

2020 ◽  
Vol 4 (POPL) ◽  
pp. 1-29 ◽  
Author(s):  
Hoang-Hai Dang ◽  
Jacques-Henri Jourdan ◽  
Jan-Oliver Kaiser ◽  
Derek Dreyer
Keyword(s):  

Sign in / Sign up

Export Citation Format

Share Document