新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA和IP Core的定制缓冲管理的实现

基于FPGA和IP Core的定制缓冲管理的实现

作者:时间:2010-11-05来源:网络收藏

  在PRAM中存在两种链表形式,PQ List代表已经存储的数据包链表。为方便数据读出,PQ List需要记录数据包的第一个数据块地址,即首指针Pq_Hptr,为方便新的数据写入,PQ List需要记录数据包的最后一个数据块地址,即尾指针Pq_Tptr。PQ List同时需要记录该链表的长度作为调度模块进行调度的权值计算使用。

  Free List代表空闲的地址队列。为方便地辨识、管理空闲的地址,避免地址冲突,在BM中将所有空闲的地址使用一个链表进行管理。这个链表就是空闲地址队列。空闲地址队列依据系统需求的不同有着不同的形式,一般空闲地址队列的构成和PQ List相似,由空闲地址首指针Free_Hptr和空闲地址尾指针Free_Tptr构成。BM模块的所有操作都围绕着空闲的地址队列Free List进行。

  基于BM模块的数据流结构,BM模块一般分为Write CONtrol模块、Free List control模块、Read Control模块、PRAM Control模块、BRAM Control模块。BM的结构如图3所示。

图3.jpg


图3 BM结构图

  Write Control模块从Free List模块处得到空闲地址,向BRAM Control模块提出写请求,同时更新PRAM中的内容。Free List control模块负责管理空闲地址列表,提供Write Control模块的写BRAM地址及PRAM地址,回收经Read Control模块读出数据块后释放的地址。Read Control模块根据调度器的调度结果,通过BRAM Control模块读出需要发送的数据单元,同时将释放的缓冲单元地址写入空闲地址列表。PRAM Control模块为外部SSRAM的控制模块,可直接使用参考设计完成。BRAM Control模块为外部DRAM控制模块,一般分为Datapath与Controler两个子模块。Datapath模块专门负责数据接口部分,完成DRAM接口的DQ、DQS处理以及相应的延时调整,Controler模块负责完成DRAM的控制需求。

  在BM模块中,BRAM的带宽与PRAM的带宽一般为TM的瓶颈。PRAM的带宽主要受限于访问的次数,而BRAM的带宽受限于接口带宽。例如对于一个10G的TM,BRAM的有效带宽必须保证20G,以接口利用率最差只能达到65%计算(考虑SEG模块切分信元出现的N+1问题),需要保证接口带宽达到30G。使用64位的DRAM接口,接口速率不能低于500MB/s,这样对Datapath模块的设计提出了更高的要求。在实际系统中,BRAM主要使用DDR SDRAM、DDR II SDRAM。

  当使用Stratix II ,BRAM使用DDR II SDRAM时,测试表明DDR II SDRAM接口速率可达到800MB/s。在常规使用的情况下,DDR II SDRAM接口速率可保证达到667MB/s。对于一个64位的DRAM接口,接口速率可达到42.7GB/s,完全可以满足一个10G的TM系统。

  BM模块作为缓冲管理模块,缓冲的基本单元为BCELL,基于对BCELL的管理,对于BM的操作都牵涉到空闲地址队列的操作以及链表的操作。最基本的操作就是写入操作和读出操作。BM模块的写入操作由Write Control模块发起。

  对于Write Control模块,有数据单元需要写入,首先向Free List模块申请空闲地址,Free List将首指针a给Write Control模块,作为该数据块的写地址,同时读出首指针a对应在PRAM中的内容,得到下一跳地址b,将下一跳地址b作为新的空闲地址首指针。



关键词: FPGA Core 定制

评论


相关推荐

技术专区

关闭