SDR、DDR都是 SDRAM(Synchronous Dynamic Random-Access Memory), 相较于SDR只在时钟上升沿或下降沿进行数据传输,DDR特点是在时钟的上升沿与下降沿都进行数据传输,即一个时钟周期传输 2 拍数据,历代DDR提升速率方法如下:

DDR4采取将核心频率提高到200~400MHz,以提升总线速度
QDR 在保留 DDR 特征的基础上,升级了数据总线,DDR 只有 1 条数据通道,数据读/写操作共用,属于半双工工作方式,而 QDR 有 2 条独立数据通道,数据读/写操作可以同时进行,属于全双工工作方式,因此,QDR 的数据存取速率是 DDR 的两倍
| PIN | Symbol | Type | Function |
| 电源 | VDD | - | 芯片主电源输入,1.2 V +/- 0.06 V |
| VDDQ | - | DQ电源供电信号,1.2 V +/- 0.06 V | |
| VPP | - | DRAM激活电压,2.5V | |
| VREFCA | - | 控制/命令/地址信号的参考电平 | |
| 地 | VSS | - | 地 |
| VSSQ | - | DQ信号参考地。 | |
| 校准 | ZQ | - | 阻抗匹配(ODT)的校准参考,外接240Ω1% 电阻到地 |
| PIN | Symbol | Type | Function |
| 数据 | DQL[0:7]、DQU[0:7] | I |O | 低8位数据和高8位数据信号线,共16位数据信号线 |
| DML_n/DBIL_n | I |O | 低8位数据掩码 | |
| DMU_n/DBIU_n | I |O | 高8位数据掩码 | |
| DQSL_t/DQSL_c | I |O | 低8位数据选通信号 | |
| DQSU_t/DQSU_c | I |O | 高8位数据选通信号 |
| PIN | Symbol | Type | Function |
| 时钟 | CK_t/CK_c | I | 差分时钟输入信号,由DDR Controller输出 |
| PIN | Symbol | Type | Function |
| 地址 | BG[0:1] | I | Bank Group地址选择 |
| BA[0:1] | I | Bank地址选择 | |
| A[0:16] | I | 地址选择信号,(其中 A10/AP,A12/BC_n,A14/WE_n,A15/CAS_n,A16/RAS_n有其它功能,A17仅用于16Gb) | |
| 控制 | ALERT_n | O | 报警信号,若出现CRC错误或者命令/地址奇偶校验错误,该PIN脚拉低,告知DDR Controller |
| TEN | I | 测试模式使能信号,高电平使能测试模式,正常操作过程中,弱下拉 | |
| RESET_n | I | DDR复位信号,低电平有效 | |
| PAR | I | 命令/地址信号的奇偶校验使能,可通过寄存器禁用或者使能 | |
| ODT | I | 阻抗匹配使能 | |
| CKE | I | 时钟信号使能,控制芯片是否进入低功耗模式 | |
| ACT_n | I | 命令激活信号,为低电平时,可以通过A[14:16]地址信号线选择激活命令的行地址;为高电平时,Address信号线正常使用 | |
| CS_n | I | DDR芯片Select,用于多个RANK时的RANK组选择 |
DDR的数据信号参考 DQS 选通信号,地址/控制信号参考 CK_t/CK_c 差分时钟信号;
DRAM的基本存储单元(Storage Cell)采用的是晶体管控制电容充放电方法,电容充电代表1,电容(pF级别)放电代表0,实现 1bit 数据的读写。

如上图,只要给 MOS 管的栅极(Gate)高电平, MOS 管就会打开,电容中存储的电荷就会流入 BitLine 上,便可以进行信息的读取。
采用将多个 Storage Cell 组成一个二维阵列,可以实现更多信息的存储,即将同一行的所有MOS 管的栅极连接到同一根 WordLine上,把同一列的所有 MOS 管的源极连到同一根 BitLine 上,组成的 Memory Array (存储阵列)如下图所示:

可以看出,当我们要读出某一 Cell 存诸的信息时,需要给这一行的 WordLine 通高电平,这一行的 Cell 都将打开,每个 Cell 的电容器电平状态都将被加载到相应的 BitLine 上,也即能读出某个字中的所有位(bit)。一个字有多少位被称为字长,存储器中的字长和 CPU 的字长不太一致,如 64 位的 CPU,字长是 64,但在 DDR 存储器中,字长只有 4位、8位、16位。
实际应用中,由于 Cell 的电容值远小于 BitLine 线本身过长的引起的寄生电容值,导致很难可靠的识别 Cell 中的信息,因此采取差分存储思想,并将原来的参考零电平修改为 Vref,如下图所示

