多核芯片高速debug方法及装置
技术领域
本发明涉及一种多核芯片高速debug方法。
背景技术
随着SOC芯片技术的迅速发展,CPU的频率越来越快,而目前的debug手段还是传统的jtag连接或者uart串口连接等方法。由于带宽低,造成debug问题时,只能让CPU运行在较低的频率,才能通过debug口实时观察到debug信息。如果问题是CPU处于高频时才能出现,目前的debug手段很难满足要求,如果使用高速的并口进行debug,又会占用大量的IO口,造成有效IO资源不足。所以设计一种占用IO少,同时又具有通用高性能特点的debug方法是非常有意义的。
MIPI就是移动产业处理器接口,是Mobile Industry Processor Interface的缩写,过去常基于物理层的D-PHY用于摄像头串行接口(CSI)和显示器串行接口(DSI)。
原先的MIPI物理层是D-PHY,但在行业中已经开始向名为M-PHY的下一代物理层过渡,M-PHY相较D-PHY使用更少的引脚,但是能提供更多的选择和更灵活快速的信号传输,传输速率可达6GB/Sec。与CSI和DSI在D-PHY层之上的概念一样,各种高层协议共享M-PHY。
统一协议(UniPro)规范为移动设备等消费电子产品内部设备和元器件之间的互联定义了一个分层协议,它适用于包括应用处理器、协处理器、调制解调器等器件以及像控制信号、批量数据传输、打包流等数据传输.在M-PHY进行传输的前后,需要转换为unipro协议进行处理。
随着SOC芯片技术的迅速发展,CPU的频率越来越快,而目前的debug手段还是传统的jtag连接或者uart串口连接等方法,由于带宽低,造成debug问题时,只能让CPU运行在较低的频率才能通过debug口实时观察到debug信息;如果问题是CPU处于高频时才能出现,目前的debug手段很难满足要求;如果使用高速的并口进行debug,又会占用大量的IO口,造成有效IO资源不足。所以设计一种占用IO少,同时又具有通用高性能特点的debug方法是非常有意义的。
发明内容
本发明要解决的技术问题,在于提供一种多核芯片高速debug方法和装置,不仅占用IO少,同时又具有通用高性能特点。
本发明方法是这样实现的:一种多核芯片高速debug方法,其包括:
步骤10、对待debug的soc多核芯片中的每个CPU进行监视,当CPU一旦出现程序指针变化、或者读写操作时,就采集一次该CPU的debug信息,包括运行指针,运行程序内容,读取和写入数据的值,同时定时输出一个时间戳的值;
步骤20、把每个CPU的debug信息和时间戳值按照固定的格式进行打包,得到debug数据包,并把debug数据包转换为unipro协议传输;
步骤30、所有CPU对应的unipro协议传输汇总后送往MIPI M-PHY,汇总时给每个CPU的debug信息增加一个唯一的ID标签;然后通过发送通道的两个IO输出模拟高速差分信号,送往debug解调电路中的MIPI M-PHY;
步骤40、debug解调电路中的MIPI M-PHY通过接收通道的两个IO接收所述模拟高速差分信号,然后转换为数字信号的unipro协议数据,根据debug数据包的ID标签将汇总的debug信息重新分开为每个CPU的debug信息包,并转换为原始的debug信息包的固定格式;
步骤50、将debug信息解包,分解出运行指针、运行程序内容、读取和写入数据的值以及时间戳信息,并把这些信息送往对应CPU的debug信息池供工作人员分析。
进一步的,所述固定的格式是:数据包头为时间戳,然后紧跟着运行指针,运行程序,读数据、写数据。
进一步的,所述步骤10中和时间戳的值为一个持续累加的值,每隔固定时间就累加1。
本发明装置是这样实现的:一种多核芯片高速debug装置,包括soc多核芯片电路和debug解调电路;
所述soc多核芯片电路包括复数个CPU监视器、一时间戳控制器、复数个信息打包单元、复数个unipro协议转换单元、一第一Unipro控制器、一第一MIPI M-PHY以及一发送通道;soc多核芯片中的每个CPU均依次连接一CPU监视器、一信息打包单元、一unipro协议转换单元,且所述复数个CPU监视器均连接所述时间戳控制器,所述复数个unipro协议转换单元均依次连接第一Unipro控制器和第一MIPI M-PHY以及发送通道;
所述debug解调电路包括一接收通道、一第二MIPI M-PHY、第二Unipro控制器、复数个unipro协议逆转换单元、复数个信息解包单元以及复数个debug信息池;所述接收通道、第二MIPI M-PHY、第二Unipro控制器依次连接,所述第二Unipro控制器分别连接复数个unipro协议逆转换单元,且复数个unipro协议逆转换单元、复数个信息解包单元以及复数个debug信息池一一对应连接;其中,
所述soc多核芯片电路中的复数个CPU监视器对待debug的soc多核芯片中的每个CPU进行一一监视,当CPU一旦出现程序指针变化、或者读写操作时,就采集一次该CPU的debug信息,包括运行指针,运行程序内容,读取和写入数据的值,并和时间戳控制器输出的时间戳值一起送往信息打包单元,同时通过所述时间戳控制器定时输出一个时间戳的值;这个时间戳值和每个CPU监视器的debug信息一起送往对应的信息打包单元;所述信息打包单元把对应CPU的debug信息和时间戳值按照固定的格式进行打包,得到debug数据包,并把debug数据包送往unipro协议转换单元,unipro协议转换单元把每个CPU的debug数据包转换为unipro协议传输,并送往第一Unipro控制器;所述第一Unipro控制器将所有CPU对应的unipro协议转换单元的输出汇总后送往第一MIPI M-PHY,汇总时给每个CPU的debug信息增加一个唯一的ID标签;然后第一MIPI M-PHY将unipro协议数据通过发送通道的两个IO输出模拟高速差分信号,送往debug解调电路中的MIPI M-PHY;
所述debug解调电路中的第二MIPI M-PHY通过接收通道的两个IO接收所述模拟高速差分信号,然后转换为数字信号的unipro协议数据送往第二unipro控制器,第二Unipro控制器根据debug数据包的ID标签将汇总的debug信息重新分开为每个CPU的debug信息包送往unipro协议逆转换单元,送往unipro协议逆转换单元把使用unipro协议传输的debug信息包转换为原始的debug信息包的固定格式,并把原始的debug信息包送往信息解包单元;信息解包单元将debug信息解包,分解出运行指针、运行程序内容、读取和写入数据的值以及时间戳信息,并把这些信息送往对应CPU的debug信息池供工作人员分析。
进一步的,所述固定的格式是:数据包头为时间戳,然后紧跟着运行指针,运行程序,读数据、写数据。
进一步的,所述时间戳的值为一个持续累加的值,每隔固定时间就累加1。
本发明具有如下优点:
1.本发明MIPI M-PHY的高带宽保证了多核CPU可以在全速运行状态下进行debug,大量的CPU状态信息可以实时通过M-PHY传输出SOC芯片;
2.本发明debug信息包括PC指针、时间戳信息、运行命令、读取和写入的数据信息以及CPU的运行状态位信息,综合全面;
3.本发明时间戳的设计,在每个CPU的每次debug信息包中都带有一个时间值,通过这个时间戳值可以很清晰的判断debug信息包之间的先后关系,可以很好的解决目前多核并行运行过程的debug中,独立打印每个CPU的信息值,难以判断每个CPU运行之间的先后关系的问题。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明装置的结构框图。
具体实施方式
由于soc多核芯片中的每个CPU都可以独立执行程序,可以多核并行工作,因此,本发明的多核芯片高速debug方法可以对每个CPU进行debug,当debug电路开始工作后,每个CPU一旦出现程序指针变化,或者读写操作,对应的CPU监视器就会采集一次该CPU的debug信息,然后混合时间戳信息打包经过处理后送往debug解调电路,然后经过逆处理过程解码后送往对应CPU的debug信息池,然后debug软件可以将每个CPU的debug信息池的内容实时更新到显示屏幕上供工作人员进行分析,具体包括下述步骤:
步骤10、对待debug的soc多核芯片中的每个CPU进行监视,当CPU一旦出现程序指针变化、或者读写操作时,就采集一次该CPU的debug信息,包括运行指针,运行程序内容,读取和写入数据的值,同时定时输出一个时间戳的值,该时间戳的值为一个持续累加的值,每隔固定时间就累加1;
步骤20、把每个CPU的debug信息和时间戳值按照固定的格式进行打包,得到debug数据包,并把debug数据包转换为unipro协议传输;所述固定的格式是:数据包头为时间戳,然后紧跟着运行指针,运行程序,读数据、写数据;
步骤30、所有CPU对应的unipro协议传输汇总后送往MIPI M-PHY,汇总时给每个CPU的debug信息增加一个唯一的ID标签;然后通过发送通道的两个IO输出模拟高速差分信号,送往debug解调电路中的MIPI M-PHY;
步骤40、debug解调电路中的MIPI M-PHY通过接收通道的两个IO接收所述模拟高速差分信号,然后转换为数字信号的unipro协议数据,根据debug数据包的ID标签将汇总的debug信息重新分开为每个CPU的debug信息包,并转换为原始的debug信息包的固定格式;
步骤50、根据前面约定的格式将debug信息解包,分解出运行指针、运行程序内容、读取和写入数据的值以及时间戳信息,并把这些信息送往对应CPU的debug信息池,然后debug软件可以将每个CPU的debug信息池的内容实时更新到显示屏幕上供工作人员分析。
如图1所示,本发明的多核芯片高速debug装置,包括soc多核芯片电路1和debug解调电路2;
所述soc多核芯片电路1包括复数个CPU监视器11、一时间戳控制器12、复数个信息打包单元13、复数个unipro协议转换单元14、一第一Unipro控制器15、一第一MIPI M-PHY16以及一发送通道17;soc多核芯片中的每个CPU均依次连接一CPU监视器11、一信息打包单元13、一unipro协议转换单元14,且所述复数个CPU监视器11均连接所述时间戳控制器12,所述复数个unipro协议转换单元14均依次连接第一Unipro控制器15和第一MIPI M-PHY16以及发送通道17;
所述debug解调电路2包括一接收通道21、一第二MIPI M-PHY22、第二Unipro控制器23、复数个unipro协议逆转换单元24、复数个信息解包单元25以及复数个debug信息池26;所述接收通道21、第二MIPI M-PHY22、第二Unipro控制器23依次连接,所述第二Unipro控制器23分别连接复数个unipro协议逆转换单元24,且复数个unipro协议逆转换单元24、复数个信息解包单元25以及复数个debug信息26池一一对应连接;
其中,本发明的多核芯片高速debug装置的debug过程如下:
所述soc多核芯片电路1中的复数个CPU监视器11对待debug的soc多核芯片中的每个CPU进行一一监视,当CPU一旦出现程序指针变化、或者读写操作时,就采集一次该CPU的debug信息,包括运行指针,运行程序内容,读取和写入数据的值,并和时间戳控制器12输出的时间戳值一起送往信息打包单元13,同时通过所述时间戳控制器13定时输出一个时间戳的值,该时间戳的值为一个持续累加的值,每隔固定时间就累加1;这个时间戳值和每个CPU监视器11的debug信息一起送往对应的信息打包单元13;所述信息打包单元13把对应CPU的debug信息和时间戳值按照固定的格式进行打包,所述固定的格式是:数据包头为时间戳,然后紧跟着运行指针,运行程序,读数据、写数据;得到debug数据包,并把debug数据包送往unipro协议转换单元14,unipro协议转换单元14把每个CPU的debug数据包转换为unipro协议传输,并送往第一Unipro控制器15;所述第一Unipro控制器15将所有CPU对应的unipro协议转换单元14的输出汇总后送往第一MIPIM-PHY16,汇总时给每个CPU的debug信息增加一个唯一的ID标签;然后第一MIPI M-PHY16将unipro协议数据通过发送通道的两个IO输出模拟高速差分信号,送往debug解调电路中的MIPI M-PHY16;
所述debug解调电路2中的第二MIPI M-PHY21通过接收通道的两个IO接收所述模拟高速差分信号,然后转换为数字信号的unipro协议数据送往第二unipro控制器23,第二Unipro控制器23根据debug数据包的ID标签将汇总的debug信息重新分开为每个CPU的debug信息包送往unipro协议逆转换单元24,送往unipro协议逆转换单元24把使用unipro协议传输的debug信息包转换为原始的debug信息包的固定格式,并把原始的debug信息包送往信息解包单元25;信息解包单元25根据前面约定的格式将debug信息解包,分解出运行指针、运行程序内容、读取和写入数据的值以及时间戳信息,并把这些信息送往对应CPU的debug信息池26,然后debug软件可以将每个CPU的debug信息池26的内容实时更新到显示屏幕上供工作人员分析。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。