Learning to use NVMM
New, fast non-volatile memories can act like DRAM, and we will soon be able to attach them directly to a processor's memory bus. They will lead to unprecedented levels of performance for storage, but how should computer systems change to make use of them? We foresee many different usage models and we are working on projects to explore them:
- Programming models What programming abstractions are tools are useful for building applications that use non-volatile main memories? We are porting a range of popular applications to prototype non-volatile main memory hardware to find out.
- Virtualization techniques How can virtual machines make use of non-volatile main memory? There are many options from providing legacy guest operating systems with expanded memory capacity or faster virtual disks to brand programming models that allow many guest operating system to share a pool of physical non-volatile main memory.
- Transactions and persistence Our NV-Heaps project proposed a persistent object model with ACID-style transactions. How can we integrate NV-heaps into existing systems?
NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main Memories
14th USENIX Conference on File and Storage Technologies (FAST 16), 2016.
Mojim: A Reliable and Highly-Available Non-Volatile Memory System
Proceedings of the 20th International Conference on Architectural Support for Programming Languages and Operating Systems, 2015.
NV-Heaps: Making Persistent Objects Fast and Safe With Next-Generation, Non-Volatile Memories
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems, 2011.
Quill: Exploiting Fast Non-Volatile Memory by Transparently Bypassing the File System
Department of Computer Science amp; Engineering, University of California, San Diego technical report CS2013-0991, Jan 2013.
The Non-Volatile Memory Technology Database (NVMDB)
Department of Computer Science amp; Engineering, University of California, San Diego technical report CS2015-1011, May 2015. (http://nvmdb.ucsd.edu).