一句话:提出 PMEM-Spec,用推测执行和失败原子事务在严格持久性模型下加速持久内存访问。
持久性模型规定持久内存(PM)中存储更新的持久顺序。宽松模型通过放松顺序约束提升性能,但现有支持要求程序员用 API 标注持久顺序,并依赖复杂硬件,给架构师和程序员带来负担。本文提出 PMEM-Spec,论证严格持久性模型能以更低硬件复杂度和编程难度胜过宽松模型。它推测性地允许任意 PM 访问而不暂停或缓冲,并检测顺序违规;若推测错误,则视作掉电,借助失败原子事务中止并重启以恢复。由于顺序违规罕见,该方法可加速 PM 访问且惩罚有限。实验显示,在 Intel x86 ISA 上,PMEM-Spec 比两种 epoch-based 模型和当前最优硬件支持分别快 27.2% 和 10.6%。
Persistency models define the persist-order that controls the order in which stores update persistent memory (PM). As with memory consistency, the relaxed persistency models provide better performance than the strict ones by relaxing the ordering constraints. To support such relaxed persistency models, previous studies resort to APIs for annotating the persist-order in program and hardware implementations for enforcing the programmer-specified order. However, these approaches to supporting relaxed persistency impose costly burdens on both architects and programmers. In light of this, the goal of this study is to demonstrate that the strict persistency model can outperform the relaxed models with significantly less hardware complexity and programming difficulty. To achieve that, this paper presents PMEM-Spec that speculatively allows any PM accesses without stalling or buffering, detecting their ordering violation (e.g., misspeculation for PM loads and stores). PMEM-Spec treats misspeculation as power failure and thus leverages failure-atomic transactions to recover from misspeculation by aborting and restarting them purposely. Since the ordering violation rarely occurs, PMEM-Spec can accelerate persistent memory accesses without significant misspeculation penalty. Experimental results show that PMEM-Spec outperforms two epoch-based persistency models with Intel X86 ISA and the state-of-the-art hardware support by 27.2% and 10.6%, respectively.
DOI 原文 ·
@inproceedings{paperbot6135,
title = {PMEM-spec: persistent memory speculation (strict persistency can trump relaxed persistency)},
author = {Jungi Jeong and Changhee Jung},
booktitle = {ASPLOS},
year = {2021},
doi = {10.1145/3445814.3446698}
}