🤖 AI Summary
Due to the scarcity of real non-volatile memory (NVM) devices, architectural exploration and hardware-software co-design are severely constrained. To address this, we propose and open-source a cycle-accurate, parameterized simulation toolchain tailored for emerging NVM technologies. Our toolchain is the first to systematically integrate four representative NVM use cases: hybrid main memory/cache hierarchies, in-memory computing, wear leveling, and hierarchical storage systems—enabling highly customizable, system-level modeling. Implemented in C++ and Python with modular interfaces, it balances simulation fidelity and usability. Experimental validation confirms its accuracy in reproducing key NVM characteristics—including latency, power consumption, and endurance—across diverse configurations. The toolchain has already enabled multiple cutting-edge co-design studies, effectively bridging the gap between architectural research and practical NVM deployment in the absence of widespread physical devices.
📝 Abstract
Non-volatile Memory (NVM) technologies present a promising alternative to traditional volatile memories such as SRAM and DRAM. Due to the limited availability of real NVM devices, simulators play a crucial role in architectural exploration and hardware-software co-design. This tutorial presents a simulation toolchain through four detailed case studies, showcasing its applicability to various domains of system design, including hybrid main-memory and cache, compute-in-memory, and wear-leveling design. These case studies provide the reader with practical insights on customizing the toolchain for their specific research needs. The source code is open-sourced.