LJgibbs · 2020年10月26日

译文:DDR4 SDRAM - Understanding Timing Parameters

一文了解 DDR4 的基础知识。
原文地址:https://www.systemverilog.io/understanding-ddr4-timing-parameters
原文作者:ljgibbs
申请翻译授权中,如有侵权,将会删除

引言 Introduction

在 DDR 标准中有很多很多时序参数(timing parameter),但当你真的和 DDR4 打交道时,会发现经常访问或者读到的参数也就那么几个,它们相比剩下的参数要常用许多。所以,本文将基于具体的 DDR 命令,讨论那些经常用到的参数。

这些命令真的很容易忘记,一段时间不怎么用到后,记忆就会马上模糊。本系列的另一篇文章:Timing Parameter Cheat Sheet,可以用作具体时序参数的快速查找手册。

Note:本文所用到的图片都来自于 JEDEC DDR4 标准,或者美光的产品手册,在参考文献部分给出了相应的链接。

激活命令 ACTIVATE Timing

激活命令用于在访问之前打开某个 bank 中的某个 row。在 Understanding the Basics (译文)一文中我们了解到每个 bank 有仅有一组 sense amps,所以每个 bank 中可以保持一个 row 处于打开状态。与激活命令相关的常用时序参数共有 3 个,tRRD\_StRRD\_L 以及 tFAW

  • tRRD\_S
  • row-to-row delay--short
  • 当向多个属于不同 bank group 的 bank 发送 ACT 命令时,ACT 命令之间需要满足 tRRD\_S 长度的间隔
  • tRRD\_L
  • row-to-row delay--long
  • tRRD\_S 的不同点在于,当向多个属于同一个 bank group 的 bank 发送 ACT 命令时,ACT 命令之间需要满足 tRRD\_L 长度的间隔

image.png

图-1 tRRD 时序图

  • tFAW
  • Four Activate Window
  • 限制容纳至多四个 ACT 命令的窗口,在这段时间内最多只能发出四个 ACT 命令。
  • 当连续发送 ACT 命令时,ACT 命令之间一方面需要满足 tRRD\_S/L ,另一方面,在发送四个 ACT 命令后,需要等待 tFAW 窗口结束,才能发送第五个 ACT 命令。

image.png

图-2 tFAW 时序图

刷新命令 REFRESH Timing

为了确保存储在 SDRAM 中的数据不会丢失,存储控制器需要平均间隔 tREFI ,发送一次 REFRESH 命令。 但是在进行刷新之前,SDRAM 所有的 bank 需要进行 PRECHARGE 预充电,并空闲一段时间,这个时长称为 tRP(min) 。在发出 REFRESH 命令后,必须经过 tRFC(min) 的延迟,才能发出下一个命令( DES 命令除外)。

值得注意的是,这里的 tREFI 是刷新命令之间的“平均”间隔,这是因为你可以在周期性发出的刷新命令中,减少一部分,但在后续补上(译注:只需要平均间隔满足 tREFI 即可)。延后刷新功能是 DDR4 标准新增的,用于解决高密度刷新带来的较长命令锁定期影响性能的问题。可延后发出的刷新命令数量取决于当前的刷新模式(1x,2x 和 4x),在模式寄存器 MR2 中设置。

  • tREFI
  • DRAM 所需的刷新命令的平均间隔
  • tRFC
  • 刷新命令与其他命令(除 DES 命令)之间的延迟
  • tRP
  • Precharge time
  • 所有 bank 需要在刷新命令前预充电,并保持 tRP 的空闲时间

图-3 刷新时序图

图-4 延后刷新命令

读命令 READ Timing

读命令相关的时序参数可以分为三类

  • 通用读时序 Read Timing
  • 时钟-数据有效信号(Strobe)间的时序关系 Clock to Data Strobe relationship
  • 数据-数据有效信号间的时序关系 Data Strobe to Data relationship

通过 DRAM-read-operation译文)可以了解读操作的基本步骤。

Read Timing

  • CL (CAS latency)
  • Column-Address-Strobe
  • 当列地址在地址信号上就绪时,CL 是内部读命令与读数据第一个比特之间的延迟时钟周期。
  • CL 大小定义在模式寄存器 MR0 中。SDRAM 标准定义了不同频率下需要设定的 CL 值大小。
  • AL (Additive Latency)
  • AL 延迟允许紧跟激活命令后发出读命令,器件内部将读命令延迟 AL 个时钟周期后执行。
  • 该项特性用于保持器件内部的高带宽与高速率
  • RL (Read Latency)
  • 总的读延迟,RL = AL + CL
  • tCCD\_S/L
  • 读取不同 bank 之间的延迟,和 tRRD\_S/L 类似,访问不同 bank group 的 bank 相比属于同一 bank group 的延迟要小一点,为 tRRD\_S (short)

