CPU验证系统、方法、计算机设备及存储介质技术方案

技术编号:35825429 阅读:20 留言:0更新日期:2022-12-03 13:52
本申请公开了一种CPU验证系统、方法、计算机设备及存储介质。该CPU验证系统包括:CPU功能验证模块,其加载预设软件对待验证的CPU进行功能验证,在验证过程中,在运行到程序断点时,提取并保存该程序断点下的有关CPU功能验证的快照文件,当检测到CPU功能验证出现异常时,查找距离当前异常点最近保存的快照文件确定为待恢复快照文件;CPU漏洞定位模块,其基于待恢复快照文件恢复运行验证软件,以确待验证CPU的漏洞位置,其中,通过在验证软件中设置多个程序断点来获得预设软件。该CPU验证系统可以准确、快速地对CPU IP核在代码层面进行Bug定位。定位。定位。

【技术实现步骤摘要】
CPU验证系统、方法、计算机设备及存储介质


[0001]本专利技术涉及计算机
,更具体地,涉及一种CPU验证系统、方法、计算机设备及存储介质。

技术介绍

[0002]随着芯片设计规模的不断扩大和芯片复杂度的持续提高,芯片功能验证的工作量占据芯片开发周期的比例不断增多。中央处理器(Central Processing Unit/Processor,CPU)是整个片上系统(System on Chip,SoC)设计中的重要组成部分,为了全面验证CPU的功能,通常需要在现场可编程门阵列(Field

Programmable Gate Array,FPGA)系统上使用大型应用软件来验证CPU功能是否和设计预期一致。然而,FPGA平台本身的局限性,只能定位到寄存器功能或内存变化中的显式故障,但无法定位CPU的知识产权核(Intellectual Property core,IP核)在寄存器传输层(Register Transfer Level,RTL)代码设计中的具体漏洞(Bug)位置。一旦大型应用软件运行出错,如何从大型应用软件的出错点定位到CPU设计中的具体Bug位置是一个技术难题。

技术实现思路

