HMB-SSD: Framework for Efficient Exploiting of the Host Memory Buffer in the NVMe SSD

Host Memory Buffer (HMB) is a highlighted feature of the Non-Volatile Memory Express (NVMe) protocol, which is the state-of-the-art storage interface for emerging storage devices such as Solid-State Drives (SSDs). HMB enables the underlying storage to make use of a portion of host memory for caching their address mapping information and/or user data, so that they can overcome the limited capacity of memory within the storage. This technology opens an opportunity to optimize the I/O performance cost-effectively by sharing the ample host memory with the severely resource-constrained device. However, it is challenging to study the HMB-based optimization techniques in the practical system because there is no SSD development platform supporting the HMB feature as well as the commercial SSD products veil their internals, not allowing a custom extension. Motivated by this limitation, this paper presents an HMB-supported SSD development platform called HMB-SSD, which is built by faithfully extending an open-source SSD emulator. HMB-SSD enables to easily integrate and evaluate I/O techniques for the HMB feature in an SSD emulator, which closely mimics the behavior of real devices. We demonstrate the proper operation of our platform and the efficacy of the HMB feature with a case study on write buffering. In our empirical study, the SSD storage achieves a large performance benefit with the HMB-based write buffer, yielding up to 86.2% better performance than that of without it.

[1]  Bo Peng,et al.  MDev-NVMe: A NVMe Storage Virtualization Solution with Mediated Pass-Through , 2018, USENIX Annual Technical Conference.

[2]  Wei Xie,et al.  Exploiting Internal Parallelism for Address Translation in Solid-State Drives , 2018, ACM Trans. Storage.

[3]  Cheng Li,et al.  HCFTL: A Locality-Aware Page-Level Flash Translation Layer , 2019, 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[4]  John Shalf,et al.  SimpleSSD: Modeling Solid State Drives for Holistic System Simulation , 2017, IEEE Computer Architecture Letters.

[5]  Bo Sheng,et al.  GReM: Dynamic SSD resource allocation in virtualized storage systems with heterogeneous IO workloads , 2016, 2016 IEEE 35th International Performance Computing and Communications Conference (IPCCC).

[6]  Youngjae Kim,et al.  DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings , 2009, ASPLOS.

[7]  Sang-Won Lee,et al.  Durable write cache in flash memory SSD for relational and NoSQL databases , 2014, SIGMOD Conference.

[8]  Joo Young Hwang,et al.  Improving Flash Storage Performance by Caching Address Mapping Table in Host Memory , 2017, HotStorage.

[9]  Antony I. T. Rowstron,et al.  Write off-loading: Practical power management for enterprise storage , 2008, TOS.

[10]  Matias Bjørling,et al.  The CASE of FEMU: Cheap, Accurate, Scalable and Extensible Flash Emulator , 2018, FAST.

[11]  Rino Micheloni,et al.  SSD Architecture and PCI Express Interface , 2013 .

[12]  Sangwoo Han,et al.  A RAM cache approach using host memory buffer of the NVMe interface , 2016, 2016 International SoC Design Conference (ISOCC).

[13]  Kyung Ho Kim,et al.  SHRD: Improving Spatial Locality in Flash Storage Accesses by Sequentializing in Host and Randomizing in Device , 2017, FAST.

[14]  Jongmoo Choi,et al.  VSSIM: Virtual machine based SSD simulator , 2013, 2013 IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST).