Skip to content

DRAM 芯片与内存条

2026 大纲 三(四)1 DRAM 芯片和内存条

存储阵列这些年几乎没变快,内存条却快了好几倍

DDR 到 DDR2 到 DDR3,标称速率从 800 一路涨到 2133,很容易以为是芯片本身变快了。事实相反:DRAM 存储阵列内部的时钟这些年基本停在 200 MHz 左右,几乎没动过。电容充放电的物理过程摆在那里,快不了。

那快的是什么?是一次搬多少。DDR 系列的做法是 n 位预取——芯片内部一次从存储阵列取出 n 个数据放进 I/O 缓冲,再由 I/O 缓冲以高得多的速率往总线上送。DDR、DDR2、DDR3 的预取位数是 2、4、8,翻倍一次,对外的速率就翻一倍。

🔴 存储阵列没变快,变快的是搬运方式。 这一句是本篇的主线:后面的带宽公式、型号名里那个数字的含义、多通道,全都是"怎么在慢器件上榨出高带宽"的不同手段。

由此还带出一个必须先说清的坑:内存条型号里的数字(DDR3-1333 的 1333)既不是芯片内部时钟,也不是总线时钟,它是第三个数——搞混这三个,带宽会算差好几倍。第三节专门处理它。

一、从芯片到主存空间

单个 DRAM 芯片受集成度和功耗限制,容量做不大、位宽也窄,实际做法是分层组装:

DRAM 芯片内存条(主存模块)内存条插槽(存储器总线)存储控制器CPU图 7.9(b) 存储控制器、存储器总线、内存条和 DRAM 芯片之间的连接

图 7.9(b) 存储控制器、存储器总线、内存条和 DRAM 芯片之间的连接(袁春风《计算机组成与系统结构(第 3 版)》p215)

图里内存条上那一排小方块就是 DRAM 芯片;若干芯片做在一块小电路板上凑出所需的字长与容量,就是内存条(主存模块)。芯片如何在字方向和位方向上扩展成内存条,见 存储器扩展

第三层要特别说一句:

🔴 内存条插槽就是存储器总线。 它不是"连到总线上"的某个部件,它本身就是总线在主板上的物理接口——内存条的引脚经插槽引线接到主板,再连到存储控制器。理解了这一点,第四节"多通道 = 多铺几条独立的存储器总线"才讲得通。

二、SDRAM 与 DDR 系列

SDRAM(Synchronous DRAM)的特点是与存储器总线的时钟同步工作,在时钟控制下按突发方式连续读出多个数据,不必每个数据都重新给地址——这一步靠的正是 行缓冲:一行已经在缓冲里,连续切换列地址即可。

在此之上,DDR 系列加的是 n 位预取:

技术芯片内预取位数芯片内 CLK存储器总线时钟每时钟传送次数带宽(总线 64 位)
DDR2 位200MHz200MHz2200M×2×8=3.2 GB/s
DDR24 位200MHz400MHz2200M×4×8=6.4 GB/s
DDR38 位200MHz800MHz2200M×8×8=12.8 GB/s

注意"每时钟传送次数"这一列三代都是 2——双沿传输(上升沿和下降沿各传一次)是 DDR 家族的共同特征,不是某一代的改进。三代的区别只在预取位数那一列。

带宽因此有两个等价算法,从芯片一侧或从总线一侧都行:

B=芯片内 CLK×预取位数×总线宽度8=总线时钟×2×总线宽度8

以 DDR3 验一下:200M×8×8=12.8 GB/s,800M×2×8=12.8 GB/s,一致。

三、内存条型号里的数字是什么频率

这里有三个都叫"频率"的量,以 DDR3-1333 为例:

名称DDR3-1333 的值说明
芯片内部 CLK约 166MHz存储阵列的真实速度
存储器总线时钟约 666MHz166×4(8 位预取 ÷ 双沿)
工作频率(等效传输率)1333 MT/s666×2,型号名里的那个数

型号名给的一律是最后一行。

