SSD固态硬盘的批量测试方法和系统与流程

文档序号:29702407发布日期:2022-04-16 14:51阅读:836来源:国知局
SSD固态硬盘的批量测试方法和系统与流程
ssd固态硬盘的批量测试方法和系统
技术领域
1.本发明涉及ssd固态硬盘技术领域,尤其涉及一种ssd固态硬盘的批量测试方法和系统。


背景技术:

2.ssd固态硬盘在大批量的生产过程中需要对硬盘做压力测试,其目的主要是如下几点:第一,挑选出无法满足质量要求的外围器件,比如,ddr颗粒、储能电容;第二,需要通过压力测试把nand flash中的一些存在品质不满足要求的block挑选出来,以保证产品在生命周期内保持平稳的性能。第三,ssd生产线上的时间宝贵,如何提高产能的效率是非常重要的。


技术实现要素:

3.为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供了一种ssd固态硬盘的批量测试方法和系统。
4.本发明提供了一种ssd固态硬盘的批量测试方法,包括:
5.s1、所述前端处理器获取测试参数,根据所述测试参数进行测试配置并通知后端处理器对本批次的ssd固态硬盘中的nand flash介质进行批量测试,将测试过程中产生的错误信息进行统计,并根据统计信息确定下一批次的nand flash介质的测试策略;
6.s2、在所述后端处理器进行批量测试时,所述前端处理器对所述ssd固态硬盘中的ddr颗粒和储能电容进行测试。
7.本发明还提供一种ssd固态硬盘的批量测试系统,包括:前端处理器和后端处理器,其中:
8.所述前端处理器用于:获取测试参数,根据所述测试参数进行测试配置并通知后端处理器;
9.所述后端处理器用于:在接收到所述前端处理器的通知后,对本批次的ssd固态硬盘中的nand flash介质进行批量测试,将测试过程中产生的错误信息进行统计,并根据统计信息确定下一批次的nand flash介质的测试策略;
10.所述前端处理器还用于:在所述后端处理器进行批量测试时,对所述ssd固态硬盘中的ddr颗粒和储能电容进行测试。
11.本实施例提供ssd固态硬盘的批量测试方法和系统,是通过前端处理器和后端处理器实现的,不需要连接主机做io操作,即实现了离线的批量生产压力测试。而且由于前端和后端分离,各司其职,在后端处理器进行nand flash介质测试的时候,前端处理器可以压力测试其他器件,大大提高了测试效率。而且,在测试过程中统计读写擦过程中出现的错误数据,选择性的在后续的某些loop的测试过程中做某个或某些测试操作,可以进一步提高后续的测试效率,因此可以保证质量需求的前提下,缩短批量生产的压力测试的时间,降低了批量生产工具的复杂度和提高了产品的可靠性。
附图说明
12.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
13.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
14.图1为本发明实施例中ssd固态硬盘的批量测试方法的流程示意图。
具体实施方式
15.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
16.本发明实施例提供一种ssd固态硬盘的批量测试方法,参见图1,该方法包括如下步骤s1~s2:
17.s1、所述前端处理器获取测试参数,根据所述测试参数进行测试配置并通知后端处理器对本批次的ssd固态硬盘中的nand flash介质进行批量测试,将测试过程中产生的错误信息进行统计,并根据统计信息确定下一批次的nand flash介质的测试策略;
18.s2、在所述后端处理器进行批量测试时,所述前端处理器对所述ssd固态硬盘中的ddr颗粒和储能电容进行测试。
19.在具体实施时,所述测试参数可以包括测试过程的循环次数、在每一个循环中需要执行的测试操作以及测试数据类型;所述在每一个循环中需要执行的测试操作是根据在上一批次的nand flash介质的测试中所确定的测试策略进行确定的。
20.实际场景中,前端处理器的系统启动后对系统进行初始化,此时也能使后端处理器启动。接下来,前端处理器就会从nor flash读取测试数据,nor flash是用来存储配置数据的介质。
21.在测试参数中,循环次数是提前配置好的,具体大小可以根据需要设置,例如设置为500,循环次数也可以称为loop数,一个循环即一个loop。在每一个循环中需要执行的测试操作可以有读操作、写操作、擦操作。不同的循环可能对应的测试操作是不同的,如果针对同一种nand flash介质,本批次是第一批次,即之前没有对这一种nand flash介质进行批量测试过,是一种新增的nand flash介质,在每一个循环中的测试操作包括读操作、写操作和擦操作。而如果本批次不是第一批次,之前对该种nand flash介质进行过批量测试,则在本批次测试时,可以不进行擦操作,至于是否进行读操作和写操作要看上一批次针对每一个循环所确定的测试策略。
22.也就是说,第一批次的所述nand flash介质的测试操作包括:执行写操作、读操作和擦操作;对于非第一批次的nand flash介质的测试操作是根据上一个批次的nand flash介质在测试时确定的测试策略所确定的。
23.可理解的是,在进行读操作之前,需要先进行写操作,因此需要针对一个循环设置的测试操作中包含读操作,则必须包含写操作,且写操作在读操作之前进行。
24.同样的,在s1中确定在一个循环中下一批次的nand flash介质的测试策略中可以包括:若进行读操作,则在读操作之前先进行写操作。而且,在一个循环中第一批次的所述nand flash介质的测试策略包括:执行写操作、读操作和擦操作;在一个循环中,对于非第一批次的nand flash介质的测试策略是上一个批次的nand flash介质在测试时确定的测试策略。
25.在测试参数中除了上述参数外,还可以包含测试温度,因为不同的温度会对nand flash介质造成不同的影响,在获取测试温度后,便于分析nand flash介质出错率较高时的影响因素。
26.可理解的是,在测试操作中,针对不同的组块或者组页等可以采用不同的测试数据类型即pattern类型,不同的测试数据类型具有不同的数据生成规则,因此可以根据不同的测试数据类型生成不同规律的测试数据。
27.在获取到上述测试参数后,可以将上述测试参数配置到控制测试参数的变量中,实现测试参数的配置,通知后端处理器可以开始进行测试。
28.在具体实施时,s1中所述前端处理器获取测试参数,根据所述测试参数进行测试配置并通知后端处理器对本批次的ssd固态硬盘中的nand flash介质进行批量测试,将测试过程中产生的错误信息进行统计,可以包括:根据所述循环次数循环执行测试过程,每一次循环的测试过程包括:对本批次的各个ssd固态硬盘中的nand flash介质进行测试处理,若所述测试参数中该循环对应的测试操作中包括写操作,则在该循环中对每一个ssd固态硬盘中的nand flash介质的测试过程包括如下步骤s11~s13。
29.也就是说,对本批次的所有sd固态硬盘中的nand flash介质执行上述循环次数的测试过程,在每一次循环中需要对所有sd固态硬盘中的nand flash介质进行测试,不同的循环对应的测试操作可能不同,如果一个循环对应的测试操作中包含写操作,则针对这个循环中对每一个ssd固态硬盘中的nand flash介质包括如下步骤:
30.s11、针对一个组块,所述前端处理器根据所述测试参数中对应的测试数据类型,生成对应的测试数据,将所述测试数据写入到ddr颗粒中,根据写操作的命令参数生成对应的写命令,并将所述写命令发送至所述后端处理器;
31.其中,所述nand flash介质中包含多个组块,一个组块中包含多个块。一个组块即一个raid group block,一个块即block。
32.这里以一个组块为单位进行写操作,首先针对一个组块生成对应的测试数据,将测试数据写入到ddr颗粒中,即写入到ddr颗粒中。准备好写入数据的命令参数,根据命令参数生成写命令,将写命令发送给后端处理器。
33.其中,命令参数可以包括需要写入的位置、写入的方式、写入数据block的类型、数据量的大小等。
34.s12、所述后端处理器在接收到所述写命令后,根据所述写命令中的命令参数,将所述ddr颗粒中的测试数据写入到该组块中,记录写入失败的块,并在写入完成后通知所述前端处理器;
35.可理解的是,后端处理器在接收到写命令时会对写命令进行解析,得到上述各个命令参数,进而根据这些命令参数进行写操作处理。如果在写操作时出现了写入失败的情况,需要进行出错处理,将出错的块标记为坏块,记录出错的次数以及发生出错的块的位置
等信息。当后端处理器在完成一次写入操作后,会通知前端处理器。
36.s13、所述前端处理器在接收到该组块的写入完成通知后,判断所述nand flash介质中所有的组块是否写入完成,若未完成,则返回到s11中针对下一个组块进行写操作,直到所述nand flash介质中的所有组块都写入完成,并统计所述nand flash介质的写失败次数,所述nand flash介质中包含多个组块,一个组块中包含多个块。
37.可理解的是,当前端处理器接收到后端处理器发送来的对一个组块写入完成的通知后,会判断是否完成在当前loop中对该ssd硬盘中的nand flash介质中的所有raid group block的写入操作。raid group block中包含不同的模式的区域(例如,slc、mlc、tlc、qlc),如果没有完成就继续进行下一个raid group block,流程与本次的写入操作相同,也就是说返回到s11中针对下一个组块进行写操作,直到所有的raid group block都做完一次写操作。
38.以上过程是写操作的过程,下面介绍读操作的过程。即,上述所述每一次循环的测试过程还可以包括:若所述测试参数中该循环对应的测试操作中包括读操作,则在该循环中对每一个ssd固态硬盘中的nand flash介质的测试过程还包括s14~s16。
39.即,若一个循环对应的测试操作中包含读操作,则在写入完成后可以执行如下步骤实现读操作:
40.s14、针对所述nand flash介质中每一个组块的每一个组页,所述前端处理器生成对应的读命令,并将所述读命令发送给所述后端处理器;
41.在进行读操作时,是以一个组页为单位进行的。可理解的是,nand flash介质中包含多个组块,即多个raid group block,而一个raid group block中包含多个组页,即多个raid group page。
42.在实际中,针对一个组页,在读操作时,前端处理器会将需要读的数据的大小、位置、数据类型、读取方式、需要存放的位置等参数生成读命令,然后将读命令发送给后端处理器。
43.s15、所述后端处理器根据所述读命令读取对应组页中的数据,将读取到的数据存储到所述ddr颗粒中;在读取时,记录出现读错误的位数,根据一个组页中出现读错误的位数,对一个组页进行读错误分类,读错误的分类包括出现读错误的位数在1~30之间的第一分类、在31~60的第二分类、大于60的第三分类以及出现unc的第四分类;在对一个组页读取完成后返回到s14中针对下一个组页进行读操作,直对一个组块中所有的组页读取完成,并通知所述前端处理器;
44.可理解的是,后端处理器在接收到读命令后,对读命令进行解析,得到相关的参数,进而根据这些参数进行读操作,即将对应组页中的数据读取并存储到ddr颗粒中。在进行读取时,会记录相关的错误信息,例如,在一个组页中出现了读错误的位数,然后根据位数对一次读错误进行分类,最后在读取结束后,可以得到各个分类下的错误次数。
45.其中,如果出现读错误的位数在1~30之间,则本次读错误会被分为第一分类,即在第一分类中增加了一个错误次数。如果出现读错误的位数在31~60之间,则将本次读错误分类到第二分类中,即第二分类中增加了一个错误次数。如果出现读错误的位数大于60,但仍未达到unc的程度,则本次错误会被分类到第三分类中,即在第三分类中增加了一个错误次数。如果出现读错误的位数多至出现了unc,则本次错误会被分类到第四分类中,即第
四分类中增加了一个错误次数。
46.其中,后端处理器在对一个组页进行读取操作时,具体会根据相关的参数读取一个sector(sector为一次读取的粒度)的数据到指定的ddr颗粒中,读取数据的同时根据组页的类型(即slc、mlc、tlc、qlc)把每个frame(frame是比sector粒度更小的单位,是记录错误位的单位)中error bit分类记录下来。
47.可理解的是,本步骤中,前端处理器将读命令发送给后端处理器,后端处理器将一个raid group page的数据读取完毕后通知前端处理器。前端处理器会在接收到一个组页完成读取的通知后,重新执行上述步骤,对下一个组页进行读取工作,直到一个组块中所有的组页都完成读取工作,进而进行下一步。
48.s16、所述前端处理器在接收到一个组块的读取完成通知后,判断所述nand flash介质中所有的组块是否读取完成,若未完成,则返回到s14中针对下一个组块进行读操作,直到所述nand flash介质中的所有组块都读取完成,统计所述nand flash介质在各个分类下的读错误次数。
49.即,当前端处理器在得知后端处理器已经完成一个组块的读取工作后,会判断nand flash介质中所有的组块是否读取完成,如果没有完成,则重新执行上述步骤对下一个组块进行读取,直到nand flash介质中所有的组块都完成读取工作。
50.可理解的是,在nand flash介质中所有的组块都完成读取工作后,会得到nand flash介质中所有的组块中所有的组页在上述四个分类下的错误次数,对每一个分类下的读错误次数进行统计,会得到一个nand flash介质在每一个分类下的读错误次数。
51.通过上述步骤,可以得到所有的ssd硬盘中的nand flash介质在各个分类下的读错误次数。
52.当然,在上述过程中,在对一个组页读取完成后,可以对在一个组页中读取的数据进行校验,例如,根据读取到的数据、测试数据类型和数据比较引擎完成一次数据的校验。其中,根据测试数据类型可以得知写入到对应组页中的测试数据,然后将写入到对应组页中的测试数据和从组页中读取到的测试数据进行比较,得到校验结果。
53.在具体实施时,如果一个循环对应的测试操作中包含擦操作,例如,针对第一批次的所述nand flash介质,在该循环中对每一个ssd固态硬盘中的nand flash介质的测试过程还包括:
54.所述前端处理器生成擦命令,并将所述擦命令发送给后端处理器;所述后端处理器根据所述擦命令对所述nand flash介质中所有的块进行擦操作,并将出现擦失败的块记为坏块,并采用新块替换所述坏块。
55.具体的,在进行擦操作时,前端处理器可以根据需要erase nand flash介质的位置、数据类型等参数配置为擦命令,然后将擦命令发送给后端处理器。前端处理器进行一次擦操作的粒度为一个raid group block。后端处理器在接收到一个擦命令后,会根据擦命令中的相关参数进行擦处理。如果在擦操作中出现了失败的情况,此时需要将对应的block标记为坏块,同时将新的block取出来替换出错的block,保持raid group block的完整性,累计记录出错的次数。完成了一个raid group block的erase处理后,则开始下一个raid group block,直到把所有的raid group block做完erase操作。在每次出现erase错误时,都进行替换,并且累计记录erase失败的次数。
56.至于ddr颗粒和储能电容的检测,在后端处理器在做读、写、擦的过程中,前端处理器处于空闲之中,此时可以对ddr颗粒和储能电容做压力检测,读取ddr颗粒中校验的错误数即ecc,以及检查电容放电是否满足要求。如果出现异常则将异常的相关数据保持到flash中,便于测试完成后进行分析。
57.在具体实施时,s1中所述根据统计信息确定下一批次的nand flash介质的测试策略,可以包括:
58.s17、根据在每一次循环中各个ssd固态硬盘中的nand flash介质各自对应的写失败次数,计算每一次循环对应的写失败平均次数;
59.例如,loop为100,ssd固态硬盘的个数为n,对第一个循环中各个ssd固态硬盘中的nand flash介质各自对应的写失败次数为:b1,b2,......bn,那么第一个loop对应的写失败平均次数为使用相同的计算方法计算出第二个loop到第100个loop各自对应的写失败平均次数p2,p3,......p
100

