一、引言
NAND Flash是SSD的存储基石,但其P/E擦写次数有限,且存储单元中的电荷会随时间流逝,这是其物理特性决定的“娇贵”之处。如何扬长避短,最大化NAND寿命并保障数据可靠性,正是SSD主控固件算法的核心任务之一。本文将探讨厂家为呵护NAND健康所采用的几种关键技术。
二 、合理的写入与擦除电压
NAND的写入和擦除操作,本质上是通过施加精确的电压来改变浮栅中电子的数量。电压过高可以带来稳定而高速的写入性能,但会加速氧化层老化,减少P/E寿命;而电压过低会带来更好的寿命,但误码率的提升与重复写入会影响数据保持力。
厂家会根据NAND颗粒的特性(如3D TLC/QLC),在固件中精密设定和动态调整各阶段的电压参数。例如,随着NAND老化,可能需要微调擦除电压以确保擦除干净,或调整读取参考电压以正确判别数据。这是一项在性能、寿命和可靠性之间的精细权衡。老旧的MLC受限于理论和工程经验的缺乏会使得他们的磨损相较于现代NAND更加严重。
三、WL磨损均衡
NAND的每个区块(Block)都有擦写次数上限。如果数据总是写入固定区域,这些区块会很快达到寿命终点,而其他区块可能还很新,导致整体寿命提前结束。磨损均衡技术的核心思想是“雨露均沾”。主控会记录每个Block的擦写次数,并智能地将新的写入数据导向擦写次数较少的Block以缓解cell/page/block的过度磨损,这就是磨损平衡算法Wear-Leveling。此外WL磨损平衡算法分为静态与动态两种大类。
动态磨损均衡 (Dynamic Wear Leveling):主要针对空闲块进行均衡,在写入新数据时,选择当前磨损最少的空闲块。
静态磨损均衡 (Static Wear Leveling):更进一步,会主动搬移那些长期未变动但占据在“热门”(低P/E计数)区块的“冷”数据到“冷门”(高P/E计数)区块,从而释放出更多低磨损区块供写入。
尽管磨损平衡算法有利于整体的可靠性与性能,但他同时会增加写放大,失败的磨损平衡算法还可能反过来降低SSD寿命。
四、Refresh数据烘培算法
NAND单元通过存储电荷来表示0或1。但这些电荷并非永久稳固,会因时间流逝、温度变化、读取干扰(Read Disturb)等因素逐渐泄漏,导致数据信号减弱,最终可能从1变成0,或反之(比特翻转)。WD的冷数据门之前闹得沸沸扬扬,其实就是就是一个单纯Refresh算法的策略积极性的问题,谈不上一个恶性故障,因为任何的SSD都可能出现这样的问题。
只要是NAND,随着时间推移加剧的电子流失,都会带来更高的误码率,而Refresh数据烘培算法像定期给“记忆”充电。主控会周期性地扫描NAND中的数据,当检测到某些区块数据可靠性达到ECC极限之前主动读取时,会主动将这些数据读取出来,然后重新写入到原位置或新的健康区块。这个过程有效地恢复了电荷水平,防止数据因自然衰减而丢失,显著增强了数据的长期保持力。而当失去Refresh算法时,主控则需要多次读取甚至调用ECC纠错,大量数据的错误、读取时间的上涨都导致了文件读取时速度的下跌与等待时间。不过Refresh同样会增加写放大,过于积极的算法将导致PE磨损增加,后台任务影响前台性能。
五 、小结
通过精准的电压控制、智能的磨损均衡和主动的数据烘培,存储厂家在NAND的物理限制之上,构建了第一道健康防线。这些技术协同工作,努力延缓NAND老化,确保其在整个生命周期内都能提供可靠的存储服务。
然而,NAND的健康管理远不止于此。在下篇中,我们将继续探讨ECC纠错、预防WAF写放大、SLC Cache、OP空间等更多关键技术,看厂家如何进一步挖掘NAND潜力,在提升SSD速度的同时兼具耐用性和可靠性。
图片注:作者:SSD Fans 出处:三生三世,闪存数据能保持多久?
