浅谈DDR SDRAM的Timing具体时序参数

存储技术

595人已加入

描述

在 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_S,tRRD_L 以及 tFAW。

1、tRRD_S

row-to-row delay--short

当向多个属于不同 bank group 的 bank 发送 ACT 命令时,ACT 命令之间需要满足 tRRD_S 长度的间隔

2、tRRD_L

row-to-row delay--long

与 tRRD_S 的不同点在于,当向多个属于同一个 bank group 的 bank 发送 ACT 命令时,ACT 命令之间需要满足 tRRD_L 长度的间隔

寄存器

图-1 tRRD 时序图

3、tFAW

Four Activate Window

限制容纳至多四个 ACT 命令的窗口,在这段时间内最多只能发出四个 ACT 命令。

当连续发送 ACT 命令时,ACT 命令之间一方面需要满足 tRRD_S/L ,另一方面,在发送四个 ACT 命令后,需要等待 tFAW 窗口结束,才能发送第五个 ACT 命令。

寄存器

图-2 tFAW 时序图

刷新命令 REFRESH Timing

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

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

1、tREFI

DRAM 所需的刷新命令的平均间隔

2、tRFC

刷新命令与其他命令(除 DES 命令)之间的延迟

3、tRP

Precharge time

所有 bank 需要在刷新命令前预充电,并保持 tRP 的空闲时间

寄存器

图-3 刷新时序图

寄存器

图-4 延后刷新命令

读命令 READ Timing

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

总体读时序 Read Timing

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

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

1、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 的不同

2、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 间相位关系

3、Data Strobe to Data relationship (DQS & DQ)

tDQSQ

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

tQH

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

寄存器

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

写命令 Write Timing

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

1、总体写时序 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)

2、时钟-数据有效信号(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 命令编辑。模式寄存器一般在初始化期间进行设定,但也可以在后续正常工作期间进行修改。模式寄存器设置有下列两个时序参数:

1、tMRD

Mode Register Set command cycle time

MRS 命令周期数,指完成寄存器写操作所需要的的周期数,也是两个 MRS 命令之间最小的间隔

寄存器

图-10 tMRD timing

2、tMOD

Mode Register Set command update time

MRS 命令与其他命令(除 DES)之间的最小间隔

寄存器

图-10 tMOD timing

审核编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分