论文标题
启用原子耐用性,以持续记忆,并暂时持久CPU缓存
Enabling Atomic Durability for Persistent Memory with Transiently Persistent CPU Cache
论文作者
论文摘要
持久内存(PMEM)产品将持久性域提升到内存级别。英特尔最近引入了EADR功能,该功能确保将CPU缓存中的数据刷新为PMEM,从而在停电上进行PMEM,从而使CPU缓存成为瞬态持久域。研究人员探索了如何启用应用程序内PMEM数据的原子耐用性。在本文中,我们利用EADR支持的CPU缓存来做到这一点。修改后的缓存线直到写回PMEM,是PMEM数据的天然重做日志副本。但是,由于缓存替换或崩溃时的EADR而引起的写作背包覆盖了原始副本。因此,我们开发了Hercules,这是一种用于事务级原子耐用性的硬件记录设计,并在CPU缓存,内存控制器(MC)和PMEM中安装了支持组件。当交易提交时,大力神将其数据保留在缓存线上。对于在提交提交之前被驱逐的缓存线,大力神要求MC重定向并将其持续到PMEM日志条目中,并在进行交易后将其委托。大力神懒惰的执行PMEM仅在运行时为替换缓存而写信。在崩溃中,大力神将元数据和数据存放到PMEM中以进行恢复。实验表明,通过使用CPU缓存进行缓冲和日志记录,赫拉克勒斯产生的吞吐量要高得多,并且PMEM的写入明显少于最先进的设计。
Persistent memory (pmem) products bring the persistence domain up to the memory level. Intel recently introduced the eADR feature that guarantees to flush data buffered in CPU cache to pmem on a power outage, thereby making the CPU cache a transient persistence domain. Researchers have explored how to enable the atomic durability for applications' in-pmem data. In this paper, we exploit the eADR-supported CPU cache to do so. A modified cache line, until written back to pmem, is a natural redo log copy of the in-pmem data. However, a write-back due to cache replacement or eADR on a crash overwrites the original copy. We accordingly develop Hercules, a hardware logging design for the transaction-level atomic durability, with supportive components installed in CPU cache, memory controller (MC), and pmem. When a transaction commits, Hercules commits on-chip its data staying in cache lines. For cache lines evicted before the commit, Hercules asks the MC to redirect and persist them into in-pmem log entries and commits them off-chip upon committing the transaction. Hercules lazily conducts pmem writes only for cache replacements at runtime. On a crash, Hercules saves metadata and data for active transactions into pmem for recovery. Experiments show that, by using CPU cache for both buffering and logging, Hercules yields much higher throughput and incurs significantly fewer pmem writes than state-of-the-art designs.