一种固态硬盘的上下电测试方法、装置以及介质与流程
- 国知局
- 2024-07-31 19:44:47
本发明涉及存储,特别是涉及一种固态硬盘的上下电测试方法、装置以及介质。背景技术:::1、固态硬盘由于必须使用闪存转换器(flash translation layer,ftl)做逻辑地址和物理地址之间的转换,如果在固态硬盘读、写、删除等正常工作的情况下出现异常掉电,有可能会导致映射表(mapping table)因为来不及更新而丢失,从而固态硬盘出现无法被系统识别的故障,导致保存的数据错误。因此,为了避免使用固态硬盘时保存错误的数据,需要保证上下电对固态硬盘的识别和数据保存无影响,进而需要对固态硬盘进行上下电测试。目前对固态硬盘的上下电测试的方案,仅下发一个命令进行全盘写数据,在进行下电和上电操作之后,若固态硬盘内写入的数据异常,则表征固态硬盘状态异常,无法满足使用需求。2、但是,目前的方案通过判断写入的数据是否异常来确定固态硬盘的状态,判断过程复杂,进而导致测试的准确性较低,且无法确认发生掉电的位置,导致测试的全面性较差。3、由此可见,如何提高对固态硬盘上下电测试的准确性和全面性,是本领域技术人员亟待解决的问题。技术实现思路1、本发明的目的是提供一种固态硬盘的上下电测试方法、装置以及介质,以解决固态硬盘上下电测试的准确性低和全面性差的问题。2、为解决上述技术问题,本发明提供一种固态硬盘的上下电测试方法,包括:3、获取待测固态硬盘的原本的第一数据;4、执行写命令以向所述待测固态硬盘中对应的测试区域写入所述写命令对应的第二数据;其中,在执行所述写命令的过程中对所述待测固态硬盘进行下电操作以及上电操作;所述写命令与所述测试区域相对应,且若所述测试区域之间存在交叠部分,则对应的多个所述写命令的所述第二数据不同;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、另一方面,所述测试区域的大小以及所处位置为随机值。37、另一方面,在所述获取待测固态硬盘的原本的第一数据之前,还包括:38、调用格式化处理程序;39、通过所述格式化处理程序对所述待测固态硬盘进行格式化处理;40、向所述待测固态硬盘全盘写入所述第一数据。41、另一方面,在向所述待测固态硬盘全盘写入所述第一数据之后,还包括:42、对所述待测固态硬盘使用所述第一数据进行校验;43、若所述第一数据校验正确,则进入所述执行写命令以向所述待测固态硬盘中对应的测试区域写入所述写命令对应的第二数据的步骤;44、若所述第一数据校验报错,则提示所述待测固态硬盘写入数据失败。45、为解决上述技术问题,本发明还提供一种固态硬盘的上下电测试装置,包括:46、获取模块,用于获取待测固态硬盘的原本的第一数据;47、写入模块,用于执行写命令以向所述待测固态硬盘中对应的测试区域写入所述写命令对应的第二数据;其中,在执行所述写命令的过程中对所述待测固态硬盘进行下电操作以及上电操作;所述写命令与所述测试区域相对应,且若所述测试区域之间存在交叠部分,则对应的多个所述写命令的所述第二数据不同;48、校验模块,用于在所述待测固态硬盘上电之后,根据所述写命令的执行状态,使用所述第一数据和/或对应的所述第二数据对所述待测固态硬盘的当前数据按写入顺序进行校验,以确定所述待测固态硬盘的当前状态;其中,若校验结果不满足校验逻辑,则判定所述待测固态硬盘为非正常状态;所述执行状态包括执行成功和执行失败;所述校验逻辑包括:若所述写命令执行成功,则在未被重新写入数据之前,对应的所述测试区域的当前数据全为对应的所述第二数据;且第一个执行失败的所述写命令对应的所述测试区域的校验报错位置之前的当前数据为对应的所述第二数据,校验报错位置之后的当前数据为执行对应的所述写命令之前的数据。49、另一方面,所述固态硬盘的上下电测试装置还包括:调用模块,用于在所述获取待测固态硬盘的原本的第一数据之前,调用格式化处理程序;50、格式化模块,用于通过所述格式化处理程序对所述待测固态硬盘进行格式化处理;51、所述写入模块,还用于向所述待测固态硬盘全盘写入所述第一数据。52、另一方面,所述固态硬盘的上下电测试装置的校验模块,还用于在向所述待测固态硬盘全盘写入所述第一数据之后,对所述待测固态硬盘使用所述第一数据进行校验;若所述第一数据校验正确,则进入所述执行写命令以向所述待测固态硬盘中对应的测试区域写入所述写命令对应的第二数据的步骤;53、所述固态硬盘的上下电测试装置还包括:提示模块,用于若所述第一数据校验报错,则提示所述待测固态硬盘写入数据失败。54、为解决上述技术问题,本发明还提供一种固态硬盘的上下电测试装置,包括:存储器,用于存储计算机程序;55、处理器,用于执行计算机程序时实现上述固态硬盘的上下电测试方法的步骤。56、为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述固态硬盘的上下电测试方法的步骤。57、本发明所提供的一种固态硬盘的上下电测试方法,先获取待测固态硬盘的原本的第一数据,然后执行写命令以向待测固态硬盘中对应的测试区域写入写命令对应的第二数据;并在执行写命令的过程中对待测固态硬盘进行下电操作以及上电操作。在待测固态硬盘上电之后,根据写命令的执行状态,使用第一数据和/或对应的第二数据对待测固态硬盘的当前数据按写入顺序进行校验,以确定待测固态硬盘的当前状态,若校验结果不满足校验逻辑,则判定待测固态硬盘为非正常状态。其中,写命令与测试区域相对应,且若测试区域之间存在交叠部分,则对应的多个写命令的第二数据不同;执行状态包括执行成功和执行失败。根据写命令的执行情况可得到对应的校验逻辑:若写命令执行成功,则在未被重新写入数据之前,对应的测试区域的当前数据应该全为对应的第二数据;第一个执行失败的写命令对应的测试区域的校验报错位置之前的当前数据应该为对应的第二数据,校验报错位置之后的当前数据应该为执行对应的写命令之前的数据。相较于原来判断写入的数据是否异常的方案,本方案的有益效果是,使用第一数据和第二数据进行校验,根据校验结果与写命令的执行状态对应与否来确定硬盘状态,避免了复杂的判断过程,能够较快的确定出待测固态硬盘的当前状态,通过对比第一数据和第二数据也能够提高测试的准确性;且通过此方案,当异常掉电后,对应位置的数据会不同,进而能够根据校验报错位置确认发生掉电的位置,提高了测试的全面性。58、此外,对于不存在交叠部分的测试区域,根据写命令执行成功与否,使用对应的第二数据和第一数据能够快速的对不存在交叠部分的测试区域进行校验,并能够根据校验报错位置确定固态硬盘的掉电位置。实际应用中,测试区域可能存在多个,且写命令并行执行,能够提高效率。而对于存在交叠部分的多个测试区域,可根据各写命令执行情况的不同,分别对应不同的校验方案,从而对不同情况均实现有效的测试。此外,测试区域的大小以及所处位置为随机值,能够更好的模拟实际使用固态硬盘的场景。在进行校验之前,先对固态硬盘进行格式化处理,避免原数据对测试产生影响,然后再写入准备好的第一数据,能够提供后续校验的效率和准确性。在写入第一数据之后,对第一数据进行一次校验,保证固态硬盘能够正常读写。59、本发明还提供了一种固态硬盘的上下电测试装置和计算机可读存储介质,与上述方法对应,故具有与上述方法相同的有益效果。当前第1页12当前第1页12
本文地址:https://www.jishuxx.com/zhuanli/20240731/183812.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表