System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 指令验证方法、装置、系统以及存储介质、芯片制造方法及图纸_技高网

指令验证方法、装置、系统以及存储介质、芯片制造方法及图纸

技术编号:40608622 阅读:7 留言:0更新日期:2024-03-12 22:15
本发明专利技术公开了一种指令验证方法、装置、系统以及存储介质、芯片。指令验证方法包括:获取目标指令流;控制参考模型和待测试设备中的一个执行目标指令流,得到目标指令流中各指令的第一执行结果,并将第一执行结果存储至预设指令结果队列;控制参考模型和待测试设备中的另一个执行目标指令流,得到各指令的第二执行结果;根据各指令在待测试设备中的执行完成时间,将第二执行结果和预设指令结果队列中相应的第一执行结果进行比较。该指令验证方法,可解决指令乱序毕业的情况下,待测试设备和参考模型的指令执行结果不能正常比较的问题。

【技术实现步骤摘要】

本专利技术涉及芯片,尤其涉及一种指令验证方法、装置、系统以及存储介质、芯片


技术介绍

1、cpu(central processing unit,中央处理器)在执行程序时,各种程序会被解析成一条条的指令,然后被cpu执行。cpu每执行完一条指令,就会将指令执行结果以及指令执行引起的状态改变更新到对应的寄存器中,指令则结束其流水线周期,称之为毕业。随着cpu技术的发展,单个指令集架构所支持的指令种类越来越多,cpu内部指令执行单元也越来越复杂,多条指令有可能同时执行、乱序毕业,导致cpu指令执行正确性越来越难以保证。其中,cpu指令执行正确性的验证往往基于参考模型来完成,即将相同的指令流同时给参考模型和dut(device undertest,待测试设备),然后将参考模型的指令执行结果与dut的指令执行结果进行比较,若不一致则需要检查是否为dut设计本身的错误,若正确则认为dut设计正确。

2、然而,参考模型往往没有时序的概念,指令流按照指令流本身的顺序在参考模型上执行,其结果也是顺序输出。dut在执行相同指令流的时候,由于不同类型指令可能被送到不同的执行单元,且指令的执行周期并不完全相同,这就有可能导致指令的毕业没有按照指令输入的顺序,进而导致参考模型输出结果顺序与dut执行指令毕业顺序不一致,使得结果难以比较。比如,指令流fadd+add+sub,fadd指令执行浮点加法,由浮点单元执行,需要多个周期才能完成,假设三条指令之间没有相关性,则add和sub指令会依次送入整数执行单元执行,且只需要一个周期即可完成,这就导致在dut上add和sub运算先毕业,fadd后毕业。而参考模型由于没有时序概念,且顺序执行,则会先给出fadd的执行结果,导致指令不能够正常进行结果比较。


技术实现思路

1、本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的一个目的在于提出一种指令验证方法、装置、系统以及存储介质、芯片,以解决指令乱序毕业的情况下,待测试设备和参考模型的指令执行结果不能正常比较的问题。

2、为达到上述目的,本专利技术第一方面实施例提出了一种指令验证方法,包括:获取目标指令流;控制参考模型和待测试设备中的一个执行所述目标指令流,得到所述目标指令流中各指令的第一执行结果,并将所述第一执行结果存储至预设指令结果队列;控制所述参考模型和所述待测试设备中的另一个执行所述目标指令流,得到各所述指令的第二执行结果;根据各所述指令在所述待测试设备中的执行完成时间,将所述第二执行结果和所述预设指令结果队列中相应的第一执行结果进行比较。

3、本专利技术实施例的指令验证方法,在获取目标指令流后,控制参考模型和待测试设备中的一个执行目标指令流,得到目标指令流中各指令的第一执行结果,并将第一执行结果存储至预设指令结果队列;以及控制参考模型和待测试设备中的另一个执行目标指令流,得到各指令的第二执行结果;根据各指令在待测试设备中的执行完成时间,将第二执行结果和预设指令结果队列中相应的第一执行结果进行比较。由此,通过设置预设指令结果队列存储暂时不能够做比较的毕业指令的执行结果,待可比较时,从预设指令结果队列获取对应的执行结果进行比较,解决了指令乱序毕业不能正常验证结果正确性的问题。

4、另外,本专利技术实施例的指令验证方法还可以具有如下附加的技术特征:

