单步调试方法和调试器技术

技术编号:19744968 阅读:28 留言:0更新日期:2018-12-12 04:41
本申请涉及一种单步调试方法和调试器。指令队列执行装置分别与处理器流水线控制器、处理器分支预测控制器和地址记录装置连接;所述方法包括:处理器流水线控制器向指令队列执行装置输入顺序执行地址,处理器分支预测控制器向指令队列执行装置输入跳转目的地址,指令队列执行装置根据指令执行阶段输出的指令集,在顺序执行地址和跳转目的地址之中选取目标地址,地址记录装置存储目标地址,在接收到上位机的单步请求时,将目标地址发送至上位机,用于进行单步调试。采用本方法能够通过地址记录装置获取目标地址,不需要通过二进制解析获取目标地址,节省了处理程序代码的工作量,降低了单步调试的工作量。

【技术实现步骤摘要】
单步调试方法和调试器
本申请涉及调试器设计
,特别是涉及一种单步调试方法和调试器。
技术介绍
单步是调试器设计的一个重要部分,在调试的过程中,通过单步可以看到整段代码的完整执行过程,有助于程序员调试代码,快速查找问题。对于调试器的设计方法,各个不同的内核在设计调试器的时候有各自不同的方法。目前传统方案是利用软件进行指令解析,然后在上位机发送命令和调试接口通信,将目标地址发送给目标芯片,进而目标芯片接受到命令信息后再进行硬件解析,然后利用断点的原理实现指令级单步。但是,在整个流程中,工作量最大的就是对二进制代码进行指令解析,不仅需要每条指令的指令长度,而且还要解析当前指令执行后的目标地址,最终解析得到用于单步调试的目标地址。因此,传统方式下,使得单步调试出现工作量大的问题。
技术实现思路
基于此,有必要针对上述单步调试的工作量大的问题,提供一种单步调试方法和调试器。一种单步调试方法,指令队列执行装置分别与处理器流水线控制器、处理器分支预测控制器和地址记录装置连接;单步调试方法包括以下步骤:处理器流水线控制器向指令队列执行装置输入顺序执行地址,其中,顺序执行地址为按照顺序执行方向所预取的下一条指令的PC值;处理器分支预测控制器向指令队列执行装置输入跳转目的地址,其中,跳转目的地址为按照分支跳转方向所预测的下一条分支的地址;指令队列执行装置根据指令执行阶段输出的指令集,在顺序执行地址和跳转目的地址之中选取目标地址;地址记录装置存储目标地址,在接收到上位机的单步请求时,将目标地址发送至上位机,用于进行单步调试。在一个实施例中,顺序执行的地址为通过处理器的流水线中指令预取阶段所预取的下一条指令的PC值,其中,处理器的流水线依次包括指令预取阶段、指令译码阶段、指令执行阶段、指令访存阶段和指令写回阶段。在一个实施例中,在处理器分支预测控制器向指令队列执行装置输入跳转目的地址的步骤之前,还包括以下步骤:处理器分支预测控制器根据分支预测策略,预测跳转目的地址。在一个实施例中,分支预测策略包括静态分支预测或动态分支预测。在一个实施例中,指令队列执行装置根据指令执行阶段输出的指令集,在顺序执行地址和跳转目的地址之中选取目标地址的步骤,包括以下步骤:在指令集为跳转指令时,将跳转目的地址作为目标地址;在指令集为非跳转指令时,将顺序执行地址作为目标地址。在一个实施例中,在指令队列执行装置根据指令执行阶段输出的指令集,在顺序执行地址和跳转目的地址之中选取目标地址的步骤之前,还包括以下步骤:在指令集为跳转指令,且分支预测判定为失败时,清除流水线的指令预取队列并恢复流水线;在指令集为跳转指令,且分支预测判定为正确时,跳转至指令队列执行装置根据指令执行阶段输出的指令集,在顺序执行地址和跳转目的地址之中选取目标地址的步骤。在一个实施例中,在在接收到上位机的单步请求时,将目标地址发送至上位机的步骤之前,还包括以下步骤:地址记录装置通过与上位机连接的调试接口接收单步请求。在一个实施例中,地址记录装置包括地址寄存器,地址寄存器用于存储目标地址;地址记录装置存储目标地址的步骤,包括以下步骤:地址记录装置将目标地址存储在地址寄存器。一种调试器,包括处理器流水线控制器、处理器分支预测控制器、指令队列执行装置和地址记录装置;指令队列执行装置分别与处理器流水线控制器、处理器分支预测控制器和地址记录装置连接,地址记录装置与上位机连接;处理器流水线控制器用于预取顺序执行的地址并向指令队列执行装置输入顺序执行地址,其中,顺序执行地址为按照顺序执行方向所预取的下一条指令的PC值;处理器分支预测控制器用于预测跳转目的地址,并向指令队列执行装置输入跳转目的地址,其中,跳转目的地址为按照分支跳转方向所预测的下一条分支的地址;指令队列执行装置用于接收顺序执行地址和跳转目的地址,根据指令执行阶段输出的指令集,在顺序执行地址和跳转目的地址之中选取目标地址;地址记录装置用于存储目标地址,在接收到上位机的单步请求时,将目标地址发送至上位机,用于进行单步调试。在一个实施例中,调试器还包括上位机,上位机与地址记录装置连接;上位机用于输出单步请求。上述单步调试方法和调试器,通过处理器流水线控制器、处理器分支预测控制器、指令队列执行装置和地址记录装置的连接,向上位机发送目标地址,用于进行单步调试,通过地址记录装置获取目标地址,不需要通过二进制解析获取目标地址,节省了处理程序代码的工作量,降低了单步调试的工作量。附图说明图1为一个实施例中环境的结构示意图;图2为一个实施例中单步调试方法的流程图;图3为一个实施例中流水线的时间空间图;图4为一个实施例中根据分支预测策略预测的流程图;图5为一个实施例中目标地址选取的流程图;图6为一个实施例中分支预测判定的流程图;图7为一个实施例中接收单步请求的流程图;图8为一个实施例中调试器的结构示意图;图9为一个实施例中上位机的结构示意图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。在一个实施例中,如图1所示,图1为一个实施例中环境的结构示意图,指令队列执行装置130分别与处理器流水线控制器110、处理器分支预测控制器120和地址记录装置140连接;如图2所示,图2为一个实施例中单步调试方法的流程图,本实施例中提供一种单步调试方法,包括以下步骤:步骤S210:处理器流水线控制器向指令队列执行装置输入顺序执行地址,其中,顺序执行地址为按照顺序执行方向所预取的下一条指令的PC(ProgramCounter,程序计数器)值。在流水线的特性中,上一级流水一直为下一级流水做预取的准备,按照顺序执行方向可以预取下一条指令的PC值。处理器流水线控制器可以根据流水线的特性获取顺序执行地址。步骤S220:处理器分支预测控制器向指令队列执行装置输入跳转目的地址,其中,跳转目的地址为按照分支跳转方向所预测的下一条分支的地址。处理器分支预测控制器用于预测跳转的目的地址,加速分支跳转的执行效率。例如,处理器执行到一条跳转执行指令,则处理器分支预测控制器能够预测该条跳转执行指令。步骤S230:指令队列执行装置根据指令执行阶段输出的指令集,在顺序执行地址和跳转目的地址之中选取目标地址。顺序执行地址和跳转目的地址是通过预取或预测获取的,并不是真实的下一条指令的执行地址,在等到真正获取执行阶段的输出的指令集才可以区别出真实的下一条指令,进而在顺序执行地址和跳转目的地址之中选取目标地址。步骤S240:地址记录装置存储目标地址,在接收到上位机的单步请求时,将目标地址发送至上位机,用于进行单步调试。地址记录装置实时监听来自指令队列执行装置的目标地址,并存储目标地址。地址记录装置还实时监听来自上位机的单步请求,在接收到上位机的单步请求时,将目标地址发送至上位机。目标地址发送至上位机后,可以进行单步调试。地址记录装置还可以通过监听上位机的中断信号,在中断信号包括有单步请求时,将目标地址发送至上位机。上述单步调试方法,通过处理器流水线控制器、处理器分支预测控制器、指令队列执行装置和地址记录装置的连接,向上位机发送目标地址,用于进行单步调试,通过地址记录本文档来自技高网...

