一种基于DDR的高速多用户队列管理器及方法技术

技术编号:21713849 阅读:35 留言:0更新日期:2019-07-27 19:04
本发明专利技术公开了一种基于DDR的高速多用户的队列管理器及方法。该队列管理器包括写操作模块、读操作模块、DDR接口模块和DDR存储器。方法为:针对高性能网络设备中的多用户队列管理器,采用写操作与读操作分离的管理方式,写操作与读操作部署于不同的模块中;写操作模块与读操作模块分别维护各自的队列状态信息,两队列状态信息通过DDR接口模块进行同步更新;写操作模块与读操作模块分别内置缓冲区,用于缓存待写入DDR存储器中的数据或从DDR存储器中读出来的数据。本发明专利技术实现了对多用户队列的平滑、可靠管理,提升了整个队列结构的吞吐量。

A DDR-based High-speed Multiuser Queue Manager and Its Method

【技术实现步骤摘要】
一种基于DDR的高速多用户队列管理器及方法
本专利技术涉及电子电路
,特别是一种基于DDR的高速多用户队列管理器及方法。
技术介绍
在高速网络设备中,队列管理器需要采用片外大容量存储诸如DDR作为数据缓冲区,以实现对大量队列的存储管理。队列管理器中每一队列的长度可按照需求进行静态划分,也可基于链表结构进行动态划分,用于在对存储容量充分利用的前提下有效地管理多个逻辑队列。传统的多队列管理器核心电路采用单个状态机实现,读写操作并存于同一模块中,二者共享所有的队列状态信息,具体操作流程为:首先产生读写操作请求,依据读写操作请求查询相应的队列状态,然后根据查询得到的特定队列状态信息,将该队列队首位置的数据读出或者将某一数据添加至该队列的队尾,最后对该队列的状态信息进行更新,后续针对该队列的操作将依据已更新的队列状态信息进行。这种方法的优点是队列管理器针对特定队列的操作模式简单,同一状态机下,读写操作分时执行,更新队列信息的操作紧跟在读操作或写操作之后,避免了数据还未写入,队列内指针位置尚未更新便开始进行数据读取这种现象的发生。但由于该方法采用了串行操作方式,读写操作无法同时进行,必须等待写操作或读操作完成,即将数据写入至DDR中,或者将数据从DDR读出之后,才能更新相应的队列状态,进而继续进行下一操作;在队列状态查询和更新的过程中,DDR总线处于空闲状态,其带宽利用率不高,严重地影响了整个队列管理器的吞吐率。
技术实现思路
本专利技术的目的在于提供一种可以提高DDR总线带宽利用率、提高整个队列管理器吞吐率的基于DDR的高速多用户队列管理器及方法。实现本专利技术目的的技术解决方案为:一种基于DDR的高速多用户的队列管理器,包括写操作模块、读操作模块、DDR接口模块和DDR存储器;所述写操作模块,用于处理针对一设定队列的写请求;所述读操作模块,用于处理针对一设定队列的读请求;所述DDR接口模块,用于将写操作模块缓冲区中的数据存储至DDR存储器中的指定位置,同时将DDR存储器中的数据暂存至读操作模块内部的缓冲区中,并更新写操作模块内部队列状态信息。进一步地,所述写操作模块,包括第一~第四RAM、第一数据FIFO和第一指针FIFO;所述第一~第四RAM分别用于对各个队列的首地址、尾地址、写指针和队列深度进行存储与管理;所述第一数据FIFO用于对待写入DDR存储器中的数据信息进行缓存;所述第一指针FIFO用于对待写入DDR存储器中的数据的地址信息进行缓存。进一步地,所述读操作模块,包括第五~第八RAM、第二数据FIFO和第二指针FIFO;所述第五~第八RAM分别用于对各个队列的首地址、尾地址、写指针和队列深度进行存储与管理;所述第二数据FIFO用于缓存从DDR存储器中读出的数据信息;所述第二指针FIFO用于缓存从DDR存储器中读出的数据对应的状态信息,包括数据的深度和所属队列。进一步地,所述DDR接口模块,包括第三FIFO和第四FIFO,分别用于存储数据写入完成指示信息和数据读出完成指示信息。一种基于DDR的高速多用户的队列管理方法,采用写操作与读操作分离的管理方式,写操作与读操作部署于不同的模块中;写操作模块与读操作模块分别维护各自的队列状态信息,两队列状态信息通过DDR接口模块进行同步更新;写操作模块与读操作模块分别内置缓冲区,用于缓存待写入DDR存储器中的数据或从DDR存储器中读出来的数据;包括以下步骤:步骤1、写操作模块进行数据写入流程操作;步骤2、读操作模块进行数据读出流程操作。进一步地,步骤1所述的写操作模块进行数据写入流程操作,具体如下:步骤1.1、写操作模块接收来自外部的写请求,写请求中包含有queue_id信息,用于指示当前写操作所对应的特定队列;步骤1.2、写操作模块依据queue_id查询写操作模块的第一~第四RAM中存储的队列状态信息,获得该队列的首地址、尾地址、写指针及当前队列深度,进而生成DDR存储器内部地址,DDR存储器内部地址包括数据在DDR存储器中的存储位置;步骤1.3、写操作模块将待写入DDR存储器中的数据及其对应的地址信息分别缓存至写操作模块的第一数据FIFO和第一指针FIFO中,然后开始处理下一写请求;步骤1.4、DDR接口模块从写操作模块的第一数据FIFO和第一指针FIFO中读出待写入DDR存储器中的数据及其对应的地址信息,按照地址将数据写入到DDR存储器中;步骤1.5、数据写入完成之后,DDR接口模块生成数据写入完成指示信息,读操作模块对该信息进行读取,依据此信息对其内部队列状态进行更新。进一步地,步骤2所述的读操作模块进行数据读出流程操作,具体如下:步骤2.1、读操作模块接收来自外部的读请求,读请求中包含有queue_id信息,用于指示当前读操作所对应的特定队列;步骤2.2、读操作模块依据queue_id查询读操作模块的第五~第八RAM中存储的队列状态信息,获得该队列的首地址、尾地址、写指针及当前队列深度,进而生成该读请求所对应的DDR存储器内部地址,并发送至DDR接口模块,然后开始处理下一读请求;步骤2.3、DDR接口模块依据该地址将数据从DDR存储器中读出,并将其缓存至读操作模块的第二数据FIFO中,同时向第二指针FIFO中写入该数据所对应的队列和读出的数据深度信息;步骤2.4、数据读出完成之后,DDR接口模块生成数据读出完成指示信息,写操作模块对该信息进行读取,依据此信息对其内部队列状态进行更新。本专利技术与现有技术相比,其显著优点为:(1)读操作与写操作部署于不同的模块中,二者可实现并行操作;(2)数据写入完成和数据读出完成之后分别生成指示信息,通知读操作模块和写操作模块更新相应的队列状态,从而有效地避免了读写冲突;(3)利用内部缓冲区,提高了DDR总线的带宽利用率,保证了整个队列管理器的吞吐率;(4)可按需对队列管理器中的每一队列进行静态划分或基于链表结构进行动态划分,保证了片外DDR的存储资源利用率。附图说明图1为本专利技术基于DDR的高速多用户队列管理器的结构框图。图2为本专利技术基于DDR的高速多用户队列管理方法中的数据写入流程图。图3为本专利技术基于DDR的高速多用户队列管理方法中的数据读出流程图。具体实施方式本专利技术基于DDR的高速多用户的队列管理器,包括写操作模块、读操作模块、DDR接口模块和DDR存储器;所述写操作模块,用于处理针对一设定队列的写请求;所述读操作模块,用于处理针对一设定队列的读请求;所述DDR接口模块,用于将写操作模块缓冲区中的数据存储至DDR存储器中的指定位置,同时将DDR存储器中的数据暂存至读操作模块内部的缓冲区中,并更新写操作模块内部队列状态信息。进一步地,所述写操作模块,包括第一~第四RAM、第一数据FIFO和第一指针FIFO;所述第一~第四RAM分别用于对各个队列的首地址、尾地址、写指针和队列深度进行存储与管理;所述第一数据FIFO用于对待写入DDR存储器中的数据信息进行缓存;所述第一指针FIFO用于对待写入DDR存储器中的数据的地址信息进行缓存。进一步地,所述读操作模块,包括第五~第八RAM、第二数据FIFO和第二指针FIFO;所述第五~第八RAM分别用于对各个队列的首地址、尾地址、写指针和队列深度进行存储与管理;所述第二数据FIFO用本文档来自技高网...

