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?