用于验证系统的方法和装置与流程

文档序号:26104028发布日期:2021-07-30 18:15阅读:148来源:国知局
用于验证系统的方法和装置与流程

本公开涉及计算机技术领域,具体涉及系统测试、芯片设计技术领域,尤其涉及用于验证系统的方法和装置。



背景技术:

硬件系统或者软件系统在开发完成后需要对其功能进行验证。现有的验证硬件系统或者软件系统功能的方法是采用海量的定向验证用例(即验证指定功能的验证用例)分别验证系统的各项功能。

然而,现有的验证系统功能的方法存在验证不准确、以及验证用例维护成本高的问题。



技术实现要素:

本公开提供了一种用于验证系统的方法、装置、电子设备以及计算机可读存储介质。

根据第一方面,提供了一种用于验证系统的方法,该方法包括:响应于接收到用于指示验证待验证系统的第一指令,进行以下循环操作:获取验证用例;将验证用例存储至目标存储器中,并将验证用例存储至目标存储器的地址发送至待验证系统,地址用于使待验证系统获取验证用例;响应于确定待验证系统执行验证用例的数据满足预设条件,停止循环操作,并根据待验证系统执行验证用例后获得的结果,确定待验证系统的状态。

根据第二方面,提供了一种用于验证系统的方法,应用于待验证系统,该方法包括:响应于接收到验证用例在目标存储器中的地址,基于地址获取验证用例;执行验证用例,并根据执行验证用例后获得的结果,确定待验证系统的状态。

根据第三方面,提供了一种用于验证系统的装置,该装置包括:接收单元,被配置为响应于接收到用于指示验证待验证系统的第一指令,进行以下循环操作:第一获取单元,被配置为获取验证用例;发送单元,被配置为将验证用例存储至目标存储器中,并将验证用例存储至目标存储器的地址发送至待验证系统,地址用于使待验证系统获取验证用例;判断单元,被配置为响应于确定待验证系统执行验证用例的数据满足预设条件,停止循环操作,并根据待验证系统执行验证用例后获得的结果,确定待验证系统的状态。

根据第四方面,提供了一种用于验证系统的装置,应用于待验证系统,该装置包括:第二获取单元,被配置为响应于接收到验证用例在目标存储器中的地址,基于地址获取验证用例;执行单元,被配置为执行验证用例,并根据执行验证用例后获得的结果,确定待验证系统的状态。

根据第五方面,本公开的实施例提供了一种电子设备,包括:一个或多个处理器:存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面提供的用于验证系统的方法,或者实现如第二方面提供的用于验证系统的方法。

根据第六方面,本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,程序被处理器执行时实现第一方面提供的用于验证系统的方法,或者实现如第二方面提供的用于验证系统的方法。

本公开提供的用于验证系统的方法、装置,响应于接收到用于指示验证待验证系统的第一指令,进行以下循环操作:获取验证用例;将验证用例存储至目标存储器中,并将验证用例存储至目标存储器的地址发送至待验证系统,该地址用于使待验证系统获取验证用例;响应于确定待验证系统执行验证用例的数据满足预设条件,停止循环操作,并根据待验证系统执行验证用例后获得的结果,确定待验证系统的状态。可以提高对系统进行验证的准确性,以及降低验证用例的维护成本。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是本申请的实施例可以应用于其中的示例性系统架构图;

图2是根据本申请的用于验证系统的方法的一个实施例的流程图;

图3是根据本申请的用于验证系统的方法的另一个实施例的流程图;

图4是根据本申请的用于验证系统的方法的又一个实施例的流程图;

图5是根据本申请的用于验证系统的方法的一个实施例的流程图;

图6是根据本申请的用于验证系统的方法的一个应用场景的流程图;

图7是根据本申请的用于验证系统的装置的一个实施例的结构示意图;

图8是根据本申请的用于验证系统的装置的一个实施例的结构示意图;

图9是用来实现本申请实施例的用于验证系统的方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1示出了可以应用本申请的用于验证系统的方法或用于验证系统的装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括设备101、102、103,网络104和服务器105。网络104用以在设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。设备101、102、103上可以安装各种仿真类进程或者对系统进行测试的进程。设备101、102、103上还可以安装有各种客户端应用,例如视频类应用、播放类应用、音频类应用、搜索类应用、购物类应用、金融类应用等。

