中断抖动的处理方法和设备的利记博彩app

文档序号:6357497阅读:333来源:国知局
专利名称:中断抖动的处理方法和设备的利记博彩app
技术领域
本发明涉及通信技术领域,特别涉及一种中断抖动的处理方法和设备。
背景技术
中断是单片机实时地处理内部或外部事件的一种内部机制。当某种内部或外部事 件发生时,单片机的中断系统将迫使CPU (Central Processing Unit,中央处理器)暂停正 在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继 续执行下去。在实际应用中,设备底层驱动软件的运行,往往是以硬件产生的中断为条件来进 行触发的,硬件所产生的中断通知了驱动软件的各种事件的发生,例如数据的传输事件通 知、硬件异常通知等。为了响应中断的产生,进行中断对应的处理,底层驱动软件需要调用 操作系统或者BSP (Board Support lockage,板级支持软件包)提供的函数,为每一个需要 管理的中断注册一个中断处理程序。此后,当硬件中断产生时,操作系统或BSP会调用驱动 注册的中断处理程序进行处理。当发生异常时,中断有可能以非常高的频度频繁产生,这就可能导致系统不断的 进入中断的处理程序,在严重的情况下,CPU可能除了反复执行中断处理程序之外,已经没 有空闲再去执行其他的程序,此时,就会出现设备的不正常运行,甚至瘫痪。为了克服这样的问题,需要对过渡频繁的中断进行过滤,即中断去抖。在现有技术 提到的中断去抖概念,通常指的是,在中断处理程序及其触发的后续处理流程中,对于中断 的频繁产生进行软件流程的去抖,例如,在键盘输入过程中,由于存在按键的抖动,导致虽 然操作者感觉只是按了一次键,但是处理器接收到的按键事件产生中断却可能有多个,为 了最终将抖动的多次键盘键入识别为一次键入,后续的软件流程可能采用一系列算法进行 去抖。在实现本发明实施例的过程中,申请人发现现有技术至少存在以下问题 现有技术所涉及的中断去抖操作,只能适用于低频的中断抖动(频率通常在10000HZ
以下),这种情况下,CPU仍然有余力执行中断处理程序及其后续软件去抖流程。而如果出现高频的中断抖动(频率通常在10000HZ以上),CPU只能不断被动响应 中断处理程序,已经无力再去处理中断处理程序后续的流程,后续的去抖操作及其正常功 能都已经没有条件再得到执行,设备已经失效甚至瘫痪。对于此种情况,现有技术没有给出有效的保证设备在高频中断抖动的场景下仍然 正常工作的方法。

发明内容
本发明实施例提供一种中断抖动的处理方法和设备,解决现有的无法在高频中断 抖动场景下进行正常处理的问题。为达到上述目的,本发明实施例一方面提供了一种中断抖动的处理方法,包括通过统一中断入口接收所有的中断;
当接收到一个中断时,查询所述中断的接收时间是否处于所述中断的类型所对应的过 滤周期内;
如果查询结果为是,判断在所述过滤周期内接收到的所述类型的中断的次数是否达到 预设的过滤阈值;
如果没有达到,调用所述类型的中断所对应的中断处理程序对所述中断进行处理。另一方面,本发明实施例还提供了一种中断抖动的处理设备,包括 统一中断入口,用于接收所有的中断;
设置模块,用于设置各中断类型所对应的过滤周期和过滤阈值; 查询模块,用于当所述统一中断入口接收到一个中断时,查询所述中断的接收时间是 否处于所述设置模块设置的所述中断的类型所对应的过滤周期内;
判断模块,用于在所述查询模块的查询结果为是时,判断在所述过滤周期内接收到的 所述类型的中断的次数是否达到所述设置模块所设置的过滤阈值;
处理模块,用于在所述判断模块的判断结果为没有达到时,调用所述类型的中断所对 应的中断处理程序对所述中断进行处理。与现有技术相比,本发明实施例具有以下优点
通过应用本发明实施例的技术方案,将所有的中断通过统一中断入口进行接收和判断 处理,只有在确定在相应的过滤周期内接收到的相应类型的中断没有超过预设的过滤阈值 时,才对该中断执行相应的正常处理流程,从而,避免大量的中断抖动对处理资源的占用, 并且,由于通过统一中断入口接收中断,并进行统一的过滤处理,降低了大量冗余的中断处 理对处理器资源的占用,因此,即使在出现高频中断抖动的情况下,依旧可以保证处理器有 足够的资源进行其他正常的业务处理。


