固态硬盘固件可靠性测试

固态硬盘固件可靠性测试


2023年11月27日发(作者:神舟官网服务与支持)

信息与电脑

2018年第5

China Computer&Communication

计算机工程应用技术

固态硬盘固件可靠性测试

崔 梅 刘晓强

(东华大学,上海 201620)

摘 要:

SSD(Solid Stated Drivers)即固态硬盘,自从1989年世界第一款固态硬盘产品走向市场,固态硬盘经

历了从特殊市场如医疗、军用市场到一般民用市场的普及。2006年,三星率先发布第一款容量为32GB的固态笔记本电脑,

开启了固态硬盘商用的新时代。与传统硬盘相比,固态硬盘因为读写速度快、能耗低、工作温度范围大、体积小、防震

抗摔性能好,受到了大众的普遍喜爱。从出现到现在,取代HDD(Hard Disks)已成必然的趋势。笔者主要介绍如何进

行固态硬盘固件的可靠性测试。

关键词:

固态硬盘;Wear Leveling;异常掉电

中图分类

号:TP333.35 文献标识码:A 文章编号:1003-9767(2018)05-021-03

Solid State Drive Firmware Reliability Test

Cui Mei, Liu Xiaoqiang

Abstract:

SSD (Solid Stated Drivers) is solid state hard disk. Since the world's first solid state hard disk product went to the

(Donghua University, Shanghai 201620, China)

market in 1989, SSSD has gone through the popularization from special market, such as medical, military market to general civilian

market. In 2006, Samsung took the lead in issuing the first 32GB capacity solid state notebook computer, opening a new era of solid

fast read and write speed, low energy consumption, large working temperature range, small volume, and shockproof and anti falling

state hard disk business. Compared with the traditional hard disk, solid state hard disk is widely loved by the public because of its

mainly introduces how to test the reliability of solid state hard disk firmware.

performance. From the emergence to the present, the replacement of the HDD (Hard Disks) has become an inevitable trend. The author

Key words:

solid state drive; Wear Leveling; abnormal power loss

1 固态硬盘的硬件构成及固件测试的必要性

有密不可分的关系。有过硬的硬件,但是固件设计不过关,

1.1

也不能保证成品的固态硬盘质量过硬,只有优良的硬件与可

固态硬盘的硬件构成

靠的固件,才能保证固态硬盘的质量。因此,固态硬盘的可

SSD存储介质主要有两种,一种是以闪存(Flash)作为

靠性测试显得尤为重要。

存储介质,另外一种是以动态随机存取存储器(DRAM)作

为存储介质。基于闪存的固态硬盘是固态硬盘的主要类别,

2 固件测试的现有测试软件分析

其硬件主要构成部分包括控制芯片、缓存芯片和用来存取数

多,

据的闪存芯片。而固件(Firmware)就是写入硬件中用来调

FIOIOzone等,FIO是测试IOPSInput/Output Operations

用硬件的“驱动程序”,通过固件,操作系统才能按照标准

Per Second)即每秒进行读写(I/O)操作次数非常好的测试

的设备驱动实现固态硬盘的运行动作(读写操作)。

工具,多用于数据库等,衡量随机访问的性能,一些测试机

1.2 固件测试的必要性

构也依据这个工具得出来的分数,对SSD性能进行评判。

IOzone是一个文件系统的Benchmark工具,可以测试不同的

一款固态硬盘的质量好坏除了与其硬件如控制芯片、缓

操作系统中文件系统的读写性能,其测试数据也会被用于比

存芯片和闪存芯片质量的好坏有直接关系,与固件的好坏也

较固态硬盘性能。

作者简介:

崔梅(1981-),女,上海人,在职研究生。研究方向:软件工程。

— 21 —

计算机工程应用技术

信息与电脑

China Computer&Communication

2018年第5

除了这些测试软件之外,还有其他一些测试工具,如

ID,判断是否是刚才设置成较小EC值的Block,如果是,

HDTuneMedusa等,依据不同的标准对SSD进行测试。

则动态Wear Leveling的算法起作用,反之,则失败。

3 固件可靠性测试需要着重测试的功能

2依据静态Wear Leveling的原理,设计测试用例如下。

将数据清空,写入一段数据,保持这段写入的数据不动,

3.1 Wear Leveling的原理和测试用例

写入其他的数据,而后设置数据块的闲置时间,使之接近闲

只利用测试软件测试SSD是完全不够的,还必须对固件

