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

基于异步事件的SSDCriticalWarning字段测试方法和装置与流程

2020-12-29 13:19:00 来源:中国专利 TAG:
本发明涉及固态硬盘测试
技术领域
:,特别是涉及一种基于异步事件的ssdcriticalwarning字段测试方法、装置、计算机设备及存储介质。
背景技术
::目前,在对pcienvmessd(以下简称ssd)的smart(self-monitoringanlysisandreportingtechnology,自我监控、分析及报告技术,以下简称smart)信息进行检查时,通常会关注其criticalwarning字段的值是否存在非0的状况,若存在,则表明在当前上电周期内,ssd出现了异常状况,且会向主机报告相应的异步事件。根据nvme1.3协议所述,共有5种异常会导致ssd的smart信息中criticalwarning字段的值为非0,这5种异常分别为:当ssd的availablespare低于其设定的阈值时,criticalwarning字段的值会被置为1h。当ssd的compositetemperature高于其设定的高温阈值或低于其低温阈值时,criticalwarning字段的值会被置为02h。当ssd出现mediaanddataintegrityerrors时,criticalwarning字段的值会被置为04h。当ssd变为只读状态时(通常当ssd的寿命已被耗尽时出现),criticalwarning字段的值会被置为08h。当ssd的掉电保护器件(该器件通常为掉电保护电容,一般只有企业级ssd才具备)失效时,criticalwarning字段的值会被置为10h。此外,根据nvme1.3协议所述criticalwarning字段的值仅代表当前上电周期内的状态,这个值并非是一直固定的,换言之,当对ssd进行硬件复位或重上电后,该值会被清零,除非在硬件复位或重新上电后再次出现上述任一种异常。在上述5种异常中,compositetemperature异常和mediaanddataintegrityerrors异常为两种最常见的导致criticalwarning字段为非0的异常,且根据nvme1.3协议所述,当出现这两种异常时,前者会触发ssd向主机报告温度异常的异步事件,而后者会触发ssd向主机报告其可靠性下降的异步事件。目前,为验证当ssd出现上述两种最常见的异常后,其criticalwarning字段是否被正确地设置为相应的值,对于compositetemperature异常,通常所采用的方法是将ssd放置于高温环境中并对其进行长时间的读写测试,使其compositetemperature升高并超过其所设定的高温阈值(通常在出厂前ssd固件将此阈值设置为70℃~85℃左右)后,再读取其criticalwarning字段是否被置为02h,然后停止读写,待ssd温度降至所设的温度阈值之下后,重启测试平台,再次读取criticalwarning字段是否已被清零,但这种测试方法无法验证当criticalwarning字段为02h时,ssd是否会正确地向主机报告温度异常的异常事件。而对于mediaanddataintegrityerrors异常,通常所采用的方法是对ssd进行长时间高频次的异常掉电及读写比较测试来实现,当出现mediaanddataintegrityerrors后,criticalwarning字段的值会被置为10h,然后停止掉电及读写测试,重启测试平台,再次读取criticalwarning字段是否已被清零,但这种测试方法也无法验证当criticalwarning字段为10h时,ssd是否会正确地向主机报告其可靠性下降的异常事件,且这种测试方法所需测试时间往往较长,不利于快速验证。技术实现要素:基于此,有必要针对上述技术问题,提供一种可以在笔记本出厂前对已有镜像的固态硬盘进行拦截的基于异步事件的ssdcriticalwarning字段测试方法、装置、计算机设备及存储介质。一种基于异步事件的ssdcriticalwarning字段测试方法,所述方法包括:设置ssd的高温阈值为0℃并保存;读取并判读所述ssd的criticalwarning字段是否已被置为02h;若所述ssd的criticalwarning字段已被置为02h,则对所述ssd下发异步事件请求命令;判断所述ssd是否已正确回应compositetemperature异常的异步事件;若所述ssd已正确回应compositetemperature异常的异步事件,则将所述ssd的高温阈值重置为出厂前的值并保存;对所述ssd进行硬件复位并判断所述ssd的criticalwarning字段是否已被清零,若未被清零则脚本报错测试结束。在其中一个实施例中,在所述对所述ssd进行硬件复位,并判断所述ssd的criticalwarning字段是否已被清零步骤之后还包括:若所述ssd的criticalwarning字段已被清零,则对所述ssd下发writeuncorrectable命令;读取并判断所述ssd的criticalwarning字段是否已被置为10h;若所述ssd的criticalwarning字段已被置为10h,则对所述ssd下发异步事件请求命令;判断所述ssd是否已正确回应mediaanddataintegrityerrors异常的异步事件;若所述ssd已正确回应mediaanddataintegrityerrors异常的异步事件,则对所述ssd进行硬件复位;判断所述ssd的criticalwarning字段是否已被清零,若未被清零则脚本报错测试结束,若已被清零则测试通过。在其中一个实施例中,在所述读取并判读所述ssd的criticalwarning字段是否已被置为02h的步骤之后还包括:若所述ssd的criticalwarning字段未被置为02h,则脚本报错测试结束。在其中一个实施例中,在所述读取并判断所述ssd的criticalwarning字段是否已被置为10h的步骤之后还包括:若所述ssd的criticalwarning字段未被置为10h,则脚本报错测试结束。一种基于异步事件的ssdcriticalwarning字段测试装置,所述装置包括:第一设置模块,所述第一设置模块用于设置ssd的高温阈值为0℃并保存;第一判断模块,所述第一判断模块用于读取并判读所述ssd的criticalwarning字段是否已被置为02h;第一命令模块,所述第一命令模块用于若所述ssd的criticalwarning字段已被置为02h,则对所述ssd下发异步事件请求命令;第二判断模块,所述第二判断模块用于判断所述ssd是否已正确回应compositetemperature异常的异步事件;第二设置模块,所述第二设置模块用于若所述ssd已正确回应compositetemperature异常的异步事件,则将所述ssd的高温阈值重置为出厂前的值并保存;第三判断模块,所述第三判断模块用于对所述ssd进行硬件复位并判断所述ssd的criticalwarning字段是否已被清零,若未被清零则脚本报错测试结束。在其中一个实施例中,所述装置还包括:第二命令模块,所述第二命令模块用于若所述ssd的criticalwarning字段已被清零,则对所述ssd下发writeuncorrectable命令;第四判断模块,所述第四判断模块用于读取并判断所述ssd的criticalwarning字段是否已被置为10h;第三命令模块,所述第三命令模块用于若所述ssd的criticalwarning字段已被置为10h,则对所述ssd下发异步事件请求命令;第五判断模块,所述第五判断模块用于判断所述ssd是否已正确回应mediaanddataintegrityerrors异常的异步事件;硬件复位模块,所述硬件复位模块用于若所述ssd已正确回应mediaanddataintegrityerrors异常的异步事件,则对所述ssd进行硬件复位;第六判断模块,所述第六判断模块用于判断所述ssd的criticalwarning字段是否已被清零,若未被清零则脚本报错测试结束,若已被清零则测试通过。在其中一个实施例中,所述第一判断模块还用于:若所述ssd的criticalwarning字段未被置为02h,则脚本报错测试结束。在其中一个实施例中,所述第四判断模块还用于:若所述ssd的criticalwarning字段未被置为10h,则脚本报错测试结束。一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。上述基于异步事件的ssdcriticalwarning字段测试方法、装置、计算机设备及存储介质通过设置ssd的高温阈值为0℃并保存;读取并判读所述ssd的criticalwarning字段是否已被置为02h;若所述ssd的criticalwarning字段已被置为02h,则对所述ssd下发异步事件请求命令;判断所述ssd是否已正确回应compositetemperature异常的异步事件;若所述ssd已正确回应compositetemperature异常的异步事件,则将所述ssd的高温阈值重置为出厂前的值并保存;对所述ssd进行硬件复位并判断所述ssd的criticalwarning字段是否已被清零,若未被清零则脚本报错测试结束。本发明能快速高效地验证在出现了compositetemperature异常后,ssd是否能正确地将其criticalwarning字段置为相应的值,以及是否正确地向主机回应相应的异步事件,且该测试方法所需测试时间较短,适用于快速验证的测试场景。附图说明图1为一个实施例中基于异步事件的ssdcriticalwarning字段测试方法的流程示意图;图2为另一个实施例中基于异步事件的ssdcriticalwarning字段测试方法的流程示意图;图3为再一个实施例中基于异步事件的ssdcriticalwarning字段测试方法的流程示意图;图4为一个实施例中基于异步事件的ssdcriticalwarning字段测试装置的结构框图;图5为另一个实施例中基于异步事件的ssdcriticalwarning字段测试装置的结构框图;图6为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。在一个实施例中,如图1所示,提供了一种基于异步事件的ssdcriticalwarning字段测试方法,该方法包括:步骤102,设置ssd的高温阈值为0℃并保存;步骤104,读取并判读ssd的criticalwarning字段是否已被置为02h;步骤106,若ssd的criticalwarning字段已被置为02h,则对ssd下发异步事件请求命令;步骤108,判断ssd是否已正确回应compositetemperature异常的异步事件;步骤110,若ssd已正确回应compositetemperature异常的异步事件,则将ssd的高温阈值重置为出厂前的值并保存;步骤112,对ssd进行硬件复位并判断ssd的criticalwarning字段是否已被清零,若未被清零则脚本报错测试结束。目前,为验证当ssd出现smart信息中compositetemperature这种最常见的异常后,其criticalwarning字段是否被正确地设置为相应的值,对于compositetemperature异常,通常所采用的方法是将ssd放置于高温环境中并对其进行长时间的读写测试,使其compositetemperature升高并超过其所设定的高温阈值(通常在出厂前ssd固件将此阈值设置为70℃~85℃左右)后,再读取其criticalwarning字段是否被置为02h,然后停止读写,待ssd温度降至所设的温度阈值之下后,重启测试平台,再次读取criticalwarning字段是否已被清零,但这种测试方法无法验证当criticalwarning字段为02h时,ssd是否会正确地向主机报告温度异常的异常事件;且这种测试方法所需测试时间往往较长,不利于快速验证。基于此,在本实施例中提供了一种基于异步事件的ssdcriticalwarning字段测试方法,通过利用ulink公司的drivemaster软件,编写测试脚本,使用“注错”的方法来验证ssd的criticalwarning及相应的异步事件功能,即通过将ssd的高温阈值大幅降低至0℃,使得ssd的compositetemperature立刻就能超出0℃,从而触发criticalwarning字段的值从00h变为02h,并读取ssd是否已正确向主机报告compositetemperature异常的异步事件。在一个实施例中,在读取并判读ssd的criticalwarning字段是否已被置为02h的步骤之后还包括:若ssd的criticalwarning字段未被置为02h,则脚本报错测试结束。具体地,可参考图3所示的脚本测试流程示意图。首先,将ssd的高温阈值设置为0℃并保存;读取ssd的criticalwarning是否已被置为02h,若不是,则脚本报错,测试结束。接着,对ssd下发异步事件请求命令;读取ssd是否已正确回应compositetemperature异常的异步事件,若不是,则脚本报错,测试结束。然后,将ssd的高温阈值重设回出厂前的值并保存;对ssd进行硬件复位。最后,读取ssd的criticalwarning是否已被清零,若不是,则脚本报错,测试结束。在本实施例中,通过设置ssd的高温阈值为0℃并保存;读取并判读所述ssd的criticalwarning字段是否已被置为02h;若所述ssd的criticalwarning字段已被置为02h,则对所述ssd下发异步事件请求命令;判断所述ssd是否已正确回应compositetemperature异常的异步事件;若所述ssd已正确回应compositetemperature异常的异步事件,则将所述ssd的高温阈值重置为出厂前的值并保存;对所述ssd进行硬件复位并判断所述ssd的criticalwarning字段是否已被清零,若未被清零则脚本报错测试结束。本方案能快速高效地验证在出现了compositetemperature异常后,ssd是否能正确地将其criticalwarning字段置为相应的值,以及是否正确地向主机回应相应的异步事件,且该测试方法所需测试时间较短,适用于快速验证的测试场景。在一个实施例中,如图2所示,提供了一种基于异步事件的ssdcriticalwarning字段测试方法,该方法在对ssd进行硬件复位,并判断ssd的criticalwarning字段是否已被清零步骤之后还包括:步骤202,若ssd的criticalwarning字段已被清零,则对ssd下发writeuncorrectable命令;步骤204,读取并判断ssd的criticalwarning字段是否已被置为10h;步骤206,若ssd的criticalwarning字段已被置为10h,则对ssd下发异步事件请求命令;步骤208,判断ssd是否已正确回应mediaanddataintegrityerrors异常的异步事件;步骤210,若ssd已正确回应mediaanddataintegrityerrors异常的异步事件,则对ssd进行硬件复位;步骤212,判断ssd的criticalwarning字段是否已被清零,若未被清零则脚本报错测试结束,若已被清零则测试通过。目前,为验证当ssd出现smart信息中mediaanddataintegrityerrors这种最常见的异常后,其criticalwarning字段是否被正确地设置为相应的值,对于mediaanddataintegrityerrors异常,通常所采用的方法是对ssd进行长时间高频次的异常掉电及读写比较测试来实现,当出现mediaanddataintegrityerrors后,criticalwarning字段的值会被置为10h,然后停止掉电及读写测试,重启测试平台,再次读取criticalwarning字段是否已被清零,但这种测试方法也无法验证当criticalwarning字段为10h时,ssd是否会正确地向主机报告其可靠性下降的异常事件,且这种测试方法所需测试时间往往较长,不利于快速验证。基于此,在本实施例中一种基于异步事件的ssdcriticalwarning字段测试方法,该方法利用ulink公司的drivemaster软件,编写测试脚本,使用“注错”的方法来验证ssd的criticalwarning及相应的异步事件功能,即通过将ssd的高温阈值大幅降低至0℃,使得ssd的compositetemperature立刻就能超出0℃,从而触发criticalwarning字段的值从00h变为02h,并读取ssd是否已正确向主机报告compositetemperature异常的异步事件。此外,脚本还通过下发writeuncorrectable命令来将ssd某个区域标记为无效区域,并下发读命令读取该无效区域来触发ssd出现mediaanddataintegrityerrors异常,从而触发criticalwarning字段的值从00h变为10h,并读取ssd是否已正确向主机报告其可靠性下降的异步事件。在一个具体的实施例中,实现该测试方法的测试环境如下:硬件需求:待测计算机:联想thinkcentrem8600t-n000台式计算机。对于待测计算机,本实施例中优选联想thinkcentrem8600t-n000台式计算机作为待测计算机。待测ssd:支持pcie和nvme协议的ssd。软件需求:操作系统:windows10操作系统;测试软件:ulinkdrivemaster2015nvme;测试脚本:自编写的drivemaster测试脚本。测试脚本的实现流程可参考图3所示,包括如下实现步骤:1、将ssd的高温阈值设置为0℃并保存。2、读取ssd的criticalwarning是否已被置为02h,若不是,则脚本报错,测试结束。3、对ssd下发异步事件请求命令。4、读取ssd是否已正确回应compositetemperature异常的异步事件,若不是,则脚本报错,测试结束。5、将ssd的高温阈值重设回出厂前的值并保存。6、对ssd进行硬件复位。7、读取ssd的criticalwarning是否已被清零,若不是,则脚本报错,测试结束。8、对ssd某区域下发writeuncorrectable命令。9、对ssd下发读命令读取该区域。10、读取ssd的criticalwarning是否已被置为10h,若不是,则脚本报错,测试结束。11、对ssd下发异步事件请求命令。12、读取ssd是否已正确回应mediaanddataintegrityerrors异常的异步事件,若不是,则脚本报错,测试结束。13、对ssd进行硬件复位。14、读取ssd的“criticalwarning”是否已被清零,若不是,则脚本报错,测试结束。在本实施例中,通过上述方法能快速高效地验证在出现了compositetemperature异常和mediaanddataintegrityerrors异常后,ssd是否能正确地将其criticalwarning字段置为相应的值,以及是否正确地向主机回应相应的异步事件。应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。在一个实施例中,如图4所示,提供了一种基于异步事件的ssdcriticalwarning字段测试装置400,该装置包括:第一设置模块401,用于设置ssd的高温阈值为0℃并保存;第一判断模块402,用于读取并判读所述ssd的criticalwarning字段是否已被置为02h;第一命令模块403,用于若所述ssd的criticalwarning字段已被置为02h,则对所述ssd下发异步事件请求命令;第二判断模块404,用于判断所述ssd是否已正确回应compositetemperature异常的异步事件;第二设置模块405,用于若所述ssd已正确回应compositetemperature异常的异步事件,则将所述ssd的高温阈值重置为出厂前的值并保存;第三判断模块406,用于对所述ssd进行硬件复位并判断所述ssd的criticalwarning字段是否已被清零,若未被清零则脚本报错测试结束。在一个实施例中,如图5所示,提供了一种基于异步事件的ssdcriticalwarning字段测试装置400,该装置还包括:第二命令模块407,用于若所述ssd的criticalwarning字段已被清零,则对所述ssd下发writeuncorrectable命令;第四判断模块408,用于读取并判断所述ssd的criticalwarning字段是否已被置为10h;第三命令模块409,用于若所述ssd的criticalwarning字段已被置为10h,则对所述ssd下发异步事件请求命令;第五判断模块410,用于判断所述ssd是否已正确回应mediaanddataintegrityerrors异常的异步事件;硬件复位模块411,用于若所述ssd已正确回应mediaanddataintegrityerrors异常的异步事件,则对所述ssd进行硬件复位;第六判断模块412,用于判断所述ssd的criticalwarning字段是否已被清零,若未被清零则脚本报错测试结束,若已被清零则测试通过。在一个实施例中,第一判断模块402还用于:若所述ssd的criticalwarning字段未被置为02h,则脚本报错测试结束。在一个实施例中,第四判断模块408还用于:若所述ssd的criticalwarning字段未被置为10h,则脚本报错测试结束。关于基于异步事件的ssdcriticalwarning字段测试装置的具体限定可以参见上文中对于基于异步事件的ssdcriticalwarning字段测试方法的限定,在此不再赘述。在一个实施例中,提供了一种计算机设备,其内部结构图可以如图6所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于异步事件的ssdcriticalwarning字段测试方法。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。当前第1页12当前第1页12
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