设备101、102、103可以是待验证/待仿真的芯片、处理器或者硬件模块等。设备101、102、103还可以是具有显示屏并且支持接收服务器消息的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、电子播放器、膝上型便携计算机和台式计算机等等。

设备101、102、103可以是硬件,也可以是软件。当设备101、102、103为硬件时,可以是各种待验证的硬件模组或者电子设备,当设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。

当服务器或者验证平台接收到用于指示验证待验证系统的第一指令后,可以进行以下循环操作:获取验证用例,将验证用例存储至目标存储器中,并将验证用例存储至目标存储器的地址发送至待验证系统,以使待验证系统基于该地址获取到验证用例;当确定待验证系统执行验证用例的数据满足预设条件后,停止该循环操作,并根据待验证系统执行验证用例后获得的结果,确定待验证系统的状态。

需要说明的是,本公开的实施例所提供的用于验证系统的方法一般由服务器105执行,相应地,用于验证系统的装置一般设置于服务器105中。

应该理解,图1中的设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的设备、网络和服务器。

继续参考图2,示出了根据本公开的用于验证系统的方法的一个实施例的流程200。用于验证系统的方法,包括以下步骤:

步骤201,响应于接收到用于指示验证待验证系统的第一指令,进行步骤2011以及步骤2012的循环操作。

在本实施例中,当用于验证系统的方法的执行主体(例如图1所示的服务器,或者搭载于服务器上的验证平台)通过有线或者无线的方式接收到用于指示对待验证系统开始进行验证的第一指令后,可以进行以下如步骤2011以及步骤2012的循环操作。

该第一指令可以是用户利用其所使用的终端设备向验证平台发送的请求对某个处理器/硬件系统/软件系统进行验证的指令;该第一指令也可以是待验证的处理器/硬件系统/软件系统基于自身系统更新需求或者系统验证需求,向验证平台发送的、请求对其自身进行验证的指令。

步骤2011,获取验证用例。

在本实施例中,验证平台可以从预先建立好的验证用例集合中寻去验证用例,该验证用例集合中可以包括多个定向验证用例(即用于验证指定功能的验证用例)、以及与每一个定向验证用例对应的标识,验证平台可以随机选取一个标识,以实现随机选取验证用例的目的。

步骤2012,将验证用例存储至目标存储器中,并将验证用例存储至目标存储器的地址发送至待验证系统,该地址用于使待验证系统获取验证用例。

在本实施例中,验证平台在获取到验证用例后,可以将该验证用例存储入目标存储器中,并将验证用例存储在目标存储器的地址(即,验证用例位于目标存储器中的位置)发送至待验证系统,以使待验证系统基于该地址获取目标存储器中的验证用例后执行该验证用例。

其中,目标存储器可以是待验证系统中的存储空间,待验证系统通过读取其自身的存储空间即可获得验证用例,可以便于待验证系统获取信息;目标存储器也可以是与待验证系统通信连接的外部存储空间,待验证系通过读取外设存储空间获得验证用例,可以节省待验证系统的资源。

步骤202,响应于确定待验证系统执行验证用例的数据满足预设条件,停止循环操作,并根据待验证系统执行验证用例后获得的结果,确定待验证系统的状态。

在本实施例中,若确定待验证系统执行验证用例的数据不满足预设条件,则继续执行步骤2011以及步骤2012所述的循环操作,以重复进行获取验证用例、存储验证用例、以及将验证用例的存储地址发送至待验证系统、待验证系统执行验证用例的步骤,直至待验证系统执行多个验证用例的数据满足预设条件,则停止循环操作,根据待验证系统执行多个验证用例后获得的结果,确定待验证系统的状态。

其中,预设条件可以是待验证系统执行验证用例的执行时间满足预设时间;可以是待验证系统执行验证用例的数目满足预设数目,可以是待验证系统执行验证用例所获得的数据总量满足预设数据量,还可以是待验证系统执行的验证用例的长度满足预设长度等等。

在待验证系统执行多个验证用例后,可以将其所获得的执行结果发送至验证平台,以使验证平台基于执行结果判断验证系统的状态、性能。例如,验证平台可以基于待验证系统在执行验证用例后所生成的数据/参数、或者生成数据/参数的时间等,确定待验证系统的某项功能是否运行正常、某项性能指标是否达到系统设计阶段所设定的目标等用于表征系统状态/性能的指标。

