Lazy Persistency: A High-Performing and Write-Efficient Software Persistency Technique
Lazy Persistency: A High-Performing and Write-Efficient Software Persistency Technique
复制标题
DOI:
10.1109/isca.2018.00044
复制
发表时间:
2018-06
期刊:
影响因子:
--
通讯作者:
Mohammad A. Alshboul;James Tuck;Yan Solihin
中科院分区:
文献类型:
--
作者:
Mohammad A. Alshboul;James Tuck;Yan Solihin
Emerging Non-Volatile Memories (NVMs) are expected to be included in future main memory, providing the opportunity to host important data persistently in main memory. However, achieving persistency requires that programs be written with failure-safety in mind. Many persistency models and techniques have been proposed to help the programmer reason about failure-safety. They require that the programmer eagerly flush data out of caches to make it persistent. Eager persistency comes with a large overhead because it adds many instructions to the program for flushing cache lines and incurs costly stalls at barriers to wait for data to become durable. To reduce these overheads, we propose Lazy Persistency (LP), a software persistency technique that allows caches to slowly send dirty blocks to the NVMM through natural evictions. With LP, there are no additional writes to NVMM, no decrease in write endurance, and no performance degradation from cache line flushes and barriers. Persistency failures are discovered using software error detection (checksum), and the system recovers from them by recomputing inconsistent results. We describe the properties and design of LP and demonstrate how it can be applied to loop-based kernels popularly used in scientific computing. We evaluate LP and compare it to the state-of-the-art Eager Persistency technique from prior work. Compared to it, LP reduces the execution time and write amplification overheads from 9% and 21% to only 1% and 3%, respectively.