一种单步执行在片调试功能的方法及装置制造方法及图纸

技术编号:2845838 阅读:205 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种单步执行在片调试功能的装置,包括:指令队列电路1、指令译码电路2、指令寄存器电路3;其特征在于,还包括判断电路4、单步执行标志寄存器电路5和调试模式标志寄存器电路6;所述的单步执行标志寄存器电路5用于指示下一条译码进入指令队列的指令是否发生单步调试例外,所述的调试模式标志寄存器电路6用于表示处理器的工作模式,所述的判断电路4用于判断指令队列电路1和指令寄存器电路3中是否存在指令执行步;指令译码电路2还结合单步执行标志、单步使能信号、调试模式标志,决定下一条译码进入指令队列的指令是否发生单步执行调试例外。

【技术实现步骤摘要】

本专利技术涉及微处理器体系结构
以及基于微处理器系统开发的在片调试
,特别涉及微处理器中取指部件、译码部件、指令队列的设计方法,以及微处理器在片调试功能的设计方法。
技术介绍
随着集成电路制造工艺的发展,微处理器集成规模的越来越大,处理器功能也越来越复杂。更为复杂的芯片使得软件调试和系统开发变的越来越困难,一种简单易行的调试方法和调试装置成为一种必然的需求。目前常见的调试方法有很多种,例如,通过专门的仿真器进行调试或通过软件模拟调试等。利用仿真器做调试工作不仅操作较为复杂,而且具有成本高、调试环境复杂、效率低等缺点。而软件模拟调试方法的调试环境复杂,调试工作量大,并且需要调试人员具有很高的程序设计与调试水平。现有调试方法的上述缺点不利于系统开发和软件调试,因此需要采用其他的调试方法。在片调试是另一种常见的调试方法,在调试时不需要目标应用程序的软硬件做任何改变,只需要将一根调试电缆连接到调试主机即可实现调试,它的调试环境简单,调试功能强大,而且不需要目标应用系统做任何修改,完全在真实环境中进行调试,因而调试通过后的软件对目标应用具有很好的适应性。在片调试功能中一个很重要的功能是单步执行功能,即控制在片运行的程序每次执行一条指令,有利于软件开发与系统调试。基于在片调试具有上述优点,本专利技术提供了一种单步执行在片调试功能的方法以及相应的装置。
技术实现思路
本专利技术的目的是克服现有调试方法操作复杂、成本高、效率低、调试工作量大的缺点,提供一种单步执行在片调试功能的装置和方法,实现对处理器的在片调试。为了实现上述目的,本专利技术提供了一种单步执行在片调试功能的装置,包括指令队列电路1、指令译码电路2、指令寄存器电路3;指令寄存器电路3用于存放从取指部件取来的指令,指令译码电路2用于对指令寄存器电路3中所保存的指令进行译码,指令队列电路1用于保存一条指令译码后的指令信息,并控制每一条指令的执行过程;其特征在于,还包括判断电路4、单步执行标志寄存器电路5和调试模式标志寄存器电路6;所述的单步执行标志寄存器电路5用于指示下一条译码进入指令队列的指令是否发生单步调试例外,所述的调试模式标志寄存器电路6用于表示处理器的工作模式,所述的判断电路4用于判断指令队列电路1和指令寄存器电路3中是否存在指令执行步;指令译码电路2还结合单步执行标志寄存器电路5中的单步执行标志、单步使能信号、调试模式标志寄存器电路6中的调试模式标志,决定下一条译码进入指令队列的指令是否发生单步执行调试例外;指令寄存器电路3由取指部件取来指令后,通过指令译码电路2进行译码,译码后将指令放入指令队列电路1中,同时,判断电路4发出停止取指信号,中止新的指令进入指令寄存器电路3,指令队列电路1中的指令在提交时发生单步调试例外,然后在调试模式标志寄存器电路6和单步执行标志寄存器电路5的控制下从单步执行调试例外入口地址开始取指,实现单步执行在片调试功能,单步执行调试例外程序完成后返回到原指令,执行该指令中的操作,然后取下一条指令,继续执行。上述技术方案中,所述的处理器的工作模式包括调试模式和非调试模式。上述技术方案中,所述的指令执行步是指一条普通指令或者转移指令及其延迟槽指令,一个指令执行步在单步执行过程中作为一个原子操作过程而不被分割。上述技术方案中,所述的单步执行标志寄存器电路5使每条指令的执行分为两次,一次不真正执行,发生单步调试例外,另一次真正执行指令。一种单步执行在片调试功能的方法,包括1)、检查安装有本专利技术装置的微处理器的工作模式和单步使能信号,若当前处理器处于非调试模式,且单步使能信号位于高位,则执行步骤2),否则,执行步骤9);2)、由于当前指令寄存器和指令队列存在一个指令执行步,停止后续指令的取指操作;3)、判断单步执行标志值是否为1,如果为1,执行步骤4),否则为0,执行步骤7);4)、对指令寄存器中的指令进行译码,译码之后进入到指令队列,该指令在提交时发生单步调试例外;5)、将调试模式标志值设置为1,将单步执行标志值设置为0;6)、从单步调试例外处理程序的入口地址处取指,转到步骤1);7)、执行指令,并将单步执行标志值设置为1;8)、取下一条指令,转到步骤1);9)、执行指令,并判断当前指令是否为调试例外返回指令,若是,执行步骤10),否则,执行步骤11);10)、将调试模式标志值清0,重新取指上次发生单步执行调试例外的指令,并执行步骤1);11)、取下一条指令,转到步骤1)。本专利技术的优点在于1、本专利技术的单步执行在片调试功能的装置设计简洁,通过单步执行标志的设计,使得每个指令分两步执行,一次发生单步执行调试例外,一次正常执行指令,方便地实现了单步调试功能。2、本专利技术的单步执行在片调试功能的装置通过判断指令寄存器和指令读列中存在一个指令执行步而停止后续取指操作,使得在单步调试时,指令寄存器和指令队列中始终只有一个指令执行步,避免了多条指令间复杂的相对控制,大大简化了控制过程,并且减少了电路资源的消耗。附图说明图1为本专利技术的单步执行在片调试功能的方法的流程图;图2为本专利技术的单步执行在片调试功能的装置的结构图。具体实施例方式下面结合附图和具体实施方式就本专利技术所述方法及相关装置进行详细说明。要实现在片调试的功能需要在处理器中增加一小部分专门用于调试的逻辑电路,使得处理器本身具有支持调试的功能。为了在微处理器实现单步执行在片调试功能,本专利技术提供了一种单步执行在片调试装置,如图2所示,该装置包括指令队列电路1、指令译码电路2、指令寄存器电路3、判断电路4、单步执行标志寄存器电路5和调试模式标志寄存器电路6。指令队列电路1用于保存一条指令译码后的指令信息,控制每一条指令的执行过程,并给出指令队列中是否存在指令执行步的判断信息,并将该信息输入到判断电路4中。所述的指令执行步是指一条普通指令或者转移指令及其延迟槽指令(即两条指令,这是一种特殊情况),一个指令执行步在单步执行过程中作为一个原子操作过程而不被进行分割。指令队列电路1在硬件实现上与现有微处理器中的相关部件相同,本实施例对其不再做具体描述。指令译码电路2用于对指令寄存器电路3中所保存的指令进行译码,并结合单步执行标志寄存器电路5中的单步执行标志、其他控制部件发出的单步使能信号、调试模式标志寄存器电路6中的调试模式标志,对当前正在译码的指令进行控制,决定该指令是否将会发生单步执行调试例外。在程序正常执行过程中,如果发生了一些异常事件,如发生外部中断、加法运算产生溢出等,则需要处理器执行一段程序对这些异常事件进行处理,这些异常事件就称为例外。异常事件的处理程序称为例外处理程序。单步执行调试例外表示需要单步执行这样一个异常事件,通过发生单步调试例外并执行单步调试例外处理程序就可以实现单步调试的功能。指令译码电路2在硬件实现上与现有处理器中相应的指令译码电路相同,在本专利技术中未做改进,在本实施例中不再详细描述。指令寄存器电路3用于存放从取指部件取来的指令,指令译码电路2译码对指令寄存器电路3中的指令进行译码。指令寄存器电路3在硬件实现上与现有的指令寄存器没有区别,在本实施例中不再详细描述。判断电路4用于判断指令队列电路1和指令寄存器电路3中是否存在一个指令执行步,若存在指令执行步,则停止后续的本文档来自技高网...

