PCIe PHY 架构
物理层 - 高速串行通信的核心
物理层概述
PCIe物理层(Physical Layer)是协议栈的最底层,负责数据的串行化/解串行化、电气信号传输和链路管理。它是实现高速数据传输的关键组件,需要处理信号完整性、时钟恢复、均衡等复杂的模拟和数字电路问题。
分层结构
MAC - 介质访问控制
PCS - 物理编码子层
PMA - 物理介质附加
核心技术
SerDes 串行/解串
CDR 时钟数据恢复
均衡与预加重
速率范围
Gen1: 2.5 GT/s
Gen5: 32 GT/s
Gen6: 64 GT/s (PAM4)
PHY分层架构
SerDes 详解
SerDes(Serializer/Deserializer)是PCIe PHY的核心组件,负责并行数据与串行信号之间的转换。它使PCIe能够以极高的速率在有限的物理线路上传输数据。
发送路径 (TX)
接收路径 (RX)
编码方式详解
IBM开发的直流平衡编码方案,将8位数据编码为10位传输码。保证连续的0和1不会超过5位,便于时钟恢复。
| 特性 | 值 |
|---|---|
| 编码开销 | 20% |
| 直流平衡 | 是 |
| 运行差异(RD) | 跟踪0/1数量差异 |
| 特殊字符 | K字符用于控制 |
编码示例
数据字节: 0x00 (D0.0)
编码结果: 1001110100 或 0110001011
(RD- 值) (RD+ 值)
控制字符: COMMA (K28.5)
编码结果: 0011111010 或 1100000101
为提高效率而设计的新编码方案,仅添加2位同步头,大幅降低编码开销。配合扰码器使用实现直流平衡。
| 特性 | 值 |
|---|---|
| 编码开销 | ~1.54% |
| 直流平衡 | 通过扰码实现 |
| 块大小 | 130位 (128数据 + 2同步头) |
| 同步头 | 01=数据块, 10=有序集 |
数据块结构
130位块结构:
┌────┬─────────────────────────┐
│同步│ 128位数据 │
│头 │ │
├────┼─────────────────────────┤
│ 2b │ 128b │
└────┴─────────────────────────┘
同步头: 01b = 数据块
10b = 有序集块
四电平脉冲幅度调制,每个符号传输2位信息。在相同符号率下带宽翻倍,但对信号完整性要求更高。
| 特性 | 值 |
|---|---|
| 符号率 | 32 GBaud (Gen6) |
| 比特率 | 64 Gbps |
| 电平数 | 4 (00, 01, 10, 11) |
| 编码效率 | 2 bits/symbol |
PAM4 信号电平
电平映射:
3 ──────── 11
2 ──────── 10
1 ──────── 01
0 ──────── 00
每符号传输2位
相同波特率下带宽翻倍
需要更复杂的均衡
均衡技术
随着传输速率的提高,信道损耗和符号间干扰(ISI)成为制约性能的关键因素。PCIe Gen3及更高版本依赖复杂的均衡技术来保证信号完整性。
发送端均衡 (TX Equalization)
预加重效果示意
接收端均衡 (RX Equalization)
| 均衡器 | 原理 | 特点 |
|---|---|---|
| CTLE | 高频提升滤波器 | 线性,补偿信道损耗 |
| DFE | 反馈抵消ISI | 非线性,不放大噪声 |
| FFE | 前馈均衡 | 线性,可配合DFE使用 |
Gen3/Gen4 均衡系数
PCIe规范定义了可编程的发送端均衡系数,软件可以在均衡过程中调整这些参数。
| 系数 | 描述 | 范围 | 单位 |
|---|---|---|---|
| Presets[0] | 最大去加重 | -6 dB | dB |
| Presets[1] | 最小预加重 | -3.5 dB Pre + -4.4 dB Post | dB |
| Presets[2] | 最大预加重 | -2.5 dB Pre + -6.5 dB Post | dB |
| Presets[3-9] | 其他预设值 | 规范定义 | dB |
时钟架构
PCIe采用嵌入式时钟方案,数据与时钟一起传输,接收端通过CDR(时钟数据恢复)电路从数据流中恢复时钟。
发送端时钟
- 参考时钟:100MHz差分参考输入
- PLL:锁相环生成高速时钟
- 倍频:根据Gen版本倍频
| Gen | 参考时钟 | PLL倍频 | 输出时钟 |
|---|---|---|---|
| Gen1 | 100 MHz | 25x | 2.5 GHz |
| Gen2 | 100 MHz | 50x | 5.0 GHz |
| Gen3 | 100 MHz | 80x | 8.0 GHz |
| Gen4 | 100 MHz | 160x | 16.0 GHz |
CDR - 时钟数据恢复
CDR是接收端的关键电路,从数据流中提取时钟信息并恢复数据。
扩频时钟 (SSC - Spread Spectrum Clocking)
SSC通过在中心频率附近小范围调制时钟,分散EMI频谱能量,有助于通过EMI认证。
电气特性
发送端电气参数
| 参数 | Gen1/2 | Gen3 | Gen4 | Gen5 |
|---|---|---|---|---|
| 差分峰峰值电压 | 0.8-1.2 V | 0.8-1.2 V | 0.7-1.2 V | 0.5-0.9 V |
| 上升/下降时间 | ≥0.1 UI | ≥0.1 UI | ≥0.1 UI | ≥0.1 UI |
| 差分阻抗 | 100Ω ±10% | 100Ω ±10% | 85Ω ±10% | 85Ω ±10% |
接收端电气参数
| 参数 | Gen1/2 | Gen3 | Gen4 | Gen5 |
|---|---|---|---|---|
| 最小输入灵敏度 | 175 mV | 150 mV | 100 mV | 50 mV |
| 最大输入电压 | 1.4 V | 1.4 V | 1.3 V | 1.1 V |
| 终端阻抗 | 100Ω ±10% | 100Ω ±10% | 85Ω ±10% | 85Ω ±10% |
信号完整性考量
插入损耗
信道对信号的衰减。PCIe规范定义了不同Gen版本的最大插入损耗预算。
| Gen | 最大插入损耗 | 频率点 |
|---|---|---|
| Gen3 | 22 dB | 4 GHz |
| Gen4 | 28 dB | 8 GHz |
| Gen5 | 36 dB | 16 GHz |
回波损耗
阻抗不匹配导致的信号反射。良好的阻抗匹配对高速信号至关重要。
- 发送端回波损耗:≥10 dB (低频)
- 接收端回波损耗:≥10 dB (低频)
- 高频回波损耗要求更严格
串扰
相邻信号线之间的电磁耦合。在多Lane配置中需要特别注意。
- 近端串扰 (NEXT):发送端耦合到相邻接收端
- 远端串扰 (FEXT):发送端耦合到远端接收端
- PCB布线需要适当的间距和屏蔽
抖动
信号时序的随机和确定性偏差,直接影响眼图张口和误码率。
| 抖动类型 | 来源 | 特点 |
|---|---|---|
| RJ (随机抖动) | 热噪声、散粒噪声 | 高斯分布,不可预测 |
| DJ (确定性抖动) | ISI、串扰、SSC | 有界,可预测 |
| TJ (总抖动) | RJ + DJ | 用于时序裕量分析 |