生成随机指令验证程序的方法、装置及电子设备制造方法及图纸

技术编号:35682708 阅读:19 留言:0更新日期:2022-11-23 14:26
本发明专利技术实施例提供一种生成随机指令验证程序方法、装置及电子设备,所述随机指令验证程序用于对微处理器进行随机验证,所述随机指令验证程序包含循环体,该方法包括:在确定满足循环体开始的约束条件时,确定循环体的开始位置,并记录所述循环体的开始位置对应的第一地址;根据所述循环体的开始位置对应的第一地址,生成所述循环体的内部指令;在确定满足所述循环体结束的约束条件时,确定所述循环体的结束位置,并记录所述循环体的结束位置对应的第二地址;根据所述第一地址与所述第二地址之间的距离,生成所述循环体的结束指令组。本发明专利技术实施例提高了随机指令验证程序的生成效率,有利于提升微处理器的验证效率。有利于提升微处理器的验证效率。有利于提升微处理器的验证效率。

【技术实现步骤摘要】
生成随机指令验证程序的方法、装置及电子设备


[0001]本专利技术涉及计算机
,尤其涉及一种生成随机指令验证程序的方法、装置及电子设备。

技术介绍

[0002]随着超大规模集成电路工艺的发展,微处理器的结构越来越复杂,在单独一个微处理器芯片上集成的功能越来越多,微处理器的指令集被不断扩充,指令的数量、种类大幅增加,导致微处理器的功能验证也变得非常复杂,并且验证周期很长,不可避免的会影响处理器的开发时间。
[0003]因此,如何生成更加高效的测试程序方法,提高微处理器的验证效率成为了目前急需解决的问题。

技术实现思路

[0004]本专利技术实施例提供一种生成随机指令验证程序方法、装置及电子设备,可以提高微处理器的验证效率和验证准确度。
[0005]为了解决上述问题,本专利技术实施例公开了一种生成随机指令验证程序的方法,所述随机指令验证程序用于对微处理器进行随机验证,所述随机指令验证程序包含循环体,所述方法包括:
[0006]在确定满足循环体开始的约束条件时,确定循环体的开始位置,并记录所述循环体的开始位置对应的第一地址;
[0007]根据所述循环体的开始位置对应的第一地址,生成所述循环体的内部指令;
[0008]在确定满足所述循环体结束的约束条件时,确定所述循环体的结束位置,并记录所述循环体的结束位置对应的第二地址;
[0009]根据所述第一地址与所述第二地址之间的距离,生成所述循环体的结束指令组,其中,所述结束指令组属于所述循环体的内部指令。/>[0010]另一方面,本专利技术实施例公开了一种生成随机指令验证程序的装置,所述随机指令验证程序用于对微处理器进行随机验证,所述随机指令验证程序包含循环体,所述装置包括:
[0011]开始位置确定模块,用于在确定满足循环体开始的约束条件时,确定循环体的开始位置,并记录所述循环体的开始位置对应的第一地址;
[0012]第一指令生成模块,用于根据所述循环体的开始位置对应的第一地址,生成所述循环体的内部指令;
[0013]结束位置确定模块,用于在确定满足所述循环体结束的约束条件时,确定所述循环体的结束位置,并记录所述循环体的结束位置对应的第二地址;
[0014]第二指令生成模块,用于根据所述第一地址与所述第二地址之间的距离,生成所述循环体的结束指令组,其中,所述结束指令组属于所述循环体的内部指令。
[0015]再一方面,本专利技术实施例还公开了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行前述的生成随机指令验证程序的方法。
[0016]本专利技术实施例还公开了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述的生成随机指令验证程序的方法。
[0017]本专利技术实施例包括以下优点:
[0018]本专利技术实施例提供的生成随机指令验证程序的方法、装置及电子设备,在确定满足循环体开始的约束条件时,确定循环体的开始位置,并记录所述循环体的开始位置对应的第一地址;然后,根据所述循环体的开始位置对应的第一地址,生成所述循环体的内部指令;在确定满足所述循环体结束的约束条件时,确定所述循环体的结束位置,并记录所述循环体的结束位置对应的第二地址;根据所述第一地址与所述第二地址之间的距离,生成所述循环体的结束指令组。本专利技术实施例能够根据循环体开始的约束条件和结束的约束条件,自动确定循环体的开始位置和结束位置,并能够根据循环体的开始位置对应的第一地址,与循环体的结束位置对应的第二地址之间的距离选择相应的结束指令组,以保证循环体能够被正常执行。本专利技术实施例提高了随机指令验证程序的生成效率,有利于提升微处理器的验证效率,提升了微处理器功能验证的充分性,加快了功能验证覆盖率的收敛速度。
附图说明
[0019]为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020]图1是本专利技术的一种生成随机指令验证程序的方法实施例的步骤流程图;
[0021]图2是本专利技术一个示例提供的一种循环体的生成过程示意图;
[0022]图3是本专利技术另一个示例提供的一种嵌套循环体的生成过程示意图;
[0023]图4是本专利技术的一种生成随机指令验证程序的装置实施例的结构框图;
[0024]图5是本专利技术实施例提供的一种用于生成随机指令验证程序的电子设备的结构示意图。
具体实施方式
[0025]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0026]方法实施例
[0027]参照图1,示出了本专利技术的一种生成随机指令验证程序的方法实施例的步骤流程图,所述随机指令验证程序用于对微处理器进行随机验证,所述随机指令验证程序包含循环体,所述实施例的方法具体可以包括如下步骤:
[0028]步骤101、在确定满足循环体开始的约束条件时,确定循环体的开始位置,并记录所述循环体的开始位置对应的第一地址。
[0029]步骤102、根据所述循环体的开始位置对应的第一地址,生成所述循环体的内部指令。
[0030]步骤103、在确定满足所述循环体结束的约束条件时,确定所述循环体的结束位置,并记录所述循环体的结束位置对应的第二地址。
[0031]步骤104、根据所述第一地址与所述第二地址之间的距离,生成所述循环体的结束指令组。
[0032]其中,所述结束指令组属于所述循环体的内部指令。
[0033]本专利技术实施例提供的生成随机指令验证程序的方法,主要用于生成随机指令验证程序中的循环体,以模拟实际应用中微处理器对同一段程序的循环执行行为。需要说明的是,一个循环体包含一组指令,在满足循环条件的情况下,循环体中的指令组被重复执行,直至满足循环结束条件时,结束循环体中指令组的执行,跳出该循环体。
[0034]为了实现随机指令验证程序的循环执行特性,本专利技术实施在随机指令验证程序的生成过程中采用了“start

