一种处理器跟踪系统、方法、存储介质及终端与流程

    专利2022-07-08  111


    本发明涉及处理器调试技术领域,尤其涉及一种处理器跟踪系统、方法、存储介质及终端。



    背景技术:

    risc-v是一个基于精简指令集(risc)原则的开源指令集架构(isa)。与大多数指令集相比,risc-v指令集可以自由地用于任何目的,允许任何人设计、制造和销售risc-v芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统系统)。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。risc-v指令集的设计考虑了小型、快速、低功耗的现实情况来实做,但并没有对特定的微架构做过度的设计。risc-v指令集架构的处理器,相比市面上其他比较成熟的架构如x86、arm在成本、功耗方面有明显的优势,且由于开源开放的特性,非常适合我国用来设计自主可控的处理器。

    处理器的调试、跟踪方案,是程序调试、问题定位必不可少的部分。随着嵌入式系统处理器性能的逐步提高,运算速度越来越快、处理的数据量越来越大,传统的调试方法如rom驻留监控程序以及串口调试工具已经不能满足要求。

    目前主流的处理器(包括arm,risc-v,mips等)都采用基于jtag的内核调试通道,它具有典型的ice功能,基于包含有调试模块的系统芯片通过jtag端口与主计算机连接,通过配置支持正常的断点、观察点以及处理器和系统状态访问,完成调试。为了对代码进行实时跟踪,如arm还提供了嵌入式系统跟踪单元(embeddedtracemacrocell),对应用程序的调试将更加全面。与断点、单步等传统调试方法相比,跟踪(trace)功能可以记录程序一整段代码的运行轨迹,大大增强了处理器调试的问题定位能力。risc-v指令集架构目前已经定义了程序跟踪的指令/数据包标准(硬件通过对程序信息按标准打包发送,传到上位机以后按标准解包显示程序运行轨迹),但整体方案中未对跟踪指令/数据包上位机的数据通路进行定义,目前risc-v处理器急需一种通用、易实现的完整跟踪方案。

    专利号为cn10795350a的专利文献公开了一种基于以太网接口的跟踪调试方法及系统,该专利是目前与本发明最为相近的方案。该专利中上位机和处理器通过以太网接口进行通讯,即上位机通过以太网通知处理器进行程序/数据跟踪,跟踪打包数据(tracedata)再通过以太网接口传回上位机。

    但是方案依赖于以太网通讯和传输数据,应用范围有较大局限性,因为只有小部分芯片有以太网接口,若芯片无以太网接口,以上方案即无法实现。

    因此,有必要提供一种新型的处理器跟踪系统、方法、存储介质及终端以解决现有技术中存在的上述问题。



    技术实现要素:

    本发明的目的在于提供一种处理器跟踪系统、方法、存储介质及终端,通过芯片上常规的jtag接口实现处理器数据的缓存和跟踪,提高了对处理器的调试效率。

    为实现上述目的,本发明的所述一种处理器跟踪系统,包括:

    jtag接口模块,所述jtag接口模块用于与控制模块通信连接并解析jtag指令;

    处理器模块;

    跟踪逻辑模块,所述跟踪逻辑模块内嵌于所述处理器模块内部,且与所述处理器模块通信连接;

    跟踪缓存模块,所述跟踪缓存模块与所述跟踪逻辑模块通信连接;

    其中,所述jtag接口模块通过系统总线分别与所述跟踪逻辑模块、所述跟踪缓存模块通信连接,所述跟踪逻辑模块用于将所述处理器模块内的标准跟踪数据打包成跟踪数据包并输出到所述跟踪缓存模块,所述跟踪缓存模块用于缓存所述跟踪数据包。

    本发明的有益效果在于:本发明采用每颗芯片都具有的jtag接口模块来实现完整的risc-v处理器跟踪,使得整个跟踪处理方案的通用性更强,同时采用芯片的片上缓存实现处理器跟踪数据的缓存与数据传输,无需芯片内额外高速接口和接口接受设备,在实现处理器数据跟踪的同时,有效降低了整个跟踪方案的成本。

    进一步地,所述跟踪逻辑模块通过跟踪规范将所述处理器模块内的跟踪数据处理成所述标准跟踪数据,所述跟踪规范通过所述处理器模块定义。其有益效果在于:通过跟踪规范将处理器模块内的跟踪数据处理成标准跟踪数据,从而使得整个系统内的跟踪数据具有统一的标准规范,从而提高后续的数据跟踪效率,而且跟踪规范能够通过处理器模块进行定义,能够满足不同数据格式的使用需求。

    进一步地,所述跟踪缓存模块还通信连接有判断单元和请求单元,所述判断单元用于判断所述跟踪缓存模块是否结束数据缓存,所述请求单元的输出端与所述跟踪逻辑模块通信连接,且所述请求单元用于发出停止请求。其有益效果在于:通过判断单元对跟踪缓存模块内的数据缓存进行状态判断,以确定是否处于满状态,而请求单元再确定跟踪缓存模块处于满状态时,及时向跟踪逻辑模块发出处理器停止请求,使得处理器模块暂停工作,从而使得整个数据跟踪缓存过程稳定进行。

    进一步地,所述跟踪缓存模块包括环形缓存结构,当所述控制模块主动关闭跟踪使能或者所述环形缓存结构遇到断点事件时,所述判断单元判断所述跟踪缓存模块结束数据缓存,所述请求单元向处理器模块发出停止请求。其有益效果在于:通过环形缓存结构能够同时对大量的跟踪数据进行缓存,不仅可以直接缓存最近的一段跟踪数据,也可以当环形缓存结构开始新的一圈的缓存时停止缓存,从而实现对每一圈跟踪数据的缓存,以实现对多段跟踪数据的缓存处理。

    进一步地,所述跟踪缓存模块还包括存储器缓存结构,当所述存储器缓存结构内部缓存数据量超过设定阈值时,所述判断单元判断所述跟踪缓存模块结束数据缓存,所述请求单元向所述处理器模块发出停止请求。其有益效果在于:通过具有固定存储空间的存储器缓存结构对跟踪数据进行缓存,使得每一次缓存都能对固定容量的跟踪数据进行缓存处理,满足不同的处理器数据跟踪需求。

    进一步地,所述控制模块还包括切换单元,所述切换单元通过所述系统总线与所述跟踪缓存模块通信连接,以切换并选择环形缓存结构和存储器缓存结构中的任意一个对所述跟踪数据包进行缓存处理。其有益效果在于:通过切换单元实现环形缓存结构和存储器缓存结构的自由切换,以实现不同跟踪方案的选择需求,选择不同的缓存模式,满足不同的使用需求。

    进一步地,所述jtag接口模块还包括翻译单元,所述翻译单元用于将来自所述控制模块的指令翻译成所述系统总线上的寄存器访问操作指令或者存储访问操作指令。其有益效果在于:通过翻译单元对控制模块的指令进行翻译,以便于通过系统总线实现控制模块和整个系统内部的通信。

    进一步地,所述控制模块包括上位机和嵌入式系统中的至少一种。

    本发明提供了一种处理器跟踪方法,包括如下步骤:

    s1、控制模块产生配置指令,通过jtag接口模块将所述配置指令转换成系统总线上的寄存器访问,对跟踪逻辑模块进行配置;

    s2、所述控制模块产生启动指令,并通过jtag接口模块和系统总线启动跟踪逻辑模块的跟踪功能;

    s3、所述跟踪逻辑模块将跟踪数据打包成跟踪数据包并输出到跟踪缓存模块;

    s4、所述跟踪缓存模块对所述跟踪数据包进行跟踪缓存处理直至停止;

    s5、所述控制模块通过所述系统总线读取所述跟踪缓存模块中的所有数据并显示跟踪结果。

    本方法的有益效果在于:整个跟踪方案采用常用的jtag接口实现处理器跟踪,通用性更强,同时采用jtag接口和片上缓存来实现处理器跟踪数据的缓存和传输,无需处理器内额外高速接口和高速接口接受设备,大幅度降低了处理器跟踪方案的使用成本。

    进一步地,所述步骤s4的过程包括:

    s41、所述控制模块通过切换单元产生切换指令,并通过系统总线切换并选择所述跟踪缓存模块内的环形缓存结构和存储器缓存结构中的任意一个缓存结构进行缓存;

    s42、所述跟踪缓存模块根据选择的所述缓存结构对跟踪数据包进行缓存;

    s43、判断单元判断所述跟踪缓存模块中的缓存结构结束数据缓存后,通过请求单元产生停止请求并将所述停止请求并传输至处理器模块,停止所述处理器模块。其有益效果在于:根据使用需求,切换单元产生切换指令以选择环形缓存结构或存储器缓存结构作为缓存结构对跟踪数据进行缓存,从而使得跟踪缓存模块实现对跟踪数据的跟踪缓存。

    进一步地,当所述切换单元产生所述切换指令选择所述环形缓存结构时,所述跟踪缓存模块通过所述环形缓存结构对跟踪数据包进行缓存,当所述控制模块主动关闭跟踪使能或者所述环形缓存结构遇到断点事件时,所述判断单元判断所述环形缓存结构结束数据缓存,所述请求单元产生停止请求并将所述停止请求并传输至所述处理器模块,停止所述处理器模块。其有益效果在于:通过环形缓存结构对跟踪数据进行缓存的时候,根据环形缓存结构是否开始新的一圈缓存时,判断环形缓存结构是否处于满状态,在环形缓存结构处于满状态的时候请求单元产生停止请求,使得处理器暂时停止工作,在控制模块读取完缓存数据并显示缓存结果之后完成一个周期的跟踪过程,再次开始下一个周期的缓存跟踪工作。

    进一步地,当所述切换单元产生所述切换指令选择所述存储器缓存结构时,所述跟踪缓存模块通过存储器缓存结构对所述跟踪数据包进行缓存,当所述存储器缓存结构内部的数据缓存达到设定阈值时,所述判断单元判断所述存储器缓存结构结束数据缓存,所述请求单元产生停止请求并将所述停止请求传输至所述处理器模块,停止所述处理器模块。其有益效果在于:当选择存储器缓存结构的时候,由于存储器缓存结构具有固定存储空间,在存储器缓存结构内的数据缓存达到设定阈值的时候,则判断存储器缓存结构处于满状态,请求单元产生停止请求使得处理器暂时停止工作,在控制模块读取完缓存数据并显示缓存结果之后,再次开始下一个周期的缓存跟踪工作。

    进一步地,所述配置指令根据标准规范确定,所述标准规范为开源指令集架构的规范。

    进一步地,所述跟踪方法还包括在所述控制模块读取完跟踪缓存模块中所有的缓存数据之后,所述控制模块产生控制指令以重启所述处理器模块传输新的跟踪数据至跟踪逻辑模块。

    本发明还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的方法。

    本发明进一步提供了一种终端,包括处理器及存储器;

    所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行上述的方法。

    附图说明

    图1为本发明实施例的跟踪系统的组成结构示意图;

    图2为本发明实施例的跟踪方法的整体流程示意图;

    图3为本发明实施例的跟踪方法的步骤s4的流程示意图。

    具体实施方式

    为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本文中使用的“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。

    针对现有技术存在的问题,本发明的实施例提供了一种处理器跟踪系统,如图1所示,包括:

    jtag接口模块1,所述jtag接口模块1用于与控制模块6通信连接并解析jtag指令;

    处理器模块2;

    跟踪逻辑模块3,所述跟踪逻辑模块3内嵌于所述处理器模块2内部,且与所述处理器模块2通信连接;

    跟踪缓存模块4,所述跟踪缓存模块4与所述跟踪逻辑模块3通信连接;

    其中,所述jtag接口模块1通过系统总线5分别与所述跟踪逻辑模块3、所述跟踪缓存模块4通信连接,所述跟踪逻辑模块3用于将所述处理器模块2内的标准跟踪数据打包成跟踪数据包并输出到所述跟踪缓存模块4,所述跟踪缓存模块4用于缓存所述跟踪数据包,所述jtag接口模块1还包括翻译单元11,所述翻译单元11用于将来自所述控制模块6的指令翻译成所述系统总线5上的寄存器访问操作指令或者存储访问操作指令。

    其中,jtag(jointtestactiongroup,联合测试工作组)是一种国际标准测试协议(ieee1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持jtag协议,如dsp、fpga器件等,标准的jtag接口是4线:tms、tck、tdi、tdo,分别为模式选择、时钟、数据输入和数据输出线。

    在上述跟踪系统中,采用每颗芯片中都具有的jtag接口模块1作为接口实现处理器跟踪,在保证跟踪方案正常进行的同时,大幅度提高了整个系统的通用性,不需要单独外接别的特殊接口,对使用条件的限制大大降低。

    在使用时,jtag接口模块1负责解析来自控制模块6的jtag指令,并通过翻译单元11将jtag指令翻译成芯片内apb总线上的寄存器访问操作指令或者存储访问操作指令,之后控制模块6的指令在被翻译成寄存器访问操作指令或者存储访问操作指令之后,通过系统总线5传输到跟踪缓存模块4和跟踪逻辑模块3,在整个系统配置完成之后,控制模块6产生启动指令,整个系统开始工作,在处理器模块2内部的标准跟踪数据通过跟踪逻辑模块3打包成跟踪数据包并传输到跟踪缓存模块4内部进行跟踪缓存,在跟踪缓存模块4内部对跟踪数据进行缓存,在控制模块6判断跟踪缓存模块4内部缓存结束之后,控制模块6通过jtag接口模块1和系统总线5读取跟踪缓存模块4内部的数据包并显示出最终的跟踪结果,从而完成对处理器数据的跟踪过程。

    在一些实施例中,所述跟踪逻辑模块3通过跟踪规范将所述处理器模块2内的跟踪数据处理成所述标准跟踪数据,所述跟踪规范通过所述处理器模块2定义,由于跟踪数据通过跟踪规范处理成标准跟踪数据,使得整个处理器模块2内部的跟踪数据具有统一的规范标准,在后续进行数据跟踪处理和缓存的时候效率更高,有效减少问题的出现,而跟踪规范是根据处理器模块2来决定的,根据不同的处理器模块2选择不同的跟踪规范,以满足不同的使用需求。

    在一些实施例中,所述跟踪缓存模块4还通信连接有判断单元41和请求单元42,所述判断单元41用于判断所述跟踪缓存模块4内的数据缓存是否处于满状态,所述请求单元42用于发出处理器停止请求,且所述请求单元42的输出端与所述跟踪逻辑模块3通信连接。

    为了确定跟踪缓存模块4内部的跟踪数据是否缓存停止或者结束,通过判断单元41对缓存跟踪模块4内部的数据缓存进行判断,确定跟踪缓存模块4内部的缓存是否结束数据缓存,在跟踪缓存模块4内的数据缓存结束时候,通过请求单元42发出停止请求,使得处理器模块2暂时停止工作,跟踪逻辑模块3停止将跟踪数据包输出至跟踪缓存模块4内部。

    在一些实施例中,所述跟踪缓存模块4包括环形缓存结构43,当所述控制模块1主动关闭跟踪使能或者所述环形缓存结构43遇到断点事件时,所述判断单元41判断所述跟踪缓存模块结束数据缓存,所述请求单元42向处理器模块2发出停止请求。

    在一些实施例中,所述跟踪缓存模块4还包括存储器缓存结构44,当所述存储器缓存结构44内部缓存数据量超过设定阈值时,所述判断单元41判断所述跟踪缓存模块4结束数据缓存,所述请求单元42向所述处理器模块2发出停止请求。

    通过环形缓存结构43和存储器缓存结构44这两种不同类型的缓存方式对跟踪数据包进行缓存处理,在具体使用时选择不同的缓存结构,以满足不同的缓存要求,同时判断单元41分别对环形缓存结构43、存储器缓存结构44进行判断,在判断单元41判断环形缓存结构43、存储器缓存结构44处于满状态的时候,请求单元42发出停止请求至跟踪逻辑模块3,使得处理器模块2停止工作,以停止输出跟踪数据。

    需要说明的是,环形缓存结构43和存储器缓存结构44采用两种不同的缓存结构,在判断是否结束缓存的标准也不一样,根据实际需要选择的缓存数据的类型以选择环形缓存结构43或存储器缓存结构44。

    进一步的,当跟踪缓存模块4选择环形缓存结构43进行跟踪数据缓存的时候,由于是环形缓存的形式,既可以循环存储最近一段的跟踪数据,也可以当当所述控制模块2主动关闭跟踪使能或者所述环形缓存结构43遇到断点事件时,判断环形缓存结构43处于处于结束数据缓存的状态,此时请求单元42发出停止请求至跟踪逻辑模块3,使得处理器模块2停止工作,以停止输出跟踪数据,同时控制模块6通过jtag模块和系统总线5读取跟踪缓存模块4内部的缓存数据以获得最终跟踪结果。

    更进一步的,当跟踪缓存模块4选择存储器缓存结构44进行跟踪数据环的时候,由于存储器缓存结构44是容量固定形式,即每次只能缓存一定量的跟踪数据,而当存储器缓存结构44内的缓存数据超过所述设定阈值的时候,则判断单元41判断存储器缓存结构44结束数据缓存,请求单元42发出停止请求至跟踪逻辑模块3,使得处理器模块2停止工作,以停止输出跟踪数据,同时控制模块6通过jtag模块和系统总线5读取跟踪缓存模块4内部的缓存数据以获得最终跟踪结果。

    在一些实施例中,所述控制模块6还包括切换单元61,所述切换单元61通过所述系统总线5与所述跟踪缓存模块4通信连接,以切换并选择环形缓存结构43和存储器缓存结构44中的任意一个对所述跟踪数据包进行缓存处理。

    在一些实施例中,所述控制模块6包括上位机和嵌入式系统中的至少一种。

    本发明还提供了一种处理器跟踪方法,如图2所示,包括如下步骤:

    s1、控制模块产生配置指令,通过jtag接口模块将所述配置指令转换成系统总线上的寄存器访问,对跟踪逻辑模块进行配置。

    需要说明的是,由于不同的处理器核芯片的配置参数不同,在确定需要进行数据跟踪的处理器和芯片之后,控制模块6根据risc-v的标准规范对跟踪逻辑模块3进行配置,使得跟踪逻辑模块3满足使用需求。

    s2、所述控制模块产生启动指令,并通过jtag接口模块和系统总线启动跟踪逻辑模块的跟踪功能。

    在对整个跟踪逻辑模块3完成配置之后,控制模块6产生控制指令并通过jtag接口模块1和系统总线5将控制指令传输至跟踪逻辑模块3从而启动跟踪功能。

    s3、所述跟踪逻辑模块将跟踪数据打包成跟踪数据包并输出到跟踪缓存模块。

    需要说明的是,跟踪逻辑模块3将跟踪数据打包成跟踪数据包传输到跟踪缓存模块4内部,以进行跟踪数据缓存,被打包的跟踪数据一般采用固定标准规范的跟踪数据,即会对跟踪数据进行标准规范,从而得到标准跟踪数据,以确保从处理器模块2中输出的跟踪数据具有统一的规范,提高数据传输效率。

    s4、所述跟踪缓存模块对所述跟踪数据包进行跟踪缓存处理直至停止。

    在一些实施例中,如图3所示,所述步骤s3的过程包括:

    s41、所述控制模块通过切换单元产生切换指令,并通过系统总线切换并选择所述跟踪缓存模块内的环形缓存结构和存储器缓存结构中的任意一个缓存结构进行缓存;

    s42、所述跟踪缓存模块根据选择的所述缓存结构对跟踪数据包进行缓存;

    s43、判断单元判断所述跟踪缓存模块中的缓存结构结束数据缓存后,通过请求单元产生停止请求并将所述停止请求并传输至处理器模块,停止所述处理器模块。

    进一步的,当切换单元61选择环形缓存结构43作为缓存结构时,由于采用环形缓存的形式,使得环形缓存结构43在对跟踪数据进行缓存的时候,既可以循环存储一段时间的跟踪数据,也可以当所述控制模块2主动关闭跟踪使能或者所述环形缓存结构43遇到断点事件时,比如环形缓存结构43开始缓存新的一圈的跟踪数据时,确定环形缓存结构43内部需要结束数据缓存,此时请求单元42发出停止请求,通过跟踪逻辑模块3使得处理器模块2暂时停止工作。

    更进一步的,当切换单元61选择存储器缓存结构44作为缓存结构时,由于存储器缓存结构44的存储容量是固定的,当跟踪逻辑模块3传输的跟踪数据到达一定的量之后,使得存储器缓存结构44内部接近设定阈值,此时判断单元1判断跟踪缓存模块4需要停止数据缓存,之后请求单元42产生停止请求,使得处理器模块2停止输出跟踪数据。

    s5、所述控制模块通过所述系统总线读取所述跟踪缓存模块中的所有数据并显示跟踪结果。

    在一些实施例中,当所述切换单元61产生所述切换指令选择所述环形缓存结构43时,所述跟踪缓存模块4通过所述环形缓存结构43对跟踪数据包进行缓存,当所述控制模块2主动关闭跟踪使能或者所述环形缓存结构43遇到断点事件时,比如环形缓存结构43开始缓存新的一圈的跟踪数据时,所述判断单元41判断所述环形缓存结构43需要结束数据缓存,所述请求单元42产生停止请求并将所述停止请求并传输至所述处理器模块2,停止所述处理器模块2。

    在一些实施例中,当所述切换单元61产生所述切换指令选择所述存储器缓存结构44时,所述跟踪缓存模块4通过存储器缓存结构44对所述跟踪数据包进行缓存,当所述存储器缓存结构44内部的数据缓存达到设定阈值时,所述判断单元41判断所述存储器缓存结构43处于满状态,所述请求单元42产生停止请求并将所述停止请求传输至所述处理器模块2,停止所述处理器模块2。

    需要说明的是,存储器缓存结构44的设定阈值通过控制模块6进行设定,既可以与存储器缓存结构44的存储容量完全相同,也可以略小于存储器缓存结构44的存储容量,根据具体情况选择。

    在一些实施例中,所述配置指令根据标准规范确定,所述标准规范为开源指令集架构的规范,即risc-v。

    在一些实施例中,所述跟踪方法还包括在所述控制模块6读取完跟踪缓存模块4中所有的缓存数据之后,所述控制模块6产生控制指令以重启所述处理器模块2传输新的跟踪数据至跟踪逻辑模块3,在控制模块6读取完跟踪缓存模块4内的缓存数据之后,控制模块6得到跟踪结果并进行显示,之后控制模块6产生控制指令以重启处理器模块2,使得处理器模块2重新输出跟踪数据至跟踪逻辑模块3,跟踪逻辑模块3将跟踪数据打包并输出至跟踪缓存模块4,继续进行跟踪数据缓存。

    优选的是,本实施例中的控制模块6采用上位机,上位机通过jtag接口模块1和系统总线5读出跟踪缓存模块4里缓存的跟踪数据并解析显示跟踪结果。

    进一步的,所述控制模块6还包括电脑、cpu、控制器中的任意一种,根据实际情况进行选择,本发明对控制模块的选择使用不作特别限制。

    本发明还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的方法。

    本发明进一步提供了一种终端,包括处理器及存储器;

    所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行上述的方法。

    所述存储器用于存储计算机程序。

    优选地,所述存储器包括:rom、ram、磁碟、u盘、存储卡或者光盘等各种可以存储程序代码的介质。

    所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使所述终端执行上述的方法。

    优选地,所述处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

    虽然在上文中详细说明了本发明的实施方式,但是对于本领域的技术人员来说显而易见的是,能够对这些实施方式进行各种修改和变化。但是,应理解,这种修改和变化都属于权利要求书中所述的本发明的范围和精神之内。而且,在此说明的本发明可有其它的实施方式,并且可通过多种方式实施或实现。


    技术特征:

    1.一种处理器跟踪系统,其特征在于,包括:

    jtag接口模块,所述jtag接口模块用于与控制模块通信连接并解析jtag指令;

    处理器模块;

    跟踪逻辑模块,所述跟踪逻辑模块内嵌于所述处理器模块内部,且与所述处理器模块通信连接;

    跟踪缓存模块,所述跟踪缓存模块与所述跟踪逻辑模块通信连接;

    其中,所述jtag接口模块通过系统总线分别与所述跟踪逻辑模块、所述跟踪缓存模块通信连接,所述跟踪逻辑模块用于将所述处理器模块内的标准跟踪数据打包成跟踪数据包并输出到所述跟踪缓存模块,所述跟踪缓存模块用于缓存所述跟踪数据包。

    2.根据权利要求1所述的处理器跟踪系统,其特征在于,所述跟踪逻辑模块通过跟踪规范将所述处理器模块内的跟踪数据处理成所述标准跟踪数据,所述跟踪规范通过所述处理器模块定义。

    3.根据权利要求1所述的处理器跟踪系统,其特征在于,所述跟踪缓存模块通信连接有判断单元和请求单元,所述判断单元用于判断所述跟踪缓存模块是否结束数据缓存,所述请求单元的输出端与所述跟踪逻辑模块通信连接,且所述请求单元用于发出停止请求。

    4.根据权利要求3所述的处理器跟踪系统,其特征在于,所述跟踪缓存模块包括环形缓存结构,当所述控制模块主动关闭跟踪使能或者所述环形缓存结构遇到断点事件时,所述判断单元判断所述跟踪缓存模块结束数据缓存,所述请求单元向处理器模块发出停止请求。

    5.根据权利要求3或4所述的处理器跟踪系统,其特征在于,所述跟踪缓存模块还包括存储器缓存结构,当所述存储器缓存结构内部缓存数据量超过设定阈值时,所述判断单元判断所述跟踪缓存模块结束数据缓存,所述请求单元向所述处理器模块发出停止请求。

    6.根据权利要求4所述的处理器跟踪系统,其特征在于,所述控制模块还包括切换单元,所述切换单元通过所述系统总线与所述跟踪缓存模块通信连接,以切换并选择环形缓存结构和存储器缓存结构中的任意一个对所述跟踪数据包进行缓存处理。

    7.根据权利要求1所述的处理器跟踪系统,其特征在于,所述jtag接口模块还包括翻译单元,所述翻译单元用于将来自所述控制模块的指令翻译成所述系统总线上的寄存器访问操作指令或者存储访问操作指令。

    8.根据权利要求1所述的处理器跟踪系统,其特征在于,所述控制模块包括上位机和嵌入式系统中的至少一种。

    9.一种处理器跟踪方法,其特征在于,包括如下步骤:

    s1、控制模块产生配置指令,通过jtag接口模块将所述配置指令转换成系统总线上的寄存器访问,对跟踪逻辑模块进行配置;

    s2、所述控制模块产生启动指令,并通过jtag接口模块和系统总线启动跟踪逻辑模块的跟踪功能;

    s3、所述跟踪逻辑模块将跟踪数据打包成跟踪数据包并输出到跟踪缓存模块;

    s4、所述跟踪缓存模块对所述跟踪数据包进行跟踪缓存处理直至停止;

    s5、所述控制模块通过所述系统总线读取所述跟踪缓存模块中的所有数据并显示跟踪结果。

    10.根据权利要求9所述的处理器跟踪方法,其特征在于,所述步骤s4的过程包括:

    s41、所述控制模块通过切换单元产生切换指令,并通过系统总线切换并选择所述跟踪缓存模块内的环形缓存结构和存储器缓存结构中的任意一个缓存结构进行缓存;

    s42、所述跟踪缓存模块根据选择的所述缓存结构对跟踪数据包进行缓存;

    s43、判断单元判断所述跟踪缓存模块中的缓存结构结束数据缓存之后,通过请求单元产生停止请求并将所述停止请求并传输至处理器模块,停止所述处理器模块。

    11.根据权利要求10所述的处理器跟踪方法,其特征在于,当所述切换单元产生所述切换指令选择所述环形缓存结构时,所述跟踪缓存模块通过所述环形缓存结构对跟踪数据包进行缓存,当所述控制模块主动关闭跟踪使能或者所述环形缓存结构遇到断点事件时,所述判断单元判断所述环形缓存结构结束数据缓存,所述请求单元产生停止请求并将所述停止请求并传输至所述处理器模块,停止所述处理器模块。

    12.根据权利要求10所述的处理器跟踪方法,其特征在于,当所述切换单元产生所述切换指令选择所述存储器缓存结构时,所述跟踪缓存模块通过存储器缓存结构对所述跟踪数据包进行缓存,当所述存储器缓存结构内部的数据缓存达到设定阈值时,所述判断单元判断所述存储器缓存结构结束数据缓存,所述请求单元产生停止请求并将所述停止请求传输至所述处理器模块,停止所述处理器模块。

    13.根据权利要求9所述的处理器跟踪方法,其特征在于,所述配置指令根据标准规范确定,所述标准规范为开源指令集架构的规范。

    14.根据权利要求9所述的处理器跟踪方法,其特征在于,所述跟踪方法还包括在所述控制模块读取完跟踪缓存模块中所有的缓存数据之后,所述控制模块产生控制指令以重启所述处理器模块传输新的跟踪数据至跟踪逻辑模块。

    15.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求9至14任一所述的方法。

    16.一种终端,其特征在于,包括处理器及存储器;

    所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如权利要求9至14任一所述的方法。

    技术总结
    本发明提供了一种处理器跟踪系统、方法、存储介质及终端,所述跟踪系统包括:JTAG接口模块,所述JTAG接口模块用于与控制模块通信连接并解析JTAG指令;处理器模块;跟踪逻辑模块,所述跟踪逻辑模块内嵌于所述处理器模块内部,且与处理器模块通信连接;跟踪缓存模块,所述跟踪缓存模块与跟踪逻辑模块通信连接;其中,所述JTAG接口模块通过系统总线分别与跟踪逻辑模块、所述跟踪缓存模块通信连接,跟踪逻辑模块用于将处理器模块内的标准跟踪数据打包成跟踪数据包并输出到跟踪缓存模块,跟踪缓存模块用于缓存跟踪数据包,通过芯片上常规的JTAG接口实现处理器数据的缓存和跟踪,提高了对处理器的调试效率,同时降低了处理器跟踪方案的成本。

    技术研发人员:曹英杰;于欣;蒋寿美
    受保护的技术使用者:时擎智能科技(上海)有限公司
    技术研发日:2020.12.18
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-22752.html

    最新回复(0)