Enabling Remote Access to Persistent Memory on an IO Subsystem Using NVM Express and RDMA

Library Content Type:
Publish Date: 
Monday, September 19, 2016
Event Name: 
Focus Areas:

NVM Express is predominately a block based protocol where data is transferred to/from host memory using DMA engines inside the PCIe SSD. However since NVMe 1.2 there exists a memory access method called a Controller Memory Buffer which can be thought of as a PCIe BAR managed by the NVMe driver. Also, the NVMe over Fabrics standard was released this year that extended NVMe over RDMA transports. In this paper we look at the performance of the CMB access methodology over RDMA networks. We discuss the implications of adding persistence semantics to both RDMA and these NVMe CMBs to enable a new type of NVDIMM (which we refer to as an NVRAM). These NVRAMs can reside on the IO sub-system and hence are decoupled from the CPU and memory sub-system which has certain advantages and disadvantages over NVDIMM which we outline in the paper. We conclude with a discussion on how NVMe over Fabrics might evolve to support this access methodology and how the RDMA standard is also developing to align with this work. Learning Objectives NVM Express overview NVMe over Fabrics overview Using IO memory as an alternative to NVDIMM Controller Memory Buffers in NVMe Performance results for new access method