H02 — Why Memory Should Be Installed in Pairs: How Dual Channel Works

Key Insight: A single tree does not make a forest. Neither does a single channel for bandwidth.


Single Channel vs Dual Channel: Numerical Comparison

What is the performance difference between one 16 GB DDR4-3200 stick and two 8 GB DDR4-3200 sticks?

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
  → 实际接近翻倍

Why does installing two sticks double the bandwidth?

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 写操作(并行)

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

Symmetric and Asymmetric Dual Channel Modes

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:单通道性能
    - 操作系统会显示"双通道",但实际只有部分对称

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

Why Do Some Motherboards Drop to Single Channel With Three Sticks

This is a common trap:

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

High-end servers (Intel Xeon, AMD EPYC) support quad channel or more:

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 × 带宽/通道

Practical Impact of Channel Count and Bandwidth

Bash
不同应用的带宽需求:

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

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

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

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

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

Summary

  • Dual Channel: Two 64-bit channels in parallel; combined as 128-bit bus; bandwidth doubles
  • Symmetric vs Asymmetric: Symmetric dual channel (first 8GB dual, rest single); aim for symmetry
  • Slot Installation: Slots on different channels (distinguished by color or number); do not install all on the same channel
  • Quad Channel: High-end servers (Xeon/EPYC); 256-bit bus; DDR4-2933 quad channel ~94 GB/s
  • Bandwidth Needs: Daily apps not sensitive; video/AI/HPC need more channels

Next (H03): What are memory timings? CL-tRCD-tRP-tRAS. How do these numbers affect actual latency? Why is DDR4-3600 CL16 faster than DDR4-3200 CL22?


Last modified: 2024年1月16日

Author

Comments

Write a Reply or Comment

Your email address will not be published.