记录处理器操作的方法及系统的制作方法

文档序号:9921946阅读:486来源:国知局
记录处理器操作的方法及系统的制作方法
【技术领域】
[0001]本发明涉及CPU领域,具体而言,涉及一种记录处理器操作的方法及系统。
【背景技术】
[0002]在芯片的测试和生产前后,总会有各种各样的问题,比如芯片因为一些故障而发生重启,芯片上的CPU是芯片的大脑,它是处理芯片事宜的关键部件,所以要检测出芯片发生了何种故障,需要通过时刻记录CPU发生过的事情,例如,记录CPU曾经执行过哪些指令,从而分析出CPU发生故障(例如挂死)的原因。
[0003]随着芯片的设计越来越复杂,芯片内部会发生的问题的概率性也越来越多,在现有技术中,获取芯片内部CPU操作的方案较简单,导致CPU操作记录不完整。
[0004]针对现有技术中的记录CPU的操作的方案会导致CPU操作记录不完整的技术问题。目前尚未提出有效的解决方案。

【发明内容】

[0005]本发明实施例提供了一种记录处理器操作的方法及系统,以至少解决现有技术中的记录CPU的操作的方案会导致CPU操作记录不完整的技术问题。
[0006]根据本发明实施例的一个方面,提供了一种记录处理器操作的方法,包括:检测模块检测处理器的运行状态,其中,检测模块挂于处理器与外部设备的通讯总线上;在检测到处理器的运行状态为执行操作指令时,检测模块通过通讯总线获取操作指令的属性信息,其中,检测模块的时钟频率与处理器的时钟频率相同;检测模块将操作指令的属性信息存储至本地。
[0007]根据本发明实施例的另一方面,还提供了一种记录处理器操作的系统,包括:处理器;检测模块,与处理器通过通讯总线连接,用于通过通讯总线检测处理器的运行状态,其中,检测模块挂于处理器与外部设备的通讯总线上;在检测到处理器执行操作指令时,检测模块用于通过通讯总线获取操作指令的属性信息,其中,检测模块的时钟频率与处理器的时钟频率相同;检测模块还用于将操作指令的属性信息存储至本地。
[0008]在本发明实施例中,采用检测模块检测处理器的运行状态,其中,检测模块挂于处理器与外部设备的通讯总线上;在检测到处理器的运行状态为执行操作指令时,检测模块通过通讯总线获取操作指令的属性信息,其中,检测模块的时钟频率与处理器的时钟频率相同;检测模块将操作指令的属性信息存储至本地,解决了现有技术中的记录CHJ的操作的方案会导致CPU操作记录不完整的技术问题。
【附图说明】
[0009]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0010]图1是根据本发明实施例的一种记录处理器操作的方法的流程图;
[0011]图2是根据本发明实施例的一种可选的记录处理器操作的方法的示意图;
[0012]图3是根据本发明实施例的一种可选的记录处理器操作的方法的示意图;以及
[0013]图4是根据本发明实施例的一种记录处理器操作的系统的示意图。
【具体实施方式】
[0014]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0015]需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0016]实施例一
[0017]根据本发明实施例,提供了一种记录处理器操作的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0018]图1是根据本发明实施例的一种记录处理器操作的方法的流程图,如图1所示,该方法包括如下步骤:
[0019]步骤S12,检测模块检测处理器的运行状态,其中,检测模块挂于处理器与外部设备的通讯总线上。
[0020]具体地,在本方案中,可以通过一个检测模块CPU_DBG检测处理器CPU的运行状态,需要说明的是,如图2所示,CPILDBG模块可以挂在CPU与外部设备之间的通讯总线上,在芯片中,CPU的所有操作,都需要对外发出请求来读取数据,或者写数据,无论CPU读数据或者是写数据,CPU直接访问的接口(例如总线接口)就是记录CPU行为的必经之路。因此在本方案中,当CPU读取或执行指令时,挂于总线上的CPU_DBG模块可以完整记录CPU的所有操作。
[0021]可选地,结合图2,与CPU连接的外部设备可以包括:北桥North Bridge,内存SRAM、DRAM,外围设备Peripheral,直接存储芯片DMA等。
[0022]步骤S14,在检测到处理器的运行状态为执行操作指令时,检测模块通过通讯总线获取操作指令的属性信息,其中,检测模块的时钟频率与处理器的时钟频率相同。
[0023]具体地,在本方案中,检测模块CPU_DBG在检测到CPU执行操作指令时,可以通讯总线来获取到操作指令的属性信息,操作指令的属性信息可以为操作指令的存放地址,数据类型、需要记录的BUS总线类型等。需要说明的是,检测模块CPILDBG也可以获取到CPU对外部设备的请求数据。
[0024]还需要说明的是,由于检测模块CPU_DBG的时钟频率和CPU的时钟频率相同,因此,检测模块CPU_DBG不会丢失任何CPU发出的数据,可以保证CPU数据的完整性。
[0025]步骤S16,检测模块将操作指令的属性信息存储至本地。
[0026]具体地,在本方案中,检测模块CPU_DBG可以将操作指令的属性信息存储到本地,由于检测模块CPU_DBG是独立于CPU的一个模块,因此,该模块不会受到芯片的Cold Reset控制,及时芯片在进行冷启动后,检测模块CPU_DBG保存的数据也不会丢失。
[0027]本实施例通过检测模块检测处理器的运行状态,其中,检测模块挂于处理器与外部设备的通讯总线上;在检测到处理器的运行状态为执行操作指令时,检测模块通过通讯总线获取操作指令的属性信息,其中,检测模块的时钟频率与处理器的时钟频率相同;检测模块将操作指令的属性信息存储至本地,解决了在相关技术中的记录CPU的操作的方案导致CPU操作记录不完整的问题。
[0028]可选地,在步骤S16检测模块将操作指令的属性信息存储至本地之后,本实施例提供的方法还可以包括:
[0029]步骤S18,在处理器发生故障重启后,处理器从检测模块的本地信息中获取操作指令的属性信息。
[0030]具体地,在本方案中,在处理器发生故障重启后,处理器可以从检测模块的本地信息中主动获取操作指令的属性信息,可选地,检测模块CPU_DBG可以随时检测CPU的运行状态,在CPU发生故障重启后,检测模块可以将操作指令的属性信息发送至处理器。需要说明的是,CPU可以随时从检测模块CPU_DBG中获取操作指令信息,以此分析出CPU发生故障的原因。
[0031]这里需要说明的是,本发明可以实时记录CPU的所有外发行为,并保存。如果发生CPU挂死,或者系统挂死,那么CPILDBG模块存储的数据为CPU的debug和现场察看留下数据。CPU可以通过查看数据来分析出上一次死机的原因。由于CPU的操作的有两种数据类型,一种是CPU操作指令,另外一种是CPU数据。CPU数据对于debug CPU来说意义不是那么重要,因为数据随时可能变化,并且它不影响CPU的行为,而CPU的指令是影响CTU执行的很重要原因,所以本方案采用检测模块CPU_DBG来获取CPU所执行的指令。
[0032]还需要说明的是,本发明对CPILDBG记录的深度和记录的数据类型不做限定,记录的数据可以为:Address,R/W,Burst Length,Read Data1Write Data等。
[0033]可选地,检测模块包括:逻辑控制模块、寄存模块以及数据存储模块,其中,步骤S16,检测模块将操作指令的属性信息进行存储至本地的步骤可以包括:
[0034]步骤S161,逻辑控制模块判断操作指令的类型。
[0035]在本方案中,如图3所示,在CPU_DBG模块中可以集成有逻辑控制模块ConrtolLogic,Conrtol Logic可以判断CPU执行的操作指令的类型。
[0036]步骤S162,逻辑控制模块根据操作指令的类型将操作指令的属性信息发送至检测模块中的寄存模块。
[0037]具体地,结合图3,在CPU_DBG模块中可以集成有寄存模块DFF,ConrtolLogic模块可以根据操作指令的类型将操作指令的属性信息发送至不同的寄存模块DFF。
[0038]需要说明的是,DFF模块可以根据CLOCK发送的时钟信号来记录CPU所执行的每一拍操作指令数据。
[0039]步骤S163,寄存模块将操作指令的属性信息转发至数据存储模块中的数组。
[0040]具体地,结合图3,在CPU_DBG模块中可以
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1