一种可靠性测试方法及装置与流程

文档序号:16530864发布日期:2019-01-05 10:44阅读:269来源:国知局
一种可靠性测试方法及装置与流程

本申请涉及计算机技术领域,尤其涉及一种可靠性测试方法及装置。



背景技术:

计算机系统的计算结果和服务信息皆临时保存在内存中,这些数据在系统掉电后可能会丢失,如果数据丢失,可能会引起整个系统的崩溃。

因此,当系统发生掉电并重启后,需要对内存存储的数据是否丢失进行测试,从而验证内存的可靠性,进而确保系统能够正常运行。然而,现有的可靠性测试方法,对内存可靠性的测试结果的准确性并不高。



技术实现要素:

本申请实施例的主要目的在于提供一种可靠性测试方法及装置,能够提高内存可靠性测试结果的准确性。

本申请实施例提供的一种可靠性测试方法,包括:

在目标设备发生掉电之前,每次写入目标数据时,同时向所述目标设备的第一存储器与第二存储器中顺序写入所述目标数据,其中,所述第二存储器是经测试后不会因掉电发生数据丢失的存储器;

当所述目标设备发生掉电并重启后,对比所述第一存储器与所述第二存储器中的数据信息,根据对比结果,确定所述第一存储器是否发生数据丢失。

可选的,所述对比所述第一存储器与所述第二存储器中的数据信息,根据对比结果,确定所述第一存储器是否发生数据丢失,包括:

在所述第一存储器与所述第二存储器的存储数据中,分别读取最后一次被写入存储单元中的数据;

若读取的两个数据不同,则确定所述第一存储器丢失了数据;

若读取的两个数据相同,则当确定所述第一存储器在掉电前被写满数据的情况下,检测所述第一存储器是否被写满;

若所述第一存储器被写满,则确定所述第一存储器未丢失数据;

若所述第一存储器未被写满,则确定所述第一存储器丢失了数据。

可选的,所述第一存储器的存储空间大于所述第二存储器的存储空间;每次写入所述目标数据时均对应一组标志位,其中,所述一组标志位包括数据序号、第一写入循环次数、第二写入循环次数,所述数据序号表示所述目标数据在所述第一存储器内的存储位置,所述第一写入循环次数表示所述第一存储器所完成的已写满轮数,所述第二写入循环次数表示所述第一存储器在当前轮被写入所述目标数据时、所述第二存储器在所述当前轮所完成的已写满轮数;

则,所述分别读取最后一次被写入存储单元中的数据,包括:

根据所述一组标志位,从所述第一存储器与所述第二存储器中找到并读取最后一次被写入存储单元中的数据。

可选的,所述目标数据对应一个固定的数据标志位,所述目标数据与所述数据标志位共同被写入所述第一存储器的一个存储单元;所述检测所述第一存储器是否被写满,包括:

统计所述第一存储器中存储的所述数据标志位的数量;

判断所述第一存储器的存储单元总数与所述数据标志位的统计总数是否相同;

若是,则确定所述第一存储器被写满;

若否,则确定所述第一存储器未被写满。

可选的,所述第一存储器为nvdimm,所述第二存储器为nvram。

本申请实施例还提供可一种可靠性测试装置,包括:

目标数据写入单元,用于在目标设备发生掉电之前,每次写入目标数据时,同时向所述目标设备的第一存储器与第二存储器中顺序写入所述目标数据,其中,所述第二存储器是经测试后不会因掉电发生数据丢失的存储器;

数据信息对比单元,用于当所述目标设备发生掉电并重启后,对比所述第一存储器与所述第二存储器中的数据信息,根据对比结果,确定所述第一存储器是否发生数据丢失。

可选的,所述数据信息对比单元包括:

数据读取子单元,用于在所述第一存储器与所述第二存储器的存储数据中,分别读取最后一次被写入存储单元中的数据;

第一确定子单元,用于若读取的两个数据不同,则确定所述第一存储器丢失了数据;