60.s18、根据预设的第一阈值,对所有循环各自对应的写失败平均次数进行二值化处理,得到n个第一值,n为所述循环次数,若一个循环对应的写失败平均次数小于或等于所述第一阈值,则该循环对应的第一值为0;若一个循环对应的写失败平均次数大于所述第一阈值,则该循环对应的第一值为1;
61.例如,第一阈值为p
thr
,第i个loop中对应的写失败平均次数进行二值化处理后得到:
[0062][0063]
其中,针对100个loop,可以得到100个p’i

[0064]
s19、选取预设尺寸的滑动窗口,如果一个滑动窗口满足第一条件,则在下一批次的nand flash介质的测试策略中包括:对该滑动窗口的预设尺寸的循环执行写操作;所述第一条件包括:该滑动窗口对应的预设尺寸的循环对应的第一值之和大于或等于第一预设数量。
[0065]
例如,滑动窗口的预设尺寸为5,第一预设数量为4,以连续的5个loop为窗口,如果其中有四个loop中出现了写错误,即p’i
+p’i+1
+p’i+2
+p’i+3
+p’i+4
≥4,则在下一个批次中连续5个loop都需要做写操作。
[0066]
以上过程是根据写操作进行的策略调整,下面是根据读操作进行的策略调整,即s1中所述根据统计信息确定下一批次的nand flash介质的测试策略,可以包括:
[0067]
s20、根据在每一次循环中各个ssd固态硬盘中的nand flash介质在各个分类下的错误次数,计算每一次循环在各个分类下的平均读错误次数;
[0068]
例如,针对每一个循环中各个ssd固态硬盘中的nand flash介质在第一分类下的错误次数,进行算数求和之后再求平均,可以得到每一个循环中各个ssd固态硬盘中的nand flash介质在第一分类下的平均读错误次数r1i。针对第二分类,同样的方式,可以得到每一个循环中各个ssd固态硬盘中的nand flash介质在第二分类下的平均读错误次数r2i。针对第三分类,同样的方式,可以得到每一个循环中各个ssd固态硬盘中的nand flash介质在第三分类下的平均读错误次数r3i。针对第四分类,同样的方式可以得到每一个循环中各个
ssd固态硬盘中的nand flash介质在第四分类下的平均读错误次数ui。
[0069]
s21、根据每一分类对应的第二阈值,对所有循环在该分类下的各个平均读错误次数进行二值化处理,得到所有循环在该分类下对应的n个第二值;若一个循环在该分类下的平均读错误次数小于或等于该分类对应的第二阈值,则该循环在该分类下对应的第二值为0;若一个循环在该分类下的平均读错误次数大于该分类对应的第二阈值,则该循环在该分类下对应的第二值为1;
[0070]
针对第一分类设置的第二阈值为re1
thr
,针对第一分类设置的第二阈值为re2
thr
,针对第一分类设置的第二阈值为re3
thr
,针对第四分类设置的第二阈值为u
thr

