一种芯片调试方法、装置、系统及芯片与流程

未命名 08-12 阅读:66 评论:0


1.本发明涉及调试技术领域,具体涉及一种芯片调试方法、装置、系统及芯片。


背景技术:

2.近年来,随着半导体技术的飞速发展,越来越多的电子设备上使用到了ic芯片,同时伴随着芯片技术的快速发展,芯片的体积也越来越小,功能也越来越复杂。目前主要采用边界扫描机制来调试芯片的电路系统,即,通过在ic芯片的输入输出引脚与内核电路之间设置边界扫描结构,在芯片的外部引脚上对芯片内部进行调试。但是,这种调试方式在实际调试过程中,其调试速度会受到芯片与调试工具之间swd或jtag通信协议的限制,且,同一时间只能有一条调试通路与外部调试工具进行数据交互,因此,极大地限制了芯片的调试速度,造成芯片的调试效率较低。


技术实现要素:

3.有鉴于此,本发明提供了一种芯片调试方法、装置、系统及芯片,以解决芯片调试效率较低的问题。
4.第一方面,本发明提供了一种芯片调试方法,所述方法包括:
5.获取调试任务;
6.基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务;
7.基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道;
8.获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整;
9.通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果。
10.在该方式中,通过将调试任务划分为不同任务类型的调试子任务,并分配至对应的调试通道进行处理,因此,能够多调试通道对调试子任务并行处理,以提高芯片的调试效率。同时,基于每个调试通道分配到的调试子任务数量对调试通道对应的缓存空间进行调整,能够实现缓存空间的高效率利用。
11.在一种可选的实施方式中,所述通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果,包括:
12.根据所述调试通道的调试子任务对所述芯片进行调试,将调试过程中的调试数据缓存至所述调试通道对应的缓存空间,以获得所述芯片的调试结果;其中,所述调试数据包括写入所述芯片内存的数据和/或读取所述芯片内存的数据。
13.在该方式中,在根据调试通道的调试子任务对所述芯片进行调试时,将调试过程中的调试数据缓存至所述调试通道对应的缓存空间。因此,能够充分利用缓存访问数据快的特性,以进一步提高芯片的调试效率。
14.在一种可选的实施方式中,所述根据所述调试通道的调试子任务对所述芯片进行调试,将调试过程中的调试数据缓存至所述调试通道对应的缓存空间,以获得所述芯片的调试结果,包括:
15.当所述调试子任务为读取任务时,根据所述调试通道的调试子任务读取所述芯片内存的数据;
16.将读取到的数据缓存至所述调试通道对应的缓存空间中;
17.若所述调试通道对应的调试子任务处理完成,则向外部调试工具发送读取消息,以从所述调试通道对应的缓存空间中读取数据。
18.在该方式中,一方面通过多调试通道并行读取芯片内存的数据,以提高芯片的调试效率;另一方面,将读取到的芯片数据分别保存至调试通道对应的缓存空间中,然后由外部调试工具从缓存空间中读取数据,从而能够实现缓存的高效率利用,以充分利用缓存数据访问效率更高的特性,提高芯片与外部调试工具的数据传输速度,进而提高芯片的调试效率。
19.在一种可选的实施方式中,所述根据所述调试通道的调试子任务对所述芯片进行调试,将调试过程中的调试数据缓存至所述调试通道对应的缓存空间,以获得所述芯片的调试结果,还包括:
20.当所述调试子任务为写入任务时,根据所述调试通道的调试子任务,将其对应的缓存空间内的数据写入至所述芯片内存;
21.获取每个所述调试子任务对应的数据写入状态,并将每个所述调试子任务对应的数据写入状态反馈至外部调试工具。
22.在该方式中,由于调试子任务对应写入所述芯片内存的数据已预先缓存在相应的缓存空间内,因此,能够多调试通道并行,将其对应的缓存空间内的数据写入至所述芯片内存,以进一步提高芯片的调试效率。
23.在一种可选的实施方式中,所述基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道,包括:
24.确定与所述调试子任务的任务类型对应的调试通道;
25.当与所述任务类型对应的调试通道的数量为1时,将所述调试子任务分配至所述调试通道;
26.当与所述任务类型对应的调试通道的数量不为1时,基于所述调试通道的数据处理速度或者优先级配置,将所述调试子任务分配至对应的调试通道。
27.在该方式中,首先根据调试子任务的任务类型,将调试子任务分配至对应的调试通道,若该任务类型对应的调试通道不为1,则进一步根据调试通道的数据处理速度或者优先级配置,将调试子任务分配至对应的调试通道。因此,能够在多调试通道并行处理的基础上,使数据处理速度更快或者优先级配置更高的调试通道处理更多的调试子任务,以进一步提高芯片的调试效率。
28.在一种可选的实施方式中,所述基于所述数量对所述调试通道对应的缓存空间进行调整,包括:
29.计算各个所述调试通道之间调试子任务的数量比值;
30.根据所述调试通道对应的数量比值,调整所述调试通道对应的缓存空间大小。
31.在该方式中,根据调试通道之间分配到的调试子任务的数量比值,调整所述调试通道对应的缓存空间大小。因此,能够实现缓存的高效率利用。
32.在一种可选的实施方式中,所述方法还包括:
33.当所述调试通道对应的缓存空间满足预设的缓存阈值条件时,向外部调试工具发送缓存状态信息,以使所述外部调试工具从所述调试通道对应的缓存空间中读取数据或者暂停向所述调试通道对应的缓存空间写入数据。
34.在该方式中,当所述调试通道对应的缓存空间满足预设的缓存阈值条件时,通知外部调试工具从缓存空间中读取数据或者暂停向缓存空间写入数据,从而能够避免缓存空间出现数据溢出,造成芯片调试报错。
35.第二方面,本发明提供了一种芯片调试装置,所述装置包括:
36.数据接收模块,用于获取调试任务;
37.任务划分模块,用于基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务;
38.任务分配模块,用于基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道;
39.缓存分配模块,用于获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整;
40.任务处理模块,用于通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果
41.第三方面,本发明提供了一种芯片调试系统,所述系统包括:
42.外部调试工具;
43.芯片,通过执行上述第一方面或其对应的任一实施方式的芯片调试方法进行调试。
44.第四方面,本发明提供了一种芯片,包括:
45.存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的芯片调试方法。
附图说明
46.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
47.图1是根据本发明实施例的一种芯片调试方法的流程示意图;
48.图2是根据本发明实施例的一种芯片数据传输的流程示意图;
49.图3是根据本发明实施例的一种芯片中枢模块的结构示意图;
50.图4是根据本发明实施例的另一种芯片调试方法的流程示意图;
51.图5是根据本发明实施例的又一种芯片调试方法的流程示意图;
52.图6是根据本发明实施例的又一种芯片调试方法的流程示意图;
53.图7是根据本发明实施例的又一种芯片调试方法的流程示意图;
54.图8是根据本发明实施例的又一种芯片调试方法的流程示意图;
55.图9是根据本发明实施例的又一种芯片调试方法的流程示意图;
56.图10是根据本发明实施例的一种进行读取芯片内容调试的流程示意图;
57.图11是根据本发明实施例的一种进行写入芯片内容调试的流程示意图;
58.图12是根据本发明实施例的一种芯片调试装置的结构框图;
59.图13是根据本发明实施例的一种芯片的硬件结构示意图。
具体实施方式
60.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
61.ic芯片(integrated circuit chip)是将大量的晶体管、电阻、电容等微电子元器件形成的集成电路放在一块塑基上做成的一块芯片。ic芯片包含晶圆芯片和封装芯片,相应ic芯片生产线由晶圆生产线和封装生产线两部分组成。目前,随着半导体技术的飞速发展,越来越多的电子设备上使用到了ic芯片,且随着芯片技术的快速发展,ic芯片的体积也越来越小,功能也越来越复杂。传统的使用物理探针的方式来调试芯片的电路系统的方式已经不再适用,取而代之的是一种虚拟探针的方式,即,边界扫描机制。边界扫描机制主要通过在ic芯片的输入输出引脚与内核电路之间设置边界扫描结构,可以使用更少的引脚在芯片的外部引脚上对芯片内部进行调试。
62.但是,边界扫描机制这种调试方式,其调试速度往往会受到芯片与外部调试之间的通信协议限制,且同一时间只能有一条调试通路与外部调试工具进行数据交互,极大地限制了调试速度,从而导致在进行芯片调试这种大数据交互时,往往需要耗费大量的时间在等待数据传输上,对芯片的调试效率有很大影响。因此,在一些传统的芯片调试方式中,会通过改进电路信号质量来提升通信速度,但是这种方式所带来的提升往往很小,且受限于swd或jtag通信协议的影响,为建立芯片与外部调试工具的稳定连接,芯片的最大通信频率需小于芯片运行频率的1/8。此外,在个别芯片调试方式中还提出一种高速swd协议转换接口电路,通过协议的转换来提升数据传输速度,但仍然受限于swd协议调试速度限制,swd协议的理论最大速度仅为50mhz。因此,相关的芯片调试方法在速度上有很大的限制,无法实现在大数据的场景下数据的高速传输,极大地限制了芯片的调试效率。
63.基于此,为了解决现有的调试接口速度受限,造成芯片调试效率较低的问题,本发明提供了一种芯片调试方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
64.在本实施例中提供了一种芯片调试方法,可用于ic芯片,图1是根据本发明的芯片调试方法的流程图,如图1所示,该流程包括如下步骤:
65.步骤s101,获取调试任务。
66.在本发明实施例中,所述调试任务由外部调试工具通过高速通信协议传输至芯
片。具体地,外部调试工具与芯片之间可以为任意高速通信协议,如:jtag,swd,usb等通信协议。其中,jtag(joint test action group):是在名为标准测试访问端口和边界扫描结构的ieee的标准1149.1的常用名称,其用于验证设计与测试生产出的印刷电路板功能。swd(serial wire debug):一种串行调试接口,与jtag相比,swd在调试过程中只需要用到两根线,分别为:swclk和swdio,从而能够减少对单片机gpio口的占用,此外,swd方还可以在线调试。usb(universal serial bus):通用串行总线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在pc领域的接口技术。
67.步骤s102,基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务。
68.在本发明实施例中,根据任务类型将所述调试任务划分为与所述任务类型对应的调试子任务,以便于将所述调试子任务分配至对应的调试通道,实现多调试通道同时对芯片进行调试,提高调试效率。
69.步骤s103,基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道。
70.参见图2,在本发明实施例中,所述芯片上设有中枢模块、片上协议转换模块和dap模块(即,调试访问接口)。具体地,所述片上协议转换模块包括ahb总线转换模块、apb总线转换模块和axi总线转换模块。所述片上协议转换模块和dap模块的数量根据芯片的具体情况而定,所述片上协议转换模块和dap模块主要用于将外部调试工具与芯片之间jtag、swd、usb等通信协议格式的数据转换为片上总线协议的格式,从而能够在芯片的片上总线上读取或写入数据,以完成对芯片的调试工作。其中,1、ahb(advanced high performance bus):主要用于cpu、dma和dsp等高性能模块之间的连接,ahb作为soc的片上系统总线,其包括以下一些特性:单个时钟边沿操作、非三态的实现方式、支持突发传输、支持分段传输、支持多个主控制器、可配置32位~128位总线宽度、支持字节、半字和字的传输。2、axi(advanced extensible interface):一种总线协议,该协议是arm公司提出的amba(advanced microcontroller bus architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。3、apb(advanced peripheral bus):芯片的外围总线,该总线协议是arm公司提出的amba总线结构之一,其几乎已成为一种标准的片上总线结构,apb主要用于低带宽的周边外设之间的连接。4、dap(debug access port):由dp(debug port),ap(access port)以及dapbus互连组件组成;其中,dp用于管理与外部调试器的连接,ap用于访问片上系统资源,每种类型的ap可以有多个,dapbus互连,用于将dp连接到一个或多个ap。
71.示例性地,在实际操作中,可通过ahb总线转换模块将数据转换为ahb协议格式,以在ahb总线上读取或写入数据;通过apb总线转换模块将数据转换为apb协议格式,以在apb总线上读取或写入数据;通过axi总线转换模块将数据转换为axi协议格式,以在axi总线上读取或写入数据;以及,通过dap模块将数据转换为dap总线接口协议,以在dap总线上读取或写入数据。可以理解地,在本发明中,所述调试通道为所述片上协议转换模块和dap模块所在的调试支路。在芯片中,芯片的中枢模块与芯片内部的各片上协议转换模块和dap模块之间构成的每一调试通道均可进行数据读写操作,各调试通道之间可以并行工作。具体由中枢模块对外部调试工具的调试任务进行拆分,得到不同任务类型的调试子任务,然后选
择合适的片上总线转换模块和/或dap模块对所述调试子任务进行处理。
72.需要说明的是,由于ahb总线、axi总线、apb总线以及dap的访问地址有重叠交叉,又有所不同,因此,在实际操作中,需要由中枢模块根据不同的系统设计进行不同的配置,以使调试子任务分配到合适的片上总线转换模块或dap模块上进行处理,以兼容不同的外部调试工具。
73.可以理解地,基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道,其目的是将调试子任务分配至相应的片上协议转换模块或dap模块,以将调试子任务转换为片上总线协议格式的指令,从而能够在相应的片上总线上对芯片进行读写操作,以减轻jtag、swd等通信协议的速度限制对芯片调试效率的影响。
74.步骤s104,获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整。
75.示例性的,参见图3,在芯片的中枢模块中包含用于读写任务拆分的任务分发模块以及缓存模块。在本发明实施例中,每次对调试任务进行任务划分的同时会对应缓存的划分,以将不同缓存地址拆分给不同调试通道(即图3中所示的分支1到n)用于数据的读写缓存。特殊的,当芯片中只有一个调试通道执行调试任务时,由一个调试通道占据所有的缓存空间。
76.步骤s105,通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果。
77.本实施例提供的芯片调试方法,通过将调试任务划分为不同任务类型的调试子任务,并分配至对应的调试通道进行处理,因此,能够多调试通道对调试子任务并行处理,以提高芯片的调试效率。同时,基于每个调试通道分配到的调试子任务数量对调试通道对应的缓存空间进行调整,能够实现缓存空间的高效率利用。
78.图4是根据一示例性实施例提出的另一种芯片调试方法的流程图。如图4所示,芯片调试方法包括如下步骤:
79.步骤s201,获取调试任务。与步骤s101的实施方式相同,在此不再赘述。
80.步骤s202,基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务。与步骤s102的实施方式相同,在此不再赘述。
81.步骤s203,基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道。与步骤s103的实施方式相同,在此不再赘述。
82.步骤s204,获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整。与步骤s104的实施方式相同,在此不再赘述。
83.步骤s205,根据所述调试通道的调试子任务对所述芯片进行调试,将调试过程中的调试数据缓存至所述调试通道对应的缓存空间,以获得所述芯片的调试结果;其中,所述调试数据包括写入所述芯片内存的数据和/或读取所述芯片内存的数据。
84.可以理解地,若所述调试子任务为读取任务,则所述调试数据为读取所述芯片内存并写入至缓存空间的数据;若所述调试子任务为写入任务,则所述调试数据为外部调试工具缓存在缓存空间中,等待写入至所述芯片内存的数据。
85.本实施例提供的芯片调试方法,在根据调试通道的调试子任务对所述芯片进行调试时,将调试过程中的调试数据缓存至所述调试通道对应的缓存空间。因此,能够充分利用
缓存访问数据快的特性,以进一步提高芯片的调试效率。
86.图5是根据一示例性实施例提出的又一种芯片调试方法的流程图。如图5所示,芯片调试方法包括如下步骤:
87.步骤s301,获取调试任务。与步骤s101的实施方式相同,在此不再赘述。
88.步骤s302,基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务。与步骤s102的实施方式相同,在此不再赘述。
89.步骤s303,基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道。与步骤s103的实施方式相同,在此不再赘述。
90.步骤s304,获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整。与步骤s104的实施方式相同,在此不再赘述。
91.步骤s305,通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果。
92.具体地,上述步骤s305包括:
93.步骤a1,当所述调试子任务为读取任务时,根据所述调试通道的调试子任务读取所述芯片内存的数据;
94.步骤a2,将读取到的数据缓存至所述调试通道对应的缓存空间中;
95.步骤a3,若所述调试通道对应的调试子任务处理完成,则向外部调试工具发送读取消息,以从所述调试通道对应的缓存空间中读取数据。
96.本实施例提供的芯片调试方法,一方面通过多调试通道并行读取芯片内存的数据,以提高芯片的调试效率;另一方面,将读取到的芯片数据分别保存至调试通道对应的缓存空间中,然后由外部调试工具从缓存空间中读取数据,从而能够实现缓存的高效率利用,以充分利用缓存数据访问效率更高的特性,提高芯片与外部调试工具的数据传输速度,进而提高芯片的调试效率。
97.图6是根据一示例性实施例提出的又一种芯片调试方法的流程图。如图6所示,芯片调试方法包括如下步骤:
98.步骤s401,获取调试任务。与步骤s101的实施方式相同,在此不再赘述。
99.步骤s402,基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务。与步骤s102的实施方式相同,在此不再赘述。
100.步骤s403,基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道。与步骤s103的实施方式相同,在此不再赘述。
101.步骤s404,获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整。与步骤s104的实施方式相同,在此不再赘述。
102.步骤s405,通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果。
103.具体地,上述步骤s405包括:
104.步骤b1,当所述调试子任务为写入任务时,根据所述调试通道的调试子任务,将其对应的缓存空间内的数据写入至所述芯片内存;
105.步骤b2,获取每个所述调试子任务对应的数据写入状态,并将每个所述调试子任务对应的数据写入状态反馈至外部调试工具。
106.本实施例提供的芯片调试方法,由于调试子任务对应写入所述芯片内存的数据已预先缓存在相应的缓存空间内,因此,能够多调试通道并行,将其对应的缓存空间内的数据写入至所述芯片内存,以进一步提高芯片的调试效率。
107.图7是根据一示例性实施例提出的又一种芯片调试方法的流程图。如图7所示,芯片调试方法包括如下步骤:
108.步骤s501,获取调试任务。与步骤s101的实施方式相同,在此不再赘述。
109.步骤s502,基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务。与步骤s102的实施方式相同,在此不再赘述。
110.步骤s503,基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道。与步骤s103的实施方式相同,在此不再赘述。
111.步骤s504,获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整。与步骤s104的实施方式相同,在此不再赘述。
112.步骤s505,通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果。与步骤s105的实施方式相同,在此不再赘述。
113.在一个可选的实施方式中,上述步骤s503包括:
114.步骤s5031,确定与所述调试子任务的任务类型对应的调试通道;
115.步骤s5032,当与所述任务类型对应的调试通道的数量为1时,将所述调试子任务分配至所述调试通道;
116.步骤s5033,当与所述任务类型对应的调试通道的数量不为1时,基于所述调试通道的数据处理速度或者优先级配置,将所述调试子任务分配至对应的调试通道。
117.示例性地,例如:axi总线转换模块的数据处理速度快于apb总线转换模块、ahb总线转换模块和dap模块,则对于四者均可执行的调试子任务,将调试子任务按照四个转换模块的数据处理速度比例更多地划分给axi总线转换模块,以加快调试子任务的处理速度。同样,其余三个转换模块也按照数据处理速度不同而分配不同量的调试子任务。或者,对于一些自定义特殊配置,针对不同的数据转换模块进行优先级配置,优先级越高的调试通道可分配更多的调试子任务。
118.本实施例提供的芯片调试方法,首先根据调试子任务的任务类型,将调试子任务分配至对应的调试通道,若该任务类型对应的调试通道不为1,则进一步根据调试通道的数据处理速度或者优先级配置,将调试子任务分配至对应的调试通道。因此,能够在多调试通道并行处理的基础上,使数据处理速度更快或者优先级配置更高的调试通道处理更多的调试子任务,以进一步提高芯片的调试效率。
119.在另一个可选的实施方式中,在所述通过调整后的缓存空间对所述调试通道的调试子任务进行处理的过程中,所述方法还包括:
120.当任一所述调试通道预先完成所有分配到的所述调试子任务时,获取其他所述调试通道未处理的调试子任务的数量;
121.根据每个所述调试通道未处理的调试子任务的数量,从大到小依次判断其他所述调试通道是否与当前空闲的调试通道对应的任务类型相同;
122.当所述调试通道与当前空闲的调试通道对应的任务类型相同时,将所述调试通道内未处理的调试子任务动态分配给空闲的调试通道进行处理。
123.在本发明实施例中,通过将未处理的调试子任务动态分配给与其任务类型对应的空闲的调试通道,因此,能够充分利用每个调试通道的任务处理资源,实现调试子任务的高效并行处理,以进一步提高芯片的调试效率。
124.图8是根据一示例性实施例提出的又一种芯片调试方法的流程图。如图8所示,芯片调试方法包括如下步骤:
125.步骤s601,获取调试任务。与步骤s101的实施方式相同,在此不再赘述。
126.步骤s602,基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务。与步骤s102的实施方式相同,在此不再赘述。
127.步骤s603,基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道。与步骤s103的实施方式相同,在此不再赘述。
128.步骤s604,获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整。
129.步骤s605,通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果。与步骤s105的实施方式相同,在此不再赘述。
130.具体地,上述步骤s604包括:
131.步骤6041,获取每个所述调试通道对应的调试子任务的数量;
132.步骤6042,计算各个所述调试通道之间调试子任务的数量比值;
133.步骤6043,根据所述调试通道对应的数量比值,调整所述调试通道对应的缓存空间大小。
134.本实施例提供的芯片调试方法,根据调试通道之间分配到的调试子任务的数量比值,调整所述调试通道对应的缓存空间大小。因此,能够实现缓存的高效率利用。
135.可以理解地,在本发明中,可根据每个调试通道对应的调试子任务的任务量大小动态分配缓存空间;其中,被分配的调试子任务更多的调试通道可以按任务量比例分配到更多的缓存空间,以充分利用芯片的缓存空间。
136.图9是根据一示例性实施例提出的又一种芯片调试方法的流程图。进一步地,如图9所示,芯片调试方法包括如下步骤:
137.步骤s701,获取调试任务。与步骤s101的实施方式相同,在此不再赘述。
138.步骤s702,基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务。与步骤s102的实施方式相同,在此不再赘述。
139.步骤s703,基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道。与步骤s103的实施方式相同,在此不再赘述。
140.步骤s704,获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整。与步骤s104的实施方式相同,在此不再赘述。
141.步骤s705,根据所述调试通道的调试子任务对所述芯片进行调试,将调试过程中的调试数据缓存至所述调试通道对应的缓存空间,以获得所述芯片的调试结果;其中,所述调试数据包括写入所述芯片内存的数据和/或读取所述芯片内存的数据。与步骤s205的实施方式相同,在此不再赘述。
142.步骤s706,当所述调试通道对应的缓存空间满足预设的缓存阈值条件时,向外部调试工具发送缓存状态信息,以使所述外部调试工具从所述调试通道对应的缓存空间中读
取数据或者暂停向所述调试通道对应的缓存空间写入数据。
143.本实施例提供的芯片调试方法,当所述调试通道对应的缓存空间满足预设的缓存阈值条件时,通知外部调试工具从缓存空间中读取数据或者暂停向缓存空间写入数据,从而能够避免缓存空间出现数据溢出,造成芯片调试报错。
144.需要说明的是,当所述调试子任务为读取任务时,所述缓存阈值条件为缓存空间的数据量达到预设的缓存溢出阈值;当所述调试子任务为写入任务时,所述缓存阈值条件为缓存空间已满。
145.示例性地,在一实际应用场景中,上述步骤s706包括:
146.若所述调试子任务为读取任务,则当所述调试通道对应的缓存空间的数据量达到预设的缓存溢出阈值时,向外部调试工具发送缓存状态信息,以使所述外部调试工具从所述调试通道对应的缓存空间中读取数据;
147.若所述调试子任务为写入任务,则当所述调试通道对应的缓存空间已满时,向外部调试工具发送缓存状态信息,以使所述外部调试工具暂停向所述调试通道对应的缓存空间写入数据。
148.进一步地,所述方法在向外部调试工具发送缓存状态信息,以使所述外部调试工具暂停向所述调试通道对应的缓存空间写入数据之后,还包括:
149.当所述调试通道的缓存空间内的数据量下降至预设的缓存安全阈值时,向所述外部调试工具发送重新写入信息,以使所述外部调试工具重新向所述调试通道对应的缓存空间写入数据。
150.具体地,所述方法还包括:
151.获取所述芯片与所述外部调试工具之间的消息传输延时;
152.基于所述消息传输延时以及每个所述调试通道的数据写入速度,确定所述缓存安全阈值。
153.可以理解地,当在对芯片进行写入操作时,缓存空间内等待写入所述芯片内存的数据,是由外部调试工具实时写入的。因此,在使外部调试工具暂停向所述调试通道对应的缓存空间写入数据后,伴随着缓存空间的数据不断写入至芯片内存,缓存空间内的数据量会逐渐减少,甚至可能出现缓存空间的数据量为空,造成写入调试中断的情况发生。因此,需要基于外部调试工具与芯片之间消息传输延时以及每个所述调试通道的数据写入速度,确定缓存安全阈值,在缓存空间的数据量下降至所述缓存安全阈值时,提前通知所述外部调试工具重新向所述调试通道对应的缓存空间中写入数据,从而保证缓存空间不为空,以使各个调试通道持续不断地将缓存空间的数据写入至所述芯片内存,从而提高调试的效率。
154.为了便于理解,参见图10和图11,下面以两个具体的实施方式对本发明的芯片调试方法进行说明:
155.1、进行读取芯片内容调试:
156.步骤s801:接收外部调试工具发送的读取指令,然后执行步骤s802;
157.步骤s802:根据接收到的读取指令对调试任务进行划分,得到调试子任务,并将调试子任务下发到对应的调试通道,然后执行步骤s803;
158.步骤s803:根据各个调试通道的调试子任务,读取芯片内存中的数据并保存至调
试通道对应的缓存空间中,然后执行步骤s804;
159.步骤s804:判断缓存空间是否达到预设的溢出触发阈值或者读取任务是否完成,若是,则执行步骤s805;若否,则返回至步骤s803;
160.步骤s805:通知外部调试工具从缓存空间中读取数据,然后执行步骤s806;
161.步骤s806:在外部调试工具读取完缓存空间的数据后,判断是否完成整个读取调试操作,若是,则读取指令完成,此次读取芯片内容的调试流程结束;若否,则返回至步骤s803。
162.2、进行写入芯片内容调试:
163.步骤s901:接收外部调试工具发送的写入指令,然后执行步骤s902;
164.步骤s902:根据接收到的写入指令对调试任务进行划分,得到调试子任务;并将调试子任务下发到合适的调试通道,然后执行步骤s903;
165.步骤s903:根据各个调试通道的调试子任务,将对应的缓存空间中的数据写入到芯片内存中,然后执行步骤s904;
166.步骤s904:判断缓存空间是否已满或者写入任务是否完成,若是,则进入步骤s905;若否,则返回至步骤s903;
167.步骤s905:通知外部调试工具停止向缓存空间中写入数据,然后执行步骤s906;
168.步骤s906:判断是否完成整个写入调试操作,若是,则写入指令完成,此次写入芯片内容的调试流程结束;若否,则进入步骤s907;
169.步骤s907:根据调试通道未完成的调试子任务,将对应的缓存空间中的数据写入到芯片内存中,然后执行步骤s908;
170.步骤s908:判断缓存空间内的剩余数据量是否下降至预设的缓存安全阈值,若是则执行步骤s909;若否,则返回至步骤s907。
171.步骤s909:通知外部调试工具继续向缓存空间中写入数据,然后返回至步骤s901。
172.在本实施例中还提供了一种芯片调试装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
173.本实施例提供一种芯片调试装置,如图12所示,包括:
174.数据接收模块100,用于获取调试任务;
175.任务划分模块200,用于基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务;
176.任务分配模块300,用于基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道;
177.缓存分配模块400,用于获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整;
178.任务处理模块500,用于通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果。
179.在一些可选的实施例方式中,任务处理模块500包括:
180.任务执行单元,用于根据所述调试通道的调试子任务对所述芯片进行调试,将调
试过程中的调试数据缓存至所述调试通道对应的缓存空间,以获得所述芯片的调试结果;其中,所述调试数据包括写入所述芯片内存的数据和/或读取所述芯片内存的数据。
181.在一些可选的实施方式中,所述任务执行单元包括:
182.芯片读取子单元,用于当所述调试子任务为读取任务时,根据所述调试通道的调试子任务读取所述芯片内存的数据;
183.数据缓存子单元,用于将读取到的数据缓存至所述调试通道对应的缓存空间中;
184.第一反馈子单元,用于若所述调试通道对应的调试子任务处理完成,则向外部调试工具发送读取消息,以从所述调试通道对应的缓存空间中读取数据。
185.在一些可选的实施方式中,所述任务执行单元还包括:
186.芯片写入子单元,用于当所述调试子任务为写入任务时,根据所述调试通道的调试子任务,将其对应的缓存空间内的数据写入至所述芯片内存;
187.第二反馈子单元,用于获取每个所述调试子任务对应的数据写入状态,并将每个所述调试子任务对应的数据写入状态反馈至外部调试工具。
188.在一些可选的实施方式中,任务分配模块300,包括:
189.通道选择单元,用于确定与所述调试子任务的任务类型对应的调试通道;
190.第一分配单元,用于当与所述任务类型对应的调试通道的数量为1时,将所述调试子任务分配至所述调试通道;
191.第二分配单元,用于当与所述任务类型对应的调试通道的数量不为1时,基于所述调试通道的数据处理速度或者优先级配置,将所述调试子任务分配至对应的调试通道。
192.在一些可选的实施方式中,缓存分配模块400,包括:
193.任务量比较单元,用于计算各个所述调试通道之间调试子任务的数量比值;
194.缓存调整单元,用于根据所述调试通道对应的数量比值,调整所述调试通道对应的缓存空间大小。
195.在一些可选的实施方式中,所述装置还包括:
196.缓存提醒模块,用于当所述调试通道对应的缓存空间满足预设的缓存阈值条件时,向外部调试工具发送缓存状态信息,以使所述外部调试工具从所述调试通道对应的缓存空间中读取数据或者暂停向所述调试通道对应的缓存空间写入数据。
197.上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
198.本实施例中的芯片调试装置是以功能单元的形式来呈现,这里的单元是指asic(application specific integrated circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
199.本发明实施例还提供一种芯片调试系统,所述系统包括:
200.外部调试工具;
201.芯片,通过执行上述任意一项实施方式的芯片调试方法进行调试。
202.请参阅图13,图13是本发明可选实施例提供的一种芯片的结构示意图,如图13所示,该芯片包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其他方式安装。处理器可以对在芯片内执行的指令进行处理,包括存储在存
储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个芯片,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图13中以一个处理器10为例。
203.处理器10可以是中央处理器(即,上述所提到的中枢模块),网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
204.其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
205.存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据芯片的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该芯片。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
206.存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器604还可以包括上述种类的存储器的组合。
207.该芯片还包括通信接口30,用于该芯片与其他设备或通信网络通信。
208.本发明还提供了一种计算机可读存储介质,上述根据本发明的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
209.虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

技术特征:
1.一种芯片调试方法,其特征在于,所述方法包括:获取调试任务;基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务;基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道;获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整;通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果。2.根据权利要求1所述的方法,其特征在于,所述通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果,包括:根据所述调试通道的调试子任务对所述芯片进行调试,将调试过程中的调试数据缓存至所述调试通道对应的缓存空间,以获得所述芯片的调试结果;其中,所述调试数据包括写入所述芯片内存的数据和/或读取所述芯片内存的数据。3.根据权利要求2所述的方法,其特征在于,所述根据所述调试通道的调试子任务对所述芯片进行调试,将调试过程中的调试数据缓存至所述调试通道对应的缓存空间,以获得所述芯片的调试结果,包括:当所述调试子任务为读取任务时,根据所述调试通道的调试子任务读取所述芯片内存的数据;将读取到的数据缓存至所述调试通道对应的缓存空间中;若所述调试通道对应的调试子任务处理完成,则向外部调试工具发送读取消息,以从所述调试通道对应的缓存空间中读取数据。4.根据权利要求2所述的方法,其特征在于,所述根据所述调试通道的调试子任务对所述芯片进行调试,将调试过程中的调试数据缓存至所述调试通道对应的缓存空间,以获得所述芯片的调试结果,还包括:当所述调试子任务为写入任务时,根据所述调试通道的调试子任务,将其对应的缓存空间内的数据写入至所述芯片内存;获取每个所述调试子任务对应的数据写入状态,并将每个所述调试子任务对应的数据写入状态反馈至外部调试工具。5.根据权利要求1所述的方法,其特征在于,所述基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道,包括:确定与所述调试子任务的任务类型对应的调试通道;当与所述任务类型对应的调试通道的数量为1时,将所述调试子任务分配至所述调试通道;当与所述任务类型对应的调试通道的数量不为1时,基于所述调试通道的数据处理速度或者优先级配置,将所述调试子任务分配至对应的调试通道。6.根据权利要求1所述的方法,其特征在于,所述基于所述数量对所述调试通道对应的缓存空间进行调整,包括:计算各个所述调试通道之间调试子任务的数量比值;
根据所述调试通道对应的数量比值,调整所述调试通道对应的缓存空间大小。7.根据权利要求2中所述的方法,其特征在于,所述方法还包括:当所述调试通道对应的缓存空间满足预设的缓存阈值条件时,向外部调试工具发送缓存状态信息,以使所述外部调试工具从所述调试通道对应的缓存空间中读取数据或者暂停向所述调试通道对应的缓存空间写入数据。8.一种芯片调试装置,其特征在于,所述装置包括:数据接收模块,用于获取调试任务;任务划分模块,用于基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务;任务分配模块,用于基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道;缓存分配模块,用于获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整;任务处理模块,用于通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果。9.一种芯片调试系统,其特征在于,所述系统包括:外部调试工具;芯片,通过如权利要求1至7中任意一项所述的芯片调试方法进行调试。10.一种芯片,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的芯片调试方法。

技术总结
本发明涉及调试技术领域,公开了一种芯片调试方法、装置、系统及芯片,所述方法包括:获取调试任务;基于所述调试任务中调试子任务的任务类型进行任务划分,得到与所述任务类型对应的调试子任务;基于所述调试子任务的任务类型,将所述调试子任务分配至对应的调试通道;获取每个所述调试通道对应的调试子任务的数量,并基于所述数量对所述调试通道对应的缓存空间进行调整;通过调整后的缓存空间对所述调试通道的调试子任务进行处理,以获得芯片的调试结果。本发明能够解决芯片调试效率较低的问题。题。题。


技术研发人员:王语鑫 宁宁
受保护的技术使用者:山东云海国创云计算装备产业创新中心有限公司
技术研发日:2023.05.26
技术公布日:2023/8/9
版权声明

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

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

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

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

分享:

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

相关推荐