图-5 不同 bank group 间的连续读命令。上图中 AL=0,CL=11,所以 RL=11。值得注意的是两次读数据之间没有间隔,后一次的数据紧接着前一次数据。由于两次读命令的 bank group 不同,所以读命令间的延迟是 tCCD\_S

图-6 不同 bank group 间的非连续读命令。

图-7 tCCD\_S/L 的不同

Clock to Data Strobe relationship (CK & DQS)

  • tDQSCK(MIN/MAX)
  • 数据有效信号 strobe 上升沿相对于时钟信号 CK\_t(上升沿)、CK\_c(下降沿) 所允许的延迟范围
  • tDQSCK
  • 数据有效信号 strobe 上升沿相对于时钟信号 CK\_t(上升沿)、CK\_c(下降沿) 的实际延迟
  • tQSH
  • 数据有效信号高电平脉冲脉宽
  • tQSL
  • 数据有效信号低电平脉冲脉宽

图-8 CK-DQS 间相位关系

Data Strobe to Data relationship (DQS & DQ)

  • tDQSQ
  • 描述 DQ 上升沿相对于 DQS 边沿的最晚时间,(译注,晚于该时刻将影响本次数据采样),在下方的图中可以看到, tDQSQ 指的是 DQS 上升沿至有效 DQ 信号左边沿的时间
  • tQH
  • 描述 DQ 上升沿相对于 DQS 边沿的最早时间,(译注,早于该时刻将影响前次数据采样),在下方的图中可以看到,tQH 指的是 DQS 上升沿至有效 DQ 信号的右边沿的时间

图-8 续 DQS-DQ 间相位关系

写命令 Write Timing

写命令时序大致上与读命令相同...

通用写时序 Write timing

  • CWL (CAS Write latency)
  • Column-Address-Strobe Write
  • 写命令与第一个送出第一个写数据之间的延迟
  • CWL 大小在模式寄存器 MR2 中定义
  • AL (Additive Latency)
  • AL 延迟允许紧跟激活命令后发出写命令,器件内部将写命令延迟 AL 个时钟周期后执行。
  • 该项特性用于保持器件内部的高带宽与高速率
  • WL (Read Latency)
  • 总的写延迟,WL = AL + CWL
  • tCCD\_S/L
  • 写入不同 bank 之间的延迟,和 tRRD\_S/L 类似,访问不同 bank group 的 bank 相比属于同一 bank group 的延迟要小一点,为 tRRD\_S (short)

时钟-数据有效信号(Strobe)间的时序关系 Clock to Data Strobe relationship

  • tDQSS(MIN/MAX)
  • 数据有效信号 strobe 上升沿相对于时钟信号 CK\_t(上升沿)、CK\_c(下降沿) 所允许的延迟范围
  • tDQSS
  • 数据有效信号 strobe 上升沿相对于时钟信号 CK\_t(上升沿)、CK\_c(下降沿) 的实际延迟
  • tDQSH
  • 数据有效信号高电平脉冲脉宽
  • tDQSL
  • 数据有效信号低电平脉冲脉宽
  • tWPST
  • Post-write 最后一个数据与有效信号重新置高之间的周期,此时总线并不驱动数据
  • tWPRE
  • Pre-write 数据有效信号(strobe)从无效(non-valid)到有效(valid)之间的周期数

图-9 写时序图

模式寄存器时序 Mode Register Timing

通过 SDRAM 的 7 个模式寄存器,可以对 SDRAM 的特性,功能以及设置进行编程。这些寄存器本身通过 MRS 命令编辑。模式寄存器一般在初始化期间进行设定,但也可以在后续正常工作期间进行修改。模式寄存器设置有下列两个时序参数:

  • tMRD
  • Mode Register Set command cycle time
  • MRS 命令周期数,指完成寄存器写操作所需要的的周期数,也是两个 MRS 命令之间最小的间隔

图-10 tMRD timing

  • tMOD
  • Mode Register Set command update time
  • MRS 命令与其他命令(除 DES)之间的最小间隔

图-10 tMOD timing

参考文献 Reference

推荐阅读

一图了解 DDR IP 主要厂商
译文: DDR4 SDRAM - Understanding the Basics(上)
译文: DDR4 SDRAM - Understanding the Basics(下)

更多FPGA及芯片设计相关知识请关注FPGA的逻辑专栏。
推荐阅读
关注数
10614
内容数
577
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息