图1为本发明实施例提出的一种中断抖动的处理方法的流程示意图2为本发明实施例提出的一种具体应用场景下的中断抖动的处理方法的流程示意
图3为本发明实施例提出的一种中断抖动的处理设备的结构示意图。
具体实施例方式如背景技术所述,在各种设备产品中,底层驱动软件的一项重要工作就是对于硬 件产生的各种中断进行管理。不可避免的,硬件中断在某些异常的情况下存在发生抖动而 频繁产生的可能性(例如,由于虚焊导致的接触不良,或者设备进水导致的硬件故障等),一 旦中断产生的频度达到了一定的量级,就可能导致处理器为了不断对其进行处理,而对正 常的业务运行造成严重的干扰,甚至导致设备瘫痪。这样的情况即为中断抖动,为了克服这样的中断抖动,现有的技术方案主要是由 CPU进行去抖操作,但这样同样会占用处理资源,在抖动频率较高,尤其对于高频的中断抖 动(其频率通常在10000HZ以上,即每IOOus产生1次以上中断)的情况,现有的技术方案需 要占用大量的CPU处理资源,同样可能造成没有足够的处理资源进行其他业务处理,甚至造成设备瘫痪。为了避免这种情况的发生,本发明实施例提出了对中断,尤其是高频抖动的进行 过滤处理的技术方案。本发明实施例针对高频中断去抖的需求,提出了对中断进行过滤处理的技术方 案,其中心思想在于对于需要进行过滤处理的中断进行注册,对于注册了需要过滤处理的 中断,在一定的过滤周期内,无论该中断从硬件上产生多少次,软件上只会对底层驱动软件 注册的该中断处理程序进行有限次数的调用。以保证系统不会因为过多的中断抖动而占用 过多的处理资源。如图1所示,为本发明实施例提出的一种中断抖动的处理方法的流程示意图,该 方法具体包括以下步骤
步骤S101、通过统一中断入口接收所有的中断。统一中断入口的引入主要是为了将所有的中断在上报过程中都经过统一的预处 理,从而实现统一的过滤处理。统一中断入口可以是与后续处理单元相连接的一个逻辑接口,也可以是一个独立 的处理单元,或是一个能够应用相应的处理函数的功能实体,具体物理形态的变化并不会 影响本发明的保护范围。步骤S102、当接收到一个中断时,查询该中断的接收时间是否处于该中断的类型 所对应的过滤周期内。在实际应用中,该中断的类型所对应的过滤周期是预先设定的,即前述的对于需 要进行过滤处理的中断进行注册,并设置相应的过滤周期,在此过滤周期内,无论该中断从 硬件上产生多少次,软件上只会对底层驱动软件注册的该中断处理程序进行有限次数的调用。如果查询结果为是,执行步骤S103 ; 如果查询结果为否,执行步骤S104。在实际应用中,为了在过滤周期内对接收到的中断进行计数,以便进行相应的后 续处理,所以,当查询结果为是时,需要进行计数处理,即将在过滤周期内接收到的该类型 的中断的次数增加1。而相反的,当查询结果为否时,表示当前的过滤周期已经过期,无需再对该类型的 中断进行过滤,因此,将在过滤周期内接收到的该类型的中断的次数清零。步骤S103、判断在过滤周期内接收到的该类型的中断的次数是否达到预设的过滤 阈值。如果没有达到,执行步骤S104 ; 如果已经达到,执行步骤S105。步骤S104、调用该类型的中断所对应的中断处理程序对该中断进行处理。步骤S105、结束对所述中断的处理,放弃调用所述类型的中断所对应的中断处理程序。在实际的应用场景中,对于接收次数达到过滤阈值的中断,一方面,需要执行步骤 S105中的结束处理,放弃调用中断处理程序的操作,从而避免对过多次数的中断进行频繁 处理而造成的系统资源的浪费,另一方面,当一个类型的中断接收次数达到一定的数量后,则需要对该类型的中断进行直接关闭,即系统对此类型的中断直接忽略,不进行任何处理, 不仅不会调用中断处理程序,甚至连前述的步骤S102之后的过滤操作都不会进行,进一步 节省系统资源的开销。具体的关闭方式是为此类型的中断添加关闭标识,凡是添加了关闭 标识的中断类型,系统将对其直接忽略。这样的关闭操作将设定一个关闭时间,在此关闭时间内,系统将屏蔽对该类型的 中断的响应,不会对其进行任何处理。由此可知,中断的关闭过程是在前述的过滤过程的基础上进一步加强的中断过滤 操作,尤其对于高频中断抖动,将起到更好的过滤效果,进一步的节省系统资源。在具体的实施场景中,相应的关闭判定过程如下
在步骤S104判断接收中断的次数已经达到预设的过滤阈值的基础上,进一步判断在 所述过滤周期内接收到的所述类型的中断的次数是否达到预设的告警阈值。如果没有达到,则执行步骤S105,结束对该中断的处理,放弃调用该类型的中断所 对应的中断处理程序。如果达到,则除了执行步骤S105中的处理,关闭该类型的中断,同时,还需要记录 该中断的接收时间,并对该类型的中断设置关闭标识和关闭时间。由于引入了关闭机制,所以,在实际的过滤操作之前,可以优先判断当前是否存在 被关闭的中断,如果有,进一步判断是否已经超过关闭时间,即在步骤S102中查询接收时 间是否处于过滤周期内的操作之前,需要对当前是否有处于关闭状态的中断的类型进行识 别,由于被关闭的中断已经被系统屏蔽,所以,当前的识别过程必然是在其他中断的处理过 程中进行的,只有超过了关闭时间,才会开启该类型的中断,从而,系统才会再响应对该类 型的中断的处理,具体过程如下
当接收到一个中断时,判断是否存在设置关闭标识的中断类型。如果不存在,直接执行步骤S102,启动相应的过滤程序,如果存在,判断当前是否 超过设置关闭标识的中断类型的关闭时间。如果已经超过关闭时间,则删除该关闭标识,开启相应的中断类型的处理过程,在 后续的处理过程中,硬件产生的相应类型的中断才会被响应,才会进行具体的后处理过程, 相反,如果没有超过关闭时间,则不进行任何处理,直接执行步骤S102,继续对当前的中断 进行过滤处理。需要进一步指出的是,如果系统中同时存在需要过滤的中断,以及不需要过滤的 中断,那么,在执行步骤S102的过滤程序之前,需要优先识别是否对当前接收到的中断进 行过滤,具体的处理步骤如下
确定所述中断是否需要进行过滤处理;
如果不需要,调用所述中断所对应的中断处理程序对所述中断进行处理,如果需要,则 执行步骤S102,查询所述中断的接收时间是否处于所述中断的类型所对应的过滤周期内。与现有技术相比,本发明实施例具有以下优点
通过应用本发明实施例的技术方案,将所有的中断通过统一中断入口进行接收和判断 处理,只有在确定在相应的过滤周期内接收到的相应类型的中断没有超过预设的过滤阈值 时,才对该中断执行相应的正常处理流程,从而,避免大量的中断抖动对处理资源的占用, 并且,由于通过统一中断入口接收中断,并进行统一的过滤处理,降低了大量冗余的中断处理对处理器资源的占用,因此,即使在出现高频中断抖动的情况下,依旧可以保证处理器有 足够的资源进行其他正常的业务处理。下面,结合具体的应用场景,对本发明实施例所提出的技术方案进行说明。根据本发明的技术思路,在系统中为所有的中断处理程序设置一个统一的入口。 即所有的中断产生时,首先执行一个统一的处理函数,在该处理函数内,根据中断所对应的 标识(中断号)进行中断的分发,相应的调用驱动所注册的中断处理程序。这个统一的中断处理的入口成为中断过滤处理的决策点。在该决策点可以完成以 下工作
判断当前产生的中断是否是一个需要进行过滤处理的中断。判断当前需过滤处理的中断,在本过滤周期内是否已经产生过,或是否产生过预 定的次数,以及是否可以触发其中断处理程序的调用和执行。判断某个需过滤处理的中断的产生次数是否已经达到告警门限,从而需要对该类 型的中断进行强制关闭。判断一个类型的中断的过滤周期是否到期,从而需要复位所有的需过滤处理的中 断所对应的控制和统计信息。综合以上的各判断处理过程,即可配合完成对中断的过滤功能。为让驱动指示哪些类型的中断需要过滤,及其对应的过滤周期是多长,操作系统 或者BSP可以向驱动软件提供以下的API接口,在本发明实施例中,仅描述该接口的原语描 述
函数原语dntFilterRegister (需要过滤的中断的中断号); 功能指定相对应的中断,并将其注册为需要过滤的中断。函数原语dntFilterTimekt (欲过滤中断的中断号,中断过滤周期); 功能设置指定的需要过滤的中断的过滤周期。函数原语dntLockTimekt (欲过滤中断的中断号,中断告警周期); 功能设置指定的需要过滤的中断的告警周期。当驱动软件调用上面的接口设置一个中断为需要过滤的中断后,在其设定的过滤 周期内,无论硬件产生该中断多少次,相对应的中断处理程序也只会被调用预先限定的次 数,避免对该中断处理程序的频繁调度。下面,详细描述中断的过滤处理过程中的决策点的处理流程。首先,说明与该过滤处理流程相关的变量设计。(I)FLAG [N]。表示各中断是否需要过滤的标志,其中,N表示系统中存在的中断的个数,以下的 其他变量中同样存在此种情况,不再重复说明。(2) T_PERI0D[N]。各中断的过滤周期的长度。(3) T_START[N]。各中断当前的过滤周期的起始时间。(4) COUNT [N]。在当前过滤周期内,硬件已经产生各中断的次数。
(5) THRESHOLD 1 [N]。在同一个过滤周期内,各中断对应的允许调用驱动中断处理程序的最多次数,即 前述的过滤阈值。(6) THRESH0LD2[N]。在同一个过滤周期内,各中断所允许的硬件产生次数的告警门限,一旦中断在一 个过滤周期内产生的次数超出了该告警门限,则该中断将被关闭,即前述的告警阈值。(7) L0CK_FLAG[N]。各中断是否已经被关闭的标志。(8 ) T_L0CK_START [N]。各中断被关闭的起始时间。(9) T_L0CK[N]。 各中断允许关闭的最长时间,即前述的关闭时间。在实际的应用场景中,每个中断都可以具有上述的各个变量,当然,也可以只对其 中的部分中断设置相应的变量,而对其他不涉及相应的限定的中断则不设置相应的变量, 如果一个中断的一个变量为缺省状态,那么,则视为该中断不受此变量所对应的处理规则 的限定。基于上述的变量设定,如图2所示,为本发明实施例所提出的一种具体场景中的 的中断抖动的处理方法的流程示意图,具体包括以下步骤
步骤S201、当硬件中断产生时,该中断进入统一中断入口,交由中断过滤决策程序继续处理。中断过滤决策处理程序引导该中断进入步骤S202。步骤S202、获取当前系统时间CurTime。步骤S203、判断是否存在处于关闭状态的中断。遍历L0CK_FLAG[N],判断L0CK_FLAG[i] (i=0到N_1)是否指示i号中断处于被关 闭的状态。如果存在,执行步骤S204 ; 如果不存在,执行步骤S205。步骤S204、判断处于关闭状态的中断是否达到关闭时间。如果i号中断处于被关闭的状态,则判断(CurTime - T_L0CK_START[i])是否大 于等于i号中断关闭最长时间T_L0CK[i]。如果是,则开启i号中断的处理状态,恢复对i号中断的正常响应,并继续对当前 中断的处理。如果否,则不做任何操作,继续对当前中断的处理。由于i号中断处于关闭状态,其产生不会被系统感知,因此,上述的判断过程实际 上发生在其他中断的处理过程中,当遍历完所有中断并完成相应处理后,进入步骤S205。步骤S205、判断当前中断是否需要过滤。设本次接收到的中断的中断号为j,那么,可以根据FLAG[j]判断当前中断是否需 要过滤。如果需要过滤,则执行步骤S206 ;否则,如果不需要过滤,则执行步骤S210。步骤S206、判断当前中断的过滤周期是否到期。本次中断的中断号为j,则本步骤的处理过程为判断(CurTime - T_START[j])是 否大于等于T_PERI0D[j]。如果是,即过滤周期到期,则执行步骤S207 ; 如果否,即过滤周期没有到期,则执行步骤S208。步骤S207、对该中断进行计数清零。如果(CurTime - T_START[j])大于等于T_PERI0D[j],即当前中断的过滤周期到 期了,将C0UNT[j]清零,之后,执行步骤S209。步骤S208、继续对该中断进行计数。如果(CurTime - T_START[j])小于T_PERI0D[j],即当前中断的过滤周期没有到 期,则COUNT [j]加1,之后,执行步骤S209。步骤S209、判断该中断在本过滤周期内的产生次数是否达到过滤阈值。即判断 COUNT [j]是否大于等于 THRESH0LD1 [j]。如果没有达到,则说明当前中断在本过滤周期内产生的次数还没有超出过滤阈 值,执行步骤S210;
如果已经达到,则说明当前中断在本过滤周期内产生的次数已经超出了过滤阈值,不 应再调用驱动注册的中断处理程序,执行步骤S211。步骤S210、调用驱动注册的该中断的中断处理程序,进行相应的中断处理。步骤S211、判断该中断在本过滤周期内的产生次数是否达到告警阈值。即判断 COUNT [j]是否大于等于 THRESH0LD2 [j]。如果达到,则执行步骤S212 ;
如果没有达到,则不做任何操作,该中断处理流程结束。步骤S212、关闭当前中断,并在T_L0CK_START[j]中记录当前时间。与现有技术相比,本发明实施例具有以下优点
通过应用本发明实施例的技术方案,将所有的中断通过统一中断入口进行接收和判断 处理,只有在确定在相应的过滤周期内接收到的相应类型的中断没有超过预设的过滤阈值 时,才对该中断执行相应的正常处理流程,从而,避免大量的中断抖动对处理资源的占用, 并且,由于通过统一中断入口接收中断,并进行统一的过滤处理,降低了大量冗余的中断处 理对处理器资源的占用,因此,即使在出现高频中断抖动的情况下,依旧可以保证处理器有 足够的资源进行其他正常的业务处理。为了实现本发明实施例的技术方案,本发明实施例还提供了一种中断抖动的处理 设备,其结构示意图如图3所示,具体包括
统一中断入口 31,用于接收所有的中断;
设置模块32,用于设置各中断类型所对应的过滤周期和过滤阈值; 查询模块33,用于当所述统一中断入口 31接收到一个中断时,查询所述中断的接收时 间是否处于所述设置模块32设置的所述中断的类型所对应的过滤周期内;
判断模块34,用于在所述查询模块33的查询结果为是时,判断在所述过滤周期内接收 到的所述类型的中断的次数是否达到所述设置模块32所设置的过滤阈值;处理模块35,用于在所述判断模块34的判断结果为没有达到时,调用所述类型的中断 所对应的中断处理程序对所述中断进行处理。其中,所述设置模块32,还用于设置需要进行过滤处理的中断的类型;
所述查询模块33,还用于在查询所述统一中断入口 31接收到的中断的接收时间是否 处于所述中断的类型所对应的过滤周期内之前,确定所述中断是否需要进行过滤处理,如 果需要,则查询所述中断的接收时间是否处于所述中断的类型所对应的过滤周期内;
所述处理模块35,还用于在所述查询模块33确定所述中断不需要进行过滤处理时,调 用所述中断所对应的中断处理程序对所述中断进行处理。另一方面,所述处理模块35,还用于在所述查询模块33的查询结果为否时,调用 所述类型的中断所对应的中断处理程序对所述中断进行处理。进一步的,该处理设备还包括
计数模块36,用于对所述统一中断入口 31在所述设置模块32所设置的过滤周期内接 收到的所述类型的中断进行计数,其中,当所述查询模块33查询所述中断的接收时间处于 所述中断的类型所对应的过滤周期内时,将在所述过滤周期内接收到的所述类型的中断的 次数增加1,或当所述查询模块33查询所述中断的接收时间没有处于所述中断的类型所对 应的过滤周期内时,将在所述过滤周期内接收到的所述类型的中断的次数清零。另一方面,所述处理模块35,还用于在所述判断模块34判断在所述过滤周期内接 收到的所述类型的中断的次数已经达到预设的过滤阈值时,结束对所述统一中断入口 31 所接收到的中断的处理,放弃调用所述类型的中断所对应的中断处理程序。其中,所述设置模块32,还用于设置告警阈值和最长中断关闭时间;
所述处理模块35,还用于当所述判断模块34判断在所述过滤周期内接收到的所述类 型的中断的次数已经达到预设的过滤阈值时,判断在所述过滤周期内接收到的所述类型的 中断的次数是否达到设置模块32设置的告警阈值,如果没有达到,结束对所述中断的处 理,放弃调用所述类型的中断所对应的中断处理程序,如果达到,关闭所述类型的中断,记 录所述中断的接收时间,并对所述类型的中断设置关闭标识和关闭时间。相应的,所述查询模块33,还用于在查询所述统一中断入口 31接收到的中断的接 收时间是否处于所述中断的类型所对应的过滤周期内之前,判断是否存在设置关闭标识的 中断类型,如果存在,判断当前是否超过设置关闭标识的中断类型的关闭时间,如果已经超 过,删除所述关闭标识,开启所述中断类型的处理。与现有技术相比,本发明实施例具有以下优点
通过应用本发明实施例的技术方案,将所有的中断通过统一中断入口进行接收和判断 处理,只有在确定在相应的过滤周期内接收到的相应类型的中断没有超过预设的过滤阈值 时,才对该中断执行相应的正常处理流程,从而,避免大量的中断抖动对处理资源的占用, 并且,由于通过统一中断入口接收中断,并进行统一的过滤处理,降低了大量冗余的中断处 理对处理器资源的占用,因此,即使在出现高频中断抖动的情况下,依旧可以保证处理器有 足够的资源进行其他正常的业务处理。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例 可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理 解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计 算机设备(可以是个人计算机,服务器,或网络设备等)执行本发明实施例各个实施场景所 述的方法。本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或 流程并不一定是实施本发明实施例所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进 行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装 置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本发明实施例的几个具体实施场景,但是,本发明实施例并非局 限于此,任何本领域的技术人员能思之的变化都应落入本发明实施例的业务限制范围。
权利要求
1.一种中断抖动的处理方法,其特征在于,包括通过统一中断入口接收所有的中断;当接收到一个中断时,查询所述中断的接收时间是否处于所述中断的类型所对应的过 滤周期内;如果查询结果为是,判断在所述过滤周期内接收到的所述类型的中断的次数是否达到 预设的过滤阈值;如果没有达到,调用所述类型的中断所对应的中断处理程序对所述中断进行处理。
2.如权利要求1所述的方法,其特征在于,所述查询所述中断的接收时间是否处于所 述中断的类型所对应的过滤周期内之前,还包括确定所述中断是否需要进行过滤处理;如果不需要,调用所述中断所对应的中断处理程序对所述中断进行处理,如果需要,则 查询所述中断的接收时间是否处于所述中断的类型所对应的过滤周期内。
3.如权利要求1所述的方法,其特征在于,所述查询所述中断的接收时间是否处于所 述中断的类型所对应的过滤周期内之后,还包括如果查询结果为否,调用所述类型的中断所对应的中断处理程序对所述中断进行处理。
4.如权利要求1或3所述的方法,其特征在于,所述查询所述中断的接收时间是否处于 所述中断的类型所对应的过滤周期内之后,还包括如果查询结果为是,将在所述过滤周期内接收到的所述类型的中断的次数增加1 ;如果查询结果为否,将在所述过滤周期内接收到的所述类型的中断的次数清零。
5.如权利要求1所述的方法,其特征在于,所述判断在所述过滤周期内接收到的所述 类型的中断的次数是否达到预设的过滤阈值之后,还包括如果已经达到,结束对所述中断的处理,放弃调用所述类型的中断所对应的中断处理 程序。
6.如权利要求5所述的方法,其特征在于,如果在所述过滤周期内接收到的所述类型 的中断的次数已经达到预设的过滤阈值,还包括判断在所述过滤周期内接收到的所述类型的中断的次数是否达到预设的告警阈值;如果没有达到,结束对所述中断的处理,放弃调用所述类型的中断所对应的中断处理 程序;如果达到,关闭所述类型的中断,记录所述中断的接收时间,并对所述类型的中断设置 关闭标识和关闭时间。
7.如权利要求6所述的方法,其特征在于,所述查询所述中断的接收时间是否处于所 述中断的类型所对应的过滤周期内之前,还包括当接收到一个中断时,判断是否存在设置关闭标识的中断类型;如果存在,判断当前是否超过设置关闭标识的中断类型的关闭时间;如果已经超过,删除所述关闭标识,开启所述中断类型的处理。
8.—种中断抖动的处理设备,其特征在于,包括统一中断入口,用于接收所有的中断;设置模块,用于设置各中断类型所对应的过滤周期和过滤阈值;查询模块,用于当所述统一中断入口接收到一个中断时,查询所述中断的接收时间是 否处于所述设置模块设置的所述中断的类型所对应的过滤周期内;判断模块,用于在所述查询模块的查询结果为是时,判断在所述过滤周期内接收到的 所述类型的中断的次数是否达到所述设置模块所设置的过滤阈值;处理模块,用于在所述判断模块的判断结果为没有达到时,调用所述类型的中断所对 应的中断处理程序对所述中断进行处理。
9.如权利要求8所述的设备,其特征在于,所述设置模块,还用于设置需要进行过滤处 理的中断的类型;所述查询模块,还用于在查询所述统一中断入口接收到的中断的接收时间是否处于所 述中断的类型所对应的过滤周期内之前,确定所述中断是否需要进行过滤处理,如果需要, 则查询所述中断的接收时间是否处于所述中断的类型所对应的过滤周期内;所述处理模块,还用于在所述查询模块确定所述中断不需要进行过滤处理时,调用所 述中断所对应的中断处理程序对所述中断进行处理。
10.如权利要求8所述的设备,其特征在于,所述处理模块,还用于在所述查询模块的 查询结果为否时,调用所述类型的中断所对应的中断处理程序对所述中断进行处理。
11.如权利要求8或10所述的设备,其特征在于,还包括计数模块,用于对所述统一中断入口在所述设置模块所设置的过滤周期内接收到的所 述类型的中断进行计数,其中,当所述查询模块查询所述中断的接收时间处于所述中断的 类型所对应的过滤周期内时,将在所述过滤周期内接收到的所述类型的中断的次数增加1, 或当所述查询模块查询所述中断的接收时间没有处于所述中断的类型所对应的过滤周期 内时,将在所述过滤周期内接收到的所述类型的中断的次数清零。
12.如权利要求8所述的设备,其特征在于,所述处理模块,还用于在所述判断模块判 断在所述过滤周期内接收到的所述类型的中断的次数已经达到预设的过滤阈值时,结束对 所述统一中断入口所接收到的中断的处理,放弃调用所述类型的中断所对应的中断处理程 序。
13.如权利要求12所述的设备,其特征在于,所述设置模块,还用于设置告警阈值和最长中断关闭时间;所述处理模块,还用于当所述判断模块判断在所述过滤周期内接收到的所述类型的 中断的次数已经达到预设的过滤阈值时,判断在所述过滤周期内接收到的所述类型的中断 的次数是否达到预设的告警阈值,如果没有达到,结束对所述中断的处理,放弃调用所述类 型的中断所对应的中断处理程序,如果达到,关闭所述类型的中断,记录所述中断的接收时 间,并对所述类型的中断设置关闭标识和关闭时间。
14.如权利要求13所述的设备,其特征在于,所述查询模块,还用于在查询所述统一中断入口接收到的中断的接收时间是否处于所 述中断的类型所对应的过滤周期内之前,判断是否存在设置关闭标识的中断类型,如果存 在,判断当前是否超过设置关闭标识的中断类型的关闭时间,如果已经超过,删除所述关闭 标识,开启所述中断类型的处理。
全文摘要
本发明实施例公开了一种中断抖动的处理方法和设备,通过应用本发明实施例的技术方案,将所有的中断通过统一中断入口进行接收和判断处理,只有在确定在相应的过滤周期内接收到的相应类型的中断没有超过预设的过滤阈值时,才对该中断执行相应的正常处理流程,从而,避免大量的中断抖动对处理资源的占用,并且,由于通过统一中断入口接收中断,并进行统一的过滤处理,降低了大量冗余的中断处理对处理器资源的占用,因此,即使在出现高频中断抖动的情况下,依旧可以保证处理器有足够的资源进行其他正常的业务处理。
文档编号G06F9/48GK102135912SQ20111008330
公开日2011年7月27日 申请日期2011年4月2日 优先权日2011年4月2日
发明者蒋石竹 申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1