多核心处理器的调试系统与调试方法技术领域
本发明是有关于一种调试系统,且特别是有关于一种多核心处理器的调试系统
与调试方法。
先前技术
随着科技的进步,多核心(multi-core)架构平台提供了精简的尺寸、低耗的电能、
却拥有强大运算能力的平台,來实现各种应用内容的整合。对于多核心架构平台来
说,在软件开发的过程中,必然使用到调试器来进行调试。传统的调试系统10例
如图1所示,其中电脑主机110可包括调试器的软件部分,调试目标系统150则包
括待调试的处理器。随着调试目标系统150中核心数目的增加,软件的复杂度也随
着增加。因此,在多核心的系统上,一个完整的调试系统对软件的发展而言是相当
重要的。
目前处理器早已进入多核心的趋势,实验室里制造的多核心架构平台已经可以
达到几十个内核心,而且可能是包含多种不同核心的异质(heterogeneous)多核心平
台。于已知的技术中,每一个核心可视为独立的处理器,且各自需要一个专属的调
试系统。如果多核心架构平台有二十个内核心,意谓着需要二十个如图1所示的除
错系统架构,这会使调试系统的软硬件复杂化,成本上升,且使用上也有诸多不便。
如果有多个内核心负责同一工作,这些核心必须同时开始执行并同时进入调试状
态,因为调试器各自独立,加上使用者逐一操作的时间差,会使上述的同步需求难
以达成。
为了调试异质多核心处理器中的多个内核心,一种现有的解决方式是采用私有
架构的整体重新开发。然而,此种解决方式虽然灵活性较大,但不仅开发周期长且
软件的维护也复杂。另外,还有一种解决方式是于同一时间仅调试或监看单一个内
核心的运作状态,再透过切换核心的方式而达到对不同内核心分别进行调试与控制
的目的。然而,此种解决方式并无法达成对多个核心同步调试的目的。
发明内容
有鉴于此,本发明提供一种多核心处理器的调试系统与调试方法,无须透过复
杂且庞大软件开发就可实现一种功能强大的多核心处理器的调试系统,并达到同时
对多个内核心进行调试目的。
本发明提出一种多核心处理器的调试系统,其包括调试主机、目标处理器以及
映射与协议转换装置。此调试主机包括一调试器(debugger),而此目标处理器包括
多个内核心。映射与协议转换装置连接于调试主机与目标处理器之间,辨识各内核
心所属的核心架构,并依据各内核心所属的核心架构将每一内核心分别映射至至少
一进程(process)底下的至少一线程(thread)。之后,调试器依据各内核心所对应的进
程与线程来对目标处理器进行一调试程序。
在本发明的一范例实施例中,所述的核心架构至少包括第一类架构与第二类架
构,而映射与协议转换装置将这些内核心中属于第一类架构的第一内核心映射至进
程中的第一进程,并将这些内核心中属于第二类架构的第二内核心映射至进程中的
第二进程。
在本发明的一范例实施例中,所述的核心架构包括第一类架构,而内核心至少
包括第一内核心以及第二内核心。当内核心中的第一内核心与第二内核心同属于第
一类架构,映射与协议转换装置将第一内核心与第二内核心一同映射至进程中的第
一进程。并且,映射与协议转换装置将第一内核心与第二内核心分别映射至第一进
程底下的第一线程与第二线程。
在本发明的一范例实施例中,其中同属于第一类架构的第一内核心以及第二内
核心运作于一对称型处理状态。
在本发明的一范例实施例中,所述的核心架构包括第一类架构,而内核心至少
包括第一内核心以及第二内核心。当内核心中的第一内核心与第二内核心同属于第
一类架构,映射与协议转换装置将第一内核心映射至进程中的第一进程底下的第一
线程,并将第二内核心映射至进程中的第二进程底下的第二线程。
在本发明的一范例实施例中,其中同属于第一类架构的第一内核心以及第二内
核心运作于一非对称型处理状态。
在本发明的一范例实施例中,所述的调试主机包括图形使用者面模块。此图形
使用者面模块提供一使用者界面以接收操作命令,且调试器输出对应操作命令的调
试指令至映射与协议转换装置。
在本发明的一范例实施例中,所述的映射与协议转换装置包括控制伺服器以及
协议转换介面装置。控制伺服器经由网络介面连接调试器,控制内核心映射至进程
底下的线程。协议转换介面装置透过第一传输介面与控制伺服器连接,并透过第二
传输介面与目标处理器连接。协议转换介面装置将来自控制伺服器的资料转换成符
合第二传输介面的协议标准的信号。
在本发明的一范例实施例中,于所述的调试器对目标处理器进行调试程序期
间,目标处理器输出关联于内核心中第一内核心的核心调试资料至映射与协议转换
装置。映射与协议转换装置依据第一内核心所对应的进程其中之一与线程其中之一
将核心调试资料封装为调试讯息,并将调试讯息传回至调试器。
从另一观点来看,本发明提出一种多核心处理器的调试方法,适用于一调试系
统。此调试系统包括调试主机、目标处理器以及映射与协议转换装置,而目标处理
器包括多个内核心。所述方法包括下列步骤。连接目标处理器与映射与协议转换装
置。由映射与协议转换装置辨识各内核心所属的核心架构,并依据各内核心所属的
核心架构将内核心映射至至少一进程底下的多个线程。之后,由调试主机的调试器
依据各内核心所对应的进程与线程来对目标处理器进行一调试程序。
基于上述,在本发明的调试系统中,基于调试器对多进程与多线程的调试机制
的支持,将多核心处理器的各个内核心映射为各自对应的进程与线程,从而利用调
试主机的调试器对多核心处理器的各多个内核心进行同步的调试。如此,无论是同
质(homogeneous)多核心处理器或异质多核心处理器,本发明的调试系统与调试方
法皆适用,并可降低调试系统开发成本以及提高调试系统使用上的便利性。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作
详细说明如下。
附图说明
图1是已知的一种调试系统的示意图。
图2是依照本发明一实施例所绘示的多核心处理器的调制系统的示意图。
图3是依照本发明一实施例所绘示的将多个内核心映射至进程与线程的范例
示意图。
图4是依照本发明另一实施例所绘示的多核心处理器的调制系统的示意图。
图5是依照本发明一实施例所绘示的调试方法的流程图。
符号说明
10、20、30、40:调试系统
110:电脑主机
150:调试目标系统
210:调试主机
211、411:图形使用者介面模块
212、412:调试器
220、421:映射与协议转换模块
230、430:目标处理器
231_1~231_N、431_1~431_N:内核心
421:控制伺服器
422:协议转换介面装置
P_1~P_M:进程
T_1~T_N:线程
I1:网络介面
I2、I3:传输介面
S501~S503:本发明一实施例所述的调试方法的各步骤
具体实施方式
图2是依照本发明一实施例所绘示的多核心处理器的调试系统的示意图。请参
照图2,调试系统包括调试主机210、映射与协议转换装置220以及目标处理器230。
调试主机210例如是桌上型电脑、笔记型电脑或其他具有运算功能的计算机装置
等,在此并不限制其范围。目标处理器230例如是封装成单一晶片的嵌入式微处理
器或微控制器等,在此并不限制其范围。于本范例实施例中,目标处理器230包括
多个内核心231_1~231_N,其中N为大于1的整数,本发明对于内核心的数量并
无限制。再者,目标处理器230可以是同质核心处理器或异质核心处理器,本发明
对此并不限制。换言之,这些内核心231_1~231_N可分别隶属于相同或不同的核
心架构。
于本范例实施例中,调试主机210可接收使用者所下达的操作指令对目标处理
器230中的多个内核心进行调试,从而判断目标处理器230是否可正常的执行工作。
于本范例实施例中,调试主机210包括图形使用者介面模块211以及调试器212。
在本范例实施例中,图形使用者介面模块211以及调试器212包可括正常运作所需
的硬件元件(例如,处理器、晶片组、控制器或特定电路、储存单元等)及/或软件元
件(例如,专门用以实现特定功能的软件模块或函式等)。
调试器212为一种用于侦错(debug)其它程序的电脑程序及工具,其能够让程
序码在指令组模拟器中可以检查运行状况以及选择性地运行,以便排错、除错。举
例而言,调试器212可以是GDB(GunDebugger)调试器,其具有针对多种不同内核
心架构上所执行的软件进行调试与侦错的能力。这些内核心架构例如是ARM公司
开发的ARM、Hitachi公司开发的H8/300、IBM公司开发的System/370、Intel公
司开发的X86及X86-64、Motorola公司开发的Motorola68000、MIPS公司开发的
MIPS、HP公司开发的PA-RISC等等,在此并不限制其范围。
图形使用者介面模块211提供一使用者界面以接收操作命令,调试器212输出
对应上述操作命令的调试指令至映射与协议转换装置220。上述调试指令例如是开
始调试指令、结束调试指令、设定中断点(breakpoint)指令或设定监视点(watchpoint)
指令等。换言之,图形使用者介面模块211用以提供使用者操作介面给使用者,让
使用者可透过使用者操作介面下达有关于调试目标处理器230的相关指令。于一范
例实施例中,图形使用者介面模块211以及调试器212例如可整合为整合开发环境
(IntegratedDevelopmentEnvironment,IDE)平台。整合开发环境平台是供调试主机
210执行的整合式调试系统软件,提供使用者操作界面供使用者操作并下达命令。
于本范例实施例中,映射与协议转换装置220连接于调试主机210与目标处理
器230之间。映射与协议转换装置220用于将目标处理器230的各个内核心231_1~
231_N的核心调试资料转换为调试主机210可辨识及处理的进程或线程。其中,映
射与协议转换装置220例如是透过通用串列汇流排协定(UniversalSerialBus,USB)
介面或网络介面(如TCP/IP协定介面)与调试主机210相连接,而映射与协议转
换装置220例如是透过联合测试动作群组协定(JointTestActionGroup,JTAG)介面
与目标处理器230相连接。映射与协议转换装置220辨识各个内核心231_1~231_N
所属的核心架构,并依据各内核心231_1~231_N所属的核心架构将每一内核心分
别映射至至少一进程底下的至少一线程。
具体来说,映射与协议转换装置220可辨识每一内核心231_1~231_N的核心
架构,并依据每一内核心231_1~231_N各自的核心架构决定每一内核心231_1~
231_N各自对应的进程与线程。如此,调试器212可依据各内核心231_1~231_N
所对应的进程与线程来对目标处理器230进行调试程序。
详细来说,于调试器212对目标处理器230进行调试程序期间,目标处理器
230输出关联于内核心231_1~231_N各自的核心调试资料至映射与协议转换装置
220。之后,映射与协议转换装置220依据内核心231_1~231_N各自对应的进程
与线程将各个内核心231_1~231_N的核心调试资料封装为调试讯息,并将调试讯
息传回至调试器212。基此,调试主机210不仅可同时对目标处理器230中的多个
内核心231_1~231_N进行监看与调试,更可藉由调试器212的强大功能对属于不
同核心架构下的多个内核心231_1~231_N进行调试。
也就是说,于调试主机210调试目标处理器230的过程中,透过映射与协议转
换装置220将各个内核心231_1~231_N分别映射至少一进程底下的至少一线程,
调试器212可将多核心的硬件系统视为多进程与多线程系统,从而可藉由现有的调
试器实现调试异质及同质多核处理器的目的。
为了进一步说明如何将多个内核心映射为进程与线程,以下将列举实施例详细
说明。图3是依照本发明一实施例所绘示的将多个内核心映射成进程与线程的范例
示意图。于本范例实施例中,属于不同的核心架构的内核心将分别映射为不同的软
件进程。请参照图3,当映射与协议转换装置220连接至目标处理器230时,映射
与协议转换装置220可逐一辨识出内核心231_1~231_N的核心架构,并依据各内
核心231_1~231_N所属的核心架构将每一内核心231_1~231_N分别映射至进程
P_1~P_M底下的线程T_1~T_N。
详细来说,于图3所示的范例实施例中,假设内核心231_1以及内核心231_2
的核心架构属于相同的第一类架构,且内核心231_N的核心架构属于与第一类架
构相异的第二类架构。换言之,本例中的目标处理器230为异质多核心处理器。于
本范例实施例中,映射与协议转换装置220将属于不同类架构的内核心分别映射至
不同的进程。例如,将内核心231_1~231_N中属于第一类架构的内核心231_1映
射至进程P_1~P_M中的进程P_1,并将属于第二类架构的内核心231_N映射至与
进程P_1不同的进程P_M。更进一步来说,映射与协议转换装置220会将内核心
231_1映射至进程P_1底下的一个线程T_1,并将内核心231_N映射至另一进程
P_M底下的一个线程T_N。
另外需特别说明的是,于一范例实施中,对于同属于第一类架构的内核心
231_1以及内核心231_2来说,映射与协议转换装置220可进一步根据内核心231_1
以及内核心231_2之间的耦合关系来决定内核心231_1以及内核心231_2各自对应
的进程与线程,例如将内核心231_1映射至进程P_1下的线程,并将内核心231_2
映射至进程P_2下的线程。然而,本发明并不限制至于此,于另一实施例中,映
射与协议转换装置220也可将同属于第一类架构的内核心231_1以及内核心231_2
直接映射至相同进程(如进程P_1)底下的相异线程(如线程T_1及线程T_2)。
以下分别举例说明。
于图3所示的范例实施例中,内核心231_1~231_N中的内核心231_1与内核
心231_2同属于第一类架构,且内核心231_1以及内核心231_2运作于对称型处理
(Symmetricmultiprocessing,SMP)状态。于是,映射与协议转换装置220将内核心
231_1与内核心231_2一同映射至进程P_1~P_M中的同一个进程P_1,且映射与
协议转换装置220将内核心231_1与内核心231_2分别映射至进程底P_1下的线
程T_1与线程T_2。
相较之下,于另一范例实施例中,多个内核心中的第一内核心与第二内核心同
属于第一类架构,但第一内核心以及第二内核心运作于非对称型处理(非SMP)状
态。于是,映射与协议转换装置220可将第一内核心与第二内核心分别映射至不同
进程底下的线程。举例来说,映射与协议转换装置220可将第一内核心映射为第一
进程底下的第一线程,并将第二内核心映射至第二进程底下的第二线程。其中,第
一进程相异于第二进程,而第一线程相异于第二线程。特别说明的是,本发明对于
同一架构下的不同内核心的映射方式并不限于上述范例,例如同一架构下运作于
SMP状态的内核心231_1与231_2也可分别映射到不同进程下的不同线程。又或
者,同一架构下运作于非SMP状态的内核心亦可映射到同一进程,再分别对应到
不同线程。
图4是依照本发明另一实施例所绘示的多核心处理器的调试系统的示意图。请
参照图4,调试系统40包括图形使用者介面模块411、调试器412、映射与协议转
换装置420以及目标处理器430,其功能与耦接关系与图2所示的图形使用者介面
模块211、调试器212、映射与协议转换装置220以及目标处理器230相同或相似,
于此不再赘述。
与前述实施例不同的是,本范例实施例的映射与协议转换装置420可包括一控
制伺服器421以及协议转换介面装置422。此外,本范例实施例的目标处理器430
包括四个内核心430_1~430_4。控制伺服器421经由网络介面I1连接调试器412,
例如可实现GDB的标准远程通信协议(RemoteSerialProtocol,RSP)介面。控制伺
服器421控制内核心430_1~430_4分别映射至“进程”、“进程”、“进程”
底下的“线程”、“线程”、“线程”、“线程”。
协议转换介面装置422透过传输介面I2与控制伺服器421连接,并透过传输
介面I3与目标处理器430连接。协议转换介面装置422将来自控制伺服器421的
资料转换成符合传输介面I3的协议标准的信号。举例来说,传输介面I2例如是
USB传输介面而传输介面I3例如是JTAG协定传输介面。基此,协议转换介面装
置422可将经由USB传输介面传输的信号转换为用于仿真处理器的硬件仿真器真
正使用的JTAG协定信号。
于本范例实施例中,假设内核心430_1以及内核心430_2的核心架构同属于第
一架构(如ARM架构),且内核心430_3以及内核心430_4的核心架构同属于第
二架构(如MIPS架构)。此外,内核心430_1以及内核心430_2运作于SMP状态,
且内核心430_3以及内核心430_4运作于非SMP状态。于是,控制伺服器421可
将内核心430_1以及内核心430_2分别映射至相同的“进程”底下的“线程”
以及“线程”。另外,控制伺服器421将内核心430_3映射至“进程”底下的“线
程”,并将内核心430_4映射至“进程”底下的“线程”。
也就是说,控制伺服器421将运行于SMP状态下且皆属于ARM架构的内核
心430_1以及内核心430_2映射为同一个进程下的两个线程,并可由具有ARM版
本的调试器412负责执行调试程序。基此,调试器412仅能察觉包含两个线程的一
个进程,并无法接收到任何有关内核心430_1以及内核心430_2的内核资讯。
另一方面,控制伺服器421将运行于非SMP状态下且皆属于MIPS架构的内
核心430_3以及内核心430_4分别映射为两个独立进程下的两个线程,并可由具有
MIPS版本的调试器412负责执行调试程序。基此,调试器412仅能察觉有各自包
括一个线程的二个进程,并无法接收到任何有关内核心430_3以及内核心430_4
的内核资讯。
上述范例中仅以第一架构及第二架构为例说明,但本发明并不限所述架构的数
量,亦不限制每一种架构需对应多个内核心。
由于从调试器412的角度只看到了标准的进程和线程资讯,调试器412和下层
的控制伺服器421之间的通讯协定也保持不变。如此,可以完全藉由现行的调试器
412和图形使用者介面模块411来完成同质或异质多核心处理器的调试工作,节省
了大量的开发工作。
图5是依照本发明一实施例所绘示的调试方法的流程图,适用于图2所示的调
试系统20。请同时参照图2与图5,于步骤S501,连接目标处理器230与映射与
协议转换装置220。于步骤S502,由映射与协议转换装置220辨识各内核心231_1~
231_N所属的核心架构,并依据各内核心231_1~231_N所属的核心架构将内核心
231_1~231_N映射至至少一进程底下的线程。于步骤S503,由调试主机210的调
试器212依据各内核心231_1~231_N所对应的进程与线程来对目标处理器230进
行一调试程序。
综上所述,本发明的映射与协议转换装置可将多核心处理器的各个内核心映射
为各自对应的进程与线程,好让调试主机的调试器可对多核心处理器的多个内核心
进行同步的调试,且本发明的调试系统对于同质多核心处理器或异质多核心处理器
皆适用。此外,本发明可以完全藉由现行的软件调试器来完成异质多核心处理器的
调试工作,节省了大量的开发工作并降低硬件仿真器的制造成本。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领
域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,
故本发明的保护范围当视权利要求界定为准。