CN100592266C - 一种微处理器调试方法及所用的微处理器调试模块 - Google Patents
一种微处理器调试方法及所用的微处理器调试模块 Download PDFInfo
- Publication number
- CN100592266C CN100592266C CN200810060713A CN200810060713A CN100592266C CN 100592266 C CN100592266 C CN 100592266C CN 200810060713 A CN200810060713 A CN 200810060713A CN 200810060713 A CN200810060713 A CN 200810060713A CN 100592266 C CN100592266 C CN 100592266C
- Authority
- CN
- China
- Prior art keywords
- debugging
- microprocessor
- register
- unusual
- unit
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000006854 communication Effects 0.000 claims abstract description 38
- 238000004891 communication Methods 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 18
- 230000007246 mechanism Effects 0.000 claims abstract description 17
- 230000001960 triggered effect Effects 0.000 claims description 20
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 4
- 230000002547 anomalous effect Effects 0.000 claims description 3
- 239000004744 fabric Substances 0.000 claims description 3
- 239000012467 final product Substances 0.000 claims description 3
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 16
- 230000005856 abnormality Effects 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013481 data capture Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种微处理器调试方法,包括:一个调试通信接口,作为调试主机与微处理器内核的通信通道;一种同步机制,保证不同时钟域的内核与调试主机分时访问地址寄存器、数据寄存器和控制寄存器;一种快速传送机制,实现大量数据在片外调试存储空间与微处理器内核之间快速上载和下载;七类产生于微处理器不同流水级的调试异常;一种调试异常精确处理机制。本发明还同时提供了用于嵌入到被调试的微处理器上的专用的微处理器调试模块。采用本发明的方法能解决JTAG调试传输速率问题以及精确调试异常的触发和处理问题。
Description
技术领域
本发明涉及微处理器及计算机系统,更具体地说,本发明涉及一种能够完成对微处理器内核调试的技术。
背景技术
随着半导体工艺与集成电路技术的快速发展,允许将整个系统集成到单个硅片上,即片上系统(System on Chip,SoC)。它的设计通常会采用IP(Intellectual Property)核以加速产品开发。在SoC设计中难免产生一些Bug,这些Bug会对最终系统的功能和性能产生影响,为了保证SoC功能的正确性,减少设计风险,在开发过程中对其进行调试是必不可少的。有效的调试机制可以准确快速的定位设计中的Bug,从而加速微处理器的开发周期,保证微处理器的正确功能。SoC的高集成度给可调试性带来两方面的变化:一方面,随着集成度的提高和I/O设计技术的革新,芯片管脚资源越来越紧张,传统的基于示波器、逻辑笔、逻辑分析仪等工具的硬件调试方法不能满足调试的需求。另一方面,芯片中可集成的门数迅速增加,由于这种集成度的提高,在芯片内部增加专门用于调试的模块是完全可行的。这给调试带来了新的挑战。
现有的调试方法可分为软件和硬件两类。
软件方法:典型的软件方法如GDB(GNU Debugger),它的特点是在目标机上装入一段监控程序,当有调试异常(如软件断点、单步)产生时,PC主机通过串口或网口给目标机发送调试命令同时接收调试反馈。软件方法的缺点在于它不能用软件断点调试ROM(ReadOnly Memory)中的程序,因为软件断点的实现一般都是采用替换策略实现的。此外它还会占用系统异常入口和部分中断资源,不适用于底层开发和操作系统的调试。
硬件方法:典型的硬件调试方法如JTAG(Joint Test Action Group)仿真器。它是对IEEE1149.1协议进行了扩展,将原本用于测试的JTAG接口扩展成一个调试接口。这种方法应用十分普遍,包括ARM、MIPS和国内的龙芯处理器都开发了基于JTAG的调试接口。硬件方法的缺点在于JTAG是一个串行的接口,这使得JTAG的有效地传输速率不是很高,而调试往往需要大量的数据通信。
此外,一般来说微处理器在执行程序的时候会按指令顺序执行,需要调试时,插入调试异常(如指令断点),一旦调试异常触发,微处理就会放弃原有指令的执行顺序,在触发调试异常的相关指令处停顿,然后跳向一个固定地址(一般称为调试异常入口)取指执行异常处理程序,然后接收上位机的调试命令并反馈调试信息。调试结束后,微处理器要准确回到停顿时的状态继续执行,这就要求调试具有一个精确的调试异常触发和处理机制。保证调试过程不改变原程序执行的行为,不对原程序的执行结果产生影响。
发明内容
本发明要解决的技术问题是提供一种微处理器调试方法。以解决JTAG调试传输速率问题和精确调试异常的触发和处理问题。
为了解决上述技术问题,本发明提供一种微处理器调试方法,包括:
一个调试通信接口,作为调试主机与微处理器内核的通信通道;
一种同步机制,保证不同时钟域的内核与调试主机分时访问地址寄存器、数据寄存器和控制寄存器;
一种快速传送机制,实现大量数据在片外调试存储空间与微处理器内核之间快速上载和下载;
七类产生于微处理器不同流水级的调试异常;
一种调试异常精确处理机制。
作为本发明的微处理器调试方法的改进:快速传送机制将大量地址连续的数据从调试主机下载到内核存储器或从内核存储器上载到调试主机时,只需在上载或下载之初访问一次地址寄存器和一次控制寄存器即可。
作为本发明的微处理器调试方法的进一步改进:调试异常精确处理机制是将调试异常集中在微处理器流水线的TC级处理;如果有多个异常同时发生,遵循一定的优先级处理;调试态下发生的普通异常时,采用重进入调试态策略。
本发明还同时提供了用于嵌入到被调试的微处理器上的专用的微处理器调试模块,包括标准JTAG接口、调试通信接口、快速传送单元、片外调试存储空间、流水线相关的精确调试异常触发单元和流水线相关的精确异常处理单元;标准JTAG接口的一端与片外调试存储空间相连,标准JTAG接口的另一端分别与调试通信接口和快速传送单元相连,调试通信接口分别与流水线相关的精确调试异常触发单元和流水线相关的精确异常处理单元相连,快速传送单元也分别与流水线相关的精确调试异常触发单元和流水线相关的精确异常处理单元相连,流水线相关的精确调试异常触发单元与流水线相关的精确异常处理单元相连。
作为本发明的微处理器调试模块的改进:流水线相关的精确异常处理单元包括调试异常插入单元,流水线控制单元(Pipeline Control Unit,PCU)、异常PC暂存寄存器和调试寄存器分别与调试异常插入单元相连。
作为本发明的微处理器调试模块的进一步改进:流水线相关的精确调试异常触发单元包括分别与调试异常插入单元相连的软件断点、指令断点、写数据断点、读数据断点、单布异常、调试中断和调试自动异常。
作为本发明的微处理器调试模块的进一步改进:调试通信接口包括同步单元,该同步单元分别与地址寄存器、数据寄存器和控制寄存器相连,调试通信接口还包括访问标志。该访问标志位于控制寄存器上。
作为本发明的微处理器调试模块的进一步改进:标准JTAG接口包括TAP(Test AccessPort)控制器,地址移位寄存器、数据移位寄存器和控制移位寄存器分别与TAP控制器相连。
作为本发明的微处理器调试模块的进一步改进:快速传送单元包括相连的快速指令寄存器组和循环判断器,还包括内含快速访问标志寄存器的快速移位寄存器链。
作为本发明的微处理器调试模块的进一步改进:片外调试存储空间包括调试程序存储空间、调试数据存储空间和调试反馈存储空间。
本发明是将专用的调试模块嵌入到被调试的微处理器上进行使用的,与现有技术相比,本发明具有以下有益效果:
1)、通过标准JTAG接口和调试通信接口,调试主机可以有效控制片外调试存储空间和微处理器内核的通信,很好地实现了微处理器调试的可控制性(Controllability)和可观察性(Observability)。
2)、快速传送单元提供了一种机制,实现大数据量在片外调试存储空间与微处理器内核之间快速上载和下载,很好地解决了JTAG的有效传输速率低的问题,提高了调试效率。
3)、七类流水线相关的调试异常可以灵活满足不同的调试需求。
4)、流水线相关的精确调试异常处理单元一方面保证了调试可以准确地跟踪程序的执行流程,另一方面保证调试过程不会破坏原有程序的执行流程和执行结果,即调试的低入侵性。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细说明。
图1是调试模块结构图;
图2是图1中的片外调试存储空间40与核的通信结构图;
图3是图1中的片外调试存储空间40与内核的通信接口示意图;
图4是图3中的同步单元207的电路原理图;
图5是图1中的片外调试存储空间40与内核的通信流程图;
图6是图1中的快速传送单元30的结构图;
图7是是图1中的快速传送单元30的实现流程图;
图8是异常优先级示意图;
图9是调试流程图。
具体实施方式
下面结合图1~图9以说明本发明的具体实现方式:
微处理器内核一般具有系统态和用户态,本发明给微处理器内核增加了调试态。如图2所示,在调试态,内核既可以访问系统中的所有资源又可以访问片外调试存储空间40,40根据功能可划为三块区域:调试程序存储空间401,调试数据存储空间402和调试反馈存储空间403。在本发明中,内核和调试主机都可以访问40,从而实现调试主机与内核的通信。此外,在调试态下,调试主机对内核拥有完全的控制权,它可以根据调试的需要将调试程序和数据写入调试程序存储空间401和调试数据存储空间402,并且接收调试程序的执行反馈写入调试反馈存储空间403。因此,调试主机与就可以在调试态下观察到内核的运行状态、寄存器、存储器等,从而满足调试的可观察性。
调试通信接口20是内核与片外调试存储空间40实现互相访问的通道。图3为内核与片外调试存储空间40的通信接口示意图,它们之间的通信通过地址移位寄存器102、数据移位寄存器103、控制移位寄存器104、地址寄存器204、数据寄存器205和控制寄存器206完成。地址移位寄存器102、数据移位寄存器103、控制移位寄存器104处于JTAG时钟域,地址寄存器204、数据寄存器205、控制寄存器206处于内核时钟域中,两边的寄存器形成镜像。
TAP控制器101定义了一个状态机,包括状态调试空闲801、数据更新802,数据捕获817。它们在JTAG时钟域产生,要在内核时钟域(内核时钟818)作为控制信号使用必须经过同步单元207的同步,同步单元207的同步机制如图4所示。调试空闲801和数据更新802经过或门813产生访问使能808,访问使能808经过D触发器809、D触发器810产生同步访问使能803,数据更新802经过D触发器811、D触发器812产生同步数据更新804。同步访问使能803和同步数据更新804经过与门814产生JTAG访问使能805。同步数据更新804经过反门815产生JTAG访问拒绝806。JTAG访问拒绝806和同步访问使能803经过与门816产生内核访问使能807。
本发明中JTAG访问使能805、内核访问使能807作为内核与片外调试存储空间40的通信控制信号。通信可分为以下三个过程:首先在TAP控制器101的控制下,片外调试存储空间40与地址移位寄存器102、数据移位寄存器103、控制移位寄存器104串行通信。其次当数据捕获817为高电平时将地址寄存器204、数据寄存器205、控制寄存器206中的数据写入地址移位寄存器102、数据移位寄存器103、控制移位寄存器104。或者当JTAG访问使能805为高电平时将地址移位寄存器102、数据移位寄存器103、控制移位寄存器104中的数据写入地址寄存器204、数据寄存器205、控制寄存器206。最后,当内核访问使能807为高电平时内核与地址寄存器204、数据寄存器205、控制寄存器206通信。从而完成内核与片外调试存储空间40的通信。
图5为片外调试存储空间40与内核的通信流程图。
步骤720,内核请求通信,将读写控制、访问类型和宽度等访问信息写入控制寄存器206。
步骤721,内核置访问标志208为1,表示新的访问开始。
步骤722,内核将访问地址信息写入地址寄存器204。
步骤723,本次访问是否为写数据访问,如果是,执行步骤725,如果不是,执行步骤724。
步骤724,调试主机循环访问控制移位寄存器104。
步骤725,内核写数据到数据寄存器205。
步骤726,调试主机根据串行移出的控制移位寄存器104的值判断访问标志208是否为1,如果是,执行步骤727,如果不是,执行步骤724。
步骤727,调试主机根据解析控制移位寄存器104的控制信息做出通信反馈。
步骤728,调试主机将访问标志208清零,表示已做出通信反馈。
步骤729,内核循环查询和控制寄存器206。
步骤730,内核根据和控制寄存器206的值判断访问标志208是否为0,如果是,执行步骤731,如果不是,执行步骤729。
步骤731,一次通信结束,内核处理通信反馈信号。
步骤732,是否需要继续通信,如果是,返回步骤720执行,开始一次新的通信,如果不是,结束通信。
通过上述流程,在调试态调试主机可以将调试信息加载在内核上,并接收内核的调试反馈,从而实现调试主机对内核的调试。
快送传送单元30是为大量调试程序或调试数据的上载或下载设计的,在调试中往往需要传送较大的文件,如下载调试程序或上载存储数据等。将大文件从调试主机下载到内核存储器或从内核存储器上载文件到调试主机通常都是一个连续地址的搬运过程,所以只需要在传输之初确定起始地址即可。
图6是快速传送单元30的结构图,在传输中数据移位寄存器103和一个1bit的快速访问标志寄存器305构成一个新的33bit的快速移位寄存器链306。快速指令寄存器组301由四个32bit的寄存器组成,用于存放快速搬运程序。传送时,核循环执行快速指令寄存器组301中的指令。循环判断器302根据判断结果决定是否继续快速传送。从而实现在片外调试存储空间40和内核存储器之间快速通信。快速传送过程中的读写的握手都通过更新快速访问标志寄存器305来完成,快速访问标志寄存器305与访问标志208构成镜像。
在数据量大的快速传送过程中,调试主机只需要在传送之初访问一次地址寄存器204和控制寄存器206,而不是在传输过程中不断访问,这样传输中对地址寄存器204和控制寄存器206访问的开销相对较小。快速移位寄存器链306中除了1比特位的快速访问标志寄存器305外,都是在传送数据。这大大提高了JTAG的有效的传输速率。
图7为片外调试存储空间40与内核的快速传送流程图。
步骤740,内核请求快速传送,将读写控制、访问类型和宽度等访问信息写入控制寄存器206。
步骤741,内核将快速传送起始地址信息写入地址寄存器204。
步骤742,内核置访问标志208为1,请求开始快速传送。
步骤743,是否快速传送第一个数据,如果是,执行步骤744,如果不是执行步骤745。
步骤744,调试主机读控制移位寄存器104。由于是快速传送启动后第一次通信,所以调试主机序对控制移位寄存器104进行访问,确定快速传送地读写、访问类型和宽度等信息。
步骤745,调试主机读快速移位寄存器链306。
步骤746,调试主机根据串行移出快速移位寄存器链306的值判断快速访问标志寄存器305是否为1,如果是,执行步骤747,如果不是,执行步骤745。
步骤747,调试主机启动一次快速传送。
步骤748,该次快速传送是对片外调试存储空间40的读还是写,如果是写,执行步骤749,如果是读,执行步骤750。
步骤749,内核执行快速指令寄存器组301中指令,更新数据寄存器205中的数据,数据移位寄存器103下载数据寄存器205中的数据,将第一个数据写入快速传送起始地址,以后每写一个数据地址加4。
步骤750,内核从快速传送的起始地址取数据,以后每取一个数据地址加4,取出来的数据写入数据移位寄存器103,数据移位寄存器103将新数据上载到数据寄存器205,内核执行快速指令寄存器组301中指令,读取数据寄存器205中的新数据。
步骤751,调试主机将快速访问标志寄存器305清零,表示结束本次快速传送。
步骤752,内核循环查询控制寄存器206。
步骤753,内核根据控制寄存器206的值判断访问标志208是否为0,如果是,执行步骤754,如果不是执行步骤752。
步骤754,结束一次快速传送。
步骤755,是否继续快送传送,如果是,执行步骤742,如果不是,中止执行快速指令寄存器组301中的指令,结束快速传送。
通过上述流程,片外调试存储空间40可与内核处理器快速通信,在通信过程中,TAP不需要不断访问地址移位寄存器102、控制移位寄存器104,有效地减少了通信的额外开销,从而提高了JTAG接口的有效传输速度。
调试异常的触发会使微处理器进入调试态,本发明提供七类与微处理器流水级相关的调试异常,分别为软件断点501、指令断点502、写数据断点503、读数据断点504、单步异常505、调试中断506和调试启动异常507。它们在微处理器的不同流水级产生。如图1所示,软件断点501在ID(Instruction Decode)级译码后产生。指令断点502在ID级指令比较后产生。写数据断点503在DM(Data Memory access)级通过比较指令和存储数据产生。读数据断点504在TC(Tag Compare)级通过比较指令和读取数据产生。单步异常505在ID级通过比较发现一个执行步流过了ID级时产生。一个执行步的概念在本发明中是这样定义的,对于普通的指令,一条指令就是一个执行步,对于跳转指令,一个执行步为一条跳转指令加一个延时槽。对于JUMP/BRANCH指令而言,后面有两个延时槽,这时JUMP/BRANCH指令加2个延时槽组成一个执行步。调试中断506通过调试主机发送中断信号在TC级产生。调试启动异常507可以通过调试主机设置,在微处理器启动后立即产生调试异常转入调试态。它也在TC级产生。在本发明中软件断点501、指令断点502、写数据断点503、读数据断点504和单步异常505都是在调试态下设置触发条件,所以微处理器第一次进入调试态只能通过调试中断506或调试启动异常507。调试中断506在微处理器运行时可以通过调试主机在任何时候发送调试异常。在微处理器启动后调试启动异常507可以使处理器立即进入调试态并根据需要设置软件断点501、指令断点502、写数据断点503、读数据断点504、单步异常505这五类调试异常的触发条件,可用于调试微处理器的启动过程。
精确的调试异常处理方法对调试起着至关重要的作用,它一方面可以保证调试准确地跟踪到程序的执行流程,另一方面可以保证调试异常的加入不会破坏原有程序的执行流程和结果。本发明中通过以下四种技术保证微处理对调试异常的精确处理。
调试异常触发后,异常PC暂存寄存器603保存调试异常触发时第一条未完成指令的PC值,也就是微处理器从调试态跳出后执行的第一条指令的PC值,在本发明中每次调试异常触发时都会更新异常PC暂存寄存器603的值。这样就可以保证微处理器跳出调试态以后从进入调试态之前的第一条未完成的指令开始执行。从而保证原有程序的正常顺序执行。此外,在调试态下,可以通过修改异常PC暂存寄存器603中的值,实现微处理器跳出调试态后从程序的任意一条指令开始执行程序。
异常集中在流水线的TC级处理,如图1所示,本发明中七种不同的调试异常在不同的流水级产生,异常产生后不会立刻被处理,而是随流水线流至TC级后,进入调试异常插入单元601,如果有多个调试异常同时产生,调试异常插入单元601根据调试异常的优先级处理调试异常,然后向PCU602发出告警信号,PCU602接收到告警信号立刻清除流水线中未完成的指令和异常等信号,重启整个流水线,跳到片外的调试异常入口取指,同时将异常相关的信号给到调试寄存器604,保存异常标志信息和进入调试态的状态信息。将异常统一在TC级处理一方面确保了触发异常指令的前续指令全部被执行完毕,另一方面保证指令序列中先发生的异常先被处理,而不会因为流水线的存在导致异常处理的混乱。
在微处理器中既有调试异常也有普通异常,在同一个时钟周期可能有多个异常产生。正确安排各种异常的优先级可以保证异常被有序处理。在本发明中复位优先级最高,除复位外,异常优先级的安排遵循以下原则:如果没有依赖性,调试异常优先,如果有依赖性,被依赖的异常优先级高。如某些调试异常(软件断点501、读数据断点504),分别对一些取指令相关的操作和读数据相关的操作具有依赖性,所以这些异常的优先级也低于对应这些操作产生的异常的优先级。在同一流水级中,可以根据这个原则划分异常的优先级。本发明中各类异常的优先级如图8所示。
有效处理调试态下发生的普通异常。在调试态下,仍然有可能发生普通异常,这些异常的处理不会使微处理器跳出调试态,而是采取重进入的策略,即重新进入调试态,从片外调试存储空间40取指。另外,调试态下屏蔽所有调试异常。这样,调试态下发生的所有异常对于被调试程序而言,都是不可见的,从而不会对被调试程序产生影响。
图9为本发明所述的调试流程图。
步骤701,微处理器在启动时检测调试主机是否已设置调试启动异常,如果是,执行步骤707,如果不是,执行步骤702。
步骤702,微处理器启动并执行相关程序。
步骤703,用户根据需要启动调试。
步骤704,微处理器检测当前是否有调试异常触发条件设置。如果有,执行步骤706,如果没有,执行步骤705。
步骤705,微处理器处于运行状态,且当前没有已设置的调试异常,所以只能通过调试主机发送调试中断506触发调试异常。
步骤706,当前有设置好的调试异常,微处理器检测调试异常是否触发,如果是,执行步骤707,如果不是,循环执行步骤706,等待调试异常触发。
步骤707,调试异常触发,微处理器对调试异常进行精确处理。
步骤708,微处理器进入调试态。
步骤709,微处理器通过JTAG接口从片外调试存储空间40取指执行调试异常处理程序。
步骤710,执行完调试异常处理程序后,等待并执行调试主机的调试命令,同时反馈调试信息。
步骤711,是否继续调试,如果是,执行步骤710,如果不是,执行步骤712。
步骤712,根据用户需求决定是否设定下一次调试异常的触发条件,如果是,执行步骤713,如果不是执行步骤714。
步骤713,调试主机将设置下一次调试异常触发条件的命令写入片外调试存储空间40,内核读取这些命令并设置相关调试异常的触发条件。
步骤714,内核从片外调试存储空间40取指执行现场还原程序。
步骤715,微处理器跳出调试态。
步骤716,微处理器从进入调试态前的第一条未执行完的指令开始继续执行。
需要注意的是,以上列举的仅是本发明的具体实施例子。显然,本发明不限于以上实施例子,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (8)
1、一种微处理器调试方法,其特征在于包括:
一个调试通信接口,作为调试主机与微处理器内核的通信通道;
一种同步机制,保证不同时钟域的内核与调试主机分时访问地址寄存器、数据寄存器和控制寄存器;
一种快速传送机制,实现大量数据在片外调试存储空间与微处理器内核之间快速上载和下载;所述快速传送机制将大量地址连续的数据从调试主机下载到内核存储器或从内核存储器上载到调试主机时,只需在上载或下载之初访问一次地址寄存器和一次控制寄存器即可;
七类产生于微处理器不同流水线的调试异常,所述流水线相关的精确调试异常触发单元包括分别与调试异常插入单元相连的软件断点、指令断点、写数据断点、读数据断点、单布异常、调试中断和调试自动异常;
一种调试异常精确处理机制,所述调试异常精确处理机制是将调试异常集中在微处理器流水线的TC级处理;如果有多个异常同时发生,遵循从高到低的优先级处理;调试态下发生的普通异常时,采用重进入调试态策略。
2、一种微处理器调试模块,其特征是:包括标准JTAG接口(10)、调试通信接口(20)、快速传送单元(30)、片外调试存储空间(40)、流水线相关的精确调试异常触发单元(50)和流水线相关的精确异常处理单元(60);所述标准JTAG接口(10)的一端与片外调试存储空间(40)相连,标准JTAG接口(10)的另一端分别与调试通信接口(20)和快速传送单元(30)相连,调试通信接口(20)分别与流水线相关的精确调试异常触发单元(50)和流水线相关的精确异常处理单元(60)相连,快速传送单元(30)也分别与流水线相关的精确调试异常触发单元(50)和流水线相关的精确异常处理单元(60)相连,流水线相关的精确调试异常触发单元(50)与流水线相关的精确异常处理单元(60)相连。
3、根据权利要求2所述的微处理器调试模块,其特征是:所述流水线相关的精确异常处理单元(60)包括调试异常插入单元(601),流水线控制单元(602)、异常PC暂存寄存器(603)和调试寄存器(604)分别与调试异常插入单元(601)相连。
4、根据权利要求3所述的微处理器调试模块,其特征是:所述流水线相关的精确调试异常触发单元(50)包括分别与调试异常插入单元(601)相连的软件断点(501)、指令断点(502)、写数据断点(503)、读数据断点(504)、单布异常(505)、调试中断(506)和调试自动异常(507)。
5、根据权利要求4所述的微处理器调试模块,其特征是:所述调试通信接口(20)包括同步单元(207),所述同步单元(207)分别与地址寄存器(204)、数据寄存器(205)和控制寄存器(206)相连;调试通信接口(20)还包括访问标志(208)。
6、根据权利要求5所述的微处理器调试模块,其特征是:所述标准JTAG接口(10)包括TAP控制器(101),地址移位寄存器(102)、数据移位寄存器(103)和控制移位寄存器(104)分别与TAP控制器(101)相连。
7、根据权利要求6所述的微处理器调试模块,其特征是:所述快速传送单元(30)包括相连的快速指令寄存器组(301)和循环判断器(302),还包括内含快速访问标志寄存器(305)的快速移位寄存器链(306)。
8、根据权利要求7所述的微处理器调试模块,其特征是:所述片外调试存储空间(40)包括调试程序存储空间(401)、调试数据存储空间(402)和调试反馈存储空间(403)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810060713A CN100592266C (zh) | 2008-04-25 | 2008-04-25 | 一种微处理器调试方法及所用的微处理器调试模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810060713A CN100592266C (zh) | 2008-04-25 | 2008-04-25 | 一种微处理器调试方法及所用的微处理器调试模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101261601A CN101261601A (zh) | 2008-09-10 |
CN100592266C true CN100592266C (zh) | 2010-02-24 |
Family
ID=39962067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810060713A Expired - Fee Related CN100592266C (zh) | 2008-04-25 | 2008-04-25 | 一种微处理器调试方法及所用的微处理器调试模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100592266C (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989222B (zh) * | 2010-11-22 | 2012-10-03 | 连云港杰瑞深软科技有限公司 | 一种龙芯仿真器终端 |
CN103246584B (zh) * | 2012-02-14 | 2017-02-22 | 苏州澜起微电子科技有限公司 | 片上系统芯片结构及保存调试信息的方法 |
CN103472776B (zh) * | 2013-08-26 | 2015-12-09 | 株洲南车时代电气股份有限公司 | 上位机与下位机通讯中断的安全控制方法和系统 |
CN104461796B (zh) * | 2013-09-17 | 2017-12-22 | 上海华虹集成电路有限责任公司 | 用于嵌入式8051cpu的jtag调试模块及调试方法 |
CN104391770B (zh) * | 2014-10-23 | 2016-08-24 | 山东维固信息科技股份有限公司 | 一种嵌入式数据安全系统用soc芯片的在线调试及上位机通讯模块 |
CN106776433A (zh) * | 2016-12-15 | 2017-05-31 | 深圳市博巨兴实业发展有限公司 | 一种微控制器芯片中的调试单元 |
CN109284223B (zh) * | 2017-07-21 | 2023-10-20 | 超威半导体(上海)有限公司 | 可配置的调试方法和系统 |
CN115357440A (zh) * | 2018-12-13 | 2022-11-18 | 展讯通信(上海)有限公司 | 针对处理器板级调试的开发系统 |
CN109918303B (zh) * | 2019-03-05 | 2022-12-16 | 上海嘉楠捷思信息技术有限公司 | 一种芯片、芯片调试方法及装置、设备、介质 |
CN112346917A (zh) * | 2019-08-09 | 2021-02-09 | 烽火通信科技股份有限公司 | 一种pci-e端点诊断系统及方法 |
CN112667514B (zh) * | 2020-12-31 | 2024-08-20 | 海光信息技术股份有限公司 | 一种微程序的调试方法及其调试装置 |
CN116700795B (zh) * | 2023-08-01 | 2023-12-01 | 广州中基国威电子科技有限公司 | 一种位操作控制系统及控制方法 |
-
2008
- 2008-04-25 CN CN200810060713A patent/CN100592266C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101261601A (zh) | 2008-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100592266C (zh) | 一种微处理器调试方法及所用的微处理器调试模块 | |
US7058855B2 (en) | Emulation interface system | |
US6148381A (en) | Single-port trace buffer architecture with overflow reduction | |
CN101446918B (zh) | 一种实现用户态调试器调试单个函数的方法及系统 | |
CN100565472C (zh) | 一种适用于多处理器核系统芯片的调试方法 | |
Goossens et al. | Transaction-based communication-centric debug | |
US20070180431A1 (en) | Maintaining coherent synchronization between data streams on detection of overflow | |
US20080077780A1 (en) | System and Method for Software Debugging | |
CN103729288A (zh) | 一种嵌入式多核环境下应用程序的调试方法 | |
US20050268195A1 (en) | Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems | |
US8042001B2 (en) | Protecting code from breakpoints | |
CN101004707A (zh) | 一种嵌入式软件调试装置及其调试实现方法 | |
CN104272271A (zh) | 具有指令跟踪能力的处理器装置 | |
US20060218384A1 (en) | Emulation Pause and Reset Tracing of Multiple Sync Points Pointing to Different Addresses | |
US20050229163A1 (en) | Thread-scoped breakpoints | |
CN103713977A (zh) | 一种微处理器ip核比较验证的实现方法 | |
EP2972880A1 (en) | Kernel functionality checker | |
Vermeulen et al. | Debugging distributed-shared-memory communication at multiple granularities in networks on chip | |
US7526756B2 (en) | Address watch breakpoints with basing pointers | |
CN111008133B (zh) | 粗粒度数据流架构执行阵列的调试方法及装置 | |
Li et al. | A readback based general debugging framework for soft-core processors | |
CN100390752C (zh) | 一种单步执行在片调试功能的方法及装置 | |
US8401835B2 (en) | Trigger ordering for trace streams when multiple triggers accumulate | |
US7249285B2 (en) | Address watch breakpoints in a hardware synchronization range | |
US20050120278A1 (en) | Systems and methods for verifying lockstep operation |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100224 Termination date: 20170425 |