用于非侵入跟踪的方法和装置的制作方法

文档序号:6657093阅读:226来源:国知局
专利名称:用于非侵入跟踪的方法和装置的制作方法
技术领域
本发明涉及用于跟踪发生在基于处理器的设备上的事件的方法和装置,尤其涉及用于非侵入跟踪的方法和装置系统。
背景技术
现代微处理器高度复杂。它们通常包括多个部件,能够以非常高的速度执行多种任务。许多现代设备通常包括一个或多个处理器、控制器和各种存储器模块,包括高速缓存存储器。
已知各种用于提取可以反映计算机化的系统怎样工作的信息的系统和方法。这些装置包括片上调试器、片上仿真器等。
IEEE-ISTO 5001TM标准,也称为NEXUS,定义了一种用于嵌入式控制应用的标准调试接口。NEXUS提供了相对有限数量的调试信息,但是能够控制处理器。追踪的信息可以经由专用I/O管脚或经由JTAG接口发送,但并非必需这样。
下面的美国专利和专利申请都在此通过引用结合进来,提供了现有技术调试和仿真装置及方法的某些状态的例子Smolders的题为“System for tracing hardware counters utilizing programmed traceinterrupt after each branch instruction or at the end of each code basicblock”的美国专利6,253,338;Williams等的题为“Accessing diagnosticprogram counter value data within data processing system”的美国专利申请2002/0049893;Edwards等的题为“Circuit for storing traceinformation”的美国专利6,615,370;以及VanHuben等的题为“Programmable hardware event monitoring method”的美国专利6,134,676。
需要提供表示基于处理器的复杂系统的行为的大量信息,尤其是提供有关互相相关事件的信息。
除了已知标准所需要的信息之外,还需要提供跟踪信息,而不阻止标准跟踪信息在标准化接口上的提供。

发明内容
本发明允许提供可以反映多个计数器值的跟踪信息,这多个计数器值是对所选择的事件进行计数。除了所述这些值,或者作为对所述这些值的替代,跟踪信息还可以包括附加的跟踪信息。附加的跟踪信息包括下列至少一个程序计数器值、处理器的特权级别以及任务ID。
本发明允许对一个或多个计数器的内容进行采样,以响应接收到的附加跟踪信息。
本发明允许提供有关与处理器相关联的事件的信息以及有关处理器之外的部件的事件的信息。
本发明提供一种用于非侵入跟踪的装置,该装置包括(i)多个计数器,用于对多个选择的事件进行计数;(ii)多个影子寄存器,连接到多个计数器,用于以无缝的方式对多个计数器进行采样,从而提供多个计数器值,以响应触发事件;(iii)计数器和寄存器逻辑,连接到多个计数器以及多个影子寄存器,用于控制多个计数器和多个影子寄存器的操作;以及(iv)跟踪逻辑,连接到多个影子寄存器,适于(i)接收多个计数器值,并且接收包括至少一个程序计数器值以及处理器特权级别指示和任务ID至少之一的附加跟踪信息,和(ii)输出多个计数器值和附加跟踪信息至少之一。
本发明提供一种用于非侵入跟踪的方法,该方法包括(i)由多个计数器对选择的事件进行计数;(ii)对多个计数器进行采样以提取多个计数器值,以响应预定触发事件;(iii)接收包括至少一个程序计数器值、处理器特权级别指示和/或任务ID的附加跟踪信息;以及(iv)输出多个计数器值或附加跟踪信息,或这二者都输出,作为跟踪信息。


