2.LDPC(Low Density Parity Check)纠错码
LDPC码是一种基于稀疏矩阵的纠错码,它由一组奇偶校验方程组成,其中大部分元素为零,因此得名“低密度”。LDPC码的优点是可以有效地纠正大量的错误,尤其是对于高密度存储设备来说。LDPC解码可以分为硬解码和软解码两种方式。
(1)LDPC Hard Decode
硬解码是最基本的LDPC解码方法,它试图从接收到的数据中恢复正确的信息。这个过程通常涉及到将接收到的代码字与一个预定义的校验矩阵相乘,并检查结果是否为全零向量。如果是全零向量,则说明接收到的信息是正确的;否则,需要进行错误定位和纠正。比BCH更复杂,能处理更多的错误,但仍然没有充分利用信号质量信息。
(2)LDPC Soft Decode
软解码是一种更复杂的解码方式,它考虑到了接收信号的质量,并尝试优化解码决策。在这个过程中,不仅使用了接收到的比特值(0或1),还考虑了每个比特的概率分布。通过这种方法,软解码可以提供更高的错误检测和纠正能力,但需要更多的计算资源。最复杂但也最强力的纠错方式,利用了信号强度信息来提高解码准确性,但需要更多的计算资源。
三者的纠错能力对比:BCH与LDPC Hard Decode纠错能力差不多,LDPC Hard Decode也只是比BCH高一点。但是,LDPC Soft Decode纠错能力会提升3倍以上。
在SSD读取过程中,LDPC纠错的顺序通常是这样的:先执行硬判决解码,硬判决解码失败或者无法纠正所有错误,SSD会接着尝试使用软判决解码。软判决解码利用了每个比特的概率信息,能够更准确地定位和修复错误。
但是这个纠错过程中,硬解码主要依赖硬件实现,因为它的运算过程相对简单且重复,适合于ASIC(专用集成电路)设计。在现代SSD中,LDPC硬解码通常由闪存控制器中的专门硬件模块完成。硬解码只需要对数据进行一次简单的奇偶性检查,而软解码则需要多次迭代来更新每个比特位的概率分布并做出决策。因此,当硬解码无法正确处理错误时,通常会转向软解码,即使这意味着读取操作的整体延迟会增加。根据研究人员实验数据显示,LDPC软解码每一步执行的大致延迟数据如下:
由于LDPC Soft Decode可能会引起较大的QoS延迟波动,目前业内针对这部分的涉及也非常的敏感,也是各大SSD控制器厂商和SSD原厂的核心算法与竞争力。通常,这部分的实现可能有两方面:
一种选择是Soft Read由SSD主控来完成,这部分可能就依赖FW管理能力与效率。
另外一种选择是Soft Read由每个NAND通道的闪存主控FlashIP来完成,这部分也是主流的选择,相对高效,实测结果参考如下:
场景1: 4KB随机混合读写,读:写=1:1
场景2: 4KB随机读100%
小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!
精彩推荐: