[DDR5 Jedec] 读操作 Read Command 精讲

2024-06-13 23:36

本文主要是介绍[DDR5 Jedec] 读操作 Read Command 精讲,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

依公知及经验整理,原创保护,禁止转载。

专栏 《深入理解DDR》

Read

读取命令也可以视为列读取命令。当与正确的bank地址和列地址结合使用时,通过激活命令(行访问)移动到检测放大器中的数据, 现在被推送到数据总线上。 DRAM 通常包括一个“读取和自动预充电”命令,该命令执行列读取,然后关闭/预充电行。这样,就不需要发出单独的预充电命令。如果需要访问同一行,但需要访问不同的列,则根本不会发出预充电,并且该行将保持打开状态。要使用 read 命令,CS 和 CAS 被拉低,而 RAS 和 WE 被拉高。

在这里插入图片描述
图. 高亮显示Active 和 读操作
图中黄色高亮的行, 是 Active 操作对象。紫色高亮的列, 是读操作的对象。

1.1 Read 过程

在这里插入图片描述
图. 读操作

上图是 BL 为 8 的一组 Read 操作。分为两步骤

  1. Act 命令线激活 bank 某一行
  2. 第二步是 RDA(Read 自动预充电读取), 当连续读长度达到 BL(8)后, 读完成, 并自动预充电。

地址位寄存器以及“读取”或“写入”命令用于选择用于突发操作的列。此步骤是 CAS 或列地址选通。由于每个组只有一个感应放大器,因此在移动到第二个行之前必须停用第一个行。这是使用 PRECHARGE 命令完成的。还有其他方便的命令替代品,如 RDA(使用自动预充电读取)和 WRA(使用自动预充电写入)命令,它们会自动处理激活和停用。

在这里插入图片描述
图 完整的 Burst Length 的 Read Cycle

1.2 Read 时序

Read 时序分三类参数, 分别是 读取时序,时钟到DS (data strobe) 关系,DS 到 Data 的关系

读取时序

参数功能
CL (CAS Latency)CAS 是 Column-Address-Strobe,即当列地址出现在行上时。CL 是内部 READ 命令与输出数据第一位之间的延迟(以时钟周期为单位)。
AL (Additive Latency)使用 AL,设备允许在 ACTIVATE 命令之后立即发出 READ 命令
RL (Read Latency)总体读取延迟
tCCD_S & tCCD_L与Bank访问同一Bank组内的银行相比,访问不同bank group 之间的时间延迟更少。对不同bank group 的访问命令需要间隔的tCCD_S(短时间)延迟,而同一bank group 内的访问命令要间隔tCCD_L(长时间)延迟。

在这里插入图片描述
图:对不同Bank Group的连续读取。(来源:美光数据表)

在这里插入图片描述
图:tCCD_S 和 tCCD_L 的图示(来源:美光数据表)

tDQSCK (MIN/MAX)描述数据选通边沿相对于时钟CK_t的允许范围
tDQSCK是上升频闪边沿相对于CK_t的实际位置
tQSH描述数据选通高脉冲宽度
tQSL数据选通低脉冲宽度。

在这里插入图片描述
图:CK-DQS 和 DQS-DQ 关系图示(来源:美光数据表)

参考

1https://www.systemverilog.io/design/ddr4-basics/#read

在这里插入图片描述

免责声明

一. 本博客及动态出现的信息,均仅供参考。本人将尽力以求所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性。本人对有关资料所引致的错误、不确或遗漏,概不负任何法律责任(包括侵权责任、合同责任和其它责任)。

二. 任何透过本博客及动态的网页或链接及得到的资讯、产品及服务,本人概不负责,亦不负任何法律责任。

三. 本博客及动态使用的信息,网页或链接(图片)可能由于本人疏忽未标明作者和出处,如有侵权,请立即与本人取得联系。

四. 本博客及动态支持保护知识产权,任何单位或个人认为本博客及动态中的网页或链接内容可能涉嫌侵犯其知识产权,应该及时向本人提出,并提供侵权情况证明。本人会依法尽快删除相关内容或断开相关链接。

五. 本博客内容仅供学习交流,禁止商用。

六. 阅读并使用本博客及动态包括其提供的网页链接及资源时,即代表您已阅读并同意本免责声明的全部内容。如有异议,请立刻关闭本网页并屏蔽本人动态并停止使用。

这篇关于[DDR5 Jedec] 读操作 Read Command 精讲的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Redis中管道操作pipeline的实现

《Redis中管道操作pipeline的实现》RedisPipeline是一种优化客户端与服务器通信的技术,通过批量发送和接收命令减少网络往返次数,提高命令执行效率,本文就来介绍一下Redis中管道操... 目录什么是pipeline场景一:我要向Redis新增大批量的数据分批处理事务( MULTI/EXE

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常