写满检测子单元,用于若读取的两个数据相同,则当确定所述第一存储器在掉电前被写满数据的情况下,检测所述第一存储器是否被写满;

第二确定子单元,用于若所述第一存储器被写满,则确定所述第一存储器未丢失数据;

第三确定子单元,用于若所述第一存储器未被写满,则确定所述第一存储器丢失了数据。

可选的,所述第一存储器的存储空间大于所述第二存储器的存储空间;每次写入所述目标数据时均对应一组标志位,其中,所述一组标志位包括数据序号、第一写入循环次数、第二写入循环次数,所述数据序号表示所述目标数据在所述第一存储器内的存储位置,所述第一写入循环次数表示所述第一存储器所完成的已写满轮数,所述第二写入循环次数表示所述第一存储器在当前轮被写入所述目标数据时、所述第二存储器在所述当前轮所完成的已写满轮数;

则,所述数据读取子单元,具体用于根据所述一组标志位,从所述第一存储器与所述第二存储器中找到并读取最后一次被写入存储单元中的数据。

可选的,所述目标数据对应一个固定的数据标志位,所述目标数据与所述数据标志位共同被写入所述第一存储器的一个存储单元;所述写满检测子单元包括:

统计子单元,用于统计所述第一存储器中存储的所述数据标志位的数量;

判断子单元,用于判断所述第一存储器的存储单元总数与所述数据标志位的统计总数是否相同;若是,则确定所述第一存储器被写满;若否,则确定所述第一存储器未被写满。

可选的,所述第一存储器为nvdimm,所述第二存储器为nvram。

本申请实施例提供的可靠性测试方法及装置,在目标设备发生掉电之前,每次写入目标数据时,同时向所述目标设备的第一存储器与第二存储器中顺序写入所述目标数据,其中,所述第二存储器是经测试后不会因掉电发生数据丢失的存储器;当所述目标设备发生掉电并重启后,对比所述第一存储器与所述第二存储器中的数据信息,根据对比结果,确定所述第一存储器是否发生数据丢失。可见,由于第二存储器是经测试后不会因掉电而发生数据丢失的存储器,因此可认定掉电后第二存储器中的数据信息是掉电前写入的准确信息,掉电并重启后,将第一存储器中的数据信息与第二存储器中的数据信息进行比对,即可测试出第一存储器中的数据信息是否准确,即第一存储器是否会因掉电发生数据丢失,从而提高了内存可靠性的测试结果的准确性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种可靠性测试方法的流程示意图;

图2为本申请实施例提供的确定第一存储器是否发生数据丢失的方法流程示意图;

图3为本申请实施例提供的掉电后nvdimm的存储情形示意图;

图4为本申请实施例提供的nvdimm和nvram在当前轮的存储情形示意图;

图5为本申请实施例提供的一种可靠性测试装置的组成示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参见图1,为本申请实施例提供的一种可靠性测试方法的流程示意图,包括以下步骤s101-s102:

s101:在目标设备发生掉电之前,每次写入目标数据时,同时向所述目标设备的第一存储器与第二存储器中顺序写入所述目标数据,其中,所述第二存储器是经测试后不会因掉电发生数据丢失的存储器。

在本实施例中,目标设备中设置有两个存储器,分别为第一存储器和第二存储器,其中,所述第二存储器是经过测试验证过的不会因掉电发生数据丢失的存储器,所述第一存储器是需要通过测试验证其是否会因掉电发生数据丢失的存储器。

当用户需要使用目标设备存储数据时,可以向目标设备的存储器设备写入数据,这里将每次写入的数据定义为目标数据,当每次写入一个目标数据时,便将该目标数据分别写入第一存储器与第二存储器,其中,目标数据可以为任意长度的数据,例如,目标数据的长度可以是存储器设备最小读写单位的数据,比如4k。

在本实施例的一种实现方式中,所述第一存储器可以为nvdimm,所述第二存储器可以为nvram。

