本发明涉及指令跟踪领域,特别涉及一种指令跟踪方法、装置、设备及介质。
背景技术:
1、指令跟踪技术是一种先进cpu(central processing unit,中央处理器)调试技术,相比较于传统的单步调试、断点等方式,指令跟踪技术可以不停顿记录一段时间内cpu的工作状态,记录一段时间内运行的指令、程序寄存器地址、运行结果以及cpu运行过程中是否发生中断、异常等信息,程序设计者通过分析这些记录可以快速查找问题、发现应用性能瓶颈以优化设计。
2、目前的指令跟踪技术通常是对芯片中的单个cpu进行指令跟踪,并且,指令跟踪技术需要在芯片内部设计一个较大的片上存储器,以用于存储指令跟踪数据;但是当cpu内核的个数增多时,所需要的存储空间会越来越大,从而引起片上存储器不够用的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种指令跟踪方法、装置、设备及介质,不仅可以对多中央处理器同时进行指令跟踪,而且可以实现对指定范围内的指令跟踪数据的存储,并且通过数据压缩可以提高对片上存储器的资源利用率。其具体方案如下:
2、第一方面,本技术提供了一种指令跟踪方法,应用于微控制单元中的指令跟踪控制器,所述微控制单元中还包括片上存储器和若干中央处理器;其中,所述方法包括:
3、对各所述中央处理器分别进行指令跟踪,并获取被跟踪中央处理器发送的与当前执行指令对应的目标程序计数器计数值;所述当前执行指令为所述被跟踪中央处理器当前执行的指令;
4、判断所述目标程序计数器计数值是否位于与所述被跟踪中央处理器对应的目标程序计数器计数范围中;
5、若所述目标程序计数器计数值位于所述目标程序计数器计数范围中,则对指令跟踪数据进行压缩,并将压缩后数据存储至所述片上存储器中;所述指令跟踪数据为对所述被跟踪中央处理器进行指令跟踪后得到的与所述当前执行指令对应的跟踪数据。
6、可选的,所述指令跟踪控制器中包括与所述若干中央处理器分别对应的子控制器,所述子控制器用于对相应的所述中央处理器进行指令跟踪。
7、可选的,所述对各所述中央处理器分别进行指令跟踪之前,还包括:
8、获取与所述微控制单元进行数据通信的上位机发送的控制器设置指令,并将所述控制器设置指令中包含的各待跟踪处理器信息分别写入本地的各寄存器中;其中,各所述待跟踪处理器信息中均包括待跟踪处理器标识以及相应的程序计数器计数范围;
9、通过与各所述待跟踪处理器标识分别对应的子控制器发送开始工作指令至相应的所述中央处理器以驱动相应的所述中央处理器开始工作,并对相应的所述中央处理器进行指令跟踪。
10、可选的,所述判断所述目标程序计数器计数值是否位于与所述被跟踪中央处理器对应的目标程序计数器计数范围中,包括:
11、通过与所述被跟踪中央处理器对应的目标子控制器并基于目标寄存器,判断所述目标程序计数器计数值是否位于与所述被跟踪中央处理器对应的目标程序计数器计数范围中;
12、其中,所述目标寄存器为与所述目标子控制器对应的寄存器,并且,所述目标寄存器中存储的有所述目标程序计数器计数范围。
13、可选的,所述判断所述目标程序计数器计数值是否位于与所述被跟踪中央处理器对应的目标程序计数器计数范围中之后,还包括:
14、若所述目标子控制器判定所述目标程序计数器计数值达到所述目标程序计数器计数范围的上限值,或所述片上存储器中与所述被跟踪中央处理器对应的存储空间已满,则发送停止工作指令至所述被跟踪中央处理器以驱动所述被跟踪中央处理器停止工作,并结束对所述被跟踪中央处理器的指令跟踪。
15、可选的,所述方法还包括:
16、在获取到与所述微控制单元进行数据通信的上位机发送的数据读取指令时,调用存储控制器控制所述片上存储器将自身存储的与所述数据读取指令对应的目标压缩数据发送至数据解压模块,以便所述数据解压模块对所述目标压缩数据进行解压,并将解压后数据发送至所述上位机;其中,所述存储控制器和所述数据解压模块均位于所述微控制单元中。
17、可选的,所述对指令跟踪数据进行压缩,并将压缩后数据存储至所述片上存储器中,包括:
18、调用数据压缩模块对所述指令跟踪数据进行压缩,并将所述压缩后数据通过所述存储控制器存储至所述片上存储器中的与所述被跟踪中央处理器对应的存储空间中;其中,所述数据压缩模块位于所述微控制单元中。
19、第二方面,本技术提供了一种指令跟踪装置,应用于微控制单元中的指令跟踪控制器,所述微控制单元中还包括片上存储器和若干中央处理器;其中,所述装置包括:
20、指令跟踪模块,用于对各所述中央处理器分别进行指令跟踪,并获取被跟踪中央处理器发送的与当前执行指令对应的目标程序计数器计数值;所述当前执行指令为所述被跟踪中央处理器当前执行的指令;
21、计数值判断模块,用于判断所述目标程序计数器计数值是否位于与所述被跟踪中央处理器对应的目标程序计数器计数范围中;
22、数据压缩存储模块,用于若所述目标程序计数器计数值位于所述目标程序计数器计数范围中,则对指令跟踪数据进行压缩,并将压缩后数据存储至所述片上存储器中;所述指令跟踪数据为对所述被跟踪中央处理器进行指令跟踪后得到的与所述当前执行指令对应的跟踪数据。
23、第三方面,本技术提供了一种电子设备,包括:
24、存储器,用于保存计算机程序;
25、处理器,用于执行所述计算机程序以实现前述的指令跟踪方法。
26、第四方面,本技术提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的指令跟踪方法。
27、本技术的指令跟踪方法应用于微控制单元中的指令跟踪控制器,所述微控制单元中还包括片上存储器和若干中央处理器;其中,所述方法包括:对各所述中央处理器分别进行指令跟踪,并获取被跟踪中央处理器发送的与当前执行指令对应的目标程序计数器计数值;所述当前执行指令为所述被跟踪中央处理器当前执行的指令;判断所述目标程序计数器计数值是否位于与所述被跟踪中央处理器对应的目标程序计数器计数范围中;若所述目标程序计数器计数值位于所述目标程序计数器计数范围中,则对指令跟踪数据进行压缩,并将压缩后数据存储至所述片上存储器中;所述指令跟踪数据为对所述被跟踪中央处理器进行指令跟踪后得到的与所述当前执行指令对应的跟踪数据。由此可见,本技术通过指令跟踪控制器对微控制单元中的多个中央处理器进行指令跟踪,优化指令跟踪的使用场景,满足用户对多中央处理器同时进行指令跟踪的需求;并且,本技术通过设置程序计数器计数范围,以在与中央处理器当前执行的指令对应的程序计数器计数值位于相应的程序计数器计数范围时,对与中央处理器当前执行的指令对应的指令跟踪数据进行存储,从而实现对指定范围内的指令跟踪数据的存储;进一步的,本技术通过对指令跟踪数据进行压缩,以减小指令跟踪数据所需的存储空间,从而降低对片上存储器的资源消耗,提高对片上存储器的资源利用率。
1.一种指令跟踪方法,其特征在于,应用于微控制单元中的指令跟踪控制器,所述微控制单元中还包括片上存储器和若干中央处理器;其中,所述方法包括:
2.根据权利要求1所述的指令跟踪方法,其特征在于,所述指令跟踪控制器中包括与所述若干中央处理器分别对应的子控制器,所述子控制器用于对相应的所述中央处理器进行指令跟踪。
3.根据权利要求2所述的指令跟踪方法,其特征在于,所述对各所述中央处理器分别进行指令跟踪之前,还包括:
4.根据权利要求3所述的指令跟踪方法,其特征在于,所述判断所述目标程序计数器计数值是否位于与所述被跟踪中央处理器对应的目标程序计数器计数范围中,包括:
5.根据权利要求4所述的指令跟踪方法,其特征在于,所述判断所述目标程序计数器计数值是否位于与所述被跟踪中央处理器对应的目标程序计数器计数范围中之后,还包括:
6.根据权利要求1至5任一项所述的指令跟踪方法,其特征在于,还包括:
7.根据权利要求6所述的指令跟踪方法,其特征在于,所述对指令跟踪数据进行压缩,并将压缩后数据存储至所述片上存储器中,包括:
8.一种指令跟踪装置,其特征在于,应用于微控制单元中的指令跟踪控制器,所述微控制单元中还包括片上存储器和若干中央处理器;其中,所述装置包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的指令跟踪方法。
