首页> 中国专利> 多核系统中定时器的实现方法及多核系统

多核系统中定时器的实现方法及多核系统

摘要

本发明公开了一种多核系统中定时器的实现方法及多核系统,该方法包括以下步骤:需要创建定时器的内核根据定时器的时长和多核系统中每个内核对应的定时时间间隔,确定在定时器的时长之内需要进行处理的内核的处理顺序;需要进行处理的内核按照处理顺序和定时时间间隔依次进行处理。通过本发明有利于多核系统的均衡处理,提高了系统的可靠性和稳定性。

著录项

  • 公开/公告号CN102012718A

    专利类型发明专利

  • 公开/公告日2011-04-13

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201010555937.7

  • 发明设计人 赵阳;

    申请日2010-11-15

  • 分类号G06F1/10(20060101);G06F15/163(20060101);

  • 代理机构11240 北京康信知识产权代理有限责任公司;

  • 代理人余刚;吴孟秋

  • 地址 518057 广东省深圳市南山区科技南路55号

  • 入库时间 2023-12-18 02:09:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-12-10

    授权

    授权

  • 2012-06-27

    实质审查的生效 IPC(主分类):G06F1/10 申请日:20101115

    实质审查的生效

  • 2011-04-13

    公开

    公开

说明书

技术领域

本发明涉及计算机操作系统领域,尤其涉及多核系统中定时器的实现方法及多核系统。

背景技术

在多核系统中,通常存在对称多处理和非对称多处理应用模式,而其处理器硬件所提供的定时器机制与以往的单核处理器并无差异。随着多核系统各种应用模式的出现以及业务复杂度的增加,由于在多核系统中没有统一的定时器实现机制,各种业务应用往往存在运行效率低、系统可靠性低的问题。

在相关技术中,提供了一种关于非对称多处理系统中定时器的实现方法,其将所有定时器集中在控制面CPU上处理,这样,随着定时器数量的增加,控制面CPU负载会大大增加。并且该方法在定时器超时后,控制面CPU是通过消息机制来通知目的CPU的,若该消息丢失或延时,则系统的可靠性也会降低。

发明内容

本发明的主要目的在于提供一种多核系统中定时器的实现方案,以至少解决上述的多核系统中由于所有定时器集中在一个CPU上处理而导致系统性能较低的问题。

为了实现上述目的,根据本发明的一个方面,提供了一种多核系统中定时器的实现方法。

根据本发明的多核系统中定时器的实现方法,包括以下步骤:需要创建定时器的内核根据定时器的时长和多核系统中每个内核对应的定时时间间隔,确定在定时器的时长之内需要进行处理的内核的处理顺序;需要进行处理的内核按照处理顺序和定时时间间隔依次进行处理。

进一步地,确定在定时器的时长之内需要进行处理的内核的处理顺序之前,该方法还包括:多核系统中每个内核根据与其对应的定时时间间隔分别建立各自的定时器处理链表。

进一步地,需要进行处理的内核按照处理顺序和定时时间间隔依次进行处理包括:需要创建定时器的内核生成定时器的表项,并按照处理顺序将定时器的表项依次添加到需要进行处理的内核的定时器处理链表中进行处理,其中,定时器的表项包括以下至少之一:定时器的剩余时间、需要创建定时器的内核、处理顺序。

进一步地,按照处理顺序将定时器的表项依次添加到需要进行处理的内核的定时器处理链表中进行处理包括:需要进行处理的内核处理存储在本内核的定时器处理链表中的定时器的表项。

进一步地,按照处理顺序将定时器的表项依次添加到需要进行处理的内核的定时器处理链表中进行处理包括:需要创建定时器的内核将定时器的表项添加到处理顺序中最先进行处理的内核的定时器处理链表之后,定时器的剩余时间开始递减;最先进行处理的内核根据定时时间间隔更新定时器的剩余时间,并根据更新后的定时器的剩余时间将定时器的表项添加到处理顺序中最先进行处理的内核的下一个处理内核的定时器处理链表中进行处理。

进一步地,确定在定时器的时长之内需要进行处理的内核的处理顺序包括:将需要创建定时器的内核作为处理顺序中最后一个处理内核。

