HMB-I/O: Fast Track for Handling Urgent I/Os in Nonvolatile Memory Express Solid-State Drives
Source abstract
Abstract
Differentiated I/O services for applications with their own requirements are very important for user satisfaction. Nonvolatile memory express (NVMe) solid-state drive (SSD) architecture can improve the I/O bandwidth with its numerous submission queues, but the quality of service (QoS) of each I/O request is never guaranteed. In particular, if many I/O requests are pending in the submission queues due to a bursty I/O workload, urgent I/O requests can be delayed, and consequently, the QoS requirements of applications that need fast service cannot be met. This paper presents a scheme that handles urgent I/O requests without delay even if there are many pending I/O requests. Since the pending I/O requests in the submission queues cannot be controlled by the host, the host memory buffer (HMB), which is part of the DRAM of the host that can be accessed from the controller, is used to process urgent I/O requests. Instead of sending urgent I/O requests into the SSDs through legacy I/O paths, the latency is removed by directly inserting them into the HMB. Emulator experiments demonstrated that the proposed scheme could reduce the average and tail latencies by up to 99% and 86%, respectively.
Source: crossref · Quality: baseline
Research context
OpenAlex topics: Advanced Data Storage Technologies · Parallel Computing and Optimization Techniques · Caching and Content Delivery
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
Affiliations
Department of Computer Engineering, Kwangwoon University, 20, Gwangun-ro, Nowon-gu, Seoul 01897, Korea
School of Computer and Information Engineering, Kwangwoon University, 20, Gwangun-ro, Nowon-gu, Seoul 01897, Korea
Funding
National Research Foundation of Korea
References (29)
Show source-provided references
1. Cobb, D., and Huffman, A. (2012, January 13). NVM Express and the PCI Express SSD Revolution. Proceedings of the Intel Developer Forum, San Francisco, CA, USA.
2. Bjørling, M., Axboe, J., Nellans, D., and Bonnet, P. (July, January 30). Linux Block IO: Introducing Multi-Queue SSD Access on Multi-Core Systems. Proceedings of the 6th International Systems and Storage Conference, Haifa, Israel.
3. Kim, S., and Yang, J.S. (2018, January 24–29). Optimized I/O determinism for emerging NVM-based NVMe SSD in an enterprise system. Proceedings of the 55th Annual Design Automation, San Francisco, CA, USA.10.1145/3195970.3196085 ↗
4. Kim, H.J., Lee, Y.S., and Kim, J.S. (2016, January 20–21). NVMeDirect: A User-space I/O Framework for Application-specific Optimization on NVMe SSDs. Proceedings of the 8th USENIX Workshop on Hot Topics in Storage and File Systems, Denver, CO, USA.
5. Kim, H., and Shin, D. (March, January 27). SHRD: Improving Spatial Locality in Flash Storage Accesses by Sequentializing in Host and Randomizing in Device. Proceedings of the 15th USENIX Conference on File and Storage Technologies, Santa Clara, CA, USA.
6. Exploiting internal parallelism for address translation in solid-state drives10.1145/3239564 ↗
7. Jung, M., and Kandemir, M. (2020, May 29). Revisiting Widely Held SSD Expectations and Rethinking System-level Implications. Available online: http://camelab.org/uploads/paper/MJ-SIGMETRICS13.pdf.
8. HMB-SSD: Framework for efficient exploiting of the host memory buffer in the NVMe SSD10.1109/ACCESS.2019.2947350 ↗
9. Lee, M., Kang, D.H., Lee, M., and Eom, Y.I. Improving Read Performance by Isolating Multiple Queues in NVMe SSDs. Available online: https://dl.acm.org/doi/pdf/10.1145/3022227.3022262.
10. (2020, May 25). NVMe Overview. Available online: https://www.nvmexpress.org/wp-content/uploads/NVMe_Overview.pdf.
11. Huffman, A. (2019, September 02). NVM Express Base Specification Revision 1.3c. Available online: https://nvmexpress.org/wp-content/uploads/NVM-Express-1_3c-2018.05.24-Ratified.pdf.
12. Zhang, J., Kwon, M., Gouk, D., Koh, S., Lee, C., Alian, M., Chun, M., Kandemir, M.T., Kim, N.S., and Kim, J. (2018, January 8–10). FlashShare: Punching Through Server Storage Stack from Kernel to Firmware for Ultra-Low Latency SSDs. Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation, Carlsbad, CA, USA.
13. Peng, B., Zhang, H., Yao, J., Dong, Y., Xu, Y., and Guan, H. (2018, January 11–13). MDev-NVMe: A NVMe Storage Virtualization Solution with Mediated Pass-Through. Proceedings of the 2018 USENIX Annual Technical Conference, Boston, MA, USA.
14. Huang, S. (2015, January 10–11). DRAM-Less SSD Facilitates HDD Replacement. Proceedings of the Flash Memory Summit, Santa Clara, CA, USA.
15. Chen, M. (2017, January 7–10). Which PCIe BGA SSD Architecture is Right for Your Application. Proceedings of the Flash Memory Summit, Santa Clara, CA, USA.
16. (2020, May 25). Linux Kernel NVMe Device Driver. Available online: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/nvme/host/pci.c?h=v4.13.10#n2179.
17. Ramseyer, C. (2020, May 25). Silicon Motion SM2263XT HMB SSD Preview. Available online: https://www.tomshardware.com/reviews/silicon-motion-sm2263xt-controller-preview,5404.html.
18. (2019, December 27). Marvell 88NV1160 Product Brief. Available online: https://www.marvell.com/storage/assets/Marvell-88NV1160-Product-Brief-20160830.pdf.
19. (2020, May 25). Silicon Power PCIe Gen3x2 P32M85. Available online: https://www.silicon-power.com/web/product-P32M85.
20. Dorgelo, J., and Chen, M.C. (2015, January 10–11). Host Memory Buffer (HMB) based SSD System. Proceedings of the Flash Memory Summit, Santa Clara, CA, USA.
21. Yang, S. (2017, January 7–10). Improving the Design of DRAM-Less PCIe SSD. Proceedings of the Flash Memory Summit, Santa Clara, CA, USA.
22. Hong, J., Han, S., and Chung, E.Y. (2016, January 23–26). A RAM Cache Approach Using Host Memory Buffer of the NVMe Interface. Proceedings of the 2016 International SoC Design Conference, Jeju, Korea.10.1109/ISOCC.2016.7799757 ↗
23. Joshi, K., Yadav, K., and Choudhary, P. (2017, January 10–11). Enabling NVMe WRR Support in Linux Block Layer. Proceedings of the 9th USENIX Workshop on Hot Topics in Storage and File Systems, Santa Clara, CA, USA.
24. Axboe, J. (2020, May 25). Fio: Flexible I/O Tester. Available online: https://github.com/axboe/fio.
25. (2020, May 25). Libaio. Available online: https://pagure.io/libaio.
26. (2020, May 25). Open (2)—Linux Manual Page. Available online: http://man7.org/linux/man-pages/man2/open.2.html.
27. Kim, K., Kim, S., and Kim, T. (2020, January 19–22). FAST I/O: QoS Supports for Urgent I/Os in NVMe SSDs. Proceedings of the 2020 5th International Conference on Intelligent Information Technology, Hanoi, Vietnam.10.1145/3385209.3385221 ↗
28. Li, H., Hao, M., Tong, M.H., Sundararaman, S., Bjørling, M., and Gunawi, H.S. (2018, January 12–15). The CASE of FEMU: Cheap, Accurate, Scalable and Extensible Flash Emulator. Proceedings of the 16th USENIX Conference on File and Storage Technologies, Oakland, CA, USA.
29. Zhou, D., Pan, W., Wang, W., and Xie, T. (2015, January 4–6). I/O Characteristics of Smartphone Applications and Their Implications for eMMC Design. Proceedings of the 2015 IEEE International Symposium on Workload Characterization, Atlanta, GA, USA.10.1109/IISWC.2015.8 ↗