专利名称:高分辨率定时器有效滑动窗口的制作方法
技术领域:
本发明涉及检测滑动时间窗口内是否发生了预定数量的事件。
背景技术:
在许多系统和装置中,常常期望检测在一定量时间内是否发生了彼此相关的预定数量的事件。一旦检测到该条件,常常还期望检测在一定量时间内是否不再发生彼此相关的预定数量的事件。典型地,响应于这些条件中的每一个的满足/不满足,来调用相应的状态改变或特定动作。
图1是例示了在某时间段内发生某些事件(被描绘为实心黑框)的示例性时序图。在该示例中,假设期望检测何时在一定量的时间内发生四个彼此相关的事件。该条件在滑动时间窗口101内得到满足。响应于检测到该条件得到满足,而调用某动作“x”(103)。
图2是例示了其中期望检测何时在一定量的时间内那四个彼此相关的事件不再发生的情况的示例性时序图。在该示例中,此情况发生在滑动时间窗口201内。响应于检测到该条件得到满足,而调用某动作“y”203)。
为了避免易触发(trigger-happy)的系统,有时增加迟滞定时器(timer)。图3描绘了与图2相同的情况,但是在这里不期望立即采取动作“y”。而是增加迟滞定时器来确保系统在采取动作“y”之前的某时间段301内是稳定的。因此,注意力集中在滑动时间窗口上,在所述滑动时间窗口内会发生或者不会发生一定数量的事件(取决于正在测试什么条件)。为了实现这样的迟滞,有效地移动时间窗口的起点和终点,并且在迟滞时间段内的所述数量的点中的每一个处测试期望的条件。在图3中,四个事件不在限定的时间窗口内发生的条件为真,并且在迟滞时间段301内是稳定的。因此,调用动作“y”(303)。
在其中期望检测预定数量的事件在时间窗口内发生的情况下,可以添加类似的迟滞定时器。图4例示了其中期望检测出四个事件已经在某滑动时间窗口内发生并且该条件在采取行动之前的迟滞时间段期间稳定的情形。在该示例中,因为在迟滞时间段期间未满足该条件,所以没有采取任何动作。
在许多系统中,滑动时间窗口的长度以及所述事件数量是可以充分设置的,并且可以在任何时间进行改变。以电信领域为例,当必须检测接收时的块差错率何时在某滑动时间窗口内超过某一阈值或降到某一阈值之下时,出现了检测事件发生/不发生的问题。
另一示例出现在想要解决在3GPP技术规范25.304中发现的分层蜂窝结构(HCS)问题时。在该规范中,要求用户设备(UE)能够检测在一时间段(T)内小区再选择的次数是否超过某一预设量(N)。如果是这样的话,则已经检测到了高移动性。在该高移动性状态下,需要说明的是,该UE应该优先考虑再选择较低HCS优先级上的相邻小区而不是相同HCS优先级上的相邻小区。如果在该时间段(T)内小区再选择的次数不再超过N,则该UE应该在时间段THyst内继续这些测量,然后返回低移动性测量规则。在该示例中,小区再选择是事件,T是其中必须检测N个时间的滑动时间窗口的持续时间,而THyst是用于脱离高移动性状态的迟滞定时器。
为了解决像如上所述的那些问题,软件解决方案通常实现如下的滑动窗口系统以周期性间隔被外部程序/设备或者被由该程序本身启动的定时器连续地唤醒。在每次唤醒时,对滑动时间窗口进行移位,并且在该滑动时间窗口内对事件的数量/事件的缺乏进行计数,以决定是否采取动作。如果要使用滞后定时器,则需要额外的定时器监管。
这样的解决方案存在某些相关的问题。例如,系统可能必须不断地启动定时器,这导致几个定时器并行运行。每个定时器超时事件都导致检测给定条件是否得到满足的处理。越想更快地检测出条件是否得到满足,越想更快地反应并采取动作,唤醒调用就必须更加频繁(并且分辨率更高)。这导致更多来自外部程序/设备或来自自启动定时器的信令,并且更多进程切换的可能性增大。
发明内容
应该强调的是,本说明书所使用的“包括”一词用于表示存在所述特征、整数、步骤或组件;但是使用该词并非要排除存在或添加一个或更多个其他特征、整数、步骤、组件或它们组成的组。
根据本发明的一个方面,通过方法和装置来实现前述以及其他目的,所述方法和装置检测在由滑动时间窗口限定的持续时间内是否发生了N个以上的事件。检测包括响应于每一次事件的发生而执行事件检测过程。事件检测过程包括使时间戳与事件相关联,并基于与该事件相关联的时间戳和与前面的第N事件相关联的较早的时间戳之间的差来确定值DeltaTimeStamp。将值DeltaTimeStamp与表示由所述滑动时间窗口限定的持续时间的值进行比较,如果比较判据得到满足,则指示检测到事件条件,其中所述检测到事件条件被定义为在由所述滑动时间窗口限定的持续时间内发生了N个以上事件。
另一方面,基于表示由所述滑动时间窗口限定的持续时间的值和DeltaTimeStamp之间的差来对定时器进行初始化。然后启动所述定时器,其中与所述定时器相关联的超时事件调用事件缺乏检测(lack of eventdetection)过程,所述事件缺乏检测过程包括指示事件缺乏条件为真,其中事件缺乏条件被定义为在由所述滑动时间窗口限定的持续时间内发生了N个或更少的事件。
再一方面,基于表示由所述滑动时间窗口限定的持续时间的值和DeltaTimeStamp之间的差来对所述定时器进行初始化包括确定表示由所述滑动时间窗口限定的持续时间的值和DeltaTimeStamp之间的差,以及将所述差与表示持续时间的迟滞值相组合,所述持续时间为在事件缺乏条件被检测到之前允许存在事件缺乏条件的持续时间。
又一方面,在对所述定时器进行初始化之前,确保所述定时器停止。
在某些实施例中,事件是在电信设备中检测到数据块差错。
在其他实施例中,事件是在蜂窝通信系统中重新选择小区。在这些实施例的其他方面,响应于所指示的检测到事件条件,用户终端工作在高移动性状态下;并且响应于所指示的事件缺乏条件,用户终端工作在低移动性状态下。
在其他替换性实施例中,方法和装置检测在由滑动时间窗口限定的持续时间内是否发生了N个以上事件。这涉及响应于每一次事件的发生而执行事件检测过程,所述事件检测过程包括使时间戳与所述事件相关联;基于与所述事件相关联的时间戳和与前面的第N事件相关联的较早的时间戳之间的差来确定值DeltaTimeStamp;将DeltaTimeStamp与表示由所述滑动时间窗口限定的持续时间的值进行比较;确定比较判据是否得到了满足。如果所述比较判据得到了满足,则基于表示由所述滑动时间窗口限定的持续时间的值和DeltaTimeStamp之间的差,对第一定时器进行初始化,并启动所述第一定时器。还确定最后检测到的状态是否为在由所述滑动时间窗口限定的持续时间内还未发生N个事件,如果是这样的话,则基于hysteresis_event值对第二定时器进行初始化,并启动所述第二定时器。在这些实施例中,与第一定时器相关联的超时事件调用事件缺乏检测过程,所述事件缺乏检测过程包括指示已经检测到事件缺乏条件,其中事件缺乏条件被定义为在由所述滑动时间窗口限定的持续时间内发生了N个或更少的事件。此外,与第二定时器相关联的超时事件调用事件检测过程,所述事件检测过程包括指示检测到事件条件为真,其中所述检测到事件条件被定义为在由所述滑动时间窗口限定的持续时间内发生了N个以上的事件。此外,hysteresis_event值表示在所述检测到事件条件被检测到之前允许所述检测到事件条件存在的持续时间。
在其他方面,所述事件缺乏检测过程涉及确定最后检测到的状态是否为在由所述滑动窗口限定的持续时间内已经发生了N个事件的状态,如果是这样的话,则确定所述事件缺乏条件是否已经至少存在了时间量hyst_lack。如果所述事件缺乏条件已经至少存在了时间量hyst_lack,则指示已经检测到了所述事件缺乏条件。否则,就基于所述时间量hyst_lack对所述第一定时器进行初始化,并启动所述第一定时器。
通过结合附图阅读下面的详细描述,将理解本发明的目的和优点,在附图中图1是例示了在某时间段内一些事件(描绘为实心黑框)的发生的示例性时序图。
图2是例示了其中期望检测何时那四个彼此相关的事件在一定量的时间内不再发生的情况的示例性时序图。
图3是例示了其中期望检测在一迟滞时间段上何时那四个彼此相关的事件在一定量的时间内不再发生的情况的示例性时序图。
图4例示了其中期望在采取动作以前的迟滞时间段内何时四个事件已经在一定量的时间内发生但其中由于在所述迟滞时间段内条件没有得到满足而没有采取动作的情况。
图5是例示了示例性实施例的操作的时序图。
图6是描绘实施例的示例性实现的流程图。
图7A、7B和7C是描绘实施例的替换性示例性实现的流程图。
具体实施例方式
下面将参照附图来描述本发明的各种特征,在附图中相同的部分用相同的标号来标识。
下面将结合多个示例性实施例来更加详细地描述本发明的各个方面。为了便于理解本发明,本发明的许多方面是按照要由计算机系统的部件执行的动作序列来描述的。应该认识到,在每一个实施例中,各种动作可以由专用电路(例如,相互连接以执行专门功能的离散逻辑门)、由一个或更多个处理器执行的程序指令,或者两者的组合来执行。此外,本发明还可以被认为是完全实施在任意形式的计算机可读载体(例如固态存储器、磁盘、光盘或载波(例如射频、音频或光频载波))上,所述计算机可读载体包含适当的计算机指令集,所述计算机指令1集会使处理器执行此处描述的方法。因此,本发明的各个方面可以实施为许多不同的形式,并且所有这些形式都被视为落入本发明的范围之内。对于本发明各方面中的每一方面来说,任何这种形式的实施例都可以在这里被称为“被配置为执行所描述动作的逻辑”,或者替换性地被称为“执行所描述动作的逻辑”。
如在背景技术部分中所描述的,当常规程序想要发现事件的不发生时,它必须由程序/设备/定时器来通知已经经过了预定量的时间而没有任何事情发生。相比来讲,本发明的重要方面在于,即使在假设程序要检测事件的不发生时,所述程序也只有在事件发生时才醒来并且作出反应。这使得一种实施能够以非常简单的软件实现来获得最短的可能反应时间和最高的可能分辨率,所述软件实现包括较少的唤醒和数量减少的信令、定时器资源和进程切换。下面将更详细地描述这些以及其他方面。
在一个示例性实施例中,假定不包括用于检测在预定时间段内事件的数量超过某一阈值的迟滞定时器。因此,本发明的一方面涉及一种在每次事件发生时醒来并且当时在数据库(例如,阵列)中存储一时间戳的程序。一旦事件的数量超过了预先设置的阈值(N),就确定当前事件的时间戳与前面的第N事件的时间戳之间的时间差(DeltaTimeStamp)。如果该时间差小于等于滑动时间窗口的长度,就检测到了在所述滑动时间窗口内发生的事件的数量已经超过了N。
该程序现在处于可以开始检测事件的不发生的状态下。检测该条件的一个方面涉及启动定时器。对该定时器进行初始化,使得在经过与滑动时间窗口的长度减去由DeltaTimeStamp代表的持续时间相对应的时间段以后将发生超时事件。在应用迟滞时间间隔来检测事件的不发生(hyst_lack)的替换性实施例中,对定时器进行初始化,使得在经过与滑动时间窗口的长度减去由DeltaTimeStamp代表的持续时间再加上所期望的迟滞持续时间相对应的时间段以后将发生超时事件。
定时器在每次检测到在所述预定时间段内事件的数量超过N时重新启动。如果定时器不断地超时,就说明在预定时间段内发生了N个或更少的事件(即,检测到事件缺乏)。
图5是例示上述示例性实施例的操作的时序图。在该示例中,发生了一系列相对彼此间隔不同的事件。假定该预先设置的阈值N等于3,并且在该图中所描绘的事件之前没有别的事件发生。还假定时间戳及时地表示事件发生时的第一时刻(即,图5中描绘的各事件的上升沿)。
当事件501发生时,事件的总数(即此时仅为一)没有超过阈值N,所以采取的唯一动作是确定时间戳并且把它保存在适当的数据库中。对于接下来的两个事件503和505同样如此。
当第四事件507发生时,超过了阈值3,所以除了确定并存储与该第四事件507相关联的时间戳之外,还从与第四事件507相关联的时间戳中减去与第一事件501相关联的时间戳,以生成DeltaTimeStamp 509的值。在该示例中,DeltaTimeStamp 509小于滑动时间窗口511的持续时间,所以对由所述滑动时间窗口511限定的时间段内的3个以上事件的检测已经发生。
为了检测在由所述滑动时间窗口限定的跨度内发生3个以上事件的条件是否得到满足,通过从滑动时间窗口511的长度中减去DeltaTimeStamp值来确定定时器长度。将定时器初始化到该值并且进行调用。
如果下一事件513要在该定时器期满之前发生,则将计算DeltaTimeStamp的新值,作为与事件513相关联的时间戳和与事件503相关联的时间戳之间的差,将以新的定时器长度对定时器进行重新初始化,并重新启动。这是因为新的DeltaTimeStamp值仍然小于滑动时间窗口511的长度。
然而,如果事件513未发生(由图5中的虚线来表示),则该定时器将导致超时事件,这表明在由滑动时间窗口定义的跨度内发生3个以上事件的条件不再得到满足。这在附图中用滑动时间窗口515进行了图示,所述滑动时间窗口515限定了仅与三个事件503、505和507相关联的时间段。
当下一事件517发生时,所述检测到事件条件再一次得到满足,因为被确定为与事件517相关联的时间戳和与事件503相关联的时间戳之间的差的DeltaTimeStamp值小于滑动时间窗口519的持续时间。
在考虑例如图5中描绘的情形时,设计者可能不想将滑动时间窗口511的结尾和事件517的开始之间相对较短的间隔视为其中所述检测到事件条件不再得到满足的情况。正如前面提到的那样,为了防止系统以这样的方式进行响应,可以在确定定时器长度的值时增加迟滞值(hyst_lack)。可以将hyst_lack的值选择为,使得定时器不会在一事件(例如事件517)已经有发生的机会之前导致超时事件的发生。
图6是描绘刚刚描述的实施例的示例性实现的流程图。该示例性实施例从事件的发生开始(步骤601)。响应于事件601,确定相应的时间戳并存储在适当的数据库中(步骤603)。然后,将所遭遇的事件的总数与预定的阈值N进行比较(判决框605)。如果比较判据未得到满足(例如,如果事件的总数不大于阈值N)(从判决框605出发的“否”路径),则该例程的调用终止(步骤607)。
然而,如果比较判据得到了满足(从判决框605出发的“是”路径),则确定值DeltaTimeStamp,作为最近确定的时间戳与前面的第N事件的时间戳之间的差(步骤609)。
然后,将DeltaTimeStamp的值与滑动时间窗口的长度进行比较(判决框611)。如果比较判据未得到满足(例如,如果DeltaTimeStamp不小于等于滑动时间窗口的长度)(从判决框611出发的“否”路径),则该例程的调用终止(步骤607)。
然而,如果比较判据得到了满足(从判定框611出发的“是”路径),则该例程继续进行,以确定定时器目前是否正在运行(判决框613)。如果是这样(从判决框613出发的“是”路径),则停止该定时器(步骤615),并且处理在步骤617继续。如果目前还没有定时器正在运行(从判决框613出发的“否”路径),则处理直接继续进行到步骤617。应该注意到,在这里例示出步骤613和615某种程度上是出于教育性的理由,即,为了非常清楚地指出应该停止已经正在运行的定时器。然而,应该认识到,在替换性实施例中,设计者可能会发现略过由判决框613所例示的测试而相反简单地发出“定时器停止”命令是更为方便的,如果定时器已经停止,则“定时器停止”命令被简单地忽略。在这些以及其他等同实施例中,这些步骤的目的在于保证定时器被停止,以便可以利用新的初始值使其重新启动。如果使用了准许加载新的初始值而不实际停止该定时器的定时器逻辑,则保证定时器被停止的步骤不包括任何实际的动作。
在步骤617,利用与滑动时间窗口的长度和DeltaTimeStamp的值之间的差相对应的值对定时器进行(重新)初始化。如果要使用迟滞(hyst_lack)来检测事件缺乏,则将该值添加到用于初始化定时器的值上。在(重新)初始化之后,启动该定时器。将表示处理的当前状态的变量设为表示所遭遇的事件的数量满足所指示的判据(例如它超过了阈值N)的值(步骤619)。然后该例程的此调用终止(步骤607)。
上述步骤是响应于所考虑的事件的每次发生而执行的。如果超时事件发生(步骤621),就表示指出在滑动时间窗口的持续时间内应该发生的事件的数量的判据不再得到满足(即,检测到了事件缺乏)。相应地,将表示处理的当前状态的变量设为表示不能满足该判据的值。
为了便于理解发明的各个方面,图6中描绘的示例性实施例侧重于“N_exceeded(超过N)”和“N_not_exceeded(未超过N)”之间的状态改变。然而,应该理解,在这两种状态改变之一或两者要触发一个或更多个动作的实施例中,图6中描绘的实施例可能必须进行修改。具体来说,图6中描绘的逻辑准许步骤“State=N_exceeded”(步骤619)在第一次转变为该状态之后被连续执行两次或更多次,直到该条件持续为真所经历的时间为止。如果设置状态是用于执行该动作的触发条件,则该动作可能被不期望地执行不止一次。因此,在这些期望的工作条件下,可能希望增加额外的逻辑来防止该情况发生。例如,可以在步骤617之后但在步骤619之前,增加额外的测试来确定状态是否已经被设为等于“N_exceeded”,如果是这样的话,则略过步骤619的执行。在一个或更多个其他替换性实施例中,可以增加标记(flag),从而在状态实际发生改变时(例如,从“N_not_exceeded”到“N_exceeded”)通知动作触发逻辑(未示出),并且该变化的指示可以随后充当用于采取期望动作的触发条件。
图7A、7B和7C是共同描绘根据本发明的实施例的替换性示例性实现的流程图。在该实施例中,假定包括有迟滞定时器(Timer_event)来检测滑动时间窗口内的事件数量是否超过N。这里使用了两个定时器如上所述的当检测到滑动时间窗口内发生的事件的数量已经超过N时被启动的一个定时器(Timer_lack),以及第一次检测到当前状态是“N_not_exceeded”并且在滑动时间窗口内到来的事件的数量超过N时被启动的另一个定时器(Timer_event)。在该实施例的替换实施例中,如果(SlidingWindowLength-DeltaTimeStamp)>=hyst_event,则可以通过不启动Timer_event定时器来进行优化。这基于发明人的观察,即如果当前状态是N_not_exceeded,并且N个事件彼此非常接近地发生,则如果滑动窗口长度大于hyst_event的持续时间,就不存在启动Timer-event定时器的时间点。
如果Timer-event定时器在Timer-lack定时器之前超时,则已知对于与延长了迟滞时间(hyst_event)的滑动窗口相对应的时间段来说,事件的数量已经超过了N,随后可以采取合适的动作。如果Timer-lack定时器在Timer-event定时器之前超时,就表示在滑动窗口(如果这里也使用了迟滞的话,就延长持续时间hyst_lack)内检测到了缺乏足够数量的事件。
首先参照图7A,该示例性实施例以事件的发生开始(步骤701)。响应于该事件701,确定相应的时间戳,并存储在适当的数据库中(步骤703)。随后将所遭遇的事件的总数与预定的阈值N进行比较(判决框705)。如果比较判决未得到满足(例如,如果事件的总数不比阈值N大)(从判决框705出发的“否”路径),则例程的该调用终止(步骤707)。
然而,如果比较判据得到了满足(从判决框705出发的“是”路径),则确定值DeltaTimeStamp,作为最近确定的时间戳与前面的第N事件的时间戳之间的差(步骤709)。
随后,将DeltaTimeStamp的值与滑动时间窗口的长度进行比较(判决框711)。如果比较判据得到满足(从判决框711出发的“是”路径),则该例程继续进行,以确定Timer-lack定时器目前是否正在运行(判决框713)。如果是这样(从判决框713出发的“是”路径),则停止Timer-lack定时器(步骤715),并且处理在步骤717继续。如果Timer-lack定时器目前没有运行(从判决框713出发的“否”),则处理直接继续进行到步骤717。应该注意到,在这里例示出步骤713和715某种程度上是出于教育性的理由,即,为了非常清楚地指出应该停止已经正在运行的定时器。然而,应该认识到,在替换性实施例中,设计者可能会发现略过由判决框713所示例的测试而相反简单地发出“定时器停止”命令是更为方便的,如果定时器已经停止,则“定时器停止”命令被简单地忽略。在这些以及其他等同实施例中,这些步骤的目的在于保证定时器被停止,以便可以利用新的初始值使其重新启动。如果使用了准许加载新的初始值而不实际停止该定时器的定时器逻辑,则保证定时器被停止的步骤不包括任何实际的动作。
在步骤717,利用与滑动时间窗口的长度和DeltaTimeStamp的值之间的差相对应的值对定时器进行(重新)初始化。在(重新)初始化之后,启动定时器。与图6中描绘的实施例不同,还未将表示处理的当前状态的变量设为指出滑动窗口内所遭遇的事件的数量满足所指示的判据(例如,它超过了阈值N)的值。理由在于,为了包括期望的迟滞,这仅在另一定时器(Timer_event)引起超时事件(步骤729)之后被执行(步骤729)。
此外,优选的是避免使Timer_lack定时器连续超时多次而中间没有任何到“N_not_exceeded”的状态改变。因此,在步骤717执行之后,执行多个步骤来确保超时事件不导致状态从一个状态翻转到另一个状态而没有经过合适的迟滞时间段。更具体地说,将此处被称为“Timer_lackState”的变量设为等于第一值(“A”),所述第一值之后可以在Timer_lack超时事件中进行测试。
接下来,对现有状态进行测试(判决框721)。如果当前状态是“N_exceeded”,则例程的该调用终止(步骤707)。在这里,根本原因在于不必启动Timer_event定时器,因为该定时器的超时事件将要检测到的状态已经被检测到。
然而,如果由判决框721检测到的当前状态是“N_not_exceeded”,则接下来检测Timer_event定时器是否已经正在运行(判决框723)。如果是,则例程的该调用终止(步骤707)。这确保了如果继续采用通过该逻辑的此路径,则Timer_event定时器最终将超时。
如果Timer-event定时器并非正在运行(从判决框723出发的“否”路径),则以被编程为等于期望的迟滞时间间隔(hyst_event)的超时事件间隔来启动Timer_event定时器(步骤725)。随后,例程的该调用终止(步骤707)。
图7A中所介绍的示例性逻辑示出了如何对一个或两个定时器进行初始化和启动。接下来要处理的问题是当它们中的一个引起超时事件时会发生什么。首先参照图7B,如果Timer_event定时器超时(步骤727),就意味着指示应该在滑动时间窗口的持续时间内发生的事件的数量的判据已经得到满足(即,在时间窗口内已经检测到期望数量的事件)。相应地,将表示处理的当前状态的变量设为表示该判据已经得到满足的值(步骤729)。接着例程终止(步骤731)。
可替换的是,如果Timer_lack定时器引起超时事件(步骤733),则必须进行额外的测试来确定表明应该在滑动时间窗口的持续时间内发生事件的数目的判据是否不再得到满足(即,已经检测到事件缺乏),并且是否对于至少相关联的迟滞时间段(hyst_lack)来说持续为真。因此,执行测试来确定Timer_event定时器是否正在运行(判决框735)。如果是(从判决框735出发的“是”路径),则停止Timer_event定时器(步骤737),以防止它随后引起它本身的超时事件,所述超时事件可能导致状态错误地改变为“N_exceeded”。随后状态改变为“N_not-exceeded”(步骤739),并且Timer_lack超时事件例程终止(步骤747)。
返回判决框735,如果确定为Timer_event定时器并非正在运行(从判决框735出发的“否”路径),则对Timer_lack状态变量进行测试(判决框741)以进一步确定该超时事件指示什么状态。即,在本实施例中,用两个变量中的一个对Timer_lack定时器进行初始化。如果上一次初始化是在图7A中描绘的“主”例程(参见步骤717)中执行的,则这通过被设为值“A”的Timer_lack State变量来指示,并且该超时事件指示即时状态(即,不等待迟滞时间段)为“N_not-exceeded”。如果是这种情况(从判决框741出发的“A”路径),则对Timer_lack定时器进行重新初始化,这一次要在相关联的迟滞时间段hyst_lack之后超时(步骤743)。现在还将Timer_lack State变量被设为第二值(例如“B”)(步骤745)以指示中间没有执行图7A中描绘的“主”例程而发生的下一个Timer_lack超时事件指示了相关联的迟滞时间段hyst_lack的期满。随后,超时例程的执行终止(步骤747)。
此时应该理解,如果在判决框741处确定为Timer_lack State变量等于“B”,则这指示N_not_exceeded状态已经存在了至少迟滞时间段。因此,执行前进到步骤739,在步骤739中将State设为等于“N_not_exceeded”。随后,超时例程的执行终止(步骤747)。
应该理解,组成图7A、7B和7C的示例性实施例的细节不应该被视为对本发明的限制。相反,可以从该实施例所采用的相同原理中导出很多其他的实施例。这些原理包括,响应于事件的每次发生,确定最近的事件与前面的第N事件之间的时间跨度是否在滑动窗口的持续时间内,如果是的话,则启动被初始化为在这样的时间点超时的第一定时器(例如Timer_lack定时器),即如果没有其他事件发生,则将在所述时间点指示N_exceeded条件不再得到满足。
此外,第二定时器(例如Timer_event定时器)被初始化为在这样的时间点超时,即在所述时间点指示用于检测N_exceeded条件的满足的期望迟滞时间段已经过去。
一旦这两个定时器被启动,所检测到的状态改变就基于这两个定时器中哪一个首先超时。只要N_exceeded条件持续为真(即,在足够短的间隔内事件相对于彼此持续发生),就对第一定时器(例如Timer_lack定时器)进行重新初始化,从而阻止它超时。因此,第二定时器(例如Timer_event)将首先期满。然而,如果事件之间的间隔变得足够长,从而使N_exceeded条件不再为真,则第一定时器(例如Timer_lack定时器)将首先期满。作为该超时事件的结果而被调用的Timer_lack过程可以停止第二定时器(例如Timer_event),由此阻止其超时的发生。可以在对“N_not_exceeded”条件的检测中加入迟滞时间间隔,以及通过要求第一定时器的两次超时事件连续发生(即与第二定时器之间没有任何超时事件),第一超时事件在“N_not_exceeded”条件变为真之后发生,而第二超时事件在期望的迟滞时段之后发生。
应该清楚,这里所描述的各种实施例提供了优于常规技术的益处。例如,其目的在于检测事件条件是否已经得到满足的程序不需要像常规解决方案中那样被频繁唤醒。结果,信令会很少并且过程切换可能会较少。
在组合了图1-3中介绍的示例的所有情况下,仅需要一个定时器资源。即使在其中需要迟滞定时器来检测事件和事件缺乏两者的最复杂的情况(即图1-4中描绘的示例的组合)下,也最多需要两个定时器资源。
此外,各个实施例给出了带有非常短的反应时间的非常高的分辨率。
已经参照特定实施例描述了本发明。然而,本领域技术人员应该非常清楚,可以按照上面所描述的实施例以外的具体形式来实施本发明。所描述的实施例仅仅是说明性的,并且无论如何都不应该被视为是限定性的。本发明的范围由所附权利要求而不是前述说明给出,并且旨在将落入权利要求范围内的所有变化和等同形式都包括在其中。
权利要求
1.一种检测是否在由滑动时间窗口限定的持续时间内发生了N个以上的事件的方法,该方法包括以下步骤响应于每一次事件的发生,进行事件检测过程,该事件检测过程包括使时间戳与所述事件相关联;基于与所述事件相关联的时间戳和与前面的第N事件相关联的较早时间戳之间的差来确定值DeltaTimeStamp;以及将DeltaTimeStamp与表示由所述滑动时间窗口限定的持续时间的值进行比较,如果比较判据得到满足,则指示检测到事件条件为真,其中所述检测到事件条件被定义为在由所述滑动时间窗口限定的持续时间内发生了N个以上的事件。
2.根据权利要求1所述的方法,该方法包括以下步骤基于表示由所述滑动时间窗口限定的持续时间的所述值与DeltaTimeStamp之间的差来对定时器进行初始化;以及启动所述定时器,其中与所述定时器相关联的超时事件调用事件缺乏检测过程,该事件缺乏检测过程包括指示事件缺乏条件为真,其中所述事件缺乏条件被定义为在由所述滑动时间窗口限定的持续时间内发生了N个或更少的事件。
3.根据权利要求2所述的方法,其中基于表示由所述滑动时间窗口限定的持续时间的所述值与DeltaTimeStamp之间的差来对所述定时器进行初始化的所述步骤包括确定表示由所述滑动时间窗口限定的持续时间的所述值与DeltaTimeStamp之间的差,并且将所述差与表示在所述事件缺乏条件被检测到之前允许存在所述事件缺乏条件的持续时间的迟滞值进行组合。
4.根据权利要求2所述的方法,该方法包括以下步骤在对所述定时器进行初始化之前,确保所述定时器停止。
5.根据权利要求2所述的方法,其中所述事件是在电信设备中检测到数据块差错。
6.根据权利要求2所述的方法,其中所述事件是在蜂窝通信系统中重新选择小区。
7.根据权利要求6所述的方法,该方法包括以下步骤响应于所指示的所述检测到事件条件,使用户终端在高移动性状态下工作;并且响应于所指示的所述事件缺乏条件,使所述用户终端在低移动性状态下工作。
8.一种检测是否在由滑动时间窗口限定的持续时间内发生了N个以上的事件的方法,该方法包括以下步骤响应于每一次事件的发生,执行事件检测过程,该事件检测过程包括使时间戳与所述事件相关联;基于与所述事件相关联的时间戳和与前面的第N事件相关联的较早时间戳之间的差来确定值DeltaTimeStamp;将DeltaTimeStamp与表示由所述滑动时间窗口限定的持续时间的值进行比较;确定比较判据是否得到了满足,如果是,则执行以下步骤基于表示由所述滑动时间窗口限定的持续时间的值和DeltaTimeStamp之间的差,对第一定时器进行初始化;启动所述第一定时器;以及确定最后检测到的状态是否为在由所述滑动时间窗口限定的持续时间内还未发生N个事件,如果是,则执行以下步骤基于hysteresis_event值对第二定时器进行初始化;以及启动所述第二定时器,其中,与所述第一定时器相关联的超时事件调用事件缺乏检测过程,该事件缺乏检测过程包括指示已经检测到事件缺乏条件,其中所述事件缺乏条件被定义为在由所述滑动时间窗口限定的持续时间内发生了N个或更少的事件,其中,与所述第二定时器相关联的超时事件调用事件检测过程,该事件检测过程包括指示检测到事件条件为真,其中所述检测到事件条件被定义为在由所述滑动时间窗口限定的持续时间内发生了N个以上的事件,并且,其中所述hysteresis_event值表示在所述检测到事件条件被检测到之前允许存在所述检测到事件条件的持续时间。
9.根据权利要求8所述的方法,其中所述事件缺乏检测过程包括确定最后检测到的状态是否为在由所述滑动窗口限定的持续时间内已经发生了N个事件,如果是,则执行以下步骤确定所述事件缺乏条件是否已经至少存在了时间量hyst_lack,如果是,则指示已经检测到了所述事件缺乏条件,如果否,则执行以下步骤基于所述时间量hyst_lack对所述第一定时器进行初始化;以及启动所述第一定时器。
10.一种用于检测是否在由滑动时间窗口限定的持续时间内发生了N个以上的事件的装置,该装置包括响应于每一次事件的发生而进行事件检测过程的逻辑,该事件检测过程包括使时间戳与所述事件相关联;基于与所述事件相关联的时间戳和与前面的第N事件相关联的较早时间戳之间的差来确定值DeltaTimeStamp;以及将DeltaTimeStamp与表示由所述滑动时间窗口限定的持续时间的值进行比较,如果比较判据得到满足,则指示检测到事件条件为真,其中所述检测到事件条件被定义为在由所述滑动时间窗口限定的持续时间内发生了N个以上的事件。
11.根据权利要求10所述的装置,该装置包括基于表示由所述滑动时间窗口限定的持续时间的所述值与DeltaTimeStamp之间的差来对定时器进行初始化的逻辑;以及启动所述定时器的逻辑,其中与所述定时器相关联的超时事件调用事件缺乏检测逻辑,该事件缺乏检测逻辑包括指示事件缺乏条件为真的逻辑,其中所述事件缺乏条件被定义为在由所述滑动时间窗口限定的持续时间内发生了N个或更少的事件。
12.根据权利要求11所述的装置,其中基于表示由所述滑动时间窗口限定的持续时间的所述值与DeltaTimeStamp之间的差来对所述定时器进行初始化的所述逻辑包括确定表示由所述滑动时间窗口限定的持续时间的所述值与DeltaTimeStamp之间的差,并且将所述差与表示在所述事件缺乏条件被检测到之前允许存在所述事件缺乏条件的持续时间的迟滞值进行组合的逻辑。
13.根据权利要求11所述的装置,该装置包括在对所述定时器进行初始化之前确保所述定时器停止的逻辑。
14.根据权利要求11所述的装置,其中所述事件是在电信设备中检测到数据块差错。
15.根据权利要求11所述的装置,其中所述事件是在蜂窝通信系统中重新选择小区。
16.根据权利要求15所述的装置,该装置包括响应于所指示的所述检测到事件条件,使用户终端在高移动性状态下工作的逻辑;以及响应于所指示的所述事件缺乏条件,使所述用户终端在低移动性状态下工作的逻辑。
17.一种用于检测是否在由滑动时间窗口限定的持续时间内发生了N个以上的事件的装置,该装置包括响应于每一次事件的发生而执行事件检测过程的逻辑,该事件检测过程包括使时间戳与所述事件相关联;基于与所述事件相关联的时间戳和与前面的第N事件相关联的较早时间戳之间的差来确定值DeltaTimeStamp;将DeltaTimeStamp与表示由所述滑动时间窗口限定的持续时间的值进行比较;确定比较判据是否得到了满足,如果是,则执行以下步骤基于表示由所述滑动时间窗口限定的持续时间的值和DeltaTimeStamp之间的差,对第一定时器进行初始化;启动所述第一定时器;以及确定最后检测到的状态是否为在由所述滑动时间窗口限定的持续时间内还未发生N个事件,如果是,则执行以下步骤基于hysteresis_event值对第二定时器进行初始化;并且启动所述第二定时器,其中,与所述第一定时器相关联的超时事件调用事件缺乏检测过程,该事件缺乏检测过程包括指示已经检测到事件缺乏条件,其中所述事件缺乏条件被定义为在由所述滑动时间窗口限定的持续时间内发生了N个或更少的事件,其中,与所述第二定时器相关联的超时事件调用事件检测过程,该事件检测过程包括指示检测到事件条件为真,其中所述检测到事件条件被定义为在由所述滑动时间窗口限定的持续时间内发生了N个以上的事件,并且,其中所述hysteresis_event值表示在所述检测到事件条件被检测到之前允许存在所述检测到事件条件的持续时间。
18.根据权利要求17所述的装置,其中所述事件缺乏检测过程包括确定最后检测到的状态是否为在由所述滑动窗口限定的持续时间内已经发生了N个事件,如果是,则执行以下步骤确定所述事件缺乏条件是否已经至少存在了时间量hyst_lack,如果是,则指示已经检测到了所述事件缺乏条件,如果否,则执行以下步骤基于所述时间量hyst_lack对所述第一定时器进行初始化;以及启动所述第一定时器。
全文摘要
本发明提供了高分辨率定时器有效滑动窗口。对于在由滑动时间窗口限定的持续时间内是否发生了N个以上事件的检测包括,响应于每一次事件的发生而进行事件检测过程。该事件检测过程包括使时间戳与所述事件相关联,并基于与所述事件相关联的时间戳和与前面的第N事件相关联的较早时间戳之间的差来确定值DeltaTimeStamp。将DeltaTimeStamp与表示由所述滑动时间窗口限定的持续时间的值进行比较,如果比较判据得到满足,则指示检测到事件条件,其中所述检测到事件条件被定义为,在由所述滑动时间窗口限定的持续时间内发生了N个以上的事件。
文档编号H04W36/32GK101036413SQ200580034257
公开日2007年9月12日 申请日期2005年10月5日 优先权日2004年10月6日
发明者阿里·内德 申请人:Lm爱立信电话有限公司