通过下面的详细描述,结合附图,将更全面地理解和认识本发明,在附图中图1是根据本发明一个实施例的系统的示意图;图2是根据本发明一个实施例的调试和仿真单元的示意描绘;图3-5图示说明根据本发明一个实施例的各种控制寄存器;以及图6-7是根据本发明实施例的用于非侵入跟踪的方法的流程图。
具体实施例方式
图1图示说明了根据本发明一个实施例的系统100。系统100包括数字信号处理器(称为DSP或处理器)110、数据通道130、存储器管理单元(MMU)300、指令通道340、一级RAM存储器370以及接口单元380。
处理器110、指令通道340、共享存储器370和MMU 300连接到一个程序总线120。指令通道340包括指令高速缓存模块350和负责对指令高速缓存模块350进行指令取和预取的指令取单元(IFU)360。
DSP 110具有第一数据端口116和第二数据端口118。第一数据端口116经由第一数据总线(XA)122连接到数据通道130的第一端口132,连接到MMU 300以及连接到一级RAM存储器370。第二数据端口118经由第二数据总线(XB)124连接到数据通道130的第二端口134,连接到MMU 300以及连接到一级RAM存储器370。为了简化解释,与每一数据和地址总线相关联的地址总线没有显示出来。
数据通道130经由数据取总线126连接到接口380,接口380又连接到一个或多个附加的存储器,诸如高等级存储器50。附加存储器可以是多级高速缓存架构的一部分,而数据通道内的数据高速缓存模块是第一级高速缓存模块,其他的存储器是二级高速缓存和/或存储器。它们也可以是被称为主存储器的外部存储器的一部分。
MMU 300包括硬件保护单元320,用于提供程序和数据硬件保护,还包括转换单元310,用于高速虚拟地址到物理地址的转换。MMU 330还能够提供各种高速缓存和总线控制信号。虚拟地址是由处理器100生成的地址,通过由处理器110执行的代码来查看。物理地址用于访问各种存储器组。
数据通道130包括跟踪写缓冲器(TWB)160;多个存储器实体(统标为162),诸如高速缓存存储器和一个或多个附加的写缓冲器;以及数据控制单元(DCU)150,其在TWB 160和其他存储器实体162的总线请求之间仲裁。DCU 150可以应用各种公知仲裁方案。方便地,DCU 150根据预定优先级在各种总线请求之间仲裁。TWB 160通常发布来自TWB 160的低优先级总线请求,但在某些情况下也可以发布高优先级总线请求。
图2是根据本发明一个实施例的调试和仿真(profiling)单元(DPU)500的示意描绘。
DPU 500包括多个计数器,诸如计数器611-616,其被安排成两组,每组3个计数器,DPU 500还包括多个影子寄存器(shadow register)621-626、计数器和寄存器逻辑610、ID比较逻辑645、NEXUS接口675、接口629和多个跟踪逻辑单元,多个跟踪逻辑单元诸如跟踪写管理单元640、第一切换单元650、压缩器655、第二切换单元670和跟踪信息逻辑652。DPU 500连接到片上仿真器(也称为EOnCE)单元502,连接到诸如NEXUS块504的高等级跟踪信息部件,以及连接到TWB160。根据本发明的其他实施例,跟踪逻辑可以包括以下至少一个ID比较逻辑645、NEXUS接口675、接口629、在上述基础上增加单元或减少单元。片上仿真单元,诸如EOnCE单元502,是本领域公知的。EOnCE单元502在SC140eTMDSP Core Reference Manual的第4章中有描述,在此通过引用结合进来。
EOnCE单元502允许对各种寄存器、程序计数器(PC)等的特定量的访问。其与JTAG接口单元相连接以提供JTAG兼容信号(测试数据输入TDI、测试数据输出TDO、测试时钟输入TCK、测试模式选择输入TMS和测试复位TRST)。
简单地说,EOnCE单元502包括EOnCE控制器、事件计数器、跟踪单元、事件检测单元、事件选择器和同步单元。事件检测单元包括六个地址事件检测通道EDCA5~EDCA0,每个都能够在与第一或第二数据总线XA 122和XB 124相关联的地址线上检测特定地址(或者属于特定地址范围的地址)的出现。
EOnCE单元502可以工作于各种操作模式,并且用于跟踪各种事件,包括(i)TEXEXT-跟踪每一执行集合的PC,(ii)TMARK-跟踪包括MARK指令的执行集合的PC,(iii)TCHOF-跟踪包括预定流改变指令的指令集合的源和目标PC,(iv)TLOOP-跟踪硬件循环的执行,对于长循环,跟踪最后地址和开始地址的PC,对于短循环,只跟踪最后地址的PC,(v)TSUB-跟踪包括子程序调用或返回指令的执行集合的源和目标PC,(vi)TRTE-跟踪包括从异常指令返回的执行集合的源和目标PC,以及(vii)TINT-跟踪中断和异常的中断点和目标PC。此外,在跟踪事件时,可以跟踪计数器值和扩展计数器值。
一般地,一旦发生了流改变,EOnCE单元502可以提供一个或多个程序计数器值以及用于反映处理器的特权级别的任务标志。
计数器和寄存器逻辑610包括多个控制寄存器,诸如控制寄存器710-736,用于确定计数器611-616对哪些事件进行计数,哪些事件将使得影子寄存器621-626以非侵入的方式采样计数器611-616。
计数器611-616中每一计数器都是31位下计数寄存器,其可以工作在单步计数模式和跟踪模式。在前一种模式,计数器从特定编程值到0进行计数,然后建立事件并停止计数。这个事件可以使得处理器110进入调试模式,可以触发调试异常或调试中断。在后一种模式,计数器保持计数,达到0,循环环绕并继续计数。计数器611-616的内容在跟踪事件时由影子寄存器621-626读取。
DPU 500能够经由TWB 160将EOnCE生成或DPU 500生成的跟踪信息写到虚拟跟踪缓冲器(VTB)670。其还能够将跟踪信息写到外部NEXUS块504。
方便地,VTB 670是高等级存储器模块50内的存储空间,由储存在各个控制寄存器中的起始地址和结束地址定义,后面将描述。控制寄存器还保存指向应该接收跟踪信息的当前存储器条目的指针。
跟踪写管理单元640控制跟踪信息写到VTB 670的过程。跟踪信息可以以三种可能的模式从VTB 670写出。当工作于改写模式时,跟踪写地址循环到起始地址,跟踪数据改写旧的数据。这种跟踪模式使得能够查看指引到断点或错误点的跟踪信息。当工作于单一地址模式时,跟踪信息被写入一个可编程地址。这允许将跟踪信息写入诸如串行接口单元的外围设备。当工作于跟踪事件请求模式时,一旦VTB 670被填满,VTB 670中的信息可以定期地被读取。DPU 500可以生成激活VTB 670读操作的中断,例如通过DMA。跟踪信息可包括DPU生成的跟踪信息(诸如六个寄存器611-616的内容)、EOnCE单元生成的跟踪信息和压缩的EOnCE单元生成的跟踪信息。第一和第二切换单元650和670接收控制信息,用于选择输出哪个信息。根据本发明一个实施例,跟踪信息可以包括这些信息的组合。根据本发明另一实施例,VTB 670可以接收特定跟踪信息,同时NEXUS块504接收其他跟踪信息。这个区分可以通过现有逻辑部件而简单地得到利用。
EOnCE单元生成的信息被压缩单元655压缩,压缩单元655可以提供下面将提及的压缩方案或者各种公知的压缩方案。根据本发明一个实施例,压缩器通过删除冗余循环信息而压缩EOnCE单元生成的跟踪信息。例如,如果跟踪信息反映出短硬件循环的出现,仅写入循环的最后地址和执行循环的次数。如果跟踪信息反映出长硬件或软件循环的出现,只写入循环的最后地址或循环的起始地址以及执行循环的次数。DPU通过短循环标志来标记短硬件循环的出现,而用长循环标志来指示长软件或硬件循环的出现。
TWB 160有八个256位条目的深度。当TWB 160填满时,它发送高优先级总线请求到DCU 150,否则,它发送低优先级总线请求到DCU150。
通过确定要被跟踪的信息的数量和类型的控制信号,可以控制到VTB 670的访问,以及到TWB 160、随后到VTB 670的跟踪信息流。
跟踪信息可以包括多个跟踪标志。每一跟踪标志具有唯一的值,其不能被解释为其他的跟踪信息,诸如程序地址。跟踪标志,除了虚标志之外,指示跟踪信息的类型。跟踪标志包括用户任务标志、超级用户任务标志、短循环标志、长循环标志、VTB填满标志和虚标志。
有两种任务标志——用户任务标志和超级用户任务标志。因此,任务标志反映了任务的特权级别。用户任务标志指示处理器工作在用户特权级别,还包括任务ID。超级用户任务标志指示处理器工作在超级用户特权级别。VTB虚和填满标志用于TWB填补,并且不传送跟踪信息。
根据本发明一个实施例,表1说明了示例的标志格式。位0的值为X表示它可以是0或1,取决于使用该标志的环境(参见表2)。
表1

