这几个术语全部属于 DRAM(DDR 内存)体系,是内存寻址、物理架构核心概念,SOC/PCBA 测试、SI/PI、内存失效分析经常会用到。
1. Channel(内存通道)【最高层级】
Channel = 独立内存总线
- 一个 Channel 有一套完整的地址、控制、数据总线,可以独立访问内存。
- 常见:单通道、双通道、四通道。
- 举例:CPU 内存控制器有 2 个 Channel → 双通道。
- 特点:通道之间并行工作,带宽叠加;通道是控制器侧划分,不同 Channel 物理数据线完全分开。
控制器 → Channel → Rank
2. Rank(逻辑位组 / 内存片选)
Rank:同一个 Channel 内,一组可以同时被选中的 DRAM 芯片集合
- 一个 Rank 由若干颗 DRAM 芯片组成(如 8 颗 + ECC 就是 9 颗),共用同一组地址 / 控制信号,CS#(片选)用来选 Rank。
- 单 Rank(1R):通道里只有一组芯片;双 Rank(2R):同一通道两组芯片,两组芯片共享地址线,靠 CS 片选切换。
- 重点:Rank ≠ 物理芯片,一个 Rank 是逻辑片选单元。
Channel → Rank → Bank
3. Bank(存储体)
Bank:DRAM 芯片内部独立的存储阵列
- 一颗 DRAM 芯片内部划分多个 Bank(DDR4 一般 8Bank,DDR5 16Bank)。
- 同一个芯片内,不同 Bank 可以交错访问(Bank interleaving),提高吞吐;同一 Bank 需要等待预充电、行激活,存在行冲突。
- 寻址顺序:先激活 Bank 里的 Row,再读写 Column。
Rank → DRAM Chip → Bank → Row / Column
4. Row(行,也叫 Wordline 字线)
Bank 内部存储阵列的行。
- DRAM 操作核心:行激活(ACT),打开一整行,把这一行所有单元数据读到行缓冲(Row Buffer)。
- 打开新 Row 前,必须对旧 Row 做预充电 Precharge。
- 行相关时序:tRCD、tRP、tRAS 都是 Row 的时序参数。
5. Column(列,Bitline 位线)
Bank 阵列里的列,对应数据位。
- 行激活之后,再发送列地址,读出 / 写入对应列的数据(READ/WRITE 命令)。
- 列地址用来从已经打开的行缓冲区中挑选具体 bit。
层级关系总览(从上到下寻址路径)
Memory Controller → Channel → Rank → DRAM Chip → Bank → Row → Column
一句话精简记忆
- Channel:独立总线,决定并行带宽(双通道 / 四通道)
- Rank:通道内的片选组,CS# 控制,一组芯片为 1Rank
- Bank:单颗 DRAM 内部独立存储块,支持交错访问
- Row:Bank 里的一行,ACT 命令打开整行到行缓冲
- Column:一行里面的列,选中具体要读写的数据位
图 1:内存整体层级(Channel → Rank → Bank → Row → Column)
图 2:DRAM 芯片内部 Bank 阵列放大图(二维存储阵列)
图 3:寻址顺序简化流程图
6.ROW 和 COLUMN 与 WL 和 BL 的关系
(物理导线)Column(逻辑列) ↔ BL Bitline 位线(物理导线)
- Row / Column:逻辑寻址概念(控制器 / 地址译码层面)
- WL / BL:芯片阵列里面的物理金属线(硅片硬件)
1T1C DRAM 单元:晶体管栅极接 WL,晶体管另一端接 BL,电容存电荷。 一条 WL 横向贯穿一整行所有存储单元;一条 BL 纵向贯穿一整列所有存储单元。
1. Row ↔ WL(字线 Wordline)
- Row:Bank 阵列里的逻辑行地址。发 ACT 激活命令时,行地址送入行解码器 (Row Decoder)
- WL:行解码器输出的物理导线。选中某一个 Row = 拉高对应的 WL
- WL 拉高 → 这一行全部存储单元的访问晶体管同时导通,整行所有电容全部连到各自 BL 上,整行数据送入 Sense Amp(也就是 Row Buffer 行缓冲)
时序 tRCD、tRAS 本质就是 WL 的建立、保持时间。
Row地址 → 行译码器 → 选中一条WL(物理字线)→ 打开整行单元2. Column ↔ BL(位线 Bitline)
- Column:逻辑列地址。WL 打开一行之后,再送列地址
- BL:纵向的物理导线,每一列一根 BL,连接该列上下所有存储单元;BL 末端接灵敏放大器 Sense Amp
- 列地址经过列译码器 + 列选择 MUX,从已经打开的这一行里,选出对应的 BL,把该 bit 送到 I/O 端口,完成读 / 写。
所有 BL 在 ACT 之前会做 Precharge 预充到 VDD/2,这就是 Precharge 操作。
Column地址 → 列译码+MUX → 选中对应的BL → 读出/写入该bit3. 二维阵列 Mermaid(WL/BL + Row/Column)
4. 完整访问链路(串联前面的 Channel/Rank/Bank 知识)
内存控制器 → Channel → Rank → Bank →Row 地址送入行译码 → 驱动 WL(字线)打开整行→ 所有单元电容连接到各自 BL(位线),SenseAmp 采样(行缓冲) →Column 地址送入列译码 MUX → 选中对应 BL→ 读出 / 写入单个 bit
5. 关键区分
| 概念 | 层级 | 性质 | 作用 |
|---|---|---|---|
| Row | Bank 阵列逻辑层 | 逻辑地址 | 选择一行 |
| WL Wordline | 硅片阵列物理层 | 金属导线 | 物理开关,导通一整行晶体管 |
| Column | Bank 阵列逻辑层 | 逻辑地址 | 选择一列 |
| BL Bitline | 硅片阵列物理层 | 金属导线 | 传输 bit 电荷信号,接灵敏放大器 |
5.容易混淆点
- WL 只负责开关,不传输数据;BL 才是数据信号通路
- 一个 Row = 一条 WL;但一条 BL 上串联成千上万个单元(不同 Row)
- Row Hammer 本质:反复 ACT 不断 toggle 同一 WL,对相邻 WL 单元造成电荷泄露,导致 bit 翻转