本实施例提供的用于验证系统的方法,响应于接收到用于指示验证待验证系统的第一指令,进行以下循环操作:获取验证用例;将验证用例存储至目标存储器中,并将验证用例存储至目标存储器的地址发送至待验证系统,该地址用于使待验证系统获取验证用例;响应于确定待验证系统执行验证用例的数据满足预设条件,停止循环操作,并根据待验证系统执行验证用例后获得的结果,确定待验证系统的状态。首先,该方法通过验证平台在多轮循环中随机获取到的多个验证用例对待验证系统进行验证,可以实现对待验证系统的交叉功能进行验证,提升验证系统的全面性以及准确性。

其次,通过验证平台随机获取到的多个验证用例对待验证系统的交叉功能进行验证,而非额外基于交叉功能的验证需求设计新的验证用例,可以实现对已有验证用例的复用,降低对验证用例的设计/维护成本。并且,基于验证平台在多轮循环中随机获取的验证用例组成的验证用例组验证系统的交叉功能,可以提高被验证的交叉功能的随机性,提升验证系统交叉功能的准确性。

再次,采用由验证平台将随机选取的验证用例的存储地址发送至待验证系统,使待验证系统基于存储地址获取并执行各个验证用例,可以避免将大量验证用例发送至待验证系统、或者存储于待验证系统造成的浪费存储资源以及通信资源的问题。

最后,在每一次循环操作中,采用由验证平台将随机选取的验证用例存储至目标存储器的存储地址发送至待验证系统,使待验证系统每一次基于存储地址获取并执行各个验证用例,可以实现对具有有限存储空间的、目标存储器的无限次使用,使待验证系统可以执行的验证用例得到无限扩展。

进一步参考图3,其示出了用于验证系统的方法的另一个实施例的流程300。该用于验证系统的方法的流程300,包括以下步骤:

步骤301,响应于接收到用于指示验证待验证系统的第一指令,进行步骤3011、步骤3012以及步骤3013的循环操作。

在本实施例中,当用于验证系统的方法的执行主体(例如图1所示的服务器,或者搭载于服务器上的验证平台)通过有线或者无线的方式接收到用于指示对待验证系统开始进行验证的第一指令后,可以进行以下如步骤3011、步骤3012以及步骤3013的循环操作。本实施例中第一指令与步骤201中第一指令的定义相同,此处不再赘述。

步骤3011,获取验证用例。

本实施例中对步骤3011的描述与步骤2011的描述一致,此处不再赘述。

步骤3012,将验证用例中的数据进行随机化处理,并生成至少一条验证指令。

在本实施例中,验证平台可以对验证用例中的数据进行随机化处理,并生成至少一条验证指令。例如,验证平台可以对验证用例中的某项功能指令的参数进行随机化,或者对各条指令的执行顺序进行随机化处理。其中,验证指令可以是指示系统执行某项操作、或者完成某项任务的指令,例如,硬件系统执行定时器启动操作、通信系统执行对预设数据包的发送操作、软件系统运行指定程序/进程的操作等等,以便验证平台可以基于系统执行验证指令所指示的操作后,基于执行结果对系统的性能参数或者系统是否能够正常工作进行评估。

步骤3013,将至少一条验证指令存储至目标存储器中,并将至少一条验证指令存储至目标存储器的起始位置发送至待验证系统,该起始位置用于使待验证系统获取验证用例。

在本实施例中,验证平台可以将至少一条验证指令中的全部或者部分指令存储至目标存储器中,并将至少一条验证指令存储至目标存储器的起始位置发送至待验证系统,该起始位置用于指示验证指令存储至目标存储器时、所占用的第一个存储单元的存储单元位置/存储单元标识,待验证系统获得至少一条验证指令存储至目标存储器的第一个存储单元的位置后,可以从该位置开始,逐一读取该第一个存储单元之后的各个存储单元,以逐一获取到连续存储的多条验证指令。

