作者:Stephen Bates

SSD控制器芯片中採用的纠错编码(ECCs)的类型正在发生一场演变。相信很多这篇博文的读者对此都有所了解。传统上採用的纠错码是基于群变换的博斯-查德胡里-霍昆格母(BCH)码。对于大尺寸的NAND闪存而言全然胜任。

然而。对更为便宜及密度更高的NAND闪存的需求意味着BCH不再够用,为了寻求替代方法。多数人眼下都选择了低密度奇偶校验码(LDPC)。

            本篇博文将讲述这场演变的意义所在及其对我们PMC称之为Software
Defined Flash
(软件定义闪存)这一领域的影响。

如需了解很多其它LDPC码的背景。请參看Kent
Smith 的精彩博文

从BCH向LDPC转变的原因有若干条,但终于都归于一点:LDPC码在同样的用户数据与ECC校验码之比下能够纠正很多其它的错误。

这句话中提到同样的用户数据与ECC校验码之比很重要。原因是我们不想添加SSD中的ECC校验位数。由于添加ECC校验位数会带来各种难以处理的问题,如写放大(Write
Amplification , WA)及数据格式的低效利用等。

你或许会说,“假设LDPC码这么棒,那为什么不打一開始就用它呢?”这个问题也在情理之中。答案在于几个因素:

·        尽管LDPC码最早由Robert
Gallagher年代才真正实现,那是在NAND闪存已经採用了BCH码之后。

·        解码LDPC码的电路与相当的BCH码电路相比,通常体积与功耗都须要更大

·        LDPC码的优势仅仅在能从NAND闪存中提取软信息是才真正彰显出来,而这样的信息提取仅仅在最新一代技术中才刚刚实现

可是。如今不论什么LDPC码应用的阻碍都不复存在。因此面世的多款SSD控制器中

都已经集成了LDPC码。

我们因此能够从若干新角度来讨论SSD的问题。

LDPC提供的耐久度与/或数据留存

BCH码向LDPC码演变带来的一个显著益处是控制器能够借此来延长SSD的使用寿命。NAND闪存随着编程-删除(PE)周期而逐渐损耗。举例而言。改成LDPC码可能将闪存周期从10,000提到15,000个PE周期,这样一来,就能够实现SSD在耐久性上50%的提升,而无须更换NAND闪存。类似地。改为LDPC码也能够提升SSD的留存率。

闪存随着编程-闪存周期而损耗。LDPC与BCH相比,能够在每页中纠正很多其它错误,因此能够维持闪存更长的寿命,从而带来更高耐久度的SSD。

LDPC带来容量改善

从BCH码变为LDPC码带来的一个不那么明显的优点是每一个闪存页面上的出错数目因此添加了。“为什么居然会想要添加闪存页面上的出错数目呢?”有意思的是。假设接受每一个NAND闪存页面上出错添加能换取NAND闪存上页面数目的提升不是非常好吗?从MLCNAND闪存向TLCNAND闪存过渡恰好会实现这一点。

TLC NAND闪存比MLC NAND闪存的页数多出50%。比SLC NAND闪存多出150%,因此能够提供$/GB方面巨大的改善。

每页出错数添加当然会带来负面影响,但对于某些应用而言是能够接受的。

从BCH码向LDPC码的演进促成了NAND闪存的TLC市场。并将NAND闪存的$/GB降至更低。

LDPC带来延迟改善

假设说企业级和数据中心用户对其使用的SSD仅仅有一点要求。那一定是延迟。对某些应用而言,延迟及延迟的稳定性要求至关重要。我会在将来的博文中更具体地讨论这个问题。在这里。我想提一下。採用LDPC码——尤其是速率适应型的LDPC码——能够实现延迟控制,甚至对延迟的变化幅度作出限定。

LDPC对软件定义闪存的意义

            有意思的是,如若精心设计,上述全部场景中採用的LDPCIP能够全然同样。

通过对控制LDPC IP的固件进行微调,能够使控制器适用于多种应用。这一点对于Software
Defined Flash
(SDF) 非常有价值。

SDF同意用户通过改变执行于SSD之上的固件及软件的行为来调整SSD的属性。

这就使物理上全然同样的SSD能够以全然不同的属性运作,这一点无论从静态还是动态的角度来看都非常有意思:

·        静态配置——如果某人想要在其数据中心中部署大量SSD。设想一下,这些SSD中有些须要高耐久度,而另外一些须要$/GB较低。

支持SDF的SSD能够通过在SSD上安放不同的固件及软件来满足单个驱动中这些多样化的器件需求。

·        动态配置——如果某人想要在其数据中心中部署大量SSD。设想一下。他们须要一种昼夜交替的负载模式。白天须要低延迟。夜晚则须要低功耗。那么,支持SDF的SSD又能够依据置于SSD之上的软件管理层上的指令来调整其一天其中的行为。

结论

由此可见,从BCH码变为LDPC码能够促成SSD 内部的很多精彩改变。有些改变一目了然(耐久度提高)。有些比較隐讳(延迟控制),还有一些则更为激进(如SSD的属性在一天中变化不定)。

