DDR5—新手入门学习(一)【1-5】

目录

1、DDR背景

(1)SDR SDRAM时代 :

(2)DDR SDRAM的创新 :

(3)DDR技术的演进 :

(4)需求推动:

2、了解内存

(1)DIMM的定义和历史:

(2)DIMM的分类:

3、DDR介绍

4、常见信号介绍

(1)内存访问流程:

(2)时延(Latency)

 5、读写操作

(1)读操作

(2)写操作


1、DDR背景

DDR内存技术从最初的DDR SDRAM发展到DDR4,其背景是计算机处理能力的不断提升和对更快数据处理速度的需求。

(1)SDR SDRAM时代 :

在20世纪90年代,Intel推出了首款同步动态随机存储器SDR SDRAM。
SDR SDRAM采用时钟同步接口,典型时钟频率为66MHz或83MHz,使用2n预取技术。

(2)DDR SDRAM的创新 :

DDR SDRAM,即双倍数据率SDRAM,于2000年左右推出。
DDR技术通过在时钟的上升沿和下降沿都传输数据,使带宽在相同时钟频率下翻倍。
DDR沿用了2n预取技术,并降低了成本和功耗。

(3)DDR技术的演进 :

DDR1:作为最早的DDR技术版本,DDR1通过每个时钟周期进行两次数据传输来提高传输速率。
DDR2:于2003年推出,采用更高的时钟频率和更高的数据传输速率,引入了新的电压规范(1.8V),降低了功耗。
DDR3:于2007年推出,进一步提升了数据传输速率、时钟频率和内存容量,采用更高的时钟频率和更低的电压(1.5V)。
DDR4:于2014年推出,具有更高的数据传输速率、更高的时钟频率和更大的内存容量支持,采用了Low Power Memory Access(LPA)技术,降低了功耗并提高了内存访问效率。

(4)需求推动:

随着CPU和其他计算机组件性能的不断提升,对内存的性能要求也越来越高。用户对更快的数据处理速度、更大的内存容量和更低的功耗的需求不断增长。随着互联网、多媒体应用、大型数据库和高性能计算等对内存性能要求极高的应用的普及,内存技术需要不断进步以满足这些需求。DDR内存技术的演进反映了整个计算机行业对更高效率、更好性能和更优能效比的不懈追求。每一次技术的更新换代都旨在提供更快的数据传输速度和更高的系统性能,以满足日益增长的计算需求。

2、了解内存

DIMM(Dual In-line Memory Module)是一种内存模块,它代表了内存条的基本形态,用于连接到计算机主板上的内存插槽。以下是从专业角度对DIMM及其不同类型进行的整理和总结:

(1)DIMM的定义和历史:

  • DIP (Dual In-line Package):在80286时代,内存颗粒以DIP封装形式直接插在主板上。
  • SIMM (Single-Inline Memory Module):随着80386时代的到来,内存颗粒被焊接在电路板上,形成了SIMM,其位宽为32位,即每个周期可以读取4个字节。
  • DIMM (Double-Inline Memory Module):随着奔腾处理器的推出,内存位宽增加到64位,即每个周期可以读取8个字节,SIMM因此演变为DIMM,这种形态至今仍被使用。

(2)DIMM的分类:

  1. RDIMM (Registered DIMM)

    • 用途:主要用于服务器领域。
    • 特点:包含寄存器(Register),提供额外的地址和控制信号缓冲,以提高内存的容量和稳定性。
    • ECC:大多数RDIMM配备错误校正码(ECC),以增强数据的安全性。
  2. UDIMM (Unbuffered DIMM)

    • 用途:通常用于标准台式电脑。
    • 特点:没有寄存器,因此成本较低,但稳定性和容量可能不如RDIMM。
    • ECC:UDIMM可以有无ECC版本,但大多数消费级产品通常不配备ECC。
  3. SO-DIMM (Small Outline DIMM)

    • 用途:专为笔记本电脑设计。
    • 特点:尺寸较小,以适应笔记本电脑的紧凑空间。
    • ECC:根据需求,SO-DIMM可以配备ECC。
  4. Mini-DIMM

    • 用途:用于对体积有严格要求的高端领域,如刀片式服务器。
    • 特点:是RDIMM的缩小版本,保持了RDIMM的高性能和稳定性,同时减小了尺寸。

