依公知及经验整理,原创保护,禁止转载。专栏 《深入理解Flash:闪存特性与实践》
图1: Data Retention 对 Vt 电压分布影响
图片来源: 知乎 [2]
全文 1900 字, 内容摘要
Data Retention 产生
Data Retention 的影响因素
如何规避 Data Rention 问题
发生Data Retention 后怎么办?
Data Retention 产生
闪存长时间断电不用,里面的数据会丢失,这是真的吗?
要解开这个谜底,就要会会 NAND Flash 的“数据保持力(Data Retention)”问题了。
SSD 或是 存储卡,都是“非易失性存储器”。请留意,只是不易丢失, 并非数据绝对不会丢失。
存储在闪存中的数据往往会随着时间的推移而损坏, 闪存单元在长时间不进行读写操作的情况下,浮栅门级中存放的电荷会逐步漏电,导致原本存储的数据发生变化,如数据 “0” 可能变为 “1”, 发生错误。
图2 Data Leakage (漏电)
当错误 Bit 数目超过纠错能力数时, 就变成不可纠正的错误, 这样数据就丢失了。 从写入数据,到出现不可纠正错误是一个缓慢的过程, 这个称之为 Data Rention 时间。如果超过了这个时间,出现不可纠正错误, 就会出现 Date Rention 失效。
Data Retention 对 Vt 电压分布影响
Data Retention 会导致 Vt Distribution(电压分布) 向左偏移。如图1
Data Retention 的影响因素
温度影响
数据写入时的工作温度和断电时的存放温度,是影响“数据保持力”的重要因素。其行业标准(JEDEC)如下:
- 消费级SSD应满足40℃写入,30℃断电存放,数据至少保持1年;
- 企业级SSD应满足55℃写入,40℃断电存放,数据至少保持3个月。
温度升高,电子活性增强,存储在浮栅内的电荷泄露速度也会加快,并造成数据保持力的下降[1]。
根据JEDEC的标准,可以用高温环境加速条件下进行测试Nand Flash的Data Retention。
使用寿命影响
NAND Flash自身的 PE Cycle 磨损(使用寿命)情况,是影响数据保持力的另一个重要因素。
PE 就是指的 Program 和 Erase, 这两个操作也会导致氧化层收集电荷,这样会影响到cell的阈值电压,当电荷脱井时,阈值漂移,Bit发生反转。
如何规避 Data Rention 问题
扫描误码率, 搬移数据
对即将出错的数据重新写入,是延长SSD数据保持力的有效方法。
如国内Memblaze 的SSD会供电情况下,在后台扫描存储在NAND中的数据,当发现数据出错率接近LDPC硬解码的能力时,会对这部分数据进行搬移,将其写入新的地址并释放原来的存储空间,以延长SSD断电后的数据保持时间。
重要数据放在 pSLC 区域
对采用MLC、TLC乃至QLC的SSD,将Firmware固件、FTL映射表等重要元数据保存在具有更高可靠性的pSLC模式NAND区域当中,并进行备份,是提高元数据的保存时间,降低这些重要数据出错的有效方式。
数据无价,对暂时不用的闪存产品, 我们要妥善保存,并对重要数据做好备份, 比如备份到机械移动硬盘,是一个好的习惯。
每年把一些消费电子产品,充一两次电,开机放一会,让后台自动把不稳定的数据搬到闪存新的地址,也不失为一个好的办法。我有个旧的小米手机虽然被换代了,但我偶尔还是擦擦灰,充个电玩一玩。
发生Data Retention 后怎么办?
发生Data Retention, 如果错误的 Bit 不是很多, 就可以通过 ECC 纠正回来。如果错误的 Bit 很多, 超过了 ECC 纠错能力, 就会出现不可纠正的错误,数据丢失。
下雨不一定发生洪水, 如果下的雨量多了, 如400mm 就会出现洪水。
最近因为台风 “杜苏芮” 造成河北、北京,发生洪水灾难。
为什么发生洪水的地方不是沿海而是纵深的大陆?
因为水汽到北京失去动力速度,加之北京太行山阻挡水汽去路, 水汽变形成暴雨
当我们发现有数据错误时候, 要让这个闪存块恢复正常,需要将内容复制到另一个块后擦除该块。
参考
[1] 放着不用,数据会丢?浅谈SSD的数据保持力问题 - 知乎
[2] 文献摘录-NAND-Characterization-1 - 知乎
免责声明:
本文根据公开信息整理,旨在介绍更多的存储知识,所载文章仅为作者观点,不构成投资或商用建议。本文仅用于学习交流, 不允许商用。若有疑问或有侵权行为请联系作者处理。