【技术保护点】
1.一种单步调试方法,其特征在于,指令队列执行装置分别与处理器流水线控制器、处理器分支预测控制器和地址记录装置连接;单步调试方法包括以下步骤:所述处理器流水线控制器向所述指令队列执行装置输入顺序执行地址,其中,所述顺序执行地址为按照顺序执行方向所预取的下一条指令的PC值;所述处理器分支预测控制器向所述指令队列执行装置输入跳转目的地址,其中,所述跳转目的地址为按照分支跳转方向所预测的下一条分支的地址;所述指令队列执行装置根据指令执行阶段输出的指令集,在所述顺序执行地址和所述跳转目的地址之中选取目标地址;所述地址记录装置存储所述目标地址,在接收到上位机的单步请求时,将所述目标地址发送至上位机,用于进行单步调试。

【技术特征摘要】
1.一种单步调试方法,其特征在于,指令队列执行装置分别与处理器流水线控制器、处理器分支预测控制器和地址记录装置连接;单步调试方法包括以下步骤:所述处理器流水线控制器向所述指令队列执行装置输入顺序执行地址,其中,所述顺序执行地址为按照顺序执行方向所预取的下一条指令的PC值;所述处理器分支预测控制器向所述指令队列执行装置输入跳转目的地址,其中,所述跳转目的地址为按照分支跳转方向所预测的下一条分支的地址;所述指令队列执行装置根据指令执行阶段输出的指令集,在所述顺序执行地址和所述跳转目的地址之中选取目标地址;所述地址记录装置存储所述目标地址,在接收到上位机的单步请求时,将所述目标地址发送至上位机,用于进行单步调试。2.根据权利要求1所述的单步调试方法,其特征在于,所述顺序执行的地址为通过处理器的流水线中指令预取阶段所预取的下一条指令的PC值,其中,所述处理器的流水线依次包括所述指令预取阶段、指令译码阶段、所述指令执行阶段、指令访存阶段和指令写回阶段。3.根据权利要求1所述的单步调试方法,其特征在于,在所述处理器分支预测控制器向所述指令队列执行装置输入跳转目的地址的步骤之前,还包括以下步骤:所述处理器分支预测控制器根据分支预测策略,预测所述跳转目的地址。4.根据权利要求3所述的单步调试方法,其特征在于,所述分支预测策略包括静态分支预测或动态分支预测。5.根据权利要求1所述的单步调试方法,其特征在于,所述指令队列执行装置根据指令执行阶段输出的指令集,在所述顺序执行地址和所述跳转目的地址之中选取目标地址的步骤,包括以下步骤:在所述指令集为跳转指令时,将所述跳转目的地址作为所述目标地址;在所述指令集为非跳转指令时,将所述顺序执行地址作为所述目标地址。6.根据权利要求1所述的单步调试方法,其特征在于,在所述指令队列执行装置根据指令执行阶段输出的指令集,在所述顺序执行地址和所述跳转目的地址之中选取目标地址的步骤之前,还包括...

【专利技术属性】
技术研发人员:刘泽权
申请(专利权)人:珠海市杰理科技股份有限公司
类型:发明
国别省市:广东,44

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

1