一种分布式片上调试系统的制作方法

文档序号:6402291阅读:99来源:国知局
专利名称:一种分布式片上调试系统的制作方法
技术领域
本发明涉及多核片上系统(SOC)领域,尤其涉及一种分布式片上调试系统。
背景技术
多核片上系统(SOC)以其高性能低功耗等优异特点,正成为集成电路设计的热点之一。由于SOC的高集成度和低可视性的特点,没有调试系统的SOC在开发的过程中将面临很多困难,调试系统作为SOC的高性能开发的重要部分,可以对开发的芯片进行调试和诊断以解决开发过程中的困难,从而提高产品开发的效率和性能,促进SOC的发展。此外,可调试性设计作为硅后验证的重要技术,帮助硬件设计者发现和定位功能设计过程中存在的问题。因此,调试系统设计已成为多核SOC设计中的一个重要环节。在众多调试方法中,片上调试方法能满足高集成度系统芯片的调试要求,软件开发阶段效率高且不破坏程序运行现场,在硬件系统中具有可扩展和复用的特点,对于软件开发过程具有降低成本和节约时间等优点,因而成为当前最流行的调试方法。片上调试系统通常能实现被调试核运行程序追踪,被调试核运行控制和数据监控等功能。被调试核运行程序追踪功能可以追踪到被调试核当前处理的程序。被调试核运行控制功能可以使被调试核进入调试模式下并通过与流水线的交互控制被调试核运行,此类功能通常有调试开始、调试中断、调试结束、程序单步执行和断点管理等。数据监控功能监控被调试核的程序员可见寄存器和存储器的读写,以实现对目标系统运行的基本可观察性。调试系统所需完成的功能是影响调试系统部件设计的因素之一。

发明内容
本发明为提高多核SOC的开发效率和性能,提出一种可针对单核、同构多核或异构多核SOC进行调试的片上调试系统,该系统包括:调试系统接口,其与调试主机进行信息交互;集中调试模块,其通过调试系统接口从调试主机接收调试数据包,并将所述调试数据包解析成多核调试命令,并在调试结束后,通过调试系统接口将调试结果上传给调试主机;交换网络,其用于接收所述多核调试命令,并将其转换成单核命令后发送给相应的分布式调试模块;其还用于从分布式调试模块接收调试结果并返回给集中调试模块;至少一个分布式调试模块,其用于根据从交换网络接收到的单核调试命令对待调试核进行调试,并将调试结果返回给交换网络。本发明提出的上述调试系统包括多个分布式调试模块和一个集中调试模块的结构,每一个分布式调试模块调试一个待调试核,可以实现多个核同时被调试且提高多核调试效率,而集中调试模 块即可实现对多核调试进行命令解析和调试结果信息上传,不影响调试效率且可以节约制造成本。另外,该调试系统还通过一个集中调试模块实现了数据串行一数据并行一数据串行过程,使得调试过程加速并减少了系统中模块间的连线,节约了成本。