该项技术的普及将会带来些什么。我们拭目以待。Software Defined
Flash
 及其对SSD在企业级和数据中心环境中怎样部署会带来的影响,在未来非常长一段时间,将会引发种种讨论。

你觉得这一演变将带来的最为激动人心的变化是什么呢?

SSD纠错码向LDPC码演变的更多相关文章

  1. 准循环LDPC码用于公钥密码时的奇偶校验矩阵

    设H为奇偶校验矩阵,其行权重为d.Q为转置矩阵,其行权重为m.对于LDPC码,有d/n<< 1, m/n< 1. H´=H·QT是用于公钥密码的奇偶校验矩阵.它不是老密码G的奇偶校验 ...

  2. SSD ECC中的LDPC编解码原理

    转自:http://blog.csdn.net/zhuzongpeng/article/details/78899198 目前SSD中ECC纠错代码主要两种BCH和LDPC.不过,随着SSD对ECC纠 ...

  3. 5G为何采纳华为力挺的Polar码?一个通信工程师的大实话

    Polar码被采纳为5G eMBB场景的控制信道编码,这两天连续被这条消息刷屏,连吃瓜群众都直呼好爽. 然而,随着媒体报道的持续发酵,真相在口口相传中变了形,不乏夸大不实之嫌,小编终于坐不住了,也想吐 ...

  4. [转][业界动态] 5G为何采纳华为力挺的Polar码?一个通信工程师的大实话

    本文转自:http://xinsheng.huawei.com/cn/index.php?app=forum&mod=Detail&act=index&id=3264791 P ...

  5. LDPC编译码基本原理

    LDPC编译码基本原理     学习笔记 V1.1 2015/02/18 LDPC编译码基本原理   概述   本文是个人针对LDPC的学习笔记,主要针对LDPC译码算法做了简要的总结.该版本主要致力 ...

  6. QR二维码(转)

    二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字, ...

  7. (转)QR二维码生成及原理

    二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字, ...

  8. 论文笔记 SSD: Single Shot MultiBox Detector

    转载自:https://zhuanlan.zhihu.com/p/33544892 前言 目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型(参考RefineDet):(1)two-st ...

  9. 利用Xilinx HLS实现LDPC译码器

    1. 概述 采用Xilinx HLS快速实现的部分并行,全流水的LDPC译码器. 环境:Vivado HLS 2018.2 码字:IEEE 802.16e 2/3A 算法:Min-Sum Algori ...

随机推荐

  1. ubuntu的home目录下,Desktop等目录消失不见

    第一步:创建相应的文件夹 首先当然是创建几个相应的英文文件夹喽,比如:Desktop.Downloads. Documents. Music. Pictures. Videos  , Template ...

  2. Oracle获取alter.log的方法

    10g下:可以在 admin\{sid}\pfile文件下的init.ora文件中找到以下内容:audit_file_dest = C:\ORACLE\PRODUCT\10.2.0\ADMIN\ORC ...

  3. Centos7下Docker的使用

    一.安装Docker 1.1.查看原有系统是否已经安装docker yum list installed | grep docker 1.2.如果有则不需要继续安装,想重新安装,先卸载 yum -y ...

  4. Gitlab smtp 设置

    地址: https://blog.csdn.net/yongche_shi/article/details/78677163 # 腾讯云限制25发信端口,修改为465,并开启. https://doc ...

  5. Android之MVP架构

    MVP(Model View Presenter)模式是由MVC模式发展而来的,在如今的Android程序开发中显得越来越重要.本篇文章简单讨论了MVP模式的思想. 啥是MVP MVP模式的主要思想是 ...

  6. vuejs开发H5页面总结

    最近参与了APP内嵌H5页面的开发,这次使用vuejs替代了jQuery,仅仅把vuejs当做一个库来使用,效率提高之外代码可读性更强,在此分享一下自己的一些开发中总结的经验. 关于布局方案 当拿到设 ...

  7. wpf 错误 执行了 QueryInterface 调用,请求提供 COM 可见的托管类“BoilerMonitoringV1._0.MapControl”的默认 IDispatch 接口。

    在做wpf嵌入地图时,在自定义的WebBrowser 里面使用JavaScript调用外部方法的时报的错误 在原来的WinForm里 我们只要在窗体类设置的头部设置个 [System.Runtime. ...

  8. 极光推送设置标签和别名无效的解决办法:JPush设置别名不走成功回调

    极光推送设置标签和别名无效的解决办法 JPush设置别名不走成功回调的解决办法 http://www.cnblogs.com/chenqitao/p/5506023.html 主要是网络加载过快导致的 ...

  9. matplotlib显示中文字体

    原始地址:http://zanyongli.i.sohu.com/blog/view/195716528.htm matplotlib 1.0.0版 对于3.0的可能不太适用,要注意语法结构! C:/ ...

  10. 关于Java学习

    缘由 其实写东西的缘由都很简单,不外乎要总结记录,这里,是一种启明灯一样的东西. 虽然说是半路出家,但码代码也有不少时间了,学习编程也有记录可寻了.. 但是,但是,但是,到了工作中,虽然经前辈指点,仍 ...