一种指令集覆盖率测试方法及装置制造方法及图纸

技术编号:32804705 阅读:10 留言:0更新日期:2022-03-26 19:56
本发明专利技术公开了一种指令集覆盖率测试方法及装置,所述方法包括以下步骤:在处理器执行代码时,读取处理器的译码器,获取处理器执行的指令;解析指令获得指令操作码;根据预设映射关系,获取与指令操作码对应的统计存储单元的存储地址;对存储地址中的第一预设字段的值改写为第一预设值;当处理器的所述代码执行完成后,根据各存储地址的第一预设字段的值是否被改写的检测结果,以及预设映射关系,统计被执行的各指令。所述装置包括指令识别单元和统计存储单元。本发明专利技术克服了现有插桩技术只适合于RISV

【技术实现步骤摘要】
一种指令集覆盖率测试方法及装置


[0001]本专利技术涉及计算机
,尤其涉及一种指令集覆盖率测试方法及装置。

技术介绍

[0002]RISC-V(发音为“risk-five”)是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),V表示为第五代RISC(精简指令集计算机),表示此前已经四代RISC处理器原型芯片。RISC-V CPU技术作为一种开源新型指令集架构技术目前在业界较为流行。RISC-V CPU的功能正确性极大程度上依赖RISC-V CPU原型设计时的指令集覆盖率测试。RISC-V CPU开源指令集技术,需要确保RISC-V CPU的指令验证覆盖率,从而确保RISC-V CPU的稳定性。
[0003]现有技术可以借助RISC-V CPU扩展指令集测试源码覆盖率,如,测试源码中某一个逻辑功能分支是否有执行到,现有技术只针对RISC-V CPU自定义扩展指令集,覆盖范围窄。且无法对RISC-V CPU的具体指令集的执行情况进行测试统计,也不是针对RISC-V CPU指令对应的二进制编码RISC-V CPU指令的覆盖率。现有技术是面向RISC-V CPU源码级别,通过指令插桩Tout来实现。这就要求,必须要对RISC-V CPU指令源码进行Tout指令插桩处理,导致源码本身需要修改。该在源码中何处添加这条Tout指令插桩处理比较合理,现有技术并没有给出合理判断。且源码逻辑功能越多,插桩就越多,会对源码执行性能造成影响,甚至有可能会影响源码功能本身。现有技术的通过插桩来测试覆盖率,因为严重依赖RISC-V CPU扩展指令,故只能局限于RISC-V CPU架构。如其他CPU架构出现根本不允许扩展指令集的情况,指令插桩Tout便无法实现。
[0004]故需要一种涵盖范围更广,无需插桩,灵活性更高,既能用于验证RISC-V CPU指令集高覆盖率,也能用于其他CPU架构的覆盖率测试方法。

技术实现思路

