解析SSD读取冷数据掉速的原因及耐久性影响因素
最近某品牌SSD传出冷数据掉速的问题,准确的来说,这个爆出的问题是指非写冷数据(write-cold data)随着存储时间的推移而读取速度越来越低的问题。本文简单分析了"写冷数据"可能掉速的原因,这有助于理解闪存的错误发生方式以及如何采取对策。
闪存读取原理
为了能理解下文所述的闪存问题,先需要了解简化的闪存工作原理。
上图参考电压(即Va、Vb和Vc)是用来区分每一种状态的(MLC分为 11,01,00,10)。在每个闪存单元被写入之前,需要将闪存单元先进行擦除到ER状态。但问题是,不是每次写入都可以精确控制电压,由于这种误差以及制造过程中每一个NAND单元都不是一致,所以导致:编程到同一状态的阈值电压服从高斯分布,如上图所示。
当电压的误差足够大的时候,于是,读取错误产生了,如上图。
3D NAND常见的可靠性影响因素
制造误差
3D NAND闪存是由很多层堆叠,然而制造工艺无法精确控制每一层的单元阈值电压都一致,这导致了第一种误差。
上图显示了某制造商生产的3D NAND不同层高中的闪存单元的参考阈值电压的不同。这是由制造的工艺导致的误差。
写入初期后的保留损失
当闪存单元被写入后,随着时间的流逝,其电压会有改变(电荷泄露),这是最主要的影响闪存数据保留的原因。同平面2D闪存不同,3D NAND更容易受影响。
上图是实验室中平面NAND和3D NAND在写入10000次后测试写入后随时间推移(横轴)读取错误,3D NAND 随时间推移变化更大。
上图显示了3D NAND写入后随着时间的推移,其读取阈值电压(Va, Vb, Vc MLC)的变化。
数据保留干扰
这是指,一个闪存单元电压的丢失速度受到相邻闪存单元的电压的影响。这种影响在3D NAND尤其明显。
写入次数影响
随着写入次数增多,阈值电压也发生变化,最终导致读取错误。
上图显示了3D MLC的三个阈值电压Va, Vb, Vc随着写入次数增多导致的变化。
放大器电路的误差
闪存在读取的时候需要有sense amplifier,每个sense amplifer也会有细微不同最终导致读取错误。
温度和写入频繁程度影响
闪存的寿命受到写入时温度的影响,通常,写入温度越高,那么闪存寿命越长。如下图,当温度70度的时候,寿命远比0度时候长,而且近期的读取错误更低,但温度高影响长期后的读取错误率。不同写入频繁程度也有影响,通常情况下,每天的写入量不会超过1遍。
解决办法
如上文所介绍的,保留错误是闪存最主要的错误来源之一,在NAND中,保留错误是由写入的单元电荷泄漏引起的。解决办法有很多,主要核心就是重新写入。基于访问特性的算法已经提出很多年了,就是区分哪些数据经常写,哪些很少写。
展望“冷数据”固件修复
此次暴露的冷数据读取问题,有可能从固件得到修复,前提是NAND芯片本身制造没有太多的偏差,如上所述,制造的偏差会导致不同批次,也会导致芯片不同层高内的单元的漏电速度不同,读取阈值电压不同,如果差别很大,那么固件修复是麻烦事情。当然芯片不行固件能补,固件不行软件也能补:开发一个软件定期重写冷数据就可以了。
总结
闪存错误的最重要来源就是保留错误:电荷随时间泄露导致了读取阈值电压变化,产生差错;
3D闪存更容易受到保留错误的影响,由制造原因导致;
闪存芯片制造的偏差,也会导致闪存数据保留问题,这种问题用固件来修补可能并不容易;
各种解决办法已提出,主要是基于数据重写,策略可能不同。
风无过
校验提示文案
喵小开
校验提示文案
不能再剁了
校验提示文案
Sword_Dance
校验提示文案
luoke2000
校验提示文案
值友8718084228
校验提示文案
上海阿狼
校验提示文案
余风
校验提示文案
哈夫曼树
校验提示文案
哈夫曼树
校验提示文案
余风
校验提示文案
上海阿狼
校验提示文案
喵小开
校验提示文案
值友8718084228
校验提示文案
luoke2000
校验提示文案
风无过
校验提示文案
Sword_Dance
校验提示文案
不能再剁了
校验提示文案