一种测试程序生成方法、装置、设备和可读存储介质与流程

文档序号:31448746发布日期:2022-09-07 12:40阅读:64来源:国知局
一种测试程序生成方法、装置、设备和可读存储介质与流程

1.本发明涉及集成电路领域,特别是涉及一种测试程序生成方法、装置、设备和可读存储介质。


背景技术:

2.在处理器的硅前验证阶段,可以将测试程序传递至代码仿真器,代码仿真器通过处理器(central processing unit,cpu)的寄存器转换级电路(register transfer level,rtl)代码模拟处理器运行测试程序,完成处理器的功能验证。
3.在验证过程中,为了使验证尽可能的覆盖处理器的所有功能,测试程序中通常会包括较多数量的指令,导致测试程序所需的虚拟页较多。处理器中包括地址转换后援缓冲器(translation lookaside buffer,tlb),tlb中存储的页表中的每个表项存储一个虚拟页与对应的物理页之间的映射关系。代码仿真器在模拟处理器读取测试程序中的指令时,可以基于指令在虚拟页中的地址,从tlb中确定对应的物理页,然后从内存的物理页中读取指令。tlb的空间有限,只能存储一定数量的虚拟页的表项。当测试程序的虚拟页较多时,会出现较多数量的虚拟页的映射关系未存储在tlb中的情况,在测试程序的运行过程中,会频繁出现tlb地址查找失败(tlb miss)的现象,需要频繁进行tlb的重装入(tlbrefill)操作,导致验证效率较低。