end”策略,即循环体的开始位置与结束位置皆可控。具体的,可以预先确定循环体开始的约束条件和结束的约束条件,从而在确定满足循环体开始的约束条件时,确定循环体的开始位置,并记录循环体的开始位置对应的第一地址,以第一地址为循环体的首地址,开始生成循环体的内部指令。然后,在确定满足循环体结束的约束条件时,确定该循环体的结束位置,记录该循环体的结束位置对应的第二地址本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种生成随机指令验证程序的方法,其特征在于,所述随机指令验证程序用于对微处理器进行随机验证,所述随机指令验证程序包含循环体,所述方法包括:在确定满足循环体开始的约束条件时,确定循环体的开始位置,并记录所述循环体的开始位置对应的第一地址;根据所述循环体的开始位置对应的第一地址,生成所述循环体的内部指令;在确定满足所述循环体结束的约束条件时,确定所述循环体的结束位置,并记录所述循环体的结束位置对应的第二地址;根据所述第一地址与所述第二地址之间的距离,生成所述循环体的结束指令组,其中,所述结束指令组属于所述循环体的内部指令。2.根据权利要求1所述的方法,其特征在于,所述循环体包括单层循环体,所述根据所述第一地址与所述第二地址之间的距离,生成所述循环体的结束指令组,包括:若所述第一地址和所述第二地址之间的距离小于或等于预设阈值,则生成非零取指指令,其中,所述非零取指指令包含第一操作数,所述第一操作数的初始值大于0,每执行一次所述非零取指指令,所述第一操作数减1;所述非零取指指令满足取指条件时的取指地址为所述第一地址,所述非零取指指令不满足取指条件时的取指地址为所述第二地址;所述根据所述第一地址与所述第二地址之间的距离,生成所述循环体的结束指令组之后,所述方法还包括:执行所述非零取指指令,以根据所述第一操作数确定所述非零取指指令的目标取指地址;若所述第一操作数不等于0,则确定所述非零取指指令的目标取指地址为所述第一地址,获取所述第一地址中存储的指令并执行;若所述第一操作数等于0,则确定所述非零取指指令的目标取指地址为所述第二地址,获取所述第二地址中存储的指令并执行。3.根据权利要求1所述的方法,其特征在于,所述根据所述第一地址与所述第二地址之间的距离,生成所述循环体的结束指令组,还包括:若所述第一地址和所述第二地址之间的距离大于预设阈值,则生成等零取指指令和直接取指指令,其中,所述等零取指指令包含第二操作数,所述第二操作数的初始值大于0,每执行一次所述等零取指指令,所述第二操作数减1;所述直接取指指令包含第三操作数,所述第三操作数根据所述第一地址确定;所述等零取指指令的存储地址与所述直接取指指令的存储地址连续相邻,且所述等零取指指令的存储地址在所述直接取指指令的存储地址之前;所述等零取指指令满足取指条件时的取指地址为所述第二地址,所述等零取指指令不满足取指条件时的取指地址为所述直接取指指令的存储地址;所述根据所述第一地址与所述第二地址之间的距离,生成所述循环体的结束指令组之后,所述方法还包括:执行所述等零取指指令,以根据所述第二操作数确定所述等零取指指令的目标取指地址;若所述第二操作数不等于0,则确定所述等零取指指令的目标取指地址为所述直接取指指令的存储地址,获取所述直接取指指令并执行;若所述第二操作数等于0,则确定所述等零取指指令的目标取指地址为所述第二地址,
获取所述第二地址中存储的指令并执行。4.根据权利要求1所述的方法,其特征在于,所述循环体包括嵌套循环体,所述嵌套循环体包括第一循环体和第二循环体,所述第一循环体包含所述第二循环体,所述第二循环体为单层循环体;所述第一循环体的开始位置对应第一地址,所述第一循环体的结束位置对应第二地址,所述根据所述循环体的开始位置对应的第一地址,生成所述循环体的内部指令,包括:根据所述第一地址生成所述第一循环体的内部指令;在确定满足第二循环体开始的约束条件时,确定所述第二循环体的开始位置,并记录所述第二循环体的开始位置对应的第三地址;根据所述第三地址生成所述第二循环体的内部指令;在确定满足所述第二循环体结束的约束条件时,确定所述第二循环体的结束位置,并记录所述第二循环体的结束位置对应的第四地址;根据所述第三地址和所述第四地址之间的距离,生成所述第二循环体的结束指令组;其中,所述第二循环体的结束指令组属于所述第二循环体的内部指令。5.根据权利要求1所述的方法,其特征在于,所述循环体的内部指令包含条件取指指令,所述生成所述循环体的内部指令,包括:确定所述条件取指指令的预测取指地址,其中,所述预测取指地址包括所述条件取指指令满足取指条件时的取指地址和不满足取指条件时的取指地址;根据条件取指指令的取指条件确定所述条件取指指令的目标取指地址;根据所述预测取指地址和所述目标取指地址确定所述条件取指指令对应的预留地址空间段,所述预留地址空间段为所述条件取指指令的预测取指地址中除所述目标取指地址之外的取指地址所属的地址空间段;将所述预留地址空间段的约束信息设定为不允许被所述循环体中除所述条件取指指令之外的其他指令占用。6.根据权利要求5所述的方法,其特征在于,生成所述循环体后,所述方法还包括:执行所述循环体的各条内部指令;若当前执行的指令为条件取指指令,且所述条件取指指令的目标取指地址属于所述条件取指指令的预留地址空间段,则结束所述循环体的执行过程,继续顺序生成所述随机验证程序中的非循环体指令。7.根据权利要求6所述的方法,其特征在于,所述条件取指指令的预留地址空间段中的末尾地址中存储的指令为直接取指指令,所述直接取指指令的取指地址中未存储指令,所述结束所述循环体的执行过程,继续顺序生成所述随机验证程序中的非循环体指令,包括:执行所述直接取指指令,以进入普通随机指令生成模式,继续顺序生成所述随机验证程序中的非循环体指令。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:根据所述循环体的各条内部指令和所述非循环体指令,得到随机指令验证程序。9.根据权利要求5