置时间,持续写入新的数据,使最终闲置时间超过设定值,

进行更多方面的测试,如Wear Leveling和异常掉电测试。

从而触发静态Wear Leveling。然后检测一开始写入数据的位

3.1.1 Wear Leveling的由来

置和EC值,如果发生变动,则静态Wear Leveling算法起效,

SSD是重要的存储硬件,闪存芯片的使用寿命有限,因

否则,则失败。

为其硬件特性,如果对相同的写入过的存储单元再次进行写

3.2 异常掉电的测试必要性和测试用例

入,必须先擦除才能进行,而闪存芯片的擦除是有固定次数

限制的,SLC一般是10 000次,MLC3 0005 000次,

3.2.1 异常掉电的测试必要性

而这几年兴起的TLC,则只有1 000次左右。一旦存储单元

另外需要进行的是SSD的掉电测试,掉电测试包括正常

的写入次数超过了极限值,就会导致该存储单元永久损坏(直

掉电和异常掉电。一般来说,正常掉电会存储一些重要数据,

观上看,就是用户可以用的Capacity减少了)。为了避免有

下次启动时,直接读取这些存储的数据,一般出现问题的几

的存储单元很快被写透,从而导致用户可用的Capacity减少,

率不大。相反的是异常掉电,在异常掉电的情况下,如果是

固件会用一种叫Wear Leveling的算法,来保证擦写次数在

个人用的固态硬盘,一般情况下,固态硬盘是没有电容保护

每个地方尽量平均。Wear Leveling算法的好坏,直接关系到

的,正在写入的数据会完全丢失,而商用的固态硬盘有电容

SSDEndurance,所以需要对它进行专门的测试,以保证

保护,但电容是有限的,如果写入的数据较多,也是来不及

SSD的使用寿命。

存储的,也会导致数据丢失。更糟糕的情况是,掉电时,因

3.1.2 Wear Leveling的原理

为一些关键数据没有来得及存储,当再次上电重启时,有可

Wear Leveling就是将擦除/写入循环平均地分配到SSD

能会导致固态硬盘不能正常启动,所以掉电测试是重中之重。

异常掉电导致的问题众多,主要是由缓存芯片决定的。

的所有存储单元中,这样就避免了对同一个存储单元持续不

缓存芯片(DRAM),主要在SSD工作时用以缓存用户数据

断地进行擦除/写入操作,从而有效延长了SSD的寿命。

Wear Leveling有两种,一种是静态Wear Leveling,还

和存放映射表(逻辑地址映射闪存物理地址),所以一旦掉

电,RAM的数据就会丢失。从固态硬盘上读取数据,在固

有一种是动态Wear Leveling

态硬盘上就会给出一个逻辑地址,通过逻辑地址和物理地址

针对Wear Leveling进行测试,就要了解它的测试原理。

的映射表,查找存储的物理位置,从而返回给用户最新的数

对动态Wear Leveling来说,它的测试原理就是选择写入数

据。同一个逻辑地址,对应的物理地址可能有很多,但是只

据的数据块,每次选择ECErase Count)比较小的数据块

有一个是最新的且有效的,返回给用户的,也应是最新的且

来进行写入操作。

有效的数据,这就要求写入时不能出现问题。因为这种映射

而静态Wear Leveling针对的是写入已很久没有变动过

表在固态硬盘运行时,为了提高速度,是存放在DRAM

的数据,即所谓的冷数据。经常写入的数据,其逻辑地址所

的,而且并不是每写入一笔就刷新DRAM更新到闪存中的,

对应的物理地址就是按照动态Wear Leveling算法选取的,

只有满足一定条件(不同的厂商设定的条件不同)才会写入。

即所谓的热数据。冷数据因为写入时间较久,没有进行重新

假如掉电时,新的数据还没有写入,那返回的就有可能是老

对写,可能其他逻辑地址已重复写入过成千上万次,但是它

数据。例如,在设置电脑密码时,由于异常掉电,新密码没

们从来没有移动过,导致这部分数据块利用率过低。为了避

有设置成功,下次开机时,用新设置的密码不能成功进入电

免出现这种情况,在数据块的管理中,定期检测数据块的闲

(有时可以用旧密码开机,有时新密码被Dummy数据代替,

置时间,一旦有数据块的闲置时间超过了上限,就会将EC

无法获知密码),导致电脑不能正常使用。

值较小的数据块搬到EC值较大的数据块上,将EC值较小

