用于调整跟踪数据粒度的设备、系统及方法

文档序号:6649953阅读:98来源:国知局
专利名称:用于调整跟踪数据粒度的设备、系统及方法
技术领域
本发明涉及跟踪数据粒度,更具体地说,涉及自动和动态地调整跟踪数据的粒度。
背景技术
数据处理系统,例如主计算机、服务器、数据存储系统等等,典型地记录跟踪数据。跟踪数据可以包括诸如错误代码的错误数据、用于跟踪诸如寄存器值、软件指令值、存储器地址等的系统状态的诊断数据以及诸如组件间通信、软件装载等的系统事件的记录。
数据处理系统通常包括一个或多个组件。每个组件可在本地存储器中记录专用于组件的跟踪数据。例如,存储器设备可以在该存储器设备的本地存储器中记录专用于该存储器设备的跟踪数据。在可选的实施例中,组件在诸如控制单元的存储器的中央存储器中记录专用于该组件的跟踪数据。
跟踪数据通常以固定大小存储于缓存器中。例如,诸如存储器设备的组件可为跟踪数据缓存器分配一百兆字节(100MB)。组件将最近的跟踪数据记录到缓存器。在一个实施例中,组件可以删除缓存器中最早的跟踪数据,以防止跟踪数据溢出缓存器。于是,组件保存最近的跟踪数据。在某些实施例中,组件周期性地从缓存器中下载跟踪数据。例如,组件可以将跟踪数据保存到磁带,或者将跟踪数据发送到服务中心。
在软件的开发或新的硬件和软件的集成期间,管理员可以控制数据处理系统和系统的组件记录大量的提供系统操作的高粒度视图的跟踪数据。管理员、集成者或开发者可以使用高粒度跟踪数据以发现和纠正系统问题或者验证系统是否按照设计执行。高粒度跟踪数据可以快速填充跟踪数据缓存器,但是也可以提供识别和纠正问题所需要的详细信息。
不幸的是,如果在正常操作期间,诸如严重的错误的重要事件发生并被作为高粒度跟踪数据记录到缓存器中,则随后的高粒度跟踪数据可以在管理员访问缓存器中的跟踪数据之前覆盖该事件。因此,在正常操作期间,管理员可以控制数据处理系统记录具有较少细节的提供系统操作的低粒度视图的跟踪数据。尽管低粒度跟踪数据对于识别和纠正问题的作用较小,但是跟踪数据的低粒度允许跟踪数据保留在跟踪缓存器中较长的时间间隔。另外,记录低粒度跟踪数据减少记录跟踪数据的开销和必须下载到诸如磁带的数据量。
不幸的是,当数据处理系统在记录低粒度跟踪数据时,重要事件可在正常操作期间发生。而管理员或服务工程师可能需要高粒度跟踪数据以识别和纠正问题。高粒度跟踪数据在捕获和识别偶然或瞬时事件方面特别有用,如果记录高粒度跟踪数据用于特定情况,则高粒度跟踪数据可以非常有用。
根据上述讨论,明显地,存在对自动和动态地调整跟踪数据粒度的设备、系统和方法的需要。有利的是,这样的设备、系统和方法允许系统在特定条件下记录高粒度跟踪数据,而在不需要高粒度跟踪数据时记录低粒度跟踪数据。