DPU基本地址是不能被解释为程序计数器值的唯一地址。
在第一操作模式,当发生任务切换时,DPU 500可以保存下列信息前一任务的最后PC、计数器611-616的值、新任务的第一PC以及新任务的任务标志。EOnCE单元502将被编程,从而同时跟踪中断和RTE指令。任务标志包括有关处理器特权级别的指示。
在第二操作模式,当处理器跳转到子程序或中断程序或从子程序或中断程序返回时,DPU 500保存信息。一旦发生了这样的事件,EOnCE单元502向DPU 500发送源PC和目标PC。一旦接收到这样的PC对,DPU 500对下列信息采样跳转到子程序或中断程序或从子程序或中断程序返回之前的最后的PC、计数器611-616的值、任务标志和流改变后的第一PC。EOnCE单元502被编程,从而跟踪下列流改变指令跳转到中断程序、从中断服务程序返回、跳转到子程序以及从子程序返回。
在第三操作模式,当设置PD_TC 740中的采样(SAMPLE)位时,DPU 500保存下列信息任务标志、计数器611-616的值、以及虚标志,虚标志用以确保每一跟踪消息的大小是256比特。一旦第一信息部分被发送到TWB 160,采样位复位。
在第四操作模式,当EOnCE的地址事件检测通道EDCA5生成事件,其可以是该单元检测到的任何类型的断点时,DPU 500保存信息。保存下列信息任务标志、计数器611-616的值、以及虚标志。
在第五操作模式,一旦执行到跟踪数据寄存器(在图5中标为DP_TD 750)的写访问,则将其内容写入到TWB 160。
以特定格式将跟踪信息写入到TWB 160。跟踪条目是任何数目的来自DPU 500的写操作,其生成作为一个跟踪事件的结果。跟踪条目包括上面提及标志中的至少一个,并且方便地,具有表2所示的格式。本领域技术人员将认识到,也可以使用其他的格式。
表2

