DDR协议基础进阶(四)DDR协议命令波形时序一——(ACT、Read、Write)

DDR协议基础进阶(四)DDR协议命令波形时序一——(ACT、Read、Write)

一、DDR 命令真值表


  • DDR的Command命令由CKE、CS#、RAS#、CAS#、WE#信号组成,这几个信号进行不同的搭配组合会形成不同的Command命令模式;(RAS: Row Address Strobe,行地址选通脉冲;CAS: Column Address Strobe,列地址选通脉冲;)
  • Command命令与地址Address相互协同共同完成对DDR mem颗粒的访问操作

image

二、ACT激活命令时序要求


ACTIVE命令是在对mem颗粒进行读写访问之前需要发出的第一个命令:

  • ACTIVATE命令协同Address命令激活某一特定bank的某一行,每一次操作只能打开同一个Bank的一行,而非多行;
  • Address选中激活的行,只有在Precharge之后才会失效
  • 传输过程中Burst Length模式在MR0寄存器中定义,分三种:BL8 fixed,BC4 fixed,BL8 or BC4 on the fly

2.1、ACTIVATE波形——tRRD、tFAW

  • t0-t7:激活Bank中的某一行;
  • tRRD激活两个不同Bank所需要的最小时间间隔
  • tFAW:连续激活五个不同Bank所需要的时间间隔(注意:tFAW > 4 * tRRD),其中tFAW是滚动计时,并不会限制Bank数量。
    image

2.2、ACTIVATE波形——tRAS、tRC

  • t0-t10:ACT激活和Precharge关闭协同操作特定Bank中的某一行;
  • tRRD:激活两个不同Bank所需要的最小时间间隔;
  • tRASACT激活Bank的某一行后,再对其进行Precharge关闭所需要的最小时间间隔
  • tRC:同一块Bank先后被打开所需要的最小时间间隔,第一次ACT打开Bank后需要先Precharge关闭然后再次执行ACT打开操作(两次ACT打开的同一块Bank的不同Row);
  • tRD:非同一块Bank先后被打开所需要的最小时间间隔,第一次ACT打开Bank后需要先Precharge关闭然后再次执行ACT打开操作;
  • tRP:关闭Precharge Bank所需要消耗的时间。

image

三、Read命令时序要求


当ACTIVE命令发出并激活Address指定的Bank的某一Row行之后,随即开始进行Read读访问:

  • 读数据访问的地址一般为A0-Ax,其中A10被用来判断是否需要进行Auto-precharge操作
  • 下图中的CAS Latency(CL)在MR0寄存器中进行配置,Additive Latency(AL)在MR1寄存器中进行配置。

3.1、Read 波形——无Additive Latency

  • tRCD: RAS to CAS Delay,RAS至CAS延迟;亦即从ACT到RD/WR命令之间的时间间隔。
  • 最小的延迟时间需满足:CL = nRCD = nRP = 8个时钟周期。
  • 读取数据:先ACT行地址 —> 发出读命令和列地址 —> 等待列地址生效后开始数据读取
    image

3.2、Read 波形——有Additive Latency

  • AL的值是通过配置MR1寄存器实现,当AL的值不为0时,ACTBank后,RD读命令会提前发出,但是并不会影响正式读取数据的时间节点,AL=0和AL=7的时序都是在t16时刻开始进行数据读取。

image

3.3、Read 波形——Additive Latency使用场景

1. AL = 0时场景,易导致总线上的DQ数据输出时,产生气泡Bubble,打断数据传输的连续性,降低数据传输效率;也可能会推迟总线上DQ数据的发出时间导致,Latency增加,降低传输效率。

  • tRRD:激活两个不同Bank所需要的最小时间间隔;

  • tRCD: RAS to CAS Delay,RAS至CAS延迟;亦即从ACT到RD/WR命令之间的时间间隔;

  • tRASACT激活Bank的某一行后,再对其进行Precharge关闭所需要的最小时间间隔
    image

    2. AL ≠ 0时场景,可以ACT激活Bank后,快速发出对应的RDA读指令,从而避免不同Bank之间的ACT和RDA命令 ‘冲突’,避免数据传输时产生Bubble,提高DQ的连续性,大大提高数据传输效率。
    image

