固态硬盘掉电保护测试原理及要点
前言
固态硬盘由于必须使用FTL做逻辑地址和物理地址之间的转换,如果在SSD读、写、删除等正常工作的情况下出现异常掉电,有可能会导致mapping table的因为来不及更新而丢失,从而出现SSD无法被系统识别的故障。
同时,为了提升读写性能,通常使用SDRAM做缓存,如果在读写过程中遭遇异常掉电,SDRAM中的数据可能来不及写进Nand Flash导致数据丢失,或者更新的映射表来不及写进Nand Flash导致映射表丢失。
异常掉电导致的故障现象
SSD异常掉电通常会出现三种故障现象:
1、SSD无法重现被系统识别,需要重新构建映射表或者通过简单粗暴的方式重新量产方可使用;
2、多次掉电后,SSD出现大量的“新增坏块”;
出现新增坏块的背后机理是:当SSD对某些Block进行读取、写入或者擦除不成功时,会被标识为坏块,当然,这些块并非真正的坏块,仅仅是因为异常掉电导致的错误判断。
3、SDRAM中数据丢失;
常见掉电保护机制
每家对掉电保护的机制理解不同,面向的用户不同,保护机制也完全不同,一般会有下面两种做法:
1、保存SDRAM中所有数据
异常掉电后,SDRAM中所有数据必须完全写入Nand Flash,一般而言,SDRAM的容量设置为SSD裸容量的千分之一,对于小容量SSD来说,SDRAM中需要写入Nand Flash的数据比较少,通过超级电容或者钽电容可以实现数据继续写入。但是,如果SSD容量足够大的时候,例如:8TB,那么,SDRAM中需要写入Nand Flash的数据将会非常大,如果依然靠超级电容或者钽电容来做供电,必然会面临下面三个棘手的问题:
a、需要更多的钽电容颗粒来做防护,在实际的工程实践中,这是一项非常严峻的考验,工程师面对的是厚度、标准尺寸的限制,PCB的面积并不足够使用;
b、即使有足够的电容来做防护,当执行“重新启动”时,SSD将无法正常启动,必须先关机一段时间后才能重新启动,原因是:SSD需要将钽电容中所有电放完后才能被识别;
c、当使用几年后,钽电容或者超级电容出现老化后,当钽电容供电无法达到初始设计目标值时,用户仍然存在掉电后数据丢失或者SSD无法识别的潜在隐患,如果在初始设计时即做冗余电容,那么,将会回到问题“b”的死循环。
值得欣慰的是,b和c的问题都是可以完美解决的,解决这些棘手问题只是需要工程师足够的头脑和经验而已。
2、只保存SDRAM中的用户数据,而不保存映射表
这样的做法将会减少SDRAM的使用和钽电容的使用,“不保存映射表”并不意味着映射表的丢失,仅仅是不保存最后数据写入时更新的映射表,当SSD重新上电后,寻找上次映射表保存后写入的新数据,重新构建映射表,这样做法的弊端是机制设置不足够合理的话,重新构建映射表的时间会比较久,SSD需要一些时间才能正常进入正常状态。
对于无SDRAM设计的控制器来说,所有数据直接写入Nand Flash,当异常掉电时,没有写入Nand Flash的数据会被返回主机写入不成功,没有额外数据需要保存,因此,对于真正高可靠要求的应用而言,无SDRAM设计才是王道,其代表是德国某老牌工业品牌主控,其唯一的弊端就是性能不足够良好,实际上,很多应用场景并是需要最高的性能,而是“够用”的性能。
测试方法和原理
具体测试时,SSD需要作为系统盘以及作为从盘两种情形进行测试,做主盘和做从盘的测试方法唯一区别是,做主盘需要对测试电脑整机进行通断电,而做从盘仅仅对SSD进行通断电即可。
a、对SSD分别作为空盘时、写入数据25%时、写入数据50%时、写入数据85%以及写入数据100%时分别进行3000次的异常掉电测试,每次掉电和通电时间间隔为3秒;
对盘写入不同容量数据进行测试的原理是:当SSD写入一定数据量后,后台开始进行垃圾回收,垃圾回收就意味着数据的搬迁,数据搬迁就意味着映射表的更新,此时进行异常掉电通常会出现问题。
b、当正常写入数据时,对SSD进行异常掉电
在windows下,写入数据文件系统需要执行如下八个动作:
所以,写入数据的过程也是映射表更新的过程,此时的掉电仍然会影响到映射表是否完整更新。
c、当删除数据时进行异常掉电
在windows下,删除数据同样需要执行八个动作,与建立文件道理相同,映射表同样需要更新。
d、当SSD读取文件是异常掉电,测试3000次,通断电时间间隔3秒;
e、当正常关机过程中异常掉电,测试3000次;
f、当正常启动操作系统时异常掉电,测试3000次;
对于工业级或者军工级别的SSD,需要在高低温的环境下进行上述的各项测试。
固态硬盘掉电保护测试原理及要点相关推荐
- 固态硬盘的工作原理,固态硬盘掉电也能存储数据的原理
固态硬盘主要由主控.缓存.闪存组成,数据通过接口进入主控,经主控中转调配后储存到各个闪存颗粒中.闪存的基本存储单元是"浮栅晶体管" 浮栅被二氧化硅包裹,和上下绝缘,即使在去除电压之 ...
- 【FLASH存储器系列十九】固态硬盘掉电后如何恢复掉电前状态?
掉电分两种,一种是正常掉电,另一种是异常掉电.不管是哪种原因导致的掉电,我们都希望,重新上电后,SSD都需要能从掉电中恢复过来,继续正常工作. 正常掉电恢复,这个好理解,主机通知SSD要下电了,让其做 ...
- flash写保护原理_STM32系统中的2种数据掉电保护方法!
在嵌入式设备开发中,往往需要保存一些掉电不易失性的数据,如果系统配置.用户定制信息等等,如果增加额外的ROM IC,比如(基于I2C的24C02等等)往往会造成额外的PCB空间增大,硬件成本增加,降低 ...
- SSD掉电保护也是一门艺术
你是否会遇到这样一种情况: 当你正在文思泉涌地敲打键盘赶稿件时,电脑突然抽风,然后,你就看到了绝望的蓝色(系统崩溃,电脑蓝屏了). 其实office软件有自动保存的功能,当电脑重启,再次打开WORD文 ...
- 单片机带掉电保护c语言,基于LM358的单片机掉电保护电路
描述 掉电保护简介 掉电数据保护是系统设备一个重要的功能. 目前,掉电数据保护的方法主要有2种: (1)加足够容量备用蓄电池,使系统掉电后继续工作: (2)不加备用电池,把掉电时需要保护的数据存储在非 ...
- 群联固态硬盘修复工具_固态硬盘掉速修复小教程,SATA和NVMe协议通用
不做云评测,只聊真体验,大家好,我是肉包爸爸. 近日,被我拿来做高速移动硬盘的一块海力士PC401 1T固态硬盘出现严重掉速,格式化后故障依旧. 由于硬盘盒接口为USB3.1 Gen2,所以理论速度被 ...
- esp8266 eeprom_ESP8266_08基于flash的数据掉电保护
这一节主要研究一下flash的用法,目的嘛,实现数据的掉电保护. 听起来像EEPROM? 确实很像,但不是!以STM32为例,片上是没有EEPROM的.但是,可以把一部分ROM当做EEPROM,通过程 ...
- iar编译工程的map怎么看使用flash大小_ESP8266_08基于flash的数据掉电保护
这一节主要研究一下flash的用法,目的嘛,实现数据的掉电保护. 听起来像EEPROM? 确实很像,但不是!以STM32为例,片上是没有EEPROM的.但是,可以把一部分ROM当做EEPROM,通过程 ...
- 铠侠 RC10 固态硬盘寿命暴力写入测试:1100pe 毫发无损
来源:bilibili@xiang201204 先看结论: 东芝 BICS4 TLC 颗粒的寿命实际上大于 1100pe.当然,B站用户小飞机测出来它的极限寿命是 3000pe. CDInfo 上的健 ...
最新文章
- 简明Linux命令行笔记:df
- php header x-auth-token,使用Angular 2正确设置Header X-Auth-Token
- Spring MVC中Session的正确用法之我见02
- 2-Qt6命令行控制台项目
- 分区表需要数据备份吗oracle,Oracle 分区表数据的导入与导出(1)
- Linux: I/O多路转接之poll(有图有代码有真相!!!)
- 五.激光SLAM框架学习之A-LOAM框架---项目工程代码介绍---3.laserOdometry.cpp--前端雷达里程计和位姿粗估计
- 在Windows平台下实现《简明 Python 教程》第十章案例(利用winrar实现压缩备份)...
- linux系统mysql创建表,Linux系统下手动新建数据库
- 《Programming in Lua 3》读书笔记(五)
- placeholder字体大小以及颜色的修改
- 基于Opencv的手写字识别
- 一个小工具帮你搞定实时监控Nginx服务器
- 轻量级前端MVVM框架avalon - 初步接触
- js obj对象转formdata格式代码
- Visio安装失败问题解决
- 贾俊平统计学思维导图- 第十一、十二章 相关分析和回归分析
- 读《京东咚咚架构演进》有感
- Freebase调研(持续更新中)
- 基于Levy飞行和FDB的郊狼优化算法(matlab代码实现)