可以理解,验证平台与待验证系统可以预先约定验证指令的存储方式,以便待验证系统基于约定读取验证指令。例如,当预先约定验证指令是连续存储至目标存储器中的存储单元时,待验证系统在获得上述起始位置后,从该起始位置表征的存储单元开始,连续的读取之后的存储单元以获得各条验证指令。当预先约定验证指令是非连续的(每条验证指令之间间隔预设数目的存储单元)存储至目标存储器中的存储单元时,待验证系统在获得上述起始位置后,从该起始位置表征的存储单元开始,间隔的读取之后的存储单元以获得各条验证指令。

步骤302,响应于确定待验证系统执行至少一条验证指令的数据满足预设条件,停止循环操作,并根据待验证系统执行至少一条验证指令后获得的结果,确定待验证系统的状态。

在本实施例中,若确定待验证系统执行至少一条验证指令的数据不满足预设条件,则继续执行步骤3011、步骤3012以及步骤3013所述的循环操作,以重复进行获取验证用例、生成验证指令、以及将验证指令的存储地址发送至待验证系统、待验证系统执行验证指令的步骤,直至待验证系统执行多个验证指令的数据满足预设条件,则停止循环操作,根据待验证系统执行多个验证指令后获得的结果,确定待验证系统的状态。

其中,预设条件可以是待验证系统执行验证指令的执行时间满足预设时间;可以是待验证系统执行验证指令的数目满足预设数目,可以是待验证系统执行验证指令所获得的数据总量满足预设数据量,还可以是待验证系统执行的验证指令的长度满足预设长度等等。

在待验证系统执行多个验证指令后,可以将其所获得的执行结果发送至验证平台,以使验证平台基于执行结果判断验证系统的状态、性能。

本实施例提供的用于验证系统的方法,相比于图2所述的方法,增加了验证平台在获取到验证用例后,对验证用例进行随机化处理,并生成至少一条验证指令的步骤,以及在将验证用例存储至目标存储器的地址发送至待验证系统时,是将至少一条验证指令存储至目标存储器的起始位置发送至待验证系统,以使待验证系统根据多条验证指令存储至目标存储器的起始位置,逐条获取到多条验证指令。可以提高每一个验证用例的随机性,以进一步提高验证待验证系统的全面性、准确定。另外,仅将至少一条验证指令存储至目标存储器的起始位置(而非全部地址)发送至待验证系统,可以节省通信以及信息读写资源,提高通信效率。

可选地,将至少一条验证指令存储至目标存储器中,包括:获取目标存储器的存储量,获取至少一条验证指令中全部验证指令的数据量;根据目标存储器的存储量以及全部验证指令的数据量,确定将至少一条验证指令存储至目标存储器的起始位置,并基于起始位置逐条存储至少一条验证指令。

在本实施例中,验证平台可以获得目标存储器的存储量、以及至少一条验证指令中全部验证指令的数据量,并根据目标存储器的数据量以及全部验证指令的数据量,确定出将至少一条验证指令存储至目标存储器的起始位置,并基于起始位置逐条存储至少一条验证指令,也即,确定出将至少一条验证指令从目标存储器的哪一个存储单元开始写入,以确保最后一条写入的验证指令未溢出目标存储器。

例如,至少一条验证指令的数据量(即需要占用指令存储器的存储空间)为length,目标存储器能够提供的存储空间为size,则所确定的至少一条指令存储至目标存储器的起始位置地址addr需要满足条件:addr+length≤size,以确保将全部验证指令写入目标存储器后,数据未溢出目标存储器。

本实施例在将至少一条验证指令写入目标存储器之前,获得目标存储器的存储空间大小,以及即将写入目标存储器的、全部验证指令的数据量,并根据该存储空间大小以及该数据量确定存储至少一条验证指令的起始位置,可以确保写入数据的完整性。

可选地,图3实施例所述的用于验证系统的方法还包括:获取用于指示对验证用例进行随机化处理的第二指令,将验证用例中的数据进行随机化处理,包括:根据第二指令,对验证用例中的数据进行随机化处理。

在本实施例中,验证平台可以获取指示对验证用例进行随机化处理的第二指令,该第二指令可以是待验证系统向验证平台发送的指令,也可以是用户向验证平台发送的指令。验证平台在将验证用例中的数据进行随机化处理时,可以基于第二指令的指示,对验证用例中的数据进行随机化处理。例如,若第二指令指示针对某一项功能进行随机化处理,则验证平台仅对验证用例中测试该项功能的指令进行随机化处理。又如,若第二指令指示随机化处理的程度,则验证平台根据该随机化处理的程度对验证用例中的数据执行相应等级的随机化处理。