5、根据本专利技术的一个实施例,所述第一执行结果由所述参考模型得到时,所述根据各所述指令在所述待测试设备中的执行完成时间,将所述第二执行结果和所述预设指令结果队列中相应的第一执行结果进行比较,包括:每当所述待测试设备执行完成所述目标指令流中的一个指令后,将该指令的第二执行结果与所述预设指令结果队列中相应的第一执行结果进行比较。

6、根据本专利技术的一个实施例,所述目标指令流中的每个所述指令,是被所述参考模型和所述待测试设备同时开始执行的。

7、根据本专利技术的一个实施例,所述第一执行结果由所述待测试设备得到时,每当确定所述目标指令流中的第i个指令被所述待测设备执行完成后,所述第i个指令再被所述参考模型执行,i的初始值为1;相应的,所述根据各所述指令在所述待测试设备中的执行完成时间,将所述第二执行结果和所述预设指令结果队列中相应的第一执行结果进行比较,包括:确定所述第i个指令是否被所述待测设备执行完成;若是,且所述第i个指令被所述参考模型执行完成,则将所述第i个指令的第二执行结果与所述预设指令结果队列中相应的第一执行结果进行比较;i=i+1,返回至所述确定所述第i个指令是否被所述待测设备执行完成的步骤,直至所述目标指令流中所有指令的执行结果完成比较。

8、根据本专利技术的一个实施例,所述预设指令结果队列的深度大于或等于所述待测试设备的最多可同时执行指令条数。

9、根据本专利技术的一个实施例,所述方法还包括:将用于比较的所述第一执行结果从所述预设指令结果队列读取后,从所述预设指令结果队列中删除读取的所述第一执行结果。

10、根据本专利技术的一个实施例,控制所述待测试设备执行所述目标指令流,包括:根据所述待测试设备的最多可调度指令条数和所述最多可同时执行指令条数,控制所述待测试设备执行所述目标指令流。

11、根据本专利技术的一个实施例,所述根据所述待测试设备的最多可调度指令条数和所述最多可同时执行指令条数,控制所述待测试设备执行所述目标指令流,包括:若所述目标指令流中的指令条数小于或等于所述最多可同时执行指令条数,则根据所述最多可调度指令条数将所述目标指令流中的指令发送至所述待测试设备的执行单元执行;若所述目标指令流中的指令条数大于所述最多可同时执行指令条数,则根据所述最多可调度指令条数,将所述目标指令流中的前最多可同时执行指令条数个指令发送至所述待测试设备的执行单元执行,待存在任一指令执行完成后,根据当前正在执行指令的条数和所述最多可调度指令条数将所述目标指令流中的剩余指令发送至所述执行单元执行,直至所述目标指令流中的所有指令执行完成。

12、根据本专利技术的一个实施例,指令执行结果包括更新信息数据包和指令属性数据包,所述将所述第二执行结果和所述预设指令结果队列中相应的第一执行结果进行比较,包括:根据所述第二执行结果中的指令属性数据包和所述预设指令结果队列中各所述第一执行结果中的指令属性数据包,确定与所述第二执行结果对应的目标第一执行结果;从所述预设指令结果队列中读取所述目标第一执行结果,并将所述第二执行结果中的更新信息数据包与所述目标第一执行结果中的更新信息数据包进行比较。

13、根据本专利技术的一个实施例,所述更新信息数据包包括:通用寄存器数据包、特殊状态寄存器数据包和指令标志位数据包中的至少一者。

14、为达到上述目的,本专利技术第二方面实施例提出了一种指令验证装置,包括:获取模块,用于获取目标指令流;控制模块,用于控制参考模型和待测试设备中的一个执行所述目标指令流,得到所述目标指令流中各指令的第一执行结果,并将所述第一执行结果存储至预设指令结果队列;控制所述本文档来自技高网...

【技术保护点】

1.一种指令验证方法,其特征在于,包括:

2.根据权利要求1所述的指令验证方法,其特征在于,所述第一执行结果由所述参考模型得到时,所述根据各所述指令在所述待测试设备中的执行完成时间,将所述第二执行结果和所述预设指令结果队列中相应的第一执行结果进行比较,包括:

3.根据权利要求2所述的指令验证方法,其特征在于,所述目标指令流中的每个所述指令,是被所述参考模型和所述待测试设备同时开始执行的。

