论文标题
驯服X86-TSO持久性(扩展版)
Taming x86-TSO Persistency (Extended Version)
论文作者
论文摘要
我们研究X86-TSO体系结构中非易失性记忆的形式语义。我们表明,尽管Raad等人最近的模型中的明确操作。从Popl'20仅在写入之间的popl'20到非易失性记忆,就可以到达状态而言,它是等效的,再到一个模型,其明确的持久操作要求,即实际写作实际上是写入非挥发性记忆的模型。后者提供了一种新颖的模型,该模型与共同开发人员对持久性语义的理解更加接近。我们进一步引入了一个更简单,更强的顺序一致的持久性模型,开发了从该模型到X86的声音映射,并建立了数据竞争保证,从而为程序员提供安全的编程纪律。我们的运营模型伴随着同等的声明性表述,这有助于我们的正式论证,并且可能对X86持久性下的程序验证有用。
We study the formal semantics of non-volatile memory in the x86-TSO architecture. We show that while the explicit persist operations in the recent model of Raad et al. from POPL'20 only enforce order between writes to the non-volatile memory, it is equivalent, in terms of reachable states, to a model whose explicit persist operations mandate that prior writes are actually written to the non-volatile memory. The latter provides a novel model that is much closer to common developers' understanding of persistency semantics. We further introduce a simpler and stronger sequentially consistent persistency model, develop a sound mapping from this model to x86, and establish a data-race-freedom guarantee providing programmers with a safe programming discipline. Our operational models are accompanied with equivalent declarative formulations, which facilitate our formal arguments, and may prove useful for program verification under x86 persistency.