CN105740119A - 一种芯片及芯片内多核的调试方法 - Google Patents
一种芯片及芯片内多核的调试方法 Download PDFInfo
- Publication number
- CN105740119A CN105740119A CN201610066366.8A CN201610066366A CN105740119A CN 105740119 A CN105740119 A CN 105740119A CN 201610066366 A CN201610066366 A CN 201610066366A CN 105740119 A CN105740119 A CN 105740119A
- Authority
- CN
- China
- Prior art keywords
- core
- interface
- service
- status signal
- glue logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/267—Reconfiguring circuits for testing, e.g. LSSD, partitioning
Abstract
本发明的技术方法提供了一种芯片及该芯片内的多核的调试方法。该芯片包括交叉触发模块和M个核;每个核包括第一接口、第二接口和第三接口,并通过第一接口和第二接口与交叉触发模块连接;第三接口用于接收从芯片外部输入的指示信号;核用于根据指示信号停止运行或开始运行的功能;第一接口用于输出表示核停止运行或开始运行的状态信号;交叉触发模块用于将M个核中第一核的第一接口输出的状态信号向M个核中除第一核外的其他核的第二接口传输;第二接口用于接收通过交叉触发模块传输的状态信号的功能;核用于根据第二接口接收的状态信号停止运行或开始运行的功能。本发明的技术方案可以满足芯片内多核间进行实时性调试的需求。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种包含多核的芯片及芯片内多核的调试方法
背景技术
在一个存在处理器的系统中,在前期进行产品开发以及产品交付后出现问题需要定位时,需要借助仿真器及配套软件对产品核的软件代码进行断点或者单步调试等,即进行核调试。
一个系统中可能会包括多个核,且各个核之间是相互配合的。此时,在进行代码调试或者问题定位时需要同时控制不同核的代码的执行,即多核调试。多核调试具体而言就是:其中一个核停止运行后需要触发其他核停止运行,其中一个核开始运行后需要触发其他核开始运行。
目前,一个核停止运行后触发其他核停止运行主要通过以下方法实现:该核在运行过程中遇到断点停下来后,再借助仿真器及配套软件逐个配置其他核的内部寄存器,让其他核停止下来。一个核开始运行后触发其他核开始运行主要通过以下方式实现:该核在开始运行后,再借助仿真器及配套软件逐个配置其他核的内部寄存器,让其他核开始运行。
由于仿真器及配套软件配置核的内部寄存器的过程比较慢,因此上述多核调试的方法无法满足多核间进行实时性调试的需求。
发明内容
本发明提供的芯片和调试该芯片中的多个核的方法,可以满足芯片内多核间进行实时性调试的需求。
第一方面,本发明提供了一种芯片,该芯片包括交叉触发模块和M个核,M为大于1的整数。每个核包括第一接口、第二接口和第三接口,并通过第一接口和第二接口与交叉触发模块连接。每个核的第三接口用于接收从芯片外部输入的指示该核停止运行或开始运行的指示信号。每个核用于根据上述指示信号停止运行或开始运行的功能。每个核的第一接口用于输出表示该核停止运行或开始运行的状态信号。交叉触发模块用于将M个核中第一核的第一接口输出的状态信号向M个核中除第一核外的其他核的第二接口传输。每个核的第二接口用于接收通过交叉触发模块传输的上述状态信号的功能。每个核用于根据该核的第二接口接收的状态信号停止运行或开始运行的功能。
本发明的芯片,由于芯片上的核与核之间通过交叉触发模块连接,当某一个核停止运行或开始运行时,即可立即通过交叉触发模块将该信息传输给其他的核,使得其他的核也立即停止运行或开始运行,即多核间的运行或停止的触发是通过硬件信号实现的,而不是通过芯片外的调试软件逐一配置核的寄存器来完成,因此核与核之间的运行或停止的延时比较小,可以满足多核间实时性调试的需求。
在一种可能的实现方式中,芯片上的M个核属于至少两个类型。
M个核属于不同的类型是指M个核有不同的结构,即M个核为异构多核。本发明的芯片进行不同类型的多核间的调试时,可以不用针对芯片上的核的类型开发特定的调试工具,只需分别使用适用不同类型的核的调试工具来配置该类型的核寄存器即可。
在一种可能的实现方式中,芯片上的M个核中的N个核的第一接口和第二接口分别通过对应的第一胶合逻辑模块与交叉触发模块连接,N为小于M的正整数,N个核与M个核中其他核的类型不同。第一胶合逻辑模块用于将第一胶合逻辑模块对应的核的第一接口输出的表示第一胶合逻辑模块对应的核停止运行或开始运行的状态信号转换为表示M个核中除该N个核外的M-N个核停止运行或开始运行的状态信号,并将表示所述M-N个核停止运行或开始运行的状态信号传输给交叉触发模块。交叉触发模块具体用于在N个核中第二核的第一接口输出表示第二核停止运行或开始运行的状态信号时,将第二核对应的第一胶合逻辑模块转换得到的状态信号向N个核中除所述第二核外的其他核对应的第一胶合逻辑模块和所述M-N个核的第二接口传输。交叉触发模块还具体用于在所述M-N个核中第三核的第一接口输出的表示第三核停止运行或开始运行的状态信号时,将表示第三核停止运行或开始运行的状态信号向N个核对应的第一胶合逻辑模块和所述M-N个核中除第三核外的核的第二接口传输。第一胶合逻辑模块还用于将从交叉触发模块接收的表示M-N个核中任意核停止运行或开始运行的状态信号转换为表示第一胶合逻辑模块对应的核停止运行或开始运行的状态信号,并将表示所述第一胶合逻辑模块对应的核停止运行或开始运行的状态信号传输给第一胶合逻辑模块对应的核的第二接口。
本发明的芯片,不同核表示停止运行和开始运行的状态信号不一样时,可以通过胶合逻辑模块来转换表示停止运行和开始运行的状态信号,使得每个核输出的表示停止运行和开始运行的状态信号可以指示其他核停止运行和开始运行。
在一种可能的实现方式中,芯片上的M个核中的部分核的第二接口为这些核接收时钟信号的接口。
本发明的芯片中的核可以不用新增加接口即可以实现每个核根据其他核的表示停止运行或开始运行的状态信号停止运行或开始运行。
在一种可能的实现方式中,该芯片还包括至少一个硬件加速器HAC,该HAC包括第四接口。HAC的第四接口与交叉触发模块连接,用于接收交叉触发模块传输的表示M个核中任意核停止运行或开始运行的状态信号。HAC用于根据第四接口接收的状态信号停止运行或开始运行的功能。
本发明实施例的芯片,包括HAC,可以实现数据流的暂停发送或撤销暂停发送后的重新发送。也可以包括IP模块,以实现其他与IP模块相对应的功能。
在一种可能的实现方式中,HAC的第四接口通过第二胶合逻辑模块与交叉触发模块连接。交叉触发模块还具体用于将表示M个核中任意核停止运行或开始运行的状态信号向第二胶合逻辑模块传输。第二胶合逻辑模块用于将表示M个核中任意核停止运行或开始运行的状态信号转换为表示与所述第二胶合逻辑模块连接的HAC停止运行或开始运行的状态信号,并将表示与所述第二胶合逻辑模块连接的HAC停止运行或开始运行的状态信号传输给HAC的第四接口。
本发明实施例的芯片中,HAC通过胶合逻辑模块与交叉触发模块连接,可以使得核输出的表示核停止运行和开始运行的状态信号能够指示HAC停止运行或开始运行。
在一种可能的实现方式中,HAC的第四接口为HAC接收时钟信号的接口。
本发明的芯片中的HAC可以不用新增加接口即可以实现每个核根据其他核的表示停止运行或开始运行的状态信号停止运行或开始运行。
第二方面,本发明提供了一种芯片内多核的调试方法。该芯片包括交叉触发模块和M个核,每个核包括第一接口、第二接口和第三接口,每个核通过该核的第一接口和第二接口与交叉触发模块连接。调试该芯片中的核时,M个核中第一核的第三接口接收从芯片外部输入的指示第一核停止运行或开始运行的指示信号;第一核在第三接口接收指示第一核停止运行的指示信号时停止运行,在第三接口接收指示第一核开始运行的指示信号时开始运行;第一核的第一接口在第一核停止运行时输出表示第一核停止运行的状态信号,在第一核开始运行时输出表示第一核开始运行的状态信号;交叉触发模块将第一核的第一接口输出的状态信号向M个核中除第一核外的其他核的第二接口传输;其他核的第二接口接收通过交叉触发模块传输的表示第一核停止运行或开始运行的状态信号;其他核在其他核的第二接口接收表示第一核停止运行的状态信号时停止运行,在其他核的第二接口接收表示所述第一核开始运行的状态信号时开始运行。
本发明的芯片的调试方法,由于芯片上的核与核之间通过交叉触发模块连接,当某一个核停止运行或开始运行时,即可立即通过交叉触发模块将该信息传输给其他的核,使得其他的核也立即停止运行或开始运行,即多核间的运行或停止的触发是通过硬件信号实现的,而不是通过芯片外的调试软件逐一配置核的寄存器来完成,因此核与核之间的运行或停止的延时比较小,可以满足多核间实时性调试的需求。
在一种可能的实现方式中,第一核和其他核属于不同的类型。第一核的第一接口和第二接口分别通过对应的第一胶合逻辑模块与交叉触发模块连接。此时,调试芯片的方法还包括:第一胶合逻辑模块将第一核的第一接口输出的状态信号转换为表示其他核停止运行或开始运行的状态信号;交叉触发模块将第一核的第一接口输出的状态信号向M个核中除第一核外的其他核的第二接口传输具体为交叉触发模块将第一胶合逻辑模块转换得到的状态信号向其他核的第二接口传输。然后交叉触发模块将其他核的第一接口输出的表示其他核停止运行或开始运行的状态信号向第一胶合逻辑模块传输,第一胶合逻辑模块将表示其他核停止运行或开始运行的状态信号转换为表示第一核停止运行或开始运行的状态信号。
在一种可能的实现方式中,其他核中的第二核的第一接口和第二接口分别通过对应的第二胶合逻辑模块与交叉触发模块连接。此时,该方法还包括:第二胶合逻辑模块将第二核的第一接口输出的状态信号转换为表示一核处于停止运行或开始运行的状态信号。交叉触发模块将第一核的第一接口输出的状态信号向M个核中除第一核外的其他核的第二接口传输具体为交叉触发模块将第一胶合逻辑模块转换得到的状态信号向其他核的第二接口传输。然后,交叉触发模块将其他核的第一接口输出的表示其他核停止运行或开始运行的状态信号向第一胶合逻辑模块传输;第一胶合逻辑模块将表示其他核停止运行或开始运行的状态信号转换为表示第一核停止运行或开始运行的状态信号。
本发明的芯片的调试方法,不同核表示停止运行和开始运行的状态信号不一样时,可以通过胶合逻辑模块来转换表示停止运行和开始运行的状态信号,使得每个核输出的表示停止运行和开始运行的状态信号可以指示其他核停止运行和开始运行。
在一种可能的实现方式中,M个核中的部分核的第二接口为这部分核接收时钟信号的接口。
本发明的芯片中的核可以不用新增加接口即可以实现每个核根据其他核的表示停止运行或开始运行的状态信号停止运行或开始运行。
在一种可能的实现方式中,该芯片还包括至少一个硬件加速器HAC,硬件加速器包括第四接口,该第四接口与交叉触发模块连接。此时,该方法还包括:第四接口接收交叉触发模块传输的表示M个核中任意核停止运行或开始运行的状态信号;硬件加速器根据第四接口接收的状态信号停止运行或开始运行的功能。
本发明实施例的芯片,包括HAC,可以实现数据流的暂停发送或撤销暂停发送后的重新发送。也可以包括IP模块,以实现其他与IP模块相对应的功能。
在一种可能的实现方式中,HAC的第四接口通过第二胶合逻辑模块与交叉触发模块连接。此时,该方法还包括:交叉触发模块将表示M个核中任意核停止运行或开始运行的状态信号向第二胶合逻辑模块传输;第二胶合逻辑模块将表示M个核中任意核停止运行或开始运行的状态信号转换为表示与第二胶合逻辑模块连接的HAC停止运行或开始运行的状态信号。
本发明实施例的芯片中,HAC通过胶合逻辑模块与交叉触发模块连接,可以使得核输出的表示核停止运行和开始运行的状态信号能够指示HAC停止运行或开始运行。
在一种可能的实现方式中,HAC的第四接口为HAC接收时钟信号的接口。
本发明的芯片中的HAC可以不用新增加接口即可以实现每个核根据其他核的表示停止运行或开始运行的状态信号停止运行或开始运行。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例的芯片的结构示意图;
图2为本发明一个实施例的调试芯片内部多核的系统示意图;
图3为本发明另一个实施例的芯片的结构示意图。
图4为本发明另一个实施例的芯片的结构示意图。
图5为本发明一个实施例的芯片内多核的调试方法的示意性流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一个实施例的芯片的结构示意图。图1所示的芯片100包括M个核(110-1至110-M)和交叉触发模块120。交叉触发模块也可以称为交叉触发网络(CrossTriggerNetwork)。每个核包括三个接口,一个接口用于接收从芯片100外部输入的指示该核停止运行或开始运行的指示信号,如核110-1的接口113-1和核110-M的接口113-M;另外两个接口与交叉触发模块120连接,如核110-1的接口111-1和接口112-1,及核110-M的接口111-M和接口112-M。与交叉触发模块120连接的两个接口中,一个接口用于输出表示该核停止运行或开始运行的状态信号,另一个接口用于接收表示其他某个核停止运行或开始运行的状态信号,如核110-1的接口111-1和核110-M的接口111-M。当然,每个核还可以包括其他的接口,但本发明的技术方案主要涉及这三个接口,所以图中只示出了每个核的这三个接口。
下面以第M个核110-M为例介绍芯片100包括的核(110-1至110-M)与交叉触发模块120如何进行核间的调试。
当核110-M的接口113-M接收芯片100外部输入的指示110-M停止运行或开始运行的指示信号后,核110-M能够根据该指示信号执行相应的操作,即若接口113-M接收的是指示核110-M停止运行的信号,如低电平,则核110-M停止运行;若接口113-M接收的是指示核110-M开始运行的信号或指令,如高电平,则核110-M开始运行。
当核110-M停止运行时,核110-M的接口111-M输出表示核110-M停止运行的状态信号,如低电平;当核110-M开始运行时,核110-M的接口111-M可以输出表示核110-M开始运行的状态信号,如高电平。
交叉触发模块120为网络状,其将核110-M的接口111-M输出的表示核110-M停止运行或开始运行的状态信号传输给其他M-1个核,即核110-1至核110-(M-1)。
核110-1至核110-(M-1)中的核通过用于从交叉触发模块接收信号的接口接收表示核111-M停止运行的状态信号(如低电平)时,停止核的运行;通过用于从交叉触发模块接收信号的接口接收表示核110-M开始运行的状态信号(如高电平)时,开始运行核。如核110-1的接口112-1接收交叉触发模块120传输的表示核110-M停止运行的状态信号(如低电平)时,核110-1停止运行;核110-1的接口112-1接收交叉触发模块120传输的表示核110-M开始运行的状态信号(如高电平)时,核110-1开始运行。
本发明实施例的芯片,由于芯片上的核与核之间通过交叉触发模块连接,当某一个核停止运行或开始运行时,即可立即通过交叉触发模块将该信息传输给其他的核,使得其他的核也立即停止运行或开始运行,即多核间的运行或停止的触发是通过硬件信号实现的,而不是通过芯片外的调试软件逐一配置核的寄存器来完成,因此核与核之间的运行或停止的延时比较小,可以满足多核间实时性调试的需求。
本发明实施例中,芯片100中包括的M个核可以属于不同的类型,即M个核可以有不同的结构,即异构多核,如不同厂家生产的核的结构可能不同,不同用途的核的结构不同。
在对芯片的多核进行调试时,可以使用芯片外部的软件调试工具来帮助调试的实现。
在现有的芯片中,若芯片包括不同类型的核,进行多核调试时需通过各个核的调试接口(如图1中核110-1的接口113-1和核111-M的接口113-M)逐个配置核的调试寄存器,让核停止运行。由于不同类型核的调试接口及内部控制逻辑不一致,因此进行多核调试时,需要针对芯片上的核的类型开发一套能够支持所有类型的核的调试接口的软件调试工具,而无法直接使用针对各个类型的核的软件调试工具。
而本发明实施例的芯片,多核间进行调试时,只需调试工具通过调试接口(如图1中核110-1的接口113-1和核111-M的接口113-M)配置某个核的寄存器,使得该核停止运行或开始运行,然后就可以通过交叉触发模块触发其他核停止运行或开始运行,所以本发明实施例的芯片进行不同类型的多核间的调试时,可以不用针对芯片上的核的类型开始特定的调试工具,只需分别使用适用不同类型的核的调试工具来配置该类型的核寄存器即可。
图2为本发明一个实施例的调试芯片内异构多核的系统结构图。如图2所示,芯片220包括核221、核222和交叉触发模块223、核221属于第一类型的核,核222属于第二类型的核。调试工具211为用于调试第一类型的核的调试工具,调试工具212为用于调试第二类型的核的调试工具。
在对芯片220的核221和核222进行核间调试时,可以先通过调试工具211向核221输入指示核221停止运行或开始运行的指示信号,核221根据该指示信号停止运行或开始运行,并在停止运行时通过交叉触发模块223向核222传输表示核221停止运行的状态信号,在开始运行时通过交叉触发模块223向核222传输表示核221开始运行的状态信号。核222接收到核221通过交叉触发模块223传输的表示核221停止运行的状态信号时,也停止运行;核222接收到核221通过交叉触发模块223传输的表示核221开始运行的状态信号时,也开始运行。
同理,可以先通过调试工具212向核222输入指示核222停止运行或开始运行的指示信号,核222根据该指示信号停止运行或开始运行,并在停止运行时通过交叉触发模块223向核221传输表示核222停止运行的状态信号,在开始运行时通过交叉触发模块223向核221传输表示核222开始运行的状态信号。核221接收到核222通过交叉触发模块223传输的表示核222停止运行的状态信号时,也停止运行;核221接收到核222通过交叉触发模块223传输的表示核222开始运行的状态信号时,也开始运行。
图2中的芯片只包括两个核(如图1中的芯片100包括核110-1和核110-2),这只是为了更简洁地介绍本发明实施例的芯片而已。实际应用时,该芯片可以包括任意数量的核,且这些核可以属于任意类型。
而且在实际应用时,调试工具211输出的指示核221停止运行或开始运行的指示信号可以先经过仿真器和相应的驱动软件,以便于将该指示信号按照联合测试工作组(JointTestActionGroup,JTAG)接口标准翻译成相应的硬件时序,该硬件时序输入到芯片的JTAG接口后,可以通过调试接入端口(DebugAccessPorts,DAP)转换成核221支持的接口时序。调试工具212输出的指示信号也可以经过如上述调试工具211输出的指示信号的处理,然后输入到核222。
若图1所示的芯片100中核111-M的类型与其他核的类型不同,且表示核111-M停止运行和开始运行的状态信号可能与其他核的不相同,如表示111-M停止运行的状态信号为高电平,而表示其他核停止运行的状态信号为低电平。此时,需要将核111-M输出高电平转换为低电平输入到其他核,才可以指示其他核停止运行。
图3为本发明一个实施例的芯片的结构示意图。图3所示的芯片与图1所示的芯片的不同之处在于核110-M通过胶合逻辑(GlueLogic)模块130与交叉触发模块120连接。如图3所示,核110-M的接口111-M和接口112-M可以通过胶合逻辑模块130与交叉触发模块120连接。
当核110-M根据接口113-M接收的指示信号停止运行时,核110-M的接口111-M向胶合逻辑模块130输出表示核110-M停止运行的状态信号,然后胶合逻辑模块130将该状态信号转换成表示核110-1停止运行的状态信号;当核110-M根据接口113-M接收的指示信号开始运行时,核110-M的接口111-M向胶合逻辑模块130输出表示核110-M开始运行的状态信号,然后胶合逻辑模块130将该状态信号转换成表示核110-1开始运行的状态信号。
交叉触发模块120将胶合逻辑模块120输出的表示核110-1停止运行或开始运行的状态信号传输给其他M-1个核,即核110-1至核110-(M-1)。
核110-1至核110-(M-1)中的核从交叉触发模块120接收表示核110-1停止运行的状态信号时,停止核的运行;从交叉触发模块120接收表示核110-1开始运行的状态信号时,开始运行核。如核110-1的接口112-1接收交叉触发模块120传输的表示核110-1停止运行的状态信号时,核110-1停止运行;核110-1的接口112-1接收交叉触发模块120传输的表示核110-1开始运行的状态信号时,核110-1开始运行。
核110-1至核110-(M-1)中的一个核停止运行或开始运行时,通过交叉触发模块120向胶合逻辑模块130传输表示该核停止运行或开始运行的状态信号,胶合逻辑模块130将该状态信号转换为表示核110-M停止运行或开始运行的状态信号,核110-M的接口112-M接收转换后的状态信号,并根据该转换后的状态信号停止运行或开始运行。
如核110-1停止运行或开始运行停止运行时,交叉触发模块120将表示核110-1停止运行或开始运行的状态信号传输到胶合逻辑模块120,胶合逻辑模块120将该状态信号转换为表示核110-M停止运行或开始运行的状态信号,并传输给核110-M的接口112-M。核110-M的接口112-M接收该转换后的状态信号,并根据该转换后的转台信号停止运行或开始运行。
本发明实施例的芯片,不同核表示停止运行和开始运行的状态信号不一样时,可以通过胶合逻辑模块来转换表示停止运行和开始运行的状态信号,使得每个核输出的表示停止运行和开始运行的状态信号可以指示其他核停止运行和开始运行。
图3所示的芯片为核110-M通过胶合逻辑模块130与交叉触发模块120连接。实际应用中,芯片中也可以是多个核通过胶合逻辑模块与交叉触发模块连接,其工作方式与图3所示的芯片的工作方式相似,此处不再赘述。
如图1和图3所示的芯片还可以包括至少一个硬件加速器(HardwareAccelerator,HAC)和/或至少一个智能属性(IntellectualProperty,IP)模块,HAC可以实现某些特定功能(如傅里叶变换),IP模块包括用于某些特定功能的商用模块。每个HAC或每个IP模块包括一个与交叉触发模块连接的接口,该接口可以接收交叉触发模块传输的表示M个核中某个核停止运行或开始运行的状态信号。该接口接收表示M个核中某个核停止运行的状态信号,则HAC或IP停止运行,如停止发送数据;该接口接收表示M个核中某个核开始运行的状态信号,则HAC或IP模块开始运行,如开始发送数据或重新开始发送数据。
HAC或IP模块与交叉触发模块之间也可以通过胶合逻辑模块连接,这样,胶合逻辑模块可以将交叉触发模块传输的表示M个核中某个核停止运行或开始运行的状态信号转换成表示该HAC或IP模块停止运行或开始运行的状态信号,HAC或IP模块接收到胶合逻辑转换后的状态信号后,根据该转换后的状态信号停止运行或开始运行。
图4为本发明另一个实施例的芯片的结构示意图。图4所示的芯片与图3所示的芯片的不同之处在于芯片100还包括HAC160和IP模块170。HAC160通过胶合逻辑模块140与交叉触发模块120连接,IP模块170通过胶合逻辑模块150与交叉触发模块120连接。
本发明实施例的芯片,若包括HAC,则可以实现数据流的暂停发送或撤销暂停发送后的重新发送。若包括IP模块,则还可以实现其他与IP模块相对应的功能。
本发明实施例中的芯片中的核接收交叉触发逻辑模块或胶合逻辑模块传输的状态信号的接口可以是核上新添加的接口,也可以是核用于接收时钟信号的接口。
此时,当用于接收时钟信号的接口接收表示其他核停止运行的状态信号时,该核停止运行,相当于该核没有输入时钟信号;当用于接收时钟信号的接口接收表示其他核开始运行的状态信号时,该核开始运行,相当于该核输入了时钟信号。
本发明实施例中的芯片中的HAC或IP模块接收交叉触发逻辑模块或胶合逻辑模块传输的状态信号的接口可以是HAC或IP模块上新添加的接口,也可以是HAC或IP模块用于接收时钟信号的接口。
此时,当用于接收时钟信号的接口接收表示M个核中任意核停止运行的状态信号时,该HAC或IP模块停止运行,相当于该HAC或IP模块没有输入时钟信号;当用于接收时钟信号的接口接收表示M个核中任意核开始运行的状态信号时,该HAC或IP模块开始运行,相当于该HAC或IP模块输入了时钟信号。
上面结合图1至图4介绍了本发明实施例的芯片,下面结合图5介绍本发明实施例的芯片上的多核的调试方法。
图5为本发明一个实施例的芯片上多核的调试方法的示意性流程图。
S501,芯片包括交叉触发模块和M个核,每个核包括第一接口、第二接口和第三接口,核通过第一接口和第二接口与交叉触发模块连接;M个核中第一核的第三接口接收从芯片外部输入的指示第一核停止运行或开始运行的指示信号。
S502,第一核在第三接口接收指示第一核停止运行的指示信号时停止运行,且第一接口在第一核停止运行时输出表示第一核停止运行的状态信号;第一核在第三接口接收指示第一核开始运行的指示信号时开始运行,且第一接口在第一核开始运行时输出表示第一核开始运行的状态信号。
S503,交叉触发模块将第一核的第一接口输出的状态信号向M个核中除第一核外的其他核的第二接口传输。
S504,其他核的第二接口接收通过交叉触发模块传输的表示第一核停止运行或开始运行的状态信号,并在该状态信号表示第一核停止运行时停止运行或在该状态信号表示第一核开始运行时开始运行。
本发明实施例的芯片的多核的调试方法,由于芯片上的核与核之间通过交叉触发模块连接,当某一个核停止运行或开始运行时,即可立即通过交叉触发模块将该信息传输给其他的核,使得其他的核也立即停止运行或开始运行,即多核间的运行或停止的触发是通过硬件信号实现的,而不是通过芯片外的调试软件逐一配置核的寄存器来完成,因此核与核之间的运行或停止的延时比较小,可以满足多核间实时性调试的需求。
应理解,图5所示本发明实施例的调试方法可对应于图1至图4中的芯片,并且本发明实施例的调试方法可以实现图1至图4所示的芯片中的上述和/或其他功能,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种芯片,其特征在于,包括:交叉触发模块和M个核,M为大于1的整数;
每个所述核包括第一接口、第二接口和第三接口,并通过所述第一接口和第二接口与所述交叉触发模块连接;
每个所述核的第三接口用于接收从所述芯片外部输入的指示所述核停止运行或开始运行的指示信号;
所述核用于根据所述指示信号停止运行或开始运行;
每个所述核的第一接口用于输出表示所述核停止运行或开始运行的状态信号;
所述交叉触发模块用于将所述M个核中第一核的第一接口输出的状态信号向所述M个核中除第一核外的其他核的第二接口传输;
每个所述核的第二接口用于接收通过所述交叉触发模块传输的所述状态信号;
所述核用于根据第二接口接收的状态信号停止运行或开始运行。
2.根据权利要求1所述的芯片,其特征在于,所述M个核属于至少两个类型。
3.根据权利要求2所述的芯片,其特征在于,所述M个核中的N个核的第一接口和第二接口分别通过对应的第一胶合逻辑模块与所述交叉触发模块连接,N为小于M的正整数,所述N个核与所述M个核中除所述N个核外的M-N个核的类型不同;
所述第一胶合逻辑模块用于将所述第一胶合逻辑模块对应的核的第一接口输出的表示所述第一胶合逻辑模块对应的核停止运行或开始运行的状态信号转换为表示所述M-N个核中的核停止运行或开始运行的状态信号,并将表示所述M-N个核中的核停止运行或开始运行的状态信号传输给所述交叉触发模块;
所述交叉触发模块具体用于在所述N个核中第二核的第一接口输出表示所述第二核停止运行或开始运行的状态信号时,将所述第二核对应的第一胶合逻辑模块转换得到的状态信号向所述N个核中除所述第二核外的其他核对应的第一胶合逻辑模块和所述M-N个核的第二接口传输;
所述交叉触发模块还具体用于在所述M-N个核中第三核的第一接口输出的表示所述第三核停止运行或开始运行的状态信号时,将表示所述第三核停止运行或开始运行的状态信号向所述N个核对应的第一胶合逻辑模块和所述M-N个核中除所述第三核外的核的第二接口传输;
所述第一胶合逻辑模块还用于将从所述交叉触发模块接收的表示所述M-N个核中任意核停止运行或开始运行的状态信号转换为表示所述第一胶合逻辑模块对应的核停止运行或开始运行的状态信号,并将所述表示所述第一胶合逻辑模块对应的核停止运行或开始运行的状态信号传输给所述第一胶合逻辑模块对应的核的第二接口。
4.根据权利要求1至3中任一项所述的芯片,其特征在于,所述M个核中的部分核的第二接口为所述部分核接收时钟信号的接口。
5.根据权利要求1至4中任一项所述的芯片,其特征在于,所述芯片还包括至少一个硬件加速器HAC,所述HAC包括第四接口;
所述第四接口与所述交叉触发模块连接;
所述第四接口用于接收所述交叉触发模块传输的表示所述M个核中任意核停止运行或开始运行的状态信号;
所述HAC用于根据所述第四接口接收的状态信号停止运行或开始运行。
6.根据权利要求5所述的芯片,其特征在于,所述第四接口通过第二胶合逻辑模块与所述交叉触发模块连接;
所述交叉触发模块还用于将表示所述M个核中任意核停止运行或开始运行的状态信号向所述第二胶合逻辑模块传输;
所述第二胶合逻辑模块用于将表示所述M个核中任意核停止运行或开始运行的状态信号转换为表示与所述第二胶合逻辑模块连接的HAC停止运行或开始运行的状态信号,并将表示与所述第二胶合逻辑模块连接的HAC停止运行或开始运行的状态信号传输给所述第四接口。
7.根据权利要求5或6所述的芯片,其特征在于,所述第四接口为所述HAC接收时钟信号的接口。
8.一种芯片内多核的调试方法,其特征在于,所述芯片包括交叉触发模块和M个核,每个所述核包括第一接口、第二接口和第三接口,所述核通过所述第一接口和第二接口与所述交叉触发模块连接;
所述方法包括:
所述M个核中第一核的第三接口接收从所述芯片外部输入的指示所述第一核停止运行或开始运行的指示信号;
所述第一核在所述第三接口接收指示所述第一核停止运行的指示信号时停止运行,在所述第三接口接收指示所述第一核开始运行的指示信号时开始运行;
所述第一核的第一接口在所述第一核停止运行时输出表示所述第一核停止运行的状态信号,在所述第一核开始运行时输出表示所述第一核开始运行的状态信号;
所述交叉触发模块将所述第一核的第一接口输出的状态信号向所述M个核中除所述第一核外的其他核的第二接口传输;
所述其他核的第二接口接收通过所述交叉触发模块传输的表示所述第一核停止运行或开始运行的状态信号;
所述其他核在所述其他核的第二接口接收表示所述第一核停止运行的状态信号时停止运行,在所述其他核的第二接口接收表示所述第一核开始运行的状态信号时开始运行。
9.根据权利要求8所述的调试方法,其特征在于,所述第一核和所述其他核属于不同的类型;所述第一核的第一接口和第二接口分别通过对应的第一胶合逻辑模块与所述交叉触发模块连接;
所述方法还包括:
所述第一胶合逻辑模块将所述第一核的第一接口输出的状态信号转换为表示所述其他核停止运行或开始运行的状态信号;
其中,所述交叉触发模块将所述第一核的第一接口输出的状态信号向所述M个核中除所述第一核外的其他核的第二接口传输,包括:
所述交叉触发模块将所述第一胶合逻辑模块转换得到的状态信号向所述其他核的第二接口传输;
所述方法还包括:
所述交叉触发模块将所述其他核的第一接口输出的表示所述其他核停止运行或开始运行的状态信号向所述第一胶合逻辑模块传输;
所述第一胶合逻辑模块将表示所述其他核停止运行或开始运行的状态信号转换为表示所述第一核停止运行或开始运行的状态信号。
10.根据权利要求9所述的调试方法,其特征在于,所述其他核中的第二核的第一接口和第二接口分别通过对应的第二胶合逻辑模块与所述交叉触发模块连接;
所述方法还包括:
所述第二胶合逻辑模块将所述第二核的第一接口输出的状态信号转换为表示所述一核处于停止运行或开始运行的状态信号;
其中,所述交叉触发模块将所述第一核的第一接口输出的状态信号向所述M个核中除所述第一核外的其他核的第二接口传输,包括:
所述交叉触发模块将所述第一胶合逻辑模块转换得到的状态信号向所述其他核的第二接口传输;
所述方法还包括:
所述交叉触发模块将所述其他核的第一接口输出的表示所述其他核停止运行或开始运行的状态信号向所述第一胶合逻辑模块传输;
所述第一胶合逻辑模块将表示所述其他核停止运行或开始运行的状态信号转换为表示所述第一核停止运行或开始运行的状态信号。
11.根据权利要求9或10所述的调试方法,其特征在于,所述M个核中的部分核的第二接口为所述部分核接收时钟信号的接口。
12.根据权利要求8至11中任一项所述的调试方法,其特征在于,所述芯片还包括至少一个硬件加速器HAC,所述HAC包括第四接口,所述第四接口与所述交叉触发模块连接;
所述方法还包括:
所述第四接口接收所述交叉触发模块传输的表示所述M个核中任意核停止运行或开始运行的状态信号;
所述HAC根据所述第四接口接收的状态信号停止运行或开始运行的功能。
13.根据权利要求12所述的调试方法,其特征在于,所述第四接口通过第二胶合逻辑模块与所述交叉触发模块连接;
所述方法还包括:
所述交叉触发模块将表示所述M个核中任意核停止运行或开始运行的状态信号向所述第二胶合逻辑模块传输;
所述第二胶合逻辑模块将表示所述M个核中任意核停止运行或开始运行的状态信号转换为表示与所述第二胶合逻辑模块连接的HAC停止运行或开始运行的状态信号。
14.根据权利要求12或13所述的调试方法,其特征在于,所述第四接口为所述HAC接收时钟信号的接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610066366.8A CN105740119A (zh) | 2016-01-29 | 2016-01-29 | 一种芯片及芯片内多核的调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610066366.8A CN105740119A (zh) | 2016-01-29 | 2016-01-29 | 一种芯片及芯片内多核的调试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105740119A true CN105740119A (zh) | 2016-07-06 |
Family
ID=56247175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610066366.8A Pending CN105740119A (zh) | 2016-01-29 | 2016-01-29 | 一种芯片及芯片内多核的调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105740119A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415842A (zh) * | 2018-03-21 | 2018-08-17 | 杭州中天微系统有限公司 | 多核处理器 |
CN116909794A (zh) * | 2023-07-24 | 2023-10-20 | 中科驭数(北京)科技有限公司 | 异常状态信息的输出装置、方法、设备及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1667427A (zh) * | 2005-04-20 | 2005-09-14 | 威盛电子股份有限公司 | 芯片测试方法及相关装置 |
CN101506777A (zh) * | 2006-08-21 | 2009-08-12 | Nxp股份有限公司 | 多处理器系统以及使多处理器系统的调试处理同步的方法 |
US20110219217A1 (en) * | 2010-03-08 | 2011-09-08 | Mobileye Technologies Ltd. | System on Chip Breakpoint Methodology |
CN103299282A (zh) * | 2010-12-02 | 2013-09-11 | 超威半导体公司 | 调试状态机和包括所述调试状态机的处理机 |
CN104503728A (zh) * | 2015-01-04 | 2015-04-08 | 华为技术有限公司 | 一种硬件加速器及芯片 |
CN105224454A (zh) * | 2015-09-25 | 2016-01-06 | 华为技术有限公司 | 一种调试方法、多核处理器和调试设备 |
-
2016
- 2016-01-29 CN CN201610066366.8A patent/CN105740119A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1667427A (zh) * | 2005-04-20 | 2005-09-14 | 威盛电子股份有限公司 | 芯片测试方法及相关装置 |
CN101506777A (zh) * | 2006-08-21 | 2009-08-12 | Nxp股份有限公司 | 多处理器系统以及使多处理器系统的调试处理同步的方法 |
US20110219217A1 (en) * | 2010-03-08 | 2011-09-08 | Mobileye Technologies Ltd. | System on Chip Breakpoint Methodology |
CN103299282A (zh) * | 2010-12-02 | 2013-09-11 | 超威半导体公司 | 调试状态机和包括所述调试状态机的处理机 |
CN104503728A (zh) * | 2015-01-04 | 2015-04-08 | 华为技术有限公司 | 一种硬件加速器及芯片 |
CN105224454A (zh) * | 2015-09-25 | 2016-01-06 | 华为技术有限公司 | 一种调试方法、多核处理器和调试设备 |
Non-Patent Citations (2)
Title |
---|
杨文显: "《现代微型计算机与接口教程》", 30 September 2003, 清华大学出版社 * |
海博创作室: "《嵌入式控制器硬件设计》", 31 January 2002, 浦东电子出版社 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415842A (zh) * | 2018-03-21 | 2018-08-17 | 杭州中天微系统有限公司 | 多核处理器 |
WO2019179531A1 (en) * | 2018-03-21 | 2019-09-26 | C-Sky Microsystems Co., Ltd. | Debugging solution for multi-core processors |
CN108415842B (zh) * | 2018-03-21 | 2021-01-29 | 杭州中天微系统有限公司 | 多核处理器 |
US11215665B2 (en) | 2018-03-21 | 2022-01-04 | C-Sky Microsystems Co., Ltd. | Debugging solution for multi-core processors |
CN116909794A (zh) * | 2023-07-24 | 2023-10-20 | 中科驭数(北京)科技有限公司 | 异常状态信息的输出装置、方法、设备及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104483959A (zh) | 故障模拟与测试系统 | |
CN108959678B (zh) | 用于测试卫星线束和信号处理单元的设计的方法和装置 | |
CN104750603A (zh) | 一种多核dsp软件仿真器及其物理层软件测试方法 | |
CN113342583B (zh) | 芯片验证系统、方法、装置、设备和存储介质 | |
CN103036734A (zh) | 网络芯片逻辑验证方法及系统 | |
CN101446988B (zh) | 基于软件对通用异步收发器进行自动化测试的装置及方法 | |
CN109885905B (zh) | 一种提高数字电路功能验证效率的验证系统 | |
CN110321292A (zh) | 芯片测试方法、装置、电子设备及计算机可读存储介质 | |
CN114707236A (zh) | 一种基于模型的虚实结合仿真试验方法 | |
US9117018B2 (en) | Method of debugging software and corresponding computer program product | |
CN101763299B (zh) | 一种通用串行总线设备测试方法和装置 | |
CN105740119A (zh) | 一种芯片及芯片内多核的调试方法 | |
CN108228454B (zh) | 一种基于环境故障注入的机电产品软件可靠性评价方法 | |
CN112100085B (zh) | 安卓应用程序稳定性测试方法、装置和设备 | |
CN109933368A (zh) | 一种指令的发射和验证方法及装置 | |
CN113254296A (zh) | 芯片slt测试的软件实现方法及系统 | |
CN103136078A (zh) | 基于c模型的多接口仿真测试系统 | |
CN115454881B (zh) | Risc-v架构的调试系统及调试方法 | |
CN111008102A (zh) | Fpga加速卡高速接口si测试控制装置、系统及方法 | |
CN114706768A (zh) | I3c总线验证方法及验证系统 | |
Mahale et al. | Architecture Analysis and Verification of I3C Protocol | |
CN109446002A (zh) | 一种用于服务器抓取sata硬盘的治具板、系统及方法 | |
CN115981928A (zh) | 处理器远程调试方法、系统以及存储介质 | |
CN108415839A (zh) | 多核SoC芯片的开发架构及多核SoC芯片的开发方法 | |
CN114444423B (zh) | 基于验证平台的数据处理方法、系统及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160706 |