3.4、Read to Precharge波形

  • tRTP:发出READ读命令后再对当前Bank进行Precharge操作所需要的最小时间间隔;
  • tRP: Precharge command period,预充电有效周期,即关闭Bank所需要的最小时间,在发出预充电命令之后,要经过一段时间才能允许发送RAS行有效命令打开新的工作行;
    image

3.5、Sequential Read波形——BC4 to BC4

  • tCCD:连续READ(WRITE)读取两个Bank的最小时间间隔;
    image

3.6、Sequential Read波形——BL8 to BL8

  • 与BL8 to BL8传输相比,BC4 to BC4传输会减少DQS信号的翻转,降低功耗,但是对于数据传输效率的提升并无帮助。

image

3.7、Read to Write波形——BL8 to BL8(重要)

  • tRL:从发出READ读命令到DQ正式开始进行读数据之间的最小时间间隔;
  • tWL:从发出WRITE写命令到DQ正式开始进行写数据之间的最小时间间隔;
  • 2tCK:DQ输出READ数据转换为输出WRITE需要消耗的最小时间,这里的消耗不可避免,且会造成一定的效率损失

image

3.8、Read to Write波形——BC4 to BC4

  • On The Fly(OTF)的传输模式对效率的提升有一定的帮助;(如果数据在传输的最后一拍只传输BC4,则会节省2个clk cycle)

image

3.9、Read to Write波形——BL8 to OTF(BC4)

  • 在实际的DDR工作过程中,不同的工作模式(Burst type)不可以随便的进行切换,这里的时序只作为了解,实际场景中少见。(初始化过程中只能进行一种工作模式的设置)
  • 本节时序同3.6小节。

image

四、WRITE命令时序要求


WRITE命令同READ命令相似,WRITE命令也需要在ACTIVE命令发出并激活Address指定的Bank的某一Row行之后发出,不同之处在于WRITE命令发出时会伴随DM信号以控制数据的Enable或者masked。当DM信号为高时,DQ数据无效;当DM信号为低时,DQ数据有效。 - 写数据访问时地址中A10也会被用来判断是否需要进行Auto-precharge操作

4.1、Write波形——BL8

  • tRCD: RAS to CAS Delay,RAS至CAS延迟;亦即从ACT到RD/WR命令之间的时间间隔。
  • tWL:从发出WRITE写命令到DQ正式开始进行写数据之间的最小时间间隔;

image

4.2、Write to Precharge波形——BC4

  • tWR:写恢复时间,即写数据完成后到发出预充电命令之间所需时钟周期,写突发之后一定要跟随一个预充电命令;
    image

4.3、Write to Precharge波形——OTF(BC4)

  • 在Burst Length为OTF模式下,tWR的计时起点应该以BL8模式时开始计数;
    image

4.4、Sequential Write波形——BL8 to BL8

  • tCCD:连续WRITE(READ)写入两个Bank的最小时间间隔,其值为4;

image

4.5、Write to Read波形——BC4 to BC4

  • tWTR:从DQ写完数据之后开始到发出读命令之间的延时;
  • tWTR的计时起点以BL4模式执行;
    image

4.6、Write to Read波形——BL8 to OTF(BC4/BL8)

  • tWTR的计时起点以BL8模式执行;
    image

4.7、Write to Write波形——BC4 to OTF(BC4)

  • 完成数据传输的时钟周期同4.9节的时序一致;
    image

4.8、Write to Write波形——BL8 to BL8

image

参考:https://www.sohu.com/a/163865810_781333
参考:https://blog.csdn.net/Rspate/article/details/107859785

posted @ 2024-08-19 14:09  ppqppl  阅读(354)  评论(0编辑  收藏  举报