关于以FIFO+RAM方式缓存报文的资源讨论

本文详细讨论了两种报文缓存方案:方案1使用128bitRAM和40bitFIFO,最大深度为2*1024;方案2采用32bitRAM和40bitFIFO,最大深度为2*4096。方案3和4涉及外挂存储器,如DDR和QDR,需地址分配管理。欢迎读者提出修正意见。
摘要由CSDN通过智能技术生成

背景:

在以太网报文处理过程中,需要对报文做业务处理,然后报文缓存。

缓存的方案有多种,如下:

方案1:报文信息用FIFO方式缓存,报文数据按照整包用RAM缓存;

方案2:报文信息用FIFO方式缓存,报文数据按最大256字节信元用RAM缓存;

方案3:报文信息用FIFO方式缓存,报文数据按最大256字节信元用DDR缓存;

方案4:报文信息用FIFO方式缓存,报文数据按最大256字节信元用QDR缓存。

等等。

我们主要讨论方案1和方案2,如下。

方案1的资源讨论:

设计要求:a. RAM数据位宽128bit;b. FIFO数据位宽40bit;c. 最大报文长度16384字节; d. 最小报文长度64字节。

1.1 计算最大的RAM深度

        根据a、b、c三点,一个最大报文需要占用RAM 1024个地址资源,要是背靠背再来一个最大报文,还得再需要RAM 1024个地址资源。报文信息在整包写入到RAM后写入信息FIFO。从这一方面考虑RAM的深度为2*1024=2^11,FIFO的深度是2。

1.2 计算最大的FIFO深度

        根据d点,最小报文长度是64字节,需要占用RAM 8个地址资源;结合1.1 占用完2*1024=2^11个RAM地址资源需要256个信息。从这一方面FIFO的深度是256=2^8。

结合以上两点考虑,既要满足突发最大报文长度,也满足最小报文处理的能力。因此FIFO深度是256=2^8,RAM深度是2*1024=2^11。

方案2的资源讨论:

设计要求:a. RAM数据位宽32bit;b. FIFO数据位宽40bit;c. 信元最大长度256字节;d. 最大报文长度16384字节; e. 最小报文长度64字节。

2.1 计算最大的RAM深度

        根据a、b、c三点,一个最大报文以256字节可以切成64个信元,因此需要占用RAM 4096个地址资源,需要占用FIFO 64个深度资源;要是背靠背再来一个最大报文,还得再需要RAM 4096个地址资源,还得需要占用FIFO 64个深度资源。从这一方面考虑RAM的深度为2*4096=2^13,FIFO的深度是128=2^8。

2.2 计算最大的FIFO深度

        根据d点,最小报文长度是64字节,需要占用RAM 8个地址资源;结合2.1 占用完2*4096=2^13个RAM地址资源需要1024个信息。从这一方面FIFO的深度是256=2^8。

结合以上两点考虑,既要满足突发最大报文长度,也满足最小报文处理的能力。因此FIFO深度是1024=2^10,RAM深度是2*4096=2^13。

方案3和方案4是为了缓存大量的报文,这需要外挂存储器件。常用的器件是DDR、QDR,报文缓存到这类器件需要“地址分配管理”模块参与。通过地址分配,通过总线将报文缓存到器件中。后级处理模块通过总线将报文读出,并释放分配的地址。

关于方案3和方案4另行详细讨论。

若有不正确的地方,欢迎大家指正。

  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值