您当前的位置:首页 > 数码新闻 > 电脑新闻

LDPC 填 3D NAND 的坑

导读: 原标题:LDPC 填 3D NAND 的坑 原创内容,转载请注明: [http://www.ssdfans.com] 谢谢! 作者: MemBlaze 李月宽 想要和作者还有《大话存储》作者冬瓜哥、《PCI Express体系结构导读》作者王齐、《蛋蛋读NVM

原标题:LDPC 填 3D NAND 的坑

原创内容,转载请注明: [http://www.ssdfans.com] 谢谢!

作者: MemBlaze 李月宽

想要和作者还有《大话存储》作者冬瓜哥、《PCI Express体系结构导读》作者王齐、《蛋蛋读NVMe》作者蛋蛋等全世界的大牛讨论SSD及存储相关技术?加nanoarch为微信好友,拉你进ssdfans微信群。

无论是2D NAND还是3D NAND,都存在RBER(初始比特出错率)的问题,并且PE(擦写)次数增加,RBER将逐渐变大。有错误就需要纠错,在2D NAND时代, MLC寿命末期的RBER示意如下。

上图共有4096*8个单元,每个单元为1bit,代表一个4KB大小的数据块,红点则是出错的比特(下文图片仍采用这种规范表示NAND的出错率)

对于MLC的这些错误比特,BCH编码即可以完成纠正,这也是2D NAND时代MLC能够成为企业级固态硬盘广泛应用的直接原因(SLC太贵,TLC出错率太高造成硬盘寿命达不到要求)。而3D TLC NAND出错率比2D MLC NAND高出很多,同样是一块4KB大小的数据块,3D TLC NAND寿命末期的出错率大约是下图这样。

寿命后期的3D TLC NAND对于3D TLC NAND的错误率,BCH编码显得非常无力。这就是LDPC应用于新一代PCIe SSD的大背景。

1963年,Gallager在MIT Press上发表了一个名为《Low-Density Parity-Check Codes》的论文,LDPC就此诞生,但是在此之后沉寂了30年,直到上世纪90年代才被重新重视,LDPC码是迄今为止发现的离Shannon 容量限最近的一类码国际上对LDPC 码的理论分析、工程应用以及超大规模集成电路(VLSI)实现等方面的研究都取得了重要进展,LDPC 编码已经广泛应用于光通信、卫星通信、深空通信、4G、高速与甚高速率数字用户线和磁记录等系统中。

在3D NAND时代, LDPC可以充分利用NAND的错误偏移的特点进行解码。下面表格就从BCH和LDPC的实现复杂度以及纠错能力等方面做了对比。

BCH

LDPC 硬解码

LDPC 硬+软解码

读延时

解码延时

固定时间-短

固定时间-短

多次迭代-长

控制器复杂度

纠错能力

确定性

纠错能力低

概率性

纠错能力高

概率性

纠错能力高

功耗

跨NAND移植性

高出错率纠错能力

没有

从上表可以看出,BCH具有延时低,控制器复杂度低,易实现,同时可以满足2D NAND出错率需求等优点,在上一代产品中各个厂商采用的BCH编码方案。我们的PBlaze3, PBlaze4 PCIe SSD两代产品中同样采用了BCH。由于3D TLC NAND 的出错率太高,BCH 没办法解决,我们选择了LDPC。LDPC 分硬解码和硬+软解码两种。3D TLC NAND在寿命前中后期大量使用硬解码,到了寿命末期部分数据需要使用硬+软解码。LDPC硬解码与BCH比较具有同样的低延时特性,而LDPC硬解码的纠错能力是BCH的2-3倍。LDPC硬+软解码与LDPC硬解码比较优势是可以纠正高出错率,但是延时较高。

下面介绍小LDPC硬解码和硬+软解码的过程。

LDPC硬解码的过程如下:

  1. 发送命令读取Flash Channel 连接的NAND 对应Page 的数据

  1. 把数据发送给其中一个LDPC ECC 解码单元

  2. LDPC ECC 解码单元根据设置的迭代测试进行计算

  3. 经过步骤3,如果数据没有错误或者全部错误数据都已经纠正就把数据移动到DDR。

    从上面过程可以看出一次LDPC硬解码仅需要读取一次NAND, 然后尽全力采用多次迭代计算来纠正错误。这种方法延时比较低。NAND到了寿命末期出错率较高,部分Page进行多次迭代计算可能仍然不能全部纠正,这时候就需要硬软都上了。

LDPC硬+软解码的过程如下:

  1. LDPC 硬解码失败,发送请求软解码搞定。

  2. 固件发送多次读取NAND 上面Page的请求,这里假设是3次读吧。这三次读是比较讲究姿势的。TLC 有Low, Upper 和Extra三类Page, 不同Page 姿势不一样。即使是同类Page调整的幅度也是不同的。另外调整方法和上次的状态,大环境的影响都是相关的。

  3. 从NAND 三次读出的原始数据放到DDR 中。

  4. 加载Log Likelihood Ratio(LLR ) 表给LDPC 解码单元指定的位置。LLR 表那里来的。这个是NAND 厂的智慧结晶啊。我们是好伙伴。赠送的。

  5. 三份原始数据和一个LLR 表都来了,这时候软解码进程就开始了。整个过程硬件会自动的完成。这里也可以通过寄存器控制迭代多少次。

  6. 解码完成之后会通过CRC检测是否成功,如果成功纠正的数据就移动到DDR。

你可能会问什么时候LDPC硬解码会失败, 答案是超过控制器的硬解码能力。那控制器的硬解码能力是什么样子的呢。秘密。。。。看下图。错误率超过下图就要用硬+软解码了。

硬解码最大支持的3D TLC NAND出错率

LDPC使得3D-TLC大规模应用于企业级PCIe SSD成为现实,Memblaze在新一代PBlaze系列PCIe SSD中使用3D-TLC作为存储介质,一方面通过采购高质量3D-TLC保障介质在耐擦写能力、性能稳定性等方面处于一个较高的水准,另一方面采用了Microsemi的Belmar控制器,这一控制器的一大特点就是含有8个LDPC引擎,每个LDPC引擎可以达到1GB/s带宽,总共8GB/s带宽。这样的性能足以保障纠错不会成为性能瓶颈。

Memblaze LDPC 方案完美填好3D TLC NAND的坑,为其可靠性保驾护航。

Gallager,《Low-Density Parity-Check Codes》,1963

http://www.inference.phy.cam.ac.uk/mackay/gallager/papers/ldpc.pdf

喜欢就请分享转发!

怎么阅读ssdfans其他文章?进入www.ssdfans.com ,用搜索框搜索关键字即可。

不想错过后续精彩文章?长按或扫描下面二维码关注ssdfans就可以了!

ssdfans微信群介绍

技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英

固件、软件、测试群 固件、软件和测试技术讨论

异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算

ASIC-FPGA群 芯片和FPGA硬件技术讨论群

闪存器件群 NAND、3D XPoint等固态存储介质技术讨论

企业级 企业级SSD、企业级存储

销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%!

工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来

高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码或加nanoarch为微信好友,介绍你的姓名-单位-职务,注明群名,拉你进群。

免责声明:本文仅代表作者个人观点,与广州都市网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。


资讯标签:

热度排行