CN101840368B - 多核处理器的jtag实时片上调试方法及其系统 - Google Patents
多核处理器的jtag实时片上调试方法及其系统 Download PDFInfo
- Publication number
- CN101840368B CN101840368B CN 201010135260 CN201010135260A CN101840368B CN 101840368 B CN101840368 B CN 101840368B CN 201010135260 CN201010135260 CN 201010135260 CN 201010135260 A CN201010135260 A CN 201010135260A CN 101840368 B CN101840368 B CN 101840368B
- Authority
- CN
- China
- Prior art keywords
- control
- register
- tap controller
- jtag
- enhancement mode
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012360 testing method Methods 0.000 title abstract description 15
- 230000004044 response Effects 0.000 claims abstract description 36
- 230000002708 enhancing effect Effects 0.000 claims description 48
- 238000012546 transfer Methods 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 abstract description 12
- 230000006870 function Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000000523 sample Substances 0.000 description 4
- 230000001965 increasing effect Effects 0.000 description 3
- 238000005728 strengthening Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 208000007398 vitreoretinopathy with phalangeal epiphyseal dysplasia Diseases 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本发明涉及多核处理器的JTAG实时片上调试方法及其系统,方法包括:步骤1,软件调试器对被调试的多核处理器的核,生成符合JTAG控制协议的控制命令,转化为控制流,发送至增强型TAP控制器;步骤2,增强型TAP控制器将接收的控制流转化为符合片上调试通讯协议的数据包,通过调试总线发送给调试客户端;步骤3,调试客户端将接收的数据包转化为控制命令,响应控制命令产生响应数据,通过调试总线返回给增强型TAP控制器;步骤4,增强型TAP控制器将接收的响应数据转化为符合JTAG控制协议的控制流,软件调试器通过所述增强型TAP控制器获得所述控制流。本发明能够对多核处理器进行调试,而不受多核处理器的核的数量的制约。
Description
技术领域
本发明涉及多核微处理器芯片的调试,尤其涉及多核处理器的JTAG实时片上调试方法及其系统。
背景技术
如今的处理器设计中,时钟频率已经接近现有生产工艺的极限,已不能单纯的通过提高时钟频率来提升处理器性能。多核处理器的发展,解决了性能和功耗的问题。但是,并行程序在多核处理器上的运行时调试成为了一个难题。
传统的单核心处理器的调试方式有软件和硬件的方法两大类。软件的调试方法最常用的开源工具包括GNU Debugger(GDB,GNU调试器)。软件运行在操作系统之上,通过系统调用来实现对需要调试的处理器的监控和控制,比方说寄存器的值查看,断点的设置。硬件的调试的方法是在处理器增加调试接口,如JTAG接口,通过拓展JTAG边界扫描的功能,完成对片上的调试辅助寄存器的控制和监控,并于主机的软件协同工作来完成片上调试的功能。软件方式的优点是轻量级,不需要增加任何的硬件辅助。硬件的优点是调试准确,可以排除软件自身的错误对调试结果的影响。软件方式的缺点是对结果有干扰性,速度比较慢。硬件的缺点是硬件会增加芯片设计的难度,验证周期,对芯片生产时的面积和功耗都有所增加。
对于多核处理器的调试,由于并行程序的并发性,软件方式不能精确的模拟程序的行为,硬件调试办法在多核心处理器设计中,被更多考虑到,但是多核调试到目前为止没有一种形成规范的调试方式。
在多核处理器的片上调试中,现有技术中最常用的调试方法时菊花链(Daisy-chain)的方法,如图1所示,所有多核处理器的核的TDI(Test DataInput,测试数据输入)和TDO(Test Data Output,测试数据输出)链接成为串行的链,前一个核的TDO链接到下一个核的TDI,控制信号TCK(Test Clock,测试时钟),TMS(Test Mode Select,测试模式选择)和TRST(Test Reset,测试复位)连接到所有的核TAP(Test Access Port,测试接入端口)控制器上。菊花链的连接方式与IEEE 1149.1协议不兼容,调试软件设计复杂并且软件不能兼容多核处理器中小核数的变化。TAP(测试接入端口)由TDI,TDO,TMS,TCK和一个可选的TRST输入端口组成。
为了兼容性,现有技术中又提出了增加TAP连接模块TLM(TAP LinkModule)的方案,如图2所示。该技术除了标准的JTAG控制接口外,TLM模块还与每个核增加了选择信号SEL和使能信号ENA,通过这组信号来选取调试的目标小核。这种方法适用范围在TAP模块可以修改的情形,软件调试会因为小核数目的变化改动比较大,重用性不好。核数较多的时候,从TLM模块的引出过多的连线,给芯片后端物理设计造成很大的困难。
发明内容
为解决上述问题,本发明提供了多核处理器的JTAG实时片上调试方法及其系统,通过使用增强型TAP控制器在控制流和总线数据间翻译,能够对多核处理器进行调试,而不受多核处理器的核的数量的制约。
本发明公开了一种多核处理器的JTAG实时片上调试方法,包括:
步骤1,软件调试器对被调试的多核处理器的核进行调试配置,生成符合JTAG控制协议的控制命令,将所述控制命令转化为控制流,将所述控制流发送至增强型TAP控制器;
步骤2,所述增强型TAP控制器将接收的所述控制流转化为符合片上调试通讯协议的数据包,通过调试总线将所述数据包发送给多核处理器的核中的调试客户端;
步骤3,所述调试客户端将接收的所述数据包转化为控制命令,响应所述控制命令产生响应数据,通过调试总线将响应数据返回给所述增强型TAP控制器;
步骤4,所述增强型TAP控制器将接收的响应数据转化为符合JTAG控制协议的控制流,所述软件调试器通过所述增强型TAP控制器获得所述控制流。
所述步骤1中软件调试器对被调试的多核处理器的核进行调试配置进一步为,
步骤21,软件调试器针对被调测的多核处理器的每个核的调试客户端进行如下调试配置中的一种或多种,
设置硬件数据断点、清除硬件数据断点、设置硬件指令断点、清除硬件指令断点、设置普通断点、设置单步执行、退出断点。
所述增强型TAP控制器包括指令寄存器和增强控制寄存器;
所述增强型TAP控制器还包括TAP控制器;
所述步骤1中将所述控制流发送至增强型TAP控制器进一步为,
步骤31,所述软件调试器通过TCK和TMS控制流控制TAP控制器的状态机的转移,并在所述指令寄存器中标识增强控制寄存器被选中;
步骤32,所述软件调试器依据所述指令寄存器中的标识选择所述增强控制寄存器进行写入,在所述增强控制寄存器的控制字段和目标调试核字段中写入数据。
所述步骤32还包括:所述软件调试器读取所述增强控制寄存器中的值,以获取所述多核处理器的请求状态。
所述步骤2中所述增强型TAP控制器将所述控制流转化为符合片上调试总线通讯协议的数据包,通过调试总线将所述数据包发送给多核处理器的核中的调试客户端进一步为,
步骤51,所述增强型TAP控制器在TAP状态机转移到更新数据寄存器状态时解析增强控制寄存器的各个控制字段,按照片上调试通讯协议将所述控制字段打包为数据包;
步骤52,所述增强型TAP控制器将所述数据包发送进入调试总线,按数据包的节点号送至数据包的目的核。
所述增强型TAP控制器包括增强控制寄存器;
所述步骤4中所述增强型TAP控制器将接收的响应数据转化为符合JTAG控制协议的控制流进一步为,
步骤61,所述增强的TAP控制器分析接收的响应数据,从数据中解析出请求节点号、请求的类型和数据带宽,在TAP状态机转移到获取数据寄存器状态时,将所述请求节点号、请求的类型和数据带宽写入所述增强控制寄存器。
所述增强型TAP控制器还包括地址寄存器和调试数据寄存器,
所述步骤61还包括:
步骤71,在所述请求类型是读请求时,从所述数据包的解析出地址;在所述请求类型是写请求时,从所述数据包中解析出地址和数据;
步骤72,在TAP状态机转移到获取数据寄存器状态时,对于写请求,将地址写入地址寄存器;对于写请求,将地址写入地址寄存器,将数据写入数据寄存器。
所述步骤4中所述软件调试器通过所述增强型TAP控制器获得所述控制流进一步为,
步骤81,所述软件调试器通过JTAG协议轮询增强控制寄存器,发现所述增强控制寄存器中控制字段发生变化时,读取所述增强控制寄存器中控制字段,将所述发生变化的控制字段清除,并根据所述控制字段进行对应操作。
本发明还公开了一种多核处理器的JTAG实时片上调试系统,包括:软件调试器、增强型TAP控制器、多个调试客户端、和调试总线,多核处理器的每个核中具有一个所述调试客户端,
所述软件调试器,用于对被调试的多核处理器的核进行调试配置,生成符合JTAG控制协议的控制命令,将所述控制命令转化为控制流,将所述控制流发送至所述增强型TAP控制器;
所述增强型TAP控制器,用于将接收的所述控制流转化为符合片上调试通讯协议的数据包,通过调试总线将所述数据包发送给多核处理器的核中的调试客户端;
所述调试客户端,用于将接收的所述数据包转化为控制命令,响应所述控制命令产生响应数据,通过调试总线将响应数据返回给所述增强型TAP控制器;
所述增强型TAP控制器,还用于将接收的响应数据转化为符合JTAG控制协议的控制流;
所述软件调试器,还用于通过所述增强型TAP控制器获得所述控制流。
所述软件调试器在对被调试的多核处理器的核进行调试配置时进一步用于对被调测的多核处理器的每个核的调试客户端进行如下调试配置中的一种或多种,
设置硬件数据断点、清除硬件数据断点、设置硬件指令断点、清除硬件指令断点、设置普通断点、设置单步执行、退出断点。
所述增强型TAP控制器包括指令寄存器和增强控制寄存器;
所述增强型TAP控制器还包括TAP控制器;
所述软件调试器在将所述控制流发送至增强型TAP控制器时进一步用于通过TCK和TMS控制流控制TAP控制器的状态机的转移,并在所述指令寄存器中标识增强控制寄存器被选中;依据所述指令寄存器中的标识选择所述增强控制寄存器进行写入,在所述增强控制寄存器的控制字段和目标调试核字段中写入数据。
所述软件调试器在将所述控制流发送至增强型TAP控制器时还用于读取所述增强控制寄存器中的值,以获取所述多核处理器的请求状态。
所述增强型TAP控制器在将所述控制流转化为符合片上调试总线通讯协议的数据包,通过调试总线将所述数据包发送给多核处理器的核中的调试客户端时进一步用于在TAP状态机转移到更新数据寄存器状态时解析增强控制寄存器的各个控制字段,按照片上调试通讯协议将所述控制字段打包为数据包;将所述数据包发送进入调试总线,通过调试总线按数据包的节点号送至数据包的目的核。
所述增强型TAP控制器包括增强控制寄存器;
所述增强型TAP控制器在将接收的响应数据转化为符合JTAG控制协议的控制流时进一步用于分析接收的响应数据,从数据中解析出请求节点号、请求的类型和数据带宽,在TAP状态机转移到获取数据寄存器状态时,将所述请求节点号、请求的类型和请求带宽写入所述增强控制寄存器。
所述增强型TAP控制器还包括地址寄存器和调试数据寄存器,
所述增强型TAP控制器还用于在所述请求类型是读请求时,从所述数据包的解析出地址;在所述请求类型是写请求时,从所述数据包中解析出地址和数据;在TAP状态机转移到获取数据寄存器状态时,对于写请求,将地址写入地址寄存器;对于写请求,将地址写入地址寄存器,将数据写入数据寄存器。
所述软件调试器在通过所述增强型TAP控制器获得所述控制流时进一步用于通过JTAG协议轮询所述增强控制寄存器,发现所述增强控制寄存器中控制字段发生变化时,读取所述增强控制寄存器中控制字段,将所述发生变化的控制字段清除,并根据所述控制字段进行对应操作。
本发明的有益效果在于,由于本发明的增强型TAP控制器具有将控制流和数据包转化的功能,能够避免了现有技术中比特移位随着多核处理器的核数目变化的问题,在多核芯片调试结构有更好的通用性,在片上调试总线上可以链接无上限的核数,能够支持无上限的核调试;通过对增强控制寄存器读写实现对多核处理器中的任意一个核的调试;使用的调试通讯接口和调试原理与标准的JTAG调试方法相同,增强型TAP控制器屏蔽了与目标核通讯的细节,调试主机上的调试软件将多核处理器视为单核心处理器进行调试,能够同现有调试软件兼容;调试客户端可以异步的通过片上调试总线传输信息回至增强型TAP控制器,调试软件能够异步的得知核状态,克服现有技术中多核调试方法在核数过多时,轮询核状态而产生不确定的时延的问题。
附图说明
图1是现有技术中采用菊花链方法对多核处理器进行调试时多个TAP控制器的连接示意图;
图2是现有技术中采用增加TLM方法对多核处理器进行调试时多个TAP的连接示意图;
图3是本发明多核处理器的JTAG实时片上调试方法的流程图;
图4是本发明具体实施方式中增强型TAP控制器的结构图;
图5是本发明中ECR的字段的结构图;
图6是本发明一实施例中数据包的格式的示意图;
图7是本发明多核处理器的JTAG实时片上调试系统的结构图;
图8是本发明多核处理器的JTAG实时片上调试系统的具体实施例的结构图。
具体实施方式
下面结合附图,对本发明做进一步的详细描述。
本发明多核处理器的JTAG实时片上调试方法的流程如图3所示。
在多核处理器中有N个核,所有核都连入片上调试总线。增强型TAP控制器通过IEEE 1194.2的JTAG协议的硬件端口与上位机交互,通过片上的调试总线与多核处理器的核中调试客户端交互。
本发明的方法具体包括如下步骤。
步骤S100,软件调试器对被调试的多核处理器的核进行调试配置,生成符合JTAG控制协议的控制命令,将所述控制命令转化为控制流,将所述控制流发送至增强型TAP控制器。
软件调试器针对多核处理器的每个核中的调试客户端提供设置/清除硬件数据断点,设置/清除硬件指令断点,设置普通断点,设置单步执行,退出断点等功能。
软件调试器兼容IEEE 1149.1 JTAG控制协议,将控制命令转化为控制流,控制流包括TDI流、TMS流、TCK流。
步骤S200,增强型TAP控制器将接收的所述控制流转化为符合片上调试通讯协议的数据包,通过调试总线将所述数据包发送给多核处理器的核中的调试客户端。
步骤S300,调试客户端将接收的所述数据包转化为控制命令,响应所述控制命令产生响应数据,通过调试总线将响应数据返回给所述增强型TAP控制器。
步骤S400,增强型TAP控制器将接收的响应数据转化为符合JTAG控制协议的控制流,所述软件调试器通过增强型TAP控制器获得所述控制流。
本发明的方法的具体实施方式如下所述。
软件调试器包括调试主机和仿真器,调试主机中具有调试软件。
调试主机通过控制流对多核处理器的控制依据IEEE 1149.1 JTAG协议进行。依据IEEE 1149.1 JTAG协议,调试主机通过TCK流和TMS流控制增强型TAP控制器的状态机的状态的转移,通过IR(Instruction Register,指令寄存器)选择特定的DR(数据寄存器),并向对应已选定的DR,通过JTAG调试接口中的TDI端口,来完成值的输入。
在本发明一实施例中,增强型TAP控制器结构如图4所示。增强型TAP控制器包括JTAG调试接口、TAP控制器、指令寄存器和数据寄存器。其中,数据寄存器包括IEEE 1194.1的JTAG协议所规定的边界扫描寄存器(Boundary-scan Register),旁路寄存器(Bypass Register),设备信息寄存器(Device-ID Register),地址寄存器,调试数据寄存器;以及ECR(EnhanceControl Register,增强的控制寄存器)和DMR(Debug-Mode Register,调试模式寄存器)。
在JTAG边界扫描调试结构中,JTAG调试接口为外围输入的接口。本发明在TAP控制器中增添JTAG控制流翻译成片上调试总线的数据包的功能,同时也增添了片上调试总线的数据包转JTAG数据流的功能。
ECR为用于完成调试主机和增强型TAP控制器信息交流的寄存器。本发明把调试主机的控制流转化为对ECR写/读的操作,增强型TAP控制器根据更新的ECR的值翻译为相对应的片上调试网络的数据包。同时,增强型TAP控制器在接收到片上调试总线返回的数据包也会更新相应的ECR控制字段。ECR的功能与MIPS架构中的EJTAG的DCR(Debug Control Register,调试控制寄存器)功能兼容,在多核调试中可以复用MIPS架构的调试软件。
DMR的功能是指示所有核的状态,所述状态包括正常运行状态或调试状态,此信息能随时被软件调试器查看。
在本发明的ECR的字段结构如图5所示。其中包括:Psz(访存的数据宽度标志位),ProbenSucc(握手是否成功标志位),VPED(保留),DOZE(低功耗),Halt(内部是否停时钟),PerRst(外围Reset),PRnW(读/写标志位),PrAcc(数据流向标志位),StoreSucc(成功存储标志位),PrRst(处理器Reset标志位),Proben(主动与目标核握手请求),ProbTrap(保留),LoadReturn(数据返回),Ejtagbrk(中断的主动请求标志位),Coreid(正在通讯的目标核),
其中VPED,DOZE,Halt,PerRst,PrRs,Proben,DM为状态位,用于与MIPS的EJTAG调试方法兼容。
Probensucc:标识是否调试请求成功状态寄存器;
StoreSucc:标识是否成功写入状态寄存器;
LoadReturn:标识是否成功读出状态寄存器;
控制字段包括:
Ejtagbrk:表示要求调试中断请求的控制寄存器;
Proben:表示要求调试请求的控制寄存器;
Coreid:表示正在调试的核的编号;
PRnW:为0时表示是读,为1时表示是写;
PrAcc:0表示从上位机到增强TAP控制器,1表示从增强TAP控制器到上位机;
Prz:表示访存的数据宽度。
所述软件调试器向增强型TAP控制器的TAP控制器发送控制流,以及所述增强型TAP控制器将接收的所述控制流转化为符合片上调试通讯协议的数据包,通过调试总线将所述数据包发送给多核处理器的核中的调试客户端的具体实施方式下所述。
步骤S110,所述软件调试器调试主机的调试软件通过仿真器产生符合JTAG协议的控制流,通过TCK和TMS控制流控制TAP控制器的状态机的转移,并在IR中标识ECR被选中。
在IR中标识ECR被选中具体为在IR中存储ECR对应的ID号。
步骤S120,调试主机的调试软件通过仿真器产生符合JTAG协议的控制流,依据所述指令寄存器中的标识选择ECR进行写入,在ECR的控制字段,例如Jtagbrk或proben,和core id字段中写入数据;并读取ECR的值,以获取所述多核处理器的请求状态。
步骤S130,增强型TAP控制器在TAP状态机转移到更新数据寄存器状态(Update DR State)时解析ECR的各个控制字段,按照片上调试通讯协议将所述各个控制字段打包为数据包。
一实施例中数据包的格式如图5所示,总共128个比特。
步骤S140,增强型TAP控制器将所述数据包发送进入调试总线,按数据包的节点号送至数据包的目的核。
调试客户端响应调试主机请求,返回符合片上调试协议的数据包,经片上调试总线发送到增强型TAP控制器的接收端。
所述增强型TAP控制器将接收的响应数据转化为符合JTAG控制协议的控制流,所述软件调试器通过所述增强型TAP控制器的TAP控制器获得所述控制流的具体实施方式如下所述。
步骤S210,所述增强的TAP控制器分析接收的响应数据,从数据中解析出请求节点号,请求的类型和数据宽度,在TAP状态机转移到获取数据寄存器状态(Capture-DR)时,将所述请求节点号,请求的类型,和数据宽度(Prz)写入ECR。
图6的数据包格式中,长度位中标识数据宽度。
其中,请求的类型包括读请求和写请求两种类型。核响应调试主机的控制命令,会返回一个消息,可能是要求在调试主机请求指令,此时请求的类型为读请求,或者往调试主机发送数据,此时请求的类型为写请求。
所述增强的TAP控制器接到由片上调试总线的数据包,如图6所示。从数据包中解析出节点号,请求类型,数据宽度。如果请求类型是读请求,则从数据包的地址段解析地址的值;如果请求类型是写请求,则从数据包的数据位和地址位解析出地址和数据。在TAP状态机转移到获取数据寄存器状态(Capture-DR)时,将所述的请求节点号,请求的类型和数据宽度写入ECR相应位置Coreid,PrAcc,Prz;对于写请求将地址写入地址寄存器;对于写请求,将地址写入地址寄存器,将数据写入调试数据寄存器。
请求节点号为发送数据包的核的节点号。
数据宽度为核读或者写调试主机的数据宽度,例如1字节/2字节/或者8字节。
步骤S220,调试主机通过IEEE 1149.1 JTAG协议轮询ECR,发现ECR中控制字段发生变化时,读取ECR中控制字段,将ECR中发生变化的控制字段清除,并根据所述控制字段表示的请求类型进行对应操作。如根据PRnW,表示的读请求或写请求,进行相应读或者写控制。
例如,发现ECR中控制字段PrAcc变化为1,表示有请求和上位机信息交;读取ECR中控制字段,将ECR中控制字段PrAcc位清除。
把PrAcc清除的原因,下次轮询的时候,如果PrAcc还为高,就会再次发出一次重复操作。
一举例中,调试主机通过IEEE 1149.1 JTAG协议轮询ECR,发现ECR中控制字段PrAcc发生变化时,读取ECR中Psz,PRnW。将ECR中控制字段PrAcc清除,并根据所述控制字段PRnW,相应读或者写控制。如果是写操作,读取ECR中的Prz的数据宽度,读取调试数据寄存器和地址寄存器的值,调试主机根据地址,数据和数据宽度,生成一次数据存储操作;如果是读操作,读取ECR中的Prz数据宽度,读取地址寄存器的值,调试主机根据地址和数据宽度生成一次数据读取操作。
多核处理器的JTAG实时片上调试系统如图7所示,包括:软件调试器100、增强型TAP控制器200、多个调试客户端300、和调试总线400,多核处理器的每个核中具有一个调试客户端300。
软件调试器100,用于对被调试的多核处理器的核进行调试配置,生成符合JTAG控制协议的控制命令,将所述控制命令转化为控制流,将所述控制流发送至所述增强型TAP控制器200。
软件调试器100在对被调试的多核处理器的核进行调试配置时进一步用于对被调测的多核处理器的每个核的调试客户端300进行如下调试配置中的一种或多种,
设置硬件数据断点、清除硬件数据断点、设置硬件指令断点、清除硬件指令断点、设置普通断点、设置单步执行、退出断点。
增强型TAP控制器200包括指令寄存器和增强控制寄存器;
所述增强型TAP控制器200还包括TAP控制器;
软件调试器100在将所述控制流发送至增强型TAP控制器200时进一步用于通过TCK和TMS控制流控制TAP控制器的状态机的转移,并在所述指令寄存器中标识增强控制寄存器被选中;依据所述指令寄存器中的标识选择所述增强控制寄存器进行写入,在所述增强控制寄存器的控制字段和目标调试核字段中写入数据。
软件调试器100在将所述控制流发送至增强型TAP控制器200时还用于读取所述增强控制寄存器中的值,以获取所述多核处理器的请求状态。
增强型TAP控制器200,用于将接收的所述控制流转化为符合片上调试通讯协议的数据包,通过调试总线400将所述数据包发送给多核处理器的核中的调试客户端300。
增强型TAP控制器200在将所述控制流转化为符合片上调试总线400通讯协议的数据包,通过调试总线400将所述数据包发送给多核处理器的核中的调试客户端300时进一步用于在TAP状态机转移到更新数据寄存器状态时解析增强控制寄存器的各个控制字段,按照片上调试通讯协议将所述控制字段打包为数据包;将所述数据包发送进入调试总线400,通过调试总线400按数据包的节点号送至数据包的目的核。
调试客户端300,用于将接收的所述数据包转化为控制命令,响应所述控制命令产生响应数据,通过调试总线400将响应数据返回给增强型TAP控制器200。
增强型TAP控制器200,还用于将接收的响应数据转化为符合JTAG控制协议的控制流。
增强型TAP控制器200在将接收的响应数据转化为符合JTAG控制协议的控制流时进一步用于分析接收的响应数据,从数据中解析出请求节点号、请求的类型和数据带宽,在TAP状态机转移到获取数据寄存器状态时,将所述请求节点号、请求的类型和请求带宽写入所述增强控制寄存器。
所述增强型TAP控制器还包括地址寄存器和调试数据寄存器,
所述增强型TAP控制器还用于在所述请求类型是读请求时,从所述数据包的解析出地址;在所述请求类型是写请求时,从所述数据包中解析出地址和数据;在TAP状态机转移到获取数据寄存器状态时,对于写请求,将地址写入地址寄存器;对于写请求,将地址写入地址寄存器,将数据写入数据寄存器。
软件调试器100,还用于通过增强型TAP控制器200获得所述控制流。
软件调试器100在通过增强型TAP控制器200获得所述控制流时进一步用于通过JTAG协议轮询所述增强控制寄存器,发现所述增强控制寄存器中控制字段发生变化时,读取所述增强控制寄存器中控制字段,将所述发生变化的控制字段清除,并根据所述控制字段进行对应操作。
如果控制字段表示请求类型是写操作,则读取ECR中的数据宽度,读取调试数据寄存器和地址寄存器的值,调试主机根据地址,数据和数据宽度生成一次数据存储操作;如果控制字段表示请求类型是读操作,则读取ECR中的数据宽度,读取地址寄存器的值,调试主机根据地址和数据宽度生成一次数据读取操作。
本发明多核处理器的JTAG实时片上调试系统的具体实施例的结构如图8所示。其中,软件调试器100包括仿真器120和调试主机110,仿真器120通过JTAG调试接口121同增强型TAP控制器200连接。调试主机110上具有调试软件。增强型TAP控制器200的具体实施方式如图4所示。
其中,调试软件兼容1119.1JTAG协议控制流程。增强型TAP控制器200将软件调试器100传送的标准JTAG控制流转化为符合片上调试总线400通讯协议的数据包,并发往需要被调试的处理器核的调试客户端300。增强型TAP控制器200接收核的调试客户端300返回的符合片上调试总线400通讯协议的消息,并将其转化为标准JTAG控制流,与调试主机的调试软件交互。调试客户端300接收片上调试总线400送来的调试命令,并能将反馈消息传送进入片上调试总线400,核的调试客户端300将状态信息主动的通过片上调试总线400发送给增强型TAP控制器200。对该实施例的具体说明如下。
软件调试器100的调试软件查看在多核处理器中的每个核的运行状态,如核是否处在运行状态,是否处在调试状态下,查看核的调试客户端300设定的指令断点PC(Program Counter,程序计数器)的值,查看核的调试客户端300设定的数据断点的地址值,并且向用户提供能向每个核的调试客户端300发送中断,单步调试,设置/去除数据指令断点,跳过断点的功能。该软件调试器100负责将这些功能的输入转化为标准的IEEE 1149.1 JTAG控制流。
调试软件接收由增强型TAP控制器200返回的标准JTAG控制流,通过控制流的信息更新调试软件中各个核的状态,或发出下一次有效控制信息,与需要调试的目标核调试客户端300交互。
增强型TAP控制器200,位于多核处理器上。增强型TAP控制器200兼容IEEE 1149.1 JTAG协议,把标准JTAG控制流翻译为符合片上调试总线400通讯协议的数据包,并将其发送到片上调试总线400上,也用于把从片上调试总线400接收到的数据包,翻译为标准的JTAG控制流,与软件调试器100交互。
调试总线400为由片内功能时钟驱动的同步逻辑数据宽度可变的单向总线,每个核挂载在片上总线的一个节点上,增强的TAP控制器200挂载在总线的起始节点和终止节点。片上调试总线400通讯方式遵从片上调试通讯协议。
调试客户端300接收由片上调试总线400上发送来的数据包,能解析数据包,把数据包数据转化为控制命令,相应控制命令,并把响应数据包放入片上调试总线400。该部分通讯遵从片上调试通讯协议。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。
Claims (14)
1.一种多核处理器的JTAG实时片上调试方法,其特征在于,包括:
步骤1,软件调试器对被调试的多核处理器的核进行调试配置,生成符合JTAG控制协议的控制命令,将所述控制命令转化为控制流,将所述控制流发送至增强型TAP控制器;
步骤2,所述增强型TAP控制器将接收的所述控制流转化为符合片上调试通讯协议的数据包,通过调试总线将所述数据包发送给多核处理器的核中的调试客户端;
所述步骤2中进一步为步骤51、步骤52,
步骤51,所述增强型TAP控制器在TAP状态机转移到更新数据寄存器状态时解析增强控制寄存器的各个控制字段,按照片上调试通讯协议将所述控制字段打包为数据包;
步骤52,所述增强型TAP控制器将所述数据包发送进入调试总线,按数据包的节点号送至数据包的目的核;
步骤3,所述调试客户端将接收的所述数据包转化为控制命令,响应所述控制命令产生响应数据,通过调试总线将响应数据返回给所述增强型TAP控制器;
步骤4,所述增强型TAP控制器将接收的响应数据转化为符合JTAG控制协议的控制流,所述软件调试器通过所述增强型TAP控制器获得符合JTAG控制协议的控制流。
2.如权利要求1所述的多核处理器的JTAG实时片上调试方法,其特征在于,
所述步骤1中软件调试器对被调试的多核处理器的核进行调试配置进一步为,
步骤21,软件调试器针对被调测的多核处理器的每个核的调试客户端进行如下调试配置中的一种或多种,
设置硬件数据断点、清除硬件数据断点、设置硬件指令断点、清除硬件指令断点、设置普通断点、设置单步执行、退出断点。
3.如权利要求1所述的多核处理器的JTAG实时片上调试方法,其特征在于,
所述增强型TAP控制器包括指令寄存器和增强控制寄存器;
所述增强型TAP控制器还包括TAP控制器;
所述步骤1中将所述控制流发送至增强型TAP控制器进一步为,
步骤31,所述软件调试器通过TCK和TMS控制流控制TAP控制器的状态机的转移,并在所述指令寄存器中标识增强控制寄存器被选中;
步骤32,所述软件调试器依据所述指令寄存器中的标识选择所述增强控制寄存器进行写入,在所述增强控制寄存器的控制字段和目标调试核字段中写入数据。
4.如权利要求3所述的多核处理器的JTAG实时片上调试方法,其特征在于,
所述步骤32还包括:所述软件调试器读取所述增强控制寄存器中的值,以获取所述多核处理器的请求状态。
5.如权利要求1所述的多核处理器的JTAG实时片上调试方法,其特征在于,
所述增强型TAP控制器包括增强控制寄存器;
所述步骤4中所述增强型TAP控制器将接收的响应数据转化为符合JTAG控制协议的控制流进一步为,
步骤61,所述增强的TAP控制器分析接收的响应数据,从数据中解析出请求节点号、请求的类型和数据带宽,在TAP状态机转移到获取数据寄存器状态时,将所述请求节点号、请求的类型和数据带宽写入所述增强控制寄存器。
6.如权利要求5所述的多核处理器的JTAG实时片上调试方法,其特征在于,
所述增强型TAP控制器还包括地址寄存器和调试数据寄存器,
所述步骤61还包括:
步骤71,在所述请求类型是读请求时,从所述数据包中解析出地址;在所述请求类型是写请求时,从所述数据包中解析出地址和数据;
步骤72,在TAP状态机转移到获取数据寄存器状态时,对于读请求,将地址写入地址寄存器;对于写请求,将地址写入地址寄存器,将数据写入数据寄存器。
7.如权利要求5所述的多核处理器的JTAG实时片上调试方法,其特征在于,
所述步骤4中所述软件调试器通过所述增强型TAP控制器获得符合JTAG控制协议的控制流进一步为,
步骤81,所述软件调试器通过JTAG协议轮询增强控制寄存器,发现所述增强控制寄存器中控制字段发生变化时,读取所述增强控制寄存器中控制字段,将所述发生变化的控制字段清除,并根据所述控制字段进行对应操作。
8.一种多核处理器的JTAG实时片上调试系统,其特征在于,包括:软件调试器、增强型TAP控制器、多个调试客户端、和调试总线,多核处理器的每个核中具有一个所述调试客户端,
所述软件调试器,用于对被调试的多核处理器的核进行调试配置,生成符合JTAG控制协议的控制命令,将所述控制命令转化为控制流,将所述控制流发送至所述增强型TAP控制器;
所述增强型TAP控制器,用于将接收的所述控制流转化为符合片上调试通讯协议的数据包,通过调试总线将所述数据包发送给多核处理器的核中的调试客户端;
所述增强型TAP控制器进一步用于在TAP状态机转移到更新数据寄存器状态时解析增强控制寄存器的各个控制字段,按照片上调试通讯协议将所述控制字段打包为数据包;将所述数据包发送进入调试总线,通过调试总线按数据包的节点号送至数据包的目的核;
所述调试客户端,用于将接收的所述数据包转化为控制命令,响应所述控制命令产生响应数据,通过调试总线将响应数据返回给所述增强型TAP控制器;
所述增强型TAP控制器,还用于将接收的响应数据转化为符合JTAG控制协议的控制流;
所述软件调试器,还用于通过所述增强型TAP控制器获得符合JTAG控制协议的控制流。
9.如权利要求8所述的多核处理器的JTAG实时片上调试系统,其特征在于,
所述软件调试器在对被调试的多核处理器的核进行调试配置时进一步用于对被调测的多核处理器的每个核的调试客户端进行如下调试配置中的一种或多种,
设置硬件数据断点、清除硬件数据断点、设置硬件指令断点、清除硬件指令断点、设置普通断点、设置单步执行、退出断点。
10.如权利要求8所述的多核处理器的JTAG实时片上调试系统,其特征在于,
所述增强型TAP控制器包括指令寄存器和增强控制寄存器;
所述增强型TAP控制器还包括TAP控制器;
所述软件调试器在将所述控制流发送至增强型TAP控制器时进一步用于通过TCK和TMS控制流控制TAP控制器的状态机的转移,并在所述指令寄存器中标识增强控制寄存器被选中;依据所述指令寄存器中的标识选择所述增强控制寄存器进行写入,在所述增强控制寄存器的控制字段和目标调试核字段中写入数据。
11.如权利要求10所述的多核处理器的JTAG实时片上调试系统,其特征在于,
所述软件调试器在将所述控制流发送至增强型TAP控制器时还用于读取所述增强控制寄存器中的值,以获取所述多核处理器的请求状态。
12.如权利要求8所述的多核处理器的JTAG实时片上调试系统,其特征在于,
所述增强型TAP控制器包括增强控制寄存器;
所述增强型TAP控制器在将接收的响应数据转化为符合JTAG控制协议的控制流时进一步用于分析接收的响应数据,从数据中解析出请求节点号、请求的类型和数据带宽,在TAP状态机转移到获取数据寄存器状态时,将所述请求节点号、请求的类型和请求带宽写入所述增强控制寄存器。
13.如权利要求12所述的多核处理器的JTAG实时片上调试系统,其特征在于,
所述增强型TAP控制器还包括地址寄存器和调试数据寄存器,
所述增强型TAP控制器还用于在所述请求类型是读请求时,从所述数据包中解析出地址;在所述请求类型是写请求时,从所述数据包中解析出地址和数据;在TAP状态机转移到获取数据寄存器状态时,对于读请求,将地址写入地址寄存器;对于写请求,将地址写入地址寄存器,将数据写入数据寄存器。
14.如权利要求12所述的多核处理器的JTAG实时片上调试系统,其特征在于,
所述软件调试器在通过所述增强型TAP控制器获得符合JTAG控制协议的控制流时进一步用于通过JTAG协议轮询所述增强控制寄存器,发现所述增强控制寄存器中控制字段发生变化时,读取所述增强控制寄存器中控制字段,将所述发生变化的控制字段清除,并根据所述控制字段进行对应操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010135260 CN101840368B (zh) | 2010-03-26 | 2010-03-26 | 多核处理器的jtag实时片上调试方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010135260 CN101840368B (zh) | 2010-03-26 | 2010-03-26 | 多核处理器的jtag实时片上调试方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101840368A CN101840368A (zh) | 2010-09-22 |
CN101840368B true CN101840368B (zh) | 2013-01-16 |
Family
ID=42743750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010135260 Active CN101840368B (zh) | 2010-03-26 | 2010-03-26 | 多核处理器的jtag实时片上调试方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101840368B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103535B (zh) * | 2011-03-07 | 2013-05-08 | 北京大学深圳研究生院 | 多核处理器、多核处理器的调试系统和调试方法 |
CN102929194B (zh) * | 2012-11-06 | 2014-09-17 | 长安大学 | 异步多核可编程自动化控制器 |
CN103226504B (zh) * | 2013-04-19 | 2016-05-11 | 中国科学院自动化研究所 | 一种分布式片上调试系统 |
CN104536859B (zh) * | 2015-01-08 | 2018-07-03 | 北京思朗科技有限责任公司 | 一种片上调试系统的探头装置 |
KR102415388B1 (ko) * | 2015-11-13 | 2022-07-01 | 삼성전자주식회사 | 시스템 온 칩 및 그것의 보안 디버깅 방법 |
CN107346295A (zh) * | 2016-05-05 | 2017-11-14 | 中兴通讯股份有限公司 | 一种数据传输线缆和数据传输方法 |
CN107688528A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 仿真模式下处理器的调试系统及方法 |
CN107943640B (zh) * | 2017-11-15 | 2023-08-08 | 中国科学技术大学 | 基于自动菊花链的单环jtag背板测试总线电路 |
CN108287805A (zh) * | 2018-01-12 | 2018-07-17 | 厦门大学 | 一种通用型下位单片机与上位机的通信方法与应用 |
CN111124977A (zh) * | 2019-10-15 | 2020-05-08 | 芯创智(北京)微电子有限公司 | 一种pcie设备的调试装置和方法 |
CN114185764A (zh) * | 2020-09-14 | 2022-03-15 | 北京希姆计算科技有限公司 | 一种芯片调试方法、芯片及芯片调试系统 |
CN113514759B (zh) * | 2021-09-07 | 2021-12-17 | 南京宏泰半导体科技有限公司 | 一种多核测试处理器及集成电路测试系统与方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0764903A1 (en) * | 1995-09-11 | 1997-03-26 | Rockwell International Corporation | On-chip debug port |
WO1997022013A1 (en) * | 1995-12-08 | 1997-06-19 | Samsung Electronics Co., Ltd. | Jtag testing of buses using plug-in cards with jtag logic mounted thereon |
CN1564136A (zh) * | 2004-04-02 | 2005-01-12 | 清华大学 | 基于目标机上的ejtag部件的交叉调试器实现方法 |
CN1936860A (zh) * | 2005-09-20 | 2007-03-28 | 中国科学院计算技术研究所 | 一种在指令级随机测试中支持ejtag测试的实现方法 |
CN101251819A (zh) * | 2007-12-11 | 2008-08-27 | 浙江大学 | 一种适用于多处理器核系统芯片的调试方法 |
CN101320344A (zh) * | 2008-07-07 | 2008-12-10 | 中国科学院计算技术研究所 | 一种多核或众核处理器功能验证设备及方法 |
-
2010
- 2010-03-26 CN CN 201010135260 patent/CN101840368B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0764903A1 (en) * | 1995-09-11 | 1997-03-26 | Rockwell International Corporation | On-chip debug port |
WO1997022013A1 (en) * | 1995-12-08 | 1997-06-19 | Samsung Electronics Co., Ltd. | Jtag testing of buses using plug-in cards with jtag logic mounted thereon |
CN1564136A (zh) * | 2004-04-02 | 2005-01-12 | 清华大学 | 基于目标机上的ejtag部件的交叉调试器实现方法 |
CN1936860A (zh) * | 2005-09-20 | 2007-03-28 | 中国科学院计算技术研究所 | 一种在指令级随机测试中支持ejtag测试的实现方法 |
CN101251819A (zh) * | 2007-12-11 | 2008-08-27 | 浙江大学 | 一种适用于多处理器核系统芯片的调试方法 |
CN101320344A (zh) * | 2008-07-07 | 2008-12-10 | 中国科学院计算技术研究所 | 一种多核或众核处理器功能验证设备及方法 |
Non-Patent Citations (3)
Title |
---|
dong-rui fan et..Godson-T:An Efficient Many-Core Architecture for Parallel Program Executions.《Journal of computer science and technology》.2009,第24卷(第6期), * |
张猛华等.基于JTAG的SoC开发接口设计.《电子与封装》.2008,(第08期), * |
段振中等.JTAG调试通信接口的软件模拟.《微电子学与计算机》.2008,(第02期), * |
Also Published As
Publication number | Publication date |
---|---|
CN101840368A (zh) | 2010-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101840368B (zh) | 多核处理器的jtag实时片上调试方法及其系统 | |
CN100565472C (zh) | 一种适用于多处理器核系统芯片的调试方法 | |
CN101154183B (zh) | 一种微控制器嵌入式在线仿真调试系统 | |
CN107577635B (zh) | 一种兼容ahb协议的非握手式jtag调试链路及其调试方法 | |
CN102508753B (zh) | Ip核验证系统 | |
CN102662835B (zh) | 一种针对嵌入式系统的程序调试方法及嵌入式系统 | |
WO2018018978A1 (zh) | 一种通用串行总线控制器验证方法、系统及设备 | |
CN105550119A (zh) | 一种基于jtag协议的仿真装置 | |
US20100011250A1 (en) | Microcontroller information extraction system and method | |
CN105808396A (zh) | 一种芯片调试装置、调试方法及soc芯片系统 | |
CN100487668C (zh) | 一种嵌入式处理器的调试方法 | |
WO2019173018A1 (en) | Non-intrusive on-chip debugger with remote protocol support | |
CN116610590A (zh) | 基于zynq平台实现多片fpga远程调试方法及系统 | |
CN113326670A (zh) | 原型验证系统、方法、处理单元、及设备 | |
US10088523B2 (en) | Debug adapter | |
CN115454881B (zh) | Risc-v架构的调试系统及调试方法 | |
CN112162879A (zh) | 一种实时多核dsp软件的日志系统 | |
CN111597137A (zh) | 一种基于spi协议的动态调试方法、装置及系统 | |
CN110007865A (zh) | 硬件数据获取方法、装置、设备、系统及可读存储介质 | |
US9581643B1 (en) | Methods and circuits for testing partial circuit designs | |
EP1367489A1 (en) | A microprocessor development system | |
CN115344105A (zh) | 接口复用的芯片和芯片的调试系统 | |
CN216848733U (zh) | 一种新型嵌入式调试设备 | |
CN218886572U (zh) | 一种简单外设总线系统 | |
CN113496107B (zh) | 一种可综合的cpu模型 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231229 Address after: 100095 room 135, 1st floor, building 15, Chuangke Town, Wenquan Town, Haidian District, Beijing Patentee after: Beijing Zhongke Ruixin Technology Group Co.,Ltd. Address before: 100080 No. 6 South Road, Zhongguancun Academy of Sciences, Beijing, Haidian District Patentee before: Institute of Computing Technology, Chinese Academy of Sciences |
|
TR01 | Transfer of patent right |