图1是本发明中分布式片上调试装置及和被调试核的结构示意图。图2是本发明中内嵌分布式调试装置的片上系统结构示意图。图3是本发明片上系统中的集中调试模块示意图。图4是本发明片上系统中的全局调试模块示意图。图5是本发明片上系统中的分布式调试模块示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。本发明公开了一种分布式片上系统调试方法及其装置。图1示出了本发明提出的分布式片上系统调试装置结构示意图。如图1所示,其包括用于调试信息交互的调试系统接口 100,用于解析和上传调试数据包的集中调试模块101,多核调试交换网络102,一个全局调试模块111和用于实现调试功能的若干分布式调试模块103。调试系统接口 100为用于接收和发送调试数据包的片上总线高速串行接口,占用管脚少。集中调试模块101只有一个,即可实现将调试数据包解析为多核调试命令,同时将多核调试结果信息数据包上 传给调试主机。用一个集中调试模块实现多核调试可以减少功耗降低芯片制造成本。该集中调试模块101包括一个调试数据包解析模块104和一个调试信息数据包上传模块105。调试数据包解析模块104接收来自调试系统接口 100的串行的调试数据包并解析成并行传输的多核调试命令,再将多核调试命令下行到交换网络102。调试信息数据包上传模块105将来自分布式或全局调试模块的调试结果信息,通过调试系统接口 100上传给调试主机。交换网络102接收来自调试数据包解析模块104的多核调试命令,将多核调试命令转换成广播、组播或者单播的全局调试命令和单核调试命令分别发送到全局调试模块111和特定的分布式调试模块103。同时将来自各调试模块的单核调试信息汇集成多核调试信息并传送给调试信息数据包上传模块105。交换网络102根据调试数据包中的相应命令选择性地开启全局调试模块,其中,调试数据包中包含用于抉择调试模块的字段编址,当需要对调试过程信息需要进行监控时,调试人员设置该字段以开启全局调试模块。此外,交换网络102提供对多核环境中的多电压多频率域之间的数据同步。交换网络可以应用于调试任意数量核的调试系统。全局调试模块111用于观测每一个分布式调试模块的调试状态,也可以观测到多个分布式调试模块之间工作的调试情况。该全局调试模块111主要用于监控各个分布式调试模块在调试过程中的事件触发信息和先后次序,并将监控到的调试事件触发信息返回给交换网络102。全局调试模块111在调试中可以开启也可以不开启,其开启与否是由调试主机发送的调试命令决定。全局调试模块111包括调试控制装置112、观测装置113、全局调试观测通道114和全局调试控制通道115。其中,所述调试控制装置112用于通过全局调试控制通道115发送调试命令给每一个分布式调试模块103 ;观测装置113用于通过全局调试观测通道114整体监控每一个分布式调试模块的调试状态。所述多个分布式调试模块103中,每一个分布式调试模块都连接一个待调试的目标单核110,且每个分布式调试模块并行运行,实现对多核的并行调试。其中,每个分布式调试模块103包括一个单核调试观测装置106,一个单核调试控制装置107以及若干个探头通道 108。所述单核调试观测装置106通过探头通道108检测对待调试的目标单核110在调试过程中触发的事件并采集相应的数据等调试信息,同时将观测到的调试信息上传给交换网络102 ;另外,在全局调试模块111被开启的情况下,所述单核调试观测装置106还将中间调试事件触发信息上传给全局调试模块111。单核调试控制装置107接收来自交换网络102或全局调试模块111的调试控制命令和调试数据,并通过探头通道108发送调试命令给被调试目标单核110。探头通道108包含若干探头电路109,实现分布式调试模块103和待调试核110之间的调试信息交互。图示中的116 118也是探头通道,本实施例中探头通道108作为地址下行通道连接用于上传地址的探头通道116,探头通道117作为数据下行通道与用于上传数据的探头通道118相连。下行方向的通道发送来自单核调试控制装置107的调试地址和数据到待调试核110,然后上行的探头通道采集待调试核110的调试结果信息并上传给单核调试观测装置106,以回路的方式实现分布式调试模块103和待调试核110之间的调试信息交互。探头电路109作为直接与待调试核进行信息交互的部件,以串行传输的方式发送调试地址和下行数据信息给待 调试核,也同时以串行传输的方式采集待调试核的调试结果数据,并上传给单核调试观测装置106,串行传输很大程度上能够提高信息传输速率。此外探头电路109可以被设计为寄存器读写探头电路、存储器读写探头电路、硬件断点探头电路、观测点探头电路或当前执行程序追踪探头电路等多种类型的探头电路。下面以双核SOC调试系统为例,并结合图2至图5深入阐述本发明提出的分布式片上系统调试装置中各模块功能及调试过程。如图2所示,该双核SOC调试系统200包括一个调试系统接口 201,一个集中调试模块202,一个交换网络203,两个分布调试模块204、205和一个全局调试模块206。该双核SOC调试系统200与外部的调试主机207进行交互,所述调试主机207具有调试软件,调试软件将调试任务编码成三类调试数据包,分别是调试命令数据包、数据信息数据包和特殊功能数据包。其中调试命令数据包包含调试命令,数据信息数据包为写入的调试数据,特殊功能数据包用于实现空操作的特殊功能。调试主机207将包含调试命令的调试数据包发送到双核SOC系统200。双核SOC系统中的集中调试模块202通过调试系统接口 201接收到调试主机发送的调试数据包以后,对调试数据包进行命令解析,并在调试完成以后,将调试结果信息上传给调试主机207。这种方式既不影响调试效率且可以节约制造成本。另外,利用两个分布式调试模块205分别调试两个待调试核,这样不需要单独调试双核即可实现两个核同时被调试,以此提高调试效率。所述调试系统接口 201是基于JTAG协议的高速串行硬件调试接口,该接口与调试系统外部的调试主机207实现数据串行交互,此处数据串行可以提高数据传输速率。集中调试模块202将接受到的串行调试数据转换为并行数据发送给交换网络203。交换网络203将多核调试命令转换成单播、广播或组播的单核调试命令发送给全局调试模块206和分布式调试模块204、205。集中调试模块202将调试数据包解析为多核调试命令并返还调试信息数据包给调试主机207。交换网络203根据多核调试命令中调试模块选择字段编址决定是否开启全局调试模块并选择开启某几个分布式调试模块,并将多核调试命令转换为单核调试命令发送给所选取的分布式调试模块,并且可以将所选取的分布式调试模块返回的单核调试信息汇集成多核调试信息数据包上传给集中调试模块202。全局调试模块206被选择启用时,可以控制和监控各分布式调试模块。图3示出了本发明上述优选实施例中集中调试模块的结构示意图。如图3所示,集中调试模块300包括调试数据包解析模块301和调试信息数据包上传模块302。所述调试数据包解析模块301接收来自调试系统接口的串行调试数据包并解析成并行传输的多核调试命令,再将多核调试命令下行到交换网络。调试信息数据包上传模块302将来自分布式或全局调试模块的调试结果信息,通过调试系统接口上传给调试主机。交换网络203将多核调试命令转换成单核调试命令,根据调试命令的选择字段选通数据包下行目的地和数据包上传来源。该优选实施例中由多核调试命令中的选择字段选通全局调试模块和两个分布调试模块。图4示出了本发明上述优选实施例中全局调试模块的结构图。如图4所示,全局调试模块406包括调试控制装置407、观测装置408、全局观测链路409和全局调试控制链路410。观测装置408通过全局观测链路409观测所有分布式调试模块的调试结果信息,并可以上传观测到的调试信息至交换网络411。调试控制装置407通过全局调试控制链路410发送来自交换网络411的下行调试命令给各分布式调试模块的单核控制装置。全局调试模块406可以发送调试信息给每一个分布式调试模块,也可以整体监控每一个分布式调试模块的调试状态。图5示出了本发明优选实施例中分布式调试模块的结构示意图。如图5所示,其包括一个单核调试控制装置501、一个单核调试观测装置502和若干个探头通道505 508。其中探头通道505和506为下行传输探头通道,507和508为采集调试信息的上传探头通道。探头通道503和探头通道504作为连接全局调试模块的链路通道,分别负责接收来自全局调试模块的调试任务和上传单核调试结果信息回全局调试模块。本优选实施例中,双核SOC调试系统的调试过程可以总结为:调试主机207由自身所含有的调试软件将调试任务编码成包含调试命令的调试数据包,并经过调试系统接口201将数据包串行输入到集中调试模块202。之后,集中调试模块202中的调试数据包解析模块301将串行的调试数据包解析为并行传输的多核调试命令并发送给交换网络203。然后,交换网络203将多核调试命令转换成 单核调试命令,并根据调试数据包中的特定字段选择全局调试模块或分布式调试模块,将相应的单核调试命令发送给相应的调试模块。之后,分布式调试模块接收到单核调试命令后,由单核控制装置501将单核调试命令中的地址信息和数据信息提取并发送给下行地址探头通道505和下行数据地址探头通道506,探头通道中的探头电路与待调试核交互后并由上传地址探头通道和上传数据探头通道中的探头电路采集调试信息经由两个上行探头通道507,508上传调试结果信息给单核调试观测装置502。最后,多核分布式调试模块中的单核调试观测装置中的调试结果信息在交换网络中汇集成多核调试结果信息上传到集中调试模块300中的调试信息数据包上传模块302,最后通过调试系统接口 201将调试结果信息返还给调试主机207,以此实现数据环路传输达到调试目的。此外,全局调试模块406可以观测到每一个分布式调试模块的调试状态,以及多个分布式调试模块之间的先后工作情况。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所 做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种分布式片上系统调试系统,其包括: 调试系统接口,其与调试主机进行信息交互; 集中调试模块,其通过调试系统接口从调试主机接收调试数据包,并将所述调试数据包解析成多核调试命令,并在调试结束后,通过调试系统接口将调试结果上传给调试主机; 交换网络,其用于接收所述多核调试命令,并将其转换成单核命令后发送给相应的分布式调试模块;其还用于从分布式调试模块接收调试结果并返回给集中调试模块; 至少一个分布式调试模块,其用于根据从交换网络接收到的单核调试命令对待调试核进行调试,并将调试结果返回给交换网络。
2.如权利要求1所述的调试系统,其特征在于,所述至少一个分布式调试模块包括两个或多个分布式调试模块,且所述两个或多个分布式调试模块分别对其挂载的待调试核进行调试。
3.如权利要求1所述的调试系统,其特征在于,所述调试系统还包括全局调试模块,其用于监控所述至少一个分布式调试模块的调试过程,并将调试过程信息返回给调试主机。
4.如权利要求1所述的调试系统,其特征在于,所述集中调试模块接收到的调试数据为串行数据,其将所述串行数据解析成并行多核调试命令;待调试完成后,将并行调试结果转为串行数据上传调试主机。
5.如权利要求1所述的调试系统,其特征在于,所述分布式调试模块包括单核调试观测装置和单核调试控制装置,所述单核调试观测装置用于检测调试信息,并将检测到的调试信息上传给交换网络;所述单核调试控制装置用于发送调试命令给待调试核。
6.如权利要求5所述的调试系统,其特征在于,所述分布式调试模块包括多个探头通道,其以串行传输方式发送调试命令给待调试核,同时以串行方式采集待调试核的调试结果数据。
7.如权利要求6所述的调试系统,其特征在于,所述多个探头通道包括下行通道和上行通道,其中所述下行通道和上行通道相互连接,分别用于将调试数据中信息发送给待调试核和将从待调试核采集到的调试结果数据信息返回给单核调试控制装置。
8.如权利要求6所述的调试系统,其特征在于,所述多个探头通道分别包括多个探头电路,其包括寄存器读写探头电路、存储器读写探头电路、硬件断点探头电路、观测点探头电路或当如执行程序追踪探头电路。
9.如权利要求1所述的调试系统,其特征在于,所述调试系统接口为高速串行硬件调试接口。
全文摘要
本发明公开了一种可针对单核、同构多核或异构多核进行调试的装置,包括调试系统接口,集中调试模块,交换网络,全局调试模块和若干个分布式调试模块。该装置对目标核调试时,调试系统接口接收调试数据包并发送到集中调试模块进行命令解析,调试命令经过交换网络被发送到每个处理核所对应的分布式调试模块,各调试模块的调试结果信息经过集中调试模块被上传至调试系统接口。全局调试模块可以下行调试命令至各分布式调试模块并监控各分布式调试模块的调试事件状态。
文档编号G06F11/22GK103226504SQ20131013945
公开日2013年7月31日 申请日期2013年4月19日 优先权日2013年4月19日
发明者王磊, 杨勇勇, 朱梦晨, 王东琳 申请人:中国科学院自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1