处理器的验证方法、验证系统以及存储介质与流程

未命名 07-23 阅读:189 评论:0


1.本发明是有关于一种处理器的验证方法,且特别是有关于一种基于硬件的处理器的验证方法、验证系统以及存储介质。


背景技术:

2.在现有的大规模集成电路,例如处理器(cpu、gpu、risc-v)中,通常会采用流水线操作以提高处理器的指令执行性能。
3.在处理器的设计过程中,处理器内核采用寄存器转换级(rtl:register transfer level)代码进行编写。在对处理器进行仿真验证时,需要将处理器内核rtl中指令执行的结果和指令集仿真器(iss:instruction set simulator)中指令执行的结果进行比对。处理器内核中的指令一般都是并行乱序执行的,没办法在某一时刻通过rtl中的信号得到一条指令执行后的架构寄存器(architectural registers)及控制状态寄存器(csr:control status register)的全部状态,因此需要一个流水线监控单元(pipeline monitor)从处理器流水线中采样、收集处理器内核指令执行的结果,并根据指令顺序重新排序后发出。将处理器内核的指令执行结果和指令集仿真器iss中的执行结果进行比对,进而判断处理器内核rtl中的指令执行是否正确。
4.现有的流水线监控单元采用软件来实现,并集成于处理器中,通常不能被综合。因此,在对处理器进行基于硬件的仿真、验证或测试时,无法将处理器内核以及流水线监控单元同时进行。所以在基于软件或基于硬件的仿真验证(emulator或fpga)时,需要开发不同的流水线监控单元,或者在基于硬件的仿真验证时,放弃使用流水线监控单元。
5.因此,如何提供一种能够同时兼容基于软件的仿真以及基于硬件的仿真验证,提高对处理器进行仿真、验证的效率以及准确性,实为需要解决的问题之一。


技术实现要素:

