DDR4 SDRAM - Understanding Timing Parameters

2023-11-04 23:50

本文主要是介绍DDR4 SDRAM - Understanding Timing Parameters,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言 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 长度的间隔

图-1 tRRD 时序图

  • 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 中设置。

  • 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

这篇关于DDR4 SDRAM - Understanding Timing Parameters的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/346015

相关文章

Understanding the GitHub Flow

这里看下Github的入门介绍    --链接 GitHub Flow is a lightweight, branch-based workflow that supports teams and projects where deployments are made regularly. This guide explains how and why GitHub Flow works

oracle startup失败,ORA-01078: failure in processing system parameters

SQL> startup ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/data/oracle/product/11.2.0/db_1/dbs/initorc1.ora'   出错的原因可能是:文件名字不正确,文件权限不对,文件不存在,文件损坏 下面以文

【xilinx】Versal Soft DDR4 内存控制器 - XCVP1902-2M 速度等级设备上某些存储体的时序收敛问题

描述 当在 XCVP1902 设备上使用软核内存控制器时,如果速度等级为 -2M,目标 Fmax 为 2933 Mbps,某些设计可能无法满足某些存储体的时序要求。 解决方案 如果软核存储控制器使用 SLR0 中的存储体 704/707、SLR3 中的存储体 714/719、SLR1 中的存储体 804/807 或 SLR2 中的存储体 814/819,那么时序收敛可能会很困难。

论文阅读:VideoMamba: State Space Model for Efficient Video Understanding

论文地址:arxiv 摘要 为了解决视频理解中的局部冗余与全局依赖性的双重挑战。作者将 Mamba 模型应用于视频领域。所提出的 VideoMamba 克服了现有的 3D 卷积神经网络与视频 Transformer 的局限性。 经过广泛的评估提示了 VideoMamba 的能力: 在视觉领域有可扩展性,无需大规模数据集来预训练。对于短期动作也有敏感性,即使是细微的动作差异也可以识别到在长期视

了解ROS Services和Parameters

1.使用rosservice命令通过service轻松attach到ROS的客户端服务器框架中,Services是另一种node之间通信的方法,允许node发请求和接收响应。执行rosservice命令,可以看到如下信息:   Commands:     rosservice args   printservice arguments     rosservice call   call th

redhawk:STA timing data file解析

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 往期文章:

Awesome-LLMs-for-Video-Understanding - 基于大型语言模型的视频理解研究

Awesome-LLMs-for-Video-Understanding 是 基于大型语言模型的视频理解研究 github : https://github.com/yunlong10/Awesome-LLMs-for-Video-Understandingpaper:Video Understanding with Large Language Models: A Survey https:/

内存之RAM、SRAM、DRAM、ROM、FLASH、SDRAM、DDR*(一篇文章就懂)

内存之RAM、SRAM、DRAM、ROM、FLASH、SDRAM、DDR* 内存   内存(Memory)指的是内存存储器,又称为主存,是CPU用来直接寻址和存储的空间,它相当于一座桥梁,用以负责诸如硬盘、主板、显卡等硬件上的数据与处理器之间数据交换处理,我们可以把内存看作数据缓存区,一个高速的缓存区。内存之所以称为内存,是相对于硬盘这些外存而言,我们要用的软件数据都安装存放在外存上,但是当我

关于Parameter 'xxx' not found. Available parameters are [0, 1, 2, param3, param1, param2]错误

今天因为修改一个方法而出现了这个问题 在网上搜罗了一下解决问题的方法   将dao层的参数前加上@Param("XXX") 修改之前的代码   List<ZzMessage> findByuserid(Long userId,String beginDate,String endDate); 修改之后的代码     List<ZzMessage> findByuserid(@P

【DRAM存储器三十九】LPDDR4/DDR4的时序训练相关内容之读方向的训练

👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容  参考资料:《镁光LPDDR4数据手册》 、《JESD209-4B》         跟写操作一样,一切跟读相关的训练都可以归结为read leveling,包括如下内容: read DQS gate training         我们知道控制器读DDR的时