The invention discloses a queue manager and a method based on a large granularity storage unit. The queue manager includes free pointer management module, buffer interface module, free pointer reading module and free pointer return module. The free pointer management module includes free pointer distribution and recovery circuit and logical queue management circuit. The method is as follows: for queue managers based on linked list in large capacity switches, large data buffers in queue managers are divided into blocks and pointers are allocated to them. Logical queues are constructed by pointers corresponding to blocks in the form of linked lists. Local cells are continuously stored or read in blocks by means of joint addressing of pointers and intra-block addresses, and single block memory is used. Store multiple cells; free pointers and logical queues are stored in high-speed on-chip RAM, and local cells are stored in large data buffers. The invention realizes smooth and reliable management of large capacity data buffer in switch, and reduces resource consumption.
【技术实现步骤摘要】
一种基于大颗粒度存储单元的队列管理器及方法
本专利技术涉及电子电路
,特别是一种基于大颗粒度存储单元的队列管理器及方法。
技术介绍
在大容量交换机中,队列管理器需要采用大容量存储器诸如DDR作为数据缓冲区,用于实现对大量业务流的缓冲管理。如果采用共享缓存输出排队的交换结构,DDR也可以直接用于交换结构的实现。队列管理器中的存储管理基于链表结构,用于在对存储容量充分利用的前提下有效地管理多个逻辑队列。传统的基于链表实现的队列管理器首先对变长的IP分组进行定长分割,然后为每一个分割后的单元加上包含转发映射位图和转发优先级等信息的本地头,构成本地信元,队列管理器为每一本地信元分配一个指针,该指针包含有对应本地信元在片外存储器的存储地址信息,随后队列管理器以指针为基本单位来构建不同的逻辑队列。这种方法的优点是队列管理器对信元的操作管理灵活,操作模式简单,存储管理颗粒度精细,但同时该方法需要消耗大量的资源来存储自由指针和逻辑队列。由于链表的存储和访问特点,通常需要使用高速静态RAM进行链表存储。在很多典型的应用中,如果数据缓冲区容量比较大,那么需要的指针缓冲区深度也会很大,此时使用芯片内部或者FPGA内部的存储器来实现会消耗大量的片内资源,通常需要使用片外高速存储器进行链表存储,但此时的存储访问速度会受到片外存储器访问速度的制约,使DDR等大容量数据缓冲区的读写速度优势不能得到充分发挥。
技术实现思路
本专利技术的目的在于提供一种资源消耗少、可靠高效、易于扩展以支持更大的数据缓冲区容量的基于大颗粒度存储单元的队列管理器及方法。实现本专利技术目的的技术解决方案为:一 ...
【技术保护点】
1.一种基于大颗粒度存储单元的队列管理器,其特征在于,包括自由指针管理模块、缓冲区接口模块、自由指针读取模块和自由指针归还模块,其中:所述自由指针管理模块包括自由指针分发与回收电路和逻辑队列管理电路;所述自由指针分发与回收电路,接收来自自由指针读取模块的指针读取请求和来自自由指针归还模块的指针归还请求,对自由指针队列进行动态管理;所述逻辑队列管理电路,基于链表对多个逻辑队列进行管理,链表存储至片内RAM中;所述自由指针读取模块,对每一逻辑队列的链尾指针和每一指针对应的当前块内地址进行存储与管理;所述自由指针归还模块,对每一逻辑队列的链首指针和每一指针对应的当前块内地址进行存储与管理;所述缓冲区接口模块,用于将信元写入到指针和块内地址所指向的存储区中,或者从指针和块内地址所指向的存储区中读出特定的信元。
【技术特征摘要】
1.一种基于大颗粒度存储单元的队列管理器,其特征在于,包括自由指针管理模块、缓冲区接口模块、自由指针读取模块和自由指针归还模块,其中:所述自由指针管理模块包括自由指针分发与回收电路和逻辑队列管理电路;所述自由指针分发与回收电路,接收来自自由指针读取模块的指针读取请求和来自自由指针归还模块的指针归还请求,对自由指针队列进行动态管理;所述逻辑队列管理电路,基于链表对多个逻辑队列进行管理,链表存储至片内RAM中;所述自由指针读取模块,对每一逻辑队列的链尾指针和每一指针对应的当前块内地址进行存储与管理;所述自由指针归还模块,对每一逻辑队列的链首指针和每一指针对应的当前块内地址进行存储与管理;所述缓冲区接口模块,用于将信元写入到指针和块内地址所指向的存储区中,或者从指针和块内地址所指向的存储区中读出特定的信元。2.根据权利要求1所述的基于大颗粒度存储单元的队列管理器,其特征在于,所述的自由指针队列和逻辑队列存储在高速片内RAM中,所述的信元存储在大容量数据缓冲区中。3.根据权利要求2所述的基于大颗粒度存储单元的队列管理器,其特征在于,所述的高速片内RAM包括芯片内部或FPGA内部的存储器资源;所述的大容量数据缓冲区包括SDR、DDR或QDR大容量外部存储。4.一种基于大颗粒度存储单元的队列管理方法,其特征在于,包括以下步骤:步骤1、针对大容量交换机中队列管理器的数据缓冲区,以块为单位对其进行划分并为每一个块单独地分配一个指针,块与块所对应的指针以链表的形式构建逻辑队列;步骤2、自由指针读取模块对每一逻辑队列的链尾指针和每一指针对应的当前块内地址进行存储与管理,自由指针分发与回收电路接收来自自由指针读取模块的指针读取请求,对自由指针队列进行动态管理,并将自由指针分发的结果同步更新至逻辑队列管理电路中;步骤3、自由指针归还模块对每一逻辑队列的链首指针和每一指针对应的当前块内地址进行存储与管理,自由指针分发与回收电路接收来自自由指针归还模块的指针归还请求,对自由指针队列进行动态管理,并将自由指针回收的结果同步更新至逻辑队列电路中;步骤4、本地信元采用指针与块内地址联合寻址的方式在块内进行连续存储或读取。5.根据权利要求4所述的基于大颗粒度存储单元的队列管...
【专利技术属性】
技术研发人员:乔庐峰,陈庆华,孙明乾,杨健,邹仕祥,
申请(专利权)人:中国人民解放军陆军工程大学,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。