不同类型的DIMM根据其用途和性能需求被设计出来,以满足从个人电脑到高端服务器等不同应用场景的需求。RDIMM因其稳定性和容量优势在服务器领域广泛使用,而UDIMM和SO-DIMM则更常见于消费级市场。Mini-DIMM则满足了特定高端应用对小尺寸和高性能的双重需求。

3、DDR介绍

Channel:内存通道(Channel)是内存控制器与内存模块之间的通信路径。在多通道配置中,每个通道可以独立工作,从而提高内存的带宽和性能。

DIMM (Dual In-line Memory Module):DIMM是物理内存模块,即我们通常所说的内存条。一个DIMM可以包含一个或多个Rank。

Rank:Rank是一组共享相同地址和控制信号的内存芯片集合。在图片中,每个DIMM有两个Rank(Rank 0和Rank 1),每个Rank由8个芯片组成。

Chip:芯片(Chip)是构成Rank的基本单元,每个芯片拥有自己的存储容量和内部结构。

Bank:每个芯片可以进一步划分为多个Bank。Bank是内存中可以独立操作的存储区域,可以提高并行访问数据的能力。

Row and Column:在每个Bank内部,存储矩阵由行(Row)和列(Column)组成。数据的存取通过指定行和列来实现。 

4、常见信号介绍

片选(Chip Select)信号
S0# 和 S1# 是片选信号,它们用于选择特定的内存Rank。每个信号的状态决定了哪个Rank被选中进行数据访问。

Bank地址线(BANK ADDRESS)
BA0-BA2 是Bank地址线,总共有3位,可以表示2^3=8个不同的Bank。这些地址线用于在多个Bank中选择一个特定的Bank进行访问。

列选(Column Address Select)信号
CAS# 是列选信号,当它为低电平时,表示列地址有效。这意味着此时在地址线A0-A13上传输的是列地址信息。

行选(Row Address Select)信号
RAS# 是行选信号,当它为低电平时,表示行地址有效。此时,地址线A0-A13上传输的是行地址信息,用于定位特定的行。

地址线
A0-A13 是地址线,它们用于传输行和列的地址信息。尽管这些地址线在物理上是共用的,但在不同的时间点上,它们分别表示行地址或列地址。

数据线
DQ0-DQ63 是数据线,用于在内存和外部设备之间传输64位的数据。

命令线(COMMAND)
COMMAND线用于传输各种内存访问命令,如读、写等。这些命令决定了内存操作的具体类型和流程。

(1)内存访问流程

1、行有效阶段

  • RAS# 为低电平,CAS# 为高电平。
  • 地址线A0-A13上传输行地址信息,以定位特定的行。

2、列有效阶段

  • RAS# 为高电平,CAS# 为低电平。
  • 地址线A0-A13上传输列地址信息,与先前选定的行结合,以唯一确定一个内存单元(即“小方格”)。
  1. 数据读取或写入阶段
    • 根据COMMAND线上的命令,执行数据的读取或写入操作。
    • 数据通过数据线DQ0-DQ63在内存和外部设备之间传输。

请注意,在这个系统中,没有专门的内存颗粒选择信号线。一旦Rank被选中,该Rank中的所有内存颗粒(在本例中为8个)将同时被选中,共同提供64位的数据带宽。

(2)时延(Latency)

在内存操作中,时延是一个关键参数,它决定了从发出命令到实际数据可用之间的时间间隔。以下是关于内存时延中几个重要参数的详细解释:

1、CAS Latency (CL):

  • CAS Latency,简称CL,指的是从CAS(Column Address Strobe,列地址选通)信号发出到第一笔数据实际被读取并输出的时间间隔。由于CL主要在读取操作中起作用,因此也被称为读取时延(RL, Read Latency)。
  • CL是内存性能评估中的一个重要指标。例如,CL7的内存意味着在发出读取命令后,需要等待7个时钟周期才能获得数据,而CL9的内存则需要等待9个周期。由于DDR3内存的每个时钟周期实际传输两次数据(双倍数据传输率),因此真正的时钟频率需减半计算。
  • 在相同频率的内存中,较低的CL值(如CL7)相较于较高的CL值(如CL9)可以带来显著的性能提升,有时甚至能高达22%。

2、tRCD (RAS to CAS Delay):

 

  • tRCD代表从RAS(Row Address Strobe,行地址选通)命令激活到CAS命令发出之间的时间间隔。这是为了确保存储阵列中的电子元件有足够的时间响应并准备数据传输。
  • 简而言之,tRCD是行地址激活与列地址读取之间的必要延迟。较短的tRCD值意味着更快的行到列的转换时间。

3、tRP (Precharge Command Period):

  • tRP指的是在前一次数据传输完成后,到下一次行地址激活之前,内存模块进行预充电所需的时间。预充电是内存操作中的一个关键步骤,它重置了行地址并准备进行下一次的读取或写入操作。
  • 较短的tRP值有助于减少内存访问的整体延迟,从而提高性能。

除了上述三个参数外,还有tRAS(Active to Precharge Delay)和CMD(Command Rate)等其他时延参数,它们共同构成了内存操作的整体时延。优化这些参数可以显著提升内存的性能和响应速度。然而,请注意,这些参数的设置通常需要基于特定的硬件和配置进行细致的调整。

 5、读写操作

(1)读操作

一个完整的读操作包含了 Precharge 预充电、Access 访问、Sense 感知、Restore 恢复 四个阶段。

Precharge 预充电阶段

在这个阶段,通过激活EQ(Equalize)信号,使得连接到Bitline和/Bitline的晶体管Te1、Te2、Te3导通,从而将Bitline和/Bitline连接到一个共同的参考电压Vref(Vcc/2)。这个过程确保了在读取操作开始之前,Bitline和/Bitline上的电荷被释放,并且它们的电压被拉到一个新的参考电平Vref。

这个操作的结果是,无论Bitline和/Bitline在上一次操作后保持了什么样的电荷状态,它们现在都被拉到了一个中间电平,为即将到来的读取操作提供了一个稳定的起点。这种电压均衡是差分放大电路正确工作的前提,因为它允许差分放大器准确地检测存储单元电容与Bitline和/Bitline之间的微小电压差异,从而读取存储的数据。

想象一下你有一个天平,两边分别放着两个盘子,我们用这两个盘子来代表Bitline和/Bitline。在读取存储在电容中的信息之前,我们需要确保这两个盘子是平衡的,也就是说,它们都处于同一个水平线上。

在之前的读写操作中,可能已经在这两个盘子上放了不同重量的物品(代表不同的电压电平)。如果不进行Precharge(预充电或电压均衡),那么当这次我们要读取新的信息时,如果直接打开连接到存储电容的开关(Ta开关),那么由于两个盘子上的重量(电压电平)可能不同,它们就会相互影响,导致天平失去平衡。

具体来说,如果Bitline上的电压比/Bitline高,那么当Ta开关打开时,Bitline上的电荷可能会流向存储电容,试图将电容的电压拉高。但如果电容中存储的是相反的电压(比如电容中的电荷是负的),那么Bitline上的正电荷就会与电容中的负电荷中和,导致电容中的信息丢失。

因此,Precharge过程就像是在读取信息之前,先把两个盘子上的所有物品都移走,让它们回到同一个水平线上(Vref电平)。这样,当我们再次打开Ta开关读取信息时,两个盘子(Bitline和/Bitline)就都是从同一个平衡状态开始,不会相互干扰,从而确保了存储电容中的信息能够被正确读取,不会被错误地中和或冲刷掉。

Access 访问阶段

