处理器、调试方法、计算设备及计算机可读存储介质与流程

未命名 07-19 阅读:77 评论:0


1.本技术涉及计算机技术领域,更为具体的,涉及一种处理器、调试方法、计算设备及计算机可读存储介质。


背景技术:

2.基于调试命令以及跟踪数据(trace)对处理器进行片上调试时,通常采用不同的总线传输调试命令以及跟踪数据。随着对处理器性能、主频、核心数量的需求大大增加,可能会导致传输调试命令以及跟踪数据的总线数量成倍增加。


技术实现要素:

3.本技术提供一种处理器、调试方法、计算设备及计算机可读存储介质。下面对本技术实施例涉及的各个方面进行介绍。
4.第一方面,提供一种处理器,该处理器包括:一个或多个核心;第一调试端口,用于接收和/或发送调试命令,所述调试命令用于对所述一个或多个核心进行片上调试;第二调试端口,用于发送跟踪数据;第一数据通道,用于传输所述调试命令和所述跟踪数据,所述第一数据通道包括一个或多个路由节点,所述第一数据通道通过所述一个或多个路由节点与所述一个或多个核心、所述第一调试端口、所述第二调试端口相连,其中,所述一个或多个路由节点用于对所述第一数据通道传输的所述调试命令以及所述跟踪数据进行转发。
5.作为一种可能的实现方式,所述处理器还包括:第一转换模块,与所述一个或多个路由节点中的第一路由节点相连,且所述第一转换模块与所述第一调试端口相连,所述第一转换模块用于对所述第一调试端口与所述第一路由节点之间的数据格式进行转换。
6.作为一种可能的实现方式,所述第一转换模块与所述第二调试端口相连,所述第一转换模块还用于:将所述第一路由节点支持的数据格式转换为所述第二调试端口支持的数据格式。
7.作为一种可能的实现方式,所述处理器还包括:第二转换模块,与所述一个或多个核心中的一个核心相连,且所述第二转换模块与第二路由节点相连,所述第二转换模块用于对所述核心与所述第二路由节点之间的数据格式进行转换。
8.作为一种可能的实现方式,所述第二转换模块还用于:接收所述第二路由节点发送的所述调试命令;判断所述调试命令是否符合要求;根据判断结果,返回所述调试命令对应的响应消息。
9.作为一种可能的实现方式,所述第一转换模块还用于:通过第一调试端口接收所述调试命令;基于所述调试命令,确定所述一个或多个核心中与所述调试命令关联的核心;根据所述核心,确定所述一个或多个路由节点中与所述核心连接的路由节点。
10.作为一种可能的实现方式,所述第一转换模块还用于:接收所述第一路由节点发送的所述调试命令和/或所述跟踪数据;判断所述调试命令和/或所述跟踪数据是否符合要求;根据判断结果,返回所述调试命令和/或所述跟踪数据对应的响应消息。
11.第二方面,提供一种调试方法,该方法应用于处理器,所述处理器包括:一个或多个核心;第一调试端口,用于接收和/或发送调试命令,所述调试命令用于对所述一个或多个核心进行片上调试;第二调试端口,用于发送跟踪数据;第一数据通道,用于传输所述调试命令和所述跟踪数据,所述第一数据通道包括一个或多个路由节点,所述第一数据通道通过所述一个或多个路由节点与所述一个或多个核心、所述第一调试端口、所述第二调试端口相连;所述方法包括:基于所述调试命令和/或所述跟踪数据对所述一个或多个核心进行片上调试。
12.作为一种可能的实现方式,所述处理器还包括第一转换模块,所述第一转换模块与所述一个或多个路由节点中的第一路由节点相连,且所述第一转换模块与所述第一调试端口相连,所述方法包括:通过所述第一转换模块,对所述第一调试端口与所述第一路由节点之间的数据格式进行转换。
13.作为一种可能的实现方式,所述第一转换模块与所述第二调试端口相连,所述方法包括:通过所述第一转换模,将所述第一路由节点支持的数据格式转换为所述第二调试端口支持的数据格式。
14.作为一种可能的实现方式,所述处理器包括第二转换模块,所述第二转换模块与所述一个或多个核心中的一个核心相连,且所述第二转换模块与第二路由节点相连,所述方法包括:通过所述第二转换模块,对所述核心与所述第二路由节点之间的数据格式进行转换。
15.作为一种可能的实现方式,所述方法还包括:接收所述第二路由节点发送的所述调试命令;判断所述调试命令是否符合要求;根据判断结果,返回所述调试命令对应的响应消息。
16.作为一种可能的实现方式,所述方法还包括:通过第一调试端口接收所述调试命令;基于所述调试命令,确定所述一个或多个核心中与所述调试命令关联的核心;根据所述核心,确定所述一个或多个路由节点中与所述核心连接的路由节点。
17.作为一种可能的实现方式,所述方法还包括:接收所述第一路由节点发送的所述调试命令和/或所述跟踪数据;判断所述调试命令和/或所述跟踪数据是否符合要求;根据判断结果,返回所述调试命令和/或所述跟踪数据对应的响应消息。
18.第三方面,提供一种计算设备,所述计算设备包括如第一方面或第一方面中的任意一种可能的实现方式所述的处理器。
19.第四方面,提供一种芯片,所述芯片包括如第一方面或第一方面中的任意一种可能的实现方式所述的处理器。
20.第五方面,提供一种计算机可读存储介质,其上存储有用于执行如第二方面或第二方面中的任意一种可能的实现方式所述的方法的代码。
21.本技术实施例通过采用同一数据通道(即第一数据通道)传输调试命令以及跟踪数据,有助于减少处理器中用于片上调试的总线的数量。另外,该数据通道中包括路由节点,通过路由节点的转发机制可以在保证数据准确性的同时,有助于降低处理器中调试系统的顶层连线和物理实现的难度和代价。
附图说明
22.图1为一种片上调试系统的逻辑示意图。
23.图2为图1中调试系统的一种物理实现拓扑示意图。
24.图3为本技术实施例提供的一种处理器的结构示意图。
25.图4为本技术实施例提供的另一种处理器的结构示意图。
26.图5给出了图4中第一转换模块的连接关系示意图。
27.图6给出了图4中第二转换模块的连接关系示意图。
28.图7为本技术实施例提供的一种计算设备的结构示意图。
29.图8为本技术实施例提供的一种调试方法的流程示意图。
具体实施方式
30.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。
31.处理器的调试方法可以包括软件调试和硬件调试两大类。软件调试方法可以通过软件运行在操作系统之上,通过系统调用来实现对需要调试的处理器的监控和控制,如寄存器的值查看,断点的设置。硬件的调试的方法通常需要在处理器中增加用于调试的组件,从而实现对待调试的处理器的监控和控制。
32.作为一种实现方式,硬件调试方法可以通过调试命令配置和访问寄存器,从而实现对处理器的监控和控制。例如,硬件调试方法可以通过调试命令配置寄存器,实现对处理器的控制。又如,硬件调试方法可以通过调试命令读取寄存器中的值,并基于寄存器中的值确定处理器的状态,以实现对处理器的监控。
33.作为另一种实现方式,硬件调试方法还可以通过跟踪数据,获取处理器的运行状态,从而实现对处理器的监控。例如,硬件调试方法可以获取处理器核心(core)的跟踪数据,从而确定处理器的运行状态。其中,跟踪数据可以为基于总线监控技术获取的部分或全部高速总线节点的行为。
34.为了传输上述调试命令和跟踪数据,处理器中的调试组件可以包括调试接口,如联合测试工作组(joint test action group,jtag)接口或串行线调试(serial wire debug,swd)接口。jtag是一种国际标准测试协议(ieee 1149.1兼容),主要用于芯片内部测试。swd是arm公司提出的另一种调试接口,相对于jtag接口,可以使用更少的信号。例如,处理器可以通过调试接口接收调试命令,也可以通过调试接口发送寄存器的值。又如,处理器可以通过调试接口发送跟踪数据。
35.调试接口与处理器进行通信时,可以根据不同的功能与不同的模块连接。例如,调试接口可以与调试访问端口(debug access port,dap)电连接,以实现调试命令的传输。又如,调试接口可以与跟踪端口接口单元(trace port interface unit,tpiu)电连接,以实现跟踪数据的传输。
36.一种常用的片上调试系统为coresight,coresight是基于arm架构的片上调试系统,可以实现调试(debug)、trace两大功能。debug即前文提到的基于调试命令的调试方法。
37.下文以多核处理器为例,对coresight片上调试系统进行介绍。图1为一种片上调试系统的逻辑示意图。
38.待调试的处理器可以包括一个或多个核心,如图1中示出的处理器包括核心0~核心n+1(core0~coren)共n+1个核心。
39.参见图1,片上总线可以包括多种,通常使用不同的总线传输调试命令和跟踪数据。例如,可以采用apb总线传输调试命令,如将从调试端口1(dap)接收到的配置信息传输至核心中的相关寄存器,和将相关寄存器的值通过该总线传输至调试端口。其中,调试命令的传输路径可以如图1中的实线所示。又如,可以采用atb总线传输跟踪数据,如将核心运行的跟踪数据传输至调试端口2(tpiu)。调试端口2可以将跟踪数据传输至处理器的引脚,或者处理器的输入/输出(input/output,i/o)端口,跟踪数据的传输路径可以如图1中的虚线所示。
40.由于调试系统与片内总线的数据格式往往不同,因此可以对调试命令和/或跟踪数据进行格式转换等预处理。例如,dap可以将调试命令进行jtag或swd总线协议格式与apb总线格式的相互转换。又如,tpiu可以将atb总线协议格式的跟踪数据压缩打包后通过片上引脚输出到片外,方便调试者进行记录和分析芯片的运行情况。
41.通过不同的总线传输调试命令以及跟踪数据,会导致总线的数量增加。随着处理器核数量的增加,需要的总线数量越来越多。如此一来,这样可能会增加处理器的成本和实现代价。
42.在实际使用中,通常基于调试系统的逻辑,对处理器进行物理设计。图2给出了图1中调试系统的一种物理实现拓扑示意图。
43.在物理设计中为了方便实现和分工往往将各个模块按照功能、频率、物理摆放位置分别进行综合和分析。例如,参见图2,频率不高的dap、tpiu会与焊点(pad)相关一起综合成一个模块,如可以称为物理设计0(physical design 0);而核心的频率往往会比较高,因此多个核心会分别独立综成一个模块,如可以称为物理设计1(physicaldesign 1)~物理设计n+1(physical design n+1)。
44.因此,参见图2,在处理器的物理实现过程中,物理设计0与各个核心(即物理设计1~物理设计n+1)之间需要多条总线,如apb 0~apb n,以实现调试命令的传输;物理设计0与各个核心(即物理设计1~物理设计n+1)之间需要多条总线,如atb 0~atb n,以实现跟踪数据的传输。
45.随着对处理器性能、主频、核心数量的需求大大增加,可能会导致apb、atb总线的数量成倍的增加,进一步可能会导致顶层连线和物理实现的难度和代价大大增加。
46.一方面,当总线数量大量增加时,可能需要大量的芯片面积进行布线,从而增加了处理器成本。实际使用中可以减小总线之间的间距,以节约芯片面积,但是如此一来,数据的可靠性可能会受到影响,需要采取其他措施保证数据的可靠性,实现代价增加。
47.另一方面,随着核心数量的增加,总线的端口数量也大大增加。以处理器中有8个处理器核心,用于配置每个处理器核心的apb总线的写/读数据位宽为32位、地址位宽为12位,每个核心向物理设计0模块传输跟踪数据的atb总线的数据位宽位32位为例,物理设计0的apb总线数量大概为(32
×
2+12
×
8=608个端口,到物理设计0模块的atb总线大概为32
×
8=256个端口。
48.又一方面,当核心的数量增加时,在处理器的物理实现拓扑中,dap、tpiu所在的物理设计模块与部分核心所在的物理设计模块的距离较远。例如,在图2中,物理设计0与物理
设计n的距离较远,物理设计0与物理设计n之间的传输的数据可能正确性可能会受到影响,且可能会存在时钟偏移。随着互连线的宽度和间距的不断减小,线间耦合电容相应增大,长的全局并行总线会引起较大的串扰噪声,从而影响信号的完整性以及信号传输的正确性。同时,互连线上的延迟将成为影响信号延迟的主要因素,总线结构全局互连线上的延迟将大于一个时钟周期,从而使得时钟的偏移很难管理。通常可以在物理设计0与物理设计n之间的总线中插入大量的寄存器,以解决上述问题。但是,如此一来,处理器片上调试系统的实现代价大大增加,而且可能会增加风险和不可控性。
49.为了解决上述问题,本技术实施例提供了一种处理器,该处理器中集成的片上调试系统通过同一数据通道(即第一数据通道)来传输调试命令以及跟踪数据,有助于减少处理器中用于片上调试的总线的数量。另外,该数据通道中包括路由节点,通过路由节点的转发机制可以在保证数据准确性的同时,有助于降低处理器中调试系统的顶层连线和物理实现的难度和代价。
50.图3为本技术实施例提供的一种处理器的结构示意图。处理器300中可以包括一个或多个核心310,第一调试端口320,第二调试端口330以及第一数据通道340。处理器300中的片上调试系统可以包括第一调试端口320,第二调试端口330以及第一数据通道340。第一调试端口320,第二调试端口330以及第一数据通道340也可以称为处理器300的片上调试组件。
51.处理器300中的计算、接受/存储命令、处理数据等都可以由一个或多个核心310执行。一个或多个核心310中的每个核心可以单独工作,也可以多个核心配合工作。
52.处理器300中可以包括片上调试系统,以辅助实现对处理器的调试。
53.作为一种实现方式,处理器300中可以包括第一调试端口320,第一调试端口320可以用于接收和/或发送前文所述的调试命令,该调试命令可以用于对一个或多个核心进行片上调试。例如,通过调试命令配置寄存器组件来控制一个或多个核心,或者通过调试命令读取寄存器中的值实现对一个或多个核心运行状态的监控。其中,寄存器的值与核心的运行状态相关联。作为一个示例,第一调试端口可以为dap。
54.作为另一种实现方式,处理器300中可以包括第二调试端口330,第二调试端口330可以用于发送跟踪数据。例如,可以将核心的跟踪数据传输给第二调试端口330,以实现对核心运行以及状态的监控。作为一个示例,第二调试端口330可以为tpiu。
55.如前文所述,如果要对处理器中的核心进行调试,则需要对一个或多个核心310进行监测和控制,因此,一个或多个核心可以与第一调试端口连接,一个或多个核心也可以与第二调试端口连接。
56.作为一种实现方式,处理器300可以包括第一数据通道340,第一数据通道340可以与一个或多个核心310中的部分或全部核心连接。第一数据通道340可以用于发送一个或多个核心310的跟踪数据或者寄存器的值,也可以用于接收用于对核心进行片上调试的调试命令。其中,与第一数据通道340连接的核心可以通过第一数据通道340实现与调试接口的通信,未与第一数据通道340直接连接的核心可以通过其他方式间接与第一数据通道340进行连接。例如,未与第一数据通道340直接连接的核心可以通过与第一数据通道340直接连接的核心,实现与第一数据通道340的间接连接。
57.第一数据通道340可以用于传输上述调试命令,也可以用于传输上述跟踪数据。为
了实现调试命令的传输,第一数据通道340可以与一个或多个核心310以及第一调试端口320连接。为了实现跟踪数据的传输,第一数据通道340可以与一个或多个核心310以及第二调试端口330连接。例如,第一数据通道340可以为环形的数据通道,一个或多个核心310、第一调试端口320、第二调试端口330可以位于该环形数据通道上。又如,第一数据通道340可以为网状的数据通道,一个或多个核心310、第一调试端口320、第二调试端口330可以位于该网状数据通道上,如位于该网状数据通道的交叉点上。
58.本技术实施例通过采用第一数据通道传输调试命令以及跟踪数据,有助于减少处理器中用于片上调试的总线的数量,从而降低处理器成本和物理实现代价。
59.第一数据通道340可以包括一个或多个路由节点,一个或多个路由节点可以对第一数据通道中传输的数据进行转发。如此一来,可以避免通过总线远距离传输引起的数据正确性问题。
60.一个或多个路由节点可以与一个或多个核心310、第一调试端口320、第二调试端口330连接。例如,一个或多个核心310中的每个核心均与路由节点相连。作为一个示例,每个核心可以分别与一个路由节点相连。作为另一个示例,每个路由节点可以与多个核心相连,如此一来,有助于减少第一数据通道的长度或尺寸,以降低处理器的成本。
61.第一调试端口320可以与一个或多个路由节点中的第一路由节点相连。该第一路由节点可以同时与核心相连,也可以不与核心相连。
62.第二调试端口330可以与一个或多个路由节点中的第一路由节点相连,也可以与一个或多个路由节点中除第一路由节点之外的其他路由节点相连。第一调试端口320与第二调试端口330连接在同一个路由节点,可以降低数据传输的复杂性。与第二调试端口330连接的路由节点可以同时与核心相连,也可以不与核心相连。
63.前文提到,第一数据通道340可以为环形数据通道或网状数据通道。一个或多个路由节点可以位于第一数据通道340上,作为第一数据通道340的数据接收和/发送节点。例如,一个或多个路由节点可以位于环形的第一数据通道340上,如均匀分布在该环形数据通道上。又如,一个或多个路由节点可以位于网状数据通道上,如位于网格状数据通道中的网格的交叉点或顶点。
64.基于上述包括一个或多个路由节点的第一数据通道340,有助于解决总线传输调试命令或跟踪数据过程中,由于距离较远造成的数据传输准确性的问题。对于距离较远的数据传输节点,如核心,调试命令或跟踪数据可以通过一个或多个路由节点进行转发,而非直接传输至该数据传输节点,从而可以提高数据的准确性和可靠性。此处提到的距离指的是该节点距离调试接口的距离。
65.以目标数据传输节点与调试接口之间的数据传输通过一个路由节点转发实现为例,本技术实施例提供的处理器可以在调试接口与目标数据传输节点之间进行数据传输时,通过一个路由节点进行中转传输,而不是直接的点对点传输,因此,能够减少单次传输的距离,从而有助于提高数据传输的准确性,降低处理器的物理实现的代价。
66.随着处理器核数越来越多,处理器各单元之间的数据通信量迅速增长,因此,越来越多的处理器采用片上网络(network on chip,noc)架构。而片上网络是采用并行分布式计算机和传统计算机网络的概念,在不同的处理器核之间引入交换节点,也就是路由器,而不再是总线结构。这样做的好处是避免了共享总线的通信冲突问题,提高了芯片通信效率
以及通信量。
67.基于此,本技术实施例提供的处理器,可以依托于片上网络的总线路由方式实现核心与调试接口的通信以及跟踪数据的传递。也就是说,处理器中的第一数据通道可以采用片上网络的方式与第一调试端口、第二调试端口以及一个或多个核心相连,以实现处理器中核心与调试接口之间的数据传输。如此一来,第一数据通道可以具有良好的可扩展能力以及可靠的数据传输能力。
68.相关技术中,核心传输调试命令采用apb的总线协议格式,传输跟踪数据采用atb总线协议格式,而调试接口可以采用,如jtag或swd总线协议格式。为了降低本技术实施例提供的处理器的实现复杂度,通常保留核心和调试接口原本的数据格式。
69.但是,一方面,本技术实施例提供的处理器中的第一数据通道的数据格式,如可以为片上网络通道总线协议格式,与相关技术中调试接口的数据格式不同。
70.因此,为了实现调试命令的传输,处理器还可以包括第一转换模块,用于实现调试命令的数据格式转换。例如,第一转换模块与一个或多个路由节点中的第一路由节点相连,且第一转换模块与第一调试端口相连,也就是说,第一调试端口可以通过第一转换模块与该第一路由节点相连。第一转换模块可以用于对第一调试端口与第一路由节点之间的数据格式进行转换。例如,第一转换模块可以将第一调试端口支持的数据格式转换为第一路由节点支持的数据格式,也可以将第一路由节点支持的数据格式转换为第一调试端口支持的数据格式。
71.前文提到,在一些实现方式中,第一调试端口与第二调试端口可以均与同一个路由节点相连。基于此,第一转换模块还可以与第二调试端口相连,此时,第一转换模块还可以用于将第一路由节点支持的数据格式转换为第二调试端口支持的数据格式,以实现跟踪数据的传输。
72.另一方面,本技术实施例提供的处理器中的第一数据通道的数据格式,与相关技术中核心的数据格式不同。
73.因此,处理器还可以包括第二转换模块。例如,第二转换模块可以与一个或多个核心中的一个核心相连,且第二转换模块与第二路由节点相连,第二转换模块可以用于对核心与第二路由节点之间的数据格式进行转换。
74.处理器中可以包括一个或多个第二转换模块。例如,第二转换模块的数量可以与一个或多个核心的数量相同,也就是说,每一个第二转换模块与每一个核心相对应。
75.当调试命令或跟踪数据在第一数据通道中传输时,需要确定接收调试命令或跟踪数据的目标模块,如第一调试端口、第二调试端口、一个或多个核心,以进行数据传输。由于第一调试端口、第二调试端口、一个或多个核心均与路由节点相连,作为一种实现方式,可以基于目标模块对应的目标路由节点,进行数据传输。例如,一个或多个路由节点中的每个路由节点可以具有不同的标识,可以根据与目标模块相连的目标路由节点的标识,进行数据传输。第二转换模块与核心一一对应,第一转换模块与第一调试端口、第二调试端口对应,作为另一种实现方式,可以基于与目标模块连接的第一转换模块、第二转换模块的标识,进行数据传输。
76.通常调试命令中可以包括该调试命令对应的核心的信息,如核心的地址。一种可能的确定目标路由节点的方法包括:首先,可以通过第一调试端口接收调试命令;其次,基
于该调试命令,如基于该调试命令中包含的核心的地址,可以确定一个或多个核心中与调试命令关联的核心,即目标模块;最后,根据该核心,可以确定一个或多个路由节点中与核心连接的路由节点,即目标路由节点。其中,确定目标路由节点可以指确定目标路由节点的标识。上述确定目标路由节点的方法可以由第一转换模块执行。
77.通常,跟踪信息均由核心发送至第二调试端口。由于第二调试端口的位置固定,因此,在跟踪信息的传输过程中,目标模块均为第二调试端口,相应的目标路由节点的标识也是固定的。
78.与跟踪信息的传输类似,从核心向第一调试端口传输调试命令对应的寄存器的值时,目标模块均为第一调试端口,相应的目标路由节点的标识也是固定的。
79.为了确保数据传输的可靠性,当目标模块接收到调试命令或者跟踪数据时,可以向发送该调试命令或跟踪数据的模块(也可以称为源模块)发送响应消息。如果目标模块为核心时,可以由第二转换模块向源模块发送响应消息。如果目标模块为第一调试端口或第二调试端口,可以由第一转换模块向源模块发送响应消息。
80.作为一种实现方式,响应消息可以包括传输完成响应消息,以及传输错误响应消息。在发送响应消息之前可以先判断调试命令或跟踪数据是否符合要求。例如,如果调试命令或跟踪数据符合要求,则返回调试命令或跟踪数据对应的传输完成响应消息。又如,如果调试命令或跟踪数据不符合要求,则返回调试命令或跟踪数据对应的传输错误响应消息。另外,如果调试命令或跟踪数据不符合要求,则可以在返回传输错误响应消息的同时丢弃该调试命令或跟踪数据。
81.调试命令或跟踪数据是否符合要求,可以通过多种条件进行判断。例如,接收模块可以判断调试命令或跟踪数据的目标模块对应标识是否与自己的标识一致。又如,可以判断发送调试命令或跟踪数据的模块的标识是否为分配的模块,如第二转换模块的标识。另如,可以判断待调试的核心的总线地址是否与目标模块的标识相对应。
82.作为一种实现方式,在处理器接收调试命令的过程中,判断调试命令是否符合要求以及返回响应消息均可以由第二转换模块执行。例如,第二转换模块用于:接收第二路由节点发送的调试命令;判断调试命令是否符合要求;根据判断结果,返回调试命令对应的响应消息。
83.作为另一种实现方式,在调试接口接收处理器发送的调试命令(如寄存器的值)以及跟踪数据的过程中,判断调试命令或跟踪数据是否符合要求以及返回响应消息均可以由第一转换模块执行。例如,第一转换模块用于:接收第一路由节点发送的调试命令和/或跟踪数据;判断调试命令和/或跟踪数据是否符合要求;根据判断结果,返回调试命令和/或跟踪数据对应的响应消息。
84.图4为本技术实施例提供的另一种处理器的结构示意图。图4所示的处理器可以包括8个核心410,8个第二转换模块420,第一转换模块430,第一调试端口440,第二调试端口450、4个路由节点(路由节点0~路由节点3)以及包括前述4个路由节点的第一数据通道460。
85.其中,每个路由节点与两个核心相连。核心与路由节点之间可以包括第二转换模块420。第一调试端口440和第二调试端口450可以与同一个路由节点相连(如图4中的路由节点0)。第一调试端口440(即dap)、第二调试端口450(即tpiu)与路由节点0之间可以包括第一转换模块430。
86.图5给出了图4中第一转换模块的连接关系示意图。本技术实施例提供的处理器,可以在片上调试系统中的dap组件、tpiu组件前增加一个第一转换模块,用来做路由节点和dap组件、tpiu组件通信的桥接。第一转换模块也可以称为dtn(debug to noc)。dtn可以为负责将dap消息传输到第一数据通道和接收来自第一数据通道的消息的组件。
87.图6给出了图4中第二转换模块的连接关系示意图。本技术实施例提供的处理器,为每个核心组件增加一个第二转换模块用来做路由节点与核心通信的桥接。第二转换模块也可以称为ctn(coreto noc)。ctn可以负责接收和传输来自第一数据通道中路由节点的消息。例如,ctn可以接收核心的跟踪信息、调试命令,也可以向核心发送调试命令。
88.需要说明的是,第一数据通道在传输数据时,可以采用任一种路由算法,本技术对此不做限定。
89.本技术实施例提供的处理器可以将片上调试系统的结构由简单的点到点(总线)结构变成网络结构,有助于优化掉dap到核心的debugapb访问路径和atb到tpiu的数据传输路径,减少顶层大量apb、atb总线的连接和模块端口数量。与此同时,本技术实施例提供的处理器有助于解决因为物理距离过远导致的实现困难的问题,从而有助于降低物理综合的困难、代价以及不可控的风险。最后,本技术实施例提供的处理器便于系统的设计和迭代。
90.下文将以第一数据通道为片上网络通道为例,详细介绍本技术实施例提供的调试命令、跟踪数据的传输流程。
91.一种调试命令的传输流程可以包括步骤1至步骤5。
92.在步骤1中,当有debug命令(如通过jtag接口接收的debug命令)要与核心的debug逻辑进行通信时,dtn组件首先可以将dap组件的apb事务(也可以称为apb读写请求)转化为noc总线协议格式;然后根据apb事务中包括的目标地址确定该事务要发送给哪个核心,基于该核心可以确定目标的路由标识(identification,id);最后dap组件将转化后的noc总线协议格式的事务发送到noc通道上。
93.在步骤2中,与dap组件连接的路由节点可以根据debug命令事务中包含的目标id进行路由,如将debug命令事务路由到对应的ctn组件接口。
94.在步骤3中,ctn组件可以接收到来自路由节点的debug命令事务,并检查该事务是否符合要求。如果符合要求,可以将该debug事务传输到核心,并回复事务完成响应;如果不符合要求,可以将该debug事务丢弃并回复错误响应。
95.在步骤4中,路由节点将步骤3中的响应返回到dtn组件,dtn对该响应进行检查并向dap组件响应事务完成的情况。
96.在步骤5中,dap进行下次debug事务的传输。
97.一种跟踪数据的传输流程可以包括步骤6至步骤10。
98.在步骤6中,当核心有trace事务发送时,ctn将atb事务转化为noc通道的总线协议格式,其中路由id固定为dtn节点id。
99.在步骤7中,路由节点根据上述id进行事务路由,如将该事物路由到dtn所在节点。
100.在步骤8中,dtn接收来自路由节点的事务,并对事务进行检查,判断事务是否符合要求。如果符合要求,可以将该事务转化的对应的atb事务,并发送到组件tpiu,且回复路由节事务处理完成响应。如果不符合要求,丢弃该事务并回复路由节点事务错误响应。
101.在步骤9中,ctn接收步骤3中的响应,并基于该响应,向核心发出响应。
102.在步骤10中,核心继续发送trace事务。
103.仍以前文提到的处理器中有8个处理器核心,用于配置每个处理器核心的apb总线的写/读数据位宽为32位、地址位宽为12位,每个核心向物理设计0模块传输跟踪数据的atb总线的数据位宽位32位为例,物理设计0的apb总线数量大概为(32
×
2+12)
×
8=608个端口,到物理设计0模块的atb总线大概为32
×
8=256个端口。
104.其中,需要花费很大代价去保证传输正确性的路径为:物理设计0至路由节点3传输总线。采用本技术实施例提供的处理器时,可以去掉物理设计0模块的atb、atb总线,同时仅需增加一组与路由节点通信的通道(第一数据通道),就可以把上述需要花费很大代价去保证传输正确性的路径优化掉。
105.在处理器核心的数量越多时,本技术实施例提供的处理器的益处越明显。例如,当处理器核心数量达到32个以上,采用本技术实施例提供的处理器结构的益处尤为显著。
106.图7为本技术实施例提供的一种计算设备的结构示意图。图7所示的计算设备700包括处理器710,处理器710可以是前文中提到的任意一种处理器。
107.上文结合图1至图7详细描述了本技术的装置实施例,下面结合图8详细描述本技术的方法实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面装置实施例。
108.图8为本技术实施例提供的一种调试方法的流程示意图。所述调试方法应用于处理器,所述处理器包括:一个或多个核心;第一调试端口,用于接收和/或发送调试命令,所述调试命令用于对所述一个或多个核心进行片上调试;第二调试端口,用于发送跟踪数据;第一数据通道,用于传输所述调试命令和所述跟踪数据,所述第一数据通道包括一个或多个路由节点,所述第一数据通道通过所述一个或多个路由节点与所述一个或多个核心、所述第一调试端口、所述第二调试端口相连。
109.参见图8,方法800可以包括步骤s810。
110.在步骤s810,基于调试命令和/或跟踪数据对一个或多个核心进行片上调试。
111.作为一种可能的实现方式,所述处理器还包括第一转换模块,所述第一转换模块与所述一个或多个路由节点中的第一路由节点相连,且所述第一转换模块与所述第一调试端口相连,所述方法包括:通过所述第一转换模块,对所述第一调试端口与所述第一路由节点之间的数据格式进行转换。
112.作为一种可能的实现方式,所述第一转换模块与所述第二调试端口相连,所述方法包括:通过所述第一转换模,将所述第一路由节点支持的数据格式转换为所述第二调试端口支持的数据格式。
113.作为一种可能的实现方式,所述处理器包括第二转换模块,所述第二转换模块与所述一个或多个核心中的一个核心相连,且所述第二转换模块与第二路由节点相连,所述方法包括:通过所述第二转换模块,对所述核心与所述第二路由节点之间的数据格式进行转换。
114.作为一种可能的实现方式,所述方法还包括:接收所述第二路由节点发送的所述调试命令;判断所述调试命令是否符合要求;根据判断结果,返回所述调试命令对应的响应消息。
115.作为一种可能的实现方式,所述方法还包括:通过第一调试端口接收所述调试命
令;基于所述调试命令,确定所述一个或多个核心中与所述调试命令关联的核心;根据所述核心,确定所述一个或多个路由节点中与所述核心连接的路由节点。
116.作为一种可能的实现方式,所述方法还包括:接收所述第一路由节点发送的所述调试命令和/或所述跟踪数据;判断所述调试命令和/或所述跟踪数据是否符合要求;根据判断结果,返回所述调试命令和/或所述跟踪数据对应的响应消息。
117.应理解,在本技术实施例中,“与a相应的b”表示b与a相关联,根据a可以确定b。但还应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。
118.应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
119.应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
120.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
121.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
122.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
123.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,dvd))或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
124.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何
熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。