本实施例中,验证平台根据用户或者待验证系统的需求对验证用例进行随机化处理,可以提高对待验证系统进行验证的针对性。

进一步参考图4,其示出了用于验证系统的方法的又一个实施例的流程400。该用于验证系统的方法的流程400,包括以下步骤:

步骤401,响应于接收到用于指示验证待验证系统的第一指令,进行步骤4011以及步骤4012的循环操作。

在本实施例中,当用于验证系统的方法的执行主体(例如图1所示的服务器,或者搭载于服务器上的验证平台)通过有线或者无线的方式接收到用于指示对待验证系统开始进行验证的第一指令后,可以进行以下如步骤4011以及步骤4012的循环操作。本实施例中第一指令与步骤201中第一指令的定义相同,此处不再赘述。

步骤4011,获取验证用例。

本实施例中对步骤4011的描述与步骤2011的描述一致,此处不再赘述。

步骤4012,将验证用例存储至目标存储器中,并将验证用例存储至目标存储器的地址,通过预设传输设备发送至待验证系统,该地址用于使待验证系统获取验证用例。

在本实施例中,验证平台在获取到验证用例后,可以将该验证用例存储入目标存储器中,并将验证用例存储至目标存储器的地址,通过预设传输设备发送至待验证系统,以使待验证系统基于该地址获取目标存储器中的验证用例,并执行该验证用例。

验证平台也可以将对验证用例进行随机化后的验证指令存储至目标存储器的起始位置,通过预设传输设备发送至待验证系统,以使待验证系统基于该起始位置获取目标存储器中的验证指令。

预设传输设备可以是构建于验证平台中的传输设备(例如虚拟输入输出设备),该预设传输设备用于验证平台与待验证系统之间的通信。

步骤402,响应于确定待验证系统执行验证用例的数据满足预设条件,停止循环操作,并根据待验证系统执行验证用例后获得的结果,确定待验证系统的状态。

本实施例提供的用于验证系统的方法,相比于图2所述的方法,验证平台与待验证系统通过预先构建的通信机制进行通信交互,可以提高传输的稳定性以及效率。

可选地,用于验证系统的方法包括:为预设传输设备分配预设数据传输地址;响应于基于预设数据传输地址接收到接收信息或者发送出发送信息,不存储接收信息或者发送信息;或者,响应于基于预设数据传输地址接收到接收信息,确定该接收信息为待验证系统发送的、用于请求对待验证系统进行验证的信息。

在本实施例中,可以为预设传输设备分配预设数据传输地址,若验证平台基于预设传输地址接收到信息或者发送出信息,则验证平台对该接收到的信息或者发送出的信息处理完毕后,不对该接收到的信息或者该发送出的信息进行缓存/记录,以节省资源。

或者,若验证平台基于预设数据传输地址接收到接收信息,则验证平台可以确定该接收信息是由待验证系统向其发送的、用于请求对验证系统进行验证的信息,便于验证平台快速调用相关进程或者组件等资源对该信息进行处理,提高信息处理效率。

本实施例为用于验证平台与待验证系统之间进行交互的预设传输设备分配预设传输地址,以使验证平台在通过该预设传输地址接收或者发送时,知晓该信息是与待验证系统进行交互,以向待验证系统发送验证用例/或者接收到的待验证系统发送的请求验证的信息,而非需要长期存档的系统日志或者系统计算数据,故不对所接收或者发送的信息进行存储,可以节省验证平台的存储资源。

可选地,用于验证系统的方法包括:触发预设传输设备中的预设中断。

在本实施例中,在将验证用例存储至目标存储器的地址通过预设传输设备发送至待验证系统的之前、之后、或者同时,触发预设传输设备中的预设中断,并根据验证平台与待验证系统之间的通信状态标识该中断的状态。

具体地,可以为预设传输设备保留一个指定的中断源,当验证平台需要将验证用例发送至待验证系统时,触发该中断源,并根据验证平台与待验证系统之间的通信状态,为该中断源标识状态,中断源的状态可以是如验证平台随机化数据成功/失败,验证平台写入数据成功/失败,验证平台发送信息已完成/未完成等状态。