其中,所述nvdimm(non-volatiledual-inline-memory-modules)是一种集成了dram与非易失性内存芯片的内存条规格,该存储器能够在完全断电的时候依然保存完整的内存数据,但是其不因掉电丢失数据的可靠性有待验证。所述nvram(non-volatilerandomaccessmemory)是一种非易失性随机访问存储器,即断电后仍能保存数据的一种ram,nvram是经过测试验证过的不会因掉电发生数据丢失的存储器。

s102:当所述目标设备发生掉电并重启后,对比所述第一存储器与所述第二存储器中的数据信息,根据对比结果,确定所述第一存储器是否发生数据丢失。

在本实施例中,当目标设备发生掉电并重启后,由于第二存储器中的数据信息不会因为掉电而发生数据丢失,因此,第二存储器中存储了掉电前写入的完整、准确的数据信息,通过对比第一存储器与第二存储器中的数据信息,确定第一存储器与第二存储器的存储数据是否存在差异,如果存在差异,即可确定第一存储器发生了数据丢失,反之,如果不存在差异,即可确定第一存储器没有发生数据丢失。

在本实施例的一种实现方式中,如图2所示,本步骤s102可以包括如下步骤s201-s206:

s201:在所述第一存储器与所述第二存储器的存储数据中,分别读取最后一次被写入存储单元中的数据。

其中,最后一次被写入存储单元,指的是掉电之前向第一存储器与第二存储器写入的最后一个目标数据所对应存储的数据单元,并从中提取第一存储器与所述第二存储器的这两个存储单元中的数据。

在本实施例的一种实现方式中,所述第一存储器的存储空间大于所述第二存储器的存储空间;每次写入所述目标数据时均对应一组标志位,其中,所述一组标志位包括数据序号、第一写入循环次数、第二写入循环次数,所述数据序号表示所述目标数据在所述第一存储器内的存储位置,所述第一写入循环次数表示所述第一存储器所完成的已写满轮数,所述第二写入循环次数表示所述第一存储器在当前轮被写入所述目标数据时、所述第二存储器在所述当前轮所完成的已写满轮数。

基于上述内容,本步骤s201具体包括:根据所述一组标志位,从所述第一存储器与所述第二存储器中找到并读取最后一次写入的数据。

其中,在该实施例中,以nvdimm作为第一存储器,nvram作为第二存储器为例。设定nvdimm的存储空间有x个存储单元,nvram的存储空间有y个存储单元,则x>y。为了方便描述,以x是y的整数倍为例,即:x=ky,k=2,3,4…。设定nvdimm与nvram的最小读写单位(比如4k数据)为目标数据的大小,以每次写入4k大小的目标数据为例,则每次写入目标数据时,将对应生成一组标志位。其中,这组标志位包括数据序号、第一写入循环次数、第二写入循环次数,将所述数据序号记为data(m),m表示当前写入的4k数据在nvdimm中的存储单元标识,m=1,2…x;将所述第一写入循环次数记为round(n),n表示nvdimm所完成的已写满轮数,n=0,1,2…;将所述第二写入循环次数记为rod,rod表示nvdimm在当前轮被写入4k数据时,nvram在所述当前轮所完成的已写满轮数,rod=0,1…k。

在该实施例中,具体可以采用以下方式实现步骤s201:

当目标设备掉电并重启后,将目标设备掉电前向nvdimm最后一次写入数据的当前轮记为标志位round(n=nmax),在当前轮round(n=nmax)写入的全部4k数据中,将目标设备掉电前最后一次写入nvdimm的4k数据的标志位记为data(m=mmax)。基于此,可以读取对应标志位为round(n=nmax)且data(m=mmax)的存储单元中的数据,该数据的存储单元即为nvdimm在掉电前最后一次写入数据所对应的存储单元,但该存储单元对应的最后写入数据可能丢失、也可能没有丢失。

对于nvdimm在最后一次被写入数据所在的当前轮,nvram在该当前轮所完成的已写满轮数用rod表示,则掉电前最后向nvram写入数据对应的存储位置,是nvram中第(mmax-rod*y)个存储单元,读取该存储单元的数据即为nvram在掉电前最后写入的4k数据,需要说明的是,该存储单元对应的最后写入数据没有丢失。

