Proceedings of the ACM on Programming Languages · 2019 · 47 citations · 37 references
ComputingComputer EngineeringComputer ScienceFormal MethodsHardware-software Co-designStorage SystemsConcurrency ControlConcurrent ModelingConsistency ModelsMemory ConsistencyMemory ModelingStorage ConsistencyConcurrency ModelsConcurrency SemanticsConsistency SemanticsDeclarative SemanticsNon-volatile MemoryPersistency ModelingPersistent MemoryVolatile Memory
Emerging non-volatile memory (NVM) technologies promise the durability of disks with the performance of volatile memory (RAM). To describe the persistency guarantees of NVM, several memory persistency models have been proposed in the literature. However, the formal persistency semantics of mainstream hardware is unexplored to date. To close this gap, we present a formal declarative framework for describing concurrency models in the NVM context, and then develop the PARMv8 persistency model as an instance of our framework, formalising the persistency semantics of the ARMv8 architecture for the first time. To facilitate correct persistent programming, we study transactions as a simple abstraction for concurrency and persistency control. We thus develop the PSER (persistent serialisability) persistency model, formalising transactional semantics in the NVM context for the first time, and demonstrate that PSER correctly compiles to PARMv8. This then enables programmers to write correct, concurrent and persistent programs, without having to understand the low-level architecture-specific persistency semantics of the underlying hardware.
37
Dmitri B. Strukov, Gregory S. Snider, Duncan R. Stewart et al. · Nature · 2008 · 11.5K citations
Engineering, Electrical Engineering, Electronic Materials +5
Architecting phase change memory as a scalable dram alternative
Benjamin C. Lee, Engin İpek, Onur Mutlu et al. · 2009 · 1.4K citations
Better I/O through byte-addressable, persistent memory
Jeremy Condit, Edmund B. Nightingale, Christopher Frost et al. · 2009 · 833 citations