根据上述格式,写入TWB 160的第一跟踪信息的特征在于LSB值为1,其后跟随的是附加跟踪信息,其特征在于LSB值为0。这使得跟踪信息容易解析。
DPU 500包括多个控制寄存器。大部分这些控制寄存器属于计数器和寄存器逻辑610,但某些属于跟踪写管理单元640和ID比较逻辑645。这些寄存器包括一般控制寄存器、计数器控制寄存器和跟踪缓冲器寄存器。
跟踪信息逻辑652连接到第一切换单元650,从EOnCE单元502接收跟踪信息,比较至少某些该信息与预定的(通常是编程的)值,并且响应于所述部分,可以开始一个或多个触发事件。跟踪信息逻辑652连接到计数器和寄存器逻辑610以便提供关于出现一个或多个触发事件的指示。
图3图示说明了根据本发明一个实施例的各种一般控制寄存器。一般控制寄存器包括控制寄存器(DP_CR)700,状态寄存器(DP_SR)702,监控寄存器(DP_MR)704,PID检测参考值寄存器(DP_RPID)706和DID检测参考值寄存器(DP_RDID)708。
控制寄存器(DP_CR)700包括两个ID比较位(TIDCM,位29-28),其定义ID比较逻辑645是否考虑数据任务ID和/或指令任务ID或都不考虑。
某些位(位27-14)指示各种EOnCE生成事件(ISEDACA5~ISEDACA0,位27-16)、EOnCE生成中断请求(EIS,位14)是否可以导致到程序中断控制器(PIC)(未示出)的0、1或2个中断请求。DP_CR 70剩下的位(位13-0)指示是否将中断请求发送到PIC或将调试请求发送到EOnCE单元502,以响应计数器生成事件(DECB2~DECA0,位11-0)或与跟踪相关的事件(DETB,位13-12)。
状态寄存器(DP_SR)702包括跟踪缓冲器有效位(TWBA,位6),表示TWB 160中是否有跟踪信息没有到达VTB 670,还包括六个计数器使能位(ENCB2~ENCA0,位5-0),每位表示是否启动或停用各计数器。
监控寄存器(DP_MR)704包括跟踪缓冲器满位(TBF,位9),表示TWB 160满,还包括多个位(DRA、DRN、DRTB、DRCB2~DRCA0),表示现有调试请求或中断的原因。这些原因可以是外部调试请求、NEXUS调试请求、跟踪事件、或与六个计数器之一相关联的事件。
PID检测参考值寄存器(DP_RPID)706包括8位参考程序ID值(RPID,位7-0)以便由ID比较逻辑645进行比较。
DID检测参考值寄存器(DP_RDID)708包括8位参考数据ID值(RDID,位7-0)以便由ID比较逻辑645进行比较。
图4图示说明了根据本发明一个实施例的某些计数器控制寄存器。计数器控制寄存器包括第一计数器集合寄存器(DP_TAC)710,第二计数器集合寄存器(DP_TBC)712,第一到第六计数器控制寄存器(DP_C1~DP_C6)714-724,以及第一到第六计数器值寄存器(DP_C1~DP_C6)726-736。
第一计数器集合寄存器(DP_TAC)710包括集合禁用模式特权级别位(TDMP,位29-28),其确定可能需要的ID值之外的、可以禁用计数器集合的操作的特权级别(用户或超级用户)。DP_TAC进一步包括用于规定禁用寄存器集合的事件的位(TDM,位27-24),并且尤其规定哪个EDCA与可禁用计数器集合的事件相关联。除了上述的位之外,DP_TAC还包括寄存器集合模式特权位(TENMP,位21-20),其定义可以启动计数器的事件(也称为跟踪事件)的特权级别,还包括启动寄存器集合的事件的位(TENM,位19-16),以及计数事件群特权级别位(CEGP,位13-12),其定义了包括跟踪事件的任务的特权级别。这些位之后是计数器事件群位(CEG,位8-4),其表示正在对哪一跟踪事件集合进行计数,还有计数器集合模式寄存器位(CMODE,位2-1),其定义计数器集合是否操作于单步计数模式或跟踪模式,最后是TCEN位(位0),其确定寄存器是否单独被控制或受到集体控制。
第二计数器集合寄存器(DP_TBC)712与第一计数器集合寄存器710相同,但控制第二计数器集合614-616。
六个计数器控制寄存器(DP_C1~DP_C6)714-724中的每一个都与计数器集合寄存器DP_TAC相似,但控制单独计数器而不是控制寄存器集合。最不重要位被禁用。
六个计数器值寄存器(DP_C1~DP_C6)726-736中的每一个都保存六个计数器每个的31位计数器值,其用作初始计数值以及启动之后的进行中的计数器值。
图5图示说明了各种跟踪单元寄存器,诸如跟踪控制寄存器(DP_TC)740、VTB起始地址寄存器(DP_TSA)742、VTB结束地址寄存器(DP_TSA)744、跟踪事件请求寄存器(DP_TER)746、跟踪写指针寄存器(DP_TW)748、以及跟踪数据寄存器(DP_TD)750。
跟踪控制寄存器(DP_TC)740包括特权位(PROV,位21),表示VTB写访问的特权。DP_TC 740还包括全局操作属性(GLOBAL,位20-19)、表示对VTB 670的写操作的突发大小(通常一个、两个、四个或八个BDU)的突发大小位(BURST-SIZE,位17-16)、以及暂时禁用位(TMPDIS,位12),用于允许刷新TWB 160的内容,以便验证所有跟踪信息都到达VTB 670。DP_TC 740进一步包括虚拟跟踪缓冲器写模式位(VTBWM,位9-8),表示跟踪信息是否将要以改写模式、单一地址模式或跟踪事件请求模式来写。这些位之后是采样计数器值到VTB位(SAMPLE,位6)以及跟踪模式位(TMODE,位4-1),表示正在输出的跟踪信息,诸如EOnCE生成跟踪信息、压缩EOnCE生成跟踪信息(以及添加的任务标志)、具有附加跟踪信息的六个计数器的值。DP_TC 740的最不重要位是使能位(EN),表示是否启动跟踪。
VTB起始地址寄存器(DP_TSA)742储存虚拟跟踪缓冲器760的开始的32位物理地址。VTB结束地址寄存器(DP_TSA)744储存虚拟跟踪缓冲器760的结尾的32位物理地址。跟踪事件请求寄存器(DP_TER)746储存VTB 670内的32位地址,在此应该生成中断或调试请求。当DPU 500操作为跟踪事件请求事件模式时,对该地址写。跟踪写指针寄存器(DP_TW)748储存到VTB 670条目的32指针,在此写入当前跟踪信息。跟踪数据寄存器(DP_TD)750储存应该以特定操作模式写入VTB 670的数据。
方便地,可以设置计数器集合来追踪事件集合。表3图示说明了三个寄存器的集合所跟踪的各种事件集合。
表3


