来源:https://www.systemverilog.io/design/understanding-ddr4-timing-parameters/

简介

DDR 标准中有大量的时序参数,但是当您使用 DDR4 SDRAM 时,您经常会发现自己比其他人更频繁地重新访问或阅读少数时序参数。因此,在本文中,我们将通过在命令上下文中查看这些频繁出现的时序参数来检查它们。

这些时间参数很难记住,它们往往会从你的脑海中溜走。随附的文章 Timing Parameter Cheat Sheet 可以作为参考,以回忆特定时序参数的含义。

注意:以下所有图片均取自 DDR4 JEDEC 规范和美光内存部件规范。可以在参考部分找到它们的链接。

ACTIVATE Timing 激活时序

ACTIVATE 命令用于在bank中打开一行,在文章理解基本原理中,我们看到每个bank都有一组感应放大器,因此每个bank的一行可以保持活动状态。对于 ACTIVATE,我们应该了解 3 个时序参数:tRRD_S、tRRD_L、tFAW。

参数

功能描述

tRRD_S

当向不同 bank group 的 bank 发出连续的 ACTIVATE 命令时,ACTIVATE 命令必须用 tRRD_S 分隔(row-to-row delay--short)

tRRD_L

如果bank属于同一个bank group,则它们的 ACTIVATE 必须由 tRRD_L (row-to-row delay--long)分隔

tFAW

四激活窗口或有时也称为第五激活窗口是一种时序限制。tFAW 指定一个窗口,在该窗口内只能发出四个激活命令。因此,你可以在它们之间使用 tRRD_S 背靠背发出 ACTIVATE 命令,但是一旦你完成了 4 次激活,在 tFAW 窗口到期之前,你无法再发出另一个。

表格 1: ACTIVATE命令时序参数

图 1: tRRDACTIVATE时序

图 2: tFAW时序

REFRESH Timing 刷新时序

为了确保存储在 SDRAM 中的数据不丢失,内存控制器必须以平均间隔 tREFI 发出 REFRESH 命令。但在可以应用 REFRESH 之前,必须对 SDRAM 的所有bank进行预充电并空闲至少 tRP(min) 时间。一旦发出 REFRESH 命令,在发出下一个有效命令之前必须有 tRFC(min) 的延迟(DES 命令除外)。

注意到我提到tREFI是REFRESH命令之间的 "平均 "间隔时间。这是因为你可以推出(或拉入)一定数量的刷新命令,并在以后补上。这种模式被添加到DDR4中,以克服在较高密度下由于刷新锁定而造成的性能损失。可以推迟的刷新命令的数量取决于刷新模式(1x、2x或4x),可以在SDRAM的模式寄存器MR2中设置。

参数

功能

tREFI

该设备需要 REFRESH 命令的平均间隔为 tREFI

tRP

预充电时间。在应用 REFRESH 命令之前,必须对bank进行预充电并在 tRP 期间处于空闲状态

tRFC

REFRESH 命令和下一个有效命令之间的延迟,DES 除外

表 2: refresh命令时序参数

图3 : refresh时序

图4 : 推迟Refresh命令

READ Timing 读时序

READ 时序参数可分为 3 类 - 整体读取时序、时钟到选通的关系和数据选通到数据的关系。请参阅 DRAM-read-operation以了解基础知识。

参数

功能

读时序

CL (CAS Latency)

CAS 是 Column-Address-Strobe,即当列地址出现在行上时。 CL 是内部 READ 命令与输出数据的第一bit可用之间的延迟,以时钟周期为单位。它在 MR0 模式寄存器中定义。 SDRAM 数据表通常会具体说明需要为特定操作频率设置的 CL。 见图 7

AL(附加延迟)

使用 AL,设备允许在 ACTIVATE 命令之后立即发出 READ 命令。在设备内部发出命令之前,该命令会保留 AL 的时间。支持这一功能是为了维持设备中更高的带宽/速度。

RL (Read Latency)

这是整体读取延迟,定义为 RL = CL + AL

tCCD_S & tCCD_L