发明内容
已开发本发明以响应当前的技术状况,具体地,响应现有技术中还没有被目前可用的记录跟踪数据的方法完全解决的问题和需要。因此,已开发本发明以提供用于调整跟踪数据粒度的设备、系统和方法,其克服了现有技术中的许多或全部的上述缺陷。
调整跟踪数据粒度的设备具有包含多个模块的逻辑单元,这些模块被配置为在功能上执行登记条件计数器、设置计数阈值、对条件集合实例进行计数以及调整粒度的必要步骤。在所描述的实施例中,这些模块包括条件计数器、登记模块、阈值模块、增量模块以及调整模块。
系统计数器对诸如错误、组件之间的事务处理等的系统事件进行计数。例如,第一系统计数器可以对访问存储器设备的控制单元的每个故障进行计数。条件集合被配置为至少一个系统计数器的至少一个实例。例如,条件集合可以被指定为组件访问错误计数的十(10)个实例以及写错误计数的一(1)个实例。条件计数器对组件的条件集合的每次发生进行计数。
登记模块登记条件计数器。在一个实施例中,登记模块登记组件的标识和条件计数器的条件集合。阈值模块设置条件计数器的计数阈值。计数阈值是在设备调整跟踪数据粒度之前可发生的条件集合的实例的最大数量。在一个实施例中,配置文件指定计数阈值。例如,配置文件可以指导阈值模块将计数阈值设置为五(5)个实例。
增量模块对条件集合的每个实例进行计数。因此,在上面的例子中,如果组件访问错误系统计数器计数了组件访问错误的十(10)个实例和写错误的一(1)个实例,则增量模块对条件计数器进行增量。
如果条件计数超过计数阈值,则调整模块将对组件记录的跟踪数据的粒度调整至修正粒度。在一个实施例中,调整模块将跟踪数据粒度从低粒度增加至指定的高粒度。在可选的实施例中,调整模块将跟踪数据粒度减小至指定的低粒度。
在上述例子中,如果增量模块对条件计数器进行六(6)次增量以响应条件集合的六(6)个实例的发生,则调整模块可以将跟踪数据粒度从低粒度调整至高粒度。所述设备自动和动态地调整跟踪数据粒度以提供诸如用于诊断数据处理系统错误和异常的附加信息。
本发明还提出用于调整跟踪数据粒度的系统。该系统可以体现为数据处理系统。具体地,在一个实施例中,该系统包括数据存储系统。该系统包括包含错误模块的控制单元以及包含调整模块和跟踪数据模块的第一组件。另外,错误模块还可包括条件计数器、登记模块、阈值模块以及增量模块。错误模块还可以包括通信模块、管理模块、输入模块、初始化模块以及定时器模块。
控制单元与第一组件进行通信。另外,控制单元和第一组件各自和协同地执行数据处理功能。在一个实施例中,控制单元是存储器控制器。第一组件可以是数据缓存器、存储器设备、主机接口等等。在一个实施例中,控制单元与多个组件进行通信。
错误模块维持多个被配置为对系统事件进行计数的系统计数器。系统计数器对涉及控制单元、第一组件以及第一组件和控制单元之间的事务处理的系统事件进行计数。在一个实施例中,系统计数器对涉及多个组件中的一个或多个组件的事件进行计数。
跟踪数据模块记录第一组件的跟踪数据。在一个实施例中,初始化模块设置对第一组件记录的跟踪数据的基础粒度。登记模块登记条件计数器。条件计数器对条件集合的每次发生进行计数。阈值模块设置条件计数器的计数阈值。增量模块对条件集合的每个实例进行计数。如果条件计数超过计数阈值,则调整模块将对第一组件记录的跟踪数据的粒度调整至修正粒度。
在一个实施例中,管理模块控制调整模块将跟踪数据的粒度调整至修正粒度。在某个实施例中,输入模块接收管理员命令,管理模块控制调整模块调整跟踪数据的粒度以响应管理员命令。如果第一组件的条件计数超过计数阈值,则管理模块还可以控制调整模块调整第二组件的跟踪数据的粒度。系统调整由组件记录的跟踪数据粒度以响应一个或多个系统事件或管理员命令。
本发明还提出一种用于调整跟踪数据粒度的方法。在公开的实施例中,该方法主要包括执行以上提出的与所描述的设备和系统的操作有关的功能所需要的步骤。在一个实施例中,该方法包括登记条件计数器,设置计数阈值,对条件集合实例进行计数,以及调整跟踪数据粒度。该方法还可以包括指定时间间隔,对所调整的跟踪数据粒度时间间隔进行计时,以及当所调整的跟踪数据粒度时间间隔超过指定的时间间隔时,将跟踪数据的粒度设置为基础粒度。
在一个实施例中,初始化模块设置对组件记录的跟踪数据的基础粒度。登记模块登记包括条件集合的条件计数器。阈值模块设置条件计数器的计数阈值。增量模块对条件集合的每个实例进行计数。如果条件计数超过计数阈值,则调整模块将对组件存储的跟踪数据的粒度调整至修正粒度。在一个实施例中,定时器模块对所调整的跟踪数据粒度时间间隔进行计时。当所调整的跟踪数据粒度时间间隔超过指定的时间间隔时,调整模块可以将跟踪数据的粒度设置为基础粒度。
在整个说明书中提到的特征、优点或类似的用语并不意味着可以用本发明实现的所有特征和优点都应该或就在本发明的任何单个的实施例中。相反,关于特征和优点的用语被理解为结合实施例所描述的特定特征、优点或特性包含在本发明的至少一个实施例中。因此,在整个说明书中,有关特征、优点和类似用语的讨论,可以但是不必专指同一个实施例。
另外,所描述的本发明的特征、优点和特性可以用适当的方式结合在一个或更多的实施例中。相关领域的技术人员将认识到本发明可以在不具备特定实施例的一个或多个特定特征或优点的情况下实施。在其它的实例中,附加的特征和优点可以在没有出现在本发明的所有实施例中的某些实施例中发现。
本发明自动和动态地调整跟踪数据粒度,允许系统在指定条件下记录高粒度跟踪数据,而在不需要高粒度跟踪数据时记录较低粒度跟踪数据。根据下面的描述和附加的权利要求,本发明的这些特征和优点将变得十分明显,或者可以通过下文中陈述的本发明的实践被认识。


