发布日期:2021-06-24 10:07 浏览次数:
随着NAND Flash的制程越来越先进、单个Cell里面的bit数量不断增加,数据错误率也随之增长,因此市场对SSD主控的纠错能力要求越来越高,纠错技术已经成为SSD主控厂商的核心技术能力。
目前的SSD主控芯片大都采用LDPC编码来做ECC纠错,但是受限于芯片面积等因素,主流量产的主控芯片主要采用2K LDPC编码。英韧科技2018年推出了4K LDPC并在2019年实现量产出货。在同样的码率下(纠错码使用bit数量一样),实测4K LDPC纠错比2K方案降低UBER至少两个数量级以上,大大提高纠错性能。除此以外,英韧主控采用自主研发的LDPC专利算法,在解码算法迭代的时候,实时动态更新并优化解码规则,因此纠错能力比同类竞争对手方案提高30%。
不过在芯片中实现4K LDPC的难度还是很大的,如果不做优化,相当于至少2个2K LDPC,因此对面积、功耗都有极大的挑战和要求。 英韧科技从芯片架构设计开始,就考虑到了这些问题,比如针对不同的功耗,复杂度和吞吐率等需求,研发了多种不同性能的LDPC解码专利算法,同时利用机器学习和人工智能技术对各种解码算法进行结构和参数优化,使得这些算法硬件复杂度和在满足各自的需求方面都达到最优。最终实现功耗和面积达到现有条件下的极致优化,远远小于2K LDPC的2倍。
现在和未来的SSD主控芯片厂商必须要有纠错算法的自研能力才能在主控设计中游刃有余。
英韧科技的LDPC纠错码核心完全自主可控,其纠错技术优势主要体现在两方面的研发、设计能力。一方面是研发设计LDPC纠错码。如何设计以及构造性能优异的LDPC校验矩阵是至关重要的一步,这是因为LDPC校验矩阵的设计构造往往决定了LDPC纠错码的纠错性能和编解码算法的实现复杂度,如果校验矩阵设计考虑不周到或设计不好,仅仅靠解码算法很难将错误平层(Error Floor)降低到不影响系统性能的水平,而且会增加LDPC编解码算法的实现复杂度,带来芯片功耗的增加和成本的上升以及系统性能的下降。
另一方面是解码算法,闪存颗粒随着读写次数增加,错误率会逐渐上升。英韧科技的解码算法可以自适应调整解码算法的流程,在最低功耗、最低延时的情况下做到解码成功。
基于以上两方面的技术优势,英韧主控的纠错于设计之初就从底层原理出发,对矩阵构造和编解码算法都有许多精妙的优化,实现了很多突破。最终纠错能力极强,发生纠错失败从而触发重读的概率很小,同时纠错算法消耗的数据读取延迟短、功耗低。比如从主机发读命令到读取数据,主控的时延只需要10微秒!
目前市场上有多家闪存厂商,每家也有很多型号的闪存芯片,每年也推出最新的产品,这就对ECC纠错提出了一个更高难度的任务:能否支持各种各样闪存芯片和未来可能出现的新闪存芯片?如果对闪存芯片支持不好,就将给客户在选择采购闪存芯片时造成了很多限制。
英韧主控的ECC引擎做成了指令集的形式,可以通过软件程序动态配置,更通用化,能够灵活适配各种闪存颗粒。同样的NAND在不同生命周期的时候,还可以使用不同的LDPC纠错码。比如可以根据寿命改变码长,早期放少一些,后期放多一些。这样使得SSD系统在牺牲少许容量的情况下延长使用寿命。这种能力为更高效的使用SSD系统提供了一个可能,让接近使用寿命的SSD系统继续发挥余热,为使用SSD系统的客户提供了一种新的降低成本避免资源浪费的解决方案。
英韧科技一直在持续不断的对LDPC纠错码进行研究,对现有的SSD控制器中的LDPC编解码模块,设计了用于未来升级的接口协议。当一个新的性能更好的LDPC码产生出来,可以通过该升级接口协议对现有的SSD控制器的LDPC编解码模块进行升级,使得用户能够及时享受到英韧的最新研究成果,延长客户产品的使用周期和寿命。
每一个ECC引擎都相当于一个小CPU,几个ECC引擎就相当于多核并行处理器系统。ECC引擎的扩展性非常重要,因为SSD主控的性能不断提升,要求每个ECC核心的性能很强,同时支持多核扩展。英韧ECC单核纠错速度可以到32Gbps。即使是PCIe Gen 5的主控,也只需要增加ECC核心,而不用太大改动,芯片研发速度因此可以大大加快。
但是ECC引擎多了之后,功耗也会随之升高。以英韧科技的PCIe Gen4主控Rainier为例,主要通过以下几种方式,实现目前市场上PCIe主控芯片的最强性能和最低功耗:
1. 采用先进的12nm工艺,相较于市场上采用28nm工艺的PCIe Gen4的SSD主控,良好控制温度,提高用户体验;
2. 在不工作的时候降低或者关闭时钟频率;
3. LDPC会有大量的片内存储器访问,导致功耗高。英韧主控的内部数据搬移非常少,大幅降低功耗;
4. LLR Table的选择也是做了很多优化,不刻意追求高精度。
截屏,微信识别二维码
微信号:dgdjly
(点击QQ号复制,添加好友)