【技术保护点】
1.一种基于DDR的高速多用户的队列管理器,其特征在于,包括写操作模块、读操作模块、DDR接口模块和DDR存储器;所述写操作模块,用于处理针对一设定队列的写请求;所述读操作模块,用于处理针对一设定队列的读请求;所述DDR接口模块,用于将写操作模块缓冲区中的数据存储至DDR存储器中的指定位置,同时将DDR存储器中的数据暂存至读操作模块内部的缓冲区中,并更新写操作模块内部队列状态信息。

【技术特征摘要】
1.一种基于DDR的高速多用户的队列管理器,其特征在于,包括写操作模块、读操作模块、DDR接口模块和DDR存储器;所述写操作模块,用于处理针对一设定队列的写请求;所述读操作模块,用于处理针对一设定队列的读请求;所述DDR接口模块,用于将写操作模块缓冲区中的数据存储至DDR存储器中的指定位置,同时将DDR存储器中的数据暂存至读操作模块内部的缓冲区中,并更新写操作模块内部队列状态信息。2.根据权利要求1所述的基于DDR的高速多用户的队列管理器,其特征在于,所述写操作模块,包括第一~第四RAM、第一数据FIFO和第一指针FIFO;所述第一~第四RAM分别用于对各个队列的首地址、尾地址、写指针和队列深度进行存储与管理;所述第一数据FIFO用于对待写入DDR存储器中的数据信息进行缓存;所述第一指针FIFO用于对待写入DDR存储器中的数据的地址信息进行缓存。3.根据权利要求1所述的基于DDR的高速多用户的队列管理器,其特征在于,所述读操作模块,包括第五~第八RAM、第二数据FIFO和第二指针FIFO;所述第五~第八RAM分别用于对各个队列的首地址、尾地址、写指针和队列深度进行存储与管理;所述第二数据FIFO用于缓存从DDR存储器中读出的数据信息;所述第二指针FIFO用于缓存从DDR存储器中读出的数据对应的状态信息,包括数据的深度和所属队列。4.根据权利要求1所述的基于DDR的高速多用户的队列管理器,其特征在于,所述DDR接口模块,包括第三FIFO和第四FIFO,分别用于存储数据写入完成指示信息和数据读出完成指示信息。5.一种基于DDR的高速多用户的队列管理方法,其特征在于,采用写操作与读操作分离的管理方式,写操作与读操作部署于不同的模块中;写操作模块与读操作模块分别维护各自的队列状态信息,两队列状态信息通过DDR接口模块进行同步更新;写操作模块与读操作模块分别内置缓冲区,用于缓存待写入DDR存储器中的数据或从DDR存储器中读出来的数据;包括以下步骤:步骤1、写操作模块进行数据写入流程操作;步骤2、读操作模块进行数据...

【专利技术属性】
技术研发人员:乔庐峰陈庆华孙明乾杨健邹仕祥
申请(专利权)人:中国人民解放军陆军工程大学
类型:发明
国别省市:江苏,32

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

1