on-chip-bus(一):DDR的原理和行为:什么是突发传输?为什么DDR中要有多个bank?

1.DDR SDRAM

        即Double Data Rate SDRAM。DDR在每次传输数据的时候,在每个时钟脉冲的上升沿和下降沿都传输一次数据,所以称为“Double Data Rate”。其数据传输频率是核心频率的2倍。

2.DDR的内部结构

        

       DDR的内部一般有8个Bank,每个Bank都是一个存储阵列,由M行N列组成。在寻址时,只要给出需要哪一个Bank的哪一行,以及哪一行中的哪一列,即可找到其中的数据。

       而左下角的Command decoder模块,则接收4个控制命令,这4个控制命令的高低电平组合决定了对这个Bank的某个数据进行怎么样的操作(包括no operation无操作、active激活、read读、write写、precharge关闭等)。

3.DDR的行为介绍

        如图,4个控制信号的逻辑组合决定了DDR内部相应数据将要进行什么操作。如0111表示无操作,0011表示激活所选的Bank和对应的行。

        在实际工作中,寻址的流程是先指定Bank和行地址,再指定列地址和想要进行的操作。也就是说,Bank地址和相应的行地址是同时被选择的,此时这个命令成为“行激活”。在此之后,将发送列地址寻址命令与具体的操作,这两个命令也是同时发出的。另外,同一时刻对同一个Bank,只能读取其某一行的地址,即不能对同一个bank的多行同时进行操作。

4.tRCD和CL

        tRCD(RAS to CAS Delay),表示从行有效到读/写命令发出之间的间隔,理解为行选通周期,单位为时钟周期数。即若tRCD=3,表示从行有效到读/写命令发出之间至少需要间隔3个时钟周期。

        CL(CAS Latency),表示相关地址被选中后,数据从存储单元中输出到真正出现在内存芯片的I/O接口之间需要的时间,单位也是时钟周期数。即若CL=6,表示从列有效及发出相应操作后到数据出现在输出端需要至少6个时钟周期的延迟。

5.突发传输

        突发传输,是指在同一行中对相邻的存储单元连续进行数据传输的方式,连续传输的周期就是突发长度(Burst Length,一般为4或8)。在进行突发传输时,只需指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作,而不再需要控制器提供列地址。这样,除了第一笔数据的传输需要若干个周期,其后每个数据只需一个周期即可获得。

6.为什么DDR中要有多个Bank?

        在上面的介绍中说到,在DDR中存在tRCD和CL,也就是说,如果只有一个Bank,那么在对其进行寻址和操作时,由于tRCD和CL的存在,就会出现大量的NOP操作,浪费了大量的时钟周期。而如果有多个Bank,就可以在这些空闲的NOP时钟周期中插入其他Bank的操作,从而节约了时钟周期,提高了传输的速率。

       如图,在act_b0操作激活bank0后,在两个时钟周期(tRCD=2)后对其发出写命令。而在写命令之后,又需要2个时钟周期(CL=2)的延迟,数据才被写入。在这之间,将激活bank1的指令act_b1插入write_b0后的NOP中,然后在关闭bank0的操作pre_b0之前的一个NOP中插入对bank1的读操作指令read_b1,这样在bank0关闭后,仅用了一个时钟周期的延迟就继续开始进行bank1的读操作了。而如果在满足tRCD和CL的条件下,在对其中一个bank进行操作的同时,尽可能多地将其他7个bank的操作插入到其中的NOP中,就能大幅提高传输的速率和带宽。

  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值