下面举例说明这种实施例。

设定nvdimm的存储空间是x=9个存储单元,nvram的存储空间是y=3个存储单元,则k=3。假设一种情形具体为:向nvdimm中写入4k数据,写满第一轮后,在写第二轮第5个数据后设备发生掉电。在该情形下,如图3所示,图3(a)展示了掉电重启后nvdimm中每个存储单元存储的4k数据所对应生成的round和data标志位。图3(b)展开了在掉电之前向nvdimm写入4k数据所对应生成的round和data标志位的过程。

其中,图3(b)中的箭头表示后一轮写入数据对前一轮写入数据的覆盖,箭头下面是后一轮每个存储单元存储的4k数据所对应生成的round和data标志位。根据图3(b)可知,在向nvdimm写入数据的过程中,数据对应标志位round中n的数值越大则表示写入该数据的时间越靠后;当对应标志位round中n的数值相同(写入数据在相同轮中)时,写入数据对应标志位data中m的数值越大表示写入该数据的时间越靠后。因此,明显地,对应标志位是n=1、m=5对应的存储单元是nvdimm掉电前最后一次写入数据所对应存储的存储单元,读取对应标志位是n=1、m=5的存储单元中的数据。

在该种情形下,图4展示了向nvdimm最后一次写入数据的当前轮时nvdimm和nvram的存储情形。如图4所示,nvdimm在最后一次被写入数据所在的当前轮即为round(nmax=1)时的所在轮,掉电前,在当前轮向nvdimm中最后写入数据所对应的存储单元是data(mmax=5)的存储单元,在所述当前轮,nvram所完成的已写满轮数rod=1。则掉电前向nvram最后一次写入的数据的存储位置是nvram中第2个存储单元,即:mmax-rod*y=5-1*3=2。nvram中第2个存储单元的数据即为nvram在掉电前最后写入的数据。

s202:判断读取的两个数据是否相同;若是,则执行s204;若否,则执行步骤s203。

s203:确定所述第一存储器丢失了数据。

s204:当确定所述第一存储器在掉电前被写满数据的情况下,检测所述第一存储器是否被写满;若是,则执行s205;若否,则执行步骤s206。

在本实施例的一种实现方式中,所述目标数据对应一个固定的数据标志位,所述目标数据与所述数据标志位共同被写入所述第一存储器的一个存储单元。

本步骤s204“检测所述第一存储器是否被写满”,具体可以包括:

步骤a:统计所述第一存储器中存储的所述数据标志位的数量;

步骤b:判断所述第一存储器的存储单元总数与所述数据标志位的统计总数是否相同;若是,则确定所述第一存储器被写满;若否,则确定所述第一存储器未被写满。

其中,在该实施例中,所述数据标志位可以是任意标识,例如数字、符号、字母或者其组合等。其中,采用以下方式实现步骤s204:向第一存储器顺序循环写入目标数据与所述数据标志位,当确定第一存储器被写入数据满一轮后对设备进行掉电处理,在掉电并重启后提取第一存储器中全部存储数据中的数据标志位并统计其数量,统计得出的数据标志位数量表示第一存储器在掉电后保留下的数据数量。因此,可以得出如下结论:如果统计得出的数据标志位数量与第一存储器的存储单元总数相同,表示第一存储器的每一个存储单元都存储了被写入数据,即第一存储器被写满。如果统计得出的数据标志位数量与第一存储器的存储单元总数不同,表示第一存储器的某一个或多个存储单元没有存储被写入数据,即第一存储器未被写满,表示数据丢失。值得注意的是,该步骤s204成立的前提条件是掉电时间节点为向第一存储器写入数据满一轮后的任意时刻。

s205:若所述第一存储器被写满,则确定所述第一存储器未丢失数据。

s206:若所述第一存储器未被写满,则确定所述第一存储器丢失了数据。

