性能监控器及其方法 【技术领域】
本发明涉及性能监控器,更具体的,涉及监控事件组(cluster)的性能监控器。
背景技术
性能监控通常用于表征数据处理系统的操作特性。例如,可以识别并监控数据处理系统内的特定事件(例如存储器存取),从而测定性能。一种已知的性能监控器能监控诸如存储器存取的事件并根据组尺寸和组粒度(granularity)来表征这些事件的分组。在该解决方案中,组尺寸规定了构成组的事件发生的最小次数,而组粒度规定了在被认为是组的一部分的各个事件发生之间的最大可允许周期数。因此,性能监控器能够根据存储器存取的分组来表征数据处理系统的操作。然而,仅使用组尺寸和粒度来表征事件分组会导致对事件分组的错误表征,因为难以量化这些事件出现的分布。因此,需要改进的事件描述(profiling),从而获得较好地表征并更好的理解数据处理系统的行为。
【附图说明】
仅以示范而非限制方式用附随附图解释本发明,其中相同参考标记指示相同元件,其中:
图1以框图形式显示根据本发明一个实施例的数据处理系统;
图2以框图形式显示根据本发明一个实施例的图1数据处理系统的性能监控器;
图3显示根据本发明一个实施例的事件分组的例子;
图4和5显示根据本发明一个实施例的图2性能监控器的操作;
图6显示根据本发明一个实施例的事件分组的另一个例子。
本领域技术人员会理解,附图中的元件是示范性的,为了简洁、清楚没有按比例绘制。例如相对于其他元件夸大了附图中某些元件的尺寸,从而有助于对本发明实施例的理解。
【具体实施方式】
如在此使用的,术语“总线”指的是被用于传输一种或多种类型信息的多个信号或导线,所述信息例如是数据、地址、控制或状态。在此讨论的导线可根据单条导线、多条导线、单向导线或双向导线显示和说明。然而,不同的实施例的导线实施可能不同。例如,可以使用分离的单向导线而非双向导线,反之亦然。同样,可用串行传输多个信号或以时间多路复用方式传输多个信号的单个导线替换多条导线。类似的,承载多个信号的单个导线可分离为承载这些信号子集的多条不同导线。因此,存在用于传输信号的多种选择。
当指的是将信号、状态比特或类似设备分别再现为它的逻辑真或逻辑假状态时,使用术语“肯定(assert)”和“否定(negate)”(或“非肯定(deassert)”)。如果逻辑真状态是逻辑电平一,则逻辑假状态是逻辑电平零。如果逻辑真状态是逻辑电平零,则逻辑假状态就是逻辑电平一。同样,如在此使用的,超时计数器或计数器到期(expire)表示该计数器到零。
分组事件的表征允许扼要描述(profile)数据处理系统或任何类型电子系统的行为的能力。该特征可用于理解存取存储器的行为或任何其内的存取随时间在存取组之间以不均匀距离扩展的装置的行为。该特征可被用于确定给定接口的最大带宽需求,这些峰值带宽需求的持续时间,以及这些峰值之间的距离。软件程序员可使用此结果来调整他们的软件,并改变这些峰值的特征,从而增加系统的整体性能。通过此特征获取的信息的另一种用途是,给硬件设计者关于最大系统带宽需求以及这些峰值需求分布的思想。硬件设计者可使用该信息做出设计折衷决定并以最佳方式处理该需求。
注意到事件可以指在数据处理系统或电子系统内的任意事件。通常,事件是任何可以检测到的活动,例如通过逻辑信号的肯定(assertion)或否定(deassertion)。例如,在一个实施例中,事件包括存储器存取(即读取请求和写请求)、经以太网接口从以太网控制器接收帧、外围装置访问、通信总线上有效数据指示、或任何类型的总线事务。作为替换的,还可以定义其他任何类型的事件。
图1以框图形式显示数据处理系统100,它具有处理器102、存储器106、其他外围接口108、以太网控制器110以及系统总线112。处理器102包括性能监控器104并经双向导线114连接到系统总线112。存储器106经双向导线116连接到系统总线112,以太网控制器经双向导线120连接到系统总线112,其他外围接口108经双向导线118连接到系统总线112。其他外围接口108经双向导线122连接到其他外围设备,以太网控制器110经双向导线124连接到通信网络。在一个实施例中,数据处理系统100是微处理器、微控制器、数字信号处理器等,如本领域中已知的。存储器106可以是任何类型的存储器,包括易失性或非易失性存储器,例如随机访问存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、闪存、电可擦写可编程ROM(EEPROM)、可擦写可编程ROM(EPROM)等。以太网控制器110是可位于数据处理系统100内的一种类型的外围设备;然而,数据处理系统100还可包括连接到外围设备的其他外围接口108,这些外围设备例如输入/输出(I/O)装置、通用异步接收机发射机(UART)、实时时钟(RTC)等。其他外围接口108可包括诸如PCI(外围组件接口)接口和RapidIO接口的接口。同样,数据处理系统100可包括代替图1所示或除了图1所示之外的连接到系统总线112的任意数目的存储器以及任意数目的外围设备。
在一个实施例中,数据处理系统100整个集成在单个芯片上,例如在SoC(芯片上系统)解决方案中。然而,在替换实施例中,数据处理系统100的一部分可在位于例如芯片组内的不同芯片上的分离的集成电路上。例如,存储器106可位于和处理器102分离的集成电路上。同样,性能监控器104可和处理器102集成在一起(如图1所示)或位于处理器102外部分离的集成电路上。在一个实施例中,性能监控器104是独立的专用集成电路(ASIC)或位于和数据处理系统100分离的电子系统(例如逻辑分析器)内。在操作中,处理器102能处理从存储器106或从其它外围装置接收的指令,并能向和从存储器106、其他外围装置以及以太网控制器110传送数据,如本领域公知的。
图2显示图1性能监控器104的一个实施例。(注意性能监控器104也可以称为监控单元)。性能监控器104包括计数器控制寄存器1 200到计数器控制寄存器N 202、控制电路234、以及组计数器1 230到组计数器N 232。计数器控制寄存器1 200、计数器控制寄存器N202、组计数器1 230以及组计数器N 232每个都双向连接到控制电路234。计数器控制寄存器1 200包括组尺寸阈值字段(c_size 206)、组粒度阈值字段(c_granularity 208)、组距离阈值时间字段(c_distance210)、事件选择字段(event_select 212)以及其他字段204。类似的,计数器控制寄存器N202包括组尺寸阈值字段(c_size 216)、组粒度阈值字段(c_granularity 218)、组距离阈值时间字段(c_distance 220)、事件选择字段(event_select 222)以及其他字段214。控制电路234包括事件选择电路236和内部计数器238,并从处理器102的不同部分接收事件信号229。注意性能监控器104因此可按需包括N个计数器控制寄存器和N个组计数器,其中N可以是任何数量。还要注意性能监控器104的控制寄存器可以各种不同方式组成。例如,在一个实施例中,分离的控制寄存器可被用于分组选项,或计数器控制寄存器可按需被组合为具有不同数目字段的较大寄存器。
在操作中,性能监控器包括对应各个计数器控制寄存器的事件计数器。例如,组计数器1230是对应计数器控制寄存器1200的事件计数器。字段event_select 212用于标识要监测何种类型事件。例如,可设定event_select 212,从而监测存储器存取(例如在系统总线112上在处理器102或任何其他外围设备和存储器106之间发生读或写或二者同时发生)或监测经以太网接口接收的帧。因此,可设定event_select 212来标识一种事件类型,并可选择event_select 222来标识相同的或另一种事件类型。假定不允许计数器控制寄存器1200的事件分组(c_size 206设定为零),组计数器1 230用作事件计数器,仅简单计数由event_select 212指示类型的事件的数目,其他字段204可被用于进一步定义选项。例如,事件信号228可包括指示何时发生存储器写和何时发生存储器读的逻辑信号。组计数器1 230(作为事件计数器运行)可设定event_select 212从而选择仅监测存储器写。事件选择电路236因此使用event_select 212来选择指示存储器写发生的事件信号228的适当输入事件信号,并当接收适当输入事件信号的肯定(assertion)判定时,对应事件计数器(组计数器1 230)递增。
在允许事件分组的情形中(c_size 206不是零),组计数器1 230用来对选定事件类型(由event_select 212选定)的组进行计数,所述组满足由c_size 206,c_granularity 208以及c_distance 210设定的阈值。因此,当允许事件分组时使用字段c_size 206,c_granularity 208以及c_distance 210,从而组计数器1 230不再对选定事件类型的单个事件的出现进行计数而是对选定事件类型组的出现进行计数。(注意到组控制寄存器N 202和组计数器N 232与组控制寄存器1 200和组计数器1 230相似运行)。在在此讨论的实施例中,c_size 206和c_granularity 208定义合格组。即,合格组(参考图3进一步说明)是满足分别由c_size 206和c_granularity 208设定的尺寸和粒度阈值的组。尺寸阈值规定构成事件组的事件出现的最小次数。通常,组被定义为具有相同事件类型的分组;然而作为替换,组可以是指多于一种类型的事件的分组。粒度阈值规定可被认为是相同组的部分的事件出现的各个事件出现之间的最大可允许时间或周期数目。
由c_distance 210设定的距离阈值时间被用于确定组计数器1 230对哪些合格组计数。距离阈值时间规定在前一合格组的预定点和后一合格组的预定点之间的可接受时间或周期数(例如时钟周期),从而组计数器1 230可将该后一合格组计数为单个组。例如,在一个实施例中,距离阈值时间规定在前一合格组结束和后一合格组开始之间的最小可接受时间或周期数。在替换实施例中,距离阈值时间可规定在前一合格组结束和在后一合格组内已经检测到c_size个事件出现的点之间的最小可接受时间或周期数。作为替换,距离阈值时间可规定在前一组开始或结束点和后一组开始或结束点之间的最小可接受时间或周期数。替代的,距离阈值时间可规定在前一合格组内已经检测到c_size个事件出现的点和后一合格组内已经检测到c_size个事件出现的点之间的最小可接受时间或周期数。在另一个实施例中,距离阈值时间规定计数的前一合格组内预定点和后一合格组预定点之间的最小可接受时间或周期数。因此,可以各种不同方式定义距离阈值时间。
参考图2,如果c_size 206具有大于零的值,则允许分组,从而组计数器1230对满足c_size 206,c_granularity 208以及c_distance 210的事件类型(由event_select 212选定)的合格组的数目进行计数。即如上所述,事件选择电路236根据event_select 212来选择监测事件信号228中的哪个,从而组计数器1 230对选定事件类型的组进行计数。类似的,如果在计数控制寄存器N 202中也允许分组(c_size 216大于零),则事件选择电路236根据event_select 222来选择监测事件信号228中的哪个,从而组计数器N 232对选定事件类型的组计数。内部计数器238,如将要参考图4和5的流程图详细说明的,用于确定是否满足由c_size 206,c_granularity 208以及c_distance 210设定的阈值。(注意到在此提供的参考计数器控制寄存器1 200和组计数器1 230的说明也可应用到计数器控制寄存器N 202和组计数器N232)。
图3显示有助于理解尺寸阈值、粒度阈值以及距离阈值时间的事件分组的例子300。图3显示了两个组302和304。参考组302,显示了多个事件出现。由于事件出现的次数满足尺寸阈值要求(在该例中是5),并且组302内任意两个事件之间的距离低于(或等于)粒度阈值(c_granularity),因此将组302认为是合格组。由于与解释合格组302的相同的理由,组304也是合格组,因为它包括多于(或等于)尺寸阈值的事件出现数目,且任意两个事件之间的距离小于(或等于)粒度阈值。在图3的例子300中,组距离(即两个组之间的时间或时钟周期量)被定义为从由T1指示的前一合格组302的结束到由T3指示的后一合格组304的开始。在例子300中,T2指示阈值距离时间(c_distance)到期的时刻。即,T1和T2之间的时间指示阈值距离时间(c_distance)。因此,由于组距离大于c_distance,由组计数器对合格组304计数。然而,如果合格组304和302之间的组距离不满足距离阈值时间,则不对合格组304计数。即,如果在T2之前发生T3,从而T2之后的事件出现的数目不符合阈值距离要求,则不对合格组304计数。因此,在显示的实施例中,在第一合格组出现之后,性能监控器104在检测下一合格组之前等待阈值距离时间到期,如以下参考图4和5详细说明的。即,在显示的实施例中,在对每个合格组计数之后,应当在对下一合格组计数之前经过阈值距离时间。
图4和5以流程图形式显示可由根据本发明一个实施例的性能监控器104使用的对合格组计数的方法。图4的流程400显示根据本发明一个实施例的检测合格组的方法。流程400在401开始并进行到方框402,在此初始化c_size,c_granularity以及c_distance。(注意到在图4和5的说明中,c_size,c_granularity,c_distance以及组计数器可以指的是组控制寄存器1 200到N 202任意之一及对应的组计数器1 230到N 232。)在一个实施例中,组控制寄存器是用户可编程的,从而用户可以对c_size,c_granularity以及c_distance编程期望的值。以此方式,用户可以使用不同阈值来扼要描述数据处理系统100。作为替换,它们可以硬连接到数据处理系统100。在方框402中,距离计数器(性能监控器104的内部计数器238之一)初始化为零。流程然后继续,经点A到方框404,在此将尺寸计数器(性能监控器104内部计数器238的另一个)初始化为c_size值。流程然后进行到判决菱形框406。
在判决菱形框406,确定距离计数器是否到期。如果没有,流程进行到方框414,在此如果距离计数器不等于零则递减,然后流程回到判决菱形框406。因此,流程不从判决菱形框406进行到判决菱形框408(开始对第一次事件出现的搜索),直至距离计数器到期。因此在检测合格组中不使用任何在距离计数器倒期之前发生的事件。然而,如果在判决菱形框406距离计数器到期,则流程进行到判决菱形框408。
在判决菱形框408,确定是否检测到第一事件。如果没有,则流程回到判决菱形框408。即,由于距离计数器已经到期,流程400保持在判决菱形框408,直至检测到第一事件。一旦检测到第一事件,流程就进行到方框410。在判决菱形框408检测到的第一事件可能是合格组中的第一事件。即,用于识别合格组的处理不开始,直至距离计数器到期并且检测到第一事件之后。该第一事件例如可以是当开始性能监控器104时检测到的第一事件。该第一事件还可以是在前一合格组结束之后检测到的第一事件,或在检测的第一事件的大于粒度阈值所允许的某段时间量之前发生的前一事件之后检测到的第一事件。该第一事件还可以是指如果例如在组或合格组出现期间距离计数器到期,在组或合格组期间发生的事件。在方框410,由于通过检测第一事件检测到合格组的可能开始,粒度计数器(性能监控器104的内部计数器238的另一个)被初始化为c_granularity。同样,由于检测到第一事件,递减尺寸计数器。
流程然后进行到判决菱形框412,在此确定是否检测到下一事件(例如确定在数据处理系统100的下一时钟是否检测到事件)。如果没有,流程进行到判决菱形框422,确定粒度计数器是否到期。如果是,流程返回到点A,从而检测新的第一事件,因为如果粒度计数器到期,第一事件和当前时间(例如没有检测到事件的当前时钟周期)之间的时间会大于粒度阈值,因此第一事件不是合格组的开始。因此,在点A,开始搜索新的第一事件。(注意到当进行到点A时,距离计数器已经到时,因此流程直接进行到判决菱形框408来搜索新的第一事件。)然而,如果在判决菱形框422粒度计数器未到期,则流程进行到方框416,在此递减粒度计数器然后回到判决菱形框412。
如果在判决菱形框412检测到事件,则流程进行到方框420。在判决菱形框412检测的事件指示第一事件和当前事件之间的时间在粒度阈值内。因此,在方框420,尺寸计数器递减以指示检测到可能是合格组一部分的另一个事件。由于检测到另一个事件,在方框420还重新初始化粒度计数器,流程进行到判决菱形框424。在判决菱形框424,确定尺寸计数器是否到期。如果尺寸计数器没有到期,则不满足尺寸阈值,流程回到判决菱形框412,在此确定是否在下一时钟检测到另一事件。如果在时钟的c_granularity数目内没有检测到事件,流程从判决菱形框422经点A回到方框404,如上所述。然而如果在粒度计数器到期之前检测到下一事件,则流程继续经方框420回到判决菱形框424。
如果在判决菱形框424,尺寸计数器到期,则检测到满足粒度阈值的c_size个事件,从而指示合格组的检测。即,这些检测到的c_size个事件的任意两个相邻事件之间的时间最多是粒度阈值。此外,由于判决菱形框406和方框414定义的循环等待距离计数器到期,合格组的检测或者是当性能监控器开始时的第一检测合格组,或是在前一检测合格组之后至少c_distance出现的合格组。由于满足尺寸阈值、粒度阈值以及距离阈值时间,从而指示一个合格组,流程进行到图5的点C。(注意到在当前实施例中,检测的合格组实际是较大组或合格组的一部分,因为在判决菱形框408检测的“第一事件”可在组或合格组出现期间发生)。
图5显示在C点开始的流程450,点C指示检测到合格组。然而,在显示的实施例中,组计数器没有递增,直至检测到当前合格组的结束。(注意到在替换实施例中,可在合格组结束之前递增组计数器。)因此,流程经点C进行到判决菱形框440,从而最终检测当前合格组的结束。
在判决菱形框440,确定是否检测到事件(在下一时钟)。如果检测到,流程进行到方框442,在此重新初始化粒度计数器到c_granularity,因为检测新事件应当重设粒度计数器。流程然后返回到判决菱形框440。如果在判决菱形框440没有在下一时钟检测到事件,则流程进行到判决菱形框444,在此确定粒度计数器是否到期。如果没有,则流程进行到方框446,在此递减粒度计数器,然后流程进行到判决菱形框440确定在下一时钟是否检测到事件。因此,只要检测到事件或粒度计数器未到期,流程持续回到判决菱形框440。如果在判决菱形框444,粒度计数器到期,则任何随后事件都将超过粒度阈值并不再被认为是当前合格组的一部分。因此,当在判决菱形框444粒度计数器到期时,流程进行到方框448,它指示当前合格组结束,距离计数器被重新初始化到c_distance。流程然后经点A进行到图4的方框404,在等待距离阈值时间之后(即等待距离计数器到期),开始搜索新的第一事件(即下一合格组)。
注意到在显示的实施例中,在对当前合格组计数之后(在方框448),距离计数器被初始化到c_distance。在显示的实施例中,因此每当尺寸计数器、粒度计数器以及距离计数器是零并且在该时钟不出现任何事件时组计数器递增。
图4和5的方法可在软件、硬件、固件或其任意组合中实现。例如,在一个实施例中,图2的控制电路234包括内部计数器以及正确递增、递减以及重设内部计数器238和组计数器1到N所需的任何逻辑。控制电路还234可包括任何从计数器控制寄存器1到N读取和写入所需的任何逻辑。同样,不同实施例可以不同地实现内部计数器。例如,不是递减计数到零,替换实施例可递增计数器直至满足阈值。
图6显示更好理解图4和5的方法的分组例子600。图6的例子显示为在每个时钟给出的具有粒度计数器、尺寸计数器、距离计数器和组计数器的值的一系列时钟(编号0到42)。在时钟0,所有值都被初始化。粒度计数器、距离计数器和组计数器都被设为零,尺寸计数器被设为c_size,在所示例子中,c_distance是6时钟周期,c_size是4事件,c_granularity是2时钟周期。对于最初的几个周期,直至时钟周期3,维持所有的值(对应图4的判决菱形框408的循环)。(还注意到在时钟零距离计数器被初始化为零,从而绕过图4的判决菱形框406和方框414)。在时钟3检测到第一事件602(对应判决菱形框408)。因此,粒度计数器被初始化到c_granlarity,尺寸计数器递减(对应图4的方框410)。注意到在例子600中粒度和尺寸计数器的新值在第一事件602之后在下一时钟生效;因此,在时钟4,粒度计数器初始化到2,尺寸计数器在3。在该下一时钟(时钟4),没有检测到事件,因此粒度计数器在各个时钟再次递减(对应图4的判决菱形框412,判决菱形框422和方框416)。在时钟5,注意到粒度计数器没有到期,因此再次递减(方框416)。递减值在下一时钟(时钟6)出现。
在时钟6,检测到事件603(对应从判决菱形框412到方框420的流程)。由于检测到事件603,并且在事件602和603之间的距离最多是2时钟周期(即c_granularity时钟周期),所以事件603可被认为是在和事件602的相同组内。由于检测到事件603,粒度计数器被重新初始化到c_granularity,尺寸计数器递减(对应图4的方框420)。因此,在下一时钟(时钟7),出现这些新的值。即在时钟7,尺寸计数器是2,粒度计数器再次是2。由于这是检测的第一个组,距离计数器保持为零,直至在检测到第一合格组之后将其重设。这确保了总是对第一合格组计数。
在时钟9,检测到第四事件。再次递减尺寸计数器,并再次将粒度重新初始化为c_granularity。在下一时钟(时钟10),可以看出尺寸计数器到期(等于零),因此指示检测到合格组604。如在图6中看出的,合格组604的最初四个事件满足尺寸阈值和粒度阈值,因为任意两个相邻事件之间的时间至多是两个时钟周期。由于距离计数器也到期(因为这是第一个检测到的合格组),合格组604会被计数;然而,直至检测到合格组604的结束才会对合格组604计数。因此,流程通过判决菱形框440和444以及方框442和446进行,直至检测到当前合格组的结束。在时钟21,粒度计数器到期,从而指示当前合格组的结束,如在图6的条纹栏606所指示的。此时,注意到粒度计数器、尺寸计数器以及距离计数器都到期(即等于零)。同样,此时,距离计数器被重新初始化到c_distance,尺寸计数器被重新初始化到c_size,组计数器递增(对应方框448),如在图6时钟22可以看出的(因为这些值在下一时钟生效)。然后开始搜索新的合格组(对应图4的点A)。
在时钟23,虽然发生事件605,但不将其检测为第一事件,因为距离计数器还没有到期。在显示的实施例中,没有检测到作为第一事件的事件,直至距离计数器到期(对应图4判决菱形框406和方框414的循环)。因此直至在时钟28的事件606,不检测第一事件(通过判决菱形框408)。注意到虽然事件606在以事件605开始的事件组期间发生,仍然将其检测为第一事件,因为性能监控器104会在搜索下一合格组之前等待直至距离计数器到期。同样注意到,尺寸计数器没有递减,粒度计数器也没有设定,直至距离计数器到期之后。
因此,在时钟28,检测到新的第一事件606。流程如以上所述通过判决菱形框412进行,直至在时钟32发生的尺寸计数器到期。此时,检测到另一个合格组608,流程进行到图5的点C,在此检测到合格组608的结束(对应判决菱形框440和444以及方框442和446)。因此,在时钟34,当尺寸、粒度以及距离计数器都到期并且没有出现事件时,检测到合格组608的结束,如图6条纹栏616所示的。同样,此时,距离计数器被重新初始化为c_distance,尺寸计数器被重新初始化为c_size,组计数器递增(对应方框448),如可在图6时钟35看出的(由于这些值在下一时钟生效)。然后开始搜索下一个新合格组(对应图4的点A)。
直至c_distance到期之后才检测新的第一事件。因此,在条纹栏616之后以事件610开始的四个事件都不被检测为新的第一事件。距离计数器会继续递减,而尺寸计数器和粒度计数器会维持它们的值。然而,出现在时钟41或更后面的下一事件(未示出)被认为是新的第一事件,流程继续如上所述进行。
在图6的例子中,计数了两个合格组:合格组604和合格组608。因此,通过在尺寸阈值(c_size)和粒度阈值(c_granularity)之外使用距离阈值时间(c_distance),从例子600的时间序列中仅有两个合格组被计数。如从图6中看出的,每当尺寸计数器、粒度计数器和距离计数器都等于零并且没有出现事件时,组计数器递增(在时钟21和34发生)。因此,通过使用用户可如所希望的而设定的不同阈值,根据用户希望扼要描述的分布,被计数的合格组的数目也在变化。同样,应当理解,使用额外的距离阈值时间允许改进的扼要描述,从而获取数据处理系统性能的更好的表征。
注意到在显示实施例中,下一合格组的检测直至距离计数器到期之后才开始。即,仅在距离阈值时间到期之后才开始搜索合格组。然而,在替换方法中,可在距离计数器递减的时间期间检测合格组。即,不是忽略在等待距离计数器到期期间出现的事件,而是可将它们检测为判决菱形框408的“检测的第一事件”。然而,在该替换方法中,当检测合格组时,需要确定它是否在远离前一合格组至少距离阈值时间的地方发生,从而被组计数器计数。即,使用该替换方法确定的所有合格组可能不被组计数器计数。在一个使用此替换方法的实施例中,如果自前一计数合格组过去至少距离阈值时间,则合格组被计数。在使用该替换方法的替换实施例中,如果自前一合格组过去至少距离阈值时间,则合格组被计数,而不管是否被组计数器计数。因此,本领域普通技术人员可以理解,有多种不同方式来使用在此描述的不同阈值(即尺寸阈值、粒度阈值和距离阈值时间)来如所希望的扼要描述数据处理系统的性能。
例如,使用前述图6的例子600的方法,在该方法中不管是否被计数,只有在前一合格组至少距离阈值时间之后出现的那些合格组,会导致不同的扼要描述结果。参考图6,使用该替换方法,可以检测到三个合格组:合格组604,合格组618以及合格组620。这些组的每一个都被检测为合格组,因为它们都满足尺寸和粒度阈值。同样,这些合格组的每一个都被认为是独立的合格组,因为各个前一组的结束和后一组的开始之间的距离都大于粒度阈值,并因此不能被认为是相同合格组的一部分。例如,时钟18(合格组604的最后事件)和时钟23(合格组618的开始)之间的时间大于2时钟周期。然而,在这三个检测的合格组中,仅计数其中一个合格组(合格组604)。不计数合格组618是因为合格组604和618之间的距离不满足距离时间阈值。同样,不计数合格组620,因为合格组618(前一合格组,虽然没有计数)和合格组620之间的距离不满足距离时间阈值。(注意到在该替换方法的实施例中,在检测到各个合格组的结束之后将距离计数器重新初始化为c_distance,而不管是否合格组被计数)。因此,和图4和5的方法比较,该替换方法检测不同的合格组,但可以仅仅计数这些检测到的合格组的子集。图4和5的方法仅检测那些实际被计数的合格组,因为图4和5的方法总是在检测下一合格组之前等待距离计数器到期。同样,该替换方法的实施例检测合格组618,而图4和5仅检测合格组618的一部分(即合格组608),因为图4和5的方法允许在合格组中间出现第一事件。
在另一个使用替换方法的例子中,其中检测所有合格组,但自前一计数合格组至少距离阈值时间之后出现才计数,可以得到不同的扼要描述结果。例如,参考图6,同样可以检测到三个合格组:合格组604,合格组618以及合格组620。然而,在该例中,计数了其中两个合格组:合格组604和合格组620。计数两个合格组是因为作出不同的各个合格组是否满足距离阈值时间的判定。例如,对于在前两段中说明的替换方法,计数合格组604,因为它是第一个检测到的合格组。同样,为确定是否计数合格组618,确定计数合格组604和检测到的合格组618之间的组距离是否满足距离阈值时间。在图6的例子中,因为不满足所以不计数。然而,和在前两段中说明的替换方法不同,为确定是否计数合格组620,确定检测到的合格组620和计数合格组604之间的组距离是否满足距离阈值时间。由于在图6例子中满足,因此它也是计数合格组。和在前两段中说明的替换方法的前一实施例不同,因为前一实施例使用合格组618(虽然没有被计数)和检测到的合格组620之间的组距离。(注意到在该替换方法的替换实施例中,在检测到没有计数的合格组的结束之后距离计数器没有被重新初始化为c_diatance。而是,在检测到计数合格组的结束之后被重新初始化为c_distance。)
注意到本领域普通技术人员能够修改图4和5的流程来容纳这些使用距离计数器并计数合格组的替换方法。同样,本领域普通技术人员能够理解,通过使用不同的距离阈值时间,计数的合格组的数目是根据希望扼要描述的分布怎样变化的。因此,可以理解使用额外的距离阈值时间使得能够增加在获取改进的数据处理系统性能表征方面的灵活性。
在上述说明中,本发明参考特定实施例进行了说明。然而,本领域普通技术人员能够理解,可以作出不同的修改和改变而不背离由下面的权利要求阐明的本发明的范围。例如,在此说明的方法可以软件、硬件、固件或它们的任意组合实现。例如,在此教导的方法或这些方法的部分可体现为在一个或多个计算机硬盘、软盘、3.5寸盘、计算机存储磁带、磁鼓、静态随机访问存储器(SRAM)单元、动态随机访问存储器(DRAM)单元、电可擦写(EERPOM,EPROM,闪存)单元、非易失单元、铁电或铁磁存储器、紧致磁盘(CD)、激光盘、光盘、以及任何类似计算机可读介质上的软件。同样,框图可包括与那些显示的不同方框,并可具有更多或较少的方框或以不同方式排列。同样,可以不同方式安排流程图,包括更多或更少步骤,安置不同,或具有可被分离为多个步骤或相互之间同时执行的步骤的步骤。因此,说明书和附图应当被认为是示范而非限制意义,所有这样的修改都应当被包括在本发明范围内。
上述关于特定实施例描述了益处、其他优点以及对问题的解决方案。然而,益处、优点以及问题的解决方案以及任何能使任何益处、优点或解决方案出现或更加明确的元件不被认为是任何或所有权利要求的关键、必须或必要的特征或要素。如在此使用的,术语“包括”,“包含”或任何其他变体,是涵盖非排除的包括,从而任何包括一列元件的方法、装置或设备不仅包括这些元件,还包括其他没有明确列出或是这些处理、方法、装置或设备固有的元件。