DDR学习--分类、概念(一)

DDR SDRAM

(Double Data Rate Synchronous Dynamic Random Access Memory)
(双倍数据率同步动态随机存取存储器)
是一个双边沿采样、分时多通道、电容存储、可以读写的存储器。

分类

DDR、DDR2、 DDR3、 LPDDR3、 DDR3L、 DDR4、 LPDDR4、 LPDDR4x、DDR5
在这里插入图片描述

DDR外部结构

在内存中,其中每一个黑色的内存颗粒叫一个 Chip。所谓 Rank 指的是属于同一个组的 Chip 的总和。这些 Chip 并行工作,共同组成组成一个 64 bit 的数据,供 CPU 来同时读取。

CPU 的内存控制器能够对同一个 rank 的 chip 进行读写操作。通常一个通道(channel)能够同时读写 64bit 的数据。

内存字符串标识中的 2 R 表示该内存有 2 个 Rank。

2 R 后面的 * 4 表示每个内存颗粒的位宽是 4 bit。因为 CPU 要同时读写 64 bit 的数据。所以

对于位宽为 4 的颗粒,需要 16 个 Chip 来组成一个 Rank

对于位宽为 8 的颗粒,需要 6 个 Chip 来组成一个 Rank

对于位宽为 16 的颗粒,需要 4 个 Chip 来组成一个 Rank

BANK
在每个chip里一般都会有8个L-BANK(逻辑BANK)
在这里插入图片描述
每个逻辑BANK里包括ROW和COL行列地址,对应的每个小方格都可以存储1bit数据。
在这里插入图片描述

BG(BANK group)
是每个Bank Group可以独立读写数据,这样一来内部的数据吞吐量大幅度提升,可以同时读取大量的数据,内存的等效频率在这种设置下也得到巨大的提升。DDR4架构上采用了8n预取的Bank Group分组,包括使用两个或者四个可选择的Bank Group分组,这将使得DDR4内存的每个Bank Group分组都有独立的激活、读取、写入和刷新操作,从而改进内存的整体效率和带宽。如此一来如果内存内部设计了两个独立的Bank Group,相当于每次操作16bit的数据,变相地将内存预取值提高到了16n;如果是四个独立的Bank Group,则变相的预取值提高到了32n。

时钟信号

在这里插入图片描述
在这里插入图片描述

在实际工作中,L-Bank地址与相应的行地址是同时发出的,此时这个命令称之为“行有效”或“行激活”(Row Active)。在此之后,将发送列地址寻址命令与具体的操作命令(是读还是写),这两个命令也是同时发出的,所以一般都会以“读/写命令”来表示列寻址。根据相关的标准,从行有效到读/写命令发出之间的间隔被定义为tRCD,即RAS to CAS Delay(RAS至CAS延迟,RAS就是行地址选通脉冲,CAS就是列地址选通脉冲),大家也可以理解为行选通周期。tRCD是SDRAM的一个重要时序参数,可以通过主板BIOS经过北桥芯片进行调整。广义的tRCD以时钟周期(tCK,Clock Time)数为单位,比如tRCD=2,就代表延迟周期为两个时钟周期,具体到确切的时间,则要根据时钟频率而定,对于PC100 SDRAM(时钟频率等同于DDR-200),tRCD=2,代表20ns的延迟,对于PC133(时钟频率等于DDR-266)则为15ns。

RAS: Row Address Strobe,行地址选通脉冲;

CAS: Column Address Strobe,列地址选通脉冲;

tRCD: RAS to CAS Delay,RAS至CAS延迟;

CL: CAS Latency,CAS潜伏期(又称读取潜伏期),从CAS与读取命令发出到第一笔数据输出的时间段;

RL: Read Latency,读取潜伏期;

tAC: Access Time from CLK,时钟触发后的访问时间,从数据I/O总线上有数据输出之前的一个时钟上升沿开始到数据传到I/O总线上止的这段时间;

Brust(突发传输)

在这里插入图片描述

目前内存的读写基本都是连续的,因为与CPU交换的数据量以一个Cache Line(即CPU内Cache的存储单位)的容量为准,一般为64字节。而现有的P-Bank位宽为8字节,那么就要一次连续传输8次,这就涉及到我们也经常能遇到的突发传输的概念。突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输的周期数就是突发长度(Burst Lengths,简称BL)。

在进行突发传输时,只要指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址(SDRAM与DDR SDRAM的突发传输对列寻址的操作数量有所不同,在此不再细说)。这样,除了第一笔数据的传输需要若干个周期(主要是之前的延迟,一般的是tRCD+CL)外,其后每个数据只需一个周期的即可获得。
并且在列地址选择时,前4位为brust的设置
在这里插入图片描述

prefetch

DDR3的一次RANK访问中,8颗IC各有一个BANK同时在工作,以在一个RANK访问的短时间内处理8个8 Bytes(64 Bytes)数据,这个技术称为“预提取(Prefetch)”。通常DDR的预取是2n,DDR2的预取是4n,DDR3的预取是8n,DDR4的预取也是8n(n为DDR的位宽)。

这里还有一个问题,一个BANK在某个时刻只能打开一行,一次猝发结束后,这一行就得先关闭才能开启别的行。这个过程涉及到刷新该行的所有单元,并且再次给位线预充电,整个过程可能需要18个CPU时钟周期!

进一步,数据在DRAM和CPU之间是一块一块交互的,交互的对象称为“高速缓存行(Cash Line)”,一条高速缓存行一般是64 Bytes,即8个64 bits。现代DIMM的一次猝发就能塞满一条高速缓存行,因此DRAM和CPU的交互速率就是数据的传输速率。

  • 29
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉山有客不自赏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值