Abstract

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.

Highlights

  • Non-Volatile Memory Express (NVMe) is a storage interface tailored for the fast non-volatile storage media such as Solid-State Drives (SSDs) [1]

  • Given the Host Memory Buffer (HMB) support, the SSD controller is able to access the host memory (i.e., DRAM) via the high-speed NVMe interface backed by Peripheral Component Interconnect Express (PCIe), and it can use a portion of host memory

  • Motivated by the aforementioned limitation, this paper presents an HMB-supported SSD development platform, called HMB-supported SSD development framework (HMB-SSD), which is built by faithfully extending an open-source SSD emulator, FEMU [11]

Read more

Summary

INTRODUCTION

Non-Volatile Memory Express (NVMe) is a storage interface tailored for the fast non-volatile storage media such as Solid-State Drives (SSDs) [1]. FAST WRITE BUFFER MANAGER One essential advantage of the HMB feature lies in that it offers the memory space accessible both to the host and device This property extends the communication between the host and device beyond the conventional storage protocols, significantly enhancing the efficiency and flexibility of the storage interfaces. The sector addresses for bio are translated into the logical page addresses, and the bio is divided into biohit and biomiss It identifies the buffer heads by using the hash table, writes data into the HMB space, updates two LRU lists, and invokes bio_endio(). If there are insufficient clean or free buffers to accommodate data to be written for biomiss, dirty buffers should be flushed to the NAND flash memory In such a situation, as the host-side SSD controller cannot flush dirty buffers directly, the write requests are passed to the SSD controller through an original I/O handling process. Once the free buffers are sufficiently obtained via the reclamation, it allocates new buffer heads into the FWB table, writes the requested data into the write buffer, and updates two LRU lists

PERFORMANCE EVALUATION
Findings
CONCLUSION
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call