与对同一bank group内的bank访问相比,对不同bank group内的bank访问需要更少的时间延迟。对不同bank gourp的库访问需要在命令之间有 tCCD_S(或短)延迟,而同一bank group内的bank访问命令之间需要 tCCD_L(或长)延迟。

时钟与数据选通的关系

tDQSCK (MIN/MAX)

描述了相对于时钟 CK_t、CK_c 的数据选通上升沿的允许范围

tDQSCK

是相对于CK_t、CK_c的上升选通沿的实际位置

tQSH

描述了数据选通高脉冲宽度

tQSL

tQSL - 描述数据选通低脉冲宽度

数据选通到数据关系

tDQSQ

这描述了相关DQ数据引脚的最新有效转换。从下图中你会看到,它是DQS转换到DQ数据眼的左边缘之间的时间

tQH

是相关DQ引脚的最早无效转换。从下图中你会看到,它是指从DQS变成高电平到DQ数据眼的右边缘的时间

表3 : read命令时序参数

图5 : 对不同bank group的连续读取。在这个图中AL=0,CL=11,所以RL=11。请注意,第二个读数的数据突发(DQ总线)紧接着第一个读数,没有任何间隙。还注意到2个连续读数之间的tCCD_S。

图6 : 对不同bank group的非连续读取。

图7 : tCCD_S和tCCD_L的图示。

图8 : 说明 CK-DQS 和 DQS-DQ 关系。

写时序

类似于 READ ...

参数

功能

写时序

CWL (CAS Write Latency)

CWL是内部WRITE命令与输入数据的第1 bit可用之间的延迟,以时钟周期为单位。它被定义在模式寄存器MR2中。

AL (Additive Latency)

通过AL,设备允许在ACTIVATE命令后立即发出WRITE命令。该命令在设备内部发出前会被保留AL的时间。支持这一功能是为了维持设备中更高的带宽/速度。

WL (Write Latency)

这是整体写入延迟,定义为 WL = CWL + AL

tCCD_S & tCCD_L

与同一bank组内的bank存取相比,不同bank组的bank存取需要较少的存取时间延迟。对不同bank组的bank访问需要在命令之间有tCCD_S(或更短)延迟,而同一bank组内的bank访问需要在命令之间有tCCD_L(或更长)延迟。

时钟与数据选通的关系

tDQSS (MIN/MAX)

描述了相对于 CK 的数据选通上升沿的允许范围

tDQSS

是选通上升沿相对于 CK 的实际位置

tDQSH

描述了数据选通高脉冲宽度

tDQSL

描述了数据选通低脉冲宽度

tWPST

这就是 "后写"(post-write)。它是指从最后一个有效数据选通到选通转为高电平、非驱动电平的时间

tWPRE

这就是“预写”(pre-write)。这是数据选通从无效(HIGH)变为有效(LOW,初始驱动电平)之间的时间。

表4 : write命令时序参数

图9 : write时序

模式寄存器时序

SDRAM提供了许多特性、功能和设置,可以使用7个模式寄存器进行编程。这些寄存器可以使用MRS(模式寄存器设置)命令进行编程。模式寄存器在初始化过程中被设置,此后在正常操作过程中可以随时改变它们。模式寄存器的设置受两个定时参数的制约。

参数

功能

tMRD

MRS命令周期时间。它是完成对模式寄存器的WRITE操作所需的时间,也是tMRD时序图中显示的两个MRS命令之间所需的最小时间。

tMOD

是指从一个MRS命令到一个非MRS命令所需的最短时间,不包括DES。

表5 : 模式寄存器时序参数

图10 : tMRD时序

图11 : tMOD 时序