7中任一项所述的方法,其特征在于,所述条件取指指令为单层循环体中的指令,则所述方法还包括:若所述条件取指指令的目标取指地址属于所述条件取指指令的预留地址空间段,则获
取所述单层循环体中所述条件取指指令的下一条指令并执行。10.根据权利要求9所述的方法,其特征在于,所述条件取指指令的预留地址空间段中的末尾地址中存储的指令为直接取指指令,所述直接取指指令包含第四操作数,所述第四操作数根据所述条件取指指令的预测取指地址中除目标取指地址之外的取指地址确定;所述获取所述单层循环体中所述条件取指指令的下一条指令并执行,包括:执行所述直接取指指令,以根据所述第四操作数获取所述条件取指指令的预测取指地址中除目标取指地址之外的取指地址中存储的指令并执行。11.根据权利要求5

7中任一项所述的方法,其特征在于,所述条件取指指令为嵌套循环体中的指令,则所述方法还包括:若所述条件取指指令的目标取指地址属于所述条件取指指令的预留地址空间段,则判断所述条件取指指令所属的循环体;若所述条件取指指令为第一循环体中的指令,且不属于所述第一循环体中的任一第二循环体,则获取所述第一循环体中所述条件取指指令的下一条指令并执行。12.根据权利要求11所述的方法,其特征在于,所述方法还包括:若所述条件取指指令为第二循环体中的指令,则获取所述第二循环体中所述条件取指指令的下一条指令并执行;或者,结束所述第二循环体的执行过程,并继续顺序执行所述第一循环体中的指令。13.根据权利要求11所述的方法,其特征在于,所述方法还包括:若所述条件取指指令为第二循环体中的指令,则从所述第一循环体中确定一个目标第二循环体,其中,所述目标第二循环体为所述第一循环体内除所述条件取指指令所属的第二循环体之外的其他第二循环体;在所述目标第二循环体中随机确定一个目标位置,并记录所述目标位置对应的目标地址;获取所述目标地址中存储的指令并执行。14.根据权利要求13所述的方法,其特征在于,所述条件取指指令的预留地址空间段中的末尾地址中存储的指令为直接取指指令,所述直接取指指令包含第五操作数,所述第五操作数根据所述目标地址确定,所述获取所述目标地址中存储的指令并执行,包括:执行所述直接取指指令,以根据所述第五操作数获取所述目标地址中存储的指令并执行。15.根据权利要求13所述的方法,其特征在于,所述目标第二循环体对应的第一位置区间在所述条件取指指令所在的第二循环体对应的第二位置区间之后,所述第一位置区间和所述第二位置区间均属于所述第一循环体的开始位置与结束位置之间的位置区间。16.根据权利要求1