进一步地,需要进行处理的内核按照处理顺序和定时时间间隔依次进行处理包括:需要进行处理的内核进行处理时,判断当前是否需要停止或删除定时器;若是,则废弃定时器。

进一步地,需要进行处理的内核按照处理顺序和定时时间间隔依次进行处理包括:在定时器的剩余时间为零时,定时器超时。

为了实现上述目的,根据本发明的另一个方面,还提供了一种多核系统。

根据本发明的多核系统,包括多个内核,其中,多个内核中每个内核包括:计算模块,用于根据需要创建定时器的时长和多核系统中每个内核对应的定时时间间隔,确定在定时器的时长之内需要进行处理的内核的处理顺序;执行模块,用于按照处理顺序和定时时间间隔执行与定时器对应的处理。

进一步地,多个内核中每个内核还包括:判断模块,用于判断当前是否需要停止或删除定时器;结束模块,用于在判断模块确定当前需要停止或删除定时器的情况下,废弃定时器。

通过本发明,采用多个内核分布式协同处理定时器的方式,解决了多核系统中由于所有定时器集中在一个CPU上处理而导致系统性能较低的问题,有利于多核系统的均衡处理,提高了系统的可靠性和稳定性。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的多核系统中定时器的实现方法的流程图;

图2是根据本发明实施例的多核系统的结构框图;

图3是根据本发明优选实施例的多核系统的结构框图;

图4是根据本发明优选实施例二的创建定时器的示意图;

图5是根据本发明优选实施例二的经过3ms后的示意图;

图6是根据本发明优选实施例二的定时器到达时的示意图;

图7是根据本发明优选实施例三的多核系统中定时器的实现方法的流程图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

根据本发明的实施例,提供了一种多核系统中定时器的实现方法,图1是根据本发明实施例的多核系统中定时器的实现方法的流程图,如图1所示,该方法包括以下步骤:

步骤S102,需要创建定时器的内核根据定时器的时长和多核系统中每个内核对应的定时时间间隔,确定在定时器的时长之内需要进行处理的内核的处理顺序;

步骤S104,需要进行处理的内核按照处理顺序和该定时时间间隔依次进行处理。

通过上述步骤,采用多个内核分布式协同处理定时器的方式,解决了多核系统中由于所有定时器集中在一个CPU上处理而导致系统性能较低的问题,有利于多核系统的均衡处理,提高了系统的可靠性和稳定性。

需要说明的是,定时时间间隔可以用于指示内核可以实现的定时器的时间粒度,在具体实施过程中,也可以对该定时时间间隔与多核系统中每个内核的对应关系进行配置。

优选地,在步骤S102之前,多核系统中每个内核可以根据与其对应的定时时间间隔分别建立各自的定时器处理链表。这样可以提高系统的灵活性和处理能力。

例如,一个多核系统包括5个内核,在系统初始化后,将内核1对应的定时时间间隔设定为10ms,内核2对应的定时时间间隔设定为1ms,内核3对应的定时时间间隔设定为5ms,内核4对应的定时时间间隔设定为20ms,内核5对应的定时时间间隔设定为2000ms,每个内核分别创建与自身的定时时间间隔相对应的定时器处理链表。

优选地,在步骤S104中,需要创建定时器的内核生成定时器的表项,并按照处理顺序将定时器的表项依次添加到需要进行处理的内核的定时器处理链表中进行处理,其中,定时器的表项包括以下至少之一:定时器的剩余时间、需要创建定时器的内核、处理顺序。该方法实现简单、可操作性强。

优选地,按照处理顺序将定时器的表项依次添加到需要进行处理的内核的定时器处理链表中进行处理包括:需要进行处理的内核处理存储在本内核的定时器处理链表中的定时器的表项。该方法可以利用多个内核协同实现需要创建的定时器,使得系统可以均衡处理,提高了系统的性能。

在具体实施过程中,多核系统中每个内核本地的定时器处理链表中可以存储所有内核需要创建的定时器的表项。例如,内核1的定时器处理链表中有两个定时器的表项,一个是内核2中的定时器T1的表项,一个是内核1的定时器T3的表项。

