[DDR5 Jedec 4-1] 预充电命令 Precharge

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

专栏 《深入理解DDR》

1. 预充电(Precharge)含义

由于SDRAM的寻址具体独占性,因此在进行完读写操作后,若需对同一L-Bank的另一行进行寻址,则必须先关闭原有的行,然后重新发送行/列地址。预充电(Precharge)操作用于关闭当前的工作行,以准备打开新行。

2. Cell 预充电原理

预充电是一种操作,通过对存储体内的数据进行重写,对工作行中的所有存储体进行数据重置。

预充电操作会将S-AMP中的数据回写,这会干扰存储电容的电量。电容的电量或产生的电压将成为判断逻辑状态的依据。在判断过程中需要设定一个临界值,一般为电容电量的一半。如果电容电量超过这个临界值,就进行重写,表示逻辑1;否则,不进行重写,表示逻辑0(即放电)。一般会将电容的另一端接入一个指定的电压(电容电压的一半),这样做可以帮助在重写时进行比较和判断。

引用
作者: 硬件十万个为什么
链接: SDRAM的 预充电(Precharge)和 刷新(Refresh)

在这里插入图片描述

3. Cell 预充电过程

在这里插入图片描述
下面以cell 0 为例子, 说明读写过程中 cell 预充电过程

3.1 读过程(包含预充电步骤)

  • 首先,将所有字线(W0,W1…Wn)关闭,使所有场效应晶体管(FET)不导通。

  • 然后,通过预充电开关(未在图中显示)将位线B0拉到Vcc/2,即VB0=Vcc/2。这个操作被称为预充电。在读操作中,位线需要预充电至Vcc/2。

  • 接下来,断开预充电开关,停止充电。

  • 将W0设置为高电平Vcc,此时Cell0的FET导通。

如果原来存储的是1,Cbit电压将大于VB0,使得Cbit对字线B0充电,导致VB0>Vcc/2。经过放大器Sense AMP放大后,VB0电压会达到VCC电平,也就是读出1。

如果原来存储的是0,Cbit电压将小于VB0,字线B0将对Cbit充电,使得VB0<VCC/2。经过放大器Sense AMP后,电压被拉到GND,即读出0。

3.2 写过程

写0

  • 首先,将位线B0拉低。

  • 然后,将W0拉高,打开FET,使得Cbit通过B0放电到GND。

  • 最后,将W0拉低,完成写入逻辑0的操作。

写1

  • 首先将位线B0置于高电平状态。
  • 接下来,将位线W0拉高,打开场效应晶体管,并使Cbit通过B0充电至VCC电压。
  • 最后,将位线W0拉低,完成将1写入Cbit。

引用
版权声明:本文为CSDN博主「硬件工程师炼成之路」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42005993/article/details/103864181

4. 预充电命令工作机制

PRECHARGE命令用于停用特定存储体中的打开行或所有存储体中的打开行。在发出PRECHARGE命令后的指定时间(tRP),存储体将可用于后续行激活,但并发自动预充电的情况除外,在并发自动预充电的情况下,允许对不同存储体发出READ或WRITE命令,只要它不中断当前存储体中的数据传输,并且不违反任何其他定时参数。一旦存储体被预充电,它就处于空闲状态,并且必须在向该存储体发出任何读取或写入命令之前被激活。

如果在该存储体中没有打开的行(空闲状态),或者如果先前打开的行已经在预充电过程中,则允许PRECHARGE命令。但是,预充电周期将由向存储体发出的最后一个PRECHARGE命令决定。

如果读或写命令的第二个脉冲上的CA10为低电平(在命令真值表中显示为AP=L),则自动预充电功能被占用。此功能允许在突发读取周期期间部分或完全隐藏预充电操作(取决于CAS延迟),从而提高随机数据访问的系统性能。RAS锁定电路在内部延迟预充电操作,直到阵列恢复操作完成(tRAS满足),以便可以在任何读取时发出自动预充电命令。自动预充电也在写命令期间实现。由自动预充电命令进行的预充电操作将不会开始,直到突发写入序列的最后数据被正确地存储在存储器阵列中。在向该存储体发出隐藏的预充电命令(AutoPrecharge)之后的指定时间(tRP),该存储体将可用于随后的行激活。

5 Precharge Command Modes