[0005]基于此,有必要提供一种指令集覆盖率测试方法。
[0006]一种指令集覆盖率测试方法,包括以下步骤:
[0007]在处理器执行代码时,读取所述处理器的译码器,获取所述处理器执行的指令;
[0008]解析所述指令获得指令操作码;
[0009]根据预设映射关系,获取与所述指令操作码对应的统计存储单元的存储地址,其中,所述预设映射关系为各所述指令操作码与所述统计存储单元的各存储地址的对应关系;
[0010]对所述存储地址中的第一预设字段的值改写为第一预设值。
[0011]在本专利技术的实施例中,
[0012]所述对所述存储地址中的第一预设字段的值改写为第一预设值的步骤之后还包括:
[0013]当所述处理器的所述代码执行完成后,检测各所述存储地址的所述第一预设字段
的值是否被改写为所述第一预设值;
[0014]根据对各所述存储地址的所述第一预设字段的值是否被改写的检测结果,以及所述预设映射关系,统计被执行的各指令。
[0015]在本专利技术的实施例中,
[0016]所述根据对各所述存储地址的所述第一预设字段的值是否被改写的检测结果,以及所述预设映射关系,统计被执行的各指令的步骤包括:
[0017]当所述存储地址的所述第一预设字段的值被改写为所述第一预设值时,根据所述映射关系,确定所述存储地址对应的指令为被执行指令;
[0018]根据被执行的指令的数量和指令集内的所有指令的数量,计算出指令覆盖率。
[0019]在本专利技术的实施例中,
[0020]所述根据预设映射关系,获取与所述指令操作码对应的统计存储单元的存储地址的步骤之后还包括:
[0021]对所述存储地址中的第二预设字段的值进行一次加值操作,其中,所述加值操作为在所述第二预设字段当前的值加上第二预设值。
[0022]在本专利技术的实施例中,还包括:
[0023]读取所述处理器的寄存器,获取所述处理器执行的指令的指令地址;
[0024]所述根据预设映射关系,获取与所述指令操作码对应的统计存储单元的存储地址的步骤之后还包括:
[0025]将所述指令地址写入至所述统计存储单元的所述存储地址中的第三预设字段。
[0026]本专利技术提供了一种指令集覆盖率测试装置,包括指令识别单元和统计存储单元:
[0027]所述指令识别单元用于在处理器执行代码时,读取所述处理器的译码器,获取所述处理器执行的指令;解析所述指令获得指令操作码;根据预设映射关系,获取与所述指令操作码对应的统计存储单元的存储地址,其中,所述预设映射关系为各所述指令操作码与所述统计存储单元的各所述存储地址的对应关系;对所述存储地址中的第一预设字段的值改写为第一预设值。
[0028]所述统计存储单元用于根据所述指令识别单元的改写操作,将在所述预设映射关系中与所述指令操作码对应的所述存储地址的所述第一预设字段的值改写为所述第一预设值。
[0029]在本专利技术的实施例中,
[0030]所述指令识别单元包括指令识别模块、指令映射模块和记录模块,其中,
[0031]所述指令识别模块用于在处理器执行代码时,读取所述处理器的译码器,获取所述处理器执行的指令;解析所述指令获得指令操作码;根据预设映射关系,获取与所述指令操作码对应的统计存储单元的存储地址;对所述存储地址中的第一预设字段的值改写为第一预设值;以及用于将指令地址写入至所述统计存储单元的所述存储地址中的第三预设字段;
[0032]所述指令映射模块用于构建所述预设映射关系,其中,所述预设映射关系为各指令操作码与所述统计存储单元的各所述存储地址的对应关系;
[0033]所述记录模块用于读取所述处理器的寄存器,获取所述处理器执行的指令的所述指令地址。
[0034]在本专利技术的实施例中,
[0035]所述统计存储单元还用于当所述处理器的所述代码执行完成后,检测各所述存储地址的所述第一预设字段的值是否被改写为所述第一预设值;用于根据对各所述存储地址的所述第一预设字段的值是否被改写的检测结果,以及所述预设映射关系,统计被执行的各指令;用于当所述存储地址的所述第一预设字段的值被改写为所述第一预设值时,根据所述映射关系,确定所述存储地址对应的指令为被执行的指令;以及用于根据被执行的指令的数量和指令集内的所有指令的数量,计算出指令覆盖率。
[0036]在本专利技术的实施例中,
[0037]所述统计存储单元还用于对所述存储地址中的第二预设字段的值进行一次加值操作,其中,所述加值操作为在所述第二预设字段当前的值加上第二预设值;以及用于将所述指令地址写入至所述统计存储单元的所述存储地址中的第三预设字段。
[0038]在本专利技术的实施例中,
[0039]所述指令集覆盖率测试装置为处理器,所述指令识别单元和所述统计存储单元内嵌于所述处理器内。
[0040]与现有技术相比,本专利技术的一个或多个实施例可以具有如下优点:
[0041本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种指令集覆盖率测试方法,其特征在于,包括以下步骤:在处理器执行代码时,读取所述处理器的译码器,获取所述处理器执行的指令;解析所述指令获得指令操作码;根据预设映射关系,获取与所述指令操作码对应的统计存储单元的存储地址,其中,所述预设映射关系为各所述指令操作码与所述统计存储单元的各存储地址的对应关系;对所述存储地址中的第一预设字段的值改写为第一预设值。2.根据权利要求1所述的方法,其特征在于,所述对所述存储地址中的第一预设字段的值改写为第一预设值的步骤之后还包括:当所述处理器的所述代码执行完成后,检测各所述存储地址的所述第一预设字段的值是否被改写为所述第一预设值;根据对各所述存储地址的所述第一预设字段的值是否被改写的检测结果,以及所述预设映射关系,统计被执行的各指令。3.根据权利要求2所述的方法,其特征在于,所述根据对各所述存储地址的所述第一预设字段的值是否被改写的检测结果,以及所述预设映射关系,统计被执行的各指令的步骤包括:当所述存储地址的所述第一预设字段的值被改写为所述第一预设值时,根据所述映射关系,确定所述存储地址对应的指令为被执行指令;根据被执行的指令的数量和指令集内的所有指令的数量,计算出指令覆盖率。4.根据权利要求1所述的方法,其特征在于,所述根据预设映射关系,获取与所述指令操作码对应的统计存储单元的存储地址的步骤之后还包括:对所述存储地址中的第二预设字段的值进行一次加值操作,其中,所述加值操作为在所述第二预设字段当前的值加上第二预设值。5.根据权利要求1所述的方法,其特征在于,还包括:读取所述处理器的寄存器,获取所述处理器执行的指令的指令地址;所述根据预设映射关系,获取与所述指令操作码对应的统计存储单元的存储地址的步骤之后还包括:将所述指令地址写入至所述统计存储单元的所述存储地址中的第三预设字段。6.一种指令集覆盖率测试装置,其特征在于,包括指令识别单元和统计存储单元:所述指令识别单元用于在处理器执行代码时,读取所述处理器的译码器,获取所述处理器执行的指令;解析所述指令获得指令操作码;根据预设映射关系,获取与所述指令...

【专利技术属性】
技术研发人员:王谦智
申请(专利权)人:珠海零边界集成电路有限公司
类型:发明
国别省市:

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

1