5任一所述的方法,其特征在于,所述方法还包括:生成所述循环体的结束指令组之后,进入循环体的内部指令模拟执行模式,其中,在所述循环体的内部指令模拟执行模式下,所述循环体的内部指令不允许被更改。17.根据权利要求1

5任一所述的方法,其特征在于,所述方法还包括:执行所述循环体的各条内部指令;在确定满足例外触发条件的情况下,触发例外机制进行例外处理,其中,所述例外触发条件包括以下至少一项:当前执行的指令为访存指令,且所述访存指令的目标访存地址不
属于所述循环体的第一地址和第二地址所限定的地址范围;所述访存指令对应的源寄存器和目标寄存器内的数据值之间的大小关系不满足预设要求;所述访存指令的访存地址不满足地址对齐要求;所述访存指令的目标访存地址对应的访存属性不满足所述访存指令的访存需求。18.一种生成随机指令验证程序的装置,其特征在于,所述随机指令验证程序用于对微处理器进行随机验证,所述随机指令验证程序包含循环体,所述装置包括:开始位置确定模块,用于在确定满足循环体开始的约束条件时,确定循环体的开始位置,并记录所述循环体的开始位置对应的第一地址;第一指令生成模块,用于根据所述循环体的开始位置对应的第一地址,生成所述循环体的内部指令;结束位置确定模块,用于在确定满足所述循环体结束的约束条件时,确定所述循环...

【专利技术属性】
技术研发人员:韩静盟姚婉宁杜方舟
申请(专利权)人:龙芯中科技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1