优选地,按照处理顺序将定时器的表项依次添加到需要进行处理的内核的定时器处理链表中进行处理包括:需要创建定时器的内核将定时器的表项添加到处理顺序中最先进行处理的内核的定时器处理链表之后,定时器的剩余时间开始递减;最先进行处理的内核根据其定时时间间隔更新定时器的剩余时间,并根据更新后的定时器的剩余时间将定时器的表项添加到处理顺序中最先进行处理的内核的下一个处理内核的定时器处理链表中进行处理。该方法可以使得定时器的实现过程有序进行,提高了系统的准确性和有效性。

优选地,确定在定时器的时长之内需要进行处理的内核的处理顺序包括:将需要创建定时器的内核作为处理顺序中最后一个处理内核。

优选地,在步骤S104中,需要进行处理的内核进行处理时,判断当前是否需要停止或删除定时器;若是,则废弃定时器。

在具体实施过程中,可以在需要创建的定时器完成之后废弃该定时器,也可以在实现该定时器的过程中,废弃该定时器。例如,在多核系统中有一个共享内存,用于存储停止或删除某个定时器的标识信息,多核系统中每个内核在处理其定时器处理链表中的定时器的表项时,通过共享内存判断当前是否需要停止或删除正在执行的定时器的表项。

优选地,在步骤S104中,在定时器的剩余时间为零时,定时器超时。该方法可以实现简单、可操作性强。

例如,上述包括5个内核的多核系统,内核2中需要创建一个时长为12ms的定时器,则需要进行处理的内核可以是内核1和内核2。在具体实施过程中,可以是内核2确定实现该定时器(t=12ms)时长内的处理顺序依次为内核1至内核2后,生成定时器的表项,其中,该定时器的表项可以包括定时器的剩余时间(t=12ms)、需要创建定时器的内核(内核2)、处理顺序(内核1->内核2);然后,内核2将该定时器的表项添加(即,挂入)到内核1的定时器处理链表中,内核1检测到该定时器的表项后,将该表项中定时器的剩余时间递减,当定时器的剩余时间减少到2ms时,内核1将该定时器的表项添加到内核2的定时器处理链表中,内核2检测到该定时器的表项后,将该表项中定时器的剩余时间(t=2ms)递减,当定时器的剩余时间为0时,内核2中的该定时器(t=12ms)创建完成。

对应于上述方法,本发明实施例还提供了一种多核系统,图2是根据本发明实施例的多核系统的结构框图,如图2所示,该多核系统20包括多个内核,其中,多个内核中每个内核22包括:计算模块222,用于根据需要创建定时器的时长和多核系统中每个内核对应的定时时间间隔,确定在定时器的时长之内需要进行处理的内核的处理顺序;执行模块224,耦合至计算模块222,用于按照处理顺序和该定时时间间隔执行与定时器对应的处理。

通过上述步骤,采用多个内核分布式协同处理定时器的方式,解决了多核系统中由于所有定时器集中在一个CPU上处理而导致系统性能较低的问题,有利于多核系统的均衡处理,提高了系统的可靠性和稳定性。

图3是根据本发明优选实施例的多核系统的结构框图,多个内核中每个内核22还包括:判断模块226,用于判断当前是否需要停止或删除定时器;结束模块228,耦合至判断模块226,用于在判断模块226确定当前需要停止或删除定时器的情况下,废弃定时器。

需要说明的是,多核系统20在具体实施过程中可以对应于上述的方法实施例,在方法实施例中已经进行过的说明在此不再赘述。

下面结合优选实施例和附图对上述实施例的实现过程进行详细说明

优选实施例一

本实施例中,为克服在多核系统应用中缺少统一的、可靠的定时器实现机制,提供了一种在多核系统中定时器的实现方法,该方法包括以下步骤:

步骤1,系统初始化,多核处理系统中的每个内核分别在共享内存中建立相应的定时器处理链表,每个定时器处理链表分别对应相应的时间间隔。

步骤2,创建定时器,需要创建定时器的内核首先申请定时器控制块,根据各内核对应的定时器间隔进行计算,将定时器分成各定时器链表所对应间隔的组合。

步骤3,添加定时器,按照最后加入本内核的原则,根据计算得到的组合顺序将其加入相应的定时器链表中。这样,有利于避免定时器消息的发送。