6.本发明的实施例提供一种处理器的验证方法以及存储介质,能够兼容基于软件的仿真以及基于硬件的仿真验证,提高了对处理器进行仿真、验证的效率以及准确性。
7.本发明一实施方式的处理器的验证方法,所述处理器具有内核以及流水线监控单元,包括以下步骤:配置所述内核以及所述流水线监控单元;对所述内核以及所述流水线监控单元进行综合;对所述处理器进行仿真验证;其中所述仿真验证包括基于硬件的仿真验证。
8.上述的验证方法,其中,所述配置所述内核以及所述流水线监控单元的步骤包括使用rtl级代码配置所述内核以及所述流水线监控单元。
9.上述的验证方法,其中,所述rtl级代码包括使用硬件描述语言编写的代码。
10.上述的验证方法,其中,所述硬件描述语言包括vhdl或verilog。
11.上述的验证方法,其中,所述仿真验证包括通过硬件仿真平台或fpga进行仿真验证。
12.上述的验证方法,其中,所述验证方法进一步包括:
13.对所述内核以及所述流水线监控单元进行综合之前,对所述处理器进行eda仿真。
14.上述的验证方法,其中,所述eda仿真进一步包括:
15.将所述流水线监控单元在流水线中抓取的指令执行结果通过指令集架构检查单元与指令集仿真器中的指令执行结果进行比对;
16.将所述流水线监控单元在流水线中抓取的指令执行结果通过表格格式打印到追踪日志文件中。
17.上述的验证方法,其中,所述流水线监控单元通过层次化引用的方式收集所述内核的指令处理信息。
18.上述的验证方法,其中,所述指令处理信息包括指令分发信息、指令提交信息以及指令回写信息。
19.上述的验证方法,其中,所述流水线监控单元将所述指令处理信息暂存并重新排序,指令回写完成后,将指令执行结果按指令流的顺序发出。
20.上述的验证方法,其中,所述验证方法进一步包括:
21.将所述指令执行结果以波形形式显示,并根据所述指令执行结果定位仿真验证过程中出现的错误。
22.本发明一实施方式的处理器验证系统,其中,所述处理器验证系统用于执行上述的任意一种处理器的验证方法。
23.本发明一实施方式的存储介质,用于存储计算机程序,所述计算机程序用于执行上述的任意一种处理器的验证方法。
24.以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
25.图1是本发明一实施例处理器的架构示意图。
26.图2是本发明一实施例流水线架构示意图。
27.图3是本发明一实施例处理器的验证方法的流程示意图。
28.图4是本发明一实施例处理器的验证系统的架构示意图。
29.图5是本发明另一实施例处理器的验证系统的架构示意图。
30.其中,附图标记:
31.10:处理器
32.11:算数逻辑单元
33.12:控制单元
34.13:高速缓存
35.14:寄存器
36.15:总线
37.100:验证方法
38.s101-s104:步骤
39.200、200’:验证系统
40.201、201’:处理器
41.202、202’:处理器内核
42.203、203’:流水线监控单元
43.204、204’:验证设备
44.2041、2041’:指令级架构检查单元
45.2042、2042’:指令集仿真器
46.205:显示单元
具体实施方式
47.下面结合附图对本发明的结构原理和工作原理作具体的描述:
48.图1是本发明一实施例处理器的架构示意图。如图1所示,处理器10包括算数逻辑单元(alu arithmetic and logic unit)11、控制单元(cu control unit)12、高速缓存13以及寄存器14。其中,算数逻辑单元11、控制单元12、高速缓存13以及寄存器14之间通过总线15进行数据传输,当然,处理器10与外部设备(图中未示出),例如输入/输出设备、存储设备以及显示设备之间,同样是通过总线15进行数据传输。
49.于本发明中,高速缓存13可以是一级缓存,也可以是多级缓存的结构。寄存器14可以包括数据寄存器、地址寄存器、指令寄存器,也可以包括其他类型的寄存器,总线可以是地址总线、数据总线、控制总线等。本发明并不以此为限。
50.应用程序经过编译器处理成机器码来执行,应用程序会被翻译成一条条的指令(instruction)。图2是本发明一实施例流水线架构示意图。如图2所示,以5级流水线为例,处理器对于一条指令的操作过程通常包括:(1)取指令if(if,instruction fetch)阶段,将一条指令从存储设备中取到寄存器14;(2)指令译码id(id,instruction decode)阶段,指令译码器按照预定的指令格式,对取到的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法;(3)指令执行ex(execute)阶段,完成指令所规定的各种操作,实现指令的功能;(4)访存取数mem(memory)阶段,根据指令需要,有可能要访问存储设备读取操作数,根据指令地址码,得到操作数在存储设备中的地址,并从存储设备中读取该操作数用于运算;(5)结果回写(wb,writeback)阶段,把执行指令阶段的运行结果数据写回到存储设备中。
51.处理器10的流水线技术是一种将指令分解为多步,并让不同指令的各步操作重叠,从而实现几条指令并行处理,以加速程序运行过程的技术。如图2所示,指令1、指令2以及指令3的每个阶段顺序执行,而指令1、指令2以及指令3之间可以并行执行。
52.为了获得指令的执行状态,需要一个流水线监控单元从流水线中采样收集指令执行的结果,获取指令所处流水线的位置、是否发生异常、是否执行回写等等。
53.图3是本发明一实施例处理器的验证方法的流程示意图。如图3所示,本发明的处理器的验证方法100包括以下步骤:
54.步骤s101,配置处理器内核以及流水线监控单元。使用硬件描述语言实现处理器内核以及流水线监控单元,通常使用的硬件描述语言包括vhdl以及verilog。于本发明中,处理器中的处理器内核以及流水线监控单元均采用硬件描述语言实现,且处理器内核以及流水线监控单元优选的采用rtl级代码实现。
55.步骤s103,对处理器内核以及流水线监控单元进行综合。
56.综合(synthesis)是集成电路设计中通常使用的一种方法,其指的是在集成电路设计过程中,将寄存器传输级描述(rtl register transfer level)代码转换为门级网表(gate level netlist)的过程叫做逻辑综合(logicsynthesis)。
57.rtl代码只是对电路逻辑功能实现的描述,是一种理想的状态。而实际的电路中,由于生产工艺的不同,电路必然会存在着逻辑门的延迟、布线的延迟、时钟的延迟等等。所以,为了对电路进行优化,就需要将rtl代码转换为门级网表,综合工具将所使用工艺库提供的电路信息(逻辑功能、面积、时序关系等),对电路中的各种器件进行选择和电路结构调整。
58.由于处理器内核以及流水线处理单元采用可综合的硬件描述语言实现,在对处理器进行基于硬件的仿真验证时,例如通过硬件仿真平台(emulator)或通过fpga进行仿真验证时,对处理器内核以及流水线监控单元进行综合,实现处理器内核以及流水线监控单元的硬件化。于本发明中,流水线监控单元收集处理器内核的指令处理信息,指令处理信息主要包括指令分发信息、指令提交信息以及指令回写信息等。这些指令处理信息在流水线监控单元中的缓冲器中暂存,并根据指令流的顺序对这些指令处理信息进行重新排序,这些指令执行完成并进行回写之后,流水线监控单元将指令执行结果按指令流的顺序发出。
59.步骤s104,对处理器进行仿真验证。通过硬件仿真平台(emulator)或通过fpga进行仿真验证。于仿真验证过程中,将流水线监控单元发送的指令执行结果或从流水线中抓取的指令执行结果通过指令集架构(isa:instruction setarchitecture)检查单元和指令集仿真器中的指令执行结果进行比对;进而判断处理器内核中的指令执行是否正确。
60.于本发明中,为了更好地浏览指令执行结果并协助进行排错(debug),还可将流水线监控单元发送的指令执行结果通过表格格式打印到追踪(trace)日志文件中。或者通过验证设备中的显示单元,以波形的形式显示指令执行结果,并根据所述指令执行结果定位仿真验证过程中出现的错误。由此,可以快速的对出现的错误进行纠错,大大提高了仿真验证的效率以及准确性。
61.本发明的处理器的验证方法100还可以进一步包括:
62.步骤s102,对处理器进行eda仿真。即在对内核以及流水线监控单元进行综合之前,对处理器进行eda仿真。由于此时的处理器内核以及流水线监控单元还没有被硬件化,因此,流水线监控单元通过层次化引用的方式收集处理器内核的指令处理信息。层次化引用的方式不需要流水线中的模块通过专门的接口将相关指令处理信息传送给流水线监控单元,极大地增强了流水线监控单元的可扩展性及流水线模块代码的稳定性。
63.同样的,进行eda仿真时,也是将流水线监控单元发送的指令执行结果或从流水线中抓取的指令执行结果通过指令集架构检查单元和指令集仿真器中的指令执行结果进行比对;进而判断处理器内核中的指令执行是否正确。当然,eda仿真的步骤可以根据需要进行或忽略,本发明并不以此为限。
64.图4是本发明一实施例处理器的验证系统的架构示意图。如图4所示,本发明的验证系统200包括处理器201以及验证设备204,处理器201进一步包括处理器内核202以及流水线监控单元203。通过流水线监控单元203将处理器内核202的指令执行结果传输至验证设备204,验证设备204可集成有指令级架构检查单元2041以及指令集仿真器2042,在进行eda仿真或通过硬件仿真平台(emulator)以及fpga进行仿真验证时,验证设备204通过指令
级架构检查单元将流水线监控单元203传输的指令执行结果与指令集仿真器中的指令执行结果进行比对,以判断处理器内核中的指令执行是否正确。
65.图5是本发明另一实施例处理器的验证系统的架构示意图。如图5所示,与图3所示的验证系统200相同,验证系统200’包括处理器201’以及验证设备204’,处理器201’进一步包括处理器内核202’以及流水线监控单元203’。通过流水线监控单元203’将处理器内核202’的指令执行结果传输至验证设备204’,验证设备204’可集成有指令级架构检查单元2041’以及指令集仿真器2042’。另外,本发明的验证系统200’进一步包括显示单元205’,以波形的形式显示指令执行结果,并根据所述指令执行结果定位仿真验证过程中出现的错误。
66.本发明还提供一种存储介质,用于存储计算机程序,计算机程序用于执行如上所述的任意一种处理器的验证方法。
67.综上,依照本发明的实施例,可以通过综合对处理器内核以及流水线监控单元硬件化,能够兼容基于软件的仿真以及基于硬件的仿真验证,提高了对处理器进行仿真、验证的效率以及准确性。
68.当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

