H02 —— 为什么内存要成对插:双通道是怎么工作的

金句:独木不成林,双木才成林——带宽也是。


单通道 vs 双通道:数字对比

插一条 16GB DDR4-3200 和插两条 8GB DDR4-3200,性能有什么区别?

Bash
理论带宽对比:

单通道(1 × 16GB DDR4-3200):
  64-bit 总线
  带宽 = 3200 MT/s × 8 bytes = 25.6 GB/s

双通道(2 × 8GB DDR4-3200):
  128-bit 总线(2 × 64-bit,但控制器侧看作 128-bit)
  带宽 = 3200 MT/s × 8 bytes × 2 = 51.2 GB/s

提升:100% 带宽(理论上)

实际测试(Ryzen 7 5800X + DDR4-3600):
  单通道读取:~25 GB/s
  双通道读取:~50 GB/s
  → 实际接近翻倍

为什么插两条内存就能让带宽翻倍?

Bash
内存控制器和通道的关系:

内存控制器(Memory Controller)通常有 2 个通道(Channel),
每个通道独立连接到 DIMM。

通道 0 ──→ DIMM A(64-bit)
通道 1 ──→ DIMM B(64-bit)
         ↑
      两个通道合并看作 128-bit 总线

数据写入时:
  CPU 发出 128-bit 数据
  → 内存控制器拆分成两个 64-bit
  → 通道 0 写 DIMM A,通道 1 写 DIMM B
  → 合并成一个 128-bit 写操作(并行)

所以:插两条内存 = 两个通道同时工作 = 带宽翻倍

双通道的"对称"和"非对称"模式

Bash
对称双通道(Symmetric Dual Channel,最佳):

  通道 0:8GB DDR4-3200
  通道 1:8GB DDR4-3200
  总容量:16GB,通道总宽度 128-bit

非对称双通道(Asymmetric Dual Channel):

  通道 0:8GB DDR4-3200
  通道 1:16GB DDR4-3200
  总容量:24GB

  工作方式:
    - 前 8GB(两个通道各 4GB)= 对称双通道模式(128-bit)
    - 后 8GB(只有通道 1)= 单通道模式(64-bit)

  结果:
    - 内存访问前 8GB:双通道性能
    - 内存访问后 8GB:单通道性能
    - 操作系统会显示"双通道",但实际只有部分对称

  建议:尽量保持对称双通道,避免非对称导致的性能不稳定。

为什么有些主板插三条内存就变成单通道

这是一个常见的陷阱:

Bash
主板内存插槽颜色标记法:

  ┌────┬────┬────┬────┐
  │ 槽1 │ 槽2 │ 槽3 │ 槽4 │
  │ A1  │ A2  │ B1  │ B2  │  ← 有些主板用颜色区分通道
  └────┴────┴────┴────┘

  通道 0:A1 + A2(通常用黑色或同样颜色)
  通道 1:B1 + B2(通常用另一种颜色)

正确插法(双通道):
  A1 + B1(每通道各一条,最推荐)
  A2 + B2(如果 A1 已经被其他硬件占用)

错误插法(降级为单通道):
  A1 + A2(都插在同一通道!)
  → 通道 0 有两条(负载过重,频率降级)
  → 通道 1 空闲(整系统变成单通道)

常见问题:
  主板说明书通常会写"优先插 A2 + B2""优先插 2+4 槽"
  不按说明书来,性能会大幅下降。

四通道(Quad Channel)

高端服务器(Intel Xeon、AMD EPYC)支持四通道甚至更多:

Bash
四通道内存架构(高端服务器):

  通道 0 ──→ DIMM A(64-bit)
  通道 1 ──→ DIMM B(64-bit)
  通道 2 ──→ DIMM C(64-bit)
  通道 3 ──→ DIMM D(64-bit)
            ↑
        合并成 256-bit 总线

四通道带宽(DDR4-2933):
  理论带宽 = 2933 MT/s × 32 bytes = 93.8 GB/s
  对比双通道(DDR4-2933)= 46.9 GB/s
  → 四通道比双通道带宽多 100%

限制:
  - 需要服务器级主板(双路或四路配置)
  - 需要 CPU 支持(Intel Xeon Scalable、AMD EPYC)
  - 桌面 CPU(Core i9)最多只支持双通道

典型配置(四路服务器):
  每路 CPU 有自己的内存控制器
  总系统带宽 = 4 channels × 带宽/通道

通道数和带宽的实际影响

Bash
不同应用的带宽需求:

1. 日常应用(浏览器、Office):
   - 需求低,单通道或双通道差别不大
   - 内存延迟更重要(CL 时序)

2. 游戏(GPU 绑定,CPU 内存带宽不是瓶颈):
   - 需求中低,双通道足够
   - 显卡带宽更重要

3. 视频编辑(ProRes、RAW 视频处理):
   - 需求中高,双通道是底线
   - 4K/8K 视频需要四通道

4. AI 推理/深度学习:
   - 需求高,需要高内存带宽
   - Transformer 模型需要大量权重数据
   - 四通道或更多通道是必须的

5. 科学计算(HPC):
   - 需求极高,需要高带宽
   - 超算节点通常有 8 通道或更多

总结

  • 双通道:两个 64-bit 通道并行,合并为 128-bit 总线,带宽翻倍
  • 对称 vs 非对称:对称双通道(前 8GB 双通道,后 8GB 单通道),尽量保持对称
  • 插槽插法:不同通道的插槽(颜色或编号区分),不能都插在同一通道
  • 四通道:高端服务器(Xeon/EPYC),256-bit 总线,DDR4-2933 四通道 ~94 GB/s
  • 带宽需求:日常应用不敏感,视频/AI/ HPC 需要更多通道

下篇预告(H03):内存条的”时序”是什么?CL-tRCD-tRP-tRAS,这些数字是怎么影响实际延迟的?为什么 DDR4-3600 CL16 比 DDR4-3200 CL22 更快?


关注公众号「AI不着急」,回复”资料”获取内存学习路线图。

最后修改: 2024年1月16日

作者

评论

发表评论

您的邮箱地址不会被公开。