4.根据权利要求1所述的指令验证方法,其特征在于,所述第一执行结果由所述待测试设备得到时,所述目标指令流中的第i个指令被所述待测设备执行完成后,所述第i个指令再被所述参考模型执行,i的初始值为1;

5.根据权利要求1-4中任一项所述的指令验证方法,其特征在于,所述预设指令结果队列的深度大于或等于所述待测试设备的最多可同时执行指令条数。

6.根据权利要求5所述的指令验证方法,其特征在于,所述方法还包括:

7.根据权利要求6所述的指令验证方法,其特征在于,控制所述待测试设备执行所述目标指令流,包括:

8.根据权利要求7所述的指令验证方法,其特征在于,所述根据所述待测试设备的最多可调度指令条数和所述最多可同时执行指令条数,控制所述待测试设备执行所述目标指令流,包括:

9.根据权利要求1-4中任一项所述的指令验证方法,其特征在于,指令执行结果包括更新信息数据包和指令属性数据包,所述将所述第二执行结果和所述预设指令结果队列中相应的第一执行结果进行比较,包括:

10.根据权利要求9所述的指令验证方法,其特征在于,所述更新信息数据包包括:通用寄存器数据包、特殊状态寄存器数据包和指令标志位数据包中的至少一者。

11.一种指令验证装置,其特征在于,包括:

12.根据权利要求11所述的指令验证装置,其特征在于,所述第一执行结果由所述参考模型得到时,所述控制模块在根据各所述指令在所述待测试设备中的执行完成时间,将所述第二执行结果和所述预设指令结果队列中相应的第一执行结果进行比较时,用于:

13.根据权利要求12所述的指令验证装置,其特征在于,所述目标指令流中的每个所述指令,是被所述参考模型和所述待测试设备同时开始执行的。

14.根据权利要求11所述的指令验证装置,其特征在于,所述第一执行结果由所述待测试设备得到时,所述目标指令流中的第i个指令被所述待测设备执行完成后,所述第i个指令再被所述参考模型执行,i的初始值为1;

15.根据权利要求11-14中任一项所述的指令验证装置,其特征在于,所述预设指令结果队列的深度大于或等于所述待测试设备的最多可同时执行指令条数。

16.一种指令验证系统,其特征在于,包括:参考模型、待测试设备、预设指令结果队列和比较单元;其中,所述比较单元用于:

17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现根据权利要求1-10中任一项所述的指令验证方法。

18.一种芯片,包括存储器、处理器和存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器执行时,实现根据权利要求1-10中任一项所述的指令验证方法。

...

【技术特征摘要】

1.一种指令验证方法,其特征在于,包括:

2.根据权利要求1所述的指令验证方法,其特征在于,所述第一执行结果由所述参考模型得到时,所述根据各所述指令在所述待测试设备中的执行完成时间,将所述第二执行结果和所述预设指令结果队列中相应的第一执行结果进行比较,包括:

3.根据权利要求2所述的指令验证方法,其特征在于,所述目标指令流中的每个所述指令,是被所述参考模型和所述待测试设备同时开始执行的。

4.根据权利要求1所述的指令验证方法,其特征在于,所述第一执行结果由所述待测试设备得到时,所述目标指令流中的第i个指令被所述待测设备执行完成后,所述第i个指令再被所述参考模型执行,i的初始值为1;

5.根据权利要求1-4中任一项所述的指令验证方法,其特征在于,所述预设指令结果队列的深度大于或等于所述待测试设备的最多可同时执行指令条数。

6.根据权利要求5所述的指令验证方法,其特征在于,所述方法还包括:

7.根据权利要求6所述的指令验证方法,其特征在于,控制所述待测试设备执行所述目标指令流,包括:

8.根据权利要求7所述的指令验证方法,其特征在于,所述根据所述待测试设备的最多可调度指令条数和所述最多可同时执行指令条数,控制所述待测试设备执行所述目标指令流,包括:

9.根据权利要求1-4中任一项所述的指令验证方法,其特征在于,指令执行结果包括更新信息数据包和指令属性数据包,所述将所述第二执行结果和所述预设指令结果队列中相应的第一执行结果进行比较,包括:

10.根据权利要求9所述的指令验证方法...

【专利技术属性】
技术研发人员:赵豪刘亮姜义初李仙琴马俊孙玉峰蔡昊
申请(专利权)人:北京智芯微电子科技有限公司
类型:发明
国别省市:

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

1