电容另一端电压为 VDD 时,此时其所存储的电荷
,即存储信息为 1;
电容另一端电压为 0 时,此时其所存储的电荷
,即存储信息为 0;
BitLine 也进行差分设置,两条 BitLine 在功能上完全等价,可以减小 Bit Line 的长度。
Differential Sense Amplifier 包含 Sensing Circuit 和 Voltage Equalization Circuit 两个主要部分。主要功能就是将 Storage Capacitor 存储的信息转换为逻辑 1 或 0 所对应的电压,并且呈现到 BitLine 上。同时,在完成一次读取操作后,通过 BitLine 将 Storage Capacitor 中的电荷恢复到读取之前的状态,基本电路如下图所示

一个完整的 Read Operation 包含 Precharge、Access、Sense、Restore 四个阶段
在这个阶段,首先会通过控制 EQ 信号,让 Te1、Te2、Te3 晶体管处于导通状态,将 Bitline 和 /Bitline 线上的电压稳定在 Vref 上,然后进入到下一个阶段;

Access
经过 Precharge 阶段, Bitline 和 /Bitline 线上的电压已经稳定在 Vref 上了,此时,通过控制 Wordline 信号,将 Ta 晶体管导通。Storage Capacitor 中存储正电荷会流向 Bitline,继而将 Bitline 的电压拉升到 Vref+,然后进入到下一个阶段。

Sense
由于在 Access 阶段,Bitline 的电压被拉升到 Vref+,Tn2 会比 Tn1 更具导通性,Tp1 则会比 Tp2 更具导通性。
此时,SAN (Sense-Amplifier N-Fet Control) 会被设定为逻辑 0 的电压,SAP (Sense-Amplifier P-Fet Control) 则会被设定为逻辑 1 的电压,即 Vcc。由于 Tn2 会比 Tn1 更具导通性,/Bitline 上的电压会更快被 SAN 拉到逻辑 0 电压,同理,Bitline 上的电压也会更快被 SAP 拉到逻辑 1 电压。接着 Tp1 和 Tn2 进入导通状态,Tp2 和 Tn1 进入截止状态。
最后,Bitline 和 /Bitline 的电压都进入稳定状态,正确的呈现了 Storage Capacitor 所存储的信息 Bit。

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

对差分存储 Storage Cell 进行抽象后,得到如下图所示的新结构图:

在不考虑形式的情况下,最简单的组织方式,就是在一个 Bitline 上,挂接更多的 Cells,如下图所示:

在实际制造过程中,并不会无限制的在 Bitline 上挂接 Cells。因为 Bitline 挂接 Cells 越多,Bitline 的长度就会越长,也就意味着 Bitline 的寄生电容值会更大,这会导致 Bitline 的信号边沿速率下降,导致性能的下降。 因此,可以把 Cells 分摊到 Bitline 差分对上,以减小 Bitline 的长度,如下图所示:

当两条 Bitline 都挂接了足够多的 Cells 后,如果还需要继续拓展,那么就只能增加 Bitline 了,增加后的结构图如下:

从图中可以看到,增加 Bitline 后,Sense Amplifier、Read Latch 和 Write Driver 的数量也需相应的增加,这意味着成本、功耗、芯片体积都会随着增加。因此,在实际的设计中,会优先考虑增加 Bitline 上挂接的 Cells 的数量,避免增加 Bitline 的数量,这也意味着,一般情况下 Wordline 的数量会比 Bitline 多。
上图是一个由 16 个 Cells 组成的 Memory Array。其中的控制信号有 8 个 Wordline、2 个 CSL、2 个 WE,一次进行 1 个 Bit 的读写操做,也可以理解为一个 8 x 2 x 1 的 Memory Array。
如果把 2 个 CSL 和 2 个 WE 合并成 1 个 CSL 和 1 个 WE,如下图所示。此时,这个 Memory Array 就有 8 个Wordline、1 个 CSL、1 个 WE,一次可以进行 2 个 Bit 的读写操作,也就是成为了 8 x 1 x 2 的 Memory Array。

按照上述过程,不断增加 Cells 数量,最终可以得到一个由差分存储组成的
的 Memory Array,如下图所示:

其中,m 为 WordLine 的数量、n 为 CSL控制信号的数量、w 则为一次可以进行读写操作的 bits
例如存储阵列大小为
,即通过控制 4 个行信号,2 个列信号,进行一次行列选通读写操作,可以同时选中 2 个 Storage Cell。
,
,