DDR5支持三种不同类型的预充电命令:Precharge、Precharge All和Precharge Same Bank。
Precharge预充电命令(PREpb)将预充电应用于BG[2:0]定义的特定存储体组中BA[1:0] {如果适用}定义的特定存储体,

而Precharge All(PREab)将预充电应用于所有存储体组中的所有存储体。

Precharge Same Bank(PREsb)将预充电应用于所有存储体组中BA[1:0]定义的特定存储体。在3DS DDR5 SDRAM设备的情况下,也将选择CID[3:0]来识别目标裸片。

参考

硬件十万个为什么https://www.sohu.com/a/126626646_463982

在这里插入图片描述

免责声明

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/21152.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于SQL中json类型字段优化查询

场景 写sql时&#xff0c;会出现大量的left join的情况&#xff0c;针对这种方式提供 两种解决方案。 解决方案 方案一 宽表&#xff0c;但是其维护性差 方案二 JSON类型字段 将业务查询的一些实体类 直接以JSON的形式存到数据库&#xff0c;以下是SQL代码查询的实例 dat…

vue3 源码下载地址

想要了解vue3底层的代码逻辑&#xff0c;就需要看其代码&#xff0c;为了技术的进步&#xff0c;冲啊。 源码下载地址&#xff1a; git clone https://github.com/vuejs/core.git 雄鹰每次折断翅膀&#xff0c;是为了飞的更高更远。技术提升起来&#xff0c;飞的更远更高。

Linux虚拟机设置定时任务(crontab)

Linux虚拟机设置定时任务(crontab) 在Linux中&#xff08;使用Cron&#xff09;&#xff1a; crontab 详解: crontab 是一个用于在 Unix 和类 Unix 操作系统上运行定期任务的工具。它允许用户根据特定的时间表执行命令或脚本&#xff0c;而无需手动执行它们。 使用 crontab…

0开篇-介绍

创作灵感 最近又开始写Python&#xff0c;换新机器了&#xff0c;加上回顾硬盘上的一些资料&#xff0c;发现当时用在态势上的一些机器学习内容一直没有收尾&#xff0c;2019年10月研发中心成立中断了机器学习产品的研发&#xff0c;加上后来疫情&#xff0c;这几年荒废了。有…

如何创建一个线程池,为什么不推荐使用Executors去创建呢?

我们在学线程的时候了解了几种创建线程的方式&#xff0c;比如继承Thread类&#xff0c;实现Runnable接口、Callable接口等&#xff0c;那对于线程池的使用&#xff0c;也需要去创建它&#xff0c;在这里我们提供2种构造线程池的方法&#xff1a; 方法一&#xff1a; 通过Thre…

【vue】vue2项目将npm包管理器修改为yarn包管理器

【vue】vue2项目将npm包管理器修改为yarn包管理器 1.删除node_modules文件夹、package-lock.json文件 2.全局安装yarn npm install -g yarn3.安装项目依赖 yarn install如果执行yarn install 报类似以下这种版本不兼容错误&#xff0c;执行 yarn config set ignore-engines …

MySQL之数据库数据库范式学习笔记(二)

三大范式 范式是数据库设计中的概念&#xff0c;用于规范化数据结构&#xff0c;以减少数据冗余并确保数据的一致性和完整性。MySQL 数据库设计通常遵循一定的范式&#xff0c;其中最常见的是第一至第三范式。以下是各个范式的简要说明&#xff1a; 第一范式&#xff08;1NF&…

【Qt】探索Qt绘图世界:自定义控件与视觉效果的全面指南

文章目录 前言&#xff1a;1. 绘图基本概念2. 绘制各种形状3. 绘制文字&#xff08;显示文字&#xff09;、设置画笔4. 画刷5. 绘制图片6. 特殊的绘图设备总结&#xff1a; 前言&#xff1a; 在软件开发中&#xff0c;图形用户界面&#xff08;GUI&#xff09;的设计是至关重要…

Unity中帧动画素材的切割设置

有几个问题&#xff0c;美术在给我们帧动画的时候&#xff0c;一般都是给一个比较大的图&#xff0c;然后进行切割成多个sprite&#xff0c;导入到animation中 一般来说&#xff0c;进行那个autoSlide&#xff0c;自动切割就可以了 这个自动切割的图片会沿着有像素的最小包围…

