一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

闪存的擦写能力测试方法、装置、计算机设备和存储介质与流程

2022-02-22 08:58:41 来源:中国专利 TAG:


1.本技术涉及存储技术领域,特别是涉及一种闪存的擦写能力测试方法、装置、计算机设备和存储介质。


背景技术:

2.nand flash是非易失性存储器,其具有尺寸小,操作速度快,编程电压低,抗擦写能力强,保持时间久等特点,目前广泛应用于各种存储场合。
3.nand flash由许多块(block)构成,每个块又由若干页(page)组成。nand flash可以进行擦除、写入和读取操作。在使用过程中,nand flash每一次擦除/写入操作会减少自身的寿命,block在使用过一段时间后其保存电荷的能力将逐渐削弱,并因被不停地擦除/写入操作而耗尽而使得存储单元的性能衰退,block所存储的数据就会出错,无法被可靠地继续使用。因此,在nand flash出厂前进行损耗测试并给出nand flash的寿命值是非常有必要的。
4.在相关技术中,通常采用以下两种方式对nand flash进行寿命预估,第一种方式采用单一数据模式(pattern)记录法,从整个nand block库里面对选中的块有序进行频繁擦写动作,写的数据模式是固定值,例如0x00,擦写若干次后擦写能力测试结束,读取block错误比特值,根据block错误比特值从而对nand flash寿命进行预估。第二种方式是采用双pattern记录法,从整个nand block库里面对选中的块有序进行频繁擦写动作,写的pattern不是固定值,以nand flash的mlc(multi-level cell,多层单元)闪存类型为例,会根据页的类型,如pagea和pageb写入不同的数据模式,保证达到最大的电压跳变,擦写若干次后,擦写能力测试结束,读取block错误比特值,从而对nand flash寿命进行预估。然而,不管是单一数据模式的测试还是双数据模式的测试均没有考虑时间的问题,即需要测试的所有块并不能够同时结果测试,使得测试结果不够准确。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够提高闪存的擦写能力测试结果,准确的预估闪存的寿命的闪存的擦写能力测试方法、装置、计算机设备和存储介质。
6.第一方面,本技术提供一种闪存的擦写能力测试方法,所述方法包括:
7.从所述闪存的各个块中筛选出若干个待测试的目标块,根据所述目标块的块擦写承受阈值确定所述擦写能力测试的循环擦写总次数;
8.根据所述循环擦写总次数确定在单个内循环过程中对所述目标块进行擦写的预设内循环擦写次数和预设外循环次数,其中,所述循环擦写总次数为预设内循环擦写次数和预设外循环次数的乘积;
9.根据所述预设内循环擦写次数和所述预设外循环次数轮询写入至少两种预设的数据模式对所述目标块进行循环擦写操作;
10.生成所述目标块在执行所述循环擦写操作后对应的擦写能力测试结果。
11.在一种可能的实现方式中,所述根据所述预设内循环擦写次数和所述预设外循环次数轮询写入至少两种预设的数据模式对所述目标块进行循环擦写操作的步骤包括:
12.确定在内循环过程中当前内循环擦写操作的次序;
13.根据当前内循环擦写操作的次序从预设的若干种数据模式中确定当前内循环擦写所执行的当前数据模式;
14.按照当前数据模式对所有所述目标块进行内循环擦写操作,当内循环擦写操作的当前执行次数达到所述预设内循环擦写次数,则将当前外循环次数加一,并将当前执行次数重置后返回执行根据当前内循环擦写操作的次序从预设的若干种数据模式中确定当前内循环擦写所执行的当前数据模式的步骤,直至当前外循环次数达到所述预设外循环次数为止。
15.在一种可能的实现方式中,所述根据当前内循环擦写操作的次序从预设的若干种数据模式中确定当前内循环擦写所执行的当前数据模式的步骤包括:
16.确定预设的数据模式的种类数量;
17.根据所述种类数量对当前内循环擦写操作的次序进行取余运算,根据运算结果确定当前内循环擦写所执行的当前数据模式。
18.在一种可能的实现方式中,该方法还包括:
19.根据所述数据模式的种类数量设置所述预设内循环擦写次数,所述预设内循环擦写次数为所述种类数量的整数倍。
20.在一种可能的实现方式中,所述当前数据模式包括至少两个子数据模式的组合;
21.所述按照当前数据模式对所有所述目标块进行内循环擦写操作的步骤包括:
22.确定所述目标块的各个页的类型,根据不同的所述页的类型确定对应的数据模式;
23.在内循环擦写操作过程中,按照所述目标块的各个页的编号顺序依次对所有的所述目标块对应的页写入该页对应的子数据模式。
24.在一种可能的实现方式中,所述从所述闪存的各个块中筛选出若干个待测试的目标块的步骤包括:
25.根据块筛选条件从所述闪存的各个块中确定若干个待测试的目标块,其中,所述目标块在所述闪存中分布均匀、且所述目标块中的奇数块和偶数块的数量差不超过预设数量阈值。
26.在一种可能的实现方式中,所述生成所述目标块在执行所述循环擦写操作后对应的擦写能力测试结果的步骤包括:
27.向执行完所述循环擦写操作后的各个所述目标块写入原始数据,并读取所述目标块输出的实际数据;
28.对比所述原始数据和所述实际数据,根据对比结果确定所述目标块的错误比特率,根据所述错误比特率生成所述闪存的擦写能力测试结果。
29.第二方面,本技术还提供一种闪存的擦写能力测试装置,所述装置包括:
30.目标块确定模块,用于从所述闪存的各个块中筛选出若干个待测试的目标块,根据所述目标块的块擦写承受阈值确定所述擦写能力测试的循环擦写总次数;
31.循环擦写次数确定模块,用于根据所述循环擦写总次数确定在单个内循环过程中
对所述目标块进行擦写的预设内循环擦写次数和预设外循环次数,其中,所述循环擦写总次数为预设内循环擦写次数和预设外循环次数的乘积;
32.循环擦写操作执行模块,用于根据所述预设内循环擦写次数和所述预设外循环次数轮询写入至少两种预设的数据模式对所述目标块进行循环擦写操作;
33.测试结果生成模块,用于生成所述目标块在执行所述循环擦写操作后对应的擦写能力测试结果。
34.第三方面,本技术还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所提及的闪存的擦写能力测试方法的步骤。
35.第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所提及的闪存的擦写能力测试方法的步骤。
36.上述闪存的擦写能力测试方法、装置、计算机设备和存储介质,通过将循环擦写分为内循环和外循环两部分来执行,循环擦写总次数为预设内循环擦写次数和预设外循环次数的乘积,轮询写入至少两种预设的数据模式对目标块进行循环擦写操作,生成所述目标块在执行所述循环擦写操作后对应的擦写能力测试结果,通过内外循环(rotate cycling)方式对闪存的所有目标块进行循环擦写能力测试,这样的内外循坏擦写方式使得所有目标块均在最后一次外循环过程的最后一次内循环擦写操作中结束擦写操作,所有目标块的擦写测试结束时间间隔短,几乎是同时结束,避免了比特位性能跳变等影响,提高了闪存的擦写能力测试结果的准确率,更加准确地预估闪存的寿命。
37.另外,上述技术方案还可以通过多种数据模式轮询参与到循环擦写操作中,更加真实地模拟闪存在实际应用中的多种擦写场景,更加贴合闪存在实际使用过程中的老化塑料,避免使用单一、固定的数据模式进行擦写测试,进一步提高了测试结果的准确性。
附图说明
38.图1是本技术一实施例提供的闪存的擦写能力测试方法的流程图;
39.图2是本技术一实施例提供的对目标块进行循环擦写操作的方法流程图;
40.图3是本技术一实施例提供的当前内循环擦写的当前数据模式的确定方法的流程图;
41.图4是本技术一实施例提供的生成擦写能力测试结果的方法流程图;
42.图5本技术一实施例提供的闪存的擦写能力测试方法的另一流程图;
43.图6是本技术实施例提供的一种闪存的擦写能力测试装置的结构示意图;
44.图7为一个实施例中计算机设备的内部结构图。
具体实施方式
45.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
46.nand flash由许多块(block)构成,每个块又由若干页(page)组成。nand flash可以进行擦除、写入和读取操作,其中,块一般是nand flash擦除操作的最小单位,页一般是
nand flash写入操作的最小单位。在使用过程中,nand flash每一次擦除/写入操作会减少自身的寿命,block在使用过一段时间后因被不停地擦除/写入操作而耗尽而使得存储单元的性能衰退,block所存储的数据就会出错,无法被可靠地继续使用。
47.在相关技术中,通常采用单一数据模式记录法和双数据模式记录法对nand flash进行寿命预估。单一数据模式记录法从整个nand block库里面对选中的块有序进行频繁擦写动作,写的数据模式是固定值,例如0x00,进行擦写若干次后,擦写能力测试结束,读取block的错误比特值,根据block错误比特值从而对nand flash寿命进行预估,然而该方式写的数据模式过于单一,对于block的消耗速度会变慢,写的次数增多,整个擦写能力测试的时间过长,且不能够保证进行测试的所有的块同时完成测试。双数据模式记录法从整个nand block库里面对选中的块有序进行频繁擦写动作,写的数据模式不是固定值,以nand flash的mlc(multi-level cell,多层单元)闪存类型为例,会根据页的类型,如pagea和pageb写入不同的数据模式,保证达到最大的电压跳变,在一定程度上提高了测试准确性。进行擦写操作若干次后,擦写能力测试结束,读取block错误比特值,从而对nand flash寿命进行预估,该方式虽然写入的是非单一数据模式,但是不能保证需要进行测试的所有块同时完成测试,第一个测试的块和最后一个测试的块间隔时间较长,测试结果不严谨。由此可见,不管是单一数据模式的测试还是双数据模式的测试均没有考虑时间的问题,即需要测试的所有块并不能够同时结果测试,使得测试结果不够准确。
48.本技术提供的闪存的擦写能力测试方法、装置、计算机设备和存储介质,能够使进行测试的所有块几乎同时结束,提高测试精确性,解决现有技术的如上技术问题。
49.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
50.下面将结合附图,对本技术的实施例进行描述。
51.图1是本技术一实施例提供的闪存的擦写能力测试方法的流程图,该闪存的擦写能力测试方法可以执行于服务器。
52.具体的,如图1所示,该闪存的擦写能力测试方法可以包括以下步骤:
53.s210、从所述闪存的各个块中筛选出若干个待测试的目标块,根据所述目标块的块擦写承受阈值确定所述擦写能力测试的循环擦写总次数。
54.闪存,又名快闪存储器(flash memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。nand flash是闪存的一种类型。下面实施例以nand flash为例对本技术技术方案进行说明,当然在某些实施例中本技术技术方案还可以应用于其他类型的闪存中。
55.不同的nand flash具有不同数量的块,在本实施例中,可以根据擦写能力测试的条件从所有块中选择合适的若干个待测试的目标块,该目标块为好块(good block),即读写性能无损的块,如若干个待测试的目标块可以为100个好块。
56.在一实施例中,从闪存的各个块中筛选出若干个待测试的目标块可以通过以下方式来实现:
57.根据块筛选条件从所述闪存的各个块中确定若干个待测试的目标块,其中,所述目标块在所述闪存中分布均匀、且所述目标块中的奇数块和偶数块的数量差不超过预设数
量阈值。
58.在本实施例中,可以根据实际测试需要设置块筛选条件,例如,考虑到闪存中奇数块和偶数块的擦写能力可能存在差别,错误率可能会不一致,故目标块中的奇数块和偶数块的数量差不超过预设数量阈值,如5个,故目标块中的奇数块和偶数块的数量应基本一致,其中,每个块均有编号,奇数块是指编号为奇数的块,偶数块是指编号为偶数的块。其次,考虑到不同位置的块的错误率可能不同,所选择的目标块的位置在闪存的所有块中应均匀分布。再且,坏块会导致错误率的计算结果出错,所以所选择的块必须为好块。最后,考虑到结果准确率的问题,所选择的目标块的数量不宜过少,兼顾测试时长等问题,所选择的目标块不应过多,可选的,目标块的数量可以为100。
59.对于擦写操作,是指对nand flash进行擦除操作和写入操作,可以根据测试需求确定对待测试的目标块需要执行的擦写操作的总次数。循环擦写总次数是对所有目标块进行循环擦写的总次数,即目标块中每个块需要执行的擦写操作总次数。在本实施例中,可以根据nand flash的块擦写承受阈值来设置循环擦写总次数。块擦写承受阈值是nand flash的一个产品参数,可以是生产厂家所提供的该nand flash闪存最大可承受的擦写次数,通常而言,当nand flash的擦写次数达到块擦写承受阈值后,nand flash的块容易出现损害。例如,块擦写承受阈值为pemax,设置的循环擦写总次数为pe,两者偏差不能太大,即pe≈pemax。例如,根据某型号的nand flash闪存提供的参数查询手册,该闪存的块擦写承受阈值为pemax为3000次,则可设置对该型号闪存的擦写能力测试的循环擦写总次数pe为3000次。
60.s220、根据所述循环擦写总次数确定在单个内循环过程中对所述目标块进行擦写的预设内循环擦写次数和预设外循环次数。
61.其中,所述循环擦写总次数为预设内循环擦写次数和预设外循环次数的乘积。
62.本实施例对所有的目标块进行的循环擦写操作为:在循环擦写过程中,先进行内循环擦写操作,等到所有块内循环擦写次数达到预设内循环擦写次数时,外循环次数加一,并重新开始执行新的内循环擦写操作,直到外循环次数达到预设外循环次数为止,此时目标块所执行擦写操作的次数达到了预设的循环擦写总次数,结束擦写能力测试的擦写操作。
63.例如,设定单个内循环过程中对目标块进行擦写的预设内循环擦写次数为i,预设外循环次数为j,则循环擦写总次数为pe=i*j。在对目标块进行循环擦写操作时,先对所有的目标块执行本轮的第一次内循环擦写操作,即i=1,以此类推重复执行内循环擦写操作直到预设内循环擦写次数i,即i=i,则本轮内循环擦写操作,将外循环次数j加1,重复上述操作直到外循环次数j=j,此时目标块的循环擦写次数pe=pe=i*j。
64.例如,单个内循环过程中对目标块进行擦写的预设内循环擦写次数为8次,预设外循环次数为125次,对所有的block进行8次循环写操作后,重新开始从第一个块到最后一个块的8次循环擦写操作,重复上述动作125次。
65.s230、根据所述预设内循环擦写次数和所述预设外循环次数轮询写入至少两种预设的数据模式对所述目标块进行循环擦写操作。
66.预设的数据模式为两种或多种。由于多种数据模式进行轮询擦写操作,能够加快nand flash的存储性能的老化,尽可能模拟出实际应用中的擦写操作,提高测试结果的准
确率,可以利用多种数据模式,如四种数据模式对目标块进行擦写操作。
67.本实施例考虑到在内循环擦写操作中要将多种的数据模式均能轮询到,可以按照内循环擦写的次序依次分配对应的数据模式进行擦写,即,可以将内循环擦写的次序与数据模式进行映射关系,根据内循环擦写的当前次序确定即将进行写入的数据模式。例如,如下表所示,以预设内循环擦写次数为8为例,该表反映了内循环擦写的次序与数据模式的映射关系。
68.内循环次序数据模式1、5pattern12、6pattern23、7pattern34、8pattern4
69.按照上表所示的例子,若当前的内循环擦写的次序为次序2(可以理解为第2次),则按照pattern 2数据模式进行擦除后的数据写入,若当前的内循环擦写的次序为次序7,则按照pattern 3数据模式进行擦除后的数据写入。在本实施例中,轮询写入至少两种预设的数据模式使得对同一目标块能够在多种不同的数据模式下进行擦写能力测试,使得测试结果更加准确。
70.可选的,在本实施例中,可以对所有的目标块设置块编号,如第一个块的编号为1,第二个块的编号为2
……
第一百个块的编号为100,在第一次内循环擦写操作中,即当前次序为1的内循环擦写操作中,则按照编号顺序从第一个块到第一百个块按照pattern1数据模式执行内循环擦写操作,在下一次序的内循环擦写操作中,则按照编号顺序从第一个块到第一百个块按照pattern2数据模式执行内循环擦写操作,以此类推,当内循环擦写操作执行了8次后,外循坏次数加1,重复开始按照编号顺序从第一个块到第一百个块按照该次序对应的数据模式执行内循环擦写操作,重复125次直到预设外循环次数执行完毕为止。
71.s240、生成所述目标块在执行所述循环擦写操作后对应的擦写能力测试结果。
72.当所有的目标块均执行完预设内循环擦写次数和预设外循环次数,即循环擦写总次数的擦写操作后,部分目标块的擦写性能会因达到擦写上限而损坏,造成存储单元,即块的存储信息的读取错误,此时统计目标块在完成循环擦写总次数的擦写操作后的错误率。可选的,在本实施例中,以错误比特率为指标进行统计,其中,错误比特率是指二进制数据位在读取时出错的比例,为错误比特位数与比特总位数之比。
73.进一步的,还可以对多个该种型号的nand flash在该目标循环擦写总次数下的多次擦写测试,或者对多个该种型号的nand flash在不同的目标循环擦写总次数下的多次擦写测试,得到该nand flash的多个擦写能力测试结果,根据多个擦写能力测试结果分析出该型号的nand flash的擦写能力特性,以更加准确地对nand flash的擦写能力进行评估,预计其使用寿命。可选的,还可以生成该型号的nand flash的擦写能力特性曲线,基于该擦写能力特性曲线预估该型号的nand flash在任意一个擦写次数后的错误率的情况。
74.在相关技术中,逐个对目标块进行依次擦写操作,使得第一个目标块和最后一个目标块的测试结束时间间隔长,而时间间隔长有时会存在块的比特位性能存在跳变等,影响测试结果的准确率。本技术技术方案通过内外循环(rotate cycling)方式对闪存的所有目标块进行循环擦写能力测试,使得所有目标块均在最后一次外循环过程的最后一次内循
环擦写操作中结束擦写操作,所有目标块的擦写测试结束时间间隔短,几乎是同时结束,避免了比特位性能跳变等影响,提高了测试结果的准确率。
75.本实施例通过从闪存的各个块中确定若干个待测试的目标块和循环擦写总次数,根据循环擦写总次数确定在单个内循环过程中对目标块进行擦写的预设内循环擦写次数和预设外循环次数,其中循环擦写总次数为预设内循环擦写次数和预设外循环次数的乘积,按照预设的数据模式对目标块进行内循环和外循环擦写操作,生成所述目标块在执行所述循环擦写操作后对应的擦写能力测试结果,从而提高了闪存的擦写能力测试结果的准确率。
76.为了更清楚的阐述本技术的技术方案,下面针对闪存的擦写能力测试方法的多个步骤进行进一步说明。
77.图2是本技术一实施例提供的对目标块进行循环擦写操作的方法流程图。如图2所示,该方法包括如下步骤:
78.s2301、确定在内循环过程中当前内循环擦写操作的次序。
79.需要说明的是,单个内循环过程包括至少两次内循环擦写操作。在本实施例中,当前内循环擦写的次序是针对于同一内循环过程而言的。例如,当外循环次数为1时,可以理解为第一个内循环过程,而当前内循环擦写的次序为4,则可以理解为第一个内循环过程中的第4次内循环擦写操作;又如,当外循环次数为3时,可以理解为第三个内循环过程,而当前内循环擦写的次序为4,则可以理解为第三个内循环过程中的第4次内循环擦写操作。
80.s2302、根据当前内循环擦写操作的次序从预设的若干种数据模式中确定当前内循环擦写所执行的当前数据模式。
81.预先设置若干种数据模式,如预先设置0x00,0x0f,0xf0,0xff四种数据模式。可选的,当前数据模式可以是一种数据模式,也可以是多种数据模式的组合。为了保证每种数据模式均能轮询到,不同次序的内循环擦写执行对应的数据模式,例如若当前的内循环擦写的次序为次序2,则按照pattern 2数据模式进行擦除后的数据写入,若当前的内循环擦写的次序为次序7,则按照pattern 3数据模式进行擦除后的数据写入。
82.s2303、按照当前数据模式对所有所述目标块进行内循环擦写操作,当内循环擦写操作的当前执行次数达到所述预设内循环擦写次数,则将当前外循环次数加一,并将当前执行次数重置后返回执行根据当前内循环擦写操作的次序从预设的若干种数据模式中确定当前内循环擦写所执行的当前数据模式的步骤,直至当前外循环次数达到所述预设外循环次数为止。
83.例如,当前内循环擦写确定的当前执行模式为pattern 1,则按照pattern1数据模式从第一个目标块到最后一个目标块执行当次的内循环擦写操作,若该次的内循环擦写操作为达到预设内循环擦写次数,则执行下一次的内循环擦写操作,并确定下一次内循环擦写所执行的数据模式为pattern 2,则按照pattern 2数据模式从第一个目标块到最后一个目标块执行该次的内循环擦写操作,以此类推,直到内循环擦写操作的当前执行次数达到预设内循环擦写次数,则将当前外循环次数加1后重新开始新一轮的内循环擦写操作,如,当前外循环次数为1,预设内循环擦写次数为8,内循环擦写操作的当前执行次数达到8次,则当前外循环次数加1,开始下一外循环,并将内循环擦写的当前执行次数重置为1,开启新一轮的内循环,并根据本轮内循环过程中的当前内循环擦写操作的次序,即次序1,重新从
预设的若干种数据模式中确定当前内循环擦写所执行的当前数据模式,如pattern1,重复上述步骤直至当前外循环次数达到预设外循环次数为止,结束本次对目标块的擦写能力测试的擦写操作。
84.图3是本技术一实施例提供的当前内循环擦写的当前数据模式的确定方法的流程图,如图3所示,在一实施例中,步骤s2302中的当前内循环擦写所执行的当前数据模式的确定可以包括通过以下实现方式来实现,可选的,可以包括以下步骤:
85.s301、确定预设的数据模式的种类数量。
86.如,若预设的数据模式为0x00和0xff,则数据模式的种类数量为2,若预设的数据模式为0x00、0x0f、0xf0和0xff,则数据模式的种类数量为4。
87.s302、根据所述种类数量对当前内循环擦写操作的次序进行取余运算,根据运算结果确定当前内循环擦写所执行的当前数据模式。
88.在本实施例中,根据种类数量对当前内循环擦写操作的次序进行取余运算,在本实施例中,当前内循环擦写操作的次序和当前内循环擦写操作的次数相同,即当i为当前内循环擦写操作的当前执行次数,n为数据模式的种类数量,根据种类数量对当前内循环擦写操作的次序进行取余运算的结果为i%n。
89.可以预先建立运算结果与对应执行的数据模式的映射关系。以数据模式的种类数量为4进行说明,取余运算的结果只有0,1,2和3这四种运算结果,则将这四种运算结果与四种数据模式进行映射,得到如下关系映射表:
90.取余运算结果执行的数据模式0pattern 11pattern 22pattern 33pattern 3
91.其中,执行的数据模式可以是一种数据模式,如0x00,也可以是多种数据模式的组合,如0x00和0x0f的组合。
92.本实施例提供的闪存的擦写能力测试的方法,根据当前内循环擦写次数确定目标块的当前数据模式的写入种类,相对于相关技术采用单一、固定的数据模式对目标块进行写入操作,本实施例方案将多种数据模式轮询写入目标块进行擦写测试,写入的数据模式更加灵活多样,使得测试结果更加准确。
93.在一实施例中,为了保证执行的数据模式的执行次数相同,该闪存的擦写能力测试方法还可以包括以下步骤:
94.s300、根据所述数据模式的种类数量设置所述预设内循环擦写次数,所述预设内循环擦写次数为所述种类数量的整数倍。
95.如,若数据模式为4种,则预设内循环擦写次数为4的倍数,即4、8、12等,若数据模式为8种,则预设内循环擦写次数为8的倍数,即8、16等。
96.在本实施例中,循环擦写总次数、预设内循环擦写次数和预设外循环次数应满足以下关系:
97.i%n=0
98.pe%j=0
99.pe/j=i
100.其中,pe为循环擦写总次数,i为预设内循环擦写次数,j为预设外循环次数,n为数据模式的种类数量,%为取余运算符。
101.由于nand flash具有不同类型,如slc(single-level cell,单层单元)、mlc(multi-level cell,多层单元)和tlc(triple-level cell,三层单元),其中,slc的每个单元存储1比特,mlc每个单元存储2比特,tlc的每个单元存储3比特。以mlc为例,mlc具有两种不同的页的类型,如有pagea和pageb之分,为了丰富不同类型的页的写入模式,可以将不同数据模式进行组合,在内循环擦写中将包括多种数据模式的数据模式组合共同写入。
102.以当前数据模式包括至少两个子数据模式的组合为例对本技术技术方案进行详细说明。
103.在一实施例中,步骤s2302中的按照当前数据模式对所有所述目标块进行内循环擦写操作可以包括以下步骤:
104.s401、确定所述目标块的各个页的类型,根据不同的所述页的类型确定对应的数据模式。
105.不同页的类型对应写入的数据模式可以不同,也可以相同。为了保证不同类型的页pagea和pageb有更加丰富的组合方式,本实施例示例下表,可按照下表的组合方式进行轮询擦写。
106.项目pattern1pattern2pattern3pattern4pagea0x000x0f0xf00xffpageb0x000xf00x0f0xff组合方式0001,1010,0111
107.以数据模式组合的种类数量为4进行说明,在本轮的内循环擦写过程中,i表示当前执行的内循环擦写的次数,当i=2时,2%4=2,则执行结果“1”对应的数值模式组合,即pagea为0x0f,pageb为0xf0。
108.s402、在内循环擦写操作过程中,按照所述目标块的各个页的编号顺序依次对所有的所述目标块对应的页写入该页对应的子数据模式。
109.在目标块进行擦除后,按照页为单位进行数据写入。在内循环擦写操作过程中,按照目标块的各个页的编号顺序依次进行写入操作,在写入之前判断页的类型,即判断出page a还是page b,根据page a/page b类型的不同按照对应的子数据模式进行写入。
110.本实施例提供的闪存的擦写能力测试的方法,根据当前内循环擦写次数确定目标快的不同页的类型的当前数据模式的写入种类,相对于相关技术虽然不同的页采用不同的数据模式,但是同一种页的类型仍旧采用单一、固定的数据模式对页进行写入操作,本实施例方案将多种数据模式的组合轮询写入目标块的不同类型的页进行擦写测试,写入不同页的数据模式更加灵活多样,使得测试结果更加准确。
111.图4是本技术一实施例提供的生成擦写能力测试结果的方法流程图,如图4所示,在一实施例中,步骤s240生成所述目标块在执行所述循环擦写操作后对应的擦写能力测试结果,可以包括以下步骤:
112.s2401、向执行完所述循环擦写操作后的各个所述目标块写入原始数据,并读取所述目标块输出的实际数据。
113.当所有的目标块均执行完循环擦写总次数的循环擦写操作后,对目标块的出现错误的存储位进行统计,以获得其损耗状态。
114.在本实施例中,可以向各个目标块写入原始数据,由于目标块的部分存储位由于频繁的循环擦写操作导致存储性能降低,存储电荷的能力损耗,使得写入的原始数据因部分存储位的性能衰退而数据出错,使得输出的实际数据与原始数据不符合。
115.s2402、对比所述原始数据和所述实际数据,根据对比结果确定所述目标块的错误比特率,根据所述错误比特率生成所述闪存的擦写能力测试结果。
116.将原始数据和实际数据进行比较,统计出错的存储位的个数,将出错的存储位的个数与原始数据的存储位总数进行运算,计算出目标块的错误比特率,根据目标块的错误比特率生成该闪存的擦写能力测试结果。
117.可选的,为了提高测试的准确性,还可以对所有的目标块的错误比特率进行平均计算处理,作为该型号的nand flash在该目标循环擦写总次数下的擦写能力测试的结果。
118.为了更清楚地阐述本技术的技术方案,结合以下示例进行详细说明。
119.某一型号的nand flash具有512个块,每个块具有256页。根据块筛选条件,选择50个均匀分布的好块(25个奇数块和25个偶数块)作为该nand flash擦写能力测试的目标块。经过查询该型号的nand flash在擦写次数为3000次时容易出现unc错误,即校验错误,即擦写能力受到影响,存储性能损害。因此,将循环擦写总次数pe设置为3000次,选择4种数据模式进行轮询擦写,故设置预设内循环擦写次数i为100次,预设外循环次数j为30次。
120.如图5所示,图5本技术一实施例提供的闪存的擦写能力测试方法的另一流程图,该闪存的擦写能力测试方法的执行步骤如下:
121.s501、设置当前外循环次数j为1。
122.刚开始测试时,外循环次数j为1,内循环擦写次数i为1。
123.s502、判断当前外循环次数j是否等于预设外循环次数j,若是,则执行步骤s510,否则执行步骤s503。
124.首先,判断外循环次数是否等于预设外循环次数,即j是否等于j。
125.s503、设置当前内循环擦写次数i=1。
126.进行本轮内循环擦写,设置当前内循环擦写次数i=1,开启执行本轮内循环擦写的第一次内循环擦写。
127.若外循环次数不等于预设外循环次数,则进行本轮的内循环擦写操作,首先对所有目标块执行本轮第一次内循环擦写。
128.s504、擦除所有的目标块。
129.闪存的写入操作只能在空或已擦除的单元内进行,在本实施例中,在进行写入操作之前先擦除所有目标块。
130.s505、将本轮当前内循环擦写次数i与数据模式种类数量n进行取余运算。
131.即i%n=1%4=0,1,2,3,在本实施例中,本轮当前内循环擦写次数i与数据模式种类数量n的取余结果有4中,即0、1、2和3。
132.s506、根据所计算得到的不同余数结果向所有目标块的页写入对应的数据模式。
133.例如,若取余结果为0,则在本次内循环操作中向所有目标块的页写入pattern1,若取余结果为1,则在本次内循环操作中向所有目标块的页写入pattern2,若取余结果为2,
则在本次内循环操作中向所有目标块的页写入pattern3,若取余结果为3,则在本次内循环操作中向所有目标块的页写入pattern4。其中,数据模式pattern1、pattern2、pattern3和pattern4可以是0x00、0x0f、0xf0和0xff等数据模式的一种或者至少两种的组合。
134.s507、判断当前内循环擦写次数i是否达到预设内循环擦写次数i,若否,则执行步骤s508,若是,执行步骤s509。
135.s508、当前内循环擦写次数i加1,返回执行步骤s504。
136.s509、当前外循环次数j加1,返回执行步骤s502。
137.s510、结束擦写能力测试。
138.本实施例提供的闪存的擦写能力测试方法,通过内外循环式对闪存的所有目标块进行循环擦写能力测试,在单个内循环过程的当前内循环擦写操作的擦写次数达到预设内循环擦写次数,外循环擦写次数加一,开始执行下一内循环过程,并在该下一内循环过程中重复执行内循环擦写操作,直到外循环擦写次数达到预设外循环次数时,所有目标块所执行的循环擦写总次数达到预设的循环擦写总次数,这样的内外循坏擦写方式使得所有目标块均在最后一次外循环过程的最后一次内循环擦写操作中结束擦写操作,所有目标块的擦写测试结束时间间隔短,几乎是同时结束,避免了比特位性能跳变等影响,同时对目标块轮询写入多种数据模式,使得擦写测试的老化速度更加真实,提高了闪存的擦写能力测试结果的准确率,更加准确地预估闪存的寿命。
139.以上示例仅用于辅助阐述本公开技术方案,其涉及的图示内容及具体流程不构成对本公开技术方案的使用场景的限定。
140.下面对闪存的擦写能力测试装置的相关实施例进行详细阐述。
141.图6是本技术实施例提供的一种闪存的擦写能力测试装置的结构示意图,该闪存的擦写能力测试装置可以执行与服务器。
142.如图6所示,该闪存的擦写能力测试装置200可以包括:目标块确定模块210、循环擦写次数确定模块220、循环擦写操作执行模块230和测试结果生成模块240,其中:
143.目标块确定模块210,用于从所述闪存的各个块中筛选出若干个待测试的目标块,根据所述目标块的块擦写承受阈值确定所述擦写能力测试的循环擦写总次数;
144.擦写次数确定模块220,用于根据所述循环擦写总次数确定在单个内循环过程中对所述目标块进行擦写的预设内循环擦写次数和预设外循环次数,其中,所述循环擦写总次数为预设内循环擦写次数和预设外循环次数的乘积;
145.擦写操作执行模块230,用于根据所述预设内循环擦写次数和所述预设外循环次数轮询写入至少两种预设的数据模式对所述目标块进行循环擦写操作;
146.测试结果生成模块240,用于生成所述目标块在执行所述循环擦写操作后对应的擦写能力测试结果。
147.本实施例提供的闪存的擦写能力测试装置,通过内外循环擦写操作,对目标块执行循环擦写总次数的循环擦写后,生成目标块的擦写能力测试结果,使得所有目标块均在最后一次外循环过程的最后一次内循环擦写操作中结束擦写操作,所有目标块的擦写测试结束时间间隔短,几乎是同时结束,避免了比特位性能跳变等影响,从而提高了闪存的擦写能力测试结果的准确率。
148.在一种可能的实现方式中,擦写操作执行模块230包括:次序确定单元、当前数据
模式确定单元和循环擦写操作执行单元;其中,次序确定单元,用于确定在内循环过程中当前内循环擦写操作的次序;当前数据模式确定单元,用于根据当前内循环擦写操作的次序从预设的若干种数据模式中确定当前内循环擦写所执行的当前数据模式;循环擦写操作执行单元,用于按照当前数据模式对所有所述目标块进行内循环擦写操作,当内循环擦写操作的当前执行次数达到所述预设内循环擦写次数,则将当前外循环次数加一,并将当前执行次数重置后返回执行根据当前内循环擦写操作的次序从预设的若干种数据模式中确定当前内循环擦写所执行的当前数据模式的步骤,直至当前外循环次数达到所述预设外循环次数为止。
149.在一种可能的实现方式中,当前数据模式确定单元包括:种类数量确定子单元和当前数据模式确定子单元;其中,种类数量确定子单元,用于确定预设的数据模式的种类数量;当前数据模式确定子单元,用于根据所述种类数量对当前内循环擦写操作的次序进行取余运算,根据运算结果确定当前内循环擦写所执行的当前数据模式。
150.在一种可能的实现方式中,闪存的擦写能力测试装置200还包括:预设内循环擦写次数设置模块,用于根据所述数据模式的种类数量设置所述预设内循环擦写次数,所述预设内循环擦写次数为所述种类数量的整数倍。
151.在一种可能的实现方式中,所述当前数据模式包括至少两个子数据模式的组合;循环擦写操作执行单元包括:页的数据模式确定子单元和页的数据模式写入子单元;其中,页的数据模式确定子单元,用于确定所述目标块的各个页的类型,根据不同的所述页的类型确定对应的数据模式;页的数据模式写入子单元,用于在内循环擦写操作过程中,按照所述目标块的各个页的编号顺序依次对所有的所述目标块对应的页写入该页对应的子数据模式。
152.在一种可能的实现方式中,目标块确定模块210具体用于根据块筛选条件从所述闪存的各个块中确定若干个待测试的目标块,其中,所述目标块在所述闪存中分布均匀、且所述目标块中的奇数块和偶数块的数量差不超过预设数量阈值。
153.在一种可能的实现方式中,测试结果生成模块240包括:实际数据读取单元和测试结果生成单元;其中,实际数据读取单元,用于向执行完所述循环擦写操作后的各个所述目标块写入原始数据,并读取所述目标块输出的实际数据;测试结果生成单元,用于对比所述原始数据和所述实际数据,根据对比结果确定所述目标块的错误比特率,根据所述错误比特率生成所述闪存的擦写能力测试结果。
154.本实施例的闪存的擦写能力测试装置可执行本技术前述实施例所示的闪存的擦写能力测试方法,其实现原理相类似,此处不再赘述。
155.上述闪存的擦写能力测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
156.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该
内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种闪存的擦写能力测试方法。
157.本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
158.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
159.从所述闪存的各个块中筛选出若干个待测试的目标块,根据所述目标块的块擦写承受阈值确定所述擦写能力测试的循环擦写总次数;
160.根据所述循环擦写总次数确定在单个内循环过程中对所述目标块进行擦写的预设内循环擦写次数和预设外循环次数,其中,所述循环擦写总次数为预设内循环擦写次数和预设外循环次数的乘积;
161.根据所述预设内循环擦写次数和所述预设外循环次数轮询写入至少两种预设的数据模式对所述目标块进行循环擦写操作;
162.生成所述目标块在执行所述循环擦写操作后对应的擦写能力测试结果。
163.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
164.确定在内循环过程中当前内循环擦写操作的次序;根据当前内循环擦写操作的次序从预设的若干种数据模式中确定当前内循环擦写所执行的当前数据模式;按照当前数据模式对所有所述目标块进行内循环擦写操作,当内循环擦写操作的当前执行次数达到所述预设内循环擦写次数,则将当前外循环次数加一,并将当前执行次数重置后返回执行根据当前内循环擦写操作的次序从预设的若干种数据模式中确定当前内循环擦写所执行的当前数据模式的步骤,直至当前外循环次数达到所述预设外循环次数为止。
165.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
166.确定预设的数据模式的种类数量;根据所述种类数量对当前内循环擦写操作的次序进行取余运算,根据运算结果确定当前内循环擦写所执行的当前数据模式。
167.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
168.根据所述数据模式的种类数量设置所述预设内循环擦写次数,所述预设内循环擦写次数为所述种类数量的整数倍。
169.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
170.所述当前数据模式包括至少两个子数据模式的组合;确定所述目标块的各个页的类型,根据不同的所述页的类型确定对应的数据模式;在内循环擦写操作过程中,按照所述目标块的各个页的编号顺序依次对所有的所述目标块对应的页写入该页对应的子数据模式。
171.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
172.根据块筛选条件从所述闪存的各个块中确定若干个待测试的目标块,其中,所述目标块在所述闪存中分布均匀、且所述目标块中的奇数块和偶数块的数量差不超过预设数量阈值。
173.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
174.向执行完所述循环擦写操作后的各个所述目标块写入原始数据,并读取所述目标块输出的实际数据;对比所述原始数据和所述实际数据,根据对比结果确定所述目标块的错误比特率,根据所述错误比特率生成所述闪存的擦写能力测试结果。
175.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
176.从所述闪存的各个块中筛选出若干个待测试的目标块,根据所述目标块的块擦写承受阈值确定所述擦写能力测试的循环擦写总次数;
177.根据所述循环擦写总次数确定在单个内循环过程中对所述目标块进行擦写的预设内循环擦写次数和预设外循环次数,其中,所述循环擦写总次数为预设内循环擦写次数和预设外循环次数的乘积;
178.根据所述预设内循环擦写次数和所述预设外循环次数轮询写入至少两种预设的数据模式对所述目标块进行循环擦写操作;
179.生成所述目标块在执行所述循环擦写操作后对应的擦写能力测试结果。
180.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
181.确定在内循环过程中当前内循环擦写操作的次序;根据当前内循环擦写操作的次序从预设的若干种数据模式中确定当前内循环擦写所执行的当前数据模式;按照当前数据模式对所有所述目标块进行内循环擦写操作,当内循环擦写操作的当前执行次数达到所述预设内循环擦写次数,则将当前外循环次数加一,并将当前执行次数重置后返回执行从预设的若干种数据模式中确定当前内循环擦写所执行的当前数据模式的步骤,直至当前外循环次数达到所述预设外循环次数为止。
182.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
183.确定预设的数据模式的种类数量;根据所述种类数量对当前内循环擦写操作的次序进行取余运算,根据运算结果确定当前内循环擦写所执行的当前数据模式。
184.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
185.根据所述预设的数据模式的种类数量设置所述预设内循环擦写次数,所述预设内循环擦写次数为所述种类数量的整数倍。
186.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
187.所述当前数据模式包括至少两个子数据模式的组合;确定所述目标块的各个页的类型,根据不同的所述页的类型确定对应的数据模式;在内循环擦写操作过程中,按照所述目标块的各个页的编号顺序依次对所有的所述目标块对应的页写入该页对应的子数据模式。
188.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
189.根据块筛选条件从所述闪存的各个块中确定若干个待测试的目标块,其中,所述目标块在所述闪存中分布均匀、且所述目标块中的奇数块和偶数块的数量差不超过预设数量阈值。
190.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
191.向执行完所述循环擦写操作后的各个所述目标块写入原始数据,并读取所述目标块输出的实际数据;对比所述原始数据和所述实际数据,根据对比结果确定所述目标块的错误比特率,根据所述错误比特率生成所述闪存的擦写能力测试结果。
192.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
193.应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
194.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
195.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献