总线位宽不变,有效数据位宽变化的缓存方案

总线位宽不变,有效数据位宽变化的缓存方案

譬如总线位宽为64bit,但是有时候只有高32bit有效,有时只有低32bit有效,有时64bit都有效。总线上收到的数据要先缓存到FIFO中,那么这个FIFO的宽度和深度如何设置呢?
深度的话这里不说,只说宽度。
基础版本,有两种选择:

  1. 宽度设置为32bit。
  2. 宽度设置为64bit。
    对于第一中选择,会影响总线的带宽,当64bit数据都有有效的时候,带宽会被压缩成实际总线带宽的一半。对于第二种选择,会让FIFO内部的存储空间有大量的浪费,假设有效数据为64bit的情况只有50%,那么FIFO中就会有25%的存储被浪费。
    既不想浪费带宽也不想浪费存储空间的做法如下。
    用两个FIFO,每个FIFO都是32bit宽。同时设置一个读指针和写指针。读指针表示的是上一次按顺序最后读的是哪一个FIFO,写指针表示的是上一次按顺序写的是哪一个FIFO。这样做的话,带宽和FIFO的存储空间都可以得到最大的利用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值