其中,由于是向第一存储器写入数据满一轮后对设备进行掉电处理,因此如果第一存储器被写满,则可以确定第一存储器未丢失数据;如果第一存储器未被写满,则确定第一存储器丢失了数据。

步骤s202中通过判断第一存储器与第二存储器最后一次写入的数据是否相同即可测试第一存储器的掉电可靠性,但该步骤所提供结果的可信度不高,因此在步骤s202的基础上操作步骤s204-s206可进一步提高测试结果的可信度。

综上,本申请实施例提供的可靠性测试方法,在目标设备发生掉电之前,每次写入目标数据时,同时向所述目标设备的第一存储器与第二存储器中顺序写入所述目标数据,其中,所述第二存储器是经测试后不会因掉电发生数据丢失的存储器;当所述目标设备发生掉电并重启后,对比所述第一存储器与所述第二存储器中的数据信息,根据对比结果,确定所述第一存储器是否发生数据丢失。可见,由于第二存储器是经测试后不会因掉电而发生数据丢失的存储器,因此可认定掉电后第二存储器中的数据信息是掉电前写入的准确信息,掉电并重启后,将第一存储器中的数据信息与第二存储器中的数据信息进行比对,即可测试出第一存储器中的数据信息是否准确,即第一存储器是否会因掉电发生数据丢失,此种方法及装置可以从而提高了内存可靠性的测试结果的准确性。

参见图5,为申请本实施例提供的一种可靠性测试装置的组成示意图,该装置包括:

目标数据写入单元s501,用于在目标设备发生掉电之前,每次写入目标数据时,同时向所述目标设备的第一存储器与第二存储器中顺序写入所述目标数据,其中,所述第二存储器是经测试后不会因掉电发生数据丢失的存储器;

数据信息对比单元s502,用于当所述目标设备发生掉电并重启后,对比所述第一存储器与所述第二存储器中的数据信息,根据对比结果,确定所述第一存储器是否发生数据丢失。

在本实施例的一种实现方式中,所述数据信息对比单元s502包括:

数据读取子单元,用于在所述第一存储器与所述第二存储器的存储数据中,分别读取最后一次被写入存储单元中的数据;

第一确定子单元,用于若读取的两个数据不同,则确定所述第一存储器丢失了数据;

写满检测子单元,用于若读取的两个数据相同,则当确定所述第一存储器在掉电前被写满数据的情况下,检测所述第一存储器是否被写满;

第二确定子单元,用于若所述第一存储器被写满,则确定所述第一存储器未丢失数据;

第三确定子单元,用于若所述第一存储器未被写满,则确定所述第一存储器丢失了数据。

在本实施例的一种实现方式中,所述第一存储器的存储空间大于所述第二存储器的存储空间;每次写入所述目标数据时均对应一组标志位,其中,所述一组标志位包括数据序号、第一写入循环次数、第二写入循环次数,所述数据序号表示所述目标数据在所述第一存储器内的存储位置,所述第一写入循环次数表示所述第一存储器所完成的已写满轮数,所述第二写入循环次数表示所述第一存储器在当前轮被写入所述目标数据时、所述第二存储器在所述当前轮所完成的已写满轮数;

则,所述数据读取子单元,具体用于根据所述一组标志位,从所述第一存储器与所述第二存储器中找到并读取最后一次被写入存储单元中的数据。

在本实施例的一种实现方式中,所述目标数据对应一个固定的数据标志位,所述目标数据与所述数据标志位共同被写入所述第一存储器的一个存储单元;所述写满检测子单元包括:统计子单元,用于统计所述第一存储器中存储的所述数据标志位的数量;

判断子单元,用于判断所述第一存储器的存储单元总数与所述数据标志位的统计总数是否相同;若是,则确定所述第一存储器被写满;若否,则确定所述第一存储器未被写满。

在本实施例的一种实现方式中,所述第一存储器为nvdimm,所述第二存储器为nvram。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本申请各个实施例或者实施例的某些部分所述的方法。

需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1