步骤4,删除、停止定时器。例如,在需要删除或停止定时器时,在本内核设置相应的屏蔽状态,当需要删除或停止的定时器添加到本内核对应的链表中待处理时,废弃相应的定时器。

可见,采用本发明实施例可以克服相关技术中在多核系统中缺少统一的、可靠地定时器实现机制的缺点,同时利用多个内核协同处理定时器,有利于系统的负载均衡,提高系统的可靠性。

优选实施例二

以多核系统中包含4个CPU为例,详细对本发明实施例的多核系统中定时器的实现方法进行说明。假设4个CPU分别对应1ms、10ms、100ms、1000ms(即,定时时间间隔)的定时器链表,CPU1和CPU3分别创建一个定时器,定时器时长分别为303ms和1323ms。

图4是根据本发明优选实施例二的创建定时器的示意图,如图4所示,CPU1创建的303ms定时器的表项和CPU3创建的1323ms定时器的表项按照内核的处理顺序,首先添加到队列0中(即,CPU0对应的定时器处理链表)进行处理。因为计算定时器添加顺序时,CPU1创建的303ms定时器分别对应CPU0和CPU2的定时器处理队列(即,定时器处理链表),因此,添加顺序为队列0、队列2和队列1。同理,CPU3创建的1323ms定时器的添加顺序为队列0、队列1、队列2和队列3。

图5是根据本发明优选实施例二的经过3ms后的示意图,如图5所示,当经过3ms后,CPU1创建的303ms定时器添加到队列2中,定时器的剩余时间更新为300ms,再经过300ms到时后添加到CPU1的定时器处理队列(即,队列1)中;CPU3创建的1323ms定时器添加到队列1中,定时器的剩余时间更新为1320ms,再经过20ms后添加到队列2中。

图6是根据本发明优选实施例二的定时器到达时的示意图,如图6所示,CPU1创建的303ms定时器当CPU1判断剩余时间为0,并且目标CPU为自己时,表明设置的定时器超时;CPU3创建的1323ms定时器,再经过300ms添加到队列3中,经过1000ms到时后,由于已在CPU3的定时器处理队列中,当CPU3判断剩余时间为0,并且目标CPU为自己时,表明设置的定时器超时。

在具体实施过程中,如需删除或停止定时器,则可以在相应的CPU定时器处理链表中废弃相应的定时器,设置屏蔽禁止目标CPU对超时的定时器做有效处理即可。

可见,本发明优选实施例采用了多个CPU对应多个链表的方式来实现定时器的处理,有效分担地处理负载,提高了可靠性;并且,通过链表指针的操作在定时器链表中移动,可以避免相关技术中消息的丢失的情况发生。

优选实施例三

图7是根据本发明优选实施例三的多核系统中定时器的实现方法的流程图,如图7所示,该方法可以包括以下处理步骤:

步骤S702,系统初始化,创建各CPU对应的定时器处理链表。

步骤S704,根据所需创建的定时器时长计算添加顺序,挂入相应的定时器处理链表中。

步骤S706,各CPU定时处理相应链表的定时器,并根据定时器剩余时间添加到相应的定时器链表中。

步骤S708,各CPU判断其定时队列是否有超时,即,各CPU判断是否有超时定时器待处理。若有,则进入步骤S710,否则进入步骤S706继续处理。

步骤S710,判断该定时器是否被屏蔽。如果该定时器被屏蔽,则丢弃对该定时器的进一步处理,释放定时器资源;否则,进入步骤S712。

步骤S712,处理该定时器。例如,可以依次处理CPU上挂接的所有定时器,以CPU对应的定时器间隔递减定时器的剩余时间,当定时器与CPU对应间隔的数值递减为0时,如果定时器的剩余时间不为0,则根据定时器的挂接顺序挂接到下一个CPU的处理链表中;如果定时器剩余时间为0,则表明定时器到时。

综上所述,通过本发明实施例采用多个内核分布式协同处理定时器的方式,解决了多核系统中由于所有定时器集中在一个CPU上处理而导致系统性能较低的问题,有利于多核系统的均衡处理,提高了系统的可靠性和稳定性。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号