处理器重放调试方法及系统与流程

文档序号:17586348发布日期:2019-05-03 21:21阅读:226来源:国知局
处理器重放调试方法及系统与流程

本发明涉及芯片设计与验证技术领域,尤其涉及一种处理器重放调试方法及系统。



背景技术:

随着晶体管规模的增长,系统级芯片(systemonachip,soc芯片)的设计与验证面临更大的挑战,软件仿真逐渐显露出速度慢的缺点。硬件仿真加速器以较快的仿真速度和适用于大规模电路等优势得到越来越多的应用。

目前在硬件仿真加速器平台上,调试系统级芯片内部处理器上的嵌入式软件的方法主要是通过记录波形,但是硬件仿真加速器波形记录慢,调试周期长,占用有限的机时,从而严重影响仿真速度。



技术实现要素:

本发明提供的处理器重放调试方法及系统,通过利用事务处理装置记录处理器运行程序过程中的关键信息,并利用记录的关键信息重放处理器的程序执行过程以实现处理器的离线调试,能够提高处理器的软件调试效率,从而加快芯片验证进程。

第一方面,本发明提供一种处理器重放调试系统,应用于硬件仿真加速器,所述系统包括主机和所述硬件仿真加速器上设置的包括至少一个处理器的系统级芯片及所述至少一个处理器对应的至少一个事务处理装置;

所述事务处理装置,用于实时记录所述处理器运行程序过程中的关键信息,并将所述关键信息周期性地发送至所述主机;

所述主机,用于利用所述关键信息和自身存储的源程序重放所述处理器的程序执行过程以实现对所述处理器的离线调试。

第二方面,本发明提供一种处理器重放调试方法,应用于硬件仿真加速器,其特征在于,所述硬件仿真加速器上设置的包括至少一个处理器的系统级芯片及所述至少一个处理器对应的至少一个事务处理装置,所述方法包括:

所述事务处理装置实时记录所述处理器运行程序过程中的关键信息,并将所述关键信息周期性地发送至所述主机;

所述主机利用所述关键信息和自身存储的源程序重放所述处理器的程序执行过程以实现对所述处理器的离线调试。

本发明实施例提供的处理器重放调试方法及系统,通过利用事务处理装置记录处理器运行程序过程中的关键信息,并利用记录的关键信息重放处理器的程序执行过程以实现处理器的离线调试。与现有技术相比,一方面,本发明通过离线调试方式对处理器运行的软件程序进行离线调试,而不用真正的运行指令进行计算,从而能够提高处理器的软件调试效率,从而加快芯片验证进程;另一方面,本发明的处理器重放调试方法及系统,能够高效准确定位出处理器的软硬件问题,为处理器调试提供更多有用信息。

附图说明

图1为本发明一实施例处理器重放调试系统的结构示意图;

图2为本发明另一实施例处理器重放调试系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种处理器重放调试系统,应用于硬件仿真加速器,如图1所示,所述系统包括主机和所述硬件仿真加速器上设置的包括至少一个处理器的系统级芯片及所述至少一个处理器对应的至少一个事务处理装置;

所述事务处理装置,用于实时记录所述处理器运行程序过程中的关键信息,并将所述关键信息周期性地发送至所述主机;

所述主机,用于利用所述关键信息和自身存储的源程序重放所述处理器的程序执行过程以实现对所述处理器的离线调试。

本发明实施例提供的处理器重放调试系统,通过利用事务处理装置记录处理器运行程序过程中的关键信息,并利用记录的关键信息重放处理器的程序执行过程以实现处理器的离线调试。与现有技术相比,一方面,本发明通过离线调试方式对处理器运行的软件程序进行离线调试,而不用真正的运行指令进行计算,从而能够提高处理器的软件调试效率,从而加快芯片验证进程;另一方面,本发明的处理器重放调试方法及系统,能够高效准确定位出处理器的软硬件问题,为处理器调试提供更多有用信息。

可选地,所述关键信息包括程序计数器值、通用寄存器组值、指令提交序列、堆栈和访存序列。

可选地,如图2所示,所述关键信息以特定数据结构保存在所述事务处理装置的先入先出序列fifo中,所述事务处理装置通过sci-me接口将所述先入先出序列中保存的关键信息周期性地发送至所述主机。

可选地,如图2所示,所述调试主机包括:

源程序数据库,用于存储源程序及其对应的汇编文件和已经编译产生的可执行文件;

记录数据库,用于记录所述程序计数器值、通用寄存器组值、指令提交序列、堆栈和访存序列;

重放引擎,用于根据所述处理器的微架构初始化运行环境,根据所述记录数据库中的程序计数器值在所述汇编文件中找到对应的机器码,并通过所述记录数据库的通用寄存器组值、堆栈和指令提交序列得到对应指令的运行结果。

本发明实施例还提供一种处理器重放调试方法,应用于硬件仿真加速器,所述硬件仿真加速器上设置的包括至少一个处理器的系统级芯片及所述至少一个处理器对应的至少一个事务处理装置,所述方法包括:

所述事务处理装置实时记录所述处理器运行程序过程中的关键信息,并将所述关键信息周期性地发送至所述主机;

所述主机利用所述关键信息和自身存储的源程序重放所述处理器的程序执行过程以实现对所述处理器的离线调试。

本发明实施例提供的处理器重放调试方法,通过利用事务处理装置记录处理器运行程序过程中的关键信息,并利用记录的关键信息重放处理器的程序执行过程以实现处理器的离线调试。与现有技术相比,一方面,本发明通过离线调试方式对处理器运行的软件程序进行离线调试,而不用真正的运行指令进行计算,从而能够提高处理器的软件调试效率,从而加快芯片验证进程;另一方面,本发明的处理器重放调试方法及系统,能够高效准确定位出处理器的软硬件问题,为处理器调试提供更多有用信息。

其中,所述关键信息包括程序计数器值、通用寄存器组值、指令提交序列、堆栈和访存序列。

可选地,所述主机利用所述关键信息和自身存储的源程序重放所述处理器的程序执行过程以实现对所述处理器的离线调试包括:

源程序数据库,用于存储源程序及其对应的汇编文件和已经编译产生的可执行文件;

记录数据库,用于记录所述程序计数器值、通用寄存器组值、指令提交序列、堆栈和访存序列;

重放引擎,用于根据所述处理器的微架构初始化运行环境,根据所述记录数据库中的程序计数器值在所述汇编文件中找到对应的机器码,并通过所述记录数据库的通用寄存器组值、堆栈和指令提交序列得到对应指令的运行结果。

其中,所述关键信息以特定数据结构保存在所述事务处理装置的先入先出序列中。

具体地,所述事务处理装置将记录的关键信息周期性地发送至所述主机包括:所述事务处理装置通过sci-me接口将所述先入先出序列中保存的关键信息周期性地发送至所述主机。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1