一种队列存储空间管理方法及装置制造方法及图纸

技术编号:14416610 阅读:145 留言:0更新日期:2017-01-12 09:36
本发明专利技术提供了一种队列存储空间管理方法,包括:创建指针组,所述指针组包括至少一个的报文指针域,每个报文指针域存储一个报文指针;通过所述指针组,对队列存储空间进行读写操作。本发明专利技术还提供了一种队列存储空间管理装置。

【技术实现步骤摘要】

本专利技术涉及通信
中队列管理的相关技术,尤其涉及一种队列存储空间管理方法及装置
技术介绍
随着网络流量的飞速发展,用户对数据产品的服务质量(QoS,QualityofService)要求越来越高,对QoS需要支持的队列数、带宽和报文存储时间也提出了更高的要求,这就对队列管理单元(QM,QueueManager)的性能要求越来越高。通常情况下,队列管理包括入队、出队两个基本操作。报文入队时,根据报文包含的队列号可以将报文存储到对应的队列存储空间中,在报文被调度出队时,从队列存储空间读取入队存储的报文。对于大容量的流量管理,一般都是把报文存储在外部存储器中,随着存储报文的外部存储器越来越大,如何对外部存储器进行缓存划分和管理变得越来越重要。一般情况下,是将外部存储器按照固定大小进行划分,每个单元为一个Block块,一个Block块可以存储512B或者其他固定大小的报文分片。每个Block都对应一个地址指针,通过指针指向报文分片存储的地址。为了节省随机存取存储器RAM(RAM,RandomAccessMemory)资源,这些指针一般是通过链表进行管理的。现有的队列管理方法一般是基于链表的队列管理方法。由于地址数量非常多,通常需要一个RAM来存放。队列每调度出队一个报文,都需要刷新这个队列的头指针,先从RAM中读取队列的下一个报文的地址,然后再将下一个报文的地址更新为队列头指针。这里,由于RAM的读延迟比较大,因此头指针的刷新需要很多个时钟周期,而在头指针刷新完成之前,队列不能发送下一个报文,这就严重影响队列的出队报文的速度。由于当前的队列存储空间都比较大,所以链表信息一般都是存储在片外的4倍数据比率(QDR,QuadDataRate)存储器里面或者2倍数据比率(DDR,DoubleDataRate)存储器中,QDR的读写延迟有8个时钟周期左右,DDR的读写延迟更大,过高的读写延迟极大的限制了队列管理性能的提升
技术实现思路
有鉴于此,本专利技术实施例期望提供一种队列存储空间管理方法,解决了外部存储器高读写延迟问题。为达到上述目的,本专利技术的技术方案是这样实现的:本专利技术实施例提供了一种队列存储空间管理方法,所述方法包括:创建指针组,所述指针组包括至少一个的报文指针域,每个报文指针域存储一个报文指针;通过所述指针组,对队列存储空间进行读写操作。上述方案中,所述指针组中的报文指针域之间地址相互独立。上述方案中,所述通过所述报文指针组,对队列存储空间进行读写操作包括:通过所述报文指针组,对队列存储空间进行空闲指针申请、队列入队、队列出队、空闲指针回收以及空闲指针链表存储和队列链表存储操作。上述方案中,所述通过指针组,对队列存储空间进行空闲指针申请包括:判断当前的指针组内是否还有空闲指针;当前指针组内没有空闲指针时,申请一个新的空闲指针组作为当前指针组,并读取当前指针组中的空闲指针;当前指针组内有空闲指针时,读取当前指针组中的空闲指针。上述方案中,所述通过指针组,对队列存储空间进行队列入队操作包括:将需要入队的指针填充到所述指针组中的空闲指针中;当所述指针组饱和、或相同队列的入队指针等待超时,将所述指针组进行队列入队操作。上述方案中,所述通过指针组,对队列存储空间进行队列出队操作包括:将需要出队的指针写入预出队先入先出队列,将所述预出队先入先出队列进行队列出队操作。上述方案中,所述通过指针组,对队列存储空间进行空闲指针回收包括:将队列出队操作释放的出队指针依次写入指针组;当所述指针组饱和时,将所述指针组进行空闲指针回收。本专利技术实施例还提供了一种队列存储空间管理装置,所述装置包括:指针组创建单元、操作单元,其中,所述指针组创建单元,用于创建指针组,所述指针组包括至少一个的报文指针域,每个报文指针域存储一个报文指针;所述操作单元,用于通过所述指针组,对队列存储空间进行读写操作。上述方案中,所述操作单元具体用于:通过所述报文指针组,对队列存储空间进行空闲指针申请、队列入队、队列出队、空闲指针回收以及空闲指针链表存储和队列链表存储操作。上述方案中,所述操作单元具体用于:判断当前的指针组内是否还有空闲指针;当前指针组内没有空闲指针时,申请一个新的空闲指针组作为当前指针组,并读取当前指针组中的空闲指针;当前指针组内有空闲指针时,读取当前指针组中的空闲指针。上述方案中,所述操作单元具体用于:将需要入队的指针填充到所述指针组中的空闲指针中;当所述指针组饱和、或相同队列的入队指针等待超时,将所述指针组进行队列入队操作。上述方案中,所述操作单元具体用于:将需要出队的指针写入预出队先入先出队列,将所述预出队先入先出队列进行队列出队操作。上述方案中,所述操作单元具体用于:将队列出队操作释放的出队指针依次写入指针组;当所述指针组饱和时,将所述指针组进行空闲指针回收。本专利技术实施例所提供的队列存储空间管理方法和装置,先创建指针组,所述指针组包括至少一个的报文指针域,每个报文指针域存储一个报文指针;再通过所述指针组,对队列存储空间进行读写操作。如此,在对队列存储空间进行入队、出队和空闲指针管理时,一次访问外部存储器得到能够得到N报文指针,可供多次使用,从而能够减少对外部存储器的访问次数,解决了外部存储器高读写延迟问题,提高了队列管理单元的处理性能,节省了外部存储器的读写次数,降低了功耗。附图说明图1为本专利技术实施例指针组结构示意图;图2为本专利技术实施例队列存储空间管理方法流程示意图;图3为本专利技术实施例空闲指针链表链接结构示意图;图4为本专利技术实施例队列链表链接结构示意图;图5为本专利技术实施例对队列存储空间进行空闲指针申请方法流程示意图;图6为本专利技术实施例对队列存储空间进行队列入队操作方法流程示意图;图7为本专利技术实施例对队列存储空间进行队列出队操作方法流程示意图;图8为本专利技术实施例队列预出队方法流程示意图;图9为本专利技术实施例对队列存储空间进行空闲指针回收方法流程示意图;图10为本专利技术实施例出队指针拼接方法示意图;图11为本专利技术实施例队列存储空间管理装置结构示意图。具体实施方式在本专利技术实施例中,先创建指针组,其中,所述指针组包括至少一个的报文指针域,每个报文指针域存储一个报文指针;再通过所述指针组,对队列存储空间进行读写操作。本专利技术实施例中,所述指针组结构示意图如图1所示,在进行队列存储空间管理时,不使用报文真实的指针进行管理,使用指针组进行管理,指针组不作为实际的报文存储指针,只是作为存储报文指针的地址。报文存储的指针按照入队顺序依次存储在指针组的报文指针域里面。具体的,所述指针组中包含的报文指针域的数量在创建指针组时确定,在通过指针组对队列存储空间进行读写操作时,所述指针组中的报文指针域数目不变。本专利技术实施例中,一个指针组可以包括N个报文指针域,存储N个实际的报文描述符,报文描述符包括报文的实际指针、存储器bank信息等,N个实际的报文指针域地址之间相互独立,没有任何地址关联关系。对队列存储空间进行入队和出队写操作时,以指针组为单位,一次读出或者写入一个指针组;由于指针组包括多个实际的包描述符,对应N个实际的报文指针,因此在对队列存储空间进行入队、出队和空闲指针管理时,一次访问外部存储器得到能够得本文档来自技高网
...
一种队列存储空间管理方法及装置