在这个阶段,Wordline信号被激活,使得特定的访问晶体管(Access Transistor,通常称为Ta)导通,从而将选定的存储单元的电容与相应的Bitline连接起来。如果存储单元电容中存储的是正电荷(代表逻辑1),那么这些电荷将开始流向Bitline,但由于Bitline的寄生电容远大于存储单元电容,Bitline的电压只会从预充电阶段设定的参考电压Vref上升到一个略高的水平,通常表示为Vref+。这个微小的电压变化是存储单元电容中电荷状态的直接反映,并且为接下来的感知(Sense)阶段提供了必要的条件,其中差分感知放大器将放大这个微小的电压差,以确定存储单元电容中存储的是逻辑1还是逻辑0。这个过程对于确保数据的准确读取和维持存储器的性能至关重要。

Sense 感知阶段

在DRAM的读取操作中,Access阶段之后,进入Sense感知阶段,此阶段的核心是差分感知放大电路(Differential Sense Amplifier)的工作。在Access阶段,由于访问晶体管Ta的导通,存储单元电容与Bitline之间的电荷转移导致Bitline电压上升至Vref+,而其互补路径/Bitline保持在Vref。这个微小的电压差是感知放大器工作的基础。

差分感知放大电路由两对互补的MOSFETs组成,即NMOS Tn2和PMOS Tp1,它们分别对应于Bitline和/Bitline。当Bitline电压略高于/Bitline时,NMOS Tn2的栅极-源极电压差足够使其形成微小的导电沟道,允许电荷从SAN(Sense-Amplifier N-Fet Control,逻辑0电压,即0V)流向/Bitline,从而进一步降低/Bitline的电压。相反,PMOS Tp1在/Bitline电压略低于Bitline时形成导电沟道,允许电荷从SAP(Sense-Amplifier P-Fet Control,逻辑1电压,即Vcc)流向Bitline,从而进一步增加Bitline的电压。

随着SAN和SAP的强电压作用,Tn2和Tp1的导电沟道迅速扩大,导致/Bitline和Bitline的电压分别向逻辑0和逻辑1电平放大。这个过程是正反馈的,因为随着电压差的增加,沟道的导电性增强,进一步增加电压差。最终,Bitline和/Bitline的电压差被放大到一个可以被电路清晰识别的水平,即逻辑1或逻辑0。

在这一过程中,另外两个MOSFETs,即Tp2和Tn1,保持在截止状态,它们是感知放大器的负载设备,用于在感知放大过程结束后维持Bitline和/Bitline的状态。

差分感知放大电路的工作原理是利用MOSFET的开关特性和正反馈机制,而不是直接放大存储电容中的电荷。这种设计使得DRAM能够在读取操作中快速且准确地检测和放大存储单元电容的微小电荷变化,从而可靠地恢复存储的信息。

想象一下,你有两个水槽,一个叫Bitline,另一个叫/Bitline,它们开始时都被灌满了半水槽的水,水的高度代表电压,都是Vref。现在,我们通过一个小管子(访问晶体管Ta)从一个小水库(存储单元电容)向Bitline水槽中加水,使得Bitline水槽的水位稍微上升了一点,变成了Vref+。而/Bitline水槽的水位保持不变。

接下来,我们有两个帮手,一个叫Tn2,另一个叫Tp1,它们分别站在Bitline和/Bitline水槽旁边。Tn2手里拿着一个水管,水管的另一头连接着一个水源(SAN,逻辑0电压,0V)。Tp1手里也拿着一个水管,连接着另一个水源(SAP,逻辑1电压,Vcc)。

当Bitline水槽的水位比/Bitline高一点点时,Tn2就开始工作,打开水管,让0V的水流向/Bitline水槽,使得/Bitline的水迅速下降到0V。同时,Tp1看到/Bitline的水槽水位下降,也开始工作,打开水管,让Vcc的水流向Bitline水槽,使得Bitline的水迅速上升到Vcc。

这个过程就像是两个帮手在比赛,谁先把对方水槽的水放完或者加满。因为Bitline和/Bitline开始时只差一点点水位,所以这个比赛会迅速决出胜负。最终,一个水槽的水被放光(逻辑0),另一个水槽的水被加满(逻辑1)。