[0003]鉴于上述问题,本专利技术的目的在于提供一种CPU验证系统、方法、计算机设备及存储介质,以准确、快速地对CPU IP核在代码层面进行Bug定位。
[0004]根据本专利技术的一方面,提供一种CPU验证系统,用于对待验证CPU进行漏洞(Bug)定位,包括:CPU功能验证模块,其加载预设软件对待验证CPU进行功能验证,在验证过程中,在运行到程序断点时,提取并保存该程序断点下的有关CPU功能验证的快照文件,当检测到CPU功能验证出现异常时,查找距离当前异常点最近保存的快照文件确定为待恢复快照文件,其中,通过在验证软件中设置多个程序断点来获得预设软件;CPU漏洞定位模块,其基于所述待恢复快照文件恢复运行所述验证软件,以确所述待验证CPU的漏洞位置。
[0005]可选的,所述CPU功能验证模块,其间隔预定数目的指令或在出现漏洞概率高的指令位置对所述验证软件设置多个所述程序断点获得预设软件。
[0006]可选的,所述CPU功能验证模块,其根据所述验证软件包含的指令数目设置所述预定数目。
[0007]可选的,所述CPU功能验证模块,其运行到所述预设软件设置的程序断点时,触发并执行快照信息保存程序,将此断点下的CPU寄存器信息和内存信息生成所述快照文件,并将所述快照文件存储于非易失性存储设备或宿主机。
[0008]可选的,当所述预设软件在CPU功能验证模块中运行到所述异常点时,所述CPU功能验证模块停止运行所述预设软件;或所述CPU功能验证模块继续运行所述预设软件,以确定所述预设软件在CPU功能验证模块中运行的所有异常点。
[0009]可选的,所述CPU漏洞定位模块,其基于电子设计自动化(EDA)系统从所述待恢复快照文件处开始运行所述验证软件,确定所述待验证CPU在RTL源代码层面的漏洞位置。
[0010]可选的,所述CPU漏洞定位模块,其所述验证软件对运行到异常点时生成的波形文件和待验证CPU的RTL源代码进行分析,确定所述待验证CPU的漏洞位置。
[0011]根据本专利技术的第二方面,提供一种CPU验证方法,用于操作如上所述的CPU验证系统,以对待验证CPU进行漏洞(Bug)定位,所述CPU验证方法包括:加载预设软件对待验证的CPU进行功能验证,在验证过程中,在运行到程序断点时,提取并保存该程序断点下的有关CPU功能验证的快照文件,当检测到CPU功能验证出现异常时,查找距离当前异常点最近保存的快照文件确定为待恢复快照文件,其中,通过在验证软件中设置多个程序断点来获得预设软件;基于所述待恢复快照文件恢复运行所述验证软件,确定所述待验证CPU的漏洞位置。
[0012]根据本专利技术的第三方面,提供一种计算机设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于执行如上所述的CPU验证方法。
[0013]根据本专利技术的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行如上所述的CPU验证方法。
[0014]本专利技术提供的CPU验证系统、方法、计算机设备及存储介质,不增加额外的硬件,利用CPU功能验证模块和CPU漏洞定位模块实现了软件快照信息的跨系统恢复,既能保证CPU验证的完备性,又能快速地定位CPU的Bug位置,可以准确、快速地对CPU IP核在代码层面进行Bug定位。
附图说明
[0015]通过以下参照附图对本专利技术实施例的描述,本专利技术的上述以及其他目的、特征和优点将更为清楚,在附图中:
[0016]图1示出了根据本专利技术实施例的CPU验证系统的框图;
[0017]图2示出了根据本专利技术实施例的CPU验证方法的流程图。
具体实施方式
[0018]以下将参照附图更详细地描述本专利技术。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,在图中可能未示出某些公知的部分。
[0019]在下文中描述了本专利技术的许多特定的细节,例如器件的结构、材料、尺寸、处理工艺和技术,以便更清楚地理解本专利技术。但正如本领域的技术人员能够理解的那样,可以不按照这些特定的细节来实现本专利技术。
[0020]应理解,本申请实施例中的A与B连接/耦接,表示A与B可以串联连接或并联连接,或者A与B通过其他的器件,本申请实施例对此不作限定。
[0021]在CPU的设计过程中,需要将RTL源代码自动转换成用门单元组成的电路,这个过程称为“逻辑综合”(Logic Synthesis)。经过逻辑综合后,电路以门级(Gate Level)模型描述门单元以及门单元之间的连接关系,可以理解为门单元组成的一张网,所以这样的模型称为“网表”(Netlist)。以网表为分界点,整个CPU的设计可以分为“前端”“后端”两个阶段。
[0022]在前端阶段中,需要进行RTL源代码设计,RTL源代码用于描述电路的逻辑功能,因此该过程称为“逻辑设计”。在后端阶段中,网表还要经过布局布线才能确定晶体管在芯片中的实际位置,形成交付给流片厂商的最终成品——版图,该过程称为“物理设计”。
[0023]在前端阶段中,在RTL源代码设计初步完成之后,为保证CPU功能与设计预期一致,需要进行CPU验证。在CPU验证过程中,经常需要在FPGA平台上使用大型应用软件来验证CPU功能是否和设计预期一致,若与预期设计不一致,可称CPU出现了漏洞(Bug)。所谓Bug,是指电脑系统的硬件、系统软件(如操作系统)或应用软件(如文字处理软件)出错。一旦大型应用软件出错,如何从大型应用软件的出错点定位到CPU设计中RTL源代码的具体Bug是一个技术难题。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CPU验证系统,用于对待验证CPU进行漏洞(Bug)定位,包括:CPU功能验证模块,其加载预设软件对待验证CPU进行功能验证,在验证过程中,在运行到程序断点时,提取并保存该程序断点下的有关CPU功能验证的快照文件,当检测到CPU功能验证出现异常时,查找距离当前异常点最近保存的快照文件确定为待恢复快照文件,其中,通过在验证软件中设置多个所述程序断点来获得预设软件;CPU漏洞定位模块,其基于所述待恢复快照文件恢复运行所述验证软件,确定所述待验证CPU的漏洞位置。2.根据权利要求1所述的CPU验证系统,其中,所述CPU功能验证模块,其间隔预定数目的指令或在出现漏洞概率高的指令位置对所述验证软件设置多个所述程序断点获得预设软件。3.根据权利要求2所述的CPU验证系统,其中,所述CPU功能验证模块,其根据所述验证软件包含的指令数目设置所述预定数目。4.根据权利要求1所述的CPU验证系统,其中,所述CPU功能验证模块,其运行到程序断点时,触发并执行快照信息保存程序,将此断点下的CPU寄存器信息和内存信息生成所述快照文件,并将所述快照文件存储于非易失性存储设备或宿主机。5.根据权利要求1所述的CPU验证系统,其中,当所述预设软件在CPU功能验证模块中运行到所述异常点时,所述CPU功能验证模块停止运行所述预设软件;或所述CPU功能验证模块继续运行所述预设软件,以确定所述预设软件在CPU功能验证模块中运行的所有异常点。6.根据权利要求1任一...

【专利技术属性】
技术研发人员:宋仁杰
申请(专利权)人:北京奕斯伟计算技术股份有限公司
类型:发明
国别省市:

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

1