CN101398782A - 产生用于数据处理装置的跟踪流的技术 - Google Patents

产生用于数据处理装置的跟踪流的技术 Download PDF

Info

Publication number
CN101398782A
CN101398782A CNA200810168125XA CN200810168125A CN101398782A CN 101398782 A CN101398782 A CN 101398782A CN A200810168125X A CNA200810168125X A CN A200810168125XA CN 200810168125 A CN200810168125 A CN 200810168125A CN 101398782 A CN101398782 A CN 101398782A
Authority
CN
China
Prior art keywords
circuit
compression scheme
compression
tracking
trace
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.)
Granted
Application number
CNA200810168125XA
Other languages
English (en)
Other versions
CN101398782B (zh
Inventor
P·R·戈奇
J·M·霍尔利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anne science and Technology (China) Co., Ltd.
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN101398782A publication Critical patent/CN101398782A/zh
Application granted granted Critical
Publication of CN101398782B publication Critical patent/CN101398782B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Abstract

产生用于数据处理装置的跟踪流的技术。提供跟踪电路和操作这种跟踪电路的方法,用于产生指示数据处理装置被监控电路的活动的跟踪流。该被监控电路产生指示这些活动的数据元素,且该跟踪电路包括跟踪元素发生电路,响应于至少一些被监控电路产生的数据元素,产生代表这些数据元素的跟踪元素,产生的跟踪元素与选择的跟踪电路的跟踪操作模式有关。压缩电路然后被布置为向跟踪元素序列应用编码操作以产生位组合格式代表跟踪元素序列的包,且使得该包在跟踪流中输出,应用的编码操作依赖于与压缩电路相关的当前压缩方案。同时在选择的跟踪操作模式中,该压缩电路响应于压缩变化激励以将当前的压缩方案从第一压缩方案变化为第二压缩方案,该第二压缩方案的位组合格式编码空间覆盖该第一压缩方案的位组合格式编码空间,使得在压缩方案改变之后,在所选跟踪操作模式中根据该第二压缩方案产生任意其他包。已经发现这种方法提供改善的压缩效率由此减小产生的跟踪数据量。

Description

产生用于数据处理装置的跟踪流的技术
技术领域
本发明涉及用于产生指示数据处理装置被监控电路的活动的跟踪流的技术。
背景技术
跟踪数据处理系统的活动由此产生包括代表系统内逐步活动的数据的跟踪元素流在系统开发中是十分有用的工具。然而,随着一般向更深嵌入的处理器核发展,经由外部可存取引脚跟踪处理器核或其他芯片上设备的活动变得更加困难。因此,除了用于捕获和分析跟踪数据的芯片外跟踪机制,大量增加的跟踪功能被布置在芯片上。这种芯片上跟踪机制的示例是英国剑桥的ARM有限公司提供的与其各种ARM处理器相关的嵌入式跟踪宏单元(ETM)。
这种跟踪机制产生提供跟踪元素的实时跟踪流,所述跟踪元素代表设计为被跟踪的数据处理装置的活动。这种跟踪流然后可以被分析以用于各种目的,例如,用于帮助数据处理装置执行的处理指令序列的调试、用于执行仿形操作以判断数据处理装置上执行的特定程序代码的性能等。
典型地,跟踪机制产生的跟踪元素流在被输出以用于后续分析之前被缓冲。这种跟踪缓冲器能够存储有限数目的信息且需要具有有限带宽的专用数据总线,被缓冲的元素能够通过该专用数据总线接收。跟踪缓冲器一般被布置为以卷绕方式存储信息,即,一旦跟踪缓冲器满,新的数据典型地被布置为重写其中存储的最老的数据。已经发现,专用数据总线的带宽限制了信息可以存储在跟踪缓冲器中的速度。
典型地,提供跟踪分析工具,当需要时,例如一旦完成跟踪,该跟踪分析工具从跟踪缓冲器接收跟踪元素的跟踪流。跟踪分析工具然后用于基于接收的跟踪元素重新构建被跟踪设备的活动。当诸如处理器核这样的设备在功率和复杂性方面增加时,很清楚,跟踪这种设备的活动所需的信息量将增加,且相应地,潜在地存在需要被跟踪的非常大量的跟踪元素。
然而,存在这样的问题,即,存在有限的总线带宽,跟踪逻辑能够通过该总线带宽输出跟踪元素,且用于缓冲这种跟踪元素的任意跟踪缓冲器将具有有限的尺寸。因此,能够产生的跟踪元素的量受限。
可能希望跟踪的设备的活动包括但不限于:处理器核执行的指令(称作指令跟踪)以及这些指令做出的存储器存取(称为数据跟踪)。这些活动可以被单独地跟踪或一起跟踪,使得数据跟踪可以与指令跟踪相关。数据跟踪本身包括两个部分:存储器地址和数据值,(分别)称为数据地址和数据值跟踪。此外,现有跟踪ETM协议允许数据地址和数据值跟踪单独或同时生效。
为了减小需要在跟踪流中输出的跟踪数据量,已知在跟踪流中输出之前使跟踪元素经历压缩技术。具体而言,跟踪元素序列可以经过编码操作以产生其位组合格式代表跟踪元素序列的包,所述包然后在跟踪流中输出。将典型地定义压缩机制,提供可用于编码跟踪元素的大量不同的编码格式。例如,每个包输出将典型地包括报头部分和可选的有效载荷部分。考虑报头,它们典型地具有字节信息的形式,且相应地存在256种可能的报头编码。这些编码中的某一些可以与一种编码格式相关,而这些编码中的另一些可以与不同的编码格式相关。并且,可以为有效载荷部分提供其他编码格式。这些不同的编码格式可用于编码需要被编码成包的不同种类的跟踪元素,但是这些不同的编码格式在位组合格式编码空间将不重叠,使得每个包能够被用于分析跟踪流的跟踪分析工具唯一地识别。
举例而言,现有ETM协议产生指示指令是否被执行的被称为原子的跟踪元素,E原子指示指令已经被执行且N原子指示指令尚未被执行。这些原子序列可以压缩成被称作p报头的包中,p报头包括一个字节大小的报头且没有有效载荷。可以提供为特定E和N原子序列产生p报头的一个或多个编码格式,但是每个这种编码格式将相对于用于p报头的任意其他编码格式占用非重叠位组合格式编码空间,且实际上,关于用于不同类型的报头的任意其他编码格式,例如用于识别给出关于分支指令信息的包的分支报头、用于识别包含数据地址或数据值信息的包的数据地址或数据值报头等。
与任意特定跟踪电路结合使用的压缩方案将典型地在设计时间上固定,具有基于需要压缩的跟踪元素的期望组合格式选择的压缩方案中提供的特定编码格式。因此,举例而言,考虑较早提及的p报头,用于从E和N原子序列产生这些p报头的编码格式典型地使用游程编码方案,其中,编码朝向长的E原子序列歪斜,因为一般E比N原子更常见。
除了能够选择性地实现指令跟踪、数据地址跟踪和数据值跟踪,当前的跟踪电路还能够支持不同的跟踪操作模式。例如,考虑较早提及的ETM产品,可以提供非循环精确跟踪操作模式和循环精确跟踪操作模式。为了从非循环精确跟踪操作模式切换到循环精确跟踪操作模式,或相反,任意当前跟踪活动停止,且跟踪电路中的大量控制寄存器被更新以定义新的跟踪操作模式。作为更新处理的一部分,压缩方案可以改变,以提供为新的跟踪操作模式更好优化的压缩方案。例如,考虑循环精确跟踪操作模式,在每个时钟循环产生被称作W原子的附加原子以提供循环精确计时信息,且相应地循环精确跟踪操作模式中用于p报头的编码格式典型地不同于用在非循环精确跟踪模式中的编码格式以反映除了E和N原子之外在p报头中编码W原子的序列的需要。然而,此外,考虑需要压缩的跟踪元素的期望组合格式,为循环精确跟踪操作模式而发展的任意压缩方案将典型地在设计时间固定。
然而,在任意特定的跟踪操作模式中,当应用为该跟踪操作模式设置的预定压缩方案时可能出现效率问题。例如,当活动被跟踪的监控电路的复杂度和能力增加时,在执行的代码序列中可能存在显著的变化。同样考虑p报头的主题,ARM Thumb-2指令集提供“if then”指令,该指令可以显著改变产生的N原子的频率,且不利地影响为p报头设置的任意编码格式的效率。作为另一示例,跟踪电路可以被调适从而不是跟踪所有的指令,而是仅跟踪诸如分支指令之类的特定类型的指令。仅当跟踪分支指令时,可以发生更高的N原子分布,同样,负面地影响压缩效率。
如前所述,产生的跟踪量是明显的问题,且压缩方案提供的编码中的任意低效将增加跟踪流的容量,且因此需要更多的区域来用于芯片上缓冲,更多的硬件用于芯片外捕获和/或更多的引脚用于芯片外实时跟踪捕获。因此,希望提供改善的技术以在跟踪流的输出之前压缩跟踪元素。
发明内容
从第一方面看,本发明提供跟踪电路,用于产生指示数据处理装置被监控电路的活动的跟踪流,该被监控电路产生指示所述活动的数据元素,且该跟踪电路包括:跟踪元素发生电路,响应于至少一些由被监控电路产生的数据元素,产生代表那些至少一些数据元素的跟踪元素,产生的跟踪元素与选择的跟踪电路的跟踪操作模式有关;以及压缩电路,用于向跟踪元素序列应用编码操作以产生其位组合格式代表跟踪元素序列的包,使得该包在跟踪流中输出,应用的编码操作依赖于与所述压缩电路相关的当前压缩方案;同时在选择的跟踪操作模式中,该压缩电路响应于压缩变化激励以将当前的压缩方案从第一压缩方案变化为第二压缩方案,该第二压缩方案的位组合格式编码空间覆盖该第一压缩方案的位组合格式编码空间,使得在压缩方案改变之后,在所选跟踪操作模式中根据第二压缩方案产生任意其他包。
根据本发明,压缩电路被布置以响应于压缩变化激励,以在跟踪电路仍处于所选的跟踪操作模式中时改变当前压缩方案。具体而言,压缩变化激励导致当前压缩方案从第一压缩方案变化到第二压缩方案,该第二压缩方案中的位组合格式编码空间重叠所述第一压缩方案的位组合格式编码空间。即使跟踪电路仍处于所选的跟踪操作模式,这一点仍然发生,且相应地,跟踪电路实际产生的跟踪元素的类型没有变化。压缩方案改变之后,在所选跟踪操作模式中根据第二压缩方案产生任意其他包。
通过使用本发明,由于在跟踪操作模式中改变使用的压缩方案的能力,仍在相同的跟踪操作模式中,与跟踪流中的包的特定位组合格式相关的意义可以改变。例如,注意到被监控电路输出的跟踪元素的特定组合格式,通过调适压缩电路应用的压缩方案,这样能够实现压缩效率中的显著改善。
在一些实施例中,从第一压缩方案到第二压缩方案的切换可以在不停止跟踪电路的跟踪操作的条件下发生,而在其他实施例中,跟踪电路的跟踪活动将在压缩方案的改变发生时临时停止。
假设数据元素给出足够的信息以用于从其产生的所需的跟踪流,跟踪电路接收的数据元素可以具有各种形式。而且,数据元素可以从被监控电路(此处也称为被跟踪设备)传输到跟踪电路,或者备选地,可以通过跟踪电路从被跟踪设备取回。作为示例,数据元素可以包括指令地址值、数据地址值或数据值。跟踪元素发生电路产生的跟踪元素然后典型地被布置以包含足够的信息,从而使得这些数据元素,或至少这些数据元素指示的被监控电路的基本活动,能够在稍后通过分析跟踪流的跟踪分析逻辑判断。
存在很多可以产生压缩变化激励的方法。在一个实施例中,跟踪电路还包括压缩方案选择电路,用于应用预定的标准来判断何时改变当前的压缩方案且基于所述判断导致产生压缩变化激励。因此,在这些实施例中,基于压缩方案选择电路进行的分析,通过跟踪电路内部地产生压缩变化激励。
存在压缩方案选择电路可以判断何时改变当前压缩方案的很多不同方法。例如,可以从被监控电路产生的数据元素比较不同压缩方案产生的跟踪数据的容量,且然后基于该分析选择被认为是最有效的压缩方案。备选地,或附加地,可以响应于被监控电路的活动的一个或多个属性,诸如指示被监控电路内执行的当前线程的线程识别寄存器中保存的值,或被监控电路存取的存储器地址区域的指示,以判断何时切换压缩方案。作为示例,从这些信息,可以判断被监控电路正运行哪些应用,且压缩方案选择电路可以将不同的压缩方案与不同的应用关联。
作为压缩方案选择电路怎样判断何时改变当前压缩方案的另一示例,可以响应从被监控电路接收的提示信号,这可以考虑何时判断改变压缩方案的时间。因此,当被监控电路进行的活动正明显变化时,被监控电路可以输出提示信号,这种提示信号要么明确地识别被监控电路相信将是最合适的向前运动的压缩方案,或至少指示压缩方案选择电路现在是合适的时间来重新评估使用的压缩方案。
压缩方案选择电路操作的方式可以根据跟踪电路的压缩电路的构造而变化。在一个实施例中,压缩电路包括多个压缩元件,每个压缩元件实施不同的压缩方案,且能够进行所述编码操作;所述压缩方案选择电路被布置为产生选择信号以选择所述压缩元件之一为其压缩方案为当前压缩方案的压缩元件,使得所选的压缩元件产生跟踪流中包括的包;且压缩方案选择电路被布置为通过变更选择信号产生所述压缩变化激励。
根据上述实施例,压缩电路能够支持压缩电路内设置的多个压缩元件规定的预定数目的不同压缩方案,且压缩方案选择电路产生选择信号以指示在任意特定时间点哪个压缩元件将用于产生跟踪流中包括的包。
应当意识到压缩电路中的压缩元件可以是完全分离的物理电路,或备选地,压缩元件可以彼此共享至少一些逻辑(且在一些实施例中可以共享组成这些压缩元件的逻辑的很大一部分)。作为示例,不同的压缩元件可以提供不同的编码格式以用于编码p报头,其中一个压缩元件提供的编码格式具有与另一压缩元件提供的编码格式重叠的位组合格式编码空间。然而,当编码不同于p报头的报头时,或者当编码与报头相关的有效载荷数据时,这些压缩元件可以都采用相同的编码格式,且相应地,可以共享一些逻辑以用于进行这种非p报头编码。
在一个实施例中,至少在测试操作周期中,每个压缩元件被布置为进行编码操作,产生的包被压缩方案选择电路接收,该压缩方案选择电路对生成的包进行分析操作以判断经由选择信号选择所述压缩元件中的哪一个。压缩元件被布置为对相同的源数据,即跟踪元件产生电路产生的跟踪元素并行地进行其相应的编码操作,或者备选地,每个压缩元件可以被顺序地选择以进行编码操作预定时间周期,生成包然后被压缩方案选择电路分析。测试操作周期可以周期地进行,从而在周期的基础上重新评估最佳压缩方案,或者备选地,测试操作周期可以被压缩方案选择电路接收的某种信息触发,例如,被监控电路执行的一些活动的指示、提示信号等触发。在备选实施例中,压缩方案选择电路可以被布置为在跟踪流的产生过程中连续地进行分析操作,从而使得在任意时间点发生压缩方案的切换,其中压缩方案选择电路判断需要改变当前压缩方案以提高压缩效率。
作为提供具有多个压缩元件的压缩电路的备选,压缩电路可以被布置为可重配置电路。在这种实施例中,当被发送时,压缩变化激励包括用于重新配置可重配置电路的信息,从而实施第二压缩方案。这种方法提供了关于压缩方案选择的进一步的灵活性。
在一个特定实施例中,压缩电路包括双重可重配置电路,使得被配置成实施第一压缩方案的可重配置电路之一被布置为在接收压缩变化激励之后继续操作,同时另一可重配置电路根据压缩变化激励被重配置,在这种重配置之后,该另一可重配置电路用于根据第二压缩方案产生后续包。通过这种方法,跟踪数据的产生不需要被压缩方案的变化中断,一旦另一可重配置电路被配置,则发生压缩方案的切换。
可重配置电路可以具有各种形式,但是在一个实施例中,它是可编程逻辑设备且压缩变化激励存储在用于重编程该可编程逻辑设备的存储设备中。在一个特定实施例中,可编程逻辑设备可以是现场可编程门阵列(FPGA)设备且压缩变化激励可以存储在用于重编程FPGA设备的闪存设备中。
压缩变化激励可以以各种方式提供到压缩电路。在一个实施例中,跟踪电路还包括控制寄存器,该控制寄存器具有用于存储压缩变化激励的压缩指定字段,压缩电路参考控制寄存器的压缩指定字段以判断何时改变当前压缩方案。然后,存储在压缩指定字段中的特定值或多个值指示在任意时间点压缩电路应用哪个压缩方案。
为了使得跟踪分析工具正确地解释跟踪流中的各个包,跟踪分析工具需要知道压缩方案何时变化。存在跟踪分析工具可以评价这种变化的很多方法,且实际上,在一些实施例中,跟踪分析工具的用户可以促成压缩方案中的变化且因此将知道何时发生变化。在一个实施例中,在当前压缩方案变化时,压缩电路被布置为在跟踪流中输出变化信号以指示已经做出了变化,使得用于分析跟踪流的跟踪分析装置可以判断压缩方案何时变化,从而正确地解释跟踪流中的包。变化信号将提供足够的信息以使得该跟踪分析工具能够结合跟踪流中的变化信号之后的包判断已经使用了哪种压缩方案。
从第二方面看,本发明提供一种数据处理装置,包括:用于产生指示被监控电路的活动的数据元素的被监控电路;以及根据本发明的第一方面,用于产生指示所述被监控电路的所述活动的跟踪流的跟踪电路。
从第三方面看,本发明提供一种跟踪分析装置,用于分析根据本发明的第一方面的跟踪电路产生的跟踪流,该跟踪分析装置包括:包解压缩逻辑,用于解码跟踪流中的包,以判断每个所述包代表的跟踪元素序列;以及压缩方案选择逻辑,用于接收跟踪流和包解压缩逻辑判断的跟踪元素,且应用预定标准以判断何时改变当前的压缩方案,且基于所述判断产生压缩变化激励。
代替跟踪电路中的压缩方案选择电路,跟踪分析装置中的压缩方案选择逻辑可以被设置,且执行压缩方案选择电路执行的类似的分析,以判断何时改变压缩方案。在备选实施例中,跟踪分析装置可以包括压缩方案选择逻辑且跟踪电路可以附加地包括压缩方案选择电路,且在这种实施例中,典型地必须提供一些仲裁机制以在这些元件指示的冲突变化之间进行仲裁。仅仅是举例,跟踪分析装置中的压缩方案选择逻辑可以在这种示例中提供关于跟踪电路中的压缩方案选择电路采用的活动的第二级别的回顾。例如,压缩方案选择逻辑将被布置,使得在一些情况中不仅干预压缩方案选择电路做出的判断,且在压缩方案选择逻辑确实发送压缩变化激励的情况下,任意方案将给予该压缩变化激励优选权作为压缩方案选择逻辑的输出。
在一个实施例中,跟踪逻辑的压缩电路支持预定数目的压缩方案;所述压缩方案选择逻辑被布置以产生选择信号来识别哪个压缩方案是当前的压缩方案;且所述压缩方案选择逻辑被布置为通过变更选择信号产生所述压缩变化激励。
在备选实施例中,压缩变化激励包括定义第二压缩方案将用作当前压缩方案的信息。例如这种实施例可用于跟踪电路中的压缩电路可重配置的情况。
在一个实施例中,当应用所述预定标准以判断是否改变当前压缩方案时,压缩方案选择逻辑参考程序图像。跟踪分析装置通常设置有程序图像的复本以使得它从跟踪流中提供的跟踪元素重构被监控电路执行的实际的指令序列。压缩方案选择逻辑可以被布置为参考程序图像,例如,使得当它根据识别跟踪流的一部分的分析识别压缩方案中的变化可能有价值时,则它可以学习程序图像以核查跟踪元素的类似形式可能在代码的其他部分中被观察,以由此确认这种变化是有价值的。
从第四方面看,本发明提供一种改变用于产生指示数据处理装置被监控电路活动的跟踪流的由跟踪电路应用的压缩方案的方法,被监控电路产生指示所述活动的数据元素,且该方法包括以下步骤:响应于至少一些由被监控电路产生的数据元素,产生代表那些至少一些数据元素的跟踪元素,产生的跟踪元素与选择的跟踪电路的跟踪操作模式有关;以及对跟踪元素序列应用编码操作以产生其位组合格式代表跟踪元素序列的包,且在跟踪流中输出该包,应用的编码操作与当前压缩方案有关;同时在所选的跟踪操作模式中,响应于压缩变化激励,将当前压缩方案从第一压缩方案变化为第二压缩方案,第二压缩方案的位组合格式编码空间重叠第一压缩方案的位组合格式编码空间,使得在压缩方案改变之后,在所选跟踪操作模式中根据第二压缩方案产生任意其他包。
从第五方面看,本发明提供一种包括计算机程序的计算机程序产品,通过执行以下步骤,该计算机程序使得计算机分析根据本发明的第四方面产生的跟踪元素流:解码跟踪流中的包,以判断每个所述包代表的跟踪元素序列;以及参考跟踪流和从跟踪流的包解码的跟踪元素,应用预定标准来判断何时改变当前压缩方案,且基于所述判断产生压缩变化激励。
附图说明
参考如附图中所述的实施例,仅通过举例的方式描述本发明,附图中:
图1是根据本发明一个实施例的数据处理系统的框图;
图2是示出根据一个实施例的图1被监控电路的示例的框图;
图3是更详细地示出根据一个实施例的图1的芯片上跟踪模块的框图;
图4是示出根据本发明一个实施例的图3的跟踪发生器的框图;
图5是示出根据本发明的备选实施例的图3的跟踪发生器的框图;
图6是示出根据本发明又一备选实施例的图3的跟踪发生器的框图;
图7是示出根据本发明又一备选实施例的图3的跟踪发生器的框图;
图8是示出根据本发明一个实施例的图1的跟踪分析器的图示;
图9是示意性示出根据本发明一个实施例的图1的跟踪模块20产生的跟踪流中包的供应的图示;
图10是示出根据本发明一个实施例的图4的压缩电路和压缩分析电路操作的流程图;
图11和12是示出根据本发明两个备选实施例的图8的跟踪分析器的包解压缩逻辑和压缩分析逻辑操作的流程图;
图13是示意性示出当切换压缩方案时可以实现的压缩效率的图示;
图14示出了怎样根据本发明一个实施例中使用的不同压缩方案解释特定位组合格式。
具体实施方式
图1示意性地示出了提供被监控电路10、跟踪模块20、跟踪缓冲器30和跟踪分析器40的数据处理系统。同时图1示出了提供跟踪缓冲器30的数据处理系统,在备选实施例中,跟踪模块20可以将其输出直接通过跟踪分析器40,而不经由跟踪缓冲器。
产生跟踪模块20接收的数据元素流的被监控电路10可以具有各种形式,且例如可以是处理器核、直接存储器存取(DMA)引擎、数据引擎/加速器等。备选地,被监控电路10可以由通过总线耦合的多个设备组成,且数据元素可以在它们经过总线时被跟踪模块20监控。
在一个实施例中可以通过运行适当软件的通用目的计算机形成的跟踪分析器40耦合到跟踪模块20和跟踪缓冲器30。典型地嵌入在芯片上的跟踪模块20被布置为从逻辑10接收数据元素且根据它来产生提供存储在跟踪缓冲器30(可以在芯片上或芯片外提供)中的跟踪元素的跟踪流。典型地芯片外嵌入的跟踪分析器40然后用于分析该跟踪流以得出指示被跟踪的被监控电路10的活动的信息。具体而言,通过跟踪流的分析,可以判断被监控电路10的详细活动。
跟踪分析器40连接到跟踪模块20以使得跟踪模块的一些特征能够被跟踪分析器的用户控制。另外,在一些实施例中,跟踪模块20产生的跟踪流可以直接提供到跟踪分析器40而不用在跟踪缓冲器30中缓冲。
图2是图1的被监控电路10的示例的框图。在该示例中,被监控电路10包括通过总线15连接的两个设备(11,12)。总线经由连接105链接到跟踪模块20,该逻辑产生的数据元素经过该连接105。
图3是根据一个实施例的跟踪模块20的框图。跟踪模块20被布置为在路径105上接收指示被跟踪的被监控电路的状态或操作的数据元素。同步逻辑100被布置为将输入信号转换成更适于在跟踪模块20中使用的内部信号版本。这些内部版本然后被发送到控制逻辑110和跟踪发生逻辑120,尽管应当意识到控制逻辑11和跟踪发生逻辑120将不必接收相同的信号。基本地,控制逻辑110需要接收与可触发事件相关的数据,例如,指令地址、数据值、寄存器存取等,使得它能够判断跟踪是否被激励以及将跟踪什么类型的数据元素。控制逻辑110然后发送合适的控制信号到跟踪发生逻辑120以使得跟踪发生逻辑120产生需要的跟踪元素。根据控制逻辑110发送的控制信号,跟踪发生逻辑120经由同步逻辑100接收需要被跟踪的任意数据。
根据本发明的实施例,设置用于配置控制逻辑110的操作的控制寄存器140,这些控制寄存器140可以从跟踪分析器40设置。可以提供很多控制寄存器,它们基本引导跟踪发生逻辑操作的两个元素-“何时”产生跟踪元素,例如何时存取特定范围的地址,以及“什么”用于产生这些跟踪元素,例如数据地址和/或特定转换的数据值,且典型地关于转换的补充信息诸如是否是读或写操作、是否被锁定、安全信息等。
控制逻辑110发送的控制信号触发满足“何时”条件,根据从控制逻辑接收相关的“什么”信号,跟踪发生逻辑120产生指示它从同步逻辑100接收的数据元素的所需跟踪元素。这些产生的跟踪元素然后典型地经历压缩操作且然后被输出到FIFO 130。从这里,跟踪流然后被输出到跟踪缓冲器30,或在备选实施例中,被直接输出到跟踪分析器40。
下面将提供根据本发明各个不同实施例的跟踪发生器120进行的压缩操作的更多细节,但是一般而言,本发明实施例的跟踪发生器设置有用于向跟踪元素序列应用编码操作的压缩电路,以产生跟踪流中输出的包,应用的所述编码操作依赖于与压缩电路相关的当前压缩方案。跟踪发生器120响应于压缩变化激励以将当前压缩方案从第一压缩方案改变到第二压缩方案,该第二压缩方案的位组合格式编码空间重叠第一压缩方案的位组合格式编码空间,使得在压缩方案变化之后,在相同的跟踪操作模式中根据第二压缩方案产生任意其他包。压缩变化激励可以通过某种压缩分析电路在跟踪模块20内部产生,或者备选地可以从外部源提供,诸如从基于其中进行的压缩分析的跟踪分析工具40提供。
在本发明的一个实施例中,在跟踪模块20中提供两种不同的跟踪操作模式,称为非循环精确跟踪操作模式和循环精确跟踪操作模式。在任一操作模式中,可以输出包括指令跟踪和/或数据跟踪的跟踪流且压缩电路与提供编码格式的压缩方案有关,用于编码需要在跟踪流中输出的各种跟踪元素。在特定的压缩方案中,支持的各种编码格式在位组合格式编码空间中不重叠,使得跟踪分析工具可以从任意特定位组合格式唯一地识别该位组合格式代表的跟踪元素。直到现在,对于所选的跟踪操作模式,跟踪模块20的压缩电路应用的压缩方案是预定和固定的。虽然这种方法在很多情况下的运行可以令人满意,但是对于在一些情况下足够显著变化的被监控电路的活动,折中压缩效率变成越来越平常的事。因为跟踪数据量在包括芯片上跟踪机制的现代系统中是显著的问题,在仍处于特定跟踪操作模式时,即在产生相同基本类型的跟踪元素时,提供用于变更压缩方案机制的本发明的实施例可以给予压缩效率的明显改善,由此减小产生的跟踪数据总量。下面将更详细描述本发明的特定实施例。
图4示出了根据本发明特定实施例的图3的跟踪发生器120,其中跟踪发生器中的压缩电路由多个压缩电路210、220、230组成。如图4所示,具有关于产生的跟踪元素的被监控电路所产生的任意数据元素在跟踪发生器120内从同步电路100转发到跟踪元素发生电路200,该跟踪元素发生器然后以已知的方式产生跟踪元素流。该跟踪元素流然后被提供到压缩电路,在图4所示的实施例中,该压缩电路由n个压缩电路210、220和230组成。这些压缩电路被布置为采用不同的压缩方案且在任意特定时间点经由多路复用器240选择来自于这些压缩电路之一的输出,以产生从跟踪发生器120输出到FIFO 130的包跟踪流。尽管在一个实施例中所有的压缩电路将并行运行,典型地是仅多个压缩电路中的一个压缩电路将正常操作从而避免不必要功耗的情况。
在跟踪发生器120中还提供压缩分析电路250,至少在测试操作周期,该分析电路250可以接收来自各个压缩电路的输出且比较它们,以判断哪个压缩电路产生最有效的压缩。在这种测试操作周期中,压缩电路210、220和230可以被布置为对跟踪元素发生器200产生的相同的原始跟踪元素流进行并行地操作,这些电路的输出被路由回压缩分析电路250。在该周期中,压缩电路之一可以被选择为其输出实际形成跟踪流的活动压缩电路,多路复用器240选择该压缩电路的输出。作为备选,在测试操作周期中,压缩电路210、220和230中的每一个压缩电路可以依次被选择以压缩预定时间,再次在压缩分析电路250中比较结果。当压缩电路中的每一个压缩电路已经用了一段时间时,压缩分析电路250然后可以比较从各个压缩电路获得的结果且基于该结果选择用于跟踪发生器120产生的未来包的更合适的压缩电路。
应当理解,基于各个压缩电路产生的结果在压缩分析电路中进行的实际比较可以具有各种形式。不过,在一个实施例中,压缩分析电路为每个压缩电路保留跟踪数据计数,该跟踪数据计数识别各个压缩电路输出的压缩跟踪数据的字节数,使得压缩分析电路然后能够选择在测试操作周期中产生最少输出跟踪数据字节数的压缩电路。
一旦压缩分析电路已经进行分析,它就输出信号以识别压缩电路,该压缩电路被选择以执行跟踪元素发生器200输出的连续跟踪元素的压缩。该输出可以直接转发到相关压缩电路和/或多路复用器240,或备选地,如图4所示可以采用存储在(多个)控制寄存器140的编码选择字段255(此处也称为压缩指定字段)内的选择信号的形式。同时这种编码选择字段255可以设置在控制寄存器140中,应当意识到不需要该字段物理上是控制寄存器140之一,而是选择信号可以存储在能够存取跟踪发生器120的任意合适存储地点中。
图5示出了本发明的备选实施例,其中压缩分析电路250可以接收用于实现合适压缩电路选择的附加信息。实际上,在本实施例中,压缩分析电路250被称为压缩方案选择电路250,因为可选地,它可以被该附加信息直接驱动,而不使用任意特定压缩电路输出的结果。然而,如虚线所述,压缩电路的输出返回压缩方案选择电路250,在一个实施例中,当判断选择合适的压缩电路时,压缩方案选择电路仍然参考各个压缩电路获得的压缩结果。
然而,如图5所示,压缩方案选择电路250还通过路径265接收附加信号,且具体而言,接收被监控电路产生(或者实际上,数据处理系统内的任意其他合适的电路)的压缩提示信号,该压缩提示信号用于在任意特定时间点在选择合适压缩电路中辅助压缩方案选择电路。作为示例,压缩提示可以被监控电路插入到被监控电路输出的数据元素中,以识别可能在合适的压缩方案中做出改变的活动中的变化。这些压缩提示可以被压缩方案选择电路250使用以触发测试操作周期的重新评估性能,压缩方案选择电路250然后以参考图4早先描述的方式使用各个压缩电路输出的结果,以判断选择了哪个压缩电路。然而,备选地,例如基于压缩电路理解它正进行什么活动以及由此需要被跟踪的活动的一般形式,压缩提示可以有效地识别被认为是适用于未来跟踪包的那个压缩方案。
除了特定压缩提示,压缩方案电路250还可以例如通过参考从被监控电路输出的一些数据元素,寻求分析被监控电路的活动的特定属性。例如,压缩方案选择电路250可以监控“线程”识别寄存器(也称为“语境”识别寄存器),以判断任意特定时间点运行的应用,且基于该信息执行一些关于压缩方案的改变是否合适的分析。作为示例,压缩方案选择电路250可以设置有指示当运行特定应用时可以应用第一压缩方案、且当运行不同应用时可以应用第二压缩方案的信息,压缩方案选择电路250能够从线程识别寄存器的分析中判断运行了哪个应用且相应地将使用哪个压缩方案。在一些实施例中,例如,当监控为嵌入控制或运行实时操作系统(RTOS)而设计的处理器时,类似的分析将通过分析哪个存储器地址被存取而执行,以判断运行了哪个应用。
当使用图4的实施例时,压缩方案选择电路250的结果可以直接输出到相关压缩电路和/或多路复用器240,或者被存储在适当的控制寄存器140中设置的编码选择字段255中。
图6示出了跟踪发生器的备选实施例,其中压缩分析电路250被省略,而是外部离线地进行这种压缩分析。作为示例,基于从跟踪模块20的跟踪发生器120随时间接收的跟踪流,这种压缩分析可以在跟踪分析器工具中进行。选择信号然后可被产生且经过路径275路由到编码选择字段255,以由此控制压缩电路210、220和230的未来选择。
虽然为了便于理解,图4至6中示出的各种压缩电路以物理分离的电路示出,但是应当意识到在一些实施例中,这些电路可以彼此共享逻辑的很大一部分。具体而言,尽管每个压缩电路代表可以使用的不同压缩方案,但是任意特定压缩方案内提供的大量编码格式可以与其他压缩方案共享。例如,在一个实施例中,第一压缩方案可以提供用于p报头的一个或多个编码格式,该编码格式占用第二压缩方案中提供的用于p报头的一些不同编码格式的重叠位组合格式编码空间。然而,在两个压缩方案之间,用于编码其他报头或与报头相关的有效载荷部分的其他编码方案可以不改变,且因此用于实施这两种不同压缩方案的压缩电路将实际彼此共享逻辑的很大一部分。
图7示出了跟踪发生器120的备选实施例,其中不是提供预定数目的压缩电路和相应地预定数目的可能压缩方案,而是提供可重配置压缩电路300,在一个实施例中,该可重配置压缩电路300可以具有现场可编程门阵列(FPGA)设备的形式。可重配置压缩电路300可以通过路径330从定义存储在诸如闪存310的存储器设备中信息的压缩方案重新编程。该信息将典型地通过用于在时间周期上分析跟踪发生器120产生的跟踪流的外部压缩分析工具产生,且假设随着时间的推移将出现相似的跟踪元素形式,基于该信息发展合适的压缩方案,该压缩方案将实现用于在跟踪模块处于相同跟踪操作模式中产生的跟踪流的未来包的压缩效率的改善。因此,在这种实施例中,不是仅在预定数目的预定压缩方案之间进行选择,这种方法使得更优化的压缩方案被发展且根据发展的压缩方案重新编程可重配置压缩电路。
给定需要进行这种分析和发展特定压缩方案的时间,典型地期望分析将在芯片外进行,例如在跟踪分析器中进行。不过,在一些实施例中,这种分析可以仍在跟踪发生器120内、在芯片上进行,可重配置压缩电路300然后基于定义内部产生的信息的压缩来重新编程。
图8示出了根据本发明的一个实施例可以在跟踪分析器40中设置的逻辑。首先,跟踪流被包解压缩逻辑400接收,基于用于产生跟踪流包的压缩方案的理解,该包解压缩逻辑400然后解压缩包成组成的跟踪元素。解释逻辑410然后使用该跟踪元素来构建关于这些跟踪元素指示的被监控电路中进行的活动的执行信息。为了进行这种分析,解释逻辑410典型地参考程序图像420,该程序图像420提供被监控电路执行的程序代码的复本。分析430然后进行任意所需的其他分析,例如,以帮助处理指令序列的调试,用于执行仿形操作以判断特定程序代码的性能等。组件400、410、420和430可以设置在标准跟踪分析器工具40中。
根据本发明的一个实施例,跟踪分析器工具40可以另外包括压缩分析逻辑440以进行跟踪模块20内的压缩电路应用的压缩效率的分析。为了进行这种分析,压缩分析逻辑440接收输入到跟踪分析器工具40的跟踪流以及包解压缩逻辑400解压缩的跟踪元素流。在一个实施例中,压缩分析逻辑440然后可以使用编码数据库450中很多已知的压缩方案对于相同的跟踪元素序列进行各种不同压缩,且基于此判断这些压缩方案中的任意一个是否将给于比从跟踪模块20接收的跟踪流中实现的压缩更高效的压缩。如果如此,这些压缩方案中的一个压缩方案被选择,且编码选择信号通过路径445输出以控制跟踪模块20的跟踪发生器120内的未来压缩。例如,该信息可以被路由到控制寄存器140的编码选择字段255以控制哪个压缩电路被选择用于跟踪元素的未来压缩。
在备选实施例中,如果跟踪发生器120包括可重配置压缩电路300,压缩分析逻辑440可以寻求得出特定的压缩方案,该压缩方案目标在于基于包解压缩逻辑400解压缩的跟踪元素的一些子集的分析,提供更优化的压缩,判断的压缩方案的定义然后通过路径445输出且用于重新编程跟踪发生器120的可重配置压缩电路。
然而,进行压缩分析,压缩分析逻辑440还可存取程序图像420,使得当被监控电路执行程序图像中设置的代码时,压缩分析逻辑440可以判断分析的跟踪元素部分是否将代表期望的一般活动。这可以用作这种情况的核查点,其中通过确保参考程序图像做出核查以寻求判断这种变化是否倾向于给出压缩效率中的长期节省,压缩分析逻辑440判断另一压缩方案可能更加适合。
如上所述,跟踪模块20中的跟踪发生器120产生包括多个包的跟踪流。图9示出了这种跟踪流的部分的示例,且用于解释该包可以具有不同的尺寸且包含不同的元素。在一个实施例中,每个包包含报头500、510、515,在一个特定实施例中,这些报头由一个字节的信息组成。包可以单独地由报头组成,诸如前面提到的p报头示例,其中报头编码产生的原子序列以表达被监控电路的执行活动,或者备选地可以被可选的有效载荷部分505、520跟随。有效载荷部分的大小可以改变。在一个实施例中,如相关报头部分的内容判断的,有效载荷的大小可以依赖于跟踪的信息的类型。备选地,用于特定跟踪信息条的有效载荷大小可以改变,在跟踪流中提供一些同步信息以识别任意特定有效载荷部分的长度或结尾。
任意特定压缩方案中设置的处理报头和各种可选有效载荷的压缩格式可以具有各种形式,但是特定压缩方案中提供的各种编码格式将不重叠,使得任意特定数据块可以通过跟踪分析器唯一地解码以识别其中代表的跟踪元件。因此,举例而言,尽管存在用于由一个字节数据组成的报头的256种可能编码,但是仅这些编码的一部分将可用于编码p报头,该编码空间的其他部分用于编码其他类型的报头。为了增加任意特定压缩方案内可用的编码格式的数量,必须增加可用位组合格式的总尺寸,但这将增加总跟踪带宽。
根据本发明的实施例,如稍早讨论的,提供一种机制,该机制能够使得用于特定跟踪操作模式的压缩方案变化,使得多个压缩方案可以用于特定跟踪操作模式,每个这种压缩方案的位组合格式编码空间重叠这些压缩方案中另一个压缩方案的位组合格式编码空间。在任意特定时间点,仅这些编码方案之一被使用且被识别为当前编码方案,但是响应于压缩变化激励,压缩方案可以切换到不同压缩方案,此后出现在跟踪流中的特定位组合格式可以具有与不同压缩方案相关的跟踪流中较早出现的相应位组合格式不同的意义。
图10是示出根据本发明一个实施例的图4中压缩电路210、220、230和压缩分析电路250中可以执行的步骤的流程图。在步骤600,进入压缩分析电路的测试模式,此时为每个压缩电路保存的跟踪数据计数复位。在步骤605,处理等待从跟踪元素发生器200接收跟踪元素序列,此后在步骤610、620和630,每一个压缩电路210、220、230使用相关的压缩方案压缩该跟踪元素序列。每个压缩电路产生的结果然后转发到压缩分析电路250,在步骤612、622、632,该压缩分析电路250使得为每个压缩电路维持的相关跟踪数据计数增加这些压缩电路产生的跟踪数据量。在图10的示例中,假设每个压缩电路能够在测试操作模式中并行地操作,但是稍早提及的,在备选实施例中,每个压缩电路可以依次使用特定时间周期,在该特定时间周期产生跟踪元素。应当意识到在后面一个实施例中,压缩分析电路将仍为各种压缩电路维持单独的跟踪数据计数。
在步骤640,判断测试周期是否结束,且如果为否,处理返回步骤605。然而,一旦测试周期结束,参考基于从各个压缩电路的输出维持的跟踪数据计数信息,压缩分析电路250在步骤645选择最合适的压缩方案。
此后,在步骤650,判断当前选择的压缩方案,即,实际产生跟踪流中输出的包的那个压缩方案是否是在步骤645被选择为最合适方案的那个方案。如果如此,不需要其他行为且测试模式在步骤660退出。然而,如果当前方案不是最佳方案,则在步骤655,发射压缩变化激励,在图4的示例中,它具有存储在控制寄存器140的编码选择字段255中的选择信号的形式,以控制哪个压缩电路用于产生被包括在跟踪流中的后续包。
图11是示出根据本发明的一个实施例,图8中示出的跟踪分析器40的包解压缩逻辑400和压缩分析逻辑440可以执行的步骤序列的流程图。在步骤700,跟踪流部分被选择以进行分析,此后在步骤705,包解压缩逻辑400用于将跟踪流解压缩成相关跟踪元素。此后,在步骤710,使用编码数据库450中识别的所有其他可用压缩方案重新压缩这些跟踪元素。此后在步骤715,基于为提供的跟踪元素产生最少量跟踪数据的方案,选择最有效的方案。此后,在步骤720,压缩变化激励通过路径445发射,且在本实施例中,可以具有路由到控制寄存器140的编码选择字段255的选择信号的形式,如稍早图6中示出。
图12示出了根据本发明的备选实施例的包解压缩逻辑400和压缩分析逻辑440可以执行的备选步骤序列。在步骤750,跟踪流的部分被选择以分析,此后在步骤755,使用包解压缩逻辑400解压缩该部分以识别相关跟踪元素。此后,在步骤760,分析跟踪元素以识别可压缩特征。例如,这可以涉及识别游程长度编码或用于识别合适压缩特性的其他已知技术压缩的相同形式的跟踪元素序列。
此后,在步骤765,基于步骤760识别的压缩特征设计新的压缩方案,此后在步骤770,发射压缩变化激励。在这种情况下,压缩变化激励将需要定义新的压缩方案。
这种实施例可以用在跟踪模块20中的压缩电路能够重配置的情况。例如,如果压缩电路包括FPGA设备,可以基于压缩变化激励重新编程FPGA。因此,在步骤775,基于压缩变化激励重新配置跟踪发生电路,使得然后根据新识别的压缩方案进行压缩。
图13是示意性示出当提供本发明的实施例的机制以在仍处于相同跟踪操作模式中实现压缩方案的变化时可以获得的压缩效率的改善。图13基于下面的考虑。
考虑两字节编码协议,如下:
协议1:
格式1:10EEEEE0(依次编码0-31个E原子)
格式2:11NNNNN0(依次编码0-31个N原子)
协议2:
格式1:11FFFFF0(编码5个原子,每个原子是E或N原子)
格式2:101FFFF0(编码4个原子,每个原子是E或N原子)
格式3:1001FFF0(编码3个原子,每个原子是E或N原子)
格式4:10001FF0(编码2个原子,每个原子是E或N原子)
格式5:100001F0(编码1个原子,每个原子是E或N原子)
如果需要编码原子流ENENEN,则使用协议1需要6个跟踪字节,如果压缩方案切换到协议2则仅需要2个跟踪字节和变化消息0PPPPPPP,其中P编码所选协议号。
具体而言,如图13所示,使用协议1,每个E或N原子需要被单独的字节编码,因为协议1具有两个不同的编码格式,这两个编码格式被设计以优化长序列的E或N原子的压缩,因为使用格式1中的“E”指示的位位置可以用于指定在序列中一个接一个出现的E原子的数目,且类似地,使用格式2,使用N指示的位位置可用于识别特定序列中出现的N原子的数目。因此,协议1将不适合压缩被单独的N原子跟随的单独的E原子。与此相反,协议2能够编码任意类型的1个、2个、3个、4个或5个原子的编码序列,因为F识别的每个位位置可用于识别E原子(通过设置位位置为1)或N原子(通过设置位位置为0)。
因此,协议1的格式1可用于经由单字节编码0至31个E原子序列,且类似地,协议1的格式2可用于经由单字节编码0至31个N原子序列。尽管当编码大序列的E或N原子时,这可以给出明显的压缩效率,然而很清楚,对于上面讨论的每个E原子被N原子跟随的特定原子序列,它却并不十分有效,而是,假设期望类似的序列发生足够的时间周期以做出值得的切换,经由图13中所示的协议交换字节0X02的选择压缩方案2更好。
图14是示出在跟踪流的不同部分中相同位组合格式怎样依赖于压缩方案可以表示其他意义的图示。图14基于下面的考虑。
考虑两种字节编码协议,如下:
协议1:
格式1:1EEEEEE0(依次编码0-63个E原子)
格式2:1NNNNNN1(依次编码0-63个N原子)
协议2:
格式1:1EEEENN0(编码0-15个E原子,接着是0至3个N原子)
格式2:1NNNNEE1(编码0-15个N原子,接着是0至3个E原子)
且变化消息为0PPPPPPP,其中P编码所选协议号。
因此,在经由跟踪流中出现的变化消息0x01的协议1的选择之后,下面图14中示出的两字节信息用于编码两个E原子,接着是8个N原子。如果由于某种原因,判断此时压缩方案的变化是合适的,且具体而言如变化消息0x02所识别的,选择压缩协议2,则可以看出,后面两个字节可以实际具有和采用协议1时使用的两个字节完全相同的两个位组合格式,但是现在编码两个N原子,且接着另外两个N原子,第一字节使用格式1且第二字节使用协议2的格式2。
从上述本发明实施例的讨论应当理解,这种实施例使得压缩方案中的变化能够仍在特定跟踪操作模式中发生。存在很多带来这种变化的方式。在一个实施例中,跟踪电路可以动态地调适压缩方案为所选集之一。为此,可以同时比较多个技术,选择被认知为提供最佳压缩的一个压缩方案,或者备选地,通过小的测试片段可以尝试多个不同的技术且然后决定被认知为提供最佳压缩的一个压缩方案。如上面讨论的,在备选实施例中,跟踪分析工具可用于分析跟踪输出且判断最佳压缩技术,且然后产生用于切换跟踪电路应用的压缩方案的选择信号。备选地,跟踪分析工具可以分析跟踪输出且判断更优选的压缩方案,且然后重新编程跟踪电流中的可配置压缩电路,从而采用该压缩方案以用于跟踪电路产生的未来包。
在一个实施例中,跟踪电路可以被布置以指示哪个压缩方案被跟踪流中包括的变化压缩字节使用,使得负责解压缩跟踪流的逻辑可以动态地调适到新的压缩方案。这种方法在压缩方案发生变化时执行解压缩的跟踪分析工具不被直接控制的情况是尤其有利的。
因为根据本发明的实施例,多种意义可以在相同的位组合格式上重叠,位组合格式的总尺寸可以明显小于一个压缩协议中支持所有这些意义的情况,因此,这比通过使用不同压缩方案直接实现的减小更显著减小总跟踪带宽。通过实现较低的跟踪信息带宽,可以实现较少芯片上存储、较少芯片外存储以及较少的用于发射芯片外跟踪的引脚的需求。
虽然在本发明的实施例的上述描述中,示例集中于p报头的压缩,但是本发明的实施例的概念也可以应用于跟踪压缩的任意其他领域,诸如数据值和地址以及其他包格式的压缩。
除了进行不同压缩方案的分析,根据本发明的实施例,其他机制可用于操纵压缩方案的选择。例如,如稍早提及的,基于下面已知的代码,可以使用程序代码以提示跟踪电路将使用什么压缩方案。这种提示例如将通过编译器插入到代码中。
而且,在一些实施例中,上述压缩方案切换机制将用于粗略地关闭一些压缩技术。对于一些压缩技术,解压缩算法的时间和空间复杂度可能使其不能集成基于硬件的解压缩或者集成能够执行足够操作次数以执行软件中算法的处理器以满足系统的性能需求。压缩方案切换机制将用于粗略地使得一些压缩技术失效,以减小时间复杂度或空间复杂度或解压缩算法。因此,例如,如果存在一些芯片上提供的自诊断软件,该软件具有用于解码芯片上捕获的踪迹的跟踪模块,但是芯片上处理器不够强大到足以在充足的时间内完成解码,则压缩将失效,以有利于进行必要解码的芯片上软件。这种机制同样应用于可用于解码踪迹的芯片上硬件,例如用于校验和目的或用于实时跟踪分析。
尽管此处已经描述了特定实施例,但应当理解本发明不限于此且可以在本发明的范围内做出很多修改和添加。例如,使用独立权利要求的特征将得出下面相关权利要求的特征的各种组合,而不偏离本发明的范围。

Claims (20)

1.跟踪电路,用于产生指示数据处理装置被监控电路的活动的跟踪流,该被监控电路产生指示所述活动的数据元素,且该跟踪电路包括:
跟踪元素发生电路,响应于至少一些由被监控电路产生的数据元素,产生代表那些至少一些数据元素的跟踪元素,产生的跟踪元素与选择的跟踪电路的跟踪操作模式有关;以及
压缩电路,用于向跟踪元素序列应用编码操作以产生其位组合格式代表跟踪元素序列的包,使得该包在跟踪流中输出,应用的编码操作依赖于与所述压缩电路相关的当前压缩方案;
同时在选择的跟踪操作模式中,该压缩电路响应于压缩变化激励以将当前的压缩方案从第一压缩方案变化为第二压缩方案,该第二压缩方案的位组合格式编码空间覆盖该第一压缩方案的位组合格式编码空间,使得在压缩方案改变之后,在所选跟踪操作模式中根据第二压缩方案产生任意其他包。
2.根据权利要求1所述的跟踪电路,还包括:
压缩方案选择电路,用于应用预先确定的标准以判断何时改变当前压缩方案,且基于所述判断使得所述压缩变化激励被产生。
3.根据权利要求2所述的跟踪电路,其中:
所述压缩电路包括多个压缩元件,每个压缩元件实施不同的压缩方案且能够进行所述编码操作;
所述压缩方案选择电路被布置为产生选择信号以选择所述压缩元素之一作为其压缩方案是当前压缩方案的压缩元件,使得该选择的压缩元件产生用于被跟踪流包括的包;并且
该压缩方案选择电路被布置为通过变更选择信号产生所述压缩变化激励。
4.根据权利要求3所述的跟踪电路,其中至少在测试操作周期中,所述压缩元件的每一个被布置为进行编码操作,产生的包被压缩方案选择电路接收,压缩方案选择电路对产生的包进行分析操作以判断经由选择信号选择所述压缩元件中的哪一个压缩元件。
5.根据权利要求1所述的跟踪电路,其中压缩电路是可重配置电路,且当被发送时,压缩变化激励包括用于重新配置该可重配置电路的信息,从而实施第二压缩方案。
6.根据权利要求5所述的跟踪电路,其中压缩电路包括双重可重配置电路,使得被配置成实施所述第一压缩方案的可重配置电路中之一被布置为在接收压缩变化激励之后继续操作,同时另一可重配置电路根据所述压缩变化激励重新配置,在这种重新配置之后,另一可重配置电路用于根据第二压缩方案产生后续包。
7.根据权利要求5所述的跟踪电路,其中可重配置电路是可编程逻辑设备,且压缩变化激励存储在用于重编程可编程逻辑设备的存储设备中。
8.根据权利要求2所述的跟踪电路,其中被监控电路输出提示信号,且这些提示信号被路由到压缩方案选择电路,以用于当判断是否改变当前压缩方案时参考。
9.根据权利要求2所述的跟踪电路,其中当判断是否改变当前压缩方案时,压缩方案选择电路响应于被监控电路活动的一个或多个属性。
10.根据权利要求9所述的跟踪电路,其中所述一个或多个属性之一是指示被监控电路内执行的当前线程的线程识别寄存器中保存的值。
11.根据权利要求9所述的跟踪电路,其中所述一个或多个属性之一是由被监控电路存取的存储器地址区域。
12.根据权利要求1所述的跟踪电路,还包括:
控制寄存器,该控制寄存器具有用于存储压缩变化激励的压缩指定字段,压缩电路参考控制寄存器的压缩指定字段,以判断何时改变当前压缩方案。
13.根据权利要求1所述的跟踪电路,其中当当前压缩方案变化时,压缩电路被布置为在跟踪流中输出变化信号,以指示已经做出了变化,使得用于分析跟踪流的跟踪分析装置可以判断压缩方案何时变化,从而正确地解释跟踪流中的包。
14.一种数据处理装置,包括:
被监控电路,用于产生指示被监控电路活动的数据元素;以及
根据权利要求1所述的跟踪电路,用于产生指示所述被监控电路活动的跟踪流。
15.一种跟踪分析装置,用于分析根据权利要求1所述的跟踪电路产生的跟踪流,该跟踪分析装置包括:
包解压缩逻辑,用于解码跟踪流中的包,以判断每个所述包代表的跟踪元素序列;以及
压缩方案选择逻辑,用于接收跟踪流和包解压缩逻辑判断的跟踪元素,且应用预定的标准来判断何时改变当前压缩方案,且基于所述判断产生所述压缩变化激励。
16.根据权利要求15所述的跟踪分析装置,其中:
跟踪逻辑的所述压缩电路支持预定数目的压缩方案;
所述压缩方案选择逻辑被布置为产生选择信号来识别哪个压缩方案是当前的压缩方案;并且
所述压缩方案选择逻辑被布置为通过变更选择信号产生所述压缩变化激励。
17.根据权利要求15所述的跟踪分析装置,其中压缩变化激励包括定义将用作当前压缩方案的第二压缩方案的信息。
18.根据权利要求15所述的跟踪分析装置,其中当应用所述预定标准以判断是否改变当前压缩方案时,压缩方案选择逻辑参考程序图像。
19.一种改变用于产生指示数据处理装置被监控电路活动的跟踪流的由跟踪电路应用的压缩方案的方法,被监控电路产生指示所述活动的数据元素,且该方法包括以下步骤:
响应于至少一些由被监控电路产生的数据元素,产生代表那些至少一些数据元素的跟踪元素,产生的跟踪元素与选择的跟踪电路的跟踪操作模式有关;以及
对跟踪元素序列应用编码操作以产生其位组合格式代表跟踪元素序列的包,且在跟踪流中输出该包,应用的编码操作与当前压缩方案有关;
同时在所选的跟踪操作模式中,响应于压缩变化激励,将当前压缩方案从第一压缩方案变化为第二压缩方案,第二压缩方案的位组合格式编码空间重叠第一压缩方案的位组合格式编码空间,使得在压缩方案改变之后,在所选跟踪操作模式中根据第二压缩方案产生任意其他包。
20.一种包括计算机程序的计算机程序产品,通过执行以下步骤,该计算机程序使得计算机分析根据权利要求19所述的方法产生的跟踪元素流:
解码跟踪流中的包,以判断每个所述包代表的跟踪元素序列;以及
参考跟踪流和从跟踪流的包解码的跟踪元素,应用预定标准来判断何时改变当前压缩方案,且基于所述判断产生压缩变化激励。
CN200810168125XA 2007-09-28 2008-09-28 产生用于数据处理装置的跟踪流的技术 Active CN101398782B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0719043.2 2007-09-28
GB0719043A GB2453174B (en) 2007-09-28 2007-09-28 Techniques for generating a trace stream for a data processing apparatus

Publications (2)

Publication Number Publication Date
CN101398782A true CN101398782A (zh) 2009-04-01
CN101398782B CN101398782B (zh) 2012-11-28

Family

ID=38701896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810168125XA Active CN101398782B (zh) 2007-09-28 2008-09-28 产生用于数据处理装置的跟踪流的技术

Country Status (4)

Country Link
US (1) US7962664B2 (zh)
JP (1) JP2009087343A (zh)
CN (1) CN101398782B (zh)
GB (1) GB2453174B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289361A (zh) * 2010-06-21 2011-12-21 Arm有限公司 对追踪数据流的关联
US9348688B2 (en) 2010-06-21 2016-05-24 Arm Limited Correlating trace data streams
CN107818044A (zh) * 2016-09-13 2018-03-20 Arm 有限公司 用于生成和处理跟踪流的装置和方法
CN108027762A (zh) * 2016-06-24 2018-05-11 Arm 有限公司 生成和处理指示处理电路的指令执行的跟踪流的装置和方法
CN108345534A (zh) * 2017-01-24 2018-07-31 Arm 有限公司 生成和处理跟踪流的装置和方法
CN110727603A (zh) * 2019-10-25 2020-01-24 重庆誉存大数据科技有限公司 一种基于ui自动化测试定位元素的改进方法
CN111630499A (zh) * 2018-01-30 2020-09-04 Arm有限公司 用于对齐多个元素流中的对应元素的装置和方法
CN111630499B (zh) * 2018-01-30 2024-04-19 Arm有限公司 用于对齐多个元素流中的对应元素的装置和方法

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5505781B2 (ja) * 2008-02-04 2014-05-28 日本電気株式会社 トレース・障害観測システム、トレース・障害観測方法及びトレース・障害観測プログラム
US9098625B2 (en) * 2008-02-29 2015-08-04 International Business Machines Corporation Viral trace
US20120042212A1 (en) 2010-08-10 2012-02-16 Gilbert Laurenti Mixed Mode Processor Tracing
JP5636816B2 (ja) * 2010-08-25 2014-12-10 富士ゼロックス株式会社 再構成可能演算回路及びプログラム
JP5606261B2 (ja) * 2010-10-19 2014-10-15 三菱電機株式会社 デバッグシステムおよびデバッグシステムのトレースデータ取得方法
US10642709B2 (en) * 2011-04-19 2020-05-05 Microsoft Technology Licensing, Llc Processor cache tracing
KR20130066402A (ko) * 2011-12-12 2013-06-20 삼성전자주식회사 트레이스 데이터 저장 장치 및 방법
US8612650B1 (en) 2012-03-13 2013-12-17 Western Digital Technologies, Inc. Virtual extension of buffer to reduce buffer overflow during tracing
US8724693B2 (en) * 2012-05-11 2014-05-13 Oracle International Corporation Mechanism for automatic network data compression on a network connection
US9575871B2 (en) * 2012-09-04 2017-02-21 Salesforce.Com, Inc. System and method for dynamically debugging data in a multi-tenant database environment
GB2507049A (en) * 2012-10-16 2014-04-23 Ibm Synchronizing Trace Data
JP2015103077A (ja) * 2013-11-26 2015-06-04 富士通株式会社 演算処理装置、情報処理装置、及び、情報処理装置の制御方法
US9424294B2 (en) 2013-12-02 2016-08-23 Qbase, LLC Method for facet searching and search suggestions
US9208204B2 (en) 2013-12-02 2015-12-08 Qbase, LLC Search suggestions using fuzzy-score matching and entity co-occurrence
US9984427B2 (en) 2013-12-02 2018-05-29 Qbase, LLC Data ingestion module for event detection and increased situational awareness
US9201744B2 (en) 2013-12-02 2015-12-01 Qbase, LLC Fault tolerant architecture for distributed computing systems
US9659108B2 (en) 2013-12-02 2017-05-23 Qbase, LLC Pluggable architecture for embedding analytics in clustered in-memory databases
US9619571B2 (en) 2013-12-02 2017-04-11 Qbase, LLC Method for searching related entities through entity co-occurrence
US9177262B2 (en) 2013-12-02 2015-11-03 Qbase, LLC Method of automated discovery of new topics
US9424524B2 (en) 2013-12-02 2016-08-23 Qbase, LLC Extracting facts from unstructured text
US9348573B2 (en) 2013-12-02 2016-05-24 Qbase, LLC Installation and fault handling in a distributed system utilizing supervisor and dependency manager nodes
US9336280B2 (en) 2013-12-02 2016-05-10 Qbase, LLC Method for entity-driven alerts based on disambiguated features
US9355152B2 (en) 2013-12-02 2016-05-31 Qbase, LLC Non-exclusionary search within in-memory databases
CN106462575A (zh) 2013-12-02 2017-02-22 丘贝斯有限责任公司 群集内存数据库的设计及实现
US9223833B2 (en) 2013-12-02 2015-12-29 Qbase, LLC Method for in-loop human validation of disambiguated features
US9922032B2 (en) 2013-12-02 2018-03-20 Qbase, LLC Featured co-occurrence knowledge base from a corpus of documents
US9547701B2 (en) 2013-12-02 2017-01-17 Qbase, LLC Method of discovering and exploring feature knowledge
US9230041B2 (en) 2013-12-02 2016-01-05 Qbase, LLC Search suggestions of related entities based on co-occurrence and/or fuzzy-score matching
US9025892B1 (en) * 2013-12-02 2015-05-05 Qbase, LLC Data record compression with progressive and/or selective decomposition
JP6284643B2 (ja) 2013-12-02 2018-02-28 キューベース リミテッド ライアビリティ カンパニー 非構造化テキストにおける特徴の曖昧性除去方法
US9544361B2 (en) 2013-12-02 2017-01-10 Qbase, LLC Event detection through text analysis using dynamic self evolving/learning module
US9223875B2 (en) 2013-12-02 2015-12-29 Qbase, LLC Real-time distributed in memory search architecture
US9317565B2 (en) 2013-12-02 2016-04-19 Qbase, LLC Alerting system based on newly disambiguated features
WO2015084726A1 (en) 2013-12-02 2015-06-11 Qbase, LLC Event detection through text analysis template models
US9542477B2 (en) 2013-12-02 2017-01-10 Qbase, LLC Method of automated discovery of topics relatedness
US9361317B2 (en) 2014-03-04 2016-06-07 Qbase, LLC Method for entity enrichment of digital content to enable advanced search functionality in content management systems
US9606870B1 (en) 2014-03-31 2017-03-28 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage
GB201410028D0 (en) * 2014-06-05 2014-07-16 Soletanche Freyssinet Sas Spectral data compression
US9524227B2 (en) * 2014-07-09 2016-12-20 Intel Corporation Apparatuses and methods for generating a suppressed address trace
CN104700231A (zh) * 2015-03-27 2015-06-10 福州大学 基于用户行为的桌面屏幕审计方法
US20170249146A1 (en) * 2016-02-29 2017-08-31 Qualcomm Incorporated Bandwidth reduction for instruction tracing
US10013200B1 (en) * 2016-06-29 2018-07-03 EMC IP Holding Company LLC Early compression prediction in a storage system with granular block sizes
KR102538258B1 (ko) * 2016-07-25 2023-05-31 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 처리 시스템
JP2019109821A (ja) 2017-12-20 2019-07-04 ルネサスエレクトロニクス株式会社 トレースデータ圧縮方式選定装置、方法、及びプログラム
CN114641769A (zh) * 2020-10-15 2022-06-17 华为技术有限公司 一种处理器的安全度量装置及方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01134541A (ja) * 1987-11-20 1989-05-26 Toshiba Corp 情報処理装置
JP3231105B2 (ja) * 1992-11-30 2001-11-19 富士通株式会社 データ符号化方式及びデータ復元方式
JPH0944423A (ja) * 1995-07-28 1997-02-14 Toshiba Corp 計算機システム
JPH09325903A (ja) * 1996-04-01 1997-12-16 Mitsubishi Electric Corp 障害記録方式
JP3578885B2 (ja) * 1997-04-23 2004-10-20 日本電信電話株式会社 メッセージ通信方式
JP2000207245A (ja) * 1999-01-12 2000-07-28 Matsushita Electric Ind Co Ltd インサ―キットエミュレ―タ
JP2001005635A (ja) * 1999-06-23 2001-01-12 Sony Corp 情報処理装置及び方法、並びに媒体
US6918065B1 (en) * 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
JP2002207245A (ja) 2001-01-11 2002-07-26 Konica Corp 撮影装置
US7386046B2 (en) * 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
DE60223555T2 (de) * 2001-08-29 2009-06-10 Mediatek Inc. Verfahren und apparat zur takt- und leistungssteuerung in drahtlosen systemen
US6615371B2 (en) * 2002-03-11 2003-09-02 American Arium Trace reporting method and system
US7869803B2 (en) * 2002-10-15 2011-01-11 Qualcomm Incorporated Profile modification for roaming in a communications environment
US7720999B2 (en) * 2002-11-26 2010-05-18 Qualcomm Incorporated System and method for optimizing multimedia compression using plural encoders
US7188227B2 (en) * 2003-09-30 2007-03-06 International Business Machines Corporation Adaptive memory compression
JP4533682B2 (ja) * 2004-06-29 2010-09-01 株式会社東芝 トレース解析装置およびトレース解析方法
JP2007065828A (ja) * 2005-08-30 2007-03-15 Keiichi Aoki 通信データ圧縮方法
US8484516B2 (en) * 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289361A (zh) * 2010-06-21 2011-12-21 Arm有限公司 对追踪数据流的关联
US9348688B2 (en) 2010-06-21 2016-05-24 Arm Limited Correlating trace data streams
CN102289361B (zh) * 2010-06-21 2016-07-06 Arm有限公司 对追踪数据流的关联
CN108027762A (zh) * 2016-06-24 2018-05-11 Arm 有限公司 生成和处理指示处理电路的指令执行的跟踪流的装置和方法
CN107818044A (zh) * 2016-09-13 2018-03-20 Arm 有限公司 用于生成和处理跟踪流的装置和方法
US11561882B2 (en) 2016-09-13 2023-01-24 Arm Limited Apparatus and method for generating and processing a trace stream indicative of instruction execution by processing circuitry
CN107818044B (zh) * 2016-09-13 2023-06-16 Arm 有限公司 用于生成和处理跟踪流的装置和方法
CN108345534A (zh) * 2017-01-24 2018-07-31 Arm 有限公司 生成和处理跟踪流的装置和方法
CN108345534B (zh) * 2017-01-24 2023-03-03 Arm 有限公司 生成和处理跟踪流的装置和方法
CN111630499A (zh) * 2018-01-30 2020-09-04 Arm有限公司 用于对齐多个元素流中的对应元素的装置和方法
CN111630499B (zh) * 2018-01-30 2024-04-19 Arm有限公司 用于对齐多个元素流中的对应元素的装置和方法
CN110727603A (zh) * 2019-10-25 2020-01-24 重庆誉存大数据科技有限公司 一种基于ui自动化测试定位元素的改进方法

Also Published As

Publication number Publication date
JP2009087343A (ja) 2009-04-23
GB2453174A (en) 2009-04-01
CN101398782B (zh) 2012-11-28
GB0719043D0 (en) 2007-11-07
GB2453174B (en) 2011-12-07
US20090089626A1 (en) 2009-04-02
US7962664B2 (en) 2011-06-14

Similar Documents

Publication Publication Date Title
CN101398782B (zh) 产生用于数据处理装置的跟踪流的技术
US7134117B2 (en) Instruction tracing in data processing systems
CN101082875B (zh) 减小在指令跟踪过程中产生的数据流的大小
US11775320B2 (en) Overflow detection and correction in state machine engines
US7673187B2 (en) Data processing apparatus and method for reducing trace bandwidth
US10778815B2 (en) Methods and systems for parsing and executing instructions to retrieve data using autonomous memory
US8417923B2 (en) Data processing apparatus having trace and prediction logic
TWI416316B (zh) 用於產生資料處理設備之追蹤串流的技術
EP1187003A2 (en) Program development support apparatus
JP3583937B2 (ja) 情報処理装置
US20100083237A1 (en) Reducing trace overheads by modifying trace operations
US9703669B2 (en) Apparatus and method for distributed instruction trace in a processor system
US7523294B2 (en) Maintaining original per-block number of instructions by inserting NOPs among compressed instructions in compressed block of length compressed by predetermined ratio
CN101714076B (zh) 对指令束进行解压缩的处理器和方法
CN114124106B (zh) 一种lz4解压缩方法、系统、存储介质及设备
CN110247666B (zh) 一种硬件并行压缩的系统及方法
CN108345534B (zh) 生成和处理跟踪流的装置和方法
JP4837361B2 (ja) 伝送システム、そのデータ送信装置、データ受信装置
EP3301600B1 (en) Method and apparatus for signature tracing
JP2005122329A (ja) ソフトウェアのリアルタイム解析方法
CN117632173A (zh) 生成更新文件的方法及对应服务器设备、更新方法及对应客户端设备、更新方法及对应系统
JPH10260907A (ja) バスインタフェース方式およびバスインタフェース診断方式
JPH04170660A (ja) 入出力制御装置

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: 20180611

Address after: cambridge

Co-patentee after: Anne science and Technology (China) Co., Ltd.

Patentee after: Advanced Risc Machines Ltd.

Address before: Cambridge County

Patentee before: Advanced Risc Machines Ltd.

TR01 Transfer of patent right