在这个过程中,还有两个帮手Tp2和Tn1,它们暂时没有工作,只是在旁边待命,准备在比赛结束后,帮助维持水槽的水位状态。

通过这个比喻,我们可以理解Sense感知阶段的核心原理:通过差分放大的方式,利用微小的电压差来快速准确地放大信号,从而确定存储单元电容中存储的是逻辑1还是逻辑0。这个过程是自动化的,一旦开始,就会迅速且准确地完成,确保我们能够读取DRAM中存储的信息。

Restore 恢复阶段

在完成 Sense 阶段的操作后,Bitline 线处于稳定的逻辑 1 电平 Vcc,此时 Bitline 会对电容器进行充电。经过特定的时间后,电容器中的电荷就可以恢复到读取操作前的状态。

最后,通过 CSL 信号,让 Tc1 和 Tc2 进入导通状态,多路复用的 Read Latch 电路(未画出) 就可以从 Bitline 差分线上从容地读取信息,并锁存起来。

(2)写操作

DRAM的写入操作在前期与读取操作相似,包括Precharge、Access、Sense和Restore阶段。在Restore阶段之后,写入操作进入Write Recovery阶段。在Write Recovery阶段,通过激活WE(Write Enable)信号,特定的写入晶体管Tw1和Tw2被导通。此时,Bitline被输入信号input拉至逻辑0电平,而其互补路径/Bitline则被输入信号的反相/input拉至逻辑1电平。经过一定时间后,存储电容中的电荷被完全放电,达到0状态。随后,通过控制Wordline信号,关闭连接存储电容的MOS晶体管,完成写入0的操作。这个过程确保了存储电容被正确地更新为所需的逻辑状态,无论是0还是1,从而完成了数据的写入。

 

 

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

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

相关文章

go学习笔记-从圣经中抄录的接口值的思考

接口值 接口值,由两个部分组成,一个具体的类型和那个类型的值 下面4个语句中,变量w得到了3个不同的值。( 开始和最后的值是相同的) var w io.Writer w os.Stdout w new(bytes.Buffer) w nil var w io.Writer var…

Python中的数据类型与函数之美

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、Python中的数据类型初探 代码案例: 二、Python内置函数的魅力 代码案例&a…

我用 Midjourney 的这种风格治愈了强迫症

在 Midjourney 能够实现的各种布局之中,有两种风格因其简洁、有序而独居魅力,它们就是平铺 (Flat Lay) 和 Knolling (Knolling 就是 Knolling, 无法翻译🤣)。要在现实生活中实现这样的美学效果并不容易,你需要精心挑选各种小物件&…

Mac JDK和SDK环境变量配置

一、Java JDK配置 1.下载并安装Java jdk1.8及以上,这个可以在网上自行搜索下载,这里不在详细描述 2.如果不知道JAVA_HOME的安装路径,可以输入命令查看:/usr/libexec/java_home -V ,如图 3.在终端输入命令&#xff1…

算法之堆排序

堆排序是一种基于比较的排序算法,通过构建二叉堆(Binary Heap),可以利用堆的性质进行高效的排序。二叉堆是一个完全二叉树,可以有最大堆和最小堆两种形式。在最大堆中,父节点的值总是大于或等于其子节点的值…

UIKit之猜图器Demo

需求 实现猜图器Demo 功能分解: 1>下一题切换功能 2>点击图片后能放大并背景变暗(本质是透明度的变化)。再次点击则缩小,删除暗色背景。 3> 答案区按钮点击则文字消失,选择区对应文字恢复。 4> 选择区…

springboot项目,@Test写法 @Before @After

某文件示例 package cn.xxx.crm.boss;import cn.xxxx.crm.manager.mq.rabbit.AliyunCredentialsProvider; import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; im…

第十九届全国环境友好科技竞赛(绿色创业类)正式启动