【技术保护点】
一种单步执行在片调试功能的装置,包括:指令队列电路(1)、指令译码电路(2)、指令寄存器电路(3);指令寄存器电路(3)用于存放从取指部件取来的指令,指令译码电路(2)用于对指令寄存器电路(3)中所保存的指令进行译码,指令队列电路(1)用于保存一条指令译码后的指令信息,并控制每一条指令的执行过程;其特征在于,还包括判断电路(4)、单步执行标志寄存器电路(5)和调试模式标志寄存器电路(6);所述的单步执行标志寄存器电路(5)用于指示下一条译码进入指令队列的指令是否发生单步调试例外,所述的调试模式标志寄存器电路(6)用于表示处理器的工作模式,所述的判断电路(4)用于判断指令队列电路(1)和指令寄存器电路(3)中是否存在指令执行步;指令译码电路(2)还结合单步执行标志寄存器电路(5)中的单步执行标志、单步使能信号、调试模式标志寄存器电路(6)中的调试模式标志,决定下一条译码进入指令队列的指令是否发生单步执行调试例外;指令寄存器电路(3)由取指部件取来指令后,通过指令译码电路(2)进行译码,译码后将指令放入指令队列电路(1)中,同时,判断电路(4)发出停止取指信号,中止新的指令进入指令寄存器电路(3),指令队列电路(1)中的指令在提交时发生单步调试例外,然后在调试模式标志寄存器电路(6)和单步执行标志寄存器电路(5)的控制下从单步执行调试例外入口地址开始取指,实现单步执行在片调试功能,单步执行调试例外程序完成后返回到原指令,执行该指令中的操作,然后取下一条指令,继续执行。...