翻译一下:
DDR3 SDRAM的读取和写入访问是面向突发的。
访问从选定的位置开始,并按编程顺序继续访问编程数量的位置。
访问从ACTIVATE命令开始,然后跟着是READ或WRITE命令。
与ACTIVATE命令一起的地址位用于选择要访问的bank和row。
与READ或WRITE命令一起的地址位用于选择突发传输访问的bank和起始列位置。
| 标准 | 传输速率 | 核心频率 | Prefetch | 总线频率 | 最大位宽 | 电压 (V) |
| SDR | 100–166 | 100–166 | 1n | 100–166 | 16/16 | 3.3 |
| DDR | 200–400 | 100–200 | 2n | 100–200 | 16/32 | 2.5, 2.6 |
| DDR2 | 400–1066 | 100–266 | 4n | 200–533 | 16/64 | 1.8, 1.55 |
| DDR3 | 800–2133 | 100–266 | 8n | 400–1066 | 16/128 | 1.5, 1.35 |
| DDR4 | 1600–3200 | 200–400 | 8n | 800–1600 | 16/128 | 1.2 |
| DDR5 | 4800-8400 | 300-525 | 16n | 2400–4200 | 16/256 | 1.1 |

翻译一下:
DDR3SDRAM使用双倍数据速率架构来实现高速操作。
双倍数据速率架构是具有8n-refetch架构的接口,该接口被设计为在每个时钟周期传输两个数据字的 l/O 引脚处。
DDR3 SDRAM 的单次读或写访问,由内部 DRAM 内核的单个 8 位宽、一个时钟周期数据传输和在 I/O 引脚上的8个相应的 n 位宽、半时钟周期数据传输组成
注
DDR4 x4/x8/x16器件均为6个电气列,分为两组,每一组三个电气列,x4/x8格式为13行出球,x16为16行出球(不包括用于机械支撑的额外的非活动出球行),基于MO-207的出球策略示意图分别如下所示:


DDR4颗粒在容量上有 4 种规格,分别为 2Gb、4Gb、8Gb 、16Gb(
);每种颗粒容量提供 3 种地址数量 x 位宽的组合, x4 、 x8 DRAM 有 4 个 Bank Group,x16 DRAM 仅有 2 个 Bank Group ,如下表所示:




Memory Array 的 Data Width 是指对该 Array 进行一次读写操作所访问的 Bit 位数。这个位数与 CSL 和 WE 控制线的组织方式有关。
DRAM Memory 中的 Row 与 WordLine 是一一对应的,一个 Row 本质上就是所有接在同一根 Wordline 上的 Cells,如下图所示

DRAM 在进行数据读写时,选中某一 Row,实质上就是控制该 Row 所对应的 WordLine,打开 Cells,并将 Cells 上的数据缓存到 Sense Amplifiers 上。
Row Size
一个 Row 的 Size 即为一个 Row 上面的 Cells 的数量。其中一个 Cell 存储 1 个 Bit 的信息,也就是说,Row Size 即为一个 Row 所存储的 Bit 位数。
Column 是 Memory Array 中可寻址的最小单元。一个 Row 中有 n 个 Column,其中 n = Row Size / Data Width。下图是 Row Size 为 32,Data Width 为 8 时,Column 的示例

Column Size
一个 Column 的 Size 即为该 Column 上所包含的 Cells 的数量,与 Data Width 相同。Column Size 和 Data Width 在本质上是一样的,也是与 CSL 和 WE 控制线的组织方式有关
DDR4 的寻址由 BankGroup - Bank- Row - Column 组成,容量计算如下(以 2Gb 256Mb x 8 颗粒为例):
Bank Groups :4,即每个颗粒有 4 个Bank Group
BG Address:BG0~BG1,共 2 bit,即每个Bank Group 有 个Bank
Rows:A0~A13,共14 bit,Total number of row =
Columns:A0~A9, 共10 bit,Total number of column =
Total DRAM Capacity = 
即DDR颗粒有4个 Bank Group,每个bank Group有4个bank,每个bank有
的空间,每个空间存储 8 bit 数据
其中,Page size = Column x 位宽 = 1K x 8bit= 1KB




数据传输中涉及到 3 种不同的同步方式:源同步、系统同步、自同步



综上,DDR读写层级架构可以概括为:

倍
可以看出,DDR3 芯片内部的数据总线是其接口位宽的 8 倍,即内部数据总线是 64 位,一次行列选择操作能同时选中 64 个 Cell,驱动 64 个读写电路同时工作,完成 64位数据的读写。读出的 64 位数据被锁存在 8 个 8 位的 FIFO 缓冲队列中,靠 4 倍于内核时钟的高速接口时钟,分 8 个上升下降沿传输完成
DDR controller 发出一个 ACT 信号(CS_n 定位 Rank,BA 定位 Bank,Address 定位行、列),对应的 Bank 上的 Sense Amp 便加载对应行的数据,即把 Page 打开,然后按照 Burst 顺序,将连续的列地址的数据进行连续地读出。