DDR4 核心2133/2400/3200数据传输率理解

先了解内存知识基础:

(2条消息) DDR 内存基础知识(2)- DDR预取_0xFFFFFFF0的博客-CSDN博客_ddr 预取

1、DDR4和DDR3 的一个差异是:DDR4之前的带宽提升依靠增加预取的bit数(ddr 2bit,ddr2  4bit ,ddr3 8bit 预取),而到了ddr4,只能通过bank group的方式来提高带宽了。

    对于DDR4的控制器和DDR4颗粒,首先会提供一个tCK_freq的参数,这个参数值一般是533Mhz、600Mhz和800Mhz,分别对应数据传输率为2133Mbit、2400Mbit和3200Mbit。

  在UVM环境中,有一个宏+define+DDR2133,此宏的生效的地方在:

    

        可以看到此时在我们验证平台中产生的clk连接到了DDR_TOP.PLLOUT_X1这个信号管脚中去了,这个信号会得到ddr_pll_clk并传递给umctl2 这个ddr控制器中,用于给umctl提供core_ddrc_core_clk,产生的时钟有533Mhz、600Mhz和800Mhz;

     

     另外,在uvm验证环境中,在配置ddr的时候也需要将tCK_freq配置对应的频率,是为了生成相应的时序,并写入到DDR 的controller中去。

      

        但是533/600/800Mhz和2133/2400/3200Mbit是如何挂钩在一起的呢?

     从ddr颗粒的时钟波形上可以看出,ck/ck_n的信号频率是1.06Ghz,并且上下沿采样,因此,一根数据线上的数据传输率为1.06Ghzx2=2133Mbit;

    那么1.06Ghz是如何根据533Mhz得到的呢?

  对于双BG的DDR4,由于两个BG可以同时工作,因此,其IO频率(即颗粒上的ck/ck_n 会翻倍)。

  而我们将的2133Mhz/2400Mhz/3200Mhz均为等效频率。

2、总的带宽如何计算呢?

    例如tCK_freq=800Mhz时候,接了两个DDR颗粒,BP_DDR_DQ是inout [31:0],每个ddr颗粒16bit,因此,总的带宽为:3200Mbit x 32=

    

  根据之前同事总结的来看,对于总线位宽32bit来说,3200M情况下,总线带宽为:3200x4B(4x8bit)=12.8GByte/s

   那么ddr的带宽都受那些影响呢?

   上面讲述的是ddr的频率对带宽的影响,例如对于600Mhz和800Mhz tCK_freq,带宽是不同的;那么noc总线是否对ddr的读写带宽有影响呢?如果有,如何影响带宽?

   如果DDR的频率比较小,那么主要影响带宽的因素就是ddr的频率;如果DDR的频率比较大,那么主要影响带宽的因素就是noc 总线的频率;例如:

    对于DDR  2400(对应的tCK_freq=600Mhz), 总线位宽是32bit,最大带宽是=2400x32 /8=9.6Gbyte/s

    对于noc 总线clk=600Mhz,由于ddr和noc总线接口位宽是128bit,因此,带宽计算:600Mhzx 128/8= 9.6Gbyte/s

        如何查看noc的位宽:   

  

3、DDR 的bank group 的作用

    

       根据addr地址,可以看出,bank_group对应的是addr[30:29], bank 对应的是addr[28:27], row 对应addr[26:10], col对应addr[9:0];

4、DDR4和DDR5的具体区别在哪里?

    1)总线带宽更高。

   2)功耗更低。

  • 2
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值