一种基于有限状态机实现的多周期非流水线cpu动态调试方法

文档序号:10724762阅读:813来源:国知局
一种基于有限状态机实现的多周期非流水线cpu动态调试方法
【专利摘要】本发明公开了一种基于有限状态机实现的多周期非流水线CPU动态调试方法,该方法在实现多周期非流水线CPU动态调试时,利用配置寄存器A来存放目标地址,利用配置寄存器B来存放需要采样的指令条数;CPU正常工作时,由有限状态机实时判断执行指令对应的运行地址;若运行地址为寄存器A中存放的目标地址,则有限状态机将调试使能信号置为有效,开始采集CPU运行现场数据,并存入调试用数据存储器中;CPU每执行一条指令,都采集一次CPU运行现场数据,并将寄存器B的指令条数减1,直至寄存器B的指令条数为0时,将调试使能信号置为无效;通过实时分析CPU运行现场数据完成CPU动态调试。采用该方法时,调试过程不会中断CPU的运行,也不会对CPU的运行产生任何影响。
【专利说明】
一种基于有限状态机实现的多周期非流水线CPU动态调试方法
技术领域
[0001]本发明涉及工业及教育领域的中央处理器设计及调试技术领域,尤其涉及一种基于有限状态机实现的多周期非流水线(PU动态调试方法。
【背景技术】
[0002]在处理器设计过程中,往往会耗费大量的人力物力来对CPU的正确性进行验证,一旦出现问题,则需要有一可靠的手段来定位问题。
[0003]然而,目前的方案难以对正在运行的CPU进行调试,同时,即使某些方案可以通过引入较为复杂的电路对(PU进行调试,但是对CPU的运行状态及效率都会产生一定的影响。

【发明内容】

[0004]本发明的目的是提供一种基于有限状态机实现的多周期非流水线CPU动态调试方法,调试过程不会中断CPU的运行,也不会对CPU的运行产生任何影响。
[0005]本发明的目的是通过以下技术方案实现的:
[0006]—种基于有限状态机实现的多周期非流水线CPU动态调试方法,包括:
[0007]多周期非流水线CPU实现中,每条指令的处理过程均通过有限状态机来控制;
[0008]在实现多周期非流水线CPU动态调试时,利用配置寄存器A来存放目标地址,利用配置寄存器B来存放需要采样的指令条数;
[0009]在CPU正常工作时,由有限状态机实时判断执行指令对应的运行地址;若运行地址为寄存器A中存放的目标地址,则有限状态机将调试使能信号置为有效,开始采集CPU运行现场数据,并存入调试用数据存储器中;
[0010]CPU每执行一条指令,都采集一次CPU运行现场数据,并将寄存器B的指令条数减I,直至寄存器B的指令条数为O时,将调试使能信号置为无效;通过实时分析CPU运行现场数据完成CPU动态调试。
[0011 ]进一步的,所述CPU运行现场数据包括:
[0012]CPU寄存器文件、程序计数器以及状态寄存器的值。
[0013]进一步的,所述配置寄存器B存放的指令条数与数据采集位宽的乘积不大于调试用数据存储器的容量。
[0014]由上述本发明提供的技术方案可以看出,可在不打断CPU运行状态的前提下,记录(PU在特定地址附近的运行现场,有助于测试CPU或程序的正确性。
【附图说明】
[0015]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
[0016]图1为本发明实施例提供的多周期非流水线CPU实现中每条指令的处理过程示意图;
[0017]图2为本发明实施例提供的一种基于有限状态机实现的多周期非流水线CPU动态调试方法的流程图。
【具体实施方式】
[0018]下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0019]本发明实施例提供一种简单有效的手段来对基于有限状态机实现的多周期非流水线CPU进行动态调试,调试过程不会中断CPU的运行,也不会对CPU的运行产生任何影响。
[0020]所述基于有限状态机实现的多周期非流水线CPU实现中,每条指令的处理过程都可通过有限状态机的控制来实现,如图1所示。
[0021]本发明实施例中,对CPU进行动态调试需要添加一个调试使能控制信号,两个配置寄存器,以及一块调试用数据存储器。调试使能控制信号用于控制动态调试功能是否启用。
[0022]其中的配置寄存器A来存放目标地址,配置寄存器B来存放需要采样的指令条数。
[0023]如图2所示,为CPU动态调试方法的流程图。
[0024]在CPU正常工作时,由有限状态机实时判断执行指令对应的运行地址;若运行地址为寄存器A中存放的目标地址,则有限状态机将调试使能信号置为有效,开始采集CPU运行现场数据,并存入调试用数据存储器中;
[0025]CPU每执行一条指令,都采集一次CPU运行现场数据,并将寄存器B的指令条数减I,直至寄存器B的指令条数为O时,将调试使能信号置为无效;通过实时分析CPU运行现场数据完成CPU动态调试。
[0026]本发明实施例中,所述CPU运行现场数据包括:CPU寄存器文件、程序计数器以及状态寄存器的值。
[0027]本发明实施例中,所述配置寄存器B存放的指令条数与数据采集位宽的乘积不大于调试用数据存储器的容量,否则将导致数据丢失。
[0028]为了便于理解,下面结合一具体示例来进行说明。
[0029]本示例流程如下:
[0030]a、CPU开始工作,处于正常工作模式。
[0031 ] b、向配置寄存器A中写入目标地址,如0x0000_00F0。
[0032]C、向配置寄存器B中写入需要采样的指令条数,如0x0000_0010。
[0033]d、CPU运行到0x0000_00F0地址后,开始将此指令,及此指令之后的15条指令的运行现场保存到调试用数据存储器中。
[0034]e、CPU继续运行程序。
[0035]f、在此后的任意时刻,通过调试接口将从0x0000_00F0开始的16条指令的运行现场读出,进行分析,此过程不会对CPU运行程序产生任何影响。
[0036]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-R0M,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0037]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
【主权项】
1.一种基于有限状态机实现的多周期非流水线CRJ动态调试方法,其特征在于,包括: 多周期非流水线CPU实现中,每条指令的处理过程均通过有限状态机来控制; 在实现多周期非流水线CPU动态调试时,利用配置寄存器A来存放目标地址,利用配置寄存器B来存放需要采样的指令条数; 在CPU正常工作时,由有限状态机实时判断执行指令对应的运行地址;若运行地址为寄存器A中存放的目标地址,则有限状态机将调试使能信号置为有效,开始采集CPU运行现场数据,并存入调试用数据存储器中; CPU每执行一条指令,都采集一次CPU运行现场数据,并将寄存器B的指令条数减I,直至寄存器B的指令条数为O时,将调试使能信号置为无效;通过实时分析CPU运行现场数据完成CPU动态调试。2.根据权利要求1所述的方法,其特征在于,所述CRJ运行现场数据包括: CHJ寄存器文件、程序计数器以及状态寄存器的值。3.根据权利要求1所述的方法,其特征在于,所述配置寄存器B存放的指令条数与数据采集位宽的乘积不大于调试用数据存储器的容量。
【文档编号】G06F11/22GK106095631SQ201610409733
【公开日】2016年11月9日
【申请日】2016年6月3日
【发明人】卢建良
【申请人】中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1