技术实现要素:

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.本发明实施例包括以下优点:在生成跳转指令的过程中,首先确定位于目标地址范围内的目标虚拟页,然后从目标虚拟页中查找确定可以作为跳转指令的目标地址,设置跳转指令的操作数与目标地址匹配,可以将跳转指令的目标地址限定在当前生成的虚拟页中。在测试程序的运行过程中,当执行到跳转指令时,跳转指令的目标地址在当前虚拟页之前的某个虚拟页中,该虚拟页的映射关系大概率上已经装入tlb,因此可以从tlb中获取到目标地址所在虚拟页的映射关系的概率显著提高,可以降低tlb地址查找失败的概率,避免频繁实施tlb的重装入的操作,从而可以提高处理器的验证效率。
附图说明
48.图1示出了本发明实施例中的一种测试程序生成方法的步骤流程图;
49.图2示出了本发明实施例中的一种目标地址的查找流程示意图;
50.图3示出了本发明实施例中的一种目标虚拟页的查找流程示意图;
51.图4示出了本发明实施例中的另一种目标地址的查找流程示意图;
52.图5示出了本发明实施例中的又一种目标地址的查找流程示意图;
53.图6示出了本发明实施例中的又一种目标地址的查找流程示意图;
54.图7示出了本发明实施例中的一种跳转方向的选择示意图;
55.图8示出了本发明实施例中的又一种目标地址的查找流程示意图;
56.图9示出了本发明实施例中的一种测试程序生成装置的结构框图;
57.图10示出了本发明实施例中的一种电子设备的结构框图。
具体实施方式
58.本实施例提供一种测试程序生成方法、装置、设备和可读存储介质,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
59.在先技术中,在生成测试程序中的跳转指令时,随机的从测试程序对应的虚拟地址空间中选择一个符合约束条件的地址作为跳转指令跳转时的目标地址。在测试程序的运行过程中,当执行到跳转指令时,首先确定跳转指令的目标地址,然后向目标地址跳转。由于目标地址很大概率上不在跳转指令所处的当前虚拟页中,并且目标地址所在的虚拟页的映射关系很大概率上未预先装入tlb,需要实施tlb的重装入。在验证过程中,为了尽可能的使验证过程覆盖处理器的所有功能,测试程序中会包括数量较多的跳转指令,需要频繁实
施tlb的重装入,降低了处理器的验证效率。
60.本发明实施例的核心构思之一在于,在生成测试程序中的跳转指令时,将跳转指令的目标地址限定在预先划分得到的一个虚拟页中,跳转指令的目标地址为该虚拟页中的一个虚拟地址,并且该虚拟地址未分配给除跳转指令之外的其他指令,同时该虚拟页位于目标地址范围内,与跳转指令所处的当前虚拟页接近,并且在当前虚拟页之前划分得到。在测试程序的存储过程中,根据虚拟页的划分顺序,依次存储多个虚拟页。tlb通常按虚拟页的存储顺序,依次存储多个虚拟页的映射关系,当跳转指令被读入处理器时,跳转指令所处的当前虚拟页的映射关系已经存储在tlb中,同时位于当前虚拟页之前的多个虚拟页的映射关系大概率上已经被预先装入tlb,并且未被替换出tlb。在测试程序的运行过程中,当执行到跳转指令时,跳转指令的目标地址在当前虚拟页之前的某个虚拟页中,该虚拟页的映射关系大概率上已经装入tlb,而且未被替换出tlb,大概率上可以从tlb中直接获取到该虚拟页的映射关系,可以降低tlb地址查找失败的概率,避免频繁实施tlb的重装入的操作,从而可以提高处理器的验证效率。
61.其中,本实施例中提到的地址均为测试程序对应的虚拟地址空间中的虚拟地址(virtualaddress,va),虚拟页可以称之为页(page)、程序计数器(program counter,pc)页或者虚拟地址页。虚拟页为测试程序生成过程中划分得到虚拟地址空间中的一个地址范围,包括起始地址至终止地址之间连续的多个虚拟地址,虚拟页的大小可以是4千(k)字节、16k字节、2兆(m)字节或32m字节。
62.测试程序中包括多条指令,每条指令均为处理器的指令集中的指令,例如加法指令、减法指令、写指令、读指令、跳转指令,以及其他指令。指令中包括操作码(operation code)和操作数,或者只包括操作码。处理器可以执行的指令的大小是固定的,因此为每条指令配置的虚拟地址必须满足对齐原则。例如,若每条指令由4字节组成,则存储每条指令需要4字节的物理地址,为指令配置的虚拟地址与物理地址对应。在测试程序的生成过程中,可以生成指令集中的各条指令,并模拟执行指令,获取对应的目标结果。在测试程序的运行过程中,在执行某条指令时,可以获取指令执行过程中的实际结果,比较实际结果与目标结果是否相同,可以验证处理器的各项功能是否正常。
63.参照图1,示出了本发明实施例中的一种测试程序生成方法的步骤流程图,该方法可以包括如下步骤:
64.步骤101、获取待生成指令的操作码。
65.本实施例中,测试程序生成方法可以由计算机和服务器等电子设备实施,电子设备中预先存储有配置文件,配置文件中包括生成测试程序所需的操作码集合。操作码集合中包括指令集中各条指令的操作码,例如加法指令的操作码、减法指令的操作码、写指令的操作码、读指令的操作码、跳转指令的操作码等不同指令的操作码。在生成测试程序中的每条指令时,电子设备首先可以从操作码集合中获取一个操作码,然后根据操作码所属的指令类型,为操作码设置对应的操作数。待生成指令为即将生成的指令,电子设备可以随机的从操作码集合中选择一个操作码作为待生成指令的操作码,也可以按一定的规则,从操作码集合中选择一个操作码作为待生成指令的操作码。电子设备获取操作码的方法可以根据需求设置,本实施例对此不做限制。
66.在生成指令的同时,电子设备可以对虚拟地址空间进行划分,将虚拟地址空间划
分为多个虚拟页,每个虚拟页包括从起始地址至终止地址的多个虚拟地址。在生成每条指令时,可以为指令分配一个对应的虚拟地址,虚拟地址位于其中一个虚拟页中。例如,在生成测试程序中的第一条指令时,可以划分得到第一个虚拟页,第一个虚拟页的大小可以设置为4k字节,当第一虚拟页的起始地址为虚拟地址空间中的虚拟地址n时,终止地址为虚拟地址空间中的第(n+4k)字节个地址。虚拟页的划分过程可以根据需求设置,本实施例对此不做限制。
67.在一种实施方式中,在获取到待生成指令的操作码之后,首先可以在当前虚拟页中为待生成指令分配一个符合约束条件的虚拟地址。约束条件用于判断虚拟地址是否可以作为跳转指令的目标地址,约束条件可以是虚拟地址满足对齐原则,并且未被其他指令占用。例如,在获取待生成指令的操作码之前,预先划分有一个虚拟页,该虚拟页中包括满足对齐原则,并且未分配给其他指令的一个虚拟地址,则可以将该虚拟地址分配给待生成指令。约束条件可以根据不同指令具体设置,针对跳转指令,约束条件中还可以包括在虚拟地址之后具有连续的多个空闲虚拟地址,即当某个虚拟地址满足对齐原则、未被其他指令占用、并且在该虚拟地址之后具有多个未被其他指令占用的虚拟地址时,该虚拟地址可以作为跳转指令的虚拟地址。
68.步骤102、在根据操作码确定待生成指令为跳转指令的情况下,确定跳转指令所能跳转到的目标地址范围,并从预先划分得到的虚拟页中确定位于目标地址范围内的至少一个目标虚拟页。
69.其中,在获取到操作码之后,电子设备首先判断操作码所属的指令类型,若确定操作码为跳转指令的操作码,则确定待生成指令为跳转指令。跳转指令可以是立即数寻址的跳转指令,也可以是寄存器寻址的跳转指令,跳转指令的目标地址为基地址与地址偏移量之和。在立即数寻址的跳转指令中,跳转指令的操作数中包括立即数,立即数为地址偏移量,基地址为跳转指令的地址,基地址即在生成跳转指令的过程中为跳转指令分配的虚拟地址。在寄存器寻址的跳转指令中,跳转指令的操作数中包括寄存器标识和立即数,寄存器标识所表征的寄存器中存储的地址为基地址,立即数为地址偏移量。本实施例中将立即数寻址的跳转指令的操作数中包括的立即数称之为第一立即数,将寄存器寻址的跳转指令的操作数中包括的立即数称之为第二立即数,第一立即数和第二立即数统称为立即数。跳转指令的操作数中包括的寄存器标识所表征的寄存器为待验证的处理器中包括的多个寄存器中的一个,寄存器为处理器中的通用寄存器。在生成跳转指令的过程中,需要从处理器包括的多个寄存器中选择一个寄存器,并将该选择的寄存器的标识作为跳转指令的操作数中的寄存器标识,该寄存器在跳转指令执行时被跳转指令读取,以获取跳转过程中的基地址。
70.本实施例中,在确定待生成指令为跳转指令之后,电子设备首先可以确定跳转指令所能跳转到的目标地址范围,然后从预先划分得到的一个或多个虚拟页中确定位于目标地址范围内的目标虚拟页,最后从目标虚拟页中查找确定符合约束条件的目标地址。如图2所示,图2示出了本发明实施例中的一种目标地址的查找流程示意图,针对立即数寻址的跳转指令,首先可以确定第一立即数的数值范围,然后根据第一立即数的数值范围确定目标地址范围,并确定位于目标地址范围内的目标虚拟页,从目标虚拟页中查找确定符合约束条件的目标地址。针对寄存器寻址的跳转指令,首先选择一个寄存器作为跳转指令所操作的目标寄存器,并确定第二立即数的数值范围,然后基于目标寄存器中存储的原始地址和
第二立即数的数值范围,确定目标地址范围,以及确定位于目标地址范围内的目标虚拟页,最后从目标虚拟页中查找确定符合约束条件的目标地址。当跳转指令为寄存器寻址时,在将某个寄存器作为目标寄存器之后,若未查找到符合约束条件的目标地址,可以重新选择另一个寄存器作为目标寄存器,重新确定目标地址范围和目标虚拟页,并重新查找符合约束条件的目标地址。图2中符号“n1”表示在选择某个寄存器作为目标寄存器之后,从所有位于目标地址范围内的目标虚拟页中均未查找到符合约束条件的目标地址,此时可以选择另一个寄存器作为目标寄存器,重新确定目标地址范围和目标虚拟页,然后查找确定符合约束条件的目标地址。图2中符号“n2”表示在选择所有寄存器作为目标寄存器之后,均未查找到符合约束条件的目标地址,此时可以在跳转指令之前增加写指令,通过写指令向目标寄存器中写入合适的目标基地址,然后根据目标基地址重新确定目标地址范围,并重新确定目标虚拟页,从目标虚拟页中重新查找确定目标地址。
71.可选地,确定跳转指令所能跳转到的目标地址范围的步骤可以包括:
72.在跳转指令为立即数寻址的情况下,确定操作数包括第一立即数,基于第一立即数的数值范围和跳转指令的地址,确定目标地址范围;
73.在跳转指令为寄存器寻址的情况下,确定操作数包括第二立即数,并从多个寄存器中选择一个待选寄存器作为跳转指令所操作的目标寄存器;基于目标寄存器中存储的原始地址和第二立即数的数值范围,确定目标地址范围。多个寄存器为待验证的处理器中包括的寄存器,待选寄存器为生成该跳转指令的过程中,未被选择过的寄存器。
74.其中,目标寄存器指的是寄存器寻址的跳转指令中,操作数中包括的寄存器标识所属的寄存器,跳转指令在执行过程中,根据操作数中包括的寄存器标识,从目标寄存器中读取基地址,根据基地址和地址偏移量确定目标地址。如上所述,跳转指令的目标地址为基地址与地址偏移量之和,当跳转指令为立即数寻址时,基地址为跳转指令的地址;当跳转指令为寄存器寻址时,基地址为目标寄存器中存储的原始地址,基地址固定,调节地址偏移量的大小,可以得到不同的目标地址。当地址偏移量达到最大值时,目标地址为跳转指令所能跳转到的最大目标地址,当地址偏移量达到最小值时,目标地址为跳转指令所能跳转到的最小目标地址。地址偏移量为跳转指令的操作数中包括的立即数,由于跳转指令具有固定的位数,因此立即数为固定位数的二进制数,具有最大值和最小值。当立即数为正值时,目标地址在基地址之后,当立即数为负值时,目标地址在基地址之前。例如,若基地址为x,立即数的最大值为y,最小值为z,y为正的二进制数,z为负的二进制数,则目标地址范围从(x+z)至(x+y)。
75.结合上述举例,当跳转指令为立即数寻址时,跳转指令的操作数为一个立即数,该立即数即第一立即数,首先可以确定第一立即数的位数,根据第一立即数的位数可以确定第一立即数所能达到的最大值和最小值。此时,基地址为跳转指令的地址,基地址与第一立即数的最大值之和为目标地址范围内的最大目标地址,基地址与第一立即数的最小值之和为目标地址范围内的最小目标地址,以此可以确定目标地址范围。当跳转指令为寄存器寻址时,跳转指令的操作数中包括寄存器标识和一个立即数,该立即数即第二立即数。跳转指令为待生成指令,因此跳转指令所操作的寄存器并未确定。此时,可以从多个寄存器中选择一个待选寄存器作为跳转指令所操作的目标寄存器,并将目标寄存器中存储的原始地址作为基地址。进一步的,可以根据基地址和第二立即数的最大值确定最大目标地址,以及根据
基地址和第二立即数的最小值确定最小目标地址,以此确定目标地址范围。在生成跳转指令之前,预先生成有其它指令,目标寄存器中存储的原始地址由其它指令写入。待选寄存器为生成跳转指令的过程中未被选择过的寄存器,例如处理器中包括32个寄存器,在刚获取到跳转指令的操作码时,32个寄存器均为待选择寄存器,当选择其中一个寄存器作为目标寄存器之后,剩余的其他的寄存器为待选寄存器。需要说明的是,在确定目标地址范围的过程中,并未确定第一立即数或第二立即数的具体值,只是根据第一立即数或第二立即数的位数,确定了第一立即数或第二立即数的数值范围。
76.本实施例中,在确定目标地址范围之后,可以从预先生成的一个或多个虚拟页中确定位于目标地址范围内的目标虚拟页。如图3所示,图3示出了本发明实施例中的一种目标虚拟页的查找流程示意图,每个虚拟页包括从起始地址至终止地址的多个虚拟地址。在确定目标地址范围之后,首先可以从所有预先生成的虚拟页中选择虚拟页,确定虚拟页的起始地址和终止地址,然后比较虚拟页的起始地址与目标地址范围内的最小目标地址,以及比较虚拟页的终止地址与目标地址范围内的最大目标地址,若虚拟页的起始地址大于最小目标地址,并且虚拟页的终止地址小于最大目标地址,则确定虚拟页位于目标地址范围内。例如,若某个虚拟页的起始地址为a,终止地址为b,目标地址范围从(x+z)至(x+y),当确定起始地址a大于(x+z),并且终止地址b小于(x+y)时,可以确定虚拟页位于目标地址范围之内,可以将虚拟页作为目标虚拟页。
77.其中,在划分得到虚拟页之后,可以为每个虚拟页设置不同的页号,页号可以为虚拟页的起始地址。可以根据虚拟页的页号确定虚拟页的起始地址和终止地址。例如,当虚拟页的页号为起始地址时,可以将虚拟页的页号移动目标位数,得到虚拟页的终止地址,而虚拟页的页号即虚拟页的起始地址。需要说明的是,在生成跳转指令之前,可能预先划分得到有一个或多个虚拟页,在确定目标地址范围之后,可以从预先划分得到的所有虚拟页中确定一个或多个位于目标地址范围内的目标虚拟页。
78.其中,当跳转指令为寄存器寻址时,在选择目标寄存器的过程中,可以随机的从多个寄存器中选择一个未被选择过的寄存器作为目标寄存器。也可以顺序选择其中一个寄存器作为目标寄存器。
79.在本发明实施例中,根据跳转指令的操作数可以准确确定跳转指令所能跳转到的目标地址范围,根据目标地址范围可以从预先划分得到的所有虚拟页中,确定一个或多个虚拟页作为跳转指令跳转时的目标虚拟页。
80.步骤103、在目标虚拟页中包括符合约束条件的目标地址的情况下,设置跳转指令的操作数与目标地址匹配,以将目标地址作为跳转指令跳转时的目标地址。
81.本实施例中,在确定位于目标地址范围内的一个或多个目标虚拟页之后,可以对目标虚拟页进行查找,确定目标虚拟页中是否包括符合约束条件的目标地址,当目标虚拟页中包括一个或多个符合约束条件的虚拟地址时,可以选择其中一个符合约束条件的虚拟地址作为跳转指令的目标地址,设置跳转指令的操作数与该目标地址匹配。
82.可选地,步骤103可以通过方式一实现,方式一包括:
83.从至少一个目标虚拟页中选择一个待选虚拟页;待选虚拟页为未被选择过的目标虚拟页;
84.根据基地址和待选虚拟页的地址范围设置得到一个或多个不同的临时立即数;基
地址在偏移临时立即数后,对应一个位于待选虚拟页中的备选地址;跳转指令为立即数寻址时,基地址为跳转指令的地址;跳转指令为寄存器寻址时,基地址为原始地址;
85.在一个或多个备选地址中包括符合约束条件的目标地址的情况下,将目标地址对应的临时立即数作为操作数中的立即数;
86.在所有备选地址均不符合约束条件的情况下,重复选择一个待选虚拟页的步骤、以及设置临时立即数的步骤,直至得到操作数中的立即数,或者直至至少一个目标虚拟页中无待选虚拟页。
87.在一种实施方式中,在确定至少一个目标虚拟页之后,首先可以从至少一个目标虚拟页中选择一个待选虚拟页,查找确定选择的待选虚拟页中是否包括符合约束条件的目标地址。待选虚拟页为本次确定的所有目标虚拟页中未被选择过的一个目标虚拟页,即未查找过的目标虚拟页。例如,若确定位于目标地址范围内的目标虚拟页包括目标虚拟页a、目标虚拟页b和目标虚拟页c,在第一次选择待选虚拟页时,目标虚拟页a、目标虚拟页b和目标虚拟页c均为待选虚拟页,第一次选择地待选虚拟页为目标虚拟页b时,剩余的目标虚拟页a和目标虚拟页c为待选虚拟页。在第二次选择时,目标虚拟页a和目标虚拟页c为待选虚拟页,可以从目标虚拟页a和目标虚拟页c中选择一个待选虚拟页。
88.在对选择的待选虚拟页进行查找的过程中,可以根据待选虚拟页的地址范围和基地址的大小,设置一个或多个不同的临时立即数,并且控制基地址在偏移临时立即数之后,得到的备选地址在目标虚拟页的地址范围内。例如,当跳转指令为立即数寻址时,基地址为跳转指令的地址,在选择目标虚拟页a为待选虚拟页之后,可以确定目标虚拟页a的起始地址和终止地址,并通过预设算法设置一个临时立即数,控制跳转指令的地址与临时立即数之和位于目标虚拟页a的起始地址和终止地址之间。此时,跳转指令的地址与临时立即数之和即备选地址。当跳转指令为寄存器寻址时,由于在确定目标地址范围的过程中,已经预先选择了一个寄存器作为目标寄存器,可以确定目标虚拟页a的起始地址和终止地址,并通过预设算法设置一个临时立即数,并控制目标寄存器中存储的原始地址与临时立即数之和位于目标虚拟页a的起始地址和终止地址之间。此时,原始地址与临时立即数之和为备选地址。
89.在设置得到临时立即数之后,可以确定临时立即数对应的备选地址是否符合上述约束条件,当备选地址符合约束条件时,确定备选地址为目标地址,可以设置与目标地址匹配的操作数,得到跳转指令的操作数。具体的,当备选地址符合约束条件时,若跳转指令为立即数寻址,可以直接将备选地址对应的临时立即数作为跳转指令的操作数中的第一立即数;当跳转指令为寄存器寻址时,可以将备选地址对应的临时立即数作为跳转指令的操作数中的第二立即数,并将预先选择的目标寄存器作为跳转指令的操作数中的寄存器,将目标寄存器的寄存器标识作为跳转指令的一个操作数。
90.其中,在设置临时立即数的过程中,可以只设置一个临时立即数,得到一个备选地址,然后判断备选地址是否符合约束条件。也可以一次性设置多个不同的临时立即数,得到多个不同的备选地址,然后判断每个备选地址是否符合约束条件。或者,可以设置循环总次数,在设置临时立即数的过程中,每次设置一个临时立即数,然后判断对应的备选地址是否符合约束条件,当备选地址符合约束条件时,将备选地址作为目标地址。当备选地址不符合约束条件时,可以循环执行设置临时立即数的步骤和判断备选地址是否符合约束条件的步
骤,在备选地址符合约束条件时结束循环,将备选地址对应的临时立即数作为操作数中的立即数,或者当循环次数达到循环总次数时停止循环,确定选择的待选虚拟页中不包括符合约束条件的目标地址。
91.如图4所示,图4示出了本发明实施例中的另一种目标地址的查找流程示意图,在确定待生成指令为跳转指令时,电子设备首先确定目标地址范围,然后从所有预先划分得到的虚拟页中确定位于目标地址范围内的一个或多个目标虚拟页。在确定一个或多个目标虚拟页之后,可以从中选择一个待选虚拟页,查找待选虚拟页中是否包括符合约束条件的目标地址。当从选择的待选虚拟页中查找确定符合约束条件的目标地址时,设置跳转指令的操作数与目标地址匹配,结束整个查找流程。当未从选择的待选虚拟页中查找确定符合约束条件的目标地址时,选择另一个待选虚拟页继续进行查找。当所有目标虚拟页均被选择查找之后,若仍未确定目标地址,则可以确定当前的所有目标虚拟页中均不包括符合约束条件的目标地址,可以结束查找流程。
92.在本发明实施例中,在对目标虚拟页进行查找的过程中,可以根据目标虚拟页的地址范围和跳转指令的基地址设置一个或多个临时立即数,得到位于目标虚拟页中的一个或多个备选地址,当备选地址符合约束条件时,将备选地址作为跳转指令的目标地址,并根据目标地址确定跳转指令的操作数,可以从目标虚拟页中查找确定符合约束条件的目标地址,从而将跳转指令的目标地址限定其中一个目标虚拟页中。
93.可选地,步骤103可以通过方式二实现,方式二包括:
94.从至少一个目标虚拟页中选择一个待选虚拟页;待选虚拟页为未被选择过的目标虚拟页;
95.在从待选虚拟页中遍历到符合约束条件的目标地址的情况下,将基地址与目标地址之间的偏移量作为操作数中的立即数;跳转指令为立即数寻址时,基地址为跳转指令的地址;跳转指令为寄存器寻址时,基地址为原始地址;
96.在未从待选虚拟页中遍历到符合约束条件的目标地址的情况下,重复选择一个待选虚拟页的步骤,以及对待选虚拟页进行遍历的步骤,直至得到操作数中的立即数,或者直至至少一个目标虚拟页中无待选虚拟页。
97.在一种实施方式中,可以通过遍历的方式对目标虚拟页进行查找,确定目标虚拟页中是否包括符合约束条件的目标地址。结合图4所示,在第一次选择时,可以从所有的待选虚拟页中选择目标虚拟页a,在选择目标虚拟页a之后,可以从目标虚拟页a的起始地址开始,依次判断每个虚拟地址是否被其他指令占用,若虚拟地址未被其他指令占用,并且满足对齐原则,可以确定虚拟地址符合约束条件,为目标地址。当目标虚拟页a中的所有虚拟地址均被遍历过之后,若未确定符合约束条件的目标地址,则确定目标虚拟页a中无符合约束条件的目标地址。此时,可以选择另一个待选虚拟页进行遍历,在遍历到符合约束条件的目标地址时,结束遍历,设置目标地址与基地址之间的地址偏移量为操作数中的立即数,以使操作数与目标地址匹配。在选择待选虚拟页时,若所有目标虚拟页均被选择过,并且每个目标虚拟页均未包括符合约束条件的目标地址,可以停止选择待选虚拟页,确定当前的所有目标虚拟页中均不包括符合约束条件的目标地址,可以结束查找流程。
98.其中,在根据遍历到的目标地址设置跳转指令的操作数时,当跳转指令为立即数寻址时,基地址为跳转指令的地址,目标地址为跳转指令的地址与立即数之和,可以将目标
地址与跳转指令的地址之间的地址偏移量作为跳转指令的操作数中的立即数。当跳转指令为寄存器寻址时,在确定目标范围的过程中已经预先确定了目标寄存器,可以将目标地址与目标寄存器中存储的原始地址之间的地址偏移量作为操作数中的立即数。
99.在本发明实施例中,在确定目标虚拟页之后,可以通过遍历的方式,确定目标虚拟页中是否包括符合约束条件的目标地址,在遍历到目标地址时,设置与目标地址匹配的操作数,得到跳转指令的操作数。通过遍历的方式,可以快速确定目标虚拟页中是否包括符合约束条件的目标地址。
100.可选地,该方法还可以包括:
101.在至少一个目标虚拟页中无待选虚拟页、且跳转指令为寄存器寻址的情况下,若多个寄存器中包括待选寄存器,则从多个寄存器中选择另一个待选寄存器作为目标寄存器,并重复执行确定目标地址范围和目标虚拟页的步骤,以及在目标虚拟页中包括符合约束条件的目标地址的情况下设置操作数与目标地址匹配的步骤。
102.在一种实施方式中,当跳转指令为寄存器寻址时,目标地址范围根据目标寄存器中存储的原始地址确定,当选择的寄存器不同,并且不同寄存器中存储的原始地址不同时,可以确定不同的目标地址范围,并确定不同的目标虚拟页。在确定当前的所有目标虚拟页中均不包括符合约束条件的目标地址时,可以重新选择另一个待选寄存器作为目标寄存器,然后根据新的目标寄存器中的原始地址,重新确定目标地址范围,并根据新的目标地址范围重新确定目标虚拟页,最后对新的目标虚拟页进行查找,确定目标虚拟页中是否包括符合约束条件的目标地址。如图5所示,图5示出了本发明实施例中的又一种目标地址的查找流程示意图,针对寄存器寻址的跳转指令,首先从处理器包括的多个寄存器中选择一个寄存器作为目标寄存器,然后将目标寄存器中存储的原始地址作为基地址,结合立即数的数值范围确定目标地址范围。在确定目标地址范围之后,确定位于目标地址范围之内的至少一个目标虚拟页,依次从至少一个目标虚拟页中选择待选虚拟页进行查找,确符合约束条件的目标地址。当选择的待选虚拟页中无符合约束条件的目标地址时,选择另一个待选虚拟页进行查找。当所有目标虚拟页均被选择之后,若未确定符合约束条件的目标地址,可以确定当前所有目标虚拟页中未包括符合约束条件的目标地址,此时可以选择另一个寄存器作为目标寄存器。然后,根据新的目标寄存器中的原始地址重新确定目标地址范围,并重新确定新的目标虚拟页,对新的目标虚拟页进行查找。图5中符号“y1”表示当所有目标虚拟页被查找完成之后,未确定目标地址,此时若还包括未被选择的寄存器,可以选择另一个待选寄存器作为目标寄存器,然后重新确定目标地址范围和目标虚拟页,对重新确定的目标虚拟页进行查找。当所有寄存器均被选择作为目标寄存器之后,若仍未确定符合约束条件的目标地址,则确定无法基于目前的所有寄存器中存储的原始地址确定符合约束条件的目标地址。
103.在本发明实施例中,当跳转指令为寄存器寻址时,可以循环选择每个寄存器作为跳转指令所操作的目标寄存器,并循环执行确定目标地址范围和目标虚拟页,以及对目标虚拟页进行查找的步骤,直至确定目标地址或者所有寄存器均被选择作为目标寄存器。循环以每个寄存器作为目标寄存器,可以全方位的确定所有目标虚拟页,对所有目标虚拟页进行查找,以确定目标地址,从而可以尽可能的将目标地址限定在目标虚拟页中。
104.可选地,该方法还可以包括:
105.在多个寄存器中无待选寄存器的情况下,在跳转指令之前增加写指令;写指令用于向目标寄存器写入目标基地址;目标基地址为其中一个虚拟页中的一个地址;
106.基于目标基地址,执行确定目标地址范围和目标虚拟页的步骤,以及在目标虚拟页中包括符合约束条件的目标地址的情况下设置操作数与目标地址匹配的步骤;
107.在目标虚拟页中未包括符合约束条件的目标地址的情况下,重新设置不同的目标基地址,并重复执行基于目标基地址,确定目标地址范围和目标虚拟页的步骤,以及在目标虚拟页中包括符合约束条件的目标地址的情况下设置操作数与目标地址匹配的步骤,直至得到操作数中的立即数,或者直至达到预设的结束条件。
108.在一种实施方式中,当所有寄存器均被选择之后,若仍未查找到符合约束条件的目标地址,可以在跳转指令之前增加写指令,向目标寄存器中写入一个新的地址,即目标基地址,目标基地址可以与每个寄存器中存储的原始地址不同。所有寄存器均被选择之后,仍未查找确定目标地址时,表示无法基于当前的所有寄存器中存储的原始地址确定符合约束条件的目标地址。其中,目标基地址可以是预先生成的所有虚拟页中选择的一个预定虚拟页中的地址,目标基地址可以是预定虚拟页中的起始地址,也可以是预定虚拟页中的其他地址。如图5所示,在确定所有寄存器均被选择之后,可以在跳转指令之前增加写指令,写指令所操作的寄存器为目标寄存器,写入目标寄存器的地址为目标基地址,通过写指令可以向目标寄存器中写入目标基地址。此时,可以根据目标基地址和立即数的数值范围,重新确定新的目标地址范围。进一步地,可以基于新的目标地址范围,确定新的目标虚拟页,然后对新的目标虚拟页进行查找,并在新的目标虚拟页中包括符合约束条件的目标地址时,设置跳转指令的操作数与目标地址匹配。
109.在一些情况下,在向目标寄存器中写入目标基地址之后,可能仍旧无法从重新确定的目标虚拟页中查找到符合约束条件的目标地址,此时可以重新设置不同的目标基地址,根据不同的目标基地址重新确定目标地址范围和目标虚拟页,然后从新的目标虚拟页中查找确定目标地址。但是,在生成测试程序的过程中,不可能无限次的设置目标基地址,可以预先设置结束条件,控制目标地址的在达到结束条件时,停止设置目标基地址。如图5所示,结束条件可以为最大次数,图5中符号“y2”表示在基于某个目标基地址重新确定目标虚拟页之后,重新确定的目标虚拟页中均未包括符合约束的目标地址,此时可以先判断目标基地址的设置次数是否达到最大次数,若未达到最大次数,则重新执行设置目标基地址的步骤,设置一个新的目标基地址,然后基于新的目标基地址重新确定目标虚拟页,并对重新确定的目标虚拟页进行查找。在目标基地的设置次数达到最大次数时,确定达到结束条件,停止设置新的目标基地址。结束条件可以根据需求设置,本实施例对此不做限制。
110.可选地,在基于目标基地址重新确定目标地址范围和目标虚拟页的过程中,可以从所有预先生成的虚拟页中随机选择一个虚拟页作为预定虚拟页,也可以按虚拟页的生成顺序,选择靠近当前虚拟页的一个相邻虚拟页作为预定虚拟页。或者,在确定预定虚拟页之后,可以将预定虚拟页的地址范围作为目标地址范围,并将预定虚拟页作为目标虚拟页,查找确定预定虚拟页中是否包括符合约束条件的目标地址。
111.可选地,在增加写指令之前,可以重新从处理器包括的多个寄存器中选择一个寄存器作为目标寄存器,向目标寄存器中写入目标基地址,也可以直接向预先确定的目标寄存器中直接写入目标基地址。
112.在一些情况下,在向目标寄存器中多次写入目标基地址之后,可能仍旧无法从目标虚拟页中查找得到符合约束条件的目标地址,此时可以调整目标基地址,根据不同的目标基地址重新确定目标地址范围和目标虚拟页,然后从新的目标虚拟页中查找确定目标地址。如图5所示,图5中符号“y2”表示在基于某个目标基地址确定目标虚拟页之后,在查找符合约束条件的目标地址时,所有目标虚拟页中均未包括符合约束的目标地址,此时可以先判断目标基地址的设置次数是否达到最大次数,若未达到最大次数,则设置一个新的目标基地址,然后基于一个新的目标基地址重新确定目标地址范围,并重新确定目标虚拟页,以及确定目标虚拟页中是否包括目标地址。相反的,当目标基地址的设置次数达到最大次数时,确定达到结束条件,结束目标基地址的设置。其中,在设置目标基地址的过程中,每次可以选择不同的虚拟页作为预定虚拟页,也可以每次选择预定虚拟页中的不同地址作为目标基地址。
113.在本发明实施例中,当基于当前所有寄存器中的原始地址无法确定符合约束条件的目标地址时,可以增加写指令,向目标寄存器中写入目标基地址,根据目标基地址重新确定新的目标虚拟页,从新的目标虚拟页中查找符合约束条件的目标地址,由于目标基地址位于预先生成的虚拟页中,若从根据目标基地址查找确定符合约束条件的目标地址,则可以将目标地址限定在预先生成的一个虚拟页中。
114.可选地,该方法还可以包括:
115.在目标虚拟页中未包括符合约束条件的目标地址的情况下,从目标地址范围内随机选择一个符合约束条件的地址作为目标地址,并设置跳转指令的操作数与目标地址匹配。
116.在一种实施方式中,当未从目标虚拟页中确定符合约束条件的目标地址时,可以从目标地址范围内随机选择一个符合约束条件的地址作为目标地址,设置跳转指令的操作数与目标地址匹配。结合图5所示,当目标基地址的设置次数达到最大次数时,可以确定无法从目标虚拟页中确定符合约束条件的目标地址。此时,可以执行随机选择目标地址的步骤,在随机选择目标地址的步骤中,首先确定目标地址范围,跳转指令为寄存器寻址时,可以重新选择一个寄存器作为目标寄存器,根据目标寄存器中的原始地址和立即数的数值范围重新确定目标地址范围。然后从目标地址范围内查找确定一个符合约束条件的目标地址。在随机选择目标地址的步骤中,跳转指令为立即数寻址时,可以根据立即数的数值范围和跳转指令的地址确定目标地址范围。
117.可选地,可以通过上述举例中的方式一设置一个或多个临时立即数,此时临时立即数与基地址之和对应的备选地址位于目标地址范围内。当备选地址符合约束条件时,将备选地址作为目标地址,并将临时立即数作为操作数中的立即数。当通过方式二查找确定目标地址时,可以随机的从目标地址范围内选择一子地址范围进行遍历,子地址范围小于目标地址范围,然后对子地址范围内的虚拟地址进行遍历,确定一个符合约束条件的目标地址。
118.其中,当跳转指令为寄存器寻址时,在执行随机选择目标地址的步骤时,可以从多个寄存器中选择一个寄存器作为目标寄存器,基于目标寄存器中存储的原始地址确定目标地址范围,然后从目标地址范围内随机选择一个符合约束条件的地址作为目标地址。或者,可以直接将写入目标基地址的寄存器作为目标寄存器,然后基于目标基地址确定目标地址
范围,然后从目标地址范围内选择一个符合约束条件的目标地址。
119.在本发明实施例中,在从目标虚拟页中无法查找到符合约束条件的目标地址时,将查找范围扩大到整个目标地址范围,从目标地址范围内查找符合约束条件的目标地址,可以查找确定目标地址,以顺利生成跳转指令。
120.步骤104、基于操作码和操作数构建跳转指令,以基于构建得到的跳转指令生成测试程序。
121.本实施例中,在得到待生成指令的操作码和操作数之后,可以基于操作码和操作数,构建跳转指令。结合上述举例,当跳转指令为立即数寻址时,通过上述方式可以得到跳转指令的操作码和立即数,此时可以将操作码和立即数组合,得到跳转指令。当跳转指令为寄存器寻址时,在确定目标地址范围的过程中,可以确定跳转指令所操作的目标寄存器,并且得到对应的立即数,可以组合操作码、目标寄存器和立即数,得到跳转指令。在生成跳转指令之后,可以将跳转指令作为测试程序中的一条指令,生成测试程序。在生成跳转指令之后,可以继续从操作码集合中获取其它指令,生成测试程序中的其它指令。
122.可选地,在生成跳转指令之后,可以模拟执行跳转指令,得到跳转指令的目标结果。跳转指令的目标结果即模拟执行得到的目标地址,可以将目标结果存储到测试程序的结果文件中。在生成测试程序之后,在通过代码仿真器模拟处理器运行测试程序的过程中,在执行跳转指令之后,可以得到跳转指令的实际结果,将实际结果与目标结果进行比较,当目标结果与实际结果一致时,说明处理器的跳转功能正常。
123.综上所述,在本发明实施例中,获取待生成指令的操作码,在根据操作码确定待生成指令为跳转指令的情况下,确定跳转指令所能跳转到的目标地址范围,并从预先划分得到的虚拟页中确定位于目标地址范围内的至少一个目标虚拟页,在目标虚拟页中包括符合约束条件的目标地址的情况下,设置跳转指令的操作数与目标地址匹配,以将目标地址作为跳转指令跳转时的目标地址,基于操作码和操作数构建跳转指令,以基于跳转指令生成测试程序。在生成跳转指令的过程中,首先确定位于目标地址范围内的目标虚拟页,然后从目标虚拟页中查找确定可以作为跳转指令的目标地址,设置跳转指令的操作数与目标地址匹配,可以将跳转指令的目标地址限定在当前生成的虚拟页中。在测试程序的运行过程中,当执行到跳转指令时,跳转指令的目标地址在当前虚拟页之前的某个虚拟页中,该虚拟页的映射关系大概率上已经装入tlb,因此大概率上可以从tlb中获取到目标地址所在虚拟页的映射关系,可以降低tlb地址查找失败的概率,避免频繁实施tlb的重装入的操作,从而可以提高处理器的验证效率。
124.可选地,步骤102可以包括:
125.在跳转指令的跳转方向指向当前虚拟页的情况下,将当前虚拟页作为目标虚拟页;当前虚拟页为跳转指令所处的虚拟页;
126.在跳转指令的跳转方向指向相邻虚拟页的情况下,将操作数对应的地址范围作为目标地址范围,并选择相邻虚拟页作为目标虚拟页;相邻虚拟页为位于目标地址范围内的所有预先生成的虚拟页中、除当前虚拟页之外的其它虚拟页。
127.在一种实施方式中,可以预先确定跳转指令的跳转方向,跳转方向包括当前页跳转和相邻页跳转。在生成跳转指令的过程中,电子设备首先可以确定跳转指令的跳转方向,跳转方向为当前页跳转时,跳转方向指向当前虚拟页,跳转方向为相邻页跳转时,跳转方向
指向相邻虚拟页。当跳转方向指向当前虚拟页时,可以直接将当前虚拟页的地址范围作为目标地址范围,并将当前虚拟页作为目标虚拟页。当跳转方向指向相邻虚拟页时,首先确定操作数对应的地址范围,将操作数对应的地址范围作为目标地址范围,然后从预先生成的所有页中确定位于目标地址范围内的一个或多个虚拟页,若一个或多个虚拟页中包括当前虚拟页,则将除当前虚拟页之外的其它虚拟页作为相邻虚拟页,将相邻虚拟页作为目标虚拟页。其中,操作数对应的地址范围即根据跳转指令的基地址和操作数中包括的立即数的数值范围确定的地址范围。结合上述举例可知,当跳转方向指向相邻虚拟页时,在确定目标地址范围,以及确定位于目标地址范围之内的目标虚拟页之后,若所有目标虚拟页中包括当前虚拟页,则去除当前虚拟页,剩余的目标虚拟页即相邻虚拟页。确定目标地址范围和目标虚拟页的步骤可参考上述举例,本实施例在此不做赘述。
128.其中,跳转方向可以根据预设的选择机制确定。例如,用户可以预先设置跳转方向为当前页跳转的第一概率为60%,设置跳转方向为相邻页跳转的第二概率为30%。在确定待生成指令为跳转指令时,电子设备可以基于第一概率和第二概率,通过预设的选择算法,选择跳转方向为当前页跳转或相邻页跳转。具体确定跳转方向的选择方法可以根据需求设置,本实施例对此不做限制。
129.需要说明的是,在生成跳转指令的过程中,可以不设置跳转方向,在确定目标地址范围之后,直接从所有预先生成的虚拟页中确定位于目标地址范围内的目标虚拟页,从所有目标虚拟页查找确定符合约束条件的目标地址。也可以设置跳转方向,将目标虚拟页划分为相邻虚拟页和当前虚拟页,从相邻虚拟页中查找确定符合约束条件的目标地址,或者从当前虚拟页中查找确定符合约束条件的目标地址。
130.结合上述举例,在跳转方向指向当前虚拟页时,只有当前虚拟页作为作为目标虚拟页,可以通过上述举例中的方式一或方式二查找确定当前虚拟页中是否包括符合约束条件的目标地址。在跳转方向指向相邻虚拟页时,在确定所有目标虚拟页之后,若目标虚拟页中包括当前虚拟页,则从所有目标虚拟页中去除当前虚拟页,将剩余的一个或多个相邻虚拟页作为目标虚拟页,可以通过上述举例中的方式一或方式二,对相邻虚拟页进行查找,确定相邻虚拟页中是否包括符合约束条件的目标地址。
131.在本发明实施例中,当设置跳转方向时,在生成跳转指令的过程中,跳转指令的目标地址可以按一定的概率限定在当前虚拟页或者相邻虚拟页中,可以满足验证过程中的随机性需求,尽可能的使验证过程覆盖处理器的全部功能。可以设置第一概率大于第二概率,尽可能的将跳转方向指向当前虚拟页,当跳转方向指向相邻虚拟页时,可以从当前虚拟页中确定目标地址,将跳转指令的目标地址限定在当前虚拟页中,从而可以尽可能的避免出现tlb地址查找失败的情况下。
132.可选地,当目标虚拟页为当前虚拟页时,步骤103可以包括:
133.根据当前虚拟页的地址范围和基地址设置得到一个或多个不同的临时立即数;基地址在偏移临时立即数后,对应一个位于当前虚拟页中的备选地址;跳转指令为立即数寻址时,基地址为跳转指令的地址;跳转指令为寄存器寻址时,基地址为目标寄存器中存储的原始地址;目标寄存器为预先从多个寄存器中选择的一个待选寄存器,多个寄存器为待验证的处理器中包括的寄存器;待选寄存器为未被选择过的寄存器;在至少一个备选地址中包括符合约束条件的目标地址的情况下,将目标地址对应的临时立即数作为操作数中的立
即数,并在跳转指令为寄存器寻址时,将目标寄存器作为跳转指令所操作的寄存器。
134.可选地,当目标虚拟页为当前虚拟页时,步骤103可以包括:
135.在从当前虚拟页中遍历到符合约束条件的目标地址的情况下,设置跳转指令的操作数与目标地址匹配;
136.在从当前虚拟页中未遍历到符合约束条件的目标地址的情况下,确定当前虚拟页中未包括目标地址。
137.可选地,该方法还可以包括:
138.在跳转方向指向当前虚拟页的情况下,若当前虚拟页中未包括目标地址,则将跳转方向指向相邻虚拟页,并执行确定目标地址范围和相邻虚拟页的步骤,以及执行在目标虚拟页中包括符合约束条件的目标地址的情况下,设置跳转指令的操作数与目标地址匹配的步骤。
139.本实施例中,在跳转指令的生成过程中,若设置有跳转方向,并且跳转方向指向当前虚拟页时,可以将当前虚拟页作为为目标虚拟页,采用方式一或方式二查找确定当前虚拟中是否包括目标地址。如图6所示,图6示出了本发明实施例中的又一种目标地址的查找流程示意图,当跳转指令为立即数寻址时,可以对当前虚拟页进行查找,在当前虚拟页中包括符合约束条件的目标地址时,将跳转指令的地址与目标地址之间的地址偏移量作为操作数中的立即数。在当前虚拟页中未包括符合约束条件的目标地址时,结束对当前虚拟页的查找,将跳转方向调整为相邻页跳转。
140.当跳转指令为寄存器寻址时,可以顺序从多个寄存器中选择一个待选寄存器作为目标寄存器,在选择目标寄存器之后,可以基于当前虚拟页的地址范围和目标寄存器中的原始地址,设置一个或多个临时立即数。若临时立即数与原始地址之和对应的备选地址在当前虚拟页之内,并且符合约束条件,可以将备选地址作为跳转指令跳转时的目标地址,并设置跳转指令中的立即数与目标地址匹配。反之,当所有备选地址不在当前虚拟页之内和/或不符合约束条件的情况下,可以选择另一个寄存器作为目标寄存器,然后根据新的目标寄存器中的原始地址,重新查找当前虚拟页中是否包括符合约束条件的目标地址。图6中符号“n1”表示在查找当前虚拟页的过程中,在基于某个寄存器中的原始地址查找当前虚拟页时,当前虚拟页中未包括符合约束条件的目标地址。此时,判断处理器包括的多个寄存器中是否还包括未被选择作为目标寄存器的其他待选寄存器,当包括未被选择的待选寄存器时,选择一个未被选择的待选寄存器作为目标寄存器,并通过新的目标寄存器中的原始地址重新查找确定当前虚拟页中是否包括目标地址。当所有寄存器均被选择之后,若确定当前虚拟页中未包括目标地址,则在跳转指令之前增加写指令,通过写指令向目标寄存器中写入新的基地址,即目标基地址。目标基地址为当前虚拟页中的一个地址,可以为当前虚拟页中起始地址,或者其他地址。然后基于目标基地址,对当前虚拟页进行查找。图6中符合“n2”表示在增加写指令之后,基于某个目标基地址确定当前虚拟页中未包括目标地址,此时可以判断目标基地址的设置次数,当设置次数小于最大次数时,重新设置一个新的目标基地址。当目标地址达到最大次数时,确定当前虚拟页中未包括符合约束条件的目标地址,调整跳转方向为相邻页跳转。
141.在一种实施方式中,当跳转方向指向当前虚拟页时,若未从当前虚拟页中查找确定符合约束条件的目标地址,可以将调整跳转方向,将跳转方向调整为相邻页跳转,进一步
地,可以确定目标地址范围和相邻虚拟页,以及重新执行在相邻虚拟页中包括符合约束条件的目标地址的情况下,设置跳转指令的操作数与目标地址匹配的步骤。如图7所示,图7示出了本发明实施例中的一种跳转方向的选择示意图,在确定待生成指令为跳转指令之后,若第一次确定跳转方向为当前虚拟页,在当前虚拟页中包括符合约束条件的目标地址的情况下,基于符合约束条件的目标地址生成跳转指令。反之,在当前虚拟页中未包括符合约束条件的目标地址的情况下,可以调整跳转方向为相邻页跳转,然后确定目标地址范围和相邻虚拟页,查找确定相邻虚拟页中是否包括符合约束条件的目标地址,并在查找确定相邻虚拟页中包括符合约束条件的目标地址时,基于目标地址生成跳转指令。
142.可选地,跳转方向还可以包括随机跳转。结合上述举例,在确定跳转方向的过程中,可以设置当前页跳转的概率为第一概率,相邻页跳转的概率为第二概率,随机跳转的概率为第三概率。在确定待生成指令为跳转指令时,可以基于第一概率、第二概率和第三概率,通过预设的选择算法确定跳转方向为当前页跳转、相邻页跳转和随机跳转中的一个。如图7所示,在跳转方向为当前页跳转时,在当前页中未包括符合约束条件的目标地址的情况下,可以调整跳转方向为相邻页跳转。在跳转方向为相邻页跳转时,在所有相邻虚拟页中未包括符合约束条件的目标地址的情况下,可以调整跳转方向为随机跳转。结合图5所示,将相邻跳转调整为随机跳转时,即目标基地址的设置次数达到最大次数,可以确定无法从目标虚拟页中查找确定目标地址,可以将跳转方向调整为随机跳转,在将跳转方向调整为随机跳转之后,执行随机选择目标地址的步骤,从目标地址范围内选择一个符合约束条件的地址作为目标地址。
143.可选地,该方法还可以包括:
144.在跳转方向指向相邻虚拟页的情况下,若目标地址范围内未包括相邻虚拟页,则从目标地址范围内随机选择一个符合约束条件的地址作为目标地址,并设置跳转指令的操作数与目标地址匹配。
145.在一种实施方式中,在跳转方向指向相邻虚拟页的情况下,若跳转指令为立即数寻址,则在确定目标地址范围内未包括相邻虚拟页时,可以直接将跳转方向调整为随机跳转,然后从目标地址范围内随机选择一个符合约束条件的地址作为目标地址。如图8所示,图8示出了本发明实施例中的又一种目标地址的查找流程示意图,在跳转方向指向相邻虚拟页时,若跳转指令为立即数寻址,根据跳转指令的地址和立即数的数值范围可以确定唯一的目标地址范围,并且该目的地址范围内可能不存在相邻虚拟页。当目的地址范围内可能不存在相邻虚拟页时,可以直接将跳转方向调整为随机跳转,执行如图5所示的随机选择目标地址的步骤。
146.参照图9,示出了本发明实施例中的一种测试程序生成装置的结构框图,装置900设置于电子设备,可以包括如下模块:
147.获取模块901,包括获取待生成指令的操作码;
148.确定模块902,用于在根据操作码确定待生成指令为跳转指令的情况下,确定跳转指令所能跳转到的目标地址范围,并从预先划分得到的虚拟页中确定位于目标地址范围内的至少一个目标虚拟页;
149.设置模块903,用于在目标虚拟页中包括符合约束条件的目标地址的情况下,设置跳转指令的操作数与目标地址匹配,以将目标地址作为跳转指令跳转时的目标地址;
150.构建模块904,用于基于操作码和操作数构建跳转指令,以基于构建得到的跳转指令生成测试程序。
151.可选地,确定模块902,用于在跳转指令的跳转方向指向当前虚拟页的情况下,将当前虚拟页的地址范围作为目标地址范围,并将当前虚拟页作为目标虚拟页;当前虚拟页为跳转指令所处的虚拟页;在跳转方向指向相邻虚拟页的情况下,将操作数对应的地址范围作为目标地址范围,并选择相邻虚拟页作为目标虚拟页;相邻虚拟页为位于目标地址范围内的虚拟页中、除当前虚拟页之外的其它虚拟页。
152.可选地,确定模块902,用于在跳转指令为立即数寻址的情况下,确定操作数包括第一立即数,基于第一立即数的数值范围和跳转指令的地址,确定目标地址范围;在跳转指令为寄存器寻址的情况下,确定操作数包括第二立即数,并从多个寄存器中选择一个待选寄存器作为跳转指令所操作的目标寄存器;基于目标寄存器中存储的原始地址和第二立即数的数值范围,确定目标地址范围;多个寄存器为待验证的处理器中包括的寄存器,待选寄存器为未被选择过的寄存器。
153.可选地,设置模块903,用于从至少一个目标虚拟页中选择一个待选虚拟页;待选虚拟页为未被选择过的目标虚拟页;根据基地址和待选虚拟页的地址范围设置得到一个或多个不同的临时立即数;基地址在偏移临时立即数后,对应一个位于待选虚拟页中的备选地址;跳转指令为立即数寻址时,基地址为跳转指令的地址;跳转指令为寄存器寻址时,基地址为原始地址;在一个或多个备选地址中包括符合约束条件的目标地址的情况下,将目标地址对应的临时立即数作为操作数中的立即数;在所有备选地址均不符合约束条件的情况下,重复选择一个待选虚拟页的步骤、以及设置临时立即数的步骤,直至得到操作数中的立即数,或者直至至少一个目标虚拟页中无待选虚拟页。
154.可选地,设置模块903,用于从至少一个目标虚拟页中选择一个待选虚拟页;待选虚拟页为未被选择过的目标虚拟页;在从待选虚拟页中遍历到符合约束条件的目标地址的情况下,将基地址与目标地址之间的偏移量作为操作数中的立即数;跳转指令为立即数寻址时,基地址为跳转指令的地址;跳转指令为寄存器寻址时,基地址为原始地址;在未从待选虚拟页中遍历到符合约束条件的目标地址的情况下,重复选择一个待选虚拟页的步骤,以及对待选虚拟页进行遍历的步骤,直至得到操作数中的立即数,或者直至至少一个目标虚拟页中无待选虚拟页。
155.可选地,设置模块903,还用于在至少一个目标虚拟页中无待选虚拟页、且跳转指令为寄存器寻址的情况下,若多个寄存器中包括待选寄存器,则从多个寄存器中选择另一个待选寄存器作为目标寄存器,并重复执行确定目标地址范围和目标虚拟页的步骤,以及在目标虚拟页中包括符合约束条件的目标地址的情况下设置操作数与目标地址匹配的步骤。
156.可选地,设置模块903,还用于在多个寄存器中无待选寄存器的情况下,在跳转指令之前增加写指令;写指令用于向目标寄存器写入目标基地址;目标基地址为其中一个虚拟页中的一个地址;基于目标基地址,执行确定目标地址范围和目标虚拟页的步骤,以及在目标虚拟页中包括符合约束条件的目标地址的情况下设置操作数与目标地址匹配的步骤;在目标虚拟页中未包括符合约束条件的目标地址的情况下,重新设置不同的目标基地址,并重复执行基于目标基地址,确定目标地址范围和目标虚拟页的步骤,以及在目标虚拟页
中包括符合约束条件的目标地址的情况下设置操作数与目标地址匹配的步骤,直至得到操作数中的立即数,或者直至达到预设的结束条件。
157.可选地,设置模块903,还用于在跳转方向指向当前虚拟页的情况下,若当前虚拟页中未包括目标地址,则将跳转方向指向相邻虚拟页,并执行确定目标地址范围和相邻虚拟页的步骤,以及执行在目标虚拟页中包括符合约束条件的目标地址的情况下,设置跳转指令的操作数与目标地址匹配的步骤。
158.可选地,设置模块903,还用于在目标虚拟页中未包括符合约束条件的目标地址的情况下,从目标地址范围内随机选择一个符合约束条件的地址作为目标地址,并设置跳转指令的操作数与目标地址匹配。
159.图10示出了本发明实施例中的一种电子设备的结构框图。例如,电子设备1000可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
160.参照图10,电子设备1000可以包括以下一个或多个组件:处理组件1002,存储器1004,电源组件1006,多媒体组件1008,音频组件1010,输入/输出(i/o)的接口1012,传感器组件1014,以及通信组件1016。
161.处理组件1002通常控制电子设备1000的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1002可以包括一个或多个处理器1020来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1002可以包括一个或多个模块,便于处理组件1002和其他组件之间的交互。例如,处理组件1002可以包括多媒体模块,以方便多媒体组件1008和处理组件1002之间的交互。
162.存储器1004被配置为存储各种类型的数据以支持在设备1000的操作。这些数据的示例包括用于在电子设备1000上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1004可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
163.电源组件1006为电子设备1000的各种组件提供电力。电源组件1006可以包括电源管理系统,一个或多个电源,及其他与为电子设备1000生成、管理和分配电力相关联的组件。
164.多媒体组件1008包括在所述电子设备1000和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1008包括一个前置摄像头和/或后置摄像头。当电子设备1000处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
165.音频组件1010被配置为输出和/或输入音频信号。例如,音频组件1010包括一个麦
克风(mic),当电子设备1000处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1004或经由通信组件1016发送。在一些实施例中,音频组件1010还包括一个扬声器,用于输出音频信号。
166.i/o接口1012为处理组件1002和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
167.传感器组件1014包括一个或多个传感器,用于为电子设备1000提供各个方面的状态评估。例如,传感器组件1014可以检测到设备1000的打开/关闭状态,组件的相对定位,例如所述组件为电子设备1000的显示器和小键盘,传感器组件1014还可以检测电子设备1000或电子设备1000一个组件的位置改变,用户与电子设备1000接触的存在或不存在,电子设备1000方位或加速/减速和电子设备1000的温度变化。传感器组件1014可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1014还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1014还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
168.通信组件1016被配置为便于电子设备1000和其他设备之间有线或无线方式的通信。电子设备1000可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信部件1014经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件1014还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
169.在示例性实施例中,电子设备1000可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
170.在示例性实施例中,还提供了一种可读存储介质,例如包括指令的存储器1004,上述指令可由电子设备1000的处理器1020执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
171.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
172.本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
173.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执
行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
174.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以预测方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
175.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
176.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
177.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
178.以上对本发明所提供的一种测试程序生成方法和装置、一种电子设备以及一种储存介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1