🔴 拿型号名里的数算带宽时,直接乘字节宽度,不要再乘 2——双沿传输那个因子已经含在 1333 里面了。再乘一次就把带宽算成两倍。

这与总线那一章的"工作频率"是同一件事,只是换了个场景表述,见 总线概述与分类

四、多通道存储器

既然插槽就是存储器总线,那么"铺多条总线"就是现成的提速手段。现代计算机可以同时铺多条存储器总线、每条独立传输,称为多通道:双通道带宽 ×2,三通道、四通道同理。

B=n×(工作频率×总线宽度8)

算例:三通道存储器总线,DDR3-1333 内存条,总线宽度 64 位。单通道 1333×64/8=10664 MB/s 10.66 GB/s,三通道约 32 GB/s。

实际使用中还有一条:主板上同色插槽属于同一组通道,插错位置会退化成单通道、带宽减半。

多通道与多体交叉都是"用并行换带宽",但不在一个层次上:多通道并行的对象是多条独立的存储器总线(总线级),多体交叉并行的对象是同一条总线下的多个存储体(存储器内部组织级)。两者可以叠加。

⚠️ 容量与带宽是两个独立的量。 容量取决于芯片数量与单片容量,带宽取决于工作频率与总线宽度。换一根容量更大但型号相同的内存条,带宽一点不变。

考点速记

  1. 层级是 DRAM 芯片 → 内存条 → 插槽(即存储器总线) → 存储控制器 → CPU;内存条是若干芯片在字、位两个方向扩展后的产物。
  2. SDRAM 与总线时钟同步;DDR 系列靠 n 位预取提速(2/4/8 位),芯片内 CLK 基本不变,三代都是每总线时钟传 2 次(双沿);带宽 = 芯片内 CLK × 预取位数 × 总线宽度/8,也等于总线时钟 ×2× 总线宽度/8
  3. 型号名里的数字(如 DDR3-1333)是等效传输率 MT/s,即工作频率,算带宽时不再乘 2n 通道总带宽 =n× 单通道;容量与带宽互不影响。

这一节在真题里被考过的形式

  • 挑关于某内存条的错误叙述:四个选项分别踩容量换算(单片容量 × 片数)、编址方式(多片并联 ⇒ 按字节交叉编址)、芯片地址引脚数行缓冲区大小。错点通常设在地址引脚上——把行地址位数与列地址位数相加当成引脚数(如 13+13=26),而 DRAM 是行列复用、实际只要 13 根。行缓冲大小则是列数 × 芯片位宽
  • 大题里问"主存带宽至少达到多少才能满足 CPU 的访存要求":路径是先算每秒访存次数(f/CPI× 每条指令访存次数),再乘每次传输的字节数。这一问的入口在性能指标那边,落点在这里的带宽公式。

易错:把型号名里的 1333 当成总线时钟再乘 2,带宽算成两倍。1333 已经是等效传输率。

易错:把行地址位数与列地址位数相加当作芯片地址引脚数。DRAM 分时复用同一组引脚,引脚数由 max(r,c) 决定。

易错:以为 DDR2 比 DDR 快是因为存储阵列变快了。芯片内 CLK 基本不变,变的是预取位数。

易错:把容量和带宽绑在一起想。换更大容量、同型号的内存条,带宽不变。

⚠️ 下方「真题练习」挂的是 main-memory 这个 topic,它汇集了整个主存部分的题——其中大部分属于兄弟篇:芯片数与地址范围归 存储器扩展,多体交叉与存储周期数归 多模块存储器,数据对齐与大小端归 数据的对齐存放

教材出处
  • 袁春风《计算机组成与系统结构(第 3 版)》§7.2.3 DDR SDRAM 芯片技术(p213~214,含 DDR/DDR2/DDR3 的预取位数与带宽算例)
  • 内存条和内存条插槽、存储控制器与存储器总线的连接(图 7.9):同上 §7.2.4,印刷页 p214~215

相关知识

半导体随机存取存储器主存和 CPU 之间的连接多模块存储器总线概述与分类

真题练习