本实施例通过为预设传输设备保留指定的中断源,以在验证平台与待验证系统进行信息交互时触发该中断源,并根据验证平台与待验证系统之间的信息交互状态为中断源进行标识,可以使验证平台或者待验证系统可以基于中断源随时暂停或者重启相应的操作,提升系统的灵活性。

进一步参考图5,其示出了用于验证系统的方法的一个实施例的流程,500。该用于验证系统的方法的流程500,应用于待验证系统,包括以下步骤:

步骤501,响应于接收到验证用例在目标存储器中的地址,基于地址获取验证用例。

在本实施例中,当用于验证系统的方法的执行主体(例如图1所示的设备101、102、103,或者待验证系统)通过有线或者无线的方式接收到验证用例在目标存储器中的地址后,可以跳转至该地址,以获取验证用例。待验证系统可以具体为硬件或者软件系统中、待验证的功能模块,或者用于对系统进行验证的验证进程/测试进程。

步骤502,执行验证用例,并根据执行验证用例后获得的结果,确定待验证系统的状态。

在本实施例中,待验证系统可以执行其从目标存储器中获取到的验证用例,并根据执行该验证用例后所获得的结果,确定待验证系统的状态。待验证系统也可以将执行该验证用例后所获得的结果发送至验证平台,以通过验证平台确定待验证系统的状态。其中,该结果可以是待验证系统在执行验证用例后所生成的数据/参数、或者生成数据/参数的时间等。

在待验证系统执行完本次获取到的验证用例后,可以向验证平台发送请求下一条验证用例的信息,以使验证平台继续发送下一条验证用例的存储地址,使待验证系统可以持续获取并执行验证用例。

本实施例提供的用于验证系统的方法,待验证系统在接收到验证用例在目标存储器中的地址后,基于地址获取验证用例,执行验证用例,并根据执行验证用例后获得的结果,确定待验证系统的状态,避免了验证平台将验证用例发送至待验证系统造成的通信资源的浪费。另外,待验证系统可以基于验证平台多次发送的地址获取不同的验证用例,在不需要存储海量验证用例的同时,可以应用海量的验证用例对待验证系统的交叉功能进行测试的,可以实现在减少验证用例的维护成本的同时提升验证结果的准确性。

可选地,响应于接收到验证用例在目标存储器中的地址,基于地址获取验证用例,包括:响应于接收到至少一条验证指令在目标存储器中的起始位置,基于起始位置逐条读取至少一条验证指令中的验证指令,其中,至少一条验证指令基于对验证用例中的数据进行随机化处理得到。

在本实施例中,验证平台可以将验证用例进行随机化处理并生成至少一条验证指令,之后将至少一条验证指令存储至目标存储器的起始位置发送至待验证系统。待验证系统在接收到该起始位置后,可以基于该起始位置逐条读取验证指令,并加载到待验证系统本地或者验证进程中,以执行各条验证指令。待验证系统在接收到该起始位置后,也可以基于该起始位置逐条读取各条验证指令,并根据验证指令的指示执行相应的操作,而并不将验证指令加载到待验证系统本地/或者验证进程中,可以提升节省待验证系统的本地资源以及提升验证效率。

在一些应用场景中,首先,建立验证平台与待验证处理器的待验证系统之间的通信机制:在验证平台上创建一个仅用于验证平台与待验证系统之间进行通信的虚拟输入输出设备(虚拟io设备)。为该虚拟io设备分配保留的数据发送和数据接收地址,(如:可以将0xabcd作为虚拟io设备的数据发送和数据接收地址)。

预先指示在验证过程中,任何基于该保留地址(如0xabcd)的读写操作都不会被验证过程中的存储器模型所记录,也不会触发或影响任何其它输入输出设备状态,以节省存储或者运算资源。

预先指示所有向该保留地址发送的信息,均为待验证系统向验证平台发送的信息(如请求开始进行验证/请求验证用例的信息)。

预先指示向该保留地址发送的信息中,预设标识(如0xa5a5a5a5)用于表征待验证系统向验证平台发送信息的起始,也即,预设标识后的信息均为待验证系统向验证平台发送的有效请求信息。

