paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Persistency semantics of the Intel-x86 architecture

Intel-x86 架构的持久性语义
POPL 4(POPL)2019匹配度 2/10 · 论文研究Intel-x86持久性内存模型的形式语义,属于传统PL/并发内存模型领域,虽兼具形式化与工程实现,但未涉及LLM/Agent、静态分析、浮点程序分析或贝叶斯程序分析,与用户核心研究方向交叉度低。引用 61 inbox
Azalea Raad, John Wickerson, Gil Neiger, Viktor Vafeiadis
crossref: 2026-09-10

AI 速览

一句话:首次形式化 Intel-x86 的持久性语义 Px86,给出操作式与声明式定义并证明二者等价。

新兴非易失内存技术有望兼具磁盘持久性与 RAM 性能,已有多种内存持久性模型,但广泛使用的 x86 架构的持久性语义此前未被研究。本文提出 Px86 模型,首次形式化 Intel-x86 的持久性语义;分别给出操作式与声明式刻画,并证明二者等价。为展示 Px86 的可用性,作者在其上开发了持久事务库和 Michael–Scott 队列的持久变体,并将声明式模型编码到 Alloy 中,用来自动生成持久性 litmus 测试。该工作为 x86 非易失内存编程提供了形式化基础与测试工具。

问题
现有工作缺少对 Intel-x86 架构持久性语义的形式化刻画,导致 NVM 程序在 x86 上的持久化行为缺乏精确规范。
方法
提出 Px86,同时给出操作式与声明式语义并证明等价;用 Alloy 编码声明式模型,并开发持久事务库与持久 Michael–Scott 队列作为案例。
评估
通过操作式与声明式语义的等价性证明、两个持久库案例,以及基于 Alloy 的持久性 litmus 测试自动生成来评估模型。
原文摘要(Abstract)

Emerging non-volatile memory (NVM) technologies promise the durability of disks with the performance of RAM. To describe the persistency guarantees of NVM, several memory persistency models have been proposed in the literature. However, the persistency semantics of the ubiquitous x86 architecture remains unexplored to date. To close this gap, we develop the Px86 (‘persistent x86’) model, formalising the persistency semantics of Intel-x86 for the first time. We formulate Px86 both operationally and declaratively, and prove that the two characterisations are equivalent. To demonstrate the application of Px86, we develop two persistent libraries over Px86: a persistent transactional library, and a persistent variant of the Michael–Scott queue. Finally, we encode our declarative Px86 model in Alloy and use it to generate persistency litmus tests automatically.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot540,
  title = {Persistency semantics of the Intel-x86 architecture},
  author = {Azalea Raad and John Wickerson and Gil Neiger and Viktor Vafeiadis},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {4},
  number = {POPL},
  year = {2019},
  doi = {10.1145/3371079}
}