【1】AI介绍

迎接 AGI 时代 AGI(Artificial General Intelligence),人工通用智能,AGI是一种可以执行复杂任务的人工智能,能够完全模仿人类智能的行为。应用领域涉及医疗、交通、智能家居等多个与人类活动密切相关的领域。 AGI 多久会到来? 乐观预测:明年(未来已来)主流预测:3-5…

js 同步和异步学习笔记

1、为什么有同步和异步&#xff1f; js是单线程&#xff0c;因为同个时间只能处理一个任务&#xff0c;所有的任务都要排队&#xff0c;前一个任务执行完&#xff0c;才能继续执行下一个任务。 因此js设计时先挂起来处于等待中的任务&#xff0c;先运行排在后面的任务&#xff…

【数据结构与算法 | 力扣篇】力扣每日一题575

1. 力扣575 : 分糖果 (1). 题 Alice 有 n 枚糖&#xff0c;其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长&#xff0c;所以前去拜访了一位医生。 医生建议 Alice 要少摄入糖分&#xff0c;只吃掉她所有糖的 n / 2 即可&#xff08;n 是一个偶数&#…

RHEL7.9修改分区

系统RHEL7.9 他因为安装软件&#xff0c;需要修改分区 进入超级用户root&#xff0c;输入lsblk 查看分区&#xff0c;可见465.8G系统盘sda下有三个物理卷&#xff0c;其中sda3下/home有410.6G&#xff0c;需要这部分拆分出200G软件和100G的数据库分区 备份/home 目录下文件 c…

Apache Omid Idea Debug 环境搭建

IDEA 搭建 Apache Omid 源码 DEBUG 环境 Apache Omid 在 Apache HBase 之上提供了多行分布式事务的能力&#xff0c;支持全局 MVCC 功能。简单介绍编译过程。 1.下载 HBase2 并启动 https://dlcdn.apache.org/hbase/ 配置环境变量 export HBASE_HOME/xxx/hbase-2.4.18 exp…

debian9 apt 镜像源问题

由于debian9在22年官方停服&#xff0c;所以sources.list需要改成带archive的路径&#xff0c;如下&#xff1a; deb http://archive.debian.org/debian/ stretch main non-free contrib deb-src http://archive.debian.org/debian/ stretch main non-free contrib deb http:/…

GDPU unity游戏开发 动画状态机

每一个动画状态都演绎着你的奔赴。 动画混合 1) 前往 Mixamo选择适合的角色模型和idle/walking/backward动画并下载。确保下载时选择FBX for Unity格式。 2) 新建Unity项目&#xff0c;导入下载的模型。 3) 在导入模型的Inspector窗口中&#xff0c;选择Materials选项卡&a…

chatgpt4和文心一言的简单对比

功能1. 写一个ebpf程序监控udp延迟 文心一言 答案 编写一个完整的eBPF程序来监控UDP延迟涉及多个步骤&#xff0c;包括编写eBPF C代码、编译、加载到内核&#xff0c;以及用户空间程序来读取eBPF map中的数据。以下是一个简化的示例框架&#xff0c;展示如何使用eBPF来监控U…

分治策略的实现

目录 前言 分治策略的应用 最大子数组问题 矩阵乘法问题 求解递归式的三种方法 代入法求递归式 用递归树求递归式 主方法求递归式 前言 分治三个步骤&#xff1a; 分解&#xff1a;分解原问题为子问题&#xff0c;这些子问题为原问题的较小规模的问题。 解决&#xf…

浅谈SpringBoot日志文件

文章目录 一、日志的作用二、如何在SpringBoot中使用日志2.1、在程序中得到日志对象。2.2、通过日志对象中提供的内置方法操打印日志信息2.2.1 日志级别2.2.1.1、日志级别有什么作用&#xff1f;&#xff1f;2.2.1.2、日志级别的分类2.2.1.2、在配置文件中设置日志级别[!] 三、…

对话机器人 Rasa 基本调试过程

以下记录rasa基本的配置&#xff0c;以及调试过程。首先用rasa init 生成一个初始的文件目录。 1、最简单的中文配置 打开项目根目录下的 config.yml 配置文件&#xff0c;修改如下&#xff1a; recipe: default.v1language: zhpipeline:- name: JiebaTokenizer- name: Lang…