技术特征:
1.一种处理器,其特征在于,包括:一个或多个核心;第一调试端口,用于接收和/或发送调试命令,所述调试命令用于对所述一个或多个核心进行片上调试;第二调试端口,用于发送跟踪数据;第一数据通道,用于传输所述调试命令和所述跟踪数据,所述第一数据通道包括一个或多个路由节点,所述第一数据通道通过所述一个或多个路由节点与所述一个或多个核心、所述第一调试端口、所述第二调试端口相连,其中,所述一个或多个路由节点用于对所述第一数据通道传输的所述调试命令以及所述跟踪数据进行转发。2.根据权利要求1所述的处理器,其特征在于,所述处理器还包括:第一转换模块,与所述一个或多个路由节点中的第一路由节点相连,且所述第一转换模块与所述第一调试端口相连,所述第一转换模块用于对所述第一调试端口与所述第一路由节点之间的数据格式进行转换。3.根据权利要求2所述的处理器,其特征在于,所述第一转换模块与所述第二调试端口相连,所述第一转换模块还用于:将所述第一路由节点支持的数据格式转换为所述第二调试端口支持的数据格式。4.根据权利要求3所述的处理器,其特征在于,所述处理器还包括:第二转换模块,与所述一个或多个核心中的一个核心相连,且所述第二转换模块与第二路由节点相连,所述第二转换模块用于对所述核心与所述第二路由节点之间的数据格式进行转换。5.根据权利要求4所述的处理器,其特征在于,所述第二转换模块还用于:接收所述第二路由节点发送的所述调试命令;判断所述调试命令是否符合要求;根据判断结果,返回所述调试命令对应的响应消息。6.根据权利要求3所述的处理器,其特征在于,所述第一转换模块还用于:通过第一调试端口接收所述调试命令;基于所述调试命令,确定所述一个或多个核心中与所述调试命令关联的核心;根据所述核心,确定所述一个或多个路由节点中与所述核心连接的路由节点。7.根据权利要求3所述的处理器,其特征在于,所述第一转换模块还用于:接收所述第一路由节点发送的所述调试命令和/或所述跟踪数据;判断所述调试命令和/或所述跟踪数据是否符合要求;根据判断结果,返回所述调试命令和/或所述跟踪数据对应的响应消息。8.一种调试方法,其特征在于,所述方法应用于处理器,所述处理器包括:一个或多个核心;第一调试端口,用于接收和/或发送调试命令,所述调试命令用于对所述一个或多个核心进行片上调试;第二调试端口,用于发送跟踪数据;第一数据通道,用于传输所述调试命令和所述跟踪数据,所述第一数据通道包括一个或多个路由节点,所述第一数据通道通过所述一个或多个路由节点与所述一个或多个核
心、所述第一调试端口、所述第二调试端口相连;所述方法包括:基于所述调试命令和/或所述跟踪数据对所述一个或多个核心进行片上调试。9.根据权利要求8所述的方法,其特征在于,所述处理器还包括第一转换模块,所述第一转换模块与所述一个或多个路由节点中的第一路由节点相连,且所述第一转换模块与所述第一调试端口相连,所述方法包括:通过所述第一转换模块,对所述第一调试端口与所述第一路由节点之间的数据格式进行转换。10.根据权利要求9所述的方法,其特征在于,所述第一转换模块与所述第二调试端口相连,所述方法包括:通过所述第一转换模,将所述第一路由节点支持的数据格式转换为所述第二调试端口支持的数据格式。11.根据权利要求10所述的方法,其特征在于,所述处理器包括第二转换模块,所述第二转换模块与所述一个或多个核心中的一个核心相连,且所述第二转换模块与第二路由节点相连,所述方法包括:通过所述第二转换模块,对所述核心与所述第二路由节点之间的数据格式进行转换。12.根据权利要求11所述的方法,其特征在于,所述方法还包括:接收所述第二路由节点发送的所述调试命令;判断所述调试命令是否符合要求;根据判断结果,返回所述调试命令对应的响应消息。13.根据权利要求10所述的方法,其特征在于,所述方法还包括:通过第一调试端口接收所述调试命令;基于所述调试命令,确定所述一个或多个核心中与所述调试命令关联的核心;根据所述核心,确定所述一个或多个路由节点中与所述核心连接的路由节点。14.根据权利要求10所述的方法,其特征在于,所述方法还包括:接收所述第一路由节点发送的所述调试命令和/或所述跟踪数据;判断所述调试命令和/或所述跟踪数据是否符合要求;根据判断结果,返回所述调试命令和/或所述跟踪数据对应的响应消息。15.一种计算设备,其特征在于,所述计算设备包括如权利要求1-7任意一项所述的处理器。16.一种计算机可读存储介质,其特征在于,其上存储有用于执行如权利要求8-14中任一项所述的方法的代码。

技术总结
本申请提供了一种处理器、调试方法、计算设备及计算机可读存储介质,该处理器包括:一个或多个核心;第一调试端口,用于接收和/或发送调试命令;第二调试端口,用于发送跟踪数据;第一数据通道,包括一个或多个路由节点,所述第一数据通道通过所述一个或多个路由节点与所述一个或多个核心、所述第一调试端口、所述第二调试端口相连。本申请实施例通过采用同一数据通道传输调试命令以及跟踪数据,有助于减少处理器中用于片上调试的总线的数量。另外,该数据通道中包括路由节点,通过路由节点的转发机制可以在保证数据准确性的同时,有助于降低处理器中调试系统的顶层连线和物理实现的难度和代价。难度和代价。难度和代价。


技术研发人员:徐凯 方奇 闫欣
受保护的技术使用者:飞腾信息技术有限公司
技术研发日:2023.06.05
技术公布日:2023/7/17
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