BBB: Simplifying Persistent Programming using Battery-Backed Buffers
Mohammad A. Alshboul, Prakash Ramrakhyani, William Wang, James Tuck, Yan Solihin
Abstract
Non-volatile memory (NVM) is poised to augment or replace DRAM as main memory. With the right abstraction and support, non-volatile main memory (NVMM) can provide an alternative to the storage system to host long-lasting persistent data. However, keeping persistent data in memory requires programs to be written such that data is crash consistent (i.e. it can be recovered after failure). Critical to supporting crash recovery is the guarantee of ordering of when stores become durable with respect to program order. Strict persistency, which requires persist order to coincide with program order of stores, is simple and intuitive but generally thought to be too slow. More relaxed persistency models are available but demand higher programming complexity, e.g. they require the programmer to insert persist barriers correctly in their program.
We identify the source of strict persistency inefficiency as the gap between the point of visibility (PoV) which is the cache, and the point of persistency (PoP) which is the memory. In this paper, we propose a new approach to close the PoV/PoP gap which we refer to as Battery-Backed Buffer (BBB). The key idea of BBB is to provide a battery-backed persist buffer (bbPB) in each core next to the L1 data cache (L1D). A store value is allocated in the bbPB as it is written to cache, becoming part of the persistence domain. If a crash occurs, battery ensures bbPB can be fully drained to NVMM. BBB simplifies persistent programming as the programmer does not need to insert persist barriers or flushes. Furthermore, our BBB design achieves nearly identical results to eADR in terms of performance and number of NVMM writes, while requiring two orders of magnitude smaller energy and time to drain.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext ec79eca6-2296-4b07-a0c5-b779e70440ffCited by top-tier papers25
- Bonsai Merkle Forests: Efficiently Achieving Crash Consistency in Secure Persistent MemoryAlexander Freij, Huiyang Zhou, Yan SolihinMICRO 2021 · 32 citations
- Write-Light Cache for Energy Harvesting SystemsJongouk Choi, Jianping Zeng, Dongyoon Lee, Changwoo Min et al.ISCA 2023 · 24 citations
- Extending Intel-x86 consistency and persistency: formalising the semantics of Intel-x86 memory types and non-temporal storesAzalea Raad, Luc Maranget, Viktor VafeiadisPOPL 2022 · 24 citations
- Capri: Compiler and Architecture Support for Whole-System PersistenceJungi Jeong, Jianping Zeng, Changhee JungHPDC 2022 · 21 citations
- GPM: leveraging persistent memory from a GPUShweta Pandey, Aditya K. Kamath, Arkaprava BasuASPLOS 2022 · 18 citations
Builds on7
- Persistency semantics of the Intel-x86 architectureAzalea Raad, John Wickerson, Gil Neiger, Viktor VafeiadisPOPL 2020 · 61 citations
- Cross-Failure Bug Detection in Persistent Memory ProgramsSihang Liu, Korakit Seemakhupt, Yizhou Wei, Thomas F. Wenisch et al.ASPLOS 2020 · 60 citations
- Pronto: Easy and Fast Persistence for Volatile Data StructuresAmir Saman Memaripour, Joseph Izraelevitz, Steven SwansonASPLOS 2020 · 55 citations
- Persist Level Parallelism: Streamlining Integrity Tree Updates for Secure Persistent MemoryAlexander Freij, Shougang Yuan, Huiyang Zhou, Yan SolihinMICRO 2020 · 31 citations
- MERR: Improving Security of Persistent Memory Objects via Efficient Memory Exposure Reduction and RandomizationYuanchao Xu, Yan Solihin, Xipeng ShenASPLOS 2020 · 24 citations
Related papers
- SecPB: Architectures for Secure Non-Volatile Memory with Battery-Backed Persist BuffersAlexander Freij, Huiyang Zhou, Yan SolihinHPCA 2023 · 8 citations
- Revamping hardware persistency models: view-based and axiomatic persistency models for Intel-x86 and Armv8Kyeongmin Cho, Sung-Hwan Lee, Azalea Raad, Jeehoon KangPLDI 2021 · 24 citations
- HOOP: Efficient Hardware-Assisted Out-of-Place Update for Non-Volatile MemoryMiao Cai, Chance C. Coats, Jian HuangISCA 2020 · 33 citations
- FliT: a library for simple and efficient persistent algorithmsYuanhao Wei, Naama Ben-David, Michal Friedman, Guy E. Blelloch et al.PPoPP 2022 · 19 citations
- Lazy Release PersistencyMahesh Dananjaya, Vasilis Gavrielatos, Arpit Joshi, Vijay NagarajanASPLOS 2020 · 12 citations
