CN102024502A - 闪存器件测试方法、装置及板卡和网络设备 - Google Patents
闪存器件测试方法、装置及板卡和网络设备 Download PDFInfo
- Publication number
- CN102024502A CN102024502A CN 201010580591 CN201010580591A CN102024502A CN 102024502 A CN102024502 A CN 102024502A CN 201010580591 CN201010580591 CN 201010580591 CN 201010580591 A CN201010580591 A CN 201010580591A CN 102024502 A CN102024502 A CN 102024502A
- Authority
- CN
- China
- Prior art keywords
- test
- data
- zone
- test result
- recover
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种闪存器件测试方法、装置及板卡和网络设备,该方法包括:在闪存器件中预设数据备份区、测试结果区和可用存储区,将可用存储区划分为若干测试区域;对每个所述测试区域进行测试的过程包括:将当前测试区域的数据备份至数据备份区,并更新测试结果区中的当前测试区域的起始地址以及更新数据恢复标识为未恢复标识;对当前测试区域进行测试后,将数据备份区中的数据恢复至当前测试区域,并更新所述数据恢复标识为已恢复标识。在闪存器件重启时,能够正确恢复数据并中断的位置继续测试,提高了测试效率。
Description
技术领域
本发明涉及数据存储技术领域,尤指一种闪存器件测试方法、装置及板卡和网络设备。
背景技术
设备单板在出产前一般都需要进行一系列的生产测试,这其中就包括对单板上的闪存(flash)器件进行读写测试,而单板上的flash一般用于存储包括单板软件在内的单板文件。如果在测试时单板断电或异常重启且没有做好数据备份,将可能导致测试后flash中的数据被破坏,即导致单板上的软件不可用或者更为严重导致单板文件系统异常。那么这种情况下就需要重新下载单板软件后重新进行flash测试,导致测试效率低下。
因此,针对flash进行测试时一般需要确保在测试过程中不能断电或异常重启的现状,一般通过对软件的改进达到降低在进行flash测试时系统发生异常重启的概率,而断电重启一般很难通过对设备的改进来保障。
且由于flash器件较为特殊,它的读写无法像同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)等存储器那样可以随意写入,如果需要对flash进行写操作,需要将对应的整块flash擦除后再将数据写入,flash本身的读写速度又比较慢,导致其测试需要占用相当长的时间,且一般的测试模型需要尽量覆盖故障模型,在进行flash存储空间测试时一般都不是只对测试空间进行一次遍历读写,遍历读写的次数越多或者flash容量越大,则测试所需时间就越长,有的甚至达数小时,在这么长的测试时间内需要确保单板不断电比较困难,特别是在生产测试过程中,一般都是自动化测试,即单板上电后不会有专门人员全程监控,而如果考虑到某些单板功耗较大,那要确保在测试过程中不掉电就更加困难了。
因此,现有技术中难以保证单板测试过程中不发生断电或异常重启,在对flash进行测试时,若发生单板断电或异常重启时,则会使单板flash上的数据被破坏,导致单板上的软件不可用或者更为严重导致单板文件系统异常,从而需要重新下载单板软件且重新进行flash测试,导致测试效率低下。可见,现有的测试方式,一般都不能有效地防止因断电或异常重启导致的数据破坏,在重新启动后也不能及时、正确的恢复数据。
发明内容
本发明实施例提供一种闪存器件测试方法、装置及板卡和网络设备,用以解决现有技术中存在闪存器件测试过程中断电或异常重启导致数据破坏,需要下载数据重新测试,测试效率低的问题。
一种闪存器件测试方法,包括:
在闪存器件中预设数据备份区、测试结果区和可用存储区,将可用存储区划分为若干测试区域;对每个所述测试区域进行测试的过程包括:
将当前测试区域的数据备份至数据备份区,并更新测试结果区中的当前测试区域的起始地址以及更新数据恢复标识为未恢复标识;对当前测试区域进行测试后,将数据备份区中的数据恢复至当前测试区域,并更新所述数据恢复标识为已恢复标识。
一种闪存器件测试装置,包括:测试控制模块、预处理模块、测试模块和后处理模块;
所述测试控制模块,用于控制所述预处理模块对闪存器件中的可用存储区划分出的测试区域依次进行测试;
所述预处理模块,用于将当前测试区域的数据备份至闪存器件中预设的数据备份区,并更新闪存器件中预设的测试结果区中的当前测试区域的起始地址以及更新数据恢复标识为未恢复标识,并指示所述测试模块开始测试;
所述测试模块,用于根据预处理模块的指示对当前测试区域进行测试;
所述后处理模块,用于所述测试模块对当前测试区域进行测试后,将数据备份区中的数据恢复至当前测试区域,并更新所述数据恢复标识为已恢复标识。
一种板卡,包括:闪存器件和上述的闪存器件测试装置。
所述闪存器件中预设数据备份区、测试结果区和可用存储区,所述可用存储区划分为若干测试区域。
一种网络设备,包括:上述的闪存器件测试装置、板卡;所述板卡上设置闪存器件;
所述闪存器件中预设数据备份区、测试结果区和可用存储区,所述可用存储区划分为若干测试区域。
本发明有益效果如下:
本发明实施例提供的闪存器件测试方法、装置及板卡和网络设备,在闪存器件中预设数据备份区和测试结果区,将闪存器件划分为若干测试区域,在对测试区域进行测试时,先将当前测试区域的数据备份至数据备份区,并更新测试结果区中的当前测试区域的起始地址以及更新数据恢复标识为未恢复标识;对当前测试区域进行测试后,将数据备份区中的数据恢复至当前测试区域,并更新所述数据恢复标识为已恢复标识。使得闪存器件即使在测试过程中发生重启,也可以正确、有效的恢复出测试区域的数据,避免数据丢失,保证闪存器件的正常重启,即能够保证在闪存器件测试时,即使出现重启也不会破坏闪存器件中的数据,不会导致闪存器件的系统故障;在重启后,还可以确定出闪存器件重启前测试到的测试区域,以便从重启前测试到的位置继续进行测试,不仅保证了闪存器件测试的健壮性,也极大提高了测试效率。
附图说明
图1为本发明实施例中闪存器件测试方法的总体流程图;
图2为本发明实施例中闪存器件分区测试的流程图;
图3为本发明实施例中单个测试区域的测试流程图;
图4为本发明实施例中重启时的数据恢复流程图;
图5为本发明实施例中重启时继续测试的流程图;
图6为本发明实施例中闪存器件测试装置的结构示意图。
具体实施方式
本发明实施例提供的闪存器件测试方法,其总体流程如图1所示,执行步骤如下:
步骤S11:在闪存器件中预设数据备份区、测试结果区和可用存储区,并将可用存储区划分为若干测试区域。
其中,数据备份区用于存储当前测试区域的数据,测试结果区用于记录当前测试区域的起始地址、表征数据备份区中的数据是否已经恢复的数据恢复标识;此外,还可以存储用于对当前测试区域的数据进行正确性校验的循环冗余校验码(Cyclic Redundancy Check,CRC)校验值,以及已测试的测试区域的测试结果,例如:详细的错误码等。
优选的,测试结果区可以包括测试结果主区和测试结果备区。当测试结果主区或测试结果备区中存储的数据发生变化时,相应的,测试结果备区或测试结果主区随之动态更新。测试结果主区与测试结果备区保存的数据互为备份。
例如:以测试区域(一个测试区域包含至少一个块)为单位对flash进行测试。首先预留数据备份区、测试结果主区和测试结果备区,当然,若有其他需求,也可以预先预留相应的区域。一般预留的数据备份区、测试结果主区和测试结果备区不进行测试,因此,闪存器件中需要划分测试区域的是预留之后剩下的可用存储区。假设每块大小为128K,则预留的数据备份区、测试结果主区和测试结果备区至少为128K。此时,闪存器件的存储空间结构如下表1所示:
表1
数据备份区(128K) |
测试结果主区(128K) |
测试结果备区(128K) |
可用存储区 |
步骤S12:针对划分出的测试区域依次进行测试。
当测试完一个测试区域时,获取下一个测试区域的起始地址作为当前测试区域的起始地址,对下一个测试区域进行测试,直至测试完所有的测试区域。其中下一个测试区域的起始地址等于刚测试完的测试区域的起始地址加上一个测试区域占用的存储空间的大小。例如刚测试完的测试区域的起始地址为X,一个测试区域的大小为128K,则获取的下一个测试区域的的起始地址为X+128。
对每个测试区域进行测试的过程包括下列步骤S13-步骤S15所述的过程。
步骤S13:将当前测试区域的数据备份至数据备份区,并在更新测试结果区中的当前测试区域的起始地址以及数据恢复标识。
也就是说,在对一个测试区域进行测试之前,先做好数据备份功过,将当前测试区域的数据备份至数据备份区,同时,会在测试结果区中写入当前测试区域的起始地址以及更新数据恢复标识为未恢复标识,以便重启时能够确认数据是否已经恢复,以及当前正在测试的是哪个测试区域。在数据备份成功后,才会启动对当前测试区域的测试,以保证被测试的测试区域的数据不被破坏,能够正确恢复。
优选的,在测试前,将当前测试区域的数据备份至数据备份区之后,还包括:在测试结果区中写入当前测试区域的数据的CRC校验值。当将数据备份区中的数据恢复到当前测试区域中时,使用CRC校验值进行数据正确性校验。通常在将测试区域中的数据备份至数据备份区后,计算数据的CRC校验值,并将计算得到的饿CRC校验值写入数据结果区。
当设置的测试结果区包括测试结果主区和测试结果备区,在测试结果区中写入当前测试区域的起始地址以及更新数据恢复标识时,先在测试结果主区中写入当前测试区域的起始地址以及更新数据恢复标识为未恢复标识,并将测试结果主区中的数据备份测试结果备区中。
步骤S14:对测试区域进行测试。
对测试区域进行测试一般是指读写测试,读写测试的的过程可以采用现有的测试技术和方法,此处不再赘述。
步骤S15:将数据备份区中的数据恢复至当前测试区域,并更新数据恢复标识为已恢复标识。
在对当前测试区域进行测试后,将数据备份区中的数据恢复至当前测试区域,以保证当前测试区域的数据正确,不发生破坏和丢失;同时更新数据恢复标识为已恢复标识表示数据已经正确恢复。
优选的,若在测试前在测试结果区中存储了CRC校验值,则可以采用CRC校验值对恢复的数据进行正确性校验,以保证数据的正确性。
优选的,在测试完成后,将对当前测试区域的测试结果写入测试结果区,以备后需进行故障排除等操作时使用。当然,也可以仅将测试出现错误或故障的测试区域的测试结果写入测试结果区,对于测试正常的的测试区域的测试结果则不再记录,以节约测试结果区的存储空间。
当设置的测试结果区包括测试结果主区和测试结果备区时,在更新数据恢复标识为已恢复标识时,先更新测试结果主区中的数据恢复标识为已恢复标识,并将测试结果主区中的数据备份至测试结果备区。将测试结果写入测试结果区时,先将测试结果写入测试结果主区,并将测试结果主区的数据更新至测试结果备区。获取CRC校验值时,先从测试结果主区中获取,当测试结果主区中的数据无效时,从测试结果备区中获取。
优选的,上述闪存器件测试方法还包括闪存器件重启时的处理流程,具体包括下列步骤:
步骤S16:闪存器件重启。
闪存器件在测试过程中,可能因为所在的单板断电、自身软硬件故障等各种因素发生异常重启。
步骤S17:根据测试结果区的数据恢复标识确定数据备份区的数据是否已恢复。
若是,执行步骤S19,否则执行步骤S18。
由于闪存器件需要有正确的数据才能够重新启动,因此在闪存器件重启时,先判断数据备份区中的数据是否已经正确的恢复到当前测试区域中,具体根据测试结果区中的数据恢复标识进行判断,当数据恢复标识为未恢复标识时表示数据备份区的数据未正确恢复到相应的测试区域中,当数据恢复标识为已恢复标识时表示数据备份区的数据已经正确恢复到相应的测试区域中了,闪存器件可以正常重启。
当设置的测试结果区包括测试结果主区和测试结果备区,在根据测试结果区的数据恢复标识确定数据备份区的数据是否已恢复,具体包括:
判断测试结果主区中的数据是否有效,若有效,从测试结果主区中获取数据恢复标识;否则判断测试结果备区中的数据是否有效,当有效时,从测试结果备区中获取数据恢复标识;根据获取到的数据恢复标识确定数据备份区的数据是否已恢复。
步骤S18:从数据备份区中恢复数据至当前测试区域的起始地址对应的当前测试区域中。
当数据备份区的数据未正确恢复到相应的测试区域中时,从数据备份区中恢复数据至当前测试区域的起始地址对应的测试区域中,以便闪存器件能够正常重启。
步骤S19:重启完成后,从当前测试区域的起始地址对应的测试区域继续进行测试。具体包括:
获取测试结果区中的当前测试区域的起始地址,确定对应的当前测试区域;从确定出的当前测试区域开始,继续执行对每个测试区域进行测试的过程,直至测试完划分出的所有测试区域。
上述步骤S12,将闪存器件划分为若干测试区域依次进行测试的具体过程如图2所示,包括下列步骤:
步骤S101:从第一个测试区域进行测试。
根据划分出的测试区域的起始地址,从起始地址最小的第一个测试区域开始逐一对各个测试区域进行测试。
步骤S102:对当前测试区域的数据备份并更新测试结果区的数据。
参见步骤S13,此处不再赘述。
步骤S103:对当前测试区域进行测试。
步骤S104:从数据备份区中恢复当前测试区域的数据。
参见步骤S15,此处不再赘述。
步骤S105:是否测试完所有的测试区域。
若是,执行步骤S107,否则,执行步骤S106。
一般可以测试完一个测试区域时,获取下一个测试区域的起始地址,根据获取的起始地址,判断是否完成了对所有测试区域的测试。
当在闪存器件起始地址开始设置数据备份区和测试结果区时,当获取到的起始地址不小于闪存器件的最大存储地址时,确认已经测试完所有的测试区域。
可选的,也可以根据划分出的测试区域的数量判断,即按起始地址的先后顺序对每个测试区域顺序添加标识号,根据获取的起始地址对应的测试区域的标识号是否不小于测试区域的最大标识号。当对应的测试区域的标识号不小于测试区域的最大标识号时,确定测试完了所有的测试区域。
步骤S106:将选择的下一个测试区域作为当前测试区域。
选择下一个测试区域作为当前测试区域后,返回执行步骤S102。
步骤S107:结束测试流程。
上述步骤S13-步骤S15和步骤S103-步骤S105,对一个测试区域进行测试的具体过程如图3所示,包括下列步骤:
步骤S201:将当前测试区域的数据备份至数据备份区。
将当前测试区域的所有数据包括系统文件等,都备份到数据备份区中。
步骤S202:数据是否备份成功。
若是,执行步骤S203;否则,执行步骤S212。
步骤S203:更新测试结果主区中的当前测试区域的起始地址和数据恢复标识。
即将测试结果主区中的当前测试区域的起始地址更新为当前正在测试的测试区域的起始地址,将其中的数据恢复标识更新为未恢复标识。
在对测试结果区,包括测试结果主区和测试结果备区中的数据进行更新时,一般需要将原来的数据擦除后再写入新的数据。例如:先擦出原来的当前测试区域的起始地址和数据恢复标识后,再写入新的当前测试区域的起始地址和数据恢复标识。
步骤S204:更新测试结果备区中的当前测试区域的起始地址和数据恢复标识。
即将测试结果备区中的当前测试区域的起始地址更新为当前正在测试的测试区域的起始地址,将其中的数据恢复标识更新为未恢复标识。作为对测试结果主区的一个备份,避免在测试结果主区中的数据无效时,不能正确获取到当前测试区域的起始地址和数据恢复标识,进一步保障了数据的正确恢复。
步骤S205:对当前测试区域进行测试。
一般是指对当前测试区域进行读写测试。
步骤S206:更新测试结果主区中的测试结果。
在测试结果主区中记录当前测试区域的测试结果,如果测试结果为存在故障或错误,则可以记录详细的错误码,以备后续查询使用。
步骤S207:更新测试结果备区中的测试结果。
在测试结果备区中记录当前测试区域的测试结果,如果测试结果为存在故障或错误,则可以记录详细的错误码,以备后续查询使用。作为对测试结果主区的一个备份,避免在测试结果主区中的数据无效时,不能正确获取到测试结果数据。
步骤S208:将数据备份区的数据恢复至当前测试区域中。
在将数据备份区的数据恢复至当前测试区域时,为了保证
步骤S209:数据是否恢复成功。
若是,执行步骤S210,否则执行步骤S212。
步骤S210:更新测试结果主区的数据恢复标识。
在对当前区域的测试完成后,将测试结果主区中的数据恢复标识更新为已恢复标识。
步骤S211:更新测试结果备区的数据恢复标识。
在更新测试结果主区的数据恢复标识后,将测试结果备区中的数据恢复标识更新为已恢复标识。作为对测试结果主区的一个备份,避免在测试结果主区中的数据无效时,不能正确获取到数据恢复标识,进一步保障了数据的正确恢复。
步骤S212:记录测试结果。
在步骤S202确定数据备份未成功时,则记录当前测试区域的测试结果为存在错误或故障。在步骤S209确定数据未恢复成功时,也会当前测试区域的测试结果为存在错误或故障。
此时,根据需要,如果当前测试区域的错误和故障会影响后续的正常测试,则此时也可以结束整个测试流程,而不必再去测试下一个测试区域。
上述步骤S16-步骤S18,将闪存器件重启时,数据恢复的具体流程如图4所示,包括下列步骤:
步骤S301:闪存器件发生重启。
步骤S302:从测试结果主区中获取当前测试区域的起始地址和数据恢复标识。
当测试结果主区中的数据有效时,一般先从测试结果主区中获取当前测试区域的起始地址和数据恢复标识。
步骤S303:是否获取到有效的数据。
根据获取的数据的值是不是全f来判断获取的数据是否有效。一般闪存器件在存储数据时,需要先删除原来的数据。因此,如果后来的数据没有正确写入,则闪存器件中存储的该数据的值为全f。
若是,执行步骤S306;否则执行步骤S304。
优选的,当测试结果主区中的数据有效时,可以将测试结果主区中的数据备份至测试结果备区中。
步骤S304:从测试结果备区中获取当前测试区域的起始地址和数据恢复标识。
当测试结果主区中的数据无效时,再从测试结果备区中获取当前测试区域的起始地址和数据恢复标识。
优选的,此时可以将测试结果备区中的数据备份至测试结果主区中。
步骤S305:是否获取到有效的数据。
同样也是根据获取的数据的值是不是全f来判断获取的数据是否有效。
若是,执行步骤S306;否则执行步骤S309。
步骤S306:根据获取的数据恢复标识确定数据备份区的数据是否已恢复。
不论是从测试结果主区还是测试结果备区中获取到数据恢复标识后,便可以根据该标识是未恢复标识还是已恢复标识来判断数据备份区的数据是否已恢复。
若是,执行步骤S308,否则执行步骤S307。
步骤S307:从数据备份区中恢复数据至当前测试区域的起始地址对应的当前测试区域中。
根据测试结果区中的当前测试区域的起始地址找到当前测试的测试区域,从数据备份区中拷贝数据到当前测试区域中,完成数据恢复、
步骤S308:闪存器件重新启动。
数据正常恢复后,闪存器件才能够正常的重新启动。
步骤S309:闪存器件不能重新启动。
由于没有正确恢复数据导致闪存器件没法正常启动。
上述步骤S19,闪存器件重启后,继续测试的具体流程如图5所示,包括下列步骤:
步骤S401:闪存器件重启完成。
步骤S402:从测试结果主区中获取当前测试区域的起始地址。
步骤S403:从测试结果主区中获取的数据是否有效。
若是,执行步骤S406;否则执行步骤S404。
优选的,当测试结果主区中的数据有效时,可以将测试结果主区中的数据备份至测试结果备区中。
步骤S404:从测试结果备区中获取当前测试区域的起始地址。
优选的,此时可以将测试结果备区中的数据备份至测试结果主区中。
步骤S405:从测试结果主区中获取的数据是否有效。
若是,执行步骤S406;否则执行步骤S408。
步骤S406:根据当前测试区域的起始地址确定对应的当前测试区域。
将获取的当前测试区域的起始地址恢复至测试变量中,以实现确定对应的当前测试区域,由测试程序执行从当前测试区域开始测试过程。
步骤S407:从当前测试区域的起始地址对应的测试区域继续进行测试。
对测试区域进行测试的过程参见上述图3的相关描述。
步骤S408:结束测试流程。
根据本发明实施例提供的闪存器件测试方法,可以构建一种闪存器件测试装置,该装置可以设置在板卡中实现对板卡中的闪存器件的测试,也可以设置在网络设备中实现对网络设备中的板卡上的闪存器件的测试。该装置的机构如图6所示,包括:测试控制模块20、预处理模块30、测试模块40和后处理模块50。
测试控制模块20,用于控制预处理模块30对闪存器件中的可用存储区划分出的测试区域依次进行测试。
优选的,上述测试控制模块20,还用于重启完成后,从闪存器件中预设的测试结果区中的当前测试区域的起始地址对应的测试区域继续进行测试。具体用于:重启完成后,获取测试结果区中的当前测试区域的起始地址,确定对应的当前测试区域;从确定出的当前测试区域开始,继续执行对每个测试区域进行测试的过程,直至测试完划分出的所有测试区域。
优选的,上述测试控制模块20,具体用于:测试完一个测试区域,获取下一个测试区域的起始地址时,当获取到的起始地址不小于闪存器件的最大存储地址时或获取到的起始地址对应的测试区域的标识号不小于划分出的测试区域的最大标识号时,确认已经测试完所有的测试区域。
预处理模块30,用于将当前测试区域的数据备份至闪存器件中预设的数据备份区,并更新闪存器件中预设的测试结果区中的当前测试区域的起始地址以及更新数据恢复标识为未恢复标识,并指示测试模块40开始测试。
测试模块40,用于根据预处理模块30的指示对当前测试区域进行测试。
后处理模块50,用于测试模块40对当前测试区域进行测试后,将数据备份区中的数据恢复至当前测试区域,并更新测试结果区中的数据恢复标识为已恢复标识。
优选的,上述闪存器件测试装置,还包括:重启动模块60,用于闪存器件重启时,根据测试结果区的数据恢复标识确定数据备份区的数据是否已恢复;当未恢复时,从数据备份区中恢复数据至当前测试区域的起始地址对应的当前测试区域中。
优选的,上述闪存器件测试装置,还包括:校验模块70;
上述预处理模块30,还用于对当前测试区域进行测试前,在测试结果区中写入当前测试区域的数据的CRC校验值。校验模块70,用于当将数据备份区中的数据恢复到当前测试区域中时,使用测试结果区中的CRC校验值进行数据正确性校验。
优选的,上述划分模块10预设的测试结果区包括测试结果主区和测试结果备区。
相应的,上述预处理模块30,具体用于:在预设的测试结果区中的测试结果主区中写入当前测试区域的起始地址以及添加数据恢复标识为未恢复标识,将测试结果主区中的数据备份至预设的测试结果区中的测试结果备区中。
相应的,上述后处理模块50,具体用于:更新测试结果主区中的数据恢复标识为已恢复标识,以及将测试结果主区中的数据备份至测试结果备区。
相应的,上述重启动模块60,具体用于:闪存器件重启时,判断测试结果主区中的数据是否有效,若有效,从测试结果主区中获取数据恢复标识;否则判断测试结果备区中的数据是否有效,当有效时,从测试结果备区中获取数据恢复标识;根据获取到的数据恢复标识确定数据备份区的数据是否已恢复;当未恢复时,从数据备份区中恢复数据至当前测试区域的起始地址对应的当前测试区域中。
优选的,上述后处理模块50,还用于:对测试区域进行测试后,将测试结果写入测试结果区;具体包括:将测试结果写入测试结果主区,并将测试结果主区的数据更新至测试结果备区。
本发明实施例提供的闪存器件测试方法及装置,在闪存器件重启时,可以根据预设的测试结果区中的数据恢复标识,从预设的数据备份区中恢复数据至测试结果区中的当前测试区域的起始地址对应的当前测试区域中;上述方法,数据恢复的时间点有两个,一个是在测试区域的测试完成后,一个是在重启时。前者避免了测试过程中的数据丢失后者保证了重启时的数据安全,使闪存器件在测试过程中发生重启时能够正常复位并启动,避免系统文件崩溃等灾难性后果。使得闪存器件即使在测试过程中发生重启,也可以正确、有效的恢复出测试区域的数据,避免数据丢失,保证闪存器件的正常重启,即能够保证在闪存器件测试时,即使出现重启也不会破坏闪存器件中的数据,不会导致闪存器件的系统故障。
上述方法在闪存器件重启完成后,可以确定出闪存器件重启前测试到的测试区域,以便从重启前测试到的位置继续进行测试,不仅保证了闪存器件测试的健壮性,也节省了测试时间,极大提高了测试效率。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种闪存器件测试方法,其特征在于,包括:
在闪存器件中预设数据备份区、测试结果区和可用存储区,将可用存储区划分为若干测试区域;对每个所述测试区域进行测试的过程包括:
将当前测试区域的数据备份至数据备份区,并更新测试结果区中的当前测试区域的起始地址以及更新数据恢复标识为未恢复标识;对当前测试区域进行测试后,将数据备份区中的数据恢复至当前测试区域,并更新所述数据恢复标识为已恢复标识。
2.如权利要求1所述的方法,其特征在于,还包括:
闪存器件重启时,根据测试结果区的数据恢复标识确定数据备份区的数据是否已恢复;当未恢复时,从所述数据备份区中恢复数据至所述测试结果区中存储的起始地址对应的当前测试区域中;重启完成后,从所述当前测试区域的起始地址对应的测试区域继续进行测试。
3.如权利要求1所述的方法,其特征在于,在测试完一个测试区域时,还包括:
获取下一个测试区域的起始地址,当获取到的起始地址不小于闪存器件的最大存储地址时或获取到的起始地址对应的测试区域的标识号不小于划分出的测试区域的最大标识号时,确认已经测试完所有的测试区域。
4.如权利要求1所述的方法,其特征在于,对当前测试区域进行测试前,还包括:在测试结果区中写入当前测试区域的数据的CRC校验值;
当将数据备份区中的数据恢复到当前测试区域中时,还包括:使用所述CRC校验值进行数据正确性校验。
5.如权利要求1-4任一所述的方法,其特征在于,所述测试结果区包括测试结果主区和测试结果备区;
所述更新测试结果区中的当前测试区域的起始地址以及更新数据恢复标识为未恢复标识,具体包括:在测试结果主区中写入当前测试区域的起始地址以及更新数据恢复标识为未恢复标识,将测试结果主区中的数据备份测试结果备区中;
所述更新所述数据恢复标识为已恢复标识,具体包括:更新测试结果主区中的数据恢复标识为已恢复标识,以及将测试结果主区中的数据备份至测试结果备区。
6.如权利要求5所述的方法,其特征在于,所述闪存器件重启时,根据测试结果区的数据恢复标识确定数据备份区的数据是否已恢复,具体包括:
判断测试结果主区中的数据是否有效,若有效,从测试结果主区中获取数据恢复标识;否则判断测试结果备区中的数据是否有效,当有效时,从测试结果备区中获取数据恢复标识;
根据获取到的数据恢复标识确定数据备份区的数据是否已恢复。
7.如权利要求5所述的方法,其特征在于,对所述测试区域进行测试后,还包括:将测试结果写入所述测试结果区;具体包括:
将测试结果写入测试结果主区,并将测试结果主区的数据更新至测试结果备区。
8.一种闪存器件测试装置,其特征在于,包括:测试控制模块、预处理模块、测试模块和后处理模块;
所述测试控制模块,用于控制所述预处理模块对闪存器件中的可用存储区划分出的测试区域依次进行测试;
所述预处理模块,用于将当前测试区域的数据备份至闪存器件中预设的数据备份区,并更新闪存器件中预设的测试结果区中的当前测试区域的起始地址以及更新数据恢复标识为未恢复标识,并指示所述测试模块开始测试;
所述测试模块,用于根据预处理模块的指示对当前测试区域进行测试;
所述后处理模块,用于所述测试模块对当前测试区域进行测试后,将数据备份区中的数据恢复至当前测试区域,并更新所述数据恢复标识为已恢复标识。
9.如权利要求8所述的装置,其特征在于,还包括:重启动模块;
所述重启动模块,用于闪存器件重启时,根据测试结果区的数据恢复标识确定数据备份区的数据是否已恢复;当未恢复时,从所述数据备份区中恢复数据至所述当前测试区域的起始地址对应的当前测试区域中;
所述测试控制模块,还用于重启完成后,从闪存器件中预设的测试结果区中的当前测试区域的起始地址对应的测试区域继续进行测试。
10.如权利要求8所述的装置,其特征在于,所述测试控制模块,具体用于:
测试完一个测试区域,获取下一个测试区域的起始地址时,当获取到的起始地址不小于闪存器件的最大存储地址时或获取到的起始地址对应的测试区域的标识号不小于划分出的测试区域的最大标识号时,确认已经测试完所有的测试区域。
11.如权利要求8所述的装置,其特征在于,还包括:校验模块;
所述预处理模块,还用于对当前测试区域进行测试前,在测试结果区中写入当前测试区域的数据的CRC校验值;
所述校验模块,用于当将数据备份区中的数据恢复到当前测试区域中时,使用所述CRC校验值进行数据正确性校验。
12.如权利要求8-11所述的装置,其特征在于,所述预处理模块,具体用于:在预设的测试结果区中的测试结果主区中写入当前测试区域的起始地址以及更新数据恢复标识为未恢复标识,将测试结果主区中的数据备份至预设的测试结果区中的测试结果备区中;
所述后处理模块,具体用于:更新测试结果主区中的数据恢复标识为已恢复标识,以及将测试结果主区中的数据备份至测试结果备区。
13.如权利要求12所述的装置,其特征在于,所述重启动模块,具体用于:
闪存器件重启时,判断测试结果主区中的数据是否有效,若有效,从测试结果主区中获取数据恢复标识;否则判断测试结果备区中的数据是否有效,当有效时,从测试结果备区中获取数据恢复标识;
根据获取到的数据恢复标识确定数据备份区的数据是否已恢复;当未恢复时,从所述数据备份区中恢复数据至所述当前测试区域的起始地址对应的当前测试区域中。
14.如权利要求12所述的装置,其特征在于,所述后处理模块,还用于:
对所述测试区域进行测试后,将测试结果写入所述测试结果区;具体包括:将测试结果写入测试结果主区,并将测试结果主区的数据更新至测试结果备区。
15.一种板卡,其特征在于,包括:闪存器件和如权利要求8-14任一所述的闪存器件测试装置;
所述闪存器件中预设数据备份区、测试结果区和可用存储区,所述可用存储区划分为若干测试区域。
16.一种网络设备,其特征在于,包括:如权利要求8-14任一所述的闪存器件测试装置、板卡;所述板卡上设置闪存器件;
所述闪存器件中预设数据备份区、测试结果区和可用存储区,所述可用存储区划分为若干测试区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010580591 CN102024502B (zh) | 2010-12-09 | 2010-12-09 | 闪存器件测试方法、装置及板卡和网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010580591 CN102024502B (zh) | 2010-12-09 | 2010-12-09 | 闪存器件测试方法、装置及板卡和网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102024502A true CN102024502A (zh) | 2011-04-20 |
CN102024502B CN102024502B (zh) | 2013-06-05 |
Family
ID=43865692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010580591 Expired - Fee Related CN102024502B (zh) | 2010-12-09 | 2010-12-09 | 闪存器件测试方法、装置及板卡和网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102024502B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102522122A (zh) * | 2011-12-02 | 2012-06-27 | 华为技术有限公司 | 测试方法及设备 |
CN103077743A (zh) * | 2011-10-25 | 2013-05-01 | 慧荣科技股份有限公司 | 内嵌闪存卡烧机方法以及测试板、以及内嵌闪存卡 |
CN103208313A (zh) * | 2013-04-26 | 2013-07-17 | 杭州和利时自动化有限公司 | 一种检测方法及系统 |
CN104519516A (zh) * | 2013-09-29 | 2015-04-15 | 华为技术有限公司 | 对存储器进行测试的方法及装置 |
CN105630627A (zh) * | 2014-11-08 | 2016-06-01 | 智比特信息技术(镇江)有限公司 | 一种计算机在测试断电时的资料备份方法 |
CN109739127A (zh) * | 2018-12-28 | 2019-05-10 | 广东九联科技股份有限公司 | 一种智能的程控信息抓捕方法 |
CN109815071A (zh) * | 2019-01-04 | 2019-05-28 | 珠海妙存科技有限公司 | 一种基于Linux系统的存储介质掉电测试方法 |
CN109992463A (zh) * | 2018-01-03 | 2019-07-09 | 浙江舜宇智能光学技术有限公司 | 一种具有自动检测可移动式存储设备读写速度适配电子设备的方法和系统 |
CN111739575A (zh) * | 2020-08-25 | 2020-10-02 | 武汉精鸿电子技术有限公司 | 存储芯片品质检测方法、装置、设备及可读存储介质 |
WO2023272585A1 (zh) * | 2021-06-30 | 2023-01-05 | 华为技术有限公司 | 一种测试存储器的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1417682A (zh) * | 2001-11-06 | 2003-05-14 | 华为技术有限公司 | 动态存储器功能测试方法 |
US20070150777A1 (en) * | 2005-12-26 | 2007-06-28 | Nec Electronics Corporation | Memory test circuit and method |
CN101201778A (zh) * | 2006-12-14 | 2008-06-18 | 英业达股份有限公司 | 可扩展固件接口下硬盘测试方法 |
-
2010
- 2010-12-09 CN CN 201010580591 patent/CN102024502B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1417682A (zh) * | 2001-11-06 | 2003-05-14 | 华为技术有限公司 | 动态存储器功能测试方法 |
US20070150777A1 (en) * | 2005-12-26 | 2007-06-28 | Nec Electronics Corporation | Memory test circuit and method |
CN101201778A (zh) * | 2006-12-14 | 2008-06-18 | 英业达股份有限公司 | 可扩展固件接口下硬盘测试方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077743A (zh) * | 2011-10-25 | 2013-05-01 | 慧荣科技股份有限公司 | 内嵌闪存卡烧机方法以及测试板、以及内嵌闪存卡 |
CN103077743B (zh) * | 2011-10-25 | 2015-08-05 | 慧荣科技股份有限公司 | 内嵌闪存卡烧机方法以及测试板、以及内嵌闪存卡 |
CN102522122B (zh) * | 2011-12-02 | 2015-08-05 | 华为技术有限公司 | 测试方法及设备 |
CN102522122A (zh) * | 2011-12-02 | 2012-06-27 | 华为技术有限公司 | 测试方法及设备 |
CN103208313A (zh) * | 2013-04-26 | 2013-07-17 | 杭州和利时自动化有限公司 | 一种检测方法及系统 |
CN103208313B (zh) * | 2013-04-26 | 2017-04-19 | 杭州和利时自动化有限公司 | 一种检测方法及系统 |
CN104519516B (zh) * | 2013-09-29 | 2018-11-09 | 华为技术有限公司 | 对存储器进行测试的方法及装置 |
CN104519516A (zh) * | 2013-09-29 | 2015-04-15 | 华为技术有限公司 | 对存储器进行测试的方法及装置 |
CN105630627A (zh) * | 2014-11-08 | 2016-06-01 | 智比特信息技术(镇江)有限公司 | 一种计算机在测试断电时的资料备份方法 |
CN109992463A (zh) * | 2018-01-03 | 2019-07-09 | 浙江舜宇智能光学技术有限公司 | 一种具有自动检测可移动式存储设备读写速度适配电子设备的方法和系统 |
CN109739127A (zh) * | 2018-12-28 | 2019-05-10 | 广东九联科技股份有限公司 | 一种智能的程控信息抓捕方法 |
CN109815071A (zh) * | 2019-01-04 | 2019-05-28 | 珠海妙存科技有限公司 | 一种基于Linux系统的存储介质掉电测试方法 |
CN111739575A (zh) * | 2020-08-25 | 2020-10-02 | 武汉精鸿电子技术有限公司 | 存储芯片品质检测方法、装置、设备及可读存储介质 |
CN111739575B (zh) * | 2020-08-25 | 2020-12-01 | 武汉精鸿电子技术有限公司 | 存储芯片品质检测方法、装置、设备及可读存储介质 |
WO2023272585A1 (zh) * | 2021-06-30 | 2023-01-05 | 华为技术有限公司 | 一种测试存储器的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102024502B (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102024502B (zh) | 闪存器件测试方法、装置及板卡和网络设备 | |
CN100578461C (zh) | 一种引导程序的备份方法及其备份装置 | |
CN101903866B (zh) | 非易失存储介质中的数据存储的方法和系统 | |
US8341386B2 (en) | Method for updating basic input/output system and method for repairing thereof | |
CN102023908A (zh) | 一种引导程序备份方法及装置 | |
US20150143174A1 (en) | Method and apparatus for recovering metadata lost during an unexpected power down event | |
CN104750565B (zh) | Nand坏块处理方法及nand闪存设备 | |
CN102298545B (zh) | 一种系统启动引导处理方法及装置 | |
CN106155915B (zh) | 数据存储的处理方法及装置 | |
CN103577121A (zh) | 一种基于nand flash的高可靠线性文件存取方法 | |
KR20080037283A (ko) | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 | |
CN102945179A (zh) | 基于mtd分区的软件升级方法和装置 | |
CN105138433A (zh) | 对嵌入式Linux操作系统中的UBIFS文件系统备份方法 | |
CN101576966A (zh) | 一种读写存储卡的方法及装置 | |
CN111552592A (zh) | 一种双备份启动方法及系统 | |
US20190317686A1 (en) | Method, apparatus, device and storage medium for processing data location of storage device | |
CN110781026A (zh) | 嵌入式设备数据存储与修复方法、装置和嵌入式设备 | |
CN109240622A (zh) | 一种eeprom数据写入的方法及系统 | |
CN105868047A (zh) | 数据分区的修复方法、装置及终端 | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
CN110865906A (zh) | 一种电机初始位置角度存储方法、装置、车辆及存储介质 | |
CN115202579A (zh) | 一种存储器数据保存方法和系统 | |
JP2018028830A (ja) | 電子制御装置およびその情報記憶方法 | |
CN116072202A (zh) | 一种存储设备的管理方法、系统及存储介质 | |
CN100370422C (zh) | 设备启动方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130605 Termination date: 20151209 |
|
EXPY | Termination of patent right or utility model |