TLC闪存颗粒为什么不好?

在上一期易问易答里,有网友提到了TLC这件事。“TLC真的不好吗?” 我相信这位网友所问的问题和最近苹果iPhone有关。苹果在目前的64GB/128GB iPhone 6/6 Plus机型中使用了SK Hynix,Toshiba和SanDisk的TLC闪存芯片,而这被认定为iPhone 6频繁闪退,重启死机的主因(官方还未承认)。

那么什么是TLC呢?

TLC是一种闪存颗粒的存储单元,它的英文是TLC = Trinary-Level Cell,即3bit/cell。在TLC发明之前,固态硬盘大部分采用SLC和MLC,即Single-Level Cell单层单元和Multi-Level Cell多层单元。早在去年三星840evo固态硬盘就采用了TLC芯片,后来被发现存在老数据读取速度下降的问题,三星坚称,问题源于闪存管理算法失误,并不是TLC闪存颗粒的毛病。

目前来说,大部分的固态硬盘采用MLC颗粒,极少高端的产品采用SLC颗粒,因为价格的问题部分入门级固态硬盘采用了TLC颗粒。从成本采购上来看,TLC的价格相对于MLC来说要便宜不少,更别提是SLC。

为什么TLC不好呢?

在小编之前的测试中,尤其是固态硬盘的读写速度上,采用TLC芯片的三星840evo和采用MLC的金士顿在读取速度方面几乎都超过了180MB/s,从简单的速度测试上两者的性能并没有差。但其实工作原理决定着TLC有致命的硬伤。

寿命。

存取原理上SLC架构是0和1两个充电值,即每Cell只能存取1bit数据,有点儿类似于开关电路,虽然简单却非常稳定。MLC架构可以一次储存4个充电值(00, 01, 10, 11),因此拥有比较好的存储密度,TLC能一次性存储8个充点值(000, 001, 010, 011, 100, 101, 110, and 111),因此密度更高,当然成本更低。

寿命问题就是因为它的工作原理上:

当你要写入数据,需要在控制栅极施加电压,而源极和漏极的电压都为0V。电压形成一个电场,这样电子就可以通过二氧化硅这层绝缘体从N通道进入到浮点栅极。这个过程通常也被成为“隧穿”。想要删除存储单元,需要在P型半导体施加电压并且保持控制栅极的电压为0。电场形成后电子就可以通过二氧化硅层。这就是NAND闪存在重新写入新数据之前必须要删除原来数据的原因:你必须要先把原来的电子释放掉,然后才能重新进入电子。问题是二氧化硅绝缘层的厚度只有10纳米的厚度,它并不是永不磨损的金刚之躯。在每一次的“隧穿”之后,它都会有磨损。当二氧化硅最终破损后,原子键破裂。

SLC能够容忍更多的电压状态的变化,因为它本身只有两种电压状态。但是在TLC闪存中,存储单元中有八种电压状态,这样硬盘的容错能力就十分有限了。这正是问题所在,SLC闪存拥有更大的电压空间,因此它能够容忍跟高的电压峰值变化,直到整个Block因为擦除数据过慢而停止工作。这就是SLC闪存拥有更高擦写次数的原因。用户可以删除或者写入数据的次数要更长。而TLC的电压容忍率最低,因此TLC闪存的擦写次数自然最低。所以目前大多数的TLC的写入次数只有1000次左右。耐用性(寿命)正是TLC的致命软肋。

当然寿命可以通过控制芯片校验和智能磨损平衡技术算法,使得每个存储单元的写入次数可以平均分摊,但对于TLC而言这还不足够好。依旧再用840evo举例,国外有达人做个一个耐用性测试,编程/擦写循环(P/E)次数大概是1064次,也就是说250GB的终生数据写入量也就在270TB左右。

三星840系列使用的是自家的21nm制程ToggleDDR2.0TLC闪存颗粒

128GB iPhone 6 就算你用三年,你能写入数据达到130TB吗?这或许就是胆大的苹果敢使用TLC的主要原因。不过据说,苹果最近也在考虑更换TLC闪存的事情,当然一切还没有最终的消息。(文,陈晓峰)

有话要说