[0071]
针对第i个loop,将第一分类下的平均读错误次数进行二值化处理,得到第i个loop在第一分类下的一个第二值:
[0072][0073]
针对第i个loop,将第二分类下的平均读错误次数进行二值化处理,得到第i个loop在第二分类下的一个第二值:
[0074][0075]
针对第i个loop,将第三分类下的平均读错误次数进行二值化处理,得到第i个loop在第三分类下的一个第二值:
[0076][0077]
针对第i个loop,将第四分类下的平均读错误次数进行二值化处理,得到第i个loop在第四分类下的一个第二值:
[0078][0079]
s22、针对每一个循环在各个分类下的第二值,计算该循环对应的第三值,若每一个循环在第一分类、第二分类和第三分类下的第二值之和等于3,则该循环对应的第三值为1;否则该循环对应的第三值为0;
[0080]
针对第i个loop,将前三个分类下的第二值求和,根据和的大小,计算第i个loop对应的第三值:
[0081][0082]
其中,如果和等于3,则第三值为1,如果和不等于3,则第三值为0。
[0083]
s23、选取预设尺寸的滑动窗口,如果一个滑动窗口满足第二条件,则下一批次的nand flash介质的测试策略中包括:对该滑动窗口中预设尺寸的循环执行两遍读操作;所述第二条件包括:该滑动窗口对应的预设尺寸的循环对应的第三值之和大于或等于第一预设数量。
[0084]
例如,预设尺寸为5,第一预设数量为4,则针对一个滑动窗口,其中4个loop中出现
了读错误,即re'i+re'
i+1
+re'
i+2
+re'
i+3
+re'
i+4
≥4,则在下一批次测试时,对这5个loop进行两遍的读操作。
[0085]
在具体实施时,上述所述根据统计信息确定下一批次的nand flash介质的测试策略,还可以包括:
[0086]
如果一个滑动窗口满足第三条件,则下一批次的nand flash介质的测试策略中包括:对该滑动窗口中预设尺寸的循环执行一遍读操作;所述第三条件包括:该滑动窗口对应的预设尺寸的循环在第四分类下对应的第二值之和大于或等于第一预设数量。
[0087]
预设尺寸为5,第一预设数量为4,则针对一个滑动窗口,其中4个loop中出现了unc,即u'i+u'
i+1
+u'
i+2
+u'
i+3
+u'
i+4
≥4,则下一批次测试时,对这5个loop进行一遍的读操作。
[0088]
在具体实施时,针对擦操作也进行了错误记录工作,针对非第一批次的nand flash介质,可以不进行擦操作,但是由于擦操作所用时间非常短,如有必要也可以进行擦操作,具体可以参照写操作和读操作的测试策略的调整。
[0089]
例如,loop为100,ssd固态硬盘的个数为n,对第一个循环中各个ssd固态硬盘中的nand flash介质各自对应的擦失败次数为:a1,a2,a3......a
n-1
,an,那么第一个loop对应的擦失败平均次数为擦失败平均次数为使用相同的计算方法计算出第二个loop到第100个loop各自对应的写失败平均次数e2,e3,......e
100
。将对应的阈值设置为e
thr
,针对每一个loop对应的擦失败平均次数进行二值化处理:
[0090][0091]
预设尺寸为5,第一预设数量为4,则针对一个滑动窗口,其中4个loop中出现了擦错误,即e’i
+e’i+1
+e’i+2
+e’i+3
+e’i+4
≥4,则下一批次测试时,对这5个loop进行擦操作。
[0092]
在实际场景中,ssd固态硬盘在批量的生产过程中需要保证产品的质量,需要将固态硬盘上有潜在问题的外设如电容、ddr颗粒、nand flash介质的坏block筛选出来。一般情况下,在批量生产过程中会使用pcie接口或者sata接口对ssd固态硬盘做读写压力测试,统计在测试过程中出现的异常,测试后对故障的板卡做维修处理。如果对整盘完整的读写操作,每张卡受限于主机的带宽和稳定性,耗时非常长,测试机台成本高。
[0093]
基于这一现有状况,本发明实施例采用离线的方式,即在参数配置后,主控可以产生预设的pattern类型,以便于在测试时用于对ddr颗粒和nand flash介质进行压力测试,之后不再需要主控的操作。其次,前端和后端分离,前端处理器主要负责创建测试数据、检查ddr颗粒、检查储能电容。后端处理器主要负责对nand flash介质进行读写擦操作,并且分别统计qlc、tlc、mlc、slc区域每一个loop出现擦错误、写错误、unc错误、读错误的分布情况等。最后统计错误信息,用于对下一批次ssd硬盘中对nand flash介质的测试策略进行调整。在一些阶段实施擦操作,一些阶段执行擦操作和写操作,一些阶段执行擦、写和读操作。
[0094]
可理解的是,本发明实施例在批量生产的压力测试中搜集测试的相关数据,然后修改下一批次的测试策略,达到节省测试时间和提高量产产能的需求。在每一批次测试过程中都会统计错误信息,以便于对测试策略不断的进行调整,逐渐接近最佳的测试策略。
[0095]
其中,nand flash介质:是一种通过在氮化硅的内部补集点捕获电子或空穴来存
储信息的设备。在这种设备中,工作区和栅极间会留有通道供电流通过硅晶片表面,而根据浮置栅极中存储的电荷类型,便可进行存储编程(“1”)和擦除(“0”)信息的操作。同时,在一个单元内存储1个比特的操作被称为单层单元(slc)。氮化硅内部捕获的电子数量与单元晶体管的阈值电压成正比,因此,当俘获大量电子时,即实现了高阈值电压;捕获少量电子会造成低阈值电压。
[0096]
其中,固态硬盘(solid state disk或solid state drive,简称ssd),又称固态驱动器,是用固态电子存储芯片阵列制成的硬盘。
[0097]
其中,量产:是指企业(或车间)在一定时期内,一次出产的、在质量、结构和制造方法上完全相同产品(或零部件)的批量生产,这里指的是ssd产品的批量生产。
[0098]
其中,坏块:在nand flash中出现某些flash区域不能进行擦写操作的块,我们称这样的一个单位区域为一个坏块。而由于nand flash中的读和写操作是以page为单位,擦除是以block为单位,且写操作之前必须要先进行擦除操作,因此,一个最小的可操作单位即为一个block,整个block中产生任何不可修复的位错误,我们就认为这个块是坏块。
[0099]
其中,ddr颗粒即内存颗粒。
[0100]
其中,page retired:指的是nand flash内部的block中的page出现的读或者写的异常,此时需要把对应的page标记为retired。
[0101]
其中,unc:指的是在读取nand flash的page上的数据的时候,出现的翻转的bit的数量超出了一定的范围,进一步导致纠错的引擎无法恢复正确的数据。
[0102]
可理解的是,由于本发明是通过前端处理器和后端处理器实现的,不需要连接主机做io操作,即实现了离线的批量生产压力测试。而且由于前端和后端分离,各司其职,在后端处理器进行nand flash介质测试的时候,前端处理器可以压力测试其他器件,大大提高了测试效率。
[0103]
可理解的是,在测试过程中统计读写擦过程中出现的错误数据,选择性的在后续的某些loop的测试过程中做某个或某些测试操作,可以进一步提高后续的测试效率,因此可以保证质量需求的前提下,缩短批量生产的压力测试的时间,降低了批量生产工具的复杂度和提高了产品的可靠性。
[0104]
以8t ssd硬盘的测试数据为例,在现有技术中,100个loop的完整测试需要将近180个小时(每个loop的读写擦需要100分钟以上,读和写的时间各占用一般,擦时间忽略),而如果采用本发明实施例提供的方法,写的时间可以减少为40%左右,读的时间可以减少为30%左右,最终的测试时间缩短为原来的35%左右。
[0105]
本发明实施例还提供一种ssd固态硬盘的批量测试系统,包括:前端处理器和后端处理器,其中:
[0106]
所述前端处理器用于:获取测试参数,根据所述测试参数进行测试配置并通知后端处理器;
[0107]
所述后端处理器用于:在接收到所述前端处理器的通知后,对本批次的ssd固态硬盘中的nand flash介质进行批量测试,将测试过程中产生的错误信息进行统计,并根据统计信息确定下一批次的nand flash介质的测试策略;
[0108]
所述前端处理器还用于:在所述后端处理器进行批量测试时,对所述ssd固态硬盘中的ddr颗粒和储能电容进行测试。
[0109]
可理解的是,本发明实施例提供的系统,其有关内容的解释、举例、有益效果、具体实施方式等内容可以参见上述方法中的相关内容,此处不再赘述。
[0110]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0111]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0112]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ron/ran、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0113]
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1