图6是根据本发明一个实施例的用于非侵入跟踪的方法800的流程图。方法800开始于步骤810,通过多个计数器对所选择事件进行计数。参看图2中所述的例子,计数器和寄存器逻辑610确定计数寄存器611-616对哪个跟踪事件进行计数。该确定响应于各种控制寄存器的内容,这些内容有助于单独控制每一计数器,或甚至有助于基于事件集合进行控制。控制寄存器可以在初步配置步骤805期间进行配置。从框810到其自身的箭头表示事件计数的同时方法800执行步骤820和830。
方法800进一步包括采样多个计数器的步骤820,用以以非侵入方式提取多个计数器值,以响应预定触发事件。参看图2所述的例子,影子寄存器621-626适于在接收到触发事件时对计数器611-616的内容进行采样。触发事件是预定的,尤其是使用各种控制寄存器。每一影子寄存器都可以执行采样操作,而不管其他影子寄存器的情况。
步骤820之后是输出多个计数器值作为跟踪信息的步骤830。参看前面图中所述的例子,接口645能够以各种方式输出跟踪信息。
图7是根据本发明一个实施例的方法900的流程图。
方法900开始于步骤805,其后是步骤810和820。
与这些步骤平行,方法900包括步骤910,接收附加跟踪信息,诸如EOnCE生成的跟踪信息。步骤910之后是步骤920和925。步骤920包括压缩跟踪信息。步骤925包括将ID与压缩的或没有压缩的EOnCE生成跟踪信息相关联,ID可以是数据ID或信息ID。
步骤925和820之后是步骤860,选择应该输出哪个信息作为跟踪信息。这可以只是三种跟踪信息类型之一或者其可以是它们的组合。方便地,如果选择输出压缩的跟踪信息,则可以只添加任务ID信息,而不添加计数器值。
步骤860之后是步骤960,输出跟踪信息。这可以包括将信息经由TWB 160写入VTB 670,和/或将至少某些信息经由NEXUS接口675写入NEXUS块504。
这里所述的实施例的变化、修改及其他实现对于本领域普通技术人员来说是显然的,不背离本发明所要求保护的精神和范围。因此,本发明不限定于前面的说明性描述,而是由权利要求的精神和范围来限定。
权利要求
1.一种用于非侵入跟踪的装置,所述装置包括多个计数器,用于对多个选择的事件进行计数;多个影子寄存器,连接到多个计数器,用于以无缝的方式对多个计数器进行采样,从而提供多个计数器值,以响应触发事件;计数器和寄存器逻辑,连接到多个计数器以及多个影子寄存器,用于控制多个计数器和多个影子寄存器的操作;以及跟踪逻辑,连接到多个影子寄存器,适于(i)接收多个计数器值并且接收包括至少一个程序计数器值的附加跟踪信息,和(ii)输出多个计数器值和附加跟踪信息至少之一。
2.权利要求1的装置,进一步包括跟踪写管理单元,适于控制跟踪信息到虚拟跟踪缓冲器的写过程。
3.权利要求2的装置,进一步包括跟踪写缓冲器,用于接收跟踪信息以及用于将跟踪信息提供给虚拟跟踪缓冲器。
4.权利要求1的装置,进一步包括压缩器,适于压缩跟踪信息。
5.权利要求4的装置,其中所述压缩器适于通过删除表示循环的出现的跟踪信息来压缩跟踪信息。
6.权利要求5的装置,其中所述压缩器适于通过提供循环标志来提供对于循环的出现的指示,该指示反映了循环重复数目以及循环地址。
7.权利要求1的装置,其中所述多个计数器被安排为计数器集合,其中所述计数器和寄存器逻辑用于对寄存器集合进行编程从而跟踪事件集合。
8.权利要求1的装置,进一步适于响应于事件而开始中断。
9.权利要求1的装置,进一步适于提供跟踪信息给高等级跟踪信息组件。
10.权利要求1的装置,其中,至少一个触发事件是预定附加跟踪信息的接收。
11.权利要求1的装置,其中,至少一个触发事件是流改变事件。
12.权利要求1的装置,其中,至少一个触发事件是被跟踪的处理器的特权级别的改变。
13.一种用于非侵入跟踪的方法,所述方法包括由多个计数器对选择的事件进行计数;对多个计数器进行采样以提取多个计数器值,以响应预定触发事件;接收包括至少一个程序计数器值的附加跟踪信息;以及输出多个计数器值和附加跟踪信息至少之一,作为跟踪信息。
14.权利要求13的方法,进一步包括将跟踪信息写入虚拟跟踪缓冲器。
15.权利要求13的方法,进一步包括压缩附加跟踪信息以提供压缩的跟踪信息。
16.权利要求15的方法,其中所述的压缩包括删除表示循环的出现的跟踪信息。
17.权利要求15的方法,其中所述的压缩产生了包括循环标志的对于循环的出现的指示,该指示反映了循环重复的数目和循环地址。
18.权利要求13的方法,进一步包括配置计数器集合以对事件集合计数的初步步骤。
19.权利要求13的方法,其中,至少一个触发事件是预定附加跟踪信息的接收。
20.权利要求13的方法,其中,至少一个触发事件是流改变事件。
21.权利要求13的方法,其中,至少一个触发事件是被跟踪的处理器的特权级别的改变。
22.权利要求1的装置,其中所述附加跟踪信息进一步包括处理器特权级别指示。
23.权利要求13的方法,其中所述附加跟踪信息进一步包括处理器特权级别指示。
24.权利要求13的方法,其中所述跟踪数据包括跟踪标志。
25.权利要求24的方法,其中所述跟踪标志选自任务标志、超级用户任务标志、短循环标志、长循环标志、和VTB填满标志。
26.权利要求1的装置,其中所述输出跟踪数据包括跟踪标志。
27.权利要求27所述的装置,其中所述跟踪标志选自任务标志、超级用户任务标志、短循环标志、长循环标志、和VTB填满标志。
28.一种用于非侵入跟踪的装置,所述装置包括多个计数器,用于对多个选择的事件进行计数;多个影子寄存器,连接到多个计数器,用于以无缝的方式对多个计数器进行采样,从而提供多个计数器值,以响应触发事件;计数器和寄存器逻辑,连接到多个计数器以及多个影子寄存器,用于控制多个计数器和多个影子寄存器的操作;以及跟踪逻辑,连接到多个影子寄存器,适于输出多个计数器值中至少之一。
29.一种用于非侵入跟踪的方法,所述方法包括由多个计数器对选择的事件进行计数;对多个计数器进行采样以提取多个计数器值,以响应预定触发事件;输出多个计数器值,作为跟踪信息。
全文摘要
公开一种用于非侵入跟踪的方法和装置。方法包括由多个计数器对选择的事件进行计数;对多个计数器进行采样以提取多个计数器值,以响应预定触发事件;接收包括至少一个程序计数器值的附加跟踪信息;以及输出多个计数器值和附加跟踪信息至少之一,作为跟踪信息。
文档编号G06F11/00GK101040263SQ200580034886
公开日2007年9月19日 申请日期2005年9月13日 优先权日2004年9月14日
发明者伊塔伊·佩莱德, 摩西·安舍尔, 尤里·达扬, 雅各布·埃弗拉特, 亚伯拉罕·霍恩 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1