上述过程中,待验证系统向验证平台发送的请求信息可以包括以下至少一项:信息类型、信息长度、操作对象、操作参数。其中,信息类型用于指示该信息是请求验证平台对验证用例进行何种操作的信息,如请求对验证用例中的数据进行随机化处理、请求重新加载指令存储器内容,触发某输入输出设备的某种中断请求等等;信息长度用于表征本次由待验证系统向验证平台所传递的数据信息的长度;操作对象用于表征本次待验证系统所请求的验证用例所验证的对象,如寄存器,输入输出设备,存储空间等指令执行相关的对象;操作参数用于表征本次待验证系统所请求的验证用例所验证的对象的相关参数,如寄存器索引值,寄存器内容,立即数,存储地址,存储数据内容等等。

预先为该虚拟io设备保留一个特定的中断源,每当验证平台需要向待验证系统发送信息时候,触发该中断源发送中断。并且,根据验证平台向待验证系统发送信息的类型为该中断寄存器标识不同的状态,其中,中断寄存器的状态可以表征如:验证平台随机化数据成功/失败、验证平台记载数据成功/失败等。

当虚拟设备中断状态指示当前验证平台请求向待验证系统发送数据时,待验证系统可以通过读取虚拟io设备保留地址的方式,获取验证平台的信息。验证平台传递的信息可以包含如下内容:信息类型、信息长度、操作对象、操作参数。其中,信息类型用于表征如指令起始地址等信息类型;信息长度用于表征本次由验证平台向待验证系统传递的信息长度;操作对象用于表征传递的信息所涉及的指令操作对象,如寄存器,存储空间等;操作参数用于表征寄存器索引值,寄存器内容,立即数,存储空间起始地址等。

在建立验证平台与验证进程之间的通信机制后,如图6所示,可以通过如下步骤实现验证进程从验证平台处获取验证用例、以及执行验证用例,进而实现对待验证系统的功能进行验证的过程:

步骤601,验证平台从验证用例集合中随机选取验证用例:在针对待验证系统(如system-on-a-chip,soc,片上系统)的仿真/验证启动后,验证平台从预先构建好的验证用例集合中随机选取一个验证用例。其中,验证用例集合中包括各个定向验证用例(也即,验证soc的指定功能的验证用例)、以及与该验证用例对应的唯一标识。

验证平台将获取的验证用例中的数据进行随机化处理,并生成多条验证指令(例如,验证平台可以对验证用例中的功能指令的参数进行随机化,或者对各条指令的执行顺序进行随机化处理);

步骤602,验证平台将验证用例写入目标存储器:验证平台选取出验证用例后,将验证用例通过后门写入的方式、存储至目标存储器中。

具体地,验证平台可以获取目标存储器的存储量,以及获取多条验证指令的数据量,根据目标存储器的存储量以及多条验证指令的数据量,确定将多条验证指令存储至目标存储器的起始位置,以确保最后一条验证指令存储的在目标存储器的存储单元没有溢出目标存储器。之后,验证平台基于起始位置逐条存储每一条验证指令。

步骤603,待验证系统加载验证用例:验证平台将验证用例在目标存储器中的地址,通过虚拟io设备发送至待验证系统,待验证系统读取到地址后,从地址中取出验证用例。(其中,目标存储器可以是:待验证系统的内部存储空间、外设存储空间;目标存储器的地址即为:验证进程需要跳转至的入口地址。)

步骤604,待验证系统执行验证用例,以通过待验证系统执行验证用例后获得的数据、对待验证系统的功能进行验证。

步骤605,待验证系统执行当前验证用例结束后,判断仿真是否结束:若确定待验证系统执行验证用例的结果满足预设条件,结束仿真,并根据待验证系统执行随机验证用例后获得的数据,确定待验证系统是否通过验证,或者确定待验证系统的各项性能指标等。

若确定待验证系统执行验证用例的结果不满足预设条件,则向验证平台中的虚拟io设备发送用于请求发送下一条验证用例的请求。则验证平台继续向验证平台请求发送下一条验证用例。

其中,验证用例的结果满足预设条件可以是验证用例长度或者数量满足用户需求,可以是执行全部验证用例的时长满足用户需求。

