NAND测试方法、装置、可读存储介质及电子设备与流程

文档序号:25043570发布日期:2021-05-14 11:29阅读:892来源:国知局
NAND测试方法、装置、可读存储介质及电子设备与流程
nand测试方法、装置、可读存储介质及电子设备
技术领域
1.本领域涉及存储器测试领域,特别涉及一种nand测试方法、装置、可读存储介质及电子设备。


背景技术:

2.运行数据测试(run data test,rdt)是用于下载固件(fireware)到固态硬盘(solid state drive,ssd)进行io(输入/输出、input/out)之前,对ssd上的每个block做擦写读的一种测试,能够提前筛选出坏块(bad block)或弱块(weak block)。nand(计算机闪存设备)中具有两种擦写命令,一种为常规的擦写命令:数据从nand内部的nand array(数组)到nand内部的cache register(高速缓存存储器),再从nand内部的cache register到主控端静态随机存取存储器(staticrandom

accessmemory,sram);另一种为copyback(内部拷贝)命令:将一个page内的数据拷贝到nand内部的cache register里面,然后再从cache register写到nand的另外一个page上,整个过程均是基于nand内部的操作,期间不需要主控干预,两种命令的区别如图1所示。因此,io过程中为了提高nand的性能,通常采用copyback的方式将数据从block a

page m上的数据搬移到block b

page n上。
3.而在使用copyback过程中,难免会遇到坏块,所以需要在rdt阶段将这部分坏块识别出来,标记成坏块,避免后续io过程使用。然而,在目前的rdt测试中,通常认为无论使用哪种擦写读方式,若出现坏块或弱块,都会出现测试异常的结果;但一些特殊的nand如:downgrade(质量等级差)的nand,在io过程中容易出现深度读取重试错误(deep read retry fail,ddr fail),部分也会出现copyback写入指令(copyback program fail),而常规的擦写读中并不会出现问题。


技术实现要素:

