H06 —— 内存条的金手指是怎么连接的:PCB 走线、阻抗控制和 DQ 信号完整性

金句:看不见的走线长度,决定了看得见的系统稳定性。


内存 PCB 的结构

内存条(DDR DIMM)是一块独立的 PCB,上面布满了信号走线和电源层。

Bash
DDR4 UDIMM PCB 结构(6 层或 8 层):

Layers:
  Layer 1(Top):信号层,元器件和 DQ/DQS 信号走线
  Layer 2:地平面(Ground Plane)
  Layer 3:电源层(VDD)和信号走线
  Layer 4:信号层(地址/命令走线)
  Layer 5:电源层(VTT)和信号走线
  Layer 6(Bottom):信号层,DQ 信号走线

关键走线:
  - 数据线(DQ):64 条(×8 颗粒)
  - 数据选通(DQS/DQS#):9 对(每 8 DQ 一个 DQS)
  - 地址/命令线:51 条(BA/A/CKE/CS/ODT 等)
  - 时钟线(CK/CK#):2 对
  - 电源/地:多个层的大面积铺铜

走线长度控制(长度匹配):
  - 同一组 DQ(Byte Lane)内的 8 条 DQ + 1 对 DQS,长度必须匹配
  - 误差 < 0.2mm(高速下,0.2mm = ~1ps 延迟差)
  - 不同组之间不需要匹配(因为分别对应不同的时钟域)

阻抗控制:为什么内存条要用特定的走线宽度

Bash
PCB 走线的阻抗(Impedance):

  阻抗 Z = sqrt(L/C)
  L = 走线电感,C = 走线电容
  取决于:线宽、介质厚度、介电常数

DDR 信号要求:
  - 单端信号(DQ/地址):90 Ω ± 10%
  - 差分信号(DQS/CK):100 Ω ± 10%

为什么需要特定阻抗?
  - 阻抗不匹配 → 信号反射 → 信号质量下降 → 误码率上升
  - 高速 DDR 信号,反射会严重影响信号完整性

内存条 PCB 走线设计:
  - 走线宽度:0.1mm~0.15mm(由 PCB 厂商控制)
  - 介质厚度:100~130 μm
  - 介电常数:4.2~4.5(FR4 材料)

  通过调整线宽和介质厚度,确保阻抗 = 90 Ω(单端)或 100 Ω(差分)

DQ 信号和 DQS 选通信号

Bash
DQ(Data)和 DQS(Data Strobe)的关系:

DQS 的作用:
  - DQS 是数据选通信号,类似于时钟
  - 数据(DQ)和 DQS 同步传输,接收端用 DQS 采样 DQ

  ┌─────┐     ┌─────┐
  │ DQ  │ ══ │     │ 数据在 DQS 的上下沿被采样
  │     │     │     │
  └─────┘     └─────┘
    ↕            ↕
  DQS ───── DQS ───── 采样时刻

读写时的 DQS 方向不同:
  - 写操作(CPU → DRAM):内存控制器发送 DQS
  - 读操作(DRAM → CPU):内存颗粒发送 DQS

这就是为什么 DDR 有"写前拍"(Write Leveling)——
DQS 和 CK 的相位关系需要校准

蛇形走线和长度匹配

Bash
为了保证长度匹配,PCB 走线会用"蛇形"(Serpentine):

  正常走线:──────────────────────────────

  蛇形走线:──┐  ┌──┐  ┌──┐  ┌──┐  ──────
             └──┘  └──┘  └──┘  └──┘

同一组信号内:
  - 8 条 DQ 信号,走线长度误差 < 0.2mm
  - 1 对 DQS,走线长度误差 < 0.2mm
  - DQ 和 DQS 之间的时序关系:DQ 相对 DQS 的延迟 < 0.1UI(Unit Interval)

不同组之间:
  - 不需要长度匹配(Byte Lane 0, 1, 2... 之间独立)

举例:DDR4 的 Byte Lane 0(对应 DQ[0:7]):
  - DQ[0]~DQ[7] 之间长度差 < 0.2mm
  - DQS0/DQS0# 之间长度差 < 0.2mm
  - DQS0 相对 DQ[0]~DQ[7] 的延迟可调(在内存控制器端)

VTT 电源和 ODT

Bash
DDR 系统的特殊电源:VTT

VTT(Termination Voltage)= VDDQ / 2 = 0.6V(DDR4)

为什么需要 VTT?
  - DDR 信号是"半幅度"信号
  - 逻辑"1" = 0.6V + 0.3V = 0.9V(相对 VTT)
  - 逻辑"0" = 0.6V - 0.3V = 0.3V(相对 VTT)
  - 接收端以 VTT 为参考,判决高低电平

VTT 走线:
  - VTT 电源层需要大面积铺铜(降低阻抗)
  - VTT 电流较大(每根 DQ 线有 ~3mA)
  - 主板上通常有专门的 VTT 稳压器(VTT Regulator)

ODT(On-Die Termination):
  - 内存颗粒内部的终端电阻(50 Ω)
  - 通过 ODT 引脚控制开/关
  - 写操作时,DRAM 开启 ODT 接收数据
  - 读操作时,DRAM 关闭 ODT,控制器端需要Termination

内存控制器端的 ODT:
  - 控制器也可以开启 ODT
  - 通过设置寄存器,控制每个 DQ 的Termination
  - 用于匹配不同负载(DIMM 数量不同)

主板内存走线的设计挑战

Bash
主板(Motherboard)内存走线的挑战:

1. 多条 DIMM 插槽的走线分支:
   - 内存控制器到插槽 A(走线长度 X)
   - 内存控制器到插槽 B(走线长度 Y)
   - 分支点处的信号反射需要控制

2. 信号完整性分析:
   - 高速信号(2400~6400 MT/s)需要仿真
   - 眼图(Eye Diagram)分析:找到最优采样点
   - 串扰(Crosstalk):DQ 之间相互干扰

3. 层叠(Stack-up)设计:
   - 主板通常 6~8 层
   - 需要合理分配信号层/电源层/地层
   - 信号层不能太靠近电源层(噪声干扰)

4. 温度影响:
   - PCB 材料随温度膨胀/收缩
   - 走线长度变化 → 阻抗变化
   - 高速 DDR 在高温下可能不稳定

这就是为什么服务器主板通常有更严格的内存设计规范——
服务器需要 7×24 小时稳定运行,对信号完整性的要求更高。

总结

  • 内存 PCB:6~8 层,信号层/电源层/地层分离
  • 阻抗控制:单端 90 Ω,差分 100 Ω,走线宽度和介质厚度共同决定
  • DQ/DQS:数据线和选通信号,读写方向不同,写前拍校准(DQS vs CK)
  • 蛇形走线:同组信号(Byte Lane 内)长度匹配误差 < 0.2mm
  • VTT 电源:0.6V = VDDQ/2,作为信号参考电压,需要大面积铺铜
  • ODT:On-Die Termination,50 Ω,内存颗粒内部Termination电阻,开/关可控

下篇预告(H07):DDR 的功耗是怎么计算的?IDD 电流参数、刷新功耗、Active 功耗、以及为什么高频率内存条发热更大。


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

最后修改: 2024年1月30日

作者

评论

发表评论

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