PCIe标准体系:从Gen1到Gen6的演进

做PCIe合规测试这些年,我最大的感悟就是——你得先搞清楚这条“高速公路”到底跑多快、怎么跑的。PCIe从第一代走到第六代,每次迭代都不是简单地翻倍提速。编码方式变了,信令技术变了,就连物理层的设计思路都翻新了好几轮。这一章,我就带你拆解一下各代的“硬核参数”,顺便聊几个我当年踩过的坑。

关键参数速览:一张表看懂六代差异

我习惯把各代参数做成一张对照表,方便调试时快速翻看。下面这张表涵盖了从Gen1到Gen6的速率、编码、单通道带宽以及典型x16配置的总带宽。

代际单通道速率 (GT/s)编码方式编码效率每通道有效带宽 (GB/s)x16总带宽 (GB/s)
Gen12.58b/10b80%0.2504.0
Gen25.08b/10b80%0.5008.0
Gen38.0128b/130b≈98.5%0.98515.8
Gen416.0128b/130b≈98.5%1.96931.5
Gen532.0128b/130b≈98.5%3.93863.0
Gen664.01b/1b (PAM4 + FEC)≈97.7% (含FEC开销)7.81*125.0*
*Gen6采用PAM4信令,原始速率64GT/s,但FEC和错误重传导致有效带宽略有损耗,表中为理论峰值。

你看,Gen1到Gen2,速率翻倍但编码没变,带宽自然翻倍。Gen3开始换了128b/130b编码,一下子把开销从20%降到了1.5%左右。说白了,之前浪费在“校验位”上的带宽被解放出来了。到了Gen6,PCIe干脆改用PAM4,一个符号传2个比特,速率直接飙到64GT/s。嗯,这里要注意:Gen6的64GT/s是“符号率”,不是比特率,因为每个符号携带2bit,所以等效数据速率是128Gbps,再扣掉FEC和训练开销。

编码演进的背后:为什么非换不可?

我遇到过不少工程师觉得编码就是个“算法细节”,不影响测试。其实大错特错。编码决定了你的测试仪器、信号质量要求、乃至PCB走线长度。

  • 8b/10b(Gen1/2):每8个数据比特要用10个符号传输,多了不少冗余。好处是直流平衡好,内嵌时钟,接收端不需要单独的时钟恢复。坏处就是浪费带宽。我记得第一次测Gen2合规时,信号眼图睁得很大,因为速率低、抖动裕量大。
  • 128b/130b(Gen3/4/5):这玩意儿本质是一个加扰器方案,用伪随机码对数据做加扰,保证信号的转换密度,然后每130个符号只塞2个同步头。效率一下就上来了。但付出的代价是:接收端需要更强的时钟数据恢复(CDR)能力,因为加扰后的码型不是固定直流平衡的。我曾经在Gen3的EQ调试中栽过跟头——如果加扰种子没对齐,链路训练直接跑飞。
  • 1b/1b + PAM4(Gen6):严格说不是传统编码,而是把2个比特映射成一个PAM4电平。配合前置FEC(比如RS(544,514)),可以说是用算力换带宽。做Gen6测试的时候,我发现眼图不再是“一只眼”,而是三个上下来回叠的眼图,那感觉就像从看黑白文字突然变成看调色板。
小提示: 在做Gen3及以上眼图测试时,记得检查测试码型是否被加扰器“抹平”了。很多误码率测试仪需要关闭加扰才能看到真正的信号质量。

演进路线图:从2.5GT/s到64GT/s

下面这张图梳理了各代之间的相对速度和关键升级点。我特意把编码变更、信令方式和标志性年份标出来,方便你在头脑里建立一张“时间轴”。

PCIe 代际演进路线图 PCIe Gen1 2.5 GT/s · 8b/10b PCIe Gen2 5.0 GT/s · 8b/10b PCIe Gen3 8.0 GT/s 128b/130b 编码 PCIe Gen4 16.0 GT/s Gen4 → Gen5 编码不变 速率从16 GT/s → 32 GT/s PCIe Gen5 32.0 GT/s PCIe Gen6 64 GT/s · PAM4 1b/1b + FEC Gen6 重大变化: 从NRZ切换到PAM4 要求全新测试方法论

实战避坑:合规测试中的“代际陷阱”

讲参数看着简单,但实际跑测试时,每一代都有自己的脾气。我挑几个典型问题说说。

Gen3 链路训练中的“EQ协商”

我记得刚接触Gen3时,发现很多板卡在上电后链路能跑到Gen3,但跑几分钟后自动降回Gen2。排查了很久,最后发现是Preset(预加重)协商没通过。PCIe Gen3的发送端会根据接收端的反馈调整均衡强度,如果接收端上报的系数超出发送端能力,就会训练失败。解决办法是:先强制Gen2建立链路,再用协议分析仪抓取EQ系数,比对双方支持的系数列表。

注意: 在Gen4/5测试中,信号衰减更严重,需要对走线做端到端插损预算。我曾经见过一块Gen4主板,因为连接器引脚过长,导致高频分量被衰减了4dB以上,眼图完全闭合。用TDR和VNA扫一下通道,比盲目调EQ更高效。
给Gen6测试的建议: 如果你现在就要接触Gen6,务必检查测试仪是否支持PAM4的眼图分析。传统NRZ的时钟恢复算法在PAM4上不适用,得改用“三眼图分离”或“误码率浴盆曲线”方法。我去年帮客户搭了一套Gen6预合规环境,光是配置抖动滤波器就折腾了两天——因为PAM4的垂直灵敏度比NRZ敏感得多。