近日,第十九届全国环境友好科技竞赛(绿色创业类)正式拉开帷幕。本次竞赛由清华大学、同济大学、西安建筑科技大学及中国环境科学学会共同主办,旨在通过学科竞赛的方式鼓励全国高校学生积极参与到资源节约型和环境友好型的和谐社会…

探索python字典:遍历与访问的艺术

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、获取字典的键与值 1. 获取字典的键 2. 获取字典的值 二、遍历字典的键值对 1. 使用 …

【全开源】二手车置换平台系统小程序(FastAdmin+ThinkPHP+Uniapp)

二手车置换平台系统 特色功能: 车辆评估:系统提供车辆状况、性能和价值的评估功能,通过拍照、上传图片等方式自动识别车辆信息并给出估价建议,帮助买家和卖家更准确地了解车辆价值。 在线交易:平台提供在线购车、售车…

Idea中flume的Interceptor的编写教程

1.新建-项目-新建项目 注意位置是将来打包文件存放的位置&#xff0c;即我们打包好的文件在这/export/data个目录下寻找 2. 在maven项目中导入依赖 Pom.xml文件中写入 <dependencies> <dependency> <groupId>org.apache.flume</groupId> <artifa…

❤Element的使用element

❤Element的使用 1、input输入框 禁止自动补全和下拉提示 input 输入框在输入后浏览器会记录用户输入的值&#xff0c;在下次输入的时候会将记录的值提示在输入框的下面&#xff0c;当输入框是密码的时候&#xff0c;这样可以看见上次输入的密码&#xff0c;这样用户体验不好…

python使用jsonpath来查找key并赋值

目录 一、引言 二、JsonPath简介 三、Python中的JsonPath库 四、使用JsonPath查找JSON Key 五、使用JsonPath赋值JSON Key 六、高级用法 七、结论 一、引言 在数据驱动的现代应用中&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;已成为一种广泛使…

基于大数据的支付风险智能防控技术规范

随着大数据、移动互联、人工智能、生物特征识别等技术的快速发展&#xff0c;支付方式正在发生着巨大而深刻的变革&#xff0c;新技术在丰富支付手段、提高支付效率的同时&#xff0c;带来了新的隐患&#xff0c;也对从业机构的风险防控能力提出了更高的要求。 传统的风控技术…

01-02.Vue的常用指令(二)

01-02.Vue的常用指令&#xff08;二&#xff09; 前言v-model&#xff1a;双向数据绑定v-model举例&#xff1a;实现简易计算器Vue中通过属性绑定为元素设置class 类样式引入方式一&#xff1a;数组写法二&#xff1a;在数组中使用三元表达式写法三&#xff1a;在数组中使用 对…

【全部更新完毕】2024电工杯B题详细思路代码成品文章教学:大学生平衡膳食食谱的优化设计及评价

大学生平衡膳食食谱的优化设计及评价 摘要 大学阶段是学生获取知识和身体发育的关键时期&#xff0c;也是形成良好饮食习惯的重要阶段。然而&#xff0c;当前大学生中存在饮食结构不合理和不良饮食习惯的问题&#xff0c;主要表现为不吃早餐或早餐吃得马虎&#xff0c;经常食用…

宝塔面板修改端口后无法登入

今天通过宝塔面板登录腾讯云主机&#xff0c;看到下面的提醒&#xff0c;顺便点进去随便改了个端口 本以为改端口是很简单事情&#xff0c;结果我改完之后面板立马登不上了&#xff0c;接下来我改了登录地址和端口也不行&#xff0c;我以为是防火墙的问题&#xff0c;增加了防火…

ViT:1 从DETR说起

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调重新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提供了大模型领域最新技…

Pycharm在下载安装第三方库时速度慢或超时问题 / 切换国内镜像地址

pycharm下载第三方库速度极慢&#xff0c;搜索了一下&#xff0c;发现方法非常乱&#xff0c;稍作整理。这个问题一般都会出现&#xff0c;在我们开发中遇到的常见问题&#xff0c;根据以下解决方法&#xff0c;基本可以解决&#xff0c;但是不能100%保证 Installing packages …