首页
产品中心
新闻中心 加入得一 关于得一
首页 技术Blog Blog发布
工业级SSD的电源管理挑战与解决方案
发布时间:2023.12.14

由于NAND Flash性能良好、低功耗、抗震动等特性,基于NAND Flash的存储器件已经广泛应到生活中的方方面面,如笔记本电脑、手机、数码相机等。


在实际应用场景中,掉电是很常见的情况,如电脑电源不小心被踢掉了、用户为了节省时间拔插电源进行关机,此时存储器件可能处于各种的流程,比如写、读流程、垃圾回收流程等。如果固件没有正确处理,可能会导致数据被掉电永久破坏、数据产生一致性问题等等,这种错误会导致数据丢失,甚至系统崩溃。特别在企业级应用上,对数据完整性有着更高的要求。


从存储器件端看,掉电可能导致的异常大概有以下几种:


1 新增坏块

1.1 掉电干扰

NAND Flash在编程、擦除等过程中,如果遭遇电,会导致当前操作出错。特别在部分高制程的NAND Flash,在操作的过程中出现掉电,甚至会导致NAND Flash块间干扰和块内干扰,影响非操作块或者非操作页的数据出错。如果固件没有识别到这种异常,那么会造成静默数据损坏。


1.2 Shared Page干扰

在多阶存储技术的NAND Flash(比如MLC、TLC、QLC)上,共享同一条WL的page称为shared pages。以2D MLC为例,有两个page共享一条WL,分别称为lower page和upper page,编程MLC WL的时候,需要进行编程两次,首先编程lower page,然后编程其它WL的page,最后再编程对应的upper page。


如果在编程upper page的时候出现掉电,那么大概率导致对应的lower page出错。 如图所示,host连续发送多条指令进行写入,在写入page5的时候遭遇掉电,那么page1上的数据也会被损坏,但是中间page2 ~ page4的数据是没问题的。


图1 MLC编程掉电shared pages损坏


2 数据一致性问题

2.1 数据一致性

Host往存储器件写入userdata0 ~ userdata9数据后掉电了,在上电的时候,固件需要从快照点开始进行映射重建,如图2。

 

图2 上电重建映射示意图


如果存储器件上电后进行数据重建后,出现下图3的新旧数据混合的情况,绿色是掉电前host写入的新数据,红色是旧数据。这种数据一致性问题容易导致host应用端的异常。所以在上电重建映射的时候,如果发现中间有部分数据已经损坏,那么建议把往后写入的数据也恢复到旧数据,缺点是会丢失较多数据,如图4。


图3 上电重建映射的数据一致性问题


 

图4 上电重建映射的丢失出错后所有数据


存储器件数据一致性问题容易给host应用端带来不可以预知的异常,在固件设计的过程中需要避免这种情况出现。


3 数据重建过长

过去市场更多关注是固态存储设备的性能,而对于设备上盘枚举时间不太关心。当前不少应用场景为了提供更好的客户体验,对开机时间有着非常严格的要求,优化粒度按秒进行计算,所以固态存储器件的上电重建表格和异常处理的时间对改善客户体验有着重要的帮助。


当前大容量固态存储器件里面往往包括多片NAND Flash。固件需要维护从逻辑到物理的映射关系,在掉电的时候,部分映射关系可能会临时保存在内部RAM上,固件需要从上个快照点开始扫描NAND Flash对映射关系进行重建。


上电映射重建流程,和固件中的表格管理结构、快照策略等存在关系,部分固件机制可能会对多个NAND block和多个page逐个进行扫描,从而构建掉电前写入的数据结构,此流程需要耗费大量时间,用时甚至达到秒级别。


4 处理机制

针对设备掉电导致的种种问题,得一微结合对NAND Flash相关的特性的分析和客户体验的了解,在固件中增加多个处理模块:数据延迟更新、SMART RAID、动态快照点、低电压处理等。并且使用仿真平台和开发SSD host平台,可以提供有针对性且高效率的SSD测试环境。


得一微SSD有以下优势:

(1)有完善的固件、硬件设计流程;

(2)通过电压波动仿真实验和实际环境测试来保证SSD的数据可靠性;

(3)有专业的工程师、设备对掉电情况做分析验证;

(4)通过得一微专业测试过的SSD,可以在应对突然掉电情况时保证数据的一致性和完整性。

 


分享到:
下一篇:闪存的遗忘
得一微微信公众号
扫描二维码,关注得一微