Pre-Stores: Proactive Software-guided Movement of Data Down the Memory Hierarchy
Xiaoxiang Wu, Baptiste Lepers, Willy Zwaenepoel
Abstract
We introduce the notion of software pre-storing -the converse of software pre-fetching. With software pre-fetching, instructions are inserted in the code to asynchronously move data up in the memory hierarchy. With software pre-storing, instructions are inserted to direct the CPU to asynchronously move data down in the memory hierarchy. Pre-storing can be implemented by using existing processor instructions.
Software pre-storing provides performance benefits for write-heavy applications, especially with emerging architectures that incorporate memories with diverse characteristics such as, for instance, remote DRAM accessed via a CXL switch or nonvolatile PMEM memory. We identify application scenarios in which software pre-storing is beneficial, and we have developed a tool, DirtBuster, that identifies applications and code regions that can benefit from pre-storing.
We evaluate the concept of software pre-storing and the DirtBuster tool on two CPU architectures (ARM and x86) and two types of cacheable memories (PMEM and cache-coherent DRAM accessed through an FPGA). We demonstrate performance improvements for key-value stores, HPC applications, message passing, and Tensorflow, by up to 2.3×.
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 9690410b-e5b4-4fda-9446-1d5078010f73Builds on4
- Enzian: an open, general, CPU/FPGA platform for systems software researchDavid A. Cock, Abishek Ramdas, Daniel Schwyn, Michael Giardino et al.ASPLOS 2022 · 42 citations
- Johnny Cache: the End of DRAM Cache Conflicts (in Tiered Main Memory Systems)Baptiste Lepers, Willy ZwaenepoelOSDI 2023 · 26 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
- Mumak: Efficient and Black-Box Bug Detection for Persistent MemoryJoão Gonçalves, Miguel Matos, Rodrigo RodriguesEuroSys 2023 · 5 citations
Related papers
- COSPlay: Leveraging Task-Level Parallelism for High-Throughput Synchronous PersistenceMarina Vemmou, Alexandros DaglisMICRO 2021 · 1 citation
- PhasedStore: Supporting High-Performance Write-Through Cache-Coherence Protocols Under TSOBurak Ocalan, Chloe Alverti, Shashwat Jaiswal, Antonis Psistakis et al.HPCA 2026
- Redesigning High-Performance LSM-based Key-Value Stores with Persistent CPU CachesYijie Zhong, Zhirong Shen, Zixiang Yu, Jiwu ShuICDE 2023 · 8 citations
- ASAP: A Speculative Approach to PersistenceSujay Yadalam, Nisarg Shah, Xiangyao Yu, Michael M. SwiftHPCA 2022 · 17 citations
- Classifying Memory Access Patterns for PrefetchingGrant Ayers, Heiner Litz, Christos Kozyrakis, Parthasarathy RanganathanASPLOS 2020 · 83 citations