4.本发明所要解决的技术问题是:提供一种nand测试方法、装置、可读存储介质及电子设备,在对nand进行rdt测试时能够提高故障覆盖率。
5.为了解决上述技术问题,本发明采用的一种技术方案为:
6.一种nand测试方法,包括步骤:
7.对待测试的nand中的数据块执行rdt测试,并筛选出其中的坏块;
8.对执行完rdt测试的数据块执行copyback操作,并筛选出其中的坏块;
9.对执行完copyback操作的数据块执行读操作,并筛选出其中的坏块。
10.为了解决上述技术问题,本发明采用的另一种技术方案为:
11.一种nand测试装置,包括:
12.rdt测试模块,用于对待测试的nand中的数据块执行rdt测试,并筛选出其中的坏块;
13.copyback操作模块,用于对执行完rdt测试的数据块执行copyback操作,并筛选出其中的坏块;
14.读操作模块,用于对执行完copyback操作的数据块执行读操作,并筛选出其中的坏块。
15.为了解决上述技术问题,本发明采用的另一种技术方案为:
16.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述nand测试方法中的各个步骤。
17.为了解决上述技术问题,本发明采用的另一种技术方案为:
18.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述nand测试方法中的各个步骤。
19.本发明的有益效果在于:通过在nand的rdt测试中增加copyback命令操作的测试模式,使nand中经过常规测试的数据块再以copyback命令操作的测试模式进行数据块的擦写读操作,从而能够将常规筛选无法识别的坏块和弱块识别出来,使得主控可以支持质量等级差的nand,在对nand进行rdt测试时能够提高故障覆盖率,提升ssd的稳定性。
附图说明
20.图1为nand内部两种数据读写入命令模式示意图;
21.图2为本发明实施例的一种nand测试方法的步骤流程图;
22.图3为本发明实施例的一种nand测试方法的另一步骤流程图;
23.图4为本发明实施例的一种nand测试方法的另一步骤流程图;
24.图5为本发明实施例的一种nand测试方法的另一步骤流程图;
25.图6为本发明实施例的一种nand测试方法的另一步骤流程图;
26.图7为本发明实施例的一种nand测试方法的另一步骤流程图;
27.图8为本发明实施例的一种nand测试装置的一种结构示意图;
28.图9为本发明实施例的一种电子设备的结构示意图。
具体实施方式
29.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
30.请参照图2,本发明实施例提供了一种nand的测试方法,包括步骤:
31.对待测试的nand中的数据块执行rdt测试,并筛选出其中的坏块;
32.对执行完rdt测试的数据块执行copyback操作,并筛选出其中的坏块;
33.对执行完copyback操作的数据块执行读操作,并筛选出其中的坏块。
34.从上述描述可知,本发明的有益效果在于:通过在nand的rdt测试中增加copyback命令操作的测试模式,使nand中经过常规测试的数据块再以copyback命令操作的测试模式进行数据块的擦写读操作,从而能够将常规筛选无法识别的坏块和弱块识别出来,使得主控可以支持质量等级差的nand,同时提升ssd的稳定性。
35.进一步的,所述对待测试的nand中的数据块执行rdt测试,并筛选出其中的坏块包括:
36.遍历所述待测试的nand中的数据块;
37.对于遍历到的第一目标数据块,对所述第一目标数据块进行擦写读,并判断所述
擦写读是否成功,若否,则将所述第一目标数据块添加至坏块表。
38.由上述描述可知,通过对待测试的nand数据块进行读写擦测试,并将擦写读失败的数据块添加至坏块表,避免后续再次将坏块数据进行测试,导致测试时间增加,进行不必要的测试浪费设备资源。
39.进一步的,所述对执行完rdt测试的数据块执行copyback操作,并筛选出其中的坏块包括:
40.从所述执行完rdt测试的数据块中确定第一数据块集合和第二数据块集合;
41.向所述第一数据块集合中写入测试数据;
42.遍历所述第二数据块集合中的第二数据块;
43.对于遍历到的第二目标数据块,将所述第一数据块集合中写入的所述测试数据通过copyback指令写到所述第二目标数据块;
44.判断所述第二目标数据块的数据写入是否成功,若否,将所述第二目标数据块添加到坏块表。
45.由上述描述可知,通过将执行完rdt测试的数据块分为第一数据块集合和第二数据块集合,并且以copyback指令将第一数据块集合中的测试数据写入第二目标数据块中,从而能够将常规测试无法筛选出的坏块筛选出来,提高故障覆盖率。
46.进一步的,设置所述第一数据块集合中的数据块的工作模式为第一模式;
47.设置所述第二数据块集合中的数据块的工作模式为第二模式;
48.所述第一数据块集合中包含预设数量的数据块;
49.所述预设数量根据所述第一模式和第二模式确定。
50.由上述描述可知,通过将第一数据块集合中的数据块的工作模式设置为第一模式,第二数据块集合中的数据块的工作模式设置为第二模式,从而模拟io过程中copyback的操作模式,使测试结果更加可靠。
51.进一步的,所述从所述执行完rdt测试的数据块中确定第一数据块集合包括:
52.从执行完rdt测试的数据块中选择一数据块进行擦写读,判断所述擦写读是否成功,若是,则将所述数据块添加到所述第一数据块集合,若否,将所述数据块添加到坏块表;
53.从执行完rdt测试的数据块中选择另一数据块并执行上述擦写读和判断操作直至所述第一数据块集合中的数据块个数达到所述预设数量。
54.由上述描述可知,通过从执行完rdt测试的数据块中选择数据块进行擦写读,并筛选出其中的坏块,保证了第一数据块集合中的数据块都为好块,避免后续进行copyback指令写入操作时由于第一数据块集合中的数据块为坏块而导致测试异常的情况发生,进一步提高测试的准确性和可靠性。
55.进一步的,对于遍历到的第二目标数据块,对所述第二目标数据块进行擦除操作,判断所述擦除操作是否成功,若否,将所述第二目标数据块添加到坏块表,若是,执行将所述第一数据块集合中写入的所述测试数据通过copyback指令写到所述第二目标数据块步骤。
56.由上述描述可知,通过对遍历到的第二目标数据块,依次进行擦除操作和copyback操作,模拟io过程中copyback的操作模式,将第一数据块集合中的测试数据通过copyback指令写到第二目标数据块中,并筛选出其中的坏块,从而筛选出常规测试无法筛
选出的坏块,使得主控可以支持质量等级差的nand,同时提升ssd的稳定性。
57.进一步的,所述对执行完copyback操作的数据块执行读操作,并筛选出其中的坏块包括:
58.遍历所述执行完copyback操作的数据块;
59.对于遍历到的第三目标数据块,对所述第三目标数据块执行读操作;
60.判断所述读操作是否成功,若否,将所述第三目标数据块添加到坏块表。
61.由上述描述可知,通过遍历所述执行完copyback操作的数据块,依次对每一第三目标数据块执行读操作,并筛选出其中的坏块,确保每一个好块都具有可读功能,保证测试的可靠性。
62.请参照图8,本发明另一实施例提供了一种nand的测试装置,包括:
63.rdt模块,用于对待测试的nand中的数据块执行rdt测试,并筛选出其中的坏块;
64.copyback操作模块,用于对执行完rdt测试的数据块执行copyback操作,并筛选出其中的坏块;
65.读操作模块,用于对执行完copyback操作的数据块执行读操作,并筛选出其中的坏块。
66.本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述nand测试方法中的各个步骤。
67.请参照图9,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述nand测试方法中的各个步骤。
68.本发明上述一种nand测试方法、装置、可读存储介质及电子设备能够适用于任何需要进行rdt测试的nand闪存设备,以下通过具体实施方式进行说明:
69.实施例一
70.请参照图2,一种nand测试方法,包括步骤:
71.s1、对待测试的nand中的数据块执行rdt测试,并筛选出其中的坏块;
72.具体的,遍历所述待测试的nand中的数据块;
73.对于遍历到的第一目标数据块,对所述第一目标数据块进行擦写读,并判断所述擦写读是否成功,若否,则将所述第一目标数据块添加至坏块表;
74.如图3所示,假设nand中的数据块总数为blockmax,设置blockidx初始值为0,从待测试的nand中选取一数据块;
75.对所述数据块进行擦写读,判断所述擦写读是否成功,若是,blockidx加1,判断blockidx是否小于blockmax,若是,执行从待测试的nand中选取一数据块的操作,若否,结束rdt测试;
76.若否,将所述数据块添加至坏块表,blockidx加1,判断blockidx是否小于blockmax,若是,执行从待测试的nand中选取一数据块的操作,若否,结束rdt测试;
77.其中,可以按照数据块的序号依次从待测试的nand中选取一数据块,也可以采用随机顺序从待测试的nand中选取一数据块;
78.s2、对执行完rdt测试的数据块执行copyback操作,并筛选出其中的坏块;
79.具体的,从所述执行完rdt测试的数据块中确定第一数据块集合和第二数据块集
合;其中,所述第一数据块集合为再次通过rdt测试挑选出的好块,所述第二数据块集合中的数据块是除了所述第一数据块集合内的数据块以及保存系统信息的数据块外的数据块;将第一数据块集合和第二数据块集合进行区分,避免后续测试误把好块当成坏块筛选出来;
80.向所述第一数据块集合中写入测试数据;遍历所述第二数据块集合中的第二数据块;对于遍历到的第二目标数据块,将所述第一数据块集合中写入的所述测试数据通过copyback指令写到所述第二目标数据块,判断所述第二目标数据块的数据写入是否成功,若否,将所述第二目标数据块添加到坏块表;
81.具体的,从每一待测试的第二数据块的开始,将第一个数据块上的数据通过copyback read操作传输到nand内部的cache register;再通过copyback program操作将cache register上的数据写到待测试的第二数据块上,如果copyback program操作失败,则将该第二数据块加到坏块表;完成操作后,进行下一个第二数据copyback操作,直至每一个第二数据块都完成copyback操作;
82.s3、对执行完copyback操作的数据块执行读操作,并筛选出其中的坏块;
83.具体的,遍历所述执行完copyback操作的数据块;对于遍历到的第三目标数据块,对所述第三目标数据块执行读操作;判断所述读操作是否成功,若否,将所述第三目标数据块添加到坏块表;
84.如图4所示,假设nand中的数据块总数为blockmax,设置待执行读操作的数据块为tlcblockidx,且初始值为0,从待测试的nand中选取一数据块;
85.对所述数据块进行读操作,判断所述读操作是否成功,若是,tlcblockidx加1,判断tlcblockidx是否小于blockmax,若是,执行从待测试的nand中选取一数据块的操作,若否,结束copyback测试;
86.若否,将所述数据块添加至坏块表,blockidx加1,判断tlcblockidx是否小于blockmax,若是,执行从待测试的nand中选取一数据块的操作,若否,结束copyback测试;
87.其中,可以按照数据块的序号依次从待测试的nand中选取一数据块,也可以采用随机顺序从待测试的nand中选取一数据块。
88.实施例二
89.本实施例与实施例一的不同在于限定了第一数据块和第二数据块的对应关系;
90.设置所述第一数据块集合中的数据块的工作模式为第一模式;设置所述第二数据块集合中的数据块的工作模式为第二模式;
91.具体的,所述数据块的工作模式为nand内部存储模式,包括:单阶储存单元(single

level cell,slc)和三阶储存单元(triple

level cell,tlc);
92.所述第一数据块集合中包含预设数量的数据块;所述预设数量根据所述第一模式和第二模式确定;
93.具体的,如第一模式为slc,第二模式为tlc,由于tlc模式下一个数据块的存储数据量是slc模式下一个数据块的存储数据量的3倍,因此预设数量为3;
94.从执行完rdt测试的数据块中选择一数据块进行擦写读,判断所述擦写读是否成功,若是,则将所述数据块添加到所述第一数据块集合,若否,将所述数据块添加到坏块表;从执行完rdt测试的数据块中选择另一数据块并执行上述擦写读和判断操作直至所述第一
数据块集合中的数据块个数达到所述预设数量;
95.请参照图5,具体的,挑选3个好块作为source slc block(srcslccnt,源数据块),设置srcslccnt初始值为0,从待测试的nand中选取一数据块;
96.对所述数据块进行擦写读,判断所述擦写读是否成功,若是,srcslccnt加1,再判断srcslccnt是否等于3,若是,结束rdt测试,若否执行从待测试的nand中选取一数据块的操作;
97.若否,将所述数据块添加至坏块表,执行从待测试的nand中选取一数据块的操作;
98.若当待测试数据块全部完成测试后无法挑选出3个好块,则退出copyback测试,并上报异常;
99.其中,可以按照数据块的序号依次从待测试的nand中选取一数据块,也可以采用随机顺序从待测试的nand中选取一数据块;
100.擦除3个选取出的源数据块,并将待测试的tlc数据块所需要的测试数据写入3个选取出的源数据块中。
101.实施例三
102.本实施例与实施例一或实施例二的不同在于限定了对第二目标数据块的测试方法;
103.对于遍历到的第二目标数据块,对所述第二目标数据块进行擦除操作,判断所述擦除操作是否成功,若否,将所述第二目标数据块添加到坏块表,若是,执行将所述第一数据块集合中写入的所述测试数据通过copyback指令写到所述第二目标数据块步骤;
104.具体的,基于将slc上数据写入到tlc上策略,对第二目标数据块进行测试;
105.如图6所示,假设nand中的数据块总数为blockmax,设置第二目标数据块tlcblockidx初始值为0,从待测试的nand中选取一数据块;
106.对tlcblockidx进行擦除操作,判断所述擦除操作是否成功,若是,则通过copyback操作将数据写入tlcblockidx中,判断copyback操作是否成功,若是,则tlcblockidx加1,从待测试的nand中选取一数据块的操作,判断tlcblockidx是否小于blockmax,若是,执行从待测试的nand中选取一数据块的操作,若否,则进行读取测试;copyback操作失败的tlcblockidx将添加至坏块表;
107.若否,将tlcblockidx添加至坏块表,tlcblockidx加1,判断tlcblockidx是否小于blockmax,若是,执行从待测试的nand中选取一数据块的操作,若否,则进行读取测试;
108.其中,copyback操作将数据写入具体为:
109.设置slc上的数据页为pagem最大页数为slcpagemax,待测试数据块tlc上的数据页为pagen最大页数为tlcpagemax,从每一待测试的tlc数据块的page0开始,将第一个slc数据块的page0上的数据通过copyback read操作传输到nand内部的cache register;再通过copyback program操作将cache register上的数据写到待测试的tlc数据块上,如果copyback program操作失败,则将该tlc数据块加到坏块表;pagem和pagen均自增,当pagem等于slcpagemax时,切换到第二个slc数据块进行写入,直至pagen等于tlcpagemax(tlcpagemax=3*slcpagemax);
110.其中,第二数据块集合中的tlc数据块是除了3个slc数据块以及保存系统信息的数据块外的数据块,由于在执行copyback操作之前,待测试的nand中的各个数据块都经过
rdt测试,因此,第二数据块集合中的数据块能够保证是好块;
111.请参照图7,为copyback测试全过程流程图。
112.请参照图8,一种nand测试装置,包括:
113.rdt测试模块,用于对待测试的nand中的数据块执行rdt测试,并筛选出其中的坏块;
114.copyback操作模块,用于对执行完rdt测试的数据块执行copyback操作,并筛选出其中的坏块;
115.读操作模块,用于对执行完copyback操作的数据块执行读操作,并筛选出其中的坏块。
116.实施例三
117.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述实施例一的一种nand测试方法中的各个步骤。
118.实施例四
119.请参照图9,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述实施例一的一种nand测试方法中的各个步骤。
120.综上所述,本发明提供的一种nand测试方法、装置、可读存储介质及电子设备,先对待测试的nand进行常规读写方式的测试,再对待测试的nand进行基于copyback命令操作的测试,使nand中经过常规测试的数据块再以copyback命令操作的测试对数据块进行擦写读操作,从而能够将常规筛选无法识别的坏块和弱块识别出来,并且在测试中能够阶段性的将坏块筛选出来添加至坏块表,保证每一阶段不对坏块进行重复测试,提高测试的效率,使得主控可以支持质量等级差的nand,同时提升ssd的稳定性。
121.在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
122.所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
123.另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
124.所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机
设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
125.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
126.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
127.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1