简单介绍PCIe中的信号补偿技术——De-emphasis

 PCI-Express是一种高速串行计算机扩展总线标准,它原来的名称为"3GIO",是由英特尔在2001年提出的,旨在替代旧的PCI,PCI-X和AGP总线标准。PCIe属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(QOS)等功能。PCIe交由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为"PCI-Express",简称"PCI-E"。它的主要优势就是数据传输速率高,目前最高的16X 2.0版本可达到10GB/s,而且还有相当大的发展潜力。这一篇文章中,我们主要来聊一聊PCIe中的信号补偿技术(Signal Compensation)——De-emphasis。需要注意的是,Gen1&Gen2与Gen3的De-emphasis实现机制差别较大,而本文只介绍Gen1&Gen2相关内容。如需了解Gen3的相关内容,可自行查阅Gen3的PCIe Spec。

 
高速信号传输中有一个非常棘手的问题,就是当传输速率变得越来越高的同时,数据间隔单元(Unit Inerval,UI)也会变得越来越小。这导致前一个bit的数据会对后面bit的数据造成影响,如果不去除这些影响,将会导致误码率飙升,甚至通信无法继续。
 
数字通信中有一个基本的概念,叫做压摆率(Slew Rate),可以理解为1微秒或者1纳秒等时间里电压升高的幅度,单位可以为V/s,mV/ns,mV/ps和μV/ps等。这带来一个问题,如果压摆率过大,信号会过冲;如果压摆率过小,信号又达不到目标电压。然而实时动态地调解压摆率是很困难的,所以一般在固定的模式下,压摆率也相对固定(当然,在不同的电压范围肯定是有所区别的)。
 
此时,还存在另一个问题,由于压摆率的特性,如果系统中出现几个连续的1(或者0),而接下来的信号为0(或者1)时,信号的电压可能达不到要求,如下图所示。这种前面的信号会影响后面的现象,我们称之为ISI(Inter-Symbol Interference)。
简单介绍PCIe中的信号补偿技术——De-emphasis
注:虽然PCIe采用了8b/10b编码,但是仍然会出现连续的5个0或者5个1(一些控制字符,如COM)。
 
为了解决这个问题,PCIe采用了一种叫做De-emphasis的技术,具体细节如下:
 
·  当前后电平极性变化时,不使用De-emphasis;
 
·  连续相同极性电平的第一个bit,不使用De-emphasis;
 
·  只有连续相同极性电平的第一个bit之后的bit,才使用De-emphasis;
 
·  对于2.5GT/s,De-emphasis将电压较少3.5dB。对于5GT/s,则是6dB;
 
·  Beacon信号也需要进行De-emphasis,但是规则稍有差别。
 
注:Beacon信号在之前关于LTSSM的文章中介绍过。
 
如下图所示:
简单介绍PCIe中的信号补偿技术——De-emphasis
一个De-emphasis的例子如下图所示:
简单介绍PCIe中的信号补偿技术——De-emphasis