DDR4 时序参数理解相关推荐

  1. DDR4时序标准规范(二)

    DDR4时序标准规范 编码模式寄存器(MRx) 模式寄存器0(MR0) CAS延迟 测试模式TM 写恢复(WR)/读预充 DLL(延时锁相环)复位 模式寄存器1(MR1) DLL(延时锁相环)使能/禁 ...

  2. DDR4时序标准规范(一)

    DDR4时序标准规范 引脚描述 DDR4 SDRAM寻址 DDR4架构的模块描述 功能描述 简化状态机 基本功能 复位和初始化程序 上电和初始化顺序 电压稳定后的复位初始化顺序 无控制的下电顺序 引脚 ...

  3. FPGA逻辑设计回顾(10)DDR/DDR2/DDR3中的时序参数的含义

    前言 本文首发自:FPGA逻辑设计回顾(10)DDR/DDR2/DDR3中的时序参数的含义 上篇文章:FPGA逻辑设计回顾(9)DDR的前世今生以及演变过程中的技术差异有提到,制造商会以一系列由破折号 ...

  4. db链接相关链接相关参数理解

    db链接相关链接相关参数理解 max_connect_errors:tcp/ip链接建立后等待client发送账号,密码等身份验证信息的超时时间的次数 connect_timeout:tcp/ip链接 ...

  5. [转帖]/proc/sys/net/ipv4/ 下参数理解

    /proc/sys/net/ipv4/ 下参数理解,方便服务器优化 2017年06月02日 16:52:27 庞叶蒙 阅读数 3065 https://blog.csdn.net/pangyemeng ...

  6. ernie和Bert的参数理解

    BERT参数的理解 bert参数量隐藏在每一层的shape当中.把如上shape累加即为全部参数量. 总参数量=input_parm+12*encoder_parm=(30522+512+2)768+ ...

  7. BrokenPipeError: [Errno 32] Broken pipe 基于pytorch的训练 num_worker参数理解

    BrokenPipeError: [Errno 32] Broken pipe 解决 原因: 在训练过程中,设置的num_workers过大 修改为 num_workers=0 即可. num_wor ...

  8. 一起学时序分析之基础时序参数

    目录 时序参数 时钟信号 触发器 建立时间​编辑 保持时间​编辑 传输延迟​编辑 亚稳态时间 恢复时间​编辑 清除时间​编辑 组合逻辑电路 时钟信号的决定因素 什么是时序电路?我曾写过一篇文章来阐述时 ...

  9. 【综合】数字IC设计需要考虑的时序参数;Race Hazard;同步系统时序要求;建立时间、保持时间;偏斜;抖动;毛刺、竞争冒险;亚稳态

    [综合]数字IC设计需要考虑的时序参数:Race Hazard:同步系统时序要求:建立时间.保持时间:偏斜:抖动:毛刺.竞争冒险:亚稳态 数字设计时需要考虑的时序参数 传播延迟 propagation ...

最新文章

  1. java jar包 和 war包 区别
  2. ffmpeg4编解码例子
  3. pycryptodom的源码安装
  4. DeprecationWarning: Function log_multivariate_normal_density is deprecated; The function log_multiva
  5. 计算机网络按定义分,计算机网络定义及其分类
  6. python 集合
  7. java中为什么要用json_Java中使用JSON
  8. SQL Server 负载均衡方案集锦
  9. 区块链学堂(3):Solidity
  10. 基于SpringBoot+Vue开发的前后端分离博客项目-Java后端接口开发
  11. Http协议与TCP协议理解(转载的)
  12. jsp include指令标签
  13. 宽带和流量是分开的吗_宽带
  14. WebSocket传输图片
  15. python形参、实参
  16. 360奇云的架构演进之路
  17. linux搜狗输入法16.04,Unbuntu16.04安装搜狗拼音输入法的图文教程
  18. monthcalendar_Python日历模块| 带有示例的monthcalendar()方法
  19. 宝瓷林【名贵釉系列】宫廷秘釉“茶叶末”
  20. 人工智能的发展前景如何?做人工智能收入高吗?

热门文章

  1. 均值、方差、标准差的理解
  2. C#画K线实现加载均线(5日,10日)
  3. 如何通过CRM系统获取更多销售线索?
  4. Mysql笔试+面试题积累(实时更新)
  5. Rhel5.8下载安最新版本的Python3
  6. Java POI 对Excel合并单元格的数据处理
  7. 自动批量处理人像照片
  8. 【BZOJ2152】聪聪可可 树分治
  9. 浙江省高校计算机等级考试二级Python 程序设计题0|2023备考
  10. 什么是服务器集群?集群服务器有什么好处