除了闪存颗粒之外,主控芯片在固态硬盘当中的地位也非常重要。主控不仅仅控制闪存的读写,更需要提供ECC纠错服务。

拒绝忽悠:TLC闪存的几百次擦写寿命是如何变为3000次的?

固态硬盘离不开纠错算法,是因为他使用的NAND闪存从一开始就面临着更容易出现的数据翻转等错误,必须要有纠错机制对其进行探测和纠正。这个过程是固态硬盘的主控内自动进行的,通常用户不会感知到他的存在。下图东芝TR200固态硬盘当中的TC58NC1010GSB主控,支持LDPC纠错。

拒绝忽悠:TLC闪存的几百次擦写寿命是如何变为3000次的?

何为纠错?

或许很多朋友还不清楚ECC纠错是怎么一回事,以及为什么纠错变得如此重要。下图为ECC信息存储示意图:每个闪存扇区中都为存储额外纠错信息而预留了部分Spare空间。

拒绝忽悠:TLC闪存的几百次擦写寿命是如何变为3000次的?

NAND闪存在1987年由东芝发明,它比稍早出现的NOR闪存具备更大的存储空间和更低的单位容量成本,不过同时也有更高的出错率。这使得它必须搭配一定的纠错引擎,来去除随机出现的"比特翻转"现象,简单来说就是保障数据不出错。

TLC化腐朽为神奇:从500次到3000次

TLC在被用于固态硬盘之前,并不被人们所看好:写入寿命仅有几百次,随着制程微缩还可能进一步降低。

拒绝忽悠:TLC闪存的几百次擦写寿命是如何变为3000次的?

不过好在闪存的发展伴随着纠错技术的进步。虽然纠错算法变得日益复杂,但纠错效果也在以日新月异的速度成长,高品质的原厂TLC闪存甚至能做到和过去的MLC一样耐用。

拒绝忽悠:TLC闪存的几百次擦写寿命是如何变为3000次的?

纠错的发展以及LDPC的优势:

固态硬盘使用的纠错码主要有BCH和LDPC两种,后者出现虽然较晚但却已成为当代3D闪存的标配搭档。不过LDPC虽强,效果还是跟固件的编制水平有关,尤其是LDPC中的软解码纠错。

拒绝忽悠:TLC闪存的几百次擦写寿命是如何变为3000次的?

BCH与LDPC硬解码纠错用预定的阈值电压去探测闪存单元中的数据内容,得到的结果非1即0。在初次纠错失败的情况下,BCH可以通过多次Read Retry重读尝试恢复正确的信息;LDPC硬解码可以借助LLR对数似然比来推测数据更大可能是1还是0。

拒绝忽悠:TLC闪存的几百次擦写寿命是如何变为3000次的?

BCH祭出Read Retry之后如果依然读取失败就意味着发生不可纠正的读取错误:用户数据丢失。而LDPC此时还可以再祭出大招:软解码纠错。软解码纠错需要纠错引擎对闪存特性非常了解(不同闪存型号、不同擦写次数、不同读取干扰程度,甚至是不同温度都可能有各自的优化解码方案),采用多种读取电压进行尝试,综合LLR信息计算出可能性结果。

拒绝忽悠:TLC闪存的几百次擦写寿命是如何变为3000次的?

恰恰是LDPC软解码这种根据经验进行"猜测"的能力,让它具备了比BCH更强的纠错效果。当然经验不是凭空而来,而是需要对闪存脾性具有足够多的了解,在这方面闪存原厂具备很强的话语权。这也是小编推荐大家选择东芝等原厂固态硬盘的一个原因:不光闪存品质更好,纠错处理也给力,稳定性和寿命自然好。

拒绝忽悠:TLC闪存的几百次擦写寿命是如何变为3000次的?

除了纠错能力高下之外,纠错延迟开销也是一个重要指标。毕竟反复读取和尝试解码是需要更多时间作为代价的。在综合各方面因素之后,LDPC硬解码打头阵,失败后再由LDPC软解码上阵放大招的模式表现更好。

拒绝忽悠:TLC闪存的几百次擦写寿命是如何变为3000次的?

写在最后:LDPC纠错虽强,但闪存体质也不容忽视。垃圾闪存颗粒配LDPC,过多的软解码上阵虽然能在短时间内撑下来不丢数据,但会令读取延迟增大,直观表现就是效能下滑严重。说不定有些山寨SSD可能会卡而不死,让用户头疼不已。

相关文章