An operating system for architectures with non-volatile main memory.
- Duration: 2012 to 2015
- Funding: Intel Labs Research Grant
In the near future we are going to have byte-addressable, non-volatile memory technologies with the size of current disks and access times comparable to today’s DRAM. Thus, technically, it makes no sense to hide these memory technologies behind a block-device interface like in the case of current SSDs, but design a flatter memory hierarchy that entirely omits traditional virtual memory and mass storage devices. In that case it is possible to start programs instantaneously (in place execution) and even keep (most of) the state of the running system permanently persistent without battery drain. These benefits are not only relevant for the mass market of mobile devices but for high end computing centers as well, since idle servers do not need to be continuously in an active state but can nevertheless react quickly to client requests. Unfortunately, all these benefits are not as easily achieved as it might seem at a first glance.
The major research objective is to design a flat memory hierarchy (i.e. remove the secondary storage layer completely) that acts like a robust single level store for future systems with large NVRAMs. We consider such a memory hierarchy to be essential for those architectures, since there is technically no distinction between main memory and mass storage anymore. In essence, without such a single level store, enormous amounts of memory are wasted and a lot of time will be spent performing useless copies from ”persistent” NVRAM to ”volatile” NVRAM. Memory is managed by the OS as consecutive memory regions that live as long as they are referenced through either a persistent name space and/or mapped into the (linear) address spaces of processes. However, inherent robustness is essential for such a scheme, since the NVRAM is large and even small local memory corruptions might cause the loss of the contents of the entire NVRAM.