当前位置: 首页 > 专利查询>MJ威廉斯专利>正文

用于生成时间戳的方法、设备和跟踪模块技术

技术编号:6628120 阅读:194 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及用于生成时间戳的方法、设备和跟踪模块。本发明专利技术涉及数据处理领域,具体来说涉及一种用于在跟踪数据处理设备或者由数据处理设备执行的处理的特性的同时生成时间戳的方法、设备1和跟踪模块12。当发生预定事件时,时间戳请求标志18被设定成指示时间戳请求待定。在生成后续跟踪分组时,确定时间戳请求标志是否指示时间戳请求待定,并且如果请求待定则生成对应于所述后续跟踪分组的时间戳,并且把时间戳请求标志设定成指示没有待定时间戳请求。

【技术实现步骤摘要】

本专利技术涉及数据处理领域。具体来说,本专利技术涉及在跟踪数据处理的特性的同时生成时间戳。
技术介绍
已知用于生成指示由处理设备执行的处理特性的跟踪信息的跟踪模块。有可能生成指示跟踪分组的生成时间的时间戳,并且把所述时间戳周期性地插入到跟踪流中。但是这样的时间戳占用跟踪带宽,这是因为它们增大了跟踪流中的跟踪数据量。如果实现周期精确的跟踪则可以生成更少的时间戳,但是在这种情况下则需要更多的跟踪数据,因此在跟踪缓冲器容量和跟踪端口带宽方面再次是成本高昂。另一方面,太少的时间戳会妨碍从跟踪流推断出跟踪分组的生成顺序。本专利技术试图以高效的方式生成时间戳,以便减少由跟踪模块生成的跟踪分组的数目并且同时仍然允许建立跟踪流之间的相关。
技术实现思路
本技术提供一种数据处理方法,其包括以下步骤 利用数据处理设备来处理数据;生成指示所述数据处理设备或所述处理的至少一项特性的跟踪分组; 在发生预定事件时,设定时间戳请求标志以指示时间戳请求待定; 在生成后续的跟踪分组时,检查时间戳请求标志是否指示时间戳请求待定;以及当时间戳请求标志指示时间戳请求待定时,生成对应于所述后续跟踪分组的时间戳并且把时间戳请求标志设定成指示没有时间戳请求待定。在本技术中,生成指示数据处理设备或者由所述设备执行的数据处理的至少一项特性的跟踪分组。当发生预定事件时,触发用于生成时间戳的程序。但是本技术认识到,不希望在发生预定事件时立即生成时间戳。相反,在预定事件发生时设定时间戳请求标志,其指示时间戳请求待定。随后,在生成后续的跟踪分组时,检查时间戳请求标志以查看是否有时间戳请求待定,并且当时间戳请求标志指示时间戳请求待定时,生成对应于所述后续跟踪分组的时间戳,并且随后把时间戳请求标志设定成指示没有时间戳请求待定。这种技术强制在还生成新跟踪分组的一点上生成时间戳。这意味着可以与所生成的后续跟踪分组一起输出时间戳,从而避免在未生成跟踪数据时把时间戳分组插入到跟踪流中。通过避免生成仅包含时间戳而不包含任何跟踪数据的分组,跟踪流包含更少的跟踪分组,并且因此更加高效地使用例如跟踪缓冲器或跟踪输出端口的跟踪带宽。此外,本技术意味着如果对于特定跟踪流不再输出跟踪分组(例如如果被监控的处理已经完成),则在这段时间期间不把时间戳插入到流中,并且从而节省跟踪资源。许多类型的事件可以被用作触发设定时间戳请求标志以指示时间戳请求待定的预定事件。所述预定事件可以是在数据处理期间发生的事件,或者是独立于数据处理发生的外部事件。举例来说,在包括用于执行多条线程的多个处理器的系统中,所述预定事件可以包括把所述多条线程的其中一条的执行从所述多个处理器的其中一个转移到所述多个处理器当中的另一个。在这样的系统中,可以为对应的处理器生成单独的跟踪流。在对称多处理器系统中,可以利用多于一个处理器执行特定线程,从而线程在不同处理器之间迁移。 当跟踪这样的线程时则会存在问题,即对应于这些处理器的跟踪流变得脱节(从而每一个跟踪流包括对应于不同线程的跟踪数据片段(fragment))。在没有本技术的情况下,其中不同跟踪流中的跟踪分组的生成时间无法彼此相关。这一问题通过强制在处理器之间的线程的每次转移之后发出时间戳而得到解决。随后可以为每一个跟踪分组的生成时间设置上界和下界,并且可以利用所生成的时间戳重建用于特定线程的跟踪分组的生成顺序。所述预定事件还可以包括异常事件。异常事件是触发中断数据处理的事件。因此, 异常事件的发生的场合(instance)可以指示跟踪流中的一点,在该点处相邻跟踪分组在非连续时间点处被生成。通过在发生异常事件时触发时间戳请求,后续的跟踪分组将与时间戳一起生成,并且从而可以在跟踪流中识别出异常点。所述预定事件还可以包括开始执行异常应对线程,以及/或者在执行异常应对线程之后返回所述处理。如果跟踪模块对于触发处理器核心中的异常事件的信号没有可见性但是对于由处理器执行的操作具有可见性,则这可能是有用的。不是监控异常事件,而是使用在异常之后(例如异常或中断应对例程的第一项操作)或者在正常处理返回之后执行的操作而不是来识别中断。在这些点处触发生成时间戳有助于令跟踪数据相关。另一种类型的预定事件可以是上下文切换(context switch),其发生在处理器被置于处理指令的不同状态中时。举例来说,处理器可能有若干条线程要执行,每一条线程由在给定状态下执行的操作序列构成,所述给定状态另外被称作上下文。这样的上下文切换可能导致正在执行的数据处理中断,并且因此上下文切换可以是用来记录跟踪流中的时间戳的有用点。所述预定事件还可以包括上下文同步事件。在发生上下文切换时,则处理流水线 (pipeline)可能需要被刷新(flush)指令,从而在上下文切换之后将利用新上下文来处理获取到所述流水线中的指令。这可能会导致在上下文切换之后所处理的操作不同于在上下文切换之前所处理的操作。因此,上下文同步事件可以是处理中断的指示符,并且从而可用于在该点处请求时间戳。对于某些类型的跟踪模块,比起上下文切换本身可能更容易识别上下文同步事件,这是因为上下文同步事件可以由指令触发,而上下文切换则可以通过监控上下文寄存器值来识别,所述上下文寄存器值对于跟踪模块来说可能不可见。异常应对线程的起始以及在异常应对之后返回所述处理也可以是上下文同步事件。应当认识到,前面的预定事件实例可以被用来单独地或者组合地触发时间戳请求,从而在任何一种或多种不同类型的预定事件发生时设定时间戳请求标志。本技术还包括选择性地启用或禁用所述跟踪分组的生成的步骤;其中在所述发生所述至少一个预定事件时,把所述时间戳请求标志设定成指示时间戳请求待定,而与所述跟踪分组的所述生成被启用还是禁用无关;以及当在重新启用所述跟踪分组的生成之后生成后续跟踪分组时并且在所述时间戳请求标志指示时间戳请求待定时,生成对应于后续跟踪分组的所述时间戳并且把所述时间戳请求标志设定成指示没有时间戳请求待定。不需要总是启用用于生成指示处理器操作的跟踪信息的跟踪模块。例如在执行其操作是公知的数据处理时,或者在期望节省跟踪带宽时,则可以禁用跟踪模块以节省跟踪资源。因此跟踪模块可以具有用于启用或禁用跟踪分组的生成的逻辑。本技术认识到,如果禁用了跟踪分组的生成并且于是随后在数据处理期间重新启用,则可能的是跟踪流在重新启用跟踪分组的生成之后所监控的处理不同于在禁用跟踪分组的生成之前所监控的处理。 在这种情况下,有用的做法是在重新启用跟踪分组的生成之后包括时间戳。因此,虽然跟踪分组的生成被禁用,但本技术继续监控是否发生了至少一个预定事件,并且如果这样的事件已经发生,则把时间戳请求标志设定成指示待定的时间戳请求,而与跟踪分组的生成被启用还是禁用无关。当在重新启用跟踪分组的生成之后生成后续跟踪分组时,则如果时间戳请求标志指示时间戳请求待定,则生成时间戳。这允许重建在禁用跟踪分组的生成之前和之后所生成的跟踪分组的生成顺序。在本技术中,由数据处理设备执行的软件可以在发生预定事件时控制数据处理设备把时间戳请求标志设定成指示时间戳请求待定。本技术意识到,并非所有跟踪模块都具有对于由数据处理设备执行的操作的可见性,并且因此跟踪模块可能不知道数据处理设备遇到预定事件的场合。举例来说,存储器映射的仪器化跟踪宏单本文档来自技高网...

【技术保护点】
1. 一种数据处理方法,包括以下步骤:利用数据处理设备来处理数据;生成指示所述数据处理设备或所述处理的至少一项特性的跟踪分组;在发生预定事件时,设定时间戳请求标志以指示时间戳请求待定;在生成后续的跟踪分组时,检查时间戳请求标志是否指示时间戳请求待定;以及当时间戳请求标志指示时间戳请求待定时,生成对应于所述后续跟踪分组的时间戳并且把时间戳请求标志设定成指示没有时间戳请求待定。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:MJ威廉斯JM霍尔利EJS阿什菲尔德
申请(专利权)人:MJ威廉斯JM霍尔利EJS阿什菲尔德
类型:发明
国别省市:GB

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1