【技术保护点】
一种队列存储空间管理方法,其特征在于,所述方法包括:创建指针组,所述指针组包括至少一个的报文指针域,每个报文指针域存储一个报文指针;通过所述指针组,对队列存储空间进行读写操作。

【技术特征摘要】
1.一种队列存储空间管理方法,其特征在于,所述方法包括:创建指针组,所述指针组包括至少一个的报文指针域,每个报文指针域存储一个报文指针;通过所述指针组,对队列存储空间进行读写操作。2.根据权利要求1所述方法,其特征在于,所述指针组中的报文指针域之间地址相互独立。3.根据权利要求1所述方法,其特征在于,所述通过所述报文指针组,对队列存储空间进行读写操作包括:通过所述报文指针组,对队列存储空间进行空闲指针申请、队列入队、队列出队、空闲指针回收以及空闲指针链表存储和队列链表存储操作。4.根据权利要求3所述方法,其特征在于,所述通过指针组,对队列存储空间进行空闲指针申请包括:判断当前的指针组内是否还有空闲指针;当前指针组内没有空闲指针时,申请一个新的空闲指针组作为当前指针组,并读取当前指针组中的空闲指针;当前指针组内有空闲指针时,读取当前指针组中的空闲指针。5.根据权利要求3所述方法,其特征在于,所述通过指针组,对队列存储空间进行队列入队操作包括:将需要入队的指针填充到所述指针组中的空闲指针中;当所述指针组饱和、或相同队列的入队指针等待超时,将所述指针组进行队列入队操作。6.根据权利要求3所述方法,其特征在于,所述通过指针组,对队列存储空间进行队列出队操作包括:将需要出队的指针写入预出队先入先出队列,将所述预出队先入先出队列进行队列出队操作。7.根据权利要求3所述方法,其特征在于,所述通过指针组,对队列存储空间进行空闲指针回收包括:将队列出队操作释...

【专利技术属性】
技术研发人员:徐东国郭樑王闯安康
申请(专利权)人:深圳市中兴微电子技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1