为了使本发明的优点易于理解,将通过参考附图中所说明的特定实施例给出上文中简单描述的本发明的更具体的描述。理解这些附图仅仅描述本发明的典型实施例,因此不被认为是其范围的限制,本发明将通过使用附图描述和说明附加的特性和细节,其中图1是说明根据本发明的粒度调整系统的一个实施例的示意性方框图;
图2是说明本发明的粒度调整设备的一个实施例的示意性方框图;图3是说明本发明的粒度调整存储系统的一个实施例的示意性方框图;图4是说明本发明的控制单元的一个实施例的示意性方框图;图5是说明本发明的组件的一个实施例的示意性方框图;图6是说明根据本发明的粒度调整方法的一个实施例的示意性流程图;图7是说明本发明的粒度重新设置方法的一个实施例的示意性流程图;图8是说明本发明的基于组件的粒度调整设备的一个实施例的示意性方框图;图9是说明本发明的条件集合阵列的一个实施例的示意性方框图;具体实施方式
本说明书所描述的许多功能单元已经被标注为模块,以更具体地强调其实现的独立性。例如,模块可以被实现为硬件电路,其包括常规的特大规模集成(“VLSI”)电路或门阵列、现有的诸如逻辑芯片、晶体管的半导体或其它离散组件。模块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等的可编程硬件设备中实现。
模块还可以在由各种类型的处理器执行的软件中实现。例如,可执行代码的识别模块可以包括一个或多个计算机指令的物理或逻辑块,其可以例如被组织成对象、程序或函数。然而,识别模块的可执行并不需要在物理上设置在一起,而是可以包括存储在不同位置的不同指令,这些指令当逻辑上连接在一起时,包括模块并实现模块的规定用途。
实际上,可执行代码的模块可以是单一的指令或许多指令,甚至可以分布在几个不同的代码段上、在不同的程序中以及在几个存储器设备上。类似地,操作数据可以在模块内被识别和说明,可以被体现为任何适当的形式,并且可以在任何合适类型的数据结构中组织。操作数据可以集中为单一的数据集合,或者可以分布在不同的位置上,包括在不同的存储器设备上,并且可以在系统或网络上仅仅,至少部分地,作为电子信号存在。
在整个说明中提到的“一个实施例”、“实施例”或类似的用语是指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明文中,短语“在一个实施例中”、“在实施例中”以及类似用语的出现可以但是并不必须都指同一个实施例。
另外,本发明所描述的特征、结构或特性可以以任何适当的方式结合在一个或多个实施例中。在以下的描述中,提供了大量特定的细节,例如编程、软件模块、用户选择、网络事务处理、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等例子,以提供对本发明的实施例的全面理解。然而,相关领域的技术人员将认识到,在不具备一个或多个特定细节或者采用其它方法、组件、材料等的情况下,也可以实施本发明。在其它的实例中,公知的结构、材料或操作不再详细地显示或描述,以避免使本发明的特征不明显。
图1是说明根据本发明的粒度调整系统100的一个实施例的示意性方框图。系统100包括控制单元155和一个或多个组件170,其中控制单元155包括错误模块105,单元170每一个都包括调整模块160和跟踪数据模块165。另外,错误模块105包括条件计数器110、登记模块115、阈值模块120、增量模块125、通信模块130、管理模块135、输入模块140、初始化模块145以及定时器模块150。
控制单元155与每个组件170进行通信。另外,控制单元155和组件170单独地和协作地执行数据处理功能。在一个实施例中,控制单元155是存储器控制器。组件170可以是数据缓存器、存储器设备、主机等等。虽然用一个控制单元155和两个组件170描述系统100,但是可以使用任何数量的控制单元155和组件170。
错误模块105维持多个被配置为对系统事件进行计数的系统计数器。系统事件可以涉及控制单元155操作。另外,系统计数器可以对涉及组件170之间的事务处理的事件以及控制单元155与组件170之间的事件进行计数。例如,第一系统计数器可以对写到第一组件170a的写错误的实例进行计数,其中第一组件被配置为存储器设备。
每个跟踪数据模块165记录组件170的跟踪数据。跟踪数据可以包括诸如错误代码的错误数据,包括寄存器值、软件指令值、存储器地址等等的诊断数据以及诸如组件间的事务处理的系统事件的记录。跟踪数据可以用可变的粒度记录。例如,高粒度跟踪数据可以包括有关系统100状态的详细信息,其包括诸如控制单元155或组件170的每个设备的一个或多个处理器的寄存器值、软件指令、设备之间的通信等等。另外,高粒度跟踪数据可以包括系统100状态的频繁取样值。
与此相反,低粒度跟踪数据可以包括不详细的信息,并且可以不频繁地获取。例如,低粒度跟踪数据可以包括系统100错误消息。对于诊断目的,低粒度跟踪数据不如高粒度跟踪数据有用。然而,低粒度跟踪数据需要较少的系统100开销以记录。另外,低粒度跟踪数据可以记录在跟踪数据缓存器中,其占用的时间间隔明显地比由记录在同一缓存器中的高粒度跟踪数据占用的时间间隔长。于是,当跟踪数据模块165在记录低粒度跟踪数据时与当跟踪数据模块165在记录高粒度跟踪数据时相比,随后的跟踪数据将事件信息从跟踪数据缓存器中挤出的可能性较小。
在一个实施例中,高粒度跟踪数据可以比不包括任何或所有低粒度跟踪数据状态信息的低粒度跟踪数据包括更多的状态信息。例如,高粒度跟踪数据状态信息可以使低粒度跟踪数据状态信息冗余,而无需重复低粒度跟踪数据状态信息。另外,低粒度跟踪数据状态信息可以从较丰富的高粒度跟踪数据的状态信息中推断出。
过去,数据处理系统一直被局限于记录低粒度跟踪数据或高粒度跟踪数据。低粒度跟踪数据典型地在正常操作期间使用,而高粒度跟踪数据用于发现和纠正问题。不幸的是,低粒度跟踪数据通常不提供充足的信息以识别和纠正在正常操作期间出现的问题。本发明自动和动态地调整跟踪数据粒度,允许系统100在指定条件下记录高粒度跟踪数据,而在不需要高粒度跟踪数据时记录低粒度跟踪数据。
在一个实施例中,初始化模块145设置对每个组件170记录的跟踪数据的基础粒度。基础粒度可以是正常操作所期望的粒度。例如,初始化模块145可以将基础粒度设置为第一和第二组件170a、170b的正常操作的低粒度。
登记模块115登记指定组件170,如第一组件170a或第二组件170b,的条件计数器110。条件计数器110包括条件集合,并对条件集合的每次发生进行计数。条件集合被配置为至少一个系统计数器的至少一个实例。在一个实施例中,登记模块115将条件计数器110设置为初始值。例如,登记模块115可以将条件集合登记为包括读错误系统计数器和写错误系统计数器。另外,登记模块115可以将条件集合登记为读错误的三(3)个实例和写错误的一(1)个实例。这样,条件集合的一个实例包括读错误的三(3)个实例和写错误的一(1)个实例。登记模块115还可以将条件计数器110设置为零(0)。条件计数器110对条件集合的每次发生进行计数。
阈值模块120设置条件计数器110的计数阈值。增量模块125对条件集合的每个实例进行计数。如果条件计数超过计数阈值,则指定组件170的调整模块160将对指定组件170记录的跟踪数据的粒度调整为修正粒度。例如,如果登记模块115登记第一组件170a的条件计数器110,则第一调整模块160a调整由第一跟踪数据模块165a记录的跟踪数据的粒度。
在一个实施例中,管理模块135控制调整模块160将跟踪数据的粒度调整至修正粒度。在某个实施例中,输入模块140接收管理员命令,管理模块135控制调整模块160调整跟踪数据的粒度以响应管理员命令。输入模块140可以包括与控制单元155通信的计算机工作站。如果登记到第一组件170a的条件计数器110的条件计数超过计数阈值,则管理模块135还可以控制第二调整模块160b调整第二组件170b的跟踪数据的粒度。系统100调整由组件170记录的跟踪数据粒度以响应一个或多个系统事件或管理员命令。
图2是说明本发明的粒度调整设备200的一个实施例的示意性方框图。登记模块115登记条件计数器110。在一个实施例中,登记包括组件的标识和条件计数器的条件集合。例如,登记模块115可以登记第一组件170a的条件计数器110,还将条件集合登记为第一系统计数器的一(1)个实例和第二系统计数器的两(2)个实例。
在一个实施例中,登记模块115生成数据字段的阵列,其包括组件170的标识符、每个系统计数器的标识符以及每个系统计数器的计数器增量值,该计数器增量值代表条件集合的一个实例所需要的系统计数器的实例的数量。另外,阵列可包括数据字段,其包括指向函数调用的指针,函数调用被配置为控制调整模块160调整对组件170记录的跟踪数据的粒度。
阵列还可以包括一个或多个包含用函数调用传递到调整模块160的参数的数据字段,其中函数调用被配置为控制由调整模块160进行的跟踪数据粒度的调整。例如,第一个数据字可以被配置为规定跟踪数据的粒度。在一个实施例中,第一个数据字规定高粒度。在可选的实施例中,第一个数据字规定低粒度。
阈值模块120设置条件计数器110的计数阈值。计数阈值是在调整模块160调整跟踪数据粒度之前可发生的条件集合实例的最大数量。在一个实施例中,管理员通过输入模块140指定计数阈值。例如,管理员可以控制阈值模块将计数阈值设置为一(1)个实例。在可选的实施例中,阈值模块120从配置文件中取回组件170的计数阈值。
增量模块125对条件集合的每个实例进行计数。在一个实施例中,增量模块125轮询列在由登记模块115登记的阵列中的每个系统计数器。增量模块125还可以存储每个系统计数器的起始值和下一个增量值。起始值可以是在增量模块125第一次轮询时的系统计数器的值。下一个增量值可以是起始值加上存储在阵列中的计数器增量值。
当每个系统计数器超过系统计数器的对应下一个增量值时,增量模块125可以对条件计数器110进行增量。于是在上面的例子中,如果增量模块125观察到第一系统计数器的一(1)个实例和第二系统计数器的两(2)个实例,则增量模块125对条件计数器110进行增量。增量模块125可以通过指定的增量值例如一(1)对条件计数器进行增量。
在一个实施例中,通信模块130将条件计数器110的条件计数传送到调整模块160。例如,如果系统计数器设置在与指定组件170通信的控制单元155的错误模块105内,则通信模块130可以周期性地将条件计数发送到指定组件170的调整模块160。在可选的实施例中,调整模块160向通信模块130请求条件计数。通信模块130可以从条件计数器110中取回条件计数,并将该条件计数发送到调整模块160。
如果条件计数超过计数阈值,则调整模块160将对指定组件记录的跟踪数据的粒度调整至修正粒度。在一个实施例中,调整模块160将跟踪数据粒度从低粒度增加至指定的高粒度。在可选的实施例中,调整模块160将跟踪数据粒度减小至指定的低粒度。在上面的例子中,如果增量模块125对条件计数器进行两(2)次增量以响应条件集合的两(2)个实例的发生,则调整模块160可以将跟踪数据粒度从低粒度调整至高粒度。
在一个实施例中,定时器模块150对所调整的跟踪数据粒度时间间隔进行计时。当所调整的跟踪数据粒度时间间隔超过指定的时间间隔时,调整模块160可以将跟踪数据的粒度设置为基础粒度。例如,当调整模块160将跟踪数据粒度从低粒度调整至高粒度时,定时器模块150可以开始计时。当时间超过指定的时间间隔时,例如五秒(5s),调整模块160可以将跟踪数据粒度设置为低粒度。
在可选的实施例中,定时器模块150对未调整的跟踪数据粒度时间间隔进行计时。如果条件计数在指定的时间间隔内没有超过计数阈值,则调整模块160可以将由指定组件存储的跟踪数据的粒度调整至修正粒度。例如,当跟踪数据模块165记录基础粒度跟踪数据时,定时器模块150可以开始计时。如果条件计数在十五秒(15s)内没有超过计数阈值,则调整模块160可以将跟踪数据粒度调整至修正粒度,例如高粒度。设备200自动和动态地调整跟踪数据粒度以提供例如用于诊断数据处理系统错误和异常的附加信息。
图3是说明本发明的粒度调整存储系统300的一个实施例的示意性方框图。控制单元155和三个组件通信主机系统305、存储器设备310以及缓存器模块315。控制单元155通过主机接口模块320与主机系统305进行通信,通过存储器接口模块325与存储器设备310进行通信,通过缓存器接口模块330与缓存器模块315进行通信。
控制单元155包括错误模块105。错误模块105可以维持多个系统计数器,系统计数器被配置为对在控制单元155、主机系统305、主机接口模块320、主机系统305与主机接口模块320之间的通信、存储器设备310、存储器接口模块325、存储器设备310与存储器接口模块325之间的通信、缓存器模块315、缓存器接口模块330以及缓存器模块315与缓存器接口模块330之间的通信中发生的系统事件进行计数。
在一个实施例中,第一组件170a可以登记第二组件170b的条件计数器110,其中,如果条件计数器110的条件计数超过计数阈值,则管理模块135被配置为控制第三组件170c的调整模块160调整所记录的第三组件170c的跟踪数据粒度。例如,登记模块115可以登记主机系统305的条件计数器110,条件计数器110包括包含一个或多个存储器设备310系统事件计数器的条件集合。如果条件计数器110的条件计数超过计数阈值,则管理模块135可以控制缓存器模块315的调整模块160将由缓存器模块315的跟踪数据模块165记录的跟踪数据粒度调整至高粒度。系统300允许每个组件170,例如主机系统305、存储器设备310以及缓存器模块315,基于任何组件170的错误模块105系统计数器调整任何组件170的跟踪数据粒度。
图4是说明本发明的控制单元400的一个实施例的示意性方框图。控制单元400包括处理器模块405、存储器模块410、桥接器模块415、主机接口模块320、存储器接口模块325以及缓存器接口模块330。
处理器模块405、存储器模块410、桥接器模块415、主机接口模块320、存储器接口模块325以及缓存器接口模块330可以用一个或多个半导体衬底上的半导体门电路制造。每个半导体衬底可以包装在一个或多个安装在电路板上的半导体设备中。在处理器模块405、存储器模块410、桥接器模块415、主机接口模块320、存储器接口模块325和缓存器接口模块330之间的连接可以穿过半导体金属层、到衬底布线的衬底或者连接半导体设备的电路板迹线或导线。
存储模块410存储软件指令和数据。处理器模块405执行软件指令并处理数据,如本领域的技术人员所熟知的。另外,处理器模块405通过桥接器模块415与主机接口模块320、存储器接口模块325以及缓存器接口模块330进行通信。在一个实施例中,处理器模块405执行包括条件计数器110、登记模块115、阈值模块120、增量模块125、通信模块130、管理模块135、输入模块140、初始化模块145以及定时器模块150的一个或多个元件的软件程序。
图5是说明本发明的组件500的一个实施例的示意性方框图。处理器模块405、存储器模块410、桥接器模块415以及控制接口模块505可以用一个或多个半导体衬底上的半导体门电路制造。每个半导体衬底可以包装在一个或多个安装在电路板上的半导体设备中。在处理器模块405、存储器模块410、桥接器模块415与控制接口模块505之间的连接可以穿过半导体金属层、到衬底布线的衬底或者连接半导体设备的电路板迹线或导线。
在一个实施例中,处理器模块405执行包括调整模块160和跟踪数据模块165的软件程序,如本领域的技术人员所熟知的。存储器模块410还可以存储所记录的组件500的跟踪数据。例如,处理器模块405可以通过控制接口模块505和桥接器模块415从控制单元155的通信模块130接收条件计数。另外,执行调整模块160的处理器模块405可以调整记录到存储器模块410的跟踪数据的粒度以响应条件计数。
下面的示意性流程图通常作为逻辑流程图描述。同样地,所描述的顺序和标注的步骤表明所提出方法的一个实施例。其它步骤和方法可以被设想为在功能、逻辑或效果方面与所说明的方法的一个或多个步骤或部分等效。另外,提供所使用的格式和符号以说明所述方法的逻辑步骤,并且不应被理解为限制所述方法的范围。虽然在流程图中可使用各种箭头类型和线条类型,但不应将它们理解成限制相应方法的范围。实际上,某些箭头或其它连接符可以用于仅仅指示所述方法的逻辑流程。例如,箭头可以指示在所描述的方法的所列举步骤之间的未指定的持续时间的等待或监控时期。另外,特定方法发生的顺序可以或可以不严格地遵守所示出的相应步骤的顺序。
图6是说明本发明的粒度调整方法600的一个实施例的示意性流程图。在一个实施例中,初始化模块145设置605对组件170记录的跟踪数据的基础粒度。在一个实施例中,基础粒度可以是相对低的粒度。在可选的实施例中,基础粒度是相对高的粒度。在某个实施例中,初始化模块145使用来自配置文件的参数设置605基础粒度。例如,配置文件可以指定所记录的每个单元为跟踪数据。
登记模块115登记610条件计数器110。在一个实施例中,登记模块115通过生成本领域的技术人员熟知的链接数组(linked array)的阵列登记610条件计数器110,其中每个链接数组包括被配置为识别系统计数器和计数器增量值的数据字段,以及识别阵列为包括系统计数器数据的数据字段。另外,每个系统计数器链接数组可以包括被配置为存储下一个增量值的数据字段,以及被配置为实例计数器的数据字段,其中实例计数器被配置为存储用由计数器增量值指定的实例的数量进行增量的系统计数器的实例的数量。
系统计数器和集合增量值的一个或多个链接数组可以包括条件集合。至少一个链接数组还可以包括被配置为条件计数器110的数据字段。登记模块115可以将条件计数器的数字值设置为指定值,例如零(0)。另外,至少一个链接数组可以包括与条件计数器110相关联的调整模块160的函数调用。在某个实施例中,至少一个链接数组被配置为存储集合增量值。
在一个实施例中,阵列的一个或多个链接数组是被配置为指定跟踪数据粒度参数的粒度阵列。例如,第一个粒度参数可以指定一个或多个系统事件被记录为跟踪数据。另外,第二个粒度参数可以指定一个或多个值被记录为跟踪数据,例如处理器模块405寄存器值等。
阈值模块120设置615条件计数器110的计数阈值。在某个实施例中,阈值模块120通过将计数阈值的值写入链接数组数据字段设置615计数阈值,其中链接数组还包括将链接数组识别为包含计数阈值的数据字段。在一个实施例中,管理员可以通过输入模块140调整计数阈值。例如,管理员可以通过输入模块140控制阈值模块120降低条件计数器110的计数阈值以潜在地增加跟踪数据粒度的调整。
增量模块125对条件集合的每个实例进行计数620。在一个实施例中,增量模块125将链接数组的下一个增量值与指定的系统计数器的计数进行比较。如果系统计数器的计数超过下一个增量值,则增量模块125可对链接数组的实例计数器进行增量。在一个实施例中,当每个链接数组中的每个实例计数器超过相应的集合增量值时,增量模块125对条件计数器110进行增量。
在一个实施例中,通信模块130将条件计数器110的条件计数传送625到调整模块160。在一个实施例中,通信模块130执行调整模块160函数调用,并且将条件计数传递到调整模块160。另外,通信模块130可以将计数阈值传递到调整模块160。
调整模块160确定630条件计数是否超过计数阈值。如果条件计数超过计数阈值,则调整模块160将跟踪数据的粒度调整635至修正粒度。在一个实施例中,调整模块160从链接数组的阵列中取回修正粒度数据参数。如果条件计数未超过计数阈值,则增量模块125继续对条件集合的每个实例进行计数620。
图7是说明本发明的粒度重新设置方法700的一个实施例的示意性流程图。在一个实施例中,初始化模块145指定705时间间隔。在某个实施例中,初始化模块145根据配置文件指定时间间隔。在可选的实施例中,管理员通过输入模块140控制初始化模块145指定705时间间隔。
定时器模块150对粒度间隔进行计时710。在一个实施例中,粒度间隔开始于调整模块160调整635跟踪数据粒度时。在可选的实施例中,粒度间隔开始于记录跟踪数据的基础粒度时。例如,当初始化模块145设置605基础跟踪数据粒度时,定时器模块150可以开始对粒度间隔进行计时。
调整模块160可以从定时器模块150读取715粒度间隔时间,并且确定720粒度间隔时间是否超过指定的时间间隔。如果粒度间隔时间超过时间间隔,则调整模块160可以将跟踪数据的粒度调整725至基础粒度。在一个实施例中,调整模块160将条件计数器110重新设置730为最初的初始值。如果粒度间隔时间未超过时间间隔,则调整模块160继续读取715粒度间隔时间。方法700可以在时间间隔之后将跟踪数据粒度重新设置为基础粒度。因此,在一个实施例中,方法700可以紧随由条件集合和计数阈值定义的一个或多个系统事件只记录高粒度跟踪数据。
图8是说明本发明的基于组件的粒度调整设备800的一个实施例的示意性框图。设备800包括条件计数器110、阈值模块120、取回模块805、增量模块125以及调整模块160。
登记模块115登记包括设备800的组件170的条件计数器110。条件计数器110包括指定一个或多个系统计数器的条件集合,并且对条件集合的每次发生进行计数。系统计数器可以位于与设备800通信的错误模块105内。阈值模块120设置条件计数器110的计数阈值。取回模块805从错误模块105中取回系统计数器的计数。增量模块125对条件集合的每个实例进行计数。如果条件计数超过计数阈值,则调整模块160将对组件170所记录的跟踪数据的粒度调整至修正粒度。
图9是说明本发明的条件计数器阵列900的一个实施例的示意性方框图。图1和2的条件计数器110可以包括条件计数器阵列900。在一个实施例中,登记模块115生成阵列900。阵列900包括一个或多个链接数组950。每个链接数组950包括一个或多个数据字段905、910、915、920、925、930、935、940、945。在一个实施例中,每个链接数组950包括识别链接数组950的数据字段905、910、915、920、925、930、935、940、945的功能的标识符905。
在所描述的实施例中,第一和第二链接数组950a、950b包括条件集合。第一和第二链接数组950a、950b每个都包括系统计数器标识符910、计数器增量值915、下一个增量值920以及实例计数器925。
阵列900还可以包括包含条件计数器945、集合增量值930以及函数调用935的链接数组950。在一个实施例中,链接数组950,例如第六链接数组950f,包括一个或多个粒度参数940。粒度参数940可以指定修正粒度。
本发明自动和动态地调整跟踪数据粒度,允许系统100或系统100的组件170在指定的条件下记录高粒度跟踪数据,而在其它条件下记录低粒度跟踪数据。本发明可以在不偏离其精神或本质特性的情况下体现为其它的特定形式。在任何一方面,所描述的实施例都应被认为仅仅是说明性的而非限制性的。因此,本发明的范围由附加的权利要求而不是前面的说明书表明。在与权利要求等效的意义和范围内的所有变化都被包含在其范围内。
权利要求
1.一种调整跟踪数据粒度的设备,所述设备包括第一组件的条件计数器,所述条件计数器包括条件集合,并且被配置为对所述条件集合的每次发生进行计数,其中所述条件集合指定至少一个对系统事件的实例进行计数的系统计数器的至少一个实例;登记模块,被配置为登记所述条件计数器和所述条件集合;阈值模块,被配置为设置所述条件计数器的计数阈值;增量模块,被配置为对所述条件集合的每个实例进行计数;以及调整模块,被配置为如果条件计数超过所述计数阈值,则将由所述第一组件记录的跟踪数据的粒度调整至修正粒度。
2.如权利要求1所述的设备,还包括初始化模块,被配置为将跟踪数据的粒度初始化为基础粒度。
3.如权利要求2所述的设备,还包括定时器模块,被配置为对所调整的跟踪数据粒度时间间隔进行计时;其中所述调整模块还被配置为在所调整的跟踪数据粒度时间间隔超过指定的时间间隔时,将跟踪数据的粒度设置为基础粒度。
4.如权利要求3所述的设备,其中,所述定时器模块还被配置为对未调整的跟踪数据粒度时间间隔进行计时;所述调整模块还被配置为如果条件计数在所述指定的时间间隔内未超过所述计数阈值,则将由所述第一组件记录的跟踪数据的粒度调整至所述修正粒度。
5.如权利要求1所述的设备,还包括通信模块,被配置为将条件计数传送到所述第一组件。
6.如权利要求1所述的设备,还包括管理模块,被配置为控制所述调整模块将跟踪数据的粒度调整至所述修正粒度。
7.如权利要求6所述的设备,还包括输入模块,被配置为接收管理员命令;所述管理模块还被配置为控制所述调整模块调整跟踪数据的粒度,以响应所述管理员命令。
8.如权利要求6所述的设备,其中,所述管理模块还被配置为如果所述第一组件的条件计数超过所述计数阈值,则控制所述调整模块调整第二组件的跟踪数据的粒度。
9.一种调整跟踪数据粒度的设备,所述设备包括条件计数器,其包括条件集合,并被配置为对所述条件集合的每次发生进行计数,其中所述条件集合指定至少一个对系统事件的实例进行计数的系统计数器的至少一个实例;阈值模块,被配置为设置所述条件计数器的计数阈值;取回模块,被配置为从错误模块取回至少一个系统计数器的计数;增量模块,被配置为根据所述至少一个系统计数器的计数计算所述条件集合的每个实例;以及调整模块,被配置为如果条件计数超过所述计数阈值,则将跟踪数据的粒度调整至修正粒度。
10.一种调整跟踪数据粒度的系统,所述系统包括控制单元,包括错误模块,被配置为维持多个对多个系统事件的实例进行计数的系统计数器,并且包括条件计数器,包括条件集合,并且被配置为对所述条件集合的每次发生进行计数,其中所述条件集合指定至少一个系统计数器的至少一个实例;登记模块,被配置为登记所述条件计数器和所述条件集合;阈值模块,被配置为设置所述条件计数器的计数阈值;增量模块,被配置为对所述条件集合的每个实例进行计数;通信模块,被配置为传送条件计数;与所述控制单元进行通信的第一组件,被配置为接收条件计数,并且包括跟踪数据模块,被配置为记录跟踪数据;以及调整模块,被配置为如果条件计数超过所述计数阈值,则将由所述第一组件记录的跟踪数据的粒度调整至修正粒度。
11.如权利要求10所述的系统,其中,所述第一组件被配置为主机接口模块,并且还包括通过所述主机接口模块与所述控制单元通信的主机系统。
12.如权利要求10所述的系统,其中,所述第一组件被配置为存储器接口模块,并且还包括通过所述存储器接口模块与所述控制单元通信的存储器设备。
13.如权利要求10所述的系统,其中,所述第一组件被配置为缓存器接口模块,并且还包括通过所述缓存器接口模块与所述控制单元通信的缓存器模块。
14.如权利要求10所述的系统,还包括初始化模块,被配置为将跟踪数据的粒度初始化为基础粒度。
15.如权利要求14所述的系统,还包括定时器模块,被配置为对所调整的跟踪数据粒度时间间隔进行计时;所述调整模块还被配置为当所调整的跟踪数据粒度时间间隔超过指定的时间间隔时,将跟踪数据的粒度设置为基础粒度。
16.如权利要求15所述的系统,其中,所述定时器模块还被配置为对未调整的跟踪数据粒度时间间隔进行计时;所述调整模块还被配置为如果条件计数在所述指定的时间间隔内未超过所述计数阈值,则将由所述第一组件记录的跟踪数据的粒度调整至修正粒度。
17.如权利要求10所述的系统,还包括管理模块,被配置为控制所述调整模块将跟踪数据的粒度调整至所述修正粒度。
18.如权利要求17所述的系统,还包括输入模块,被配置为接收管理员命令;所述管理模块还被配置为控制所述调整模块调整跟踪数据的粒度以响应所述管理员命令。
19.如权利要求17所述的系统,其中,所述管理模块还被配置为如果所述第一组件的条件计数超过所述计数阈值,则控制所述调整模块调整第二组件的跟踪数据的粒度。
20.一种信号承载介质,有形地包含可由数字处理设备执行的机器可读指令的程序,以执行调整跟踪数据粒度的操作,所述操作包括登记第一组件的包括条件集合的条件计数器,所述条件计数器被配置为对所述条件集合的每次发生进行计数,其中所述条件集合指定至少一个对系统事件的实例进行计数的系统计数器的至少一个实例;设置所述条件计数器的计数阈值;对所述条件集合的每个实例进行计数;将条件计数传送到所述第一组件;以及如果条件计数超过所述计数阈值,则将由所述第一组件记录的跟踪数据的粒度调整至修正粒度。
21.如权利要求20所述的信号承载介质,其中,所述指令还包括调整跟踪数据的粒度以响应管理员命令的操作。
22.如权利要求20所述的信号承载介质,其中,所述指令还包括如果所述第一组件的条件计数超过所述计数阈值,则调整第二组件的跟踪数据的粒度的操作。
23.如权利要求20所述的信号承载介质,其中,所述指令还包括将跟踪数据的粒度初始化为基础粒度的操作。
24.如权利要求23所述的信号承载介质,其中,所述指令还包括对所调整的跟踪数据粒度时间间隔进行计时的操作。
25.如权利要求24所述的信号承载介质,其中,所述指令还包括当所调整的跟踪数据粒度时间间隔超过指定的时间间隔时,将跟踪数据的粒度调整至所述基础粒度的操作。
26.如权利要求20所述的信号承载介质,其中,所述指令还包括对未调整的跟踪数据粒度时间间隔进行计时,如果条件计数在所述指定的时间间隔内未超过所述计数阈值,则将由所述第一组件记录的跟踪数据的粒度调整至修正粒度。
27.一种配置计算机基础结构的方法,包括将计算机可读代码集成到计算系统中,其中与所述计算系统结合的代码能够执行以下操作登记第一组件的包括条件集合的条件计数器,所述条件计数器被配置为对所述条件集合的每次发生进行计数,其中所述条件集合指定至少一个对系统事件的实例进行计数的系统计数器的至少一个实例;设置所述条件计数器的计数阈值;对所述条件集合的每个实例进行计数;将条件计数传送到所述第一组件;以及如果条件计数超过所述计数阈值,则将由所述第一组件记录的跟踪数据的粒度调整至修正粒度。
28.如权利要求27所述的方法,其中,所述方法还包括如果所述第一组件的条件计数超过所述计数阈值,则调整第二组件的跟踪数据的粒度。
29.如权利要求27所述的方法,所述方法还包括对所调整的跟踪数据粒度时间间隔进行计时,当所调整的跟踪数据粒度时间间隔超过指定的间隔时,将跟踪数据的粒度设置为基础粒度。
30.一种调整跟踪数据粒度的设备,所述设备包括用于登记第一组件的包括条件集合的条件计数器的装置,所述条件计数器被配置为对所述条件集合的每次发生进行计数,其中所述条件集合指定至少一个对系统事件的实例进行计数的系统计数器的至少一个实例;用于设置所述条件计数器的计数阈值的装置;用于对所述条件集合的每个实例进行计数的装置;用于将条件计数传送到所述第一组件的装置;以及用于如果条件计数超过所述计数阈值则将由所述第一组件记录的跟踪数据的粒度调整至修正粒度的装置。
全文摘要
公开一种用于调整跟踪数据粒度的设备、系统和方法。初始化模块设置对组件记录的跟踪数据的基础粒度。登记模块登记包括条件集合的条件计数器。阈值模块设置条件计数器的计数阈值。增量模块对条件集合的每个实例进行计数。如果条件计数超过计数阈值,则调整模块将对组件存储的跟踪数据的粒度调整至修正粒度。在一个实施例中,定时器模块对所调整的跟踪数据粒度时间间隔进行计时。当所调整的跟踪数据粒度时间间隔超过指定的时间间隔时,调整模块可以将跟踪数据的粒度设置为基础粒度。
文档编号G06F11/00GK1776631SQ200510114980
公开日2006年5月24日 申请日期2005年11月16日 优先权日2004年11月18日
发明者G·I·迪肯森, T·C·贾维斯, P·M·理查兹 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1