
FOLLOWUS
1.Department of Computer Science and Engineering, The Chinese University of Hong Kong, Hong Kong 999077, China
2.College of Intelligence and Computing, Tianjin University, Tianjin 300354, China
E-mail: jinxue@cse.cuhk.edu.hk
‡ Corresponding author
tywang@cse.cuhk.edu.hk
shao@cse.cuhk.edu.hk
收稿:2022-10-13,
录用:2023-02-06,
纸质出版:2023-05-0
Scan QR Code
薛进, 陈仁海, 王天雨, 等. 基于SoftSSD的快速固态硬盘固件原型开发[J]. 信息与电子工程前沿(英文), 2023,24(5):659-674.
Jin XUE, Renhai CHEN, Tianyu WANG, et al. SoftSSD: enabling rapid flash firmware prototyping for solid-state drives
薛进, 陈仁海, 王天雨, 等. 基于SoftSSD的快速固态硬盘固件原型开发[J]. 信息与电子工程前沿(英文), 2023,24(5):659-674. DOI: 10.1631/FITEE.2200456.
Jin XUE, Renhai CHEN, Tianyu WANG, et al. SoftSSD: enabling rapid flash firmware prototyping for solid-state drives
近年来,固态硬盘已被广泛用于新兴的数据处理系统中。从本质上讲,固态硬盘是一个复杂的嵌入式系统,涉及硬件和软件设计。对于软件设计来说,固件模块如闪存转换层协调了内部操作和闪存管理,并对固态硬盘的整体输入/输出性能至关重要。尽管市场上新的固态硬盘功能发展迅速,但由于缺乏真实和可扩展的固态硬盘开发平台,闪存固件的研究大多是基于模拟方法实现。本文提出SoftSSD,一个面向软件的用于快速闪存固件原型开发的固态硬盘开发平台。SoftSSD的核心是一个具有事件驱动编程模型的新型框架。通过该编程模型,新的闪存转换算法可以被直接集成到全功能的闪存固件中。由此产生的闪存固件可以部署到一个通过外设组件互连总线连接到主机系统的硬件开发板上并对其进行评估。不同于现有的面向硬件的开发平台,SoftSSD通过软件方式实现了大部分的固态硬盘功能组件。因此,曾经被限制在硬件中的数据流和内部状态现在可以用软件调试器来检查以提供更好的可观察性和可扩展性,这对闪存固件的快速原型设计和研究至关重要。我们描述了SoftSSD的编程模型和硬件设计,在原型开发板上进行了实际应用工作负载的实验,以展示SoftSSD的性能和实用性,并发布了SoftSSD的开源代码供公众使用。
Recently
solid-state drives (SSDs) have been used in a wide range of emerging data processing systems. Essentially
an SSD is a complex embedded system that involves both hardware and software design. For the latter
firmware modules such as the flash translation layer (FTL) orchestrate internal operations and flash management
and are crucial to the overall input/output performance of an SSD. Despite the rapid development of new SSD features in the market
the research of flash firmware has been mostly based on simulations due to the lack of a realistic and extensible SSD development platform. In this paper
we propose SoftSSD
a software-oriented SSD development platform for rapid flash firmware prototyping. The core of SoftSSD is a novel framework with an event-driven programming model. With the programming model
new FTL algorithms can be implemented and integrated into a full-featured flash firmware in a straightforward way. The resulting flash firmware can be deployed and evaluated on a hardware development board
which can be connected to a host system via peripheral component interconnect express and serve as a normal non-volatile memory express SSD. Different from existing hardware-oriented development platforms
SoftSSD implements the majority of SSD components (e.g.
host interface controller) in software
so that data flows and internal states that were once confined in the hardware can now be examined with a software debugger
providing the observability and extensibility that are critical to the rapid prototyping and research of flash firmware. We describe the programming model and hardware design of SoftSSD. We also perform experiments with real application workloads on a prototype board to demonstrate the performance and usefulness of SoftSSD
and release the open-source code of SoftSSD for public access.
Belson B , Holdsworth J , Xiang W , et al. , 2019 . A survey of asynchronous programming using coroutines in the Internet of Things and embedded systems . ACM Trans Embed Comput Syst , 18 ( 3 ): 21 . doi: 10.1145/3319618 http://doi.org/10.1145/3319618
Bjørling M , González J , Bonnet P , 2017 . LightNVM: the Linux open-channel SSD subsystem . Proc 15 th USENIX Conf on File and Storage Technologies , p. 359 - 373 .
Boukhobza J , Rubini S , Chen RH , et al. , 2017 . Emerging NVM: a survey on architectural integration and research challenges . ACM Trans Des Autom Electron Syst , 23 ( 2 ): 14 . doi: 10.1145/3131848 http://doi.org/10.1145/3131848
Conway ME , 1963 . Design of a separable transition-diagram compiler . Commun ACM , 6 ( 7 ): 396 - 408 . doi: 10.1145/366663.366704 http://doi.org/10.1145/366663.366704
Gao CM , Shi L , Zhao MY , et al. , 2014 . Exploiting parallelism in I/O scheduling for access conflict minimization in flash-based solid state drives . Proc 30 th Symp on Mass Storage Systems and Technologies , p. 1 - 11 . doi: 10.1109/MSST.2014.6855544 http://doi.org/10.1109/MSST.2014.6855544
Gupta A , Kim Y , Urgaonkar B , 2009 . DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings . ACM SIGARCH Comput Archit News , 37 ( 1 ): 229 - 240 . doi: 10.1145/2528521.1508271 http://doi.org/10.1145/2528521.1508271
He J , Kannan S , Arpaci-Dusseau AC , et al. , 2017 . The unwritten contract of solid state drives . Proc 12 th European Conf on Computer Systems , p. 127 - 144 . doi: 10.1145/3064176.3064187 http://doi.org/10.1145/3064176.3064187
Ho KC , Fang PC , Li HP , et al. , 2013 . A 45 nm 6b/cell charge-trapping flash memory using LDPC-based ECC and drift-immune soft-sensing engine . IEEE Int Solid-State Circuits Conf , p. 222 - 223 . doi: 10.1109/ISSCC.2013.6487709 http://doi.org/10.1109/ISSCC.2013.6487709
Hu Y , Jiang H , Feng D , et al. , 2011 . Performance impact and interplay of SSD parallelism through advanced commands, allocation strategy and data granularity . Proc Int Conf on Supercomputing , p. 96 - 107 . doi: 10.1145/1995896.1995912 http://doi.org/10.1145/1995896.1995912
Jung M , Choi W , Gao SW , et al. , 2016 . NANDFlashSim: high-fidelity, microarchitecture-aware NAND flash memory simulation . ACM Trans Storage , 12 ( 2 ): 6 . doi: 10.1145/2700310 http://doi.org/10.1145/2700310
Jung M , Zhang J , Abulila A , et al. , 2018 . SimpleSSD: modeling solid state drives for holistic system simulation . IEEE Comput Archit Lett , 17 ( 1 ): 37 - 41 . doi: 10.1109/LCA.2017.2750658 http://doi.org/10.1109/LCA.2017.2750658
Kim Y , Tauras B , Gupta A , et al. , 2009 . FlashSim: a simulator for NAND flash-based solid-state drives . Proc 1 st Int Conf on Advances in System Simulation , p. 125 - 131 . doi: 10.1109/SIMUL.2009.17 http://doi.org/10.1109/SIMUL.2009.17
Kwak J , Lee S , Park K , et al. , 2020 . Cosmos+ OpenSSD: rapid prototype for flash storage systems . ACM Trans Storage , 16 ( 3 ): 15 . doi: 10.1145/3385073 http://doi.org/10.1145/3385073
Lee G , Shin S , Song W , et al. , 2019 . Asynchronous I/O stack: a low-latency kernel I/O stack for ultra-low latency SSDs . USENIX Annual Technical Conf , p. 603 - 616 .
Li HC , Hao MZ , Tong MH , et al. , 2018 . The case of FEMU: cheap, accurate, scalable and extensible flash emulator . Proc 16 th USENIX Conf on File and Storage Technologies , p. 83 - 90 .
Li S , Zhang T , 2010 . Improving multi-level NAND flash memory storage reliability using concatenated BCH-TCM coding . IEEE Trans Very Large Scale Integr (VLSI) Syst , 18 ( 10 ): 1412 - 1420 . doi: 10.1109/TVLSI.2009.2024154 http://doi.org/10.1109/TVLSI.2009.2024154
Lu LY , Pillai TS , Arpaci-Dusseau AC , et al. , 2016 . WiscKey: separating keys from values in SSD-conscious storage . Proc 14 th USENIX Conf on File and Storage Technologies , p. 133 - 148 .
Lu YY , Shu JW , Zheng WM , 2013 . Extending the lifetime of flash-based storage through reducing write amplification from file systems . Proc 11 th USENIX Conf on File and Storage Technologies , p. 257 - 270 .
Ma CL , Wang Y , Shen ZY , et al. , 2020 . MNFTL: an efficient flash translation layer for MLC NAND flash memory . ACM Trans Des Autom Electron Syst , 25 ( 6 ): 50 . doi: 10.1145/3398037 http://doi.org/10.1145/3398037
Moura ALD , Ierusalimschy R , 2009 . Revisiting coroutines . ACM Trans Program Lang Syst , 31 ( 2 ): 6 . doi: 10.1145/1462166.1462167 http://doi.org/10.1145/1462166.1462167
Shi L , Di YJ , Zhao MY , et al. , 2016 . Exploiting process variation for write performance improvement on NAND flash memory storage systems . IEEE Trans Very Large Scale Integr (VLSI) Syst , 24 ( 1 ): 334 - 337 . doi: 10.1109/TVLSI.2015.2393299 http://doi.org/10.1109/TVLSI.2015.2393299
Tavakkol A , Gómez-Luna J , Sadrosadati M , et al. , 2018 . MQSim: a framework for enabling realistic studies of modern multi-queue SSD devices . Proc 16 th USENIX Conf on File and Storage Technologies , p. 49 - 66 .
Wang S , Wu F , Lu Z , et al. , 2017 . Lifetime adaptive ECC in NAND flash page management . Design, Automation & Test in Europe Conf & Exhibition , p. 1253 - 1256 . doi: 10.23919/DATE.2017.7927182 http://doi.org/10.23919/DATE.2017.7927182
Xue J , Chen R , Shao Z , 2022 . SoftSSD: software-defined SSD development platform for rapid flash firmware prototyping . IEEE 40 th Int Conf on Computer Design , p. 602 - 609 . doi: 10.1109/ICCD56317.2022.00094 http://doi.org/10.1109/ICCD56317.2022.00094
Yang MC , Chang YM , Tsao CW , et al. , 2014 . Garbage collection and wear leveling for flash memory: past and future . Int Conf on Smart Computing , p. 66 - 73 . doi: 10.1109/SMARTCOMP.2014.7043841 http://doi.org/10.1109/SMARTCOMP.2014.7043841
Yoo J , Won Y , Hwang J , et al. , 2013 . VSSIM: virtual machine based SSD simulator . Proc IEEE 29 th Symp on Mass Storage Systems and Technologies , p. 1 - 14 . doi: 10.1109/MSST.2013.6558443 http://doi.org/10.1109/MSST.2013.6558443
Zhang J , Kwon M , Swift M , et al. , 2020 . Scalable parallel flash firmware for many-core architectures . Proc 18 th USENIX Conf on File and Storage Technologies , p. 121 - 136 .
关联资源
相关文章
相关作者
相关机构
京公网安备11010802024621