【技术特征摘要】
1.一种单步执行在片调试功能的装置,包括指令队列电路(1)、指令译码电路(2)、指令寄存器电路(3);指令寄存器电路(3)用于存放从取指部件取来的指令,指令译码电路(2)用于对指令寄存器电路(3)中所保存的指令进行译码,指令队列电路(1)用于保存一条指令译码后的指令信息,并控制每一条指令的执行过程;其特征在于,还包括判断电路(4)、单步执行标志寄存器电路(5)和调试模式标志寄存器电路(6);所述的单步执行标志寄存器电路(5)用于指示下一条译码进入指令队列的指令是否发生单步调试例外,所述的调试模式标志寄存器电路(6)用于表示处理器的工作模式,所述的判断电路(4)用于判断指令队列电路(1)和指令寄存器电路(3)中是否存在指令执行步;指令译码电路(2)还结合单步执行标志寄存器电路(5)中的单步执行标志、单步使能信号、调试模式标志寄存器电路(6)中的调试模式标志,决定下一条译码进入指令队列的指令是否发生单步执行调试例外;指令寄存器电路(3)由取指部件取来指令后,通过指令译码电路(2)进行译码,译码后将指令放入指令队列电路(1)中,同时,判断电路(4)发出停止取指信号,中止新的指令进入指令寄存器电路(3),指令队列电路(1)中的指令在提交时发生单步调试例外,然后在调试模式标志寄存器电路(6)和单步执行标志寄存器电路(5)的控制下从单步执行调试例外入口地址开始取指,实现单步执行在片调试功能,单步执行调试例外程序完成后返回到原指令,执行该指令中的操作,然后取下一条指令,继续执行。2.根据权利要求1所述的...

【专利技术属性】
技术研发人员:黄海林范东睿许彤唐志敏
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

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

1