本文内容来源于Rino 大神和 Lorenzo Zuolo在FMS(Flash memory Summit 2019)上ppt,涉及以下几个问题:
什么是QoS
QoS 在SSD 内部受哪些因素影响
包含SSD-NAND 特性分析的完整的研发流程
一种Soft Decoding的方案
什么是QoS
QoS, 即 quality of service,广义上的指标包括信息传播时带宽,延迟,丢包率等。其中带宽(BandWidth)和延迟(Latency)在存储领域也是最基本和最重要的指标。
TLC 和 QLC 3D NAND 的PE (program/erase cycle)次数只有几千次,数据可靠性大大下降,对数据纠错编码算法有更高的要求。
目前主流的纠错算法是LDPC。 LDPC 的纠错能力很强,因为他可以采用一种叫做soft decoding的方法,该方法通过对NAND 上的数据进行过采样(即over sampling,需要多次调节参数并read NAND的过程), 得到更多冗余信息来帮助算法对真实的数据进行概率上的估计。遗憾的是,soft decoding会降低带宽,并增大延迟。从而对QoS产生很不利的影响。如下图所示:
QoS 在SSD 内部受哪些因素影响?
根据上一小节的讨论,可以看到QoS跟NAND的特性、纠错算法、以及SSD controller的软硬件实现高度相关:
包含SSD-NAND 特性分析的完整的研发流程
大量收集现有的真实测试数据,进行数据挖掘,得到重要的参数估计。
根据参数构建仿真器模型。
在模型上,进行算法/架构的调整,优化延迟、带宽和IOPS等具体指标。
将优化后的方案更新的真实产品中。
转到1,反复迭代。
整个流程如下图所示:
一种Soft Decoding的方案
Soft Decoding的read 发起,都是来自SSD controller, 无外乎下面两种情形:
完全由Firmware 发起和管理
硬件加速,通过 Flash Channel Processor(在SSD controller 中)发起和管理,这种方案对ssd controller的设计有较高要求。
作者展示了两种方案的QoS 结果对比:
可以看到,专属硬件加速Soft Decoding 可以显著减少latency,提高QoS。