技术特征:
1.一种处理器的验证方法,所述处理器具有内核以及流水线监控单元,其特征在于,包括以下步骤:配置所述内核以及所述流水线监控单元;对所述内核以及所述流水线监控单元进行综合;对所述处理器进行仿真验证;其中所述仿真验证包括基于硬件的仿真验证。2.如权利要求1所述的验证方法,其特征在于,所述配置所述内核以及所述流水线监控单元的步骤包括使用rtl级代码配置所述内核以及所述流水线监控单元。3.如权利要求2所述的验证方法,其特征在于,所述rtl级代码包括使用硬件描述语言编写的代码。4.如权利要求3所述的验证方法,其特征在于,所述硬件描述语言包括vhdl或verilog。5.如权利要求1所述的验证方法,其特征在于,所述仿真验证包括通过硬件仿真平台或fpga进行仿真验证。6.如权利要求1所述的验证方法,其特征在于,所述验证方法进一步包括:对所述内核以及所述流水线监控单元进行综合之前,对所述处理器进行eda仿真。7.如权利要求1所述的验证方法,其特征在于,所述仿真验证进一步包括:将所述流水线监控单元在流水线中抓取的指令执行结果通过指令集架构检查单元与指令集仿真器中的指令执行结果进行比对;将所述流水线监控单元在流水线中抓取的指令执行结果通过表格格式打印到追踪日志文件中。8.如权利要求6所述的验证方法,其特征在于,所述流水线监控单元通过层次化引用的方式收集所述内核的指令处理信息。9.如权利要求8所述的验证方法,其特征在于,所述指令处理信息包括指令分发信息、指令提交信息以及指令回写信息。10.如权利要求8所述的验证方法,其特征在于,所述流水线监控单元将所述指令处理信息暂存并重新排序,指令回写完成后,将指令执行结果按指令流的顺序发出。11.如权利要求10所述的验证方法,其特征在于,所述验证方法进一步包括:将所述指令执行结果以波形形式显示,并根据所述指令执行结果定位仿真验证过程中出现的错误。12.一种处理器验证系统,其特征在于:所述处理器验证系统用于执行如权利要求1-11所述的任意一种处理器的验证方法。13.一种存储介质,用于存储计算机程序,其特征在于:所述计算机程序用于执行如权利要求1-11所述的任意一种处理器的验证方法。

技术总结
本发明提供一种处理器的验证方法、验证系统以及存储介质。本发明处理器的验证方法中,处理器具有内核以及流水线监控单元,包括以下步骤:配置所述内核以及所述流水线监控单元;对所述内核以及所述流水线监控单元进行综合;对所述处理器进行仿真验证;其中所述仿真验证包括基于硬件的仿真验证。通过本发明的验证方法,使得流水线监控单元能够和处理器内核同时进行综合,并兼容基于软件的仿真以及基于硬件的仿真验证,提高了对处理器进行仿真、验证的效率以及准确性。效率以及准确性。效率以及准确性。


技术研发人员:姬中凯 黄荫钊
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2023.03.30
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