队列管理方法及装置的制作方法

文档序号:7865883阅读:233来源:国知局
专利名称:队列管理方法及装置的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种队列管理方法及装置。
背景技术
在数据通信领域,对数据产品的服务质量越来越高,因此对支持的队列数、带宽、 步进粒度等流量管理的技术指标提出了更高的要求。
流量管理系统的结构框图如图I所示,包括线侧组件,队列管理组件和缓存管理组件。
队列管理组件为报文入队分配缓存空间,对报文出队进行调度。如果某个队列有报文并且授权出队时,报文可进行出队调度,因此队列管理系统需要对每个队列的报文数分别进行统计。当前流量管理系统需要支持的队列数越来越多,为了节省片内静态随机存取存储器(Static Random Access Memory,简称为SRAM)资源,一般会将各个队列报文数的统计结果存储在外部QDR SRAM中。由于系统带宽要求越来越高,短包处理的时钟间隔越来越短,当短包处理时钟间隔小于QDR SRAM读延迟所需的时钟周期时,QDR SRAM中的报文数统计无法及时读出,导致无法及时地判断出是否可以再次出队,进而导致短包处理速率达不到系统带宽要求的问题。
针对相关技术中上述至少之一的问题,目前尚未提出有效的解决方案。发明内容
本发明提供了一种队列管理方法及装置,以至少解决相关技术中短包处理速率达不到系统带宽要求的问题。
根据本发明的一个方面,提供了一种队列管理方法,其包括获取当前出队的队列的报文概数,其中,上述报文概数存储在队列管理组件内部,上述报文概数用于指示上述队列中当前有的报文数目的状态;根据上述报文概数判断上述队列允许再次出队的次数。
优选地,上述状态包括以下之一上述报文概数等于O、上述报文概数等于I至N 中任意一个数,上述报文概数大于上述N,其中,上述N为获取上述队列中当前有的报文数目所需的时钟周期允许上述队列出队的次数,上述报文数目存储在上述队列管组件的外部。
优选地,根据上述报文概数判断上述队列允许再次出队的次数包括上述报文概数大于I的情况下,判断出上述队列允许再次出队一次;上述报文概数大于2的情况下,判断出上述队列允许再次出队二次;依次判断,上述报文概数大于上述N的情况下,判断出上述队列允许再次出队N次。
优选地,上述方法还包括判断出上述队列允许再次出队的情况下,将上述报文数目减去判断出的上述队列允许再次出队的次数,并根据更新后的报文数目重新确定上述报文概数指示的状态。
优选地,上述方法还包括上述队列入队的情况下,将上述报文概数加上1,将上述报文数目加上I。
根据本发明的另一方面,提供了一种队列管理装置,其包括获取模块,用于获取当前出队的队列的报文概数,其中,上述报文概数存储在队列管理组件内部,上述报文概数用于指示上述队列中当前有的报文数目的状态;判断模块,用于根据上述报文概数判断上述队列允许再次出队的次数。
优选地,上述状态包括以下之一上述报文概数等于O、上述报文概数等于I至N 中任意一个数,上述报文概数大于上述N,其中,上述N为获取上述队列中当前有的报文数目所需的时钟周期允许上述队列出队的次数,上述报文数目存储在上述队列管组件的外部。
优选地,上述判断模块包括第一判断单元,用于上述报文概数大于I的情况下, 判断出上述队列允许再次出队一次;第二判断单元,上述报文概数大于2的情况下,判断出上述队列允许再次出队二次;第N判断单元,用于上述报文概数大于N的情况下,判断出上述队列允许再次出队N次。
优选地,上述队列管理装置还包括第一处理模块,用于判断出上述队列允许再次出队的情况下,将上述报文数目减去判断出的上述队列允许再次出队的次数,并根据更新后的报文数目重新确定上述报文概数指示的状态。
优选地,上述队列管理装置还包括第二处理模块,用于上述队列入队的情况下, 将上述报文概数加上I,将上述报文数目加上I。
在本发明中,通过获取当前出队的队列的报文概数,该报文概数存储在队列管理组件内部,所述报文概数用于指示所述队列中当前有的报文数目的状态,并根据所述报文概数判断所述队列允许再次出队的次数,实现了可以快速地获取报文概数,来及时地判断出允许再次出队的次数,缩短了判断是否允许再次出队所需的时间,从而提高了队列出队 (短包处理)的效率,有助于提高流量管理系统的性能。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中
图I是根据相关技术的流量管理系统的结构框图2是根据本发明实施例的队列管理方法流程图3是根据本发明实施例的队列管理装置的结构框图4是根据本发明实施例的使用上述队列管理装置的流量管理系统的结构框图5是根据本发明实施例的使用上述队列管理方法时入队处理流程的示意图6是根据本发明实施例的使用上述队列管理方法时出队处理流程的示意。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本实施例提供了一种队列管理方法,如图2所示,该队列管理方法包括步骤S202 至步骤S204。
步骤S202 :获取当前出队的队列的报文概数,其中,上述报文概数存储在队列管理组件内部,上述报文概数用于指示上述队列中当前有的报文数目的状态。
步骤S204 :根据上述报文概数判断上述队列允许再次出队的次数。
通过上述步骤,通过获取当前出队的队列的报文概数,该报文概数存储在队列管理组件内部,所述报文概数用于指示所述队列中当前有的报文数目的状态,并根据所述报文概数判断所述队列允许再次出队的次数,实现了可以快速地获取报文概数,来及时地判断出允许再次出队的次数,缩短了判断是否允许再次出队所需的时间,从而提高了队列出队(短包处理)的效率,有助于提高流量管理系统的性能。
为了减少队列管理组件片内的存储资源的占用,在本优选实施例中,上述状态包括以下之一上述报文概数等于O、上述报文概数等于I至N中任意一个数,上述报文概数大于上述N,其中,上述N为获取上述队列中当前有的报文数目所需的时钟周期允许上述队列出队的次数,上述报文数目存储在上述队列管组件的外部。为了减少存储资源的占用,上述报文概数的状态可以采用bits的形式来存储,例如,当N=I时,需要存储报文概数的状态包括以下之一报文概数=0,报文概数=1,报文概数>1,因此可以采用2bit的形式存储, 2’ b00来表示无报文(报文概数=0),以2’ b01来表示有I个报文(报文概数=1),以2’ blO 来表示有I个以上报文(报文概数>1);而当N=2时,需要存储报文概数的状态包括以下之一报文概数=0,报文概数=1,报文概数=2,报文概数>2,因此可以采用2bit的形式存储, 2’b00来表示无报文,以2’b01来表示有I个报文,以2’blO来表示有2个报文,以2 ‘bll 来表示有2个以上的报文;而当N=3时报文概数的状态包括以下之一报文概数=0,报文概数=1,报文概数=2,报文概数=3,报文概数>3,此时可以采用3bit的形式存储,3’ b000来表示无报文,以3’ b001来表示有I个报文,以3’ b010来表示有2个报文,以3’ bOll来表示有3个报文,以3 ‘bl00来表示有3个以上的报文;上述N的取值可以根据获取外部存储的报文数目所需的时钟周期和队列出队(短包处理)所需间隔的时钟周期来确定,为了保证队列出队的效率,上述N为获取上述队列中当前有的报文数目所需的时钟周期允许上述队列出队的次数。
为了及时地、快速地判断出队列可以再次出队的次数,在本优选实施例中,根据上述报文概数判断上述队列允许再次出队的次数包括上述报文概数大于I的情况下,判断出上述队列允许再次出队一次;上述报文概数大于2的情况下,判断出上述队列允许再次出队二次;依次判断,上述报文概数大于N的情况下,判断出上述队列允许再次出队N次。 即上述报文概数大于I时,可以再次出队一次,上述报文概数大于2时,可以再次出队2次, 一次类推,当上述报文概数大于N时,则可以再次出队N,避免了根据外部存储的报文数目来判断是否可以再次出队,从而缩短了判断再次出队所需的时间。
为了可以准确地判断出是否可以再次出队,在本优选实施例中,上述队列管理方法还包括判断出上述队列允许再次出队的情况下,将上述报文数目减去判断出的上述队列允许再次出队的次数,并根据更新后的报文数目重新确定上述报文概数指示的状态。即当获取报文数目时,将获取的报文数目减去上述判断出的允许出队次数,例如,判断出的允许出队的次数2,则将获取的报文数目减去2,并根据更新后的报文数目重新确定上述报文概数指示的状态,以保证上述报文概数和上述报文数目与实际有的报文数目相一致,并保存更新后的报文概数状态和报文数目。
为了可以准确地判断出是否可以再次出队,在本优选实施例中,上述队列管理方法还包括上述队列入队的情况下,将上述报文概数加上1,将上述报文数目加上I。即每入队一次,更新上述报文概数和上述报文数目,以保证上述报文概数和上述报文数目与当前实际有的报文数目相一致,并保存更新后的报文概数和报文数目。
本优选实施例提供了一种队列管理装置,如图3所示,该队列管理装置包括获取模块302,用于获取当前出队的队列的报文概数,其中,上述报文概数存储在队列管理组件内部,上述报文概数用于指示上述队列中当前有的报文数目的状态;判断模块304,连接至获取模块302,用于根据上述报文概数判断上述队列允许再次出队的次数。
在上述优选实施例中,通过获取模块302获取当前出队的队列的报文概数,该报文概数存储在队列管理组件内部,所述报文概数用于指示所述队列中当前有的报文数目的状态,判断模块304根据所述报文概数判断所述队列允许再次出队的次数,实现了可以快速地获取报文概数,来及时地判断出允许再次出队的次数,缩短了判断是否允许再次出队所需的时间,从而提高了队列出队(短包处理)的效率,有助于提高流量管理系统的性能。
为了及时地、快速地判断出队列可以再次出队的次数,在本优选实施例中,上述判断模块304包括第一判断单元,用于上述报文概数大于I的情况下,判断出上述队列允许再次出队一次;第二判断单元,上述报文概数大于2的情况下,判断出上述队列允许再次出队二次;第N判断单元,用于上述报文概数大于N的情况下,判断出上述队列允许再次出队 N次。
为了可以准确地判断出是否可以再次出队,在本优选实施例中,如图3所示,上述队列管理装置还包括第一处理模块306,用于判断出上述队列允许再次出队的情况下,将上述报文数目减去判断出的上述队列允许再次出队的次数,并根据更新后的报文数目重新确定上述报文概数指示的状态。第二处理模块308,用于上述队列入队的情况下,将上述报文概数加上I,将上述报文数目加上I。
以下结合附图对上述各个优选实施例进行详细地描述。
在本优选实施例中,如图4所示,可以在队列管理组件片内增加一个SRAM来存储报文概数(或称为内部计数),该报文概数用于指示此次报文出队后该队列是否还有报文可以出队,由于上述报文概数存储在片内,获取上述报文概数所需的时间较短,可以在上次报文出队后I 2个时钟周期以后判断出该队列是否还需要进行出队调度,相比之前直接读取外部QDRSRAM的报文数目(或称为外部计数)需要N N+1 (通常N=8)个时钟周期才能给出判断结果,短包处理间隔大大缩短。
在本优选实施例中,以队列管理中包入队为例,以如下场景为例,短包处理间隔为 8个时钟周期,QDR SRAM读延迟为8个时钟周期,内部SRAM指定值(上述N)为I,报文概数状态有大于I、等于I和等于O三个不同状态,因此需要用2bits来表示,来详细描述上述队列管理方法的处理流程,如图5所示,该流程包括如下步骤
步骤S502:判断是否接收到入队操作使能,若是,则转至步骤S504,若否,则继续步骤S502。
步骤S504 :队列入队读取QDR SRAM外部计数(相当于上述报文数目)和SRAM内部计数(相当于上述报文概数状态),例如,该SRAM中存储2bits的内部计数,其中,2’ b00表不无报文,2’ b01表不有一个报文,2’ blO表不有一个以上报文。
步骤S506 :例如I个时钟周期后,读出内部计数,将该内部计数加1,即原值是 2’ b00更新为2’ blO,原值为2’ b01更新为2’ blO,原值为2’ blO的保持2’ blO,并将最新的内部计数值存入SRAM中。
步骤S508 :例如M个时钟周期(该时钟周期根据外部QDR SRAM而定)后,读出外部计数,将该外部计数加1,将最新的外部计数值存入QDR SRAM中,转至步骤S502。
在本优选实施例中,以队列管理中包出队为例,以如下场景为例,短包处理间隔为 8个时钟周期,QDR SRAM读延迟为8个时钟周期,内部SRAM指定值(上述N)为I,报文概数状态有大于I、等于I和等于O三个不同状态,因此需要用2bits来表示,来详细描述上述队列管理方法的处理流程,如图6所示,该流程包括如下步骤
步骤S602 :判断是否收到出队操作使能,若是,则转至步骤S604,若否,则继续步骤 S602。
步骤S604 :队列出队读取QDR SRAM外部计数(相当于上述报文数目)和SRAM内部计数(相当于上述报文概数状态),例如,该SRAM中存储2bits的内部计数,其中,2’ b00表不无报文,2’ b01表不有一个报文,2’ blO表不有一个以上报文。
步骤S606 :例如I个时钟周期后,读出内部计数;
步骤S608 :判断SRAM内部计数是否大于1,如大于1,则执行步骤S612,如不大于 1,则执行步骤S610。
步骤S610 :该队列不满足再次出队条件,终止出队。
步骤S612 :该队列满足再次出队条件,可再次添加进出队链表;
步骤S614 :得到QDR SRAM外部计数之后,将该外部计数减1,并根据更新后的外部计数确定内部计数(相当于上述报文概数状态)。
步骤S614 :更新SRAM内部计数和QDR SRAM外部计数,转至步骤S602。
从以上的描述中,可以看出,上述优选实施例实现了如下技术效果通过上述步骤,通过获取当前出队的队列的报文概数,该报文概数存储在队列管理组件内部,所述报文概数用于指示所述队列中当前有的报文数目的状态,并根据所述报文概数判断所述队列允许再次出队的次数,实现了可以快速地获取报文概数,来及时地判断出允许再次出队的次数,缩短了判断是否允许再次出队所需的时间,从而提高了队列出队(短包处理)的效率,有助于提高流量管理系统的性能。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种队列管理方法,其特征在于,包括 获取当前出队的队列的报文概数,其中,所述报文概数存储在队列管理组件内部,所述报文概数用于指示所述队列中当前有的报文数目的状态; 根据所述报文概数判断所述队列允许再次出队的次数。
2.根据权利要求I所述的方法,其特征在于,所述状态包括以下之一 所述报文概数等于O、所述报文概数等于I至N中任意ー个数,所述报文概数大于所述N,其中,所述N为获取所述队列中当前有的报文数目所需的时钟周期允许所述队列出队的次数,所述报文数目存储在所述队列管组件的外部。
3.根据权利要求2所述的方法,其特征在于,根据所述报文概数判断所述队列允许再次出队的次数包括 所述报文概数大于I的情况下,判断出所述队列允许再次出队一次; 所述报文概数大于2的情况下,判断出所述队列允许再次出队二次; 依次判断,所述报文概数大于所述N的情况下,判断出所述队列允许再次出队N次。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括 判断出所述队列允许再次出队的情况下,将所述报文数目减去判断出的所述队列允许再次出队的次数,并根据更新后的报文数目重新确定所述报文概数指示的状态。
5.根据权利要求2或3所述的方法,其特征在于,所述方法还包括 所述队列入队的情况下,将所述报文概数加上1,将所述报文数目加上I。
6.一种队列管理装置,其特征在于,包括 获取模块,用于获取当前出队的队列的报文概数,其中,所述报文概数存储在队列管理组件内部,所述报文概数用于指示所述队列中当前有的报文数目的状态; 判断模块,用于根据所述报文概数判断所述队列允许再次出队的次数。
7.根据权利要求6所述的装置,其特征在于,所述状态包括以下之一 所述报文概数等于O、所述报文概数等于I至N中任意ー个数,所述报文概数大于所述N,其中,所述N为获取所述队列中当前有的报文数目所需的时钟周期允许所述队列出队的次数,所述报文数目存储在所述队列管组件的外部。
8.根据权利要求7所述的装置,其特征在于,所述判断模块包括 第一判断単元,用于所述报文概数大于I的情况下,判断出所述队列允许再次出队ー次; 第二判断単元,所述报文概数大于2的情况下,判断出所述队列允许再次出队二次; 第N判断単元,用于所述报文概数大于N的情况下,判断出所述队列允许再次出队N次。
9.根据权利要求7或8所述的装置,其特征在于,还包括 第一处理模块,用于判断出所述队列允许再次出队的情况下,将所述报文数目减去判断出的所述队列允许再次出队的次数,并根据更新后的报文数目重新确定所述报文概数指示的状态。
10.根据权利要求7或8所述的装置,其特征在于,还包括 第二处理模块,用于所述队列入队的情况下,将所述报文概数加上1,将所述报文数目加上I。
全文摘要
本发明提供了一种队列管理方法及装置,其中,该方法包括获取当前出队的队列的报文概数,其中,上述报文概数存储在队列管理组件内部,上述报文概数用于指示上述队列中当前有的报文数目的状态;根据上述报文概数判断上述队列允许再次出队的次数。本发明解决了相关技术中短包处理速率达不到系统带宽要求的问题,从而提高了队列出队(短包处理)的效率,有助于提高流量管理系统的性能。
文档编号H04L12/861GK102984083SQ20121046877
公开日2013年3月20日 申请日期2012年11月19日 优先权日2012年11月19日
发明者杨敏华, 宋军辉 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1