进一步参考图7,作为对上述各图所示方法的实现,本公开提供了一种用于验证系统的装置的一个实施例,该装置实施例与图2、图3和图4所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图7所示,本实施例的用于验证系统的装置700包括:接收单元701、第一获取单元702、发送单元703、判断单元704。其中,接收单元,被配置为响应于接收到用于指示验证待验证系统的第一指令,进行以下循环操作:第一获取单元,被配置为获取验证用例;发送单元,被配置为将验证用例存储至目标存储器中,并将验证用例存储至目标存储器的地址发送至待验证系统,地址用于使待验证系统获取验证用例;判断单元,被配置为响应于确定待验证系统执行验证用例的数据满足预设条件,停止循环操作,并根据待验证系统执行验证用例后获得的结果,确定待验证系统的状态。

在一些实施例中,发送单元,包括:生成模块,被配置为将验证用例中的数据进行随机化处理,并生成至少一条验证指令;存储模块,被配置为将至少一条验证指令存储至目标存储器中;发送模块,被配置为将至少一条验证指令存储至目标存储器的起始位置发送至待验证系统。

在一些实施例中,存储模块,包括:数据量获取模块,被配置为获取目标存储器的存储量,获取至少一条验证指令中全部验证指令的数据量;存储地址分配模块,被配置为根据目标存储器的存储量以及全部验证指令的数据量,确定将至少一条验证指令存储至目标存储器的起始位置,并基于起始位置逐条存储至少一条验证指令。

在一些实施例中,用于验证系统的装置还包括:第三获取单元,被配置为获取用于指示对验证用例进行随机化处理的第二指令;生成模块,包括:随机化处理模块,被配置为根据第二指令,对验证用例中的数据进行随机化处理。

在一些实施例中,发送单元,包括:通信模块,被配置为将验证用例存储至目标存储器的地址,通过预设传输设备发送至待验证系统。

在一些实施例中,用于验证系统的装置包括:地址分配模块,被配置为为预设传输设备分配预设数据传输地址;第一确定模块,被配置为响应于基于预设数据传输地址接收到接收信息或者发送出发送信息,不存储接收信息或者发送信息;或者,第二确定模块,被配置为响应于基于预设数据传输地址接收到接收信息,确定该接收信息为待验证系统发送的、用于请求对待验证系统进行验证的信息。

在一些实施例中,用于验证系统的装置还包括:中断单元,被配置为触发预设传输设备中的预设中断。

上述装置700中的各单元与参考图2、图3和图4描述的方法中的步骤相对应。由此上文针对用于验证系统的方法描述的操作、特征及所能达到的技术效果同样适用于装置700及其中包含的单元,在此不再赘述。

进一步参考图8,作为对上述各图所示方法的实现,本公开提供了一种用于验证系统的装置的一个实施例,该装置实施例与图5所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图8所示,本实施例的用于验证系统的装置800,应用于待验证系统,包括:第二获取单元801、执行单元802。其中,第二获取单元,被配置为响应于接收到验证用例在目标存储器中的地址,基于地址获取验证用例;执行单元,被配置为执行验证用例,并根据执行验证用例后获得的结果,确定待验证系统的状态。

在一些实施例中,第二获取单元,包括:获取模块,被配置为响应于接收到至少一条验证指令在目标存储器中的起始位置,基于起始位置逐条读取至少一条验证指令中的验证指令,其中,至少一条验证指令基于对验证用例中的数据进行随机化处理得到。

上述装置800中的各单元与参考图5描述的方法中的步骤相对应。由此上文针对用于验证系统的方法描述的操作、特征及所能达到的技术效果同样适用于装置800及其中包含的单元,在此不再赘述。

根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图9示出了可以用来实施本申请的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(rom)902中的计算机程序或者从存储单元908加载到随机访问存储器(ram)903中的计算机程序,来执行各种适当的动作和处理。在ram903中,还可存储设备900操作所需的各种程序和数据。计算单元901、rom902以及ram903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。

设备900中的多个部件连接至i/o接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元905,例如网卡、调制解调器、无线通信收发机等。通信单元905允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如用于验证系统的方法。例如,在一些实施例中,用于验证系统的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由rom902和/或通信单元905而被载入和/或安装到设备900上。当计算机程序加载到ram903并由计算单元901执行时,可以执行上文描述的用于验证系统的方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行用于验证系统的方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的数据,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

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