CN103902426B - 多层追踪 - Google Patents
多层追踪 Download PDFInfo
- Publication number
- CN103902426B CN103902426B CN201310734379.4A CN201310734379A CN103902426B CN 103902426 B CN103902426 B CN 103902426B CN 201310734379 A CN201310734379 A CN 201310734379A CN 103902426 B CN103902426 B CN 103902426B
- Authority
- CN
- China
- Prior art keywords
- hbti
- lbti
- tracked information
- message
- tracked
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3068—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data format conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
- G06F11/364—Software debugging by tracing the execution of the program tracing values on a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3027—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
Abstract
本公开涉及用于计算机处理系统中的追踪解决方案的方法和系统。更具体地,本公开涉及用于多层追踪体系结构的方法和系统。一种用于将原始追踪数据分离的方法包括:从系统中的一个或多个CPU和/或总线接收原始追踪数据,将原始追踪数据分离成高带宽追踪信息(HBTI)和低带宽追踪信息(LBTI),将HBTI记录在片上追踪缓冲器上直至特定事件被触发,以及并行地通过片外追踪接口来提供LBTI。在一个实施例中,原始追踪数据分别被提供给单独的HBTI追踪单元和单独的LBTI。HBTI追踪单元处理HBTI并生成HBTI消息,并且LBTI追踪单元处理LBTI并生成LBTI消息。
Description
相关申请的交叉引用
本申请要求题为“Multi-Tier Trace”的2012年12月27日提交的美国临时专利申请序列号61/746,390的优先权,其内容通过引用由此被并入。
技术领域
本公开涉及用于计算机处理系统中的追踪解决方案的方法和系统。更具体地,本公开涉及用于多层追踪体系结构的方法和系统,所述多层追踪体系结构用于在实时系统中观察和追踪一个或多个计算机处理单元。
背景技术
对于软件调试或性能分析而言,追踪流程使得能够实现被监视程序流程的重构,并且因此对在特定软件问题出现之前确定发生哪种类型的事件有用。追踪系统或体系结构被用来观察较高层上的实时控制系统(例如汽车电子控制单元ECU)的行为。此类实时控制系统从传感器获得输入值,控制算法根据该输入值来计算致动器值。所有这些值都是所谓的信号,其需要被观察以便分析系统行为。
图1是图示出用于计算机系统10的常规追踪体系结构的高级框图。常规追踪系统被实施在微芯片上且可以包括具有追踪适配器12a的一个或多个中央处理单元(CPU)12、具有本地追踪适配器14a的一个或多个总线14以及被耦合以从所述一个或多个CPU 12和所述一个或多个总线14接收追踪数据的追踪单元16。追踪单元16还包括用于生成追踪数据的消息发生器18和用于将生成的追踪数据封装的消息封装器20。消息封装器20然后将封装的追踪数据提供给复用器或复制器22,复用器或复制器22提供用以专有地或并行地向不同目标输出数据的选项。封装的追踪消息然后被输出到片上追踪缓冲器24或者经由片外追踪接口26和管脚28被输出芯片外(未示出)。遵循这种方法的典型体系结构是ARM的CoreSight、Infineon的MCDS和符合Nexus标准的体系结构。
诸如图1中所示的追踪单元的常规追踪单元具有若干缺点。常规追踪单元追踪CPU和总线的活动并将相同的流用于封装的追踪消息,所述封装的追踪消息然后被输出到片上缓冲器和/或经由管脚被输出到片外接口。常规追踪单元的一个缺点是有限的带宽,其使追踪仅限于没有或仅具有少数数据访问(例如通过地址范围来准许)的程序流程。为了在其中期望在长时间段内追踪所有芯片内部活动的硬实时系统中发现突发的错误,要求较大芯片面积和/或交替封装(alternate packaging)、板设计和/或加工的高速接口是成本过高的。
另外,常规芯片具有带有有限带宽的追踪接口,其允许用于没有或仅具有少数数据访问的程序流程的追踪。然而,对于以高频率运行的多核设备而言,即使这种方法也不再是经济上可行的。
另一选择是具有小的片上追踪缓冲器和强大的触发逻辑,其中,追踪单元被配置成使用片上缓冲器作为环形缓冲器,并且当其到达触发器时停止追踪记录。典型的错误情况是程序由于错误的地址指针而向被禁止或不允许的位置写入数据值。在这种情况下,用于停止追踪的触发器将被定位在被禁止的地址上。这种方法在其中导致该效果的根本原因在该效果之前不久发生的情况下是有帮助的,并且可以在发生该效果时触发,该效果然后在追踪中被捕捉。然而,这种方法并不是对于所有情况而言都是理想的,尤其是当需要错误的较长上下文时,例如层级N上的特定功能在哪个任务中被调用以及为什么被调用。对于此类信息而言,需要较长的历史。
另外,存在具有不止一个的并行的追踪单元(Trace Unit)、MSG封装器、FIFO和片上管脚路径的追踪体系结构。然而,这些路径专用于特定CPU、总线或子系统,并且不能被用来利用适合于不同的输出目标片上追踪缓冲器和片外追踪接口的不同追踪单元设置来观察相同的CPU、总线或子系统。
因此,常规追踪单元的当前体系结构不足以支持对长历史追踪的观察,并且常规追踪系统由于高架配线和有限的追踪存储器带宽而不能被容易地扩展。
因此,存在对不显著增加需要的成本、效率或观察单元的用于追踪较长历史上下文的多层追踪体系结构的系统和方法的需要。更具体地,需要一种将用于较低带宽追踪信息和高带宽追踪信息的追踪数据输出分离的多层追踪体系结构。
发明内容
根据本公开的一个方面,一种用于在计算机系统中执行多层追踪的系统包括:用于处理来自多个CPU和/或总线的低带宽追踪信息的低带宽追踪信息(LBTI)路径、用于处理来自所述多个CPU和/或总线的高带宽追踪信息的高带宽追踪信息(HBTI)路径、用于接收并记录所述高带宽追踪信息直至发生特定事件触发的片上追踪缓冲器以及用于并行地接收和输出低带宽追踪信息的片外工具接口。在一个实施例中,本公开还包括用于生成LBTI消息的LBTI追踪单元、用于生成HBTI消息的HBTI追踪单元以及被耦合到所述多个CPU和/或总线以便从CPU和/或总线接收原始追踪数据并将其提供给LBTI追踪单元和HBTI追踪单元的复制器。
在另一实施例中,本公开包括用于从所述CPU和/或总线中的一个或多个接收原始追踪数据并用于将原始追踪数据分离成高带宽追踪信息和低带宽追踪信息的单个追踪单元。生成HBTI消息并提供给HBTI消息封装器,并且生成LBTI消息并提供给LBTI消息封装器。封装的HBTI消息被提供给片上追踪缓冲器,并且封装的LBTI消息被并行地提供给片外追踪接口。
根据本公开的另一方面,一种用于执行多层追踪的方法包括:从计算机系统接收原始追踪数据、将原始追踪数据分离成高带宽追踪信息(HBTI)和低带宽追踪信息(LBTI)、将HBTI记录在片上追踪缓冲器上直至特定事件被触发以及并行地通过片外工具接口连续地提供LBTI。在一个实施例中,原始追踪数据被提供给单独的HBTI和LBTI追踪单元。由HBTI追踪单元生成HBTI消息,并且HBTI消息被提供到HBTI消息封装器和片上追踪缓冲器上。由LBTI追踪单元生成LBTI消息,并且LBTI消息被提供到LBTI消息封装器和片外追踪接口上。在另一实施例中,原始追踪数据被提供给单个追踪单元,其中为HBTI生成HBTI消息并为LBTI生成LBTI消息。HBTI和LBTI消息然后分别被提供给单独的HBTI和LBTI消息封装器。
根据参考附图进行的本公开的以下详细描述,本公开的其他特征、方面和优点将变得显而易见。
附图说明
包括附图是为了提供对本公开的进一步理解,并且其被结合在本说明书中并构成本说明书的一部分。附图图示出本公开的实施例并连同描述一起用于解释本公开的原理。将很容易认识到本公开的其他实施例和本公开的许多预期优点,因为通过参考以下详细描述,它们变得更好理解。
图1示出了常规追踪系统的示意图。
图2示出了根据本公开的一个实施例的多层追踪体系结构的示例示意图。
图3示出了根据本公开的另一实施例的多层追踪体系结构的示例示意图。
图4是示出了根据本公开的一个实施例的用于执行多层追踪的方法的流程图。
图5是示出了根据本公开的另一实施例的用于执行多层追踪的方法500的流程图。
具体实施方式
在以下详细描述中,对构成其一部分的附图进行参考,并且在附图中以图示的方式示出其中可以实施本公开的特定实施例。应理解的是,在不脱离本公开的范围的情况下,可以利用其他实施例并且可以进行结构上的或其他修改。因此,不应以限制性的意义来理解以下详细描述,并且本公开的范围由所附权利要求来定义。
追踪流程对应用程序的软件调试是有用的,以便确定在特定软件问题出现之前已发生哪种事件。追踪流程还对分析在各种软件/硬件平台上执行的面向任务的嵌入式和非嵌入式应用程序的性能有用。例如,面向任务的软件程序可以由可应用于控制工业和消费设备的各方面的处理器执行,或者可以包括商业或科学应用软件。出于本描述的目的,应用程序、软件程序、应用软件、程序应用以及程序包括可由微处理器执行的各组指令,并且此类术语可以可互换地被使用。一般地,追踪流程使得能够实现被监视程序流程的重构。
图2是图示出根据本公开的一个实施例的多层追踪体系结构100的高级框图。根据本公开的多层追踪体系结构100在微芯片上实现且包括具有追踪适配器112a的一个或多个中央处理单元(CPU)112、具有本地追踪适配器114a的一个或多个总线114、被耦合到CPU追踪适配器112a和总线追踪适配器114a的复制器115、被耦合以从复制器115接收输入的至少两个追踪单元116a和116b。每个追踪单元116a、116b还包括用于生成追踪数据的至少一个消息发生器118a、118b和用于将生成的追踪数据封装的消息封装器120a、120b。消息封装器120a、120b然后将封装的追踪数据输出到片上追踪缓冲器124或者经由片外追踪接口126和管脚128输出到片外(未示出)。
CPU追踪适配器112a和总线追踪适配器112b从CPU设计内的信号收集需要的追踪信息并将其转换成具有较少信号的更简单且标准化的格式。例如,可以使地址和数据对准,可以仅输出实际执行指令的数据,和/或可以去除管线效应。
复制器115被耦合以从CPU追踪适配器112a和总线追踪适配器114a接收原始追踪数据并向追踪单元116a和116b提供输出。复制器115将来自所有追踪适配器的所需的追踪信息传输至追踪单元。取决于追踪单元能力,它们两个将获得相同的信息,或者它们将获得不同的选择、然而具有大的公共部分。仅向追踪单元传输该追踪单元能够处理的信息使得节省布线开销和因此的芯片面积。在一个实施例中,可以将追踪适配器和复制器的体系结构组合在单个单元中。
追踪单元116使得能够实现被监视程序流程的重构并处理追踪数据、即关于运行的应用程序的信息,而不停止其执行,并且可以循序地记录追踪数据、即可以将有关被执行的指令的信息存储在它们的执行的序列中。追踪单元116可以记录一个或多个指令指针寄存器、也称为程序计数器的值以及CPU的一个或多个堆栈的值和/或可以记录由CPU访问和处理的数据和/或系统总线或CPU或系统100的其他总线上的数据流。
消息发生器118将来自CPU的追踪信息转换成追踪消息。它们通常是高度可配置的,并且能够准许和压缩信息。对于数据追踪而言,通常可配置的是:只有对某个地址范围或多个地址范围的访问导致消息(通过地址的准许)。某些体系结构支持其它基于读和/或写访问、总线主控ID、数据宽度以及甚至数据值的准许。输出的追踪消息可以仅包含地址或者还包含值。还存在用于程序流程追踪的许多已知选项。
图2中的两个追踪单元对于容易的工具操作而言可能是类似的,或者可被适配到用于减小芯片面积的输出路径的带宽。片外接口不一定需要是其中主动地从芯片输出数据的典型追踪端口,诸如对于Nexus接口或ARM ETM而言是典型的。FIFO也可以是经由(Nexus)JTAG、ARM的SWD、Infineon的DAP或类似接口被工具读取的片上追踪缓冲器。
因此,图2中所描述的本公开的实施例提供了允许用于片上和片外追踪的不同带宽的多层追踪体系结构100。换言之,本公开有利地提供用以分裂或分离诸如高带宽追踪信息(HBTI)和低带宽追踪信息(LBTI)的追踪数据的追踪解决方案。例如,在其中正在追踪单个CPU的情况下,用于片上追踪缓冲器的追踪单元可以输出完整程序流程追踪及具有地址和数据值的所有数据访问。此高带宽信息被记录在环形片上缓冲器中,直至触发条件被命中。其他追踪单元可以输出任务ID(在任务切换处,操作系统将任务ID作为数据值写入特定地址并且仅此地址正在被追踪)。此任务ID追踪是非常低带宽的,并且能够甚至用相当缓慢的JTAG接口从小的片上FIFO读取。
在一个实施例中,追踪信息的带宽可能是两个信息流之间的基本区别。此外,高和低带宽追踪信息之间的区别可以是可配置的,并且可以取决于诸如系统所利用的芯片的体系结构和协议、技术和/或封装的因素。例如,在一个实施例中,用于此区别的数量级可以是10兆字节每秒,并且低带宽可以包括1兆字节每秒及以下,并且高带宽可以是100兆字节每秒及以上。
通常,高带宽追踪信息包括诸如完整程序流程的低级追踪信息和CPU的所有数据访问,并且低带宽追踪信息包括高级追踪信息,诸如在任务切换时作为数据追踪被记录的任务ID。然而,在另一实施例中,低带宽追踪信息可以是高带宽追踪信息的子集,并且因此高带宽追踪信息还可以包含高级追踪信息。因此,如果带宽是有限的,则其可以用来传输最感兴趣的信息,其通常但不一定必然是高级追踪信息。在另一示例中,程序流程可以落在低带宽限制内,即使只有非常短的代码序列被追踪,其发生在长距离内。
图3示出了根据本公开的另一实施例的多层追踪体系结构200的示例示意图。根据本公开的另一实施例的多层追踪体系结构200是在微芯片上实现的,并且包括具有追踪适配器212a的一个或多个中央处理单元(CPU)212、具有本地追踪适配器214a的一个或多个总线214、进一步包括用于生成追踪数据的至少一个消息发生器218的追踪单元216和用于将生成的追踪数据封装的至少两个消息封装器220a、220b。消息封装器220a、220b然后将封装的追踪数据输出到片上追踪缓冲器224或者经由片外追踪接口226和管脚228输出芯片外(未示出)。在一个实施例中,消息封装器220a专有地将封装的追踪数据输出到片上追踪缓冲器124,并且消息封装器220b专有地经由片上追踪接口226和管脚228将封装的追踪数据输出芯片外。
追踪单元216使得能够实现被监视程序流程的重构并处理追踪数据、即关于运行的应用程序的信息,而不停止其执行,并且可以循序地记录追踪数据,即可以将关于被执行的指令的信息存储在它们的执行的序列中。追踪单元216可以记录一个或多个指令指针寄存器、也称为程序计数器的值以及CPU的一个或多个堆栈的值和/或可以记录由CPU访问和处理的数据和/或系统总线或CPU或系统100的其他总线上的数据流。追踪单元216还包括消息发生器特征。
关于特定消息是被输出到一个消息封装器、到另一消息封装器还是到两者,消息发生器218是可配置的。这可以针对整个消息发生器和/或针对此类消息发生器内的不同准许单元来配置。例如,具有大范围的一个地址范围比较器被用于高带宽片上追踪,并且具有小范围的第二比较器被用于片外追踪。另一选择是将小范围比较器用于两者,但是对于高带宽片上追踪,存在添加第二较大地址范围的第二比较器。
因此,在图3中所述的本公开的实施例提供了多层追踪体系结构200,其中,在追踪单元216的子块内,能够配置消息被输出到片上追踪缓冲器224还是片上追踪缓冲器226还是它们两者。这种特性允许通过具有仅仅一个追踪单元而不是两个而允许与图2中的实施例相比的芯片面积方面的显著节省。为了支持图2中的实施例,每个MSG发生器仅仅具有用于追踪输出目标的两个控制位就足够了。数据追踪消息发生器仅仅需要具有带有此能力的一个比较器。对于片上追踪,不使用数据地址准许,并且对于任务ID追踪,单个比较器就足够了。因此,与图1中的常规系统相比的唯一显著面积开销是附加的消息封装器。
因此,本公开在并未显著地增加需要的追踪单元的数目或成本的情况下通过提供将追踪数据分离成高带宽追踪信息和低带宽追踪信息来有利地支持对计算机系统中的一个或多个CPU和/或总线的长历史追踪的观察。
图4和5示出了用于执行多层追踪的方法。一般地,一种用于执行多层追踪的方法包括:从计算机系统接收原始追踪数据、将原始追踪数据分离成高带宽追踪信息(HBTI)和低带宽追踪信息(LBTI)、将HBTI记录在片上追踪缓冲器上直至特定事件被触发以及并行地通过片外追踪工具接口提供LBTI。在一个实施例中,HBTI和LBTI被分别提供给单独的HBTI和LBTI追踪单元。在另一实施例中,HBTI和LBTI被提供给单个追踪单元且然后被提供给分别的HBTI和LBTI消息封装器。
更具体地,图4是示出了根据包括分别的追踪单元的本公开的一个实施例的用于执行多层追踪的方法400的流程图。为了清楚起见,在系统200的背景下描述了用于执行多层追踪的方法400。然而,在替换实施例中,可以使用其他配置。此外,其他实施例可以按照不同的顺序来执行这里所述的动作,和/或其他实施例可以执行与这里所述的那些动作相比附加的和/或不同的动作。
本公开的系统在410处从系统中的CPU和/或总线中的一个或多个接收所需的所有原始追踪数据。复制器在420处将此原始追踪信息提供到两个路径。HBTI追踪单元在430处将原始追踪信息转换成HBTI消息。HBTI消息也可以包括(但不必须包括)LBTI。LBTI追踪单元在440处以少得多的带宽从原始追踪数据生成消息。HBTI然后在450处被提供给HBTI消息封装器,并且然后在460处被记录在片上追踪缓冲器上,直至发生特定的触发。LBTI在470处被提供给LBTI消息封装器,并且最后在480处被提供给片外追踪接口。
图5是示出了根据包括单个追踪单元的本公开的另一实施例的用于执行多层追踪的方法500的流程图。为了清楚起见,在系统300的背景下描述了用于执行多层追踪的方法500。然而,在替换实施例中,可以使用其他配置。此外,其他实施例可以按照不同的顺序来执行这里所述的步骤和/或其他实施例可以执行与这里所述的那些步骤相比附加的和/或不同的步骤。
计算机处理系统在510处从系统中的CPU和/或总线中的一个或多个接收所有原始追踪数据。该原始追踪数据然后在520处被提供给单个追踪单元。追踪单元在530处将原始追踪信息转换成HBTI和LBTI消息。HBTI在540处被提供给HBTI消息封装器且然后在560处被记录在片上追踪缓冲器上。LBTI在550处被提供给LBTI消息封装器,并且然后还在570处被提供给片外追踪接口。如上所述,HBTI和LBTI可以重叠,或者如更常见的情况那样,LBTI可以是HBTI的子集。因此,在本公开的一个实施例中,消息发生器是可配置的,并且可以生成HBTI消息、LBTI消息或它们两者,其然后可以被发送到一个或两个消息封装器。例如,可以将具有大范围的一个地址范围比较器用于高带宽片上追踪,并且可以将具有小范围的第二比较器用于片外追踪。在另一实施例中,可以将小范围比较器用于两者,但是对于高带宽片上追踪,可以存在添加第二较大地址范围的第二比较器。
虽然在本文中已示出并描述了特定实施例,但本领域的普通技术人员将认识到的是,在不脱离本公开的范围的情况下可以用多种替换和/或等价实施方式来代替所示和所述的特定实施例。本申请意图覆盖在本文中讨论的特定实施例的任何修改或变更。因此,意图在于仅仅由权利要求及其等价物来限定本公开。
Claims (35)
1.一种用于将从多个CPU和/或总线输出的追踪数据分离的系统,该系统包括:
低带宽追踪信息(LBTI)路径,其被配置成从所述多个CPU和/或总线接收并处理低带宽追踪信息;
高带宽追踪信息(HBTI)路径,其被配置成从所述多个CPU和/或总线接收并处理高带宽追踪信息;
片上追踪缓冲器,其被配置成记录高带宽追踪信息直至发生特定事件触发;以及
片外追踪接口,其被配置成并行地接收和输出低带宽追踪信息,
HBTI追踪单元,其被配置成处理高带宽追踪信息并生成HBTI消息;
LBTI追踪单元,其被配置成处理低带宽追踪信息,并生成LBTI消息。
2.按照权利要求1所述的系统,还包括:
复制器,其被耦合到所述多个CPU和/或总线,并被配置成从所述CPU和/或总线接收原始追踪数据,并将该原始追踪数据提供给HBTI追踪单元和LBTI追踪单元。
3.按照权利要求2所述的系统,还包括:
HBTI消息封装器,其被耦合到HBTI追踪单元,并被配置成接收并封装所述高带宽追踪信息并将所述高带宽追踪信息转送至片上追踪缓冲器。
4.按照权利要求2所述的系统,还包括:
LBTI消息封装器,其被耦合到LBTI追踪单元,并被配置成接收并封装所述低带宽追踪信息并将所述低带宽追踪信息转送至片外追踪接口。
5.按照权利要求1所述的系统,还包括:
追踪单元,其被配置成从所述CPU和/或总线接收原始追踪数据并将所述高带宽追踪信息转送至HBTI消息封装器且将所述低带宽追踪信息转送至LBTI消息封装器;
其中,HBTI消息封装器被配置成将所述高带宽追踪信息转送至片上追踪缓冲器,并且LBTI消息封装器被配置成将所述低带宽追踪信息转送至片外追踪接口。
6.按照权利要求5所述的系统,其中,所述追踪单元还包括被配置成生成HBTI消息或LBTI消息或它们两者的消息发生器。
7.按照权利要求1所述的系统,其中,LBTI是HBTI的子集。
8.按照权利要求1所述的系统,其中,所述低带宽追踪信息包括低带宽高级追踪信息。
9.按照权利要求1所述的系统,其中,所述高带宽追踪信息包括高带宽低级追踪信息。
10.按照权利要求8所述的系统,其中,所述低带宽高级追踪信息包括在任务切换时作为数据追踪而被记录的任务ID。
11.按照权利要求9所述的系统,其中,所述高带宽低级追踪信息包括完整程序流程和CPU的所有数据访问。
12.一种用于将来自多个CPU和/或总线的追踪数据分离的方法,该方法包括:
从CPU和/或总线接收原始追踪数据;
将原始追踪数据分离成高带宽追踪信息(HBTI)和低带宽追踪信息(LBTI);
将高带宽追踪信息记录在片上追踪缓冲器上直至特定事件被触发;以及
通过片外追踪接口与高带宽追踪信息的记录并行地输出低带宽追踪信息;
将原始追踪数据提供给HBTI追踪单元和LBTI追踪单元,以及
在HBTI追踪单元中生成HBTI消息并在LBTI追踪单元中生成LBTI消息。
13.按照权利要求12所述的方法,还包括:
将来自HBTI追踪单元的HBTI提供给HBTI消息封装器以生成封装的HBTI;
将封装的HBTI提供给片上追踪缓冲器;
将来自LBTI追踪单元的LBTI提供给LBTI消息封装器以生成封装的LBTI;以及
将封装的LBTI提供给片外追踪接口。
14.按照权利要求12所述的方法,其中,所述原始追踪数据被提供给单个追踪单元。
15.按照权利要求14所述的方法,还包括:
生成HBTI消息和LBTI消息;
将HBTI消息提供给HBTI消息封装器以生成封装的HBTI;
将LBTI消息提供给LBTI消息封装器以生成封装的LBTI;
将封装的HBTI提供给片上追踪缓冲器;以及
与提供封装的HBTI并行地将封装的LBTI提供给片外追踪接口。
16.按照权利要求12所述的方法,其中,LBTI是HBTI的子集。
17.按照权利要求12所述的方法,其中,所述低带宽追踪信息包括低带宽高级追踪信息。
18.按照权利要求12所述的方法,其中,所述高带宽追踪信息包括高带宽低级追踪信息。
19.按照权利要求17所述的方法,其中,所述低带宽高级追踪信息包括在任务切换时作为数据追踪而被记录的任务ID。
20.按照权利要求18所述的方法,其中,所述高带宽低级追踪信息包括完整程序流程和CPU的所有数据访问。
21.一种用于将从多个CPU和/或总线输出的原始追踪数据分离的系统,该系统包括:
低带宽追踪信息(LBTI)追踪单元,其被配置成处理低带宽追踪信息;
高带宽追踪信息(HBTI)追踪信息,其被配置成处理高带宽追踪信息,其中:
LBTI追踪单元和HBTI追踪单元将原始追踪数据分离成HBTI和LBTI;
LBTI追踪单元被配置成生成用于LBTI的LBTI消息;并且
HBTI追踪单元被配置成生成用于HBTI的HBTI消息;
复制器,其被耦合到所述多个CPU,并被配置成从所述CPU和/或总线接收原始追踪数据并将该原始追踪数据提供给LBTI追踪单元和HBTI追踪单元;
片上追踪缓冲器,其被配置成记录HBTI直至发生特定事件触发;以及
片外追踪接口,其被配置成与记录HBTI并行地接收和输出LBTI。
22.按照权利要求21所述的系统,还包括:
HBTI消息封装器,其被耦合到HBTI追踪单元,并被配置成将高带宽追踪信息封装且将高带宽追踪信息转送至片上追踪缓冲器。
23.按照权利要求21所述的系统,还包括:
LBTI消息封装器,其被耦合到LBTI追踪单元,并被配置成将低带宽追踪信息封装并将低带宽追踪信息转送至片外追踪接口。
24.按照权利要求21所述的系统,其中,LBTI是HBTI的子集。
25.按照权利要求21所述的系统,其中,所述低带宽追踪信息包括低带宽高级追踪信息。
26.按照权利要求21所述的系统,其中,所述高带宽追踪信息包括高带宽低级追踪信息。
27.按照权利要求25所述的系统,其中,所述低带宽高级追踪信息包括在任务切换时作为数据追踪而被记录的任务ID。
28.按照权利要求26所述的系统,其中,所述高带宽低级追踪信息包括完整程序流程和CPU的所有数据访问。
29.一种用于将从多个CPU和/或总线输出的原始追踪数据分离的系统,该系统包括:
追踪单元,其被配置成从所述CPU和/或总线接收原始追踪数据并将原始追踪数据分离成高带宽追踪信息(HBTI)和低带宽追踪信息(LBTI),其中,所述追踪单元被配置成生成用于高带宽追踪信息的HBTI消息并生成用于低带宽追踪信息的LBTI消息;
片上追踪缓冲器,其被配置成从追踪单元接收并记录HBTI,直至发生特定事件触发;以及
片外追踪接口,其被配置成与HBTI的记录并行地从追踪单元接收LBTI。
30.按照权利要求29所述的系统,还包括:
HBTI消息封装器,其被配置成在将HBTI提供给片上追踪缓冲器之前将其封装;以及
LBTI消息封装器,其被配置成在将LBTI提供给片外追踪接口之前将其封装。
31.按照权利要求29所述的系统,其中,LBTI是HBTI的子集。
32.按照权利要求29所述的系统,其中,所述低带宽追踪信息包括低带宽高级追踪信息。
33.按照权利要求29所述的系统,其中,所述高带宽追踪信息包括高带宽低级追踪信息。
34.按照权利要求32所述的系统,其中,所述低带宽高级追踪信息包括在任务切换时作为数据追踪而被记录的任务ID。
35.按照权利要求33所述的系统,其中,所述高带宽低级追踪信息包括完整程序流程和CPU的所有数据访问。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261746390P | 2012-12-27 | 2012-12-27 | |
US61/746390 | 2012-12-27 | ||
US13/762660 | 2013-02-08 | ||
US13/762,660 US9164868B2 (en) | 2012-12-27 | 2013-02-08 | Multi-tier trace |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103902426A CN103902426A (zh) | 2014-07-02 |
CN103902426B true CN103902426B (zh) | 2017-04-12 |
Family
ID=50928535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310734379.4A Active CN103902426B (zh) | 2012-12-27 | 2013-12-27 | 多层追踪 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9164868B2 (zh) |
CN (1) | CN103902426B (zh) |
DE (1) | DE102013022137A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140359374A1 (en) * | 2013-06-03 | 2014-12-04 | Qualcomm Incorporated | System and method for managing trace data in a portable computing device |
US9547038B2 (en) * | 2015-01-09 | 2017-01-17 | Samsung Electronics Co., Ltd. | Low-overhead debug architecture using a speculative, concurrent and distributed data capture and propagation scheme |
JP6689463B2 (ja) * | 2017-06-26 | 2020-04-28 | 株式会社Fuji | 対基板作業機用制御装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751327A (zh) * | 2008-12-04 | 2010-06-23 | 北京中电华大电子设计有限责任公司 | 嵌入式处理器的跟踪调试方法 |
CN102207913A (zh) * | 2011-06-09 | 2011-10-05 | 中兴通讯股份有限公司 | 嵌入式系统中写保护的控制方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060277435A1 (en) * | 2005-06-07 | 2006-12-07 | Pedersen Frode M | Mechanism for storing and extracting trace information using internal memory in microcontrollers |
US20120036501A1 (en) * | 2010-08-03 | 2012-02-09 | Tomas Evensen | Method and System for Capturing System and User Events Using Hardware Trace Devices |
US20120042212A1 (en) * | 2010-08-10 | 2012-02-16 | Gilbert Laurenti | Mixed Mode Processor Tracing |
US8825922B2 (en) * | 2011-04-18 | 2014-09-02 | Infineon Technologies Ag | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information |
-
2013
- 2013-02-08 US US13/762,660 patent/US9164868B2/en active Active
- 2013-12-27 CN CN201310734379.4A patent/CN103902426B/zh active Active
- 2013-12-27 DE DE102013022137.4A patent/DE102013022137A1/de active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751327A (zh) * | 2008-12-04 | 2010-06-23 | 北京中电华大电子设计有限责任公司 | 嵌入式处理器的跟踪调试方法 |
CN102207913A (zh) * | 2011-06-09 | 2011-10-05 | 中兴通讯股份有限公司 | 嵌入式系统中写保护的控制方法和装置 |
Non-Patent Citations (1)
Title |
---|
ARMCoreSight跟踪调试技术的研究与应用;王阳赞;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090930(第9期);参见论文的2.1节和2.2节,以及图2-1 * |
Also Published As
Publication number | Publication date |
---|---|
US20140189437A1 (en) | 2014-07-03 |
DE102013022137A1 (de) | 2014-07-03 |
CN103902426A (zh) | 2014-07-02 |
US9164868B2 (en) | 2015-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6889344B2 (en) | System and method for exposing hidden events on system buses | |
US9952963B2 (en) | System on chip and corresponding monitoring method | |
US9009541B2 (en) | Efficient trace capture buffer management | |
US8990633B2 (en) | Tracing support for interconnect fabric | |
US9639447B2 (en) | Trace data export to remote memory using remotely generated reads | |
US20100332927A1 (en) | Generic debug external connection (gdxc) for high integration integrated circuits | |
CN107111572B (zh) | 用于避免死锁的方法和电路 | |
US9612934B2 (en) | Network processor with distributed trace buffers | |
CN111078492B (zh) | 一种SoC内部总线的状态监控系统及方法 | |
CN103902426B (zh) | 多层追踪 | |
JP2018537762A (ja) | 回路設計をデバッグするための方法および回路 | |
CN109254883B (zh) | 一种片上存储器的调试装置及方法 | |
TWI278636B (en) | Integrated circuit, diagnostic device for receiving diagnostic data in integrated circuit and method for generating diagnostic data | |
CN104050028A (zh) | 用于触发和跟踪初级可调节结构内的片上系统结构事务的方法和装置 | |
US9183147B2 (en) | Programmable resources to track multiple buses | |
EP2435918B1 (en) | Integrated circuit comprising trace logic and method for providing trace information | |
US20140095846A1 (en) | Trace based measurement architecture | |
US20220398142A1 (en) | Monitoring processors operating in lockstep | |
US8688872B2 (en) | Method and device for managing queues, and corresponding computer program product | |
US9396145B1 (en) | In-chip bus tracer | |
CN104572515B (zh) | 跟踪模块、方法、系统和片上系统芯片 | |
US8468394B2 (en) | Method of tracing selected activities within a data processing system by tagging selected items and tracing the tagged items | |
US8458539B2 (en) | G-ODLAT on-die logic analyzer trigger with parallel vector finite state machine | |
US8996816B2 (en) | Method and apparatus for selectively bypassing a cache for trace collection in a processor | |
CN114090480B (zh) | 主控内嵌式指令和数据记录装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |