1、PCIE 3.0 简介及信号和协议测试方法 安捷伦科技(中国)有限公司: 李凯 一、前言 PCI Express(简称 PCIE)总线是 PCI 总线的串行版本, 其 采用多对高速串行的差分信号进行高速传输,每对差分线上的信号速率可以是 1 代的 2.5Gbps、 2 代的5Gbps 以及现在正逐渐开始应用的 3 代 8Gbps。 PCIE 标准是由 PCI-SIG 组织制定,自从推出以来, 1 代和 2 代标准已经在 PC 和Server 上逐渐普及,用于支持高速显卡以及其它接口卡对于高速数据传输的要求。出于支持更高总线数据吞吐率的目的, PCI-SIG 组织在 2010 年制定了 PCIE
2、 3.0,即PCIE 3 代的规范。目前, PCIE 3.0 已经开始出现在一些高端的 Server 上,而在普通PC 上的应用也是指日可待。 那么 PCIE 3.0 总线究竟有什么特点?对于其测试有什么特殊的地方呢?我们这里就来探讨一下。 二、 PCIE 3.0 简介 1、信号速率的变化 首先我们看一下制定 PCIE 3 代规范的目的,其目的主要是要在现有的 FR4 板材 和接插件的基础上提供比 PCIE 2 代高一倍的有效数据传输速率,同时保持和原有 1 代、 2 代设备的兼容。 别看这是个简单的目的,但实现起来可不容易。 我们知道, PCIE 2 代 在每对差分线上的数据传输速率是 5G
3、bps,相对于 1 代提高了 1 倍;而 3 代要相对于 2 代把速率也提高一倍,理所当然的是把数据传输速率提高到 10Gbps。但是就是这个 10Gbps 把 PCI-SIG 给难住了,因为 PC 和 Server上出于成本的考虑,普遍使用便宜的 FR4 的 PCB 板材以及廉价的接插件,无论采用什 么 技术都很难保证 10Gbps 的信号还能 在原来的信号路径上可靠地传输很远的距离(典型距离是 15 30cm)。 因此 PCI-SIG 最终决定把 PCIE 3 代的数据传输速率定在 8Gbps。 但是 8Gbps 比着 2 代的 5Gbps 并没有高一倍,所以 PCI-SIG 决定在 3代
4、标准中把在 1 代和 2 代中使用的 8b/10b 编码去掉。 我们知道,在 PCIE 1 代和 2代中为了保证数据的传输密度、直流平衡以及内嵌时钟的目的,每 8bit 数据会编码成 10bit 数据传输。 因此 , 5Gbps 的 实际 有效数据传输速率是 5Gbps 8b/10b4Gbps。 这样,如果在 PCIE 3 代中不使用 8b/10b 编码,其有效数据传输速率 就能比着 2 代 的 4Gbps 提高 1 倍。 但是这样问题又来了,数据如果不经编码传输很难保证数据传输密度和直流平衡,接收端的时钟恢复电路也很容易失锁,于是 PCIE 3代里面采用了扰码的方法,即数据传输前先和一个多项
5、式进行异或, 这样传输链路上的数据就看起来比较有随机性, 到了接收端 再用相同的多项式把数据恢复出来。通过上述方法, PCIE 3 代可以用 8Gbps 的传输速率实现比 2 代的 5Gbps 高 1 倍的数据传输速率。 2、发送端的变化 但是问题远没有结束, 即使数据速率只有 8Gbps,要在原有的廉价 PCB 和接插件上实现可靠传输也还要解决一些新的问题。其中最大的问题是信号的损耗, FR4板材对信号高频成分有很大衰减,而信号速率越高,其高频成分越多,所以衰减也就更厉害。 下图是不同速率的信号经过 10 英寸的 FR4 板材的 PCB 传输以后信号的眼图,我们可以看到 8Gbps 的信号在
6、接收端基本上看不到眼图了,更不要说进行有效的数据接收。 为了解决这个问题,在 PCIE 的 1 代和 2 代中使用了去加重 ( De-emphasis) 技术,即 信号的发射端( TX)在发送信号时对跳变 bit(代表信号中的高频成分)加大幅度发 送,这样可以部分补偿一下传输线路对高频成分的衰减,从而得到比较好的眼图。 PCIE 1 代中采用了 3.5db 的去加重, PCIE 2 代中采用了 3.5db 和 6db 的去加重, 而对于 3 代来说,由于信号速率更高,需要采用更加复杂的 2 阶去加重技术。即除了跳变 bit 增大幅度发送( De-emphasis)以外,在跳变 bit 的前 1
7、 个 bit也要增大幅度发送,这个增大的幅度通常叫做 Preshoot。 为了应对复杂的链路环境, PCIE 3 代中规定了共 11 种不同的 Preshoot 和 De-emphasis 的组合 ( Preset) ,实际应用中 Tx 和 Rx 端可以在 Link Training 阶段协商出一个最优的 Preset 值 。 3、接收端的变化 那做了这些工作就够了吗? 经过实验发现, 仅仅在发送端对信号高频进行补偿还是不够,如是 PCIE 3 代 标准中又规定 在接收端( RX 端) 还要 对信号做均衡( Equalization)。 所谓均衡,就是在 RX 端的接收芯片内部增加一个均衡电路
8、,这个均衡电路可以抬高 接收到的信号中的 高频分量,从而对线路的损耗进行进一 步的补偿。均衡电路的实现难度较大,以前主要用在通信设备的背板 或长电缆传输的场合,现在也 逐渐 开始在计算机领域应用,比如 USB3.0 中也 采用了均衡技术。下图是 PCIE 3.0 里对均衡器的频响特性的要求。 我们可以看到均衡器 的强弱也有很多档可选 ,在 Link Training 阶段 TX 和 RX 端会协商出一个最佳的组合。 我们看到,经过种种努力, PCIE 3.0 总算初步实现了其初衷,即 在现有的 FR4板材和接插件的基础上提供比 PCIE 2 代高一倍的有效数据传输速率。但我们同时也 看到, P
9、CIE 3 代的芯片会变得更加复杂, 系统设计 的难度也也更大 。如何保证PCIE 3 代总线工作的可靠性和很好的兼容性,就成为 设计和 测试人员面临的严峻挑战。 三 、 PCIE 3.0 的测试 首先要说明的一点是,由于 PCIE 3 代目前只颁布了 Base 的规范(即芯片规范),但 CEM 规范(即主板和插卡的规范)和测试规范还没有正式发布,所以下面介绍的方法是基于目前的通用做法,以后随着规范的正式发布,具体测试方法可能还有变化。 1、 发送端的 信号质量测试 对于发送端的测试,主要是用宽带示波器捕获 其发出的信号并验证其信号质量满足规范要求。 按照 目前 Base 规范 中的 要求,
10、PCIE 3.0 的测试需要至少 12GHz 带宽的示波器,并配合上相应的测试夹具 和测试软件。 由于 PCIE 3 代的信号经过传输以后信号幅度都已经衰减得很小(典型值是100mV 左右),为了保证足够的测量精度,除了示波器的带宽要足够以外,还需要示波器有很低的底噪声才能保证测量的准确性和测量重复性。 Agilent 公司的90000X 系列示波器除了能够提供最高到 32GHz 的硬件带宽以外,还具有业内最低的底噪声指标以及高达 2G 的存储深度,可以充分满足 PCIE 3 代测试的要求 ,下面是 Agilent 的 90000X 示波器的一些主要指标。 测试中首先使用 PCI-SIG 提供
11、的 PCIE 3 的夹具把被测 信号引出( PCIE 3 代的夹具和 PCIE 2 代一样分为 CBB 板和 CLB 板, CBB 板用于插卡的测试, CLB 板用于主板的 测试), 然后通过测试夹具上的切换开关控制 DUT 输出 PCIE 3 代的 一致性测试码型 。 需要注意的一点是由于 PCIE 3 代信号如前所述共有 11 种 Preset 值,测试过程中应明确当前测试的是哪一种 Preset 值,做信号质量测试常用的有 Preset7、Preset8、 Preset1、 Preset0。 下图是 PCIE 3 代的 CBB 板及一致性测试码型。 另外, PCIE 3 代测试很重要的一
12、点是要做信号的的 Embed, Embed 即是在测试过程中加入芯片封装对信号的影响,这个芯片封装的模型是 PCI-SIG 以 S 参数文件的形式提供的, 测试过程中需要示波器能把这个 S 参数文件的影响加到被测波形上。同时 , 测试过程中示波器是用 2 个通道分别连接信号的正负端,要得到最后的差分波形 需要示波器对 2 个通道的波形做相减运算。如果波形相减和 S 参数嵌入的工作都由示波器软件计算,会大大影响测试速度。 Agilent 公司的 90000A/90000X 示波器 内部都有硬件的通道相减及 S 参数运算功能,可以大大提高测试的速度和效率。 对测试数据做 分析 得方法 有 2 种
13、:一种是使用 PCI-SIG 提供的 Sigtest 软件做手动分析,一种是使用 Agilent 公司提供的 N5393C PCIE 3.0 自动一致性测试。 Sigtest软件是的算法由 PCI-SIG 提供,但是需要用户手动捕获数据进行后分析。 Sigtest 可以进行信号的眼图、模板、抖动的测试。下图是用 Sigtest 的测试结果。 由于 Sigtest 需要用户手动捕获数据,对于不熟练的测试人员容易可能由于设置不对造成测试结果的不一致 ,而且其测试项目有限,没有覆盖全部的信号要求 。所以针对 PCIE3 的测试 Agilent 还提供了 N5393C 的自动化测试软件。 这个软件以图
14、形化的界面指导用户完成设置、 连接和测试过程,除了提供 Swing、 Preset、Common Mode 等更多测试项目以外,还可以自动进行示波器测量参数设置以及自动生成报告,提高了测试的效率和可重复性。 除此以外,这个软件在测试过程中还会对被测件发出的码型和速率进行检查,以确认测试使用的是规范要求的正确码型。下图是 N5393C 软件的设置和生成的测试报告。 以下是 PCIE3.0 信号测试推荐使用的仪器: DSA91304A/DSAX91604A 高带宽实时示波器 : 用于 高速 PCIE3.0 的 信号 测试 N5393C PCIE3 测试软件 : 快速进行 PCIE3.0 的信号一致
15、性测试 N5465A 去嵌入软件:用于封装和链路参数的嵌入和去嵌入 CLB3/CBB3 PCIE3.0 测试夹具 : 用于连接被测设备 ,从 PCI-SIG 购买 其它: SMP-SMA 电缆、 SMP 负载等 2、接收端的 接收容限测试 在 PCIE 1.0 和 2.0 的时代,接收端测试不是必须的,通常只要保证发送端的信号质量基本就能保证系统的正常工作。但是对于 PCIE3.0 来说,由于 速率更高,发送端发出的信号经过长线传输后信号质量总是不会太好,所以 接收端使用了复杂的均衡技术来提升接收端的接收能力 。 由于接收端更加复杂而且其均衡的有效性会显著影响链路传输的可靠性,因此在 PCIE
16、3.0 时代,接收端的测试变成了必测的项目。 所谓接收端测试,就是要验证接收端对于 恶劣信号的容忍能力。 这就涉及到 2个问题,一个是这个恶劣信号怎么定义,另一个是怎么判断被测系统能够容忍这样的恶劣信号。 首先来看一下这个恶劣信号的定义,这不是一个随便的差信号就可以,这个信号的恶劣程度有精确定义才能保证测量的重复性。这个 恶劣 信号通常叫做 Stress Eye,即压力眼图 ,实际上是借鉴了 10G 以太网的叫法。这个 Stress Eye 实际上是用高性能的误码仪先产生一个纯净的带预加重和 Preshoot 的 8Gbps 的信号,然后在这个信号上叠加上精确控制的随机抖动( RJ)、周期抖动
17、( SJ)、差模和共模噪声以及码间干扰( ISI)。 为了确定每个成分的大小都符合规范的要求,所以测试之前需要先用示波器对测试信号进行校准,确定产生的是规范要求的 Stress Eye。下图产生 Stress Eye 和信号校准的一个原理图。 另一个问题是如何判断被测系统 能够容忍这样的恶劣信号。这就需要被测系统工作在环回模式,即把其从 RX 端收到的数据再通过 TX 端发送出来送回误码仪,误码仪通过比较误码来判断数据是否被正确接收,测试中要求误码率小于 1E-12。下图是用 Agilent 的高性能串行误码仪 N4903B 和 N4916B 预加重模块进行 PCIE 3.0接收测试一个示意图
18、 。 实际 测试中根据实际情况 还需要增加一些耦合器、转接头、测试电缆等。 这个测试对于 激励源 也即 码型发生器 的要求很高。首先其要能产生高质量的PCIE3.0的 8Gbps的数据 流,其固有抖动要非常小才不会影响正常的抖动容限测试;其次其要能在 数据流上调制上幅度、频率精确可控的抖动分量 并能够 进行误码检测。Agilent的 N4903B是高性能的串行误码仪,其单路可以产生 12.5Gbps的高速数据流,信号 20% 80%上升时间 20ps, 固有抖动只有 9ps( p-p) ,信号的幅度在 50mV 1.8V范围内连续可调,同时其内部集成时钟恢复电路,信号接收灵敏度小至 50mV,
19、非常适合 PCIE3.0接收测试这种速率高同时对信号质量又有很好要求的场合。 N4903B还可以通过 后续 升级支持最高 28.4Gbps的高速串行数据 ,可以充分兼顾未来更高速率的应用 。 除此以外, PCIE3.0的接收测试还需要产生带 Preshoot和 De-emphasis的信号,这实际上是一个 2阶的 De-emphasis。 Agilent的 N4916B是高性能的 De-emphasis模块,其可以产生多达 4阶、 最高幅度到 12db的 De-emphasis,可以充分满足 PCIE3.0的接收测试以及未来更高性能总线的要求。 以下是 PCIE3.0接收测试 推荐 的主要设备
20、 : N4903B 12.5Gbps 高性能误码分析仪 : 用于产生带抖动的 PCIE3.0 信号 并检测环回信号误码率 N4916B 预加重模块 : 用于产生测试需要的 测试需要的带 Preshoot 和 De-emphasis 的信号 CLB3/CBB3 PCIE3.0 测试夹具 : 用于连接被测设备 ,从 PCI-SIG 购买 DSA91304A/DSAX91604A 高带宽实时示波器 : 用于测试前校准 N4903B 产生的信号 其它: 测试软件、 测试电缆、 耦合器、 转接头等 3、 PCIE3.0 协议 的测试 完成信号质量的测试仅仅是保证了 PCIE 物理层的可靠工作,整个系统的
21、可靠工作还离不开上层协议的支持。由于 PCIE3.0 是全新的标准,所以为了帮助用户更进一步分析和定位 由于上层协议造成的问题, Agilent 还提供了全套的 PCIE3.0 协议测试方案,方案中包括了协议分析仪、探头以及训练器。 下图是 PCIE3.0 协议分析仪 U4301A,它是 一块 采用了 Agilent AXIe 架构的插卡,可以插在 AXIe 的机箱里,通过探头来捕获高速的 PCIE 3.0 信号,并通过外部 PC 控制显示协议分析的结果。 AXIe 是 Agilent 最新推出的高速模块化仪器的架构,除 了能给高性能的模块提供稳定可靠的机箱环境以外,还提供了背板的高速数据交换
22、能力,主要用于需要大量数据处理的高性能板卡。除了 PCIE3.0 的协议分析仪以外, Agilent 在这个平台上还推出了业内最高性能的 U4154A 高速逻辑分析仪模块 (可以用于 DDR3 的协议测试,支持高达 4Gb/s 的数据速率 )、 U4998A 高速 HDMI 协议分析仪(支持 HDMI1.4 的测试)、 M8190A 高性能任意波发生器( 12G/s 采样率 12 位分辨率或 8G/s 采样率14 位分辨率)等,因此用户在这个统一的平台上可以完成未来的很多高速总线的测试 任务。 1 块 U4301A 插卡可以支持到 X8 双向的 PCIE3.0/PCIE2.0/PCIE1.0
23、的协议测试, 2 块卡可以支持 X16 的测试并提供搞到 8GB 的存储深度。为了支持复杂问题的分析和定位, U4301A 还支持多达 4 级的触发序列并预先定了多 种 错误触发条件,可以帮助用户快速发现总线上的错误。 要针对高速的 PCIE3.0 信号做正确的协议分析,可靠的探头连接必不可少。由于 PCIE3.0 的信号经过 PCB 传输后信号质量恶化很大,因此 PCIE3.0 的接收芯片内部有均衡电路来保证信号的可靠接收。而对于协议分析仪的探头来说也存 在同样的问题,即如果不做均衡可能就无法可靠捕获总线上的信号。因此针对 PCIE3.0 的协议测试, Agilent 还提供了带均衡功能的探
24、头,以下分别是针对计算机应用和嵌入式应用 提供 的 2 种探头。 很多时候仅仅被动地做总线上的协议捕获和分析并不能全面验证系统在各种未知条件下可能出现的问题,因为实际的测试环境能够模拟出来的条件都是有限的。为了进行更全面的测试, Agilent 还提供了 PCIE3.0 的协议训练器 U4305A。所谓训练器,就是 可以人为设定要发送的 PCIE 数据包的内容来主动和被测件进行协议交互以更全面验证系 统功能的仪器。 U4305A 设计成一个 PCIE3.0 的插卡类型,通过USB 接口 用外部 PC 进行控制,可以 直接插在主板的 PCIE 插槽上进行主板测试,也可以通过测试背板进行 PCIE 插卡的测试。 U4305A 还集成了 LTSSM 的自动测试功能,可以快速发现系统在链路协商中的问题。 下图是 U4305A 及做 LTSSM 测试的界面。 四、总结 综上所述, PCIE3.0 是新一代的高速总线,采用了很多和前一代完全不一样的技术来克服高速数据传输的信号质量问题,也带来很多全新的测试挑战。 Agilent作为 PCI-SIG 的董事会成员之一,一直积极参与到 PCIE3.0 的规范制定和测试方法的实施中,并提供了覆盖发送信号质量测试、接收容限测试、协议分析、训练器等全 套的测试方案。