另外,因为闪存芯片的特性,写入数据的位置对掉电也

的数据块放入Free块中,从而均衡所有存储单元的擦写次数。

有不同的影响,一般来说,靠近一个数据块的末尾,数据掉

3.1.3 Wear Leveling的测试用例

电之后更易受影响。

1依据动态Wear Leveling的原理,设计测试用例如下。

3.2.2 异常掉电的测试用例

将所有数据块(Count)的EC读出,人为设置Free(空

针对以上问题,设计测试用例如下。

闲)数据块的EC值,将其分布按照count-1的数据块EC

1)在不同的写入模式(写透、不写透)与不同的数据

设置成较大的值,余下的一块Free Block设置成较小的EC

传输长度下异常掉电,机器重启之后,对写入数据进行回读,

值,然后对固态硬盘进行写入操作,读取最后写入的Block

(下转第25页)

— 22 —

信息与电脑

2018年第5

China Computer&Communication

计算机工程应用技术

限。平台大部分的管理功能都集成在客户端上,不同层次的使

育信息化可以在迎新信息化和招生信息化等方面进行新的

用者在登录时,需要到服务器端去验证大部分信息,系统平

规划。

台的安全漏洞得到了有效修复。根据不同的培养方式,系统

提供了相应的管理流程,并分别管理各个不同类型的研究生,

从而使得各种传统培养方式在系统中都能得到良好的应用

[5]

参考文献

信息管理平台系统的数据处理功能更加强大,系统具备

[1]崔靖,张明,梁雪垠,.从人才长远发展角度探索

基础数据的导入与导出功能、灵活便捷的查询及统计功能,

医学院校研究生培养问题[J].人力资源管理,2017(5):206-207.

可以在很大程度上减少手工录入次数,有效提高工作效率,

[2]季红芳.论国内外高校信息化发展的研究现状[J].

降低人为出错的概率,使数据在不同的部门之间更好共享。

子测试,2015(22):140-141.

[3]胡忠辉.我国研究生教育信息化发展状况[J].中国教

4 结 语

育网络,2015(Z1):75-76.

地方医学院校通过建立研究生信息管理平台,很大程度

[4]张帅.研究生系统管理平台的设计与实现[D].马鞍山:

上减少研究生教育管理者的工作量,也有助于研究生二级

安徽工业大学,2016.

科学管理模式推行,提高地方医学院校的研究生管理效率,

[5]作者不详.奥龙研究生综合信息管理系统助力高校

创新和规范培养模式。同时,研究生信息管理平台是研究生

[EB/OL].(2009-09-04)[2018-03-01].blog.

教育信息化建设的一个方面,未来地方医学院校的研究生教

/jning3366/.

(上接第22页)

异常掉电,测试back to back的异常掉电,如此重复,直到

期望写入数据无异常且坏的数据块的增加在预期范围之内。

满足测试需求。

2Fill数据到固态硬盘中,随机选取不同的数据量时

以上只是基本测试,要完全通过测试,必须进行压力测

异常掉电,重启之后,对写入数据进行回读,期望写入数据

试,即重复成百上千次的测试才能满足需求。

无异常且坏的数据块的增加在预期范围之内。

3)在数据写入出错时异常掉电,重启之后,对写入

4 结 语

数据进行回读,期望写入数据无异常且坏的数据块的增加在

如上测试用例,可以测试固态硬盘固件的可靠性。因为

预期范围之内。

固态硬盘的每个主要硬件都有自己的优点和缺陷,所以要想

4)在数据读取出错时异常掉电,重启之后,对写入

完全测试整个固件的可靠性,还需要依据各个硬件自身的优

数据进行回读,期望写入数据无异常,且坏的数据块的增加

缺点和固件的各种算法,设计更多的测试用例。如对闪存芯

在预期范围之内。

片来说,它是一种采用浮栅晶体管作为存储单元的介质,通

5)在数据擦除时异常掉电,重启之后,对应擦除的

过存储电子来存储数据,但是电子会随着时间移动,所以有

数据,期待要么返回老数据,要么已完全擦除,且坏的数据

时存储数据就会不准确,就需要固件来处理这种数据,纠正

块的增加在预期范围之内。

数据,以保证数据的可靠性。因此,需要设计足够多的测试

6)在数据写入过程中异常掉电,重启之后,马上又


发布者:admin,转转请注明出处:http://www.yc00.com/num/1701062026a1048708.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信