PCI-Express总线的物理层相对于PCI总线而言发生了重大变化,PCI-Express是一种全新的串行总线。串行总线数据传输避免了并行总线在高速传输过程中所面临的时序问题,因此,与并行总线相比能够大大提高数据传输速度。本人对PCI-Express的物理层实现比较感兴趣,因此对PCI-Express总线的物理层实现机制进行了探索,下面对PCI-Express的物理层机制进行简单分析。
PCI-Express物理层可以分为逻辑物理层和电气物理层两大部分:逻辑物理层主要解决数据编码、逻辑控制等工作;电气物理层主要解决串行数据传输、时钟恢复等工作。下图是PCI-Express物理层发送模块的原理框图:
PCI-Express物理层发送单元的数据源由三大部分组成:第一部分是PCI-Express总线上层单元发送的数据,这一部分在缓存中;第二部分是物理层需要发送的特殊字符,例如符号间的分隔符,这种分割符通常选择8b/10b编码表中不存在的特殊字符;第三部分是物理层训练所需要的字符集,这部分字符集称之为链路训练字符集。这三大部分数据源通过选择开关进行选择。通常,一个PCI-Express的物理层芯片不仅仅只含有一个通道(Lane),可以包含多个Lane,例如X2、X4、X8等。对于多通道的PCI-Express物理层芯片需要解决发送数据的字节分配。假设一个PCI-Express物理层芯片含有两个Lane,那么在数据发送过程中,字节分配器会在这两个通道间轮流分配数据,第一个字节分配给第一个通道,第二个字节分配给第二个通道,第三个字节分配给第一个通道,依次轮循。多通道同时发送数据提高了数据传输带宽,达到了并行总线的效果。但是,由于多个通道之间会存在物理上的差异,因此,在物理层链路训练过程中需要对这种通道间物理上差异导致的数据相位差进行补偿。这种补偿需求对物理层芯片的设计是有要求的,物理层至少需要提供精度较高的可控延时单元。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
字节分配器会将发送数据传输给乱序器。在高速数字信号传播过程中会对其它系统产生EMI干扰,特别当发送信号的能量集中在某一特定频率上时,EMI问题显得尤为突出。为了解决该问题,提出了一种能量平衡的方法,这种方法就是能量乱序器。能量乱序器的本质是一种伪随机信号调制器,也就是将发送数据调制到了伪随机信号之上。具体做法是将发送数据与特定的伪随机信号进行了异或操作,从而达到乱序之后的信号能量比较均匀的分布在通频带上,逼近像噪声一样的传送数据信号。
乱序器的输出信号需要进行8b/10b编码处理,8b/10b编码能够起到两方面的作用:一方面通过编码处理可以达到DC平衡的目的,PCI-Express的物理链路采用AC耦合的方式,如果发送的数据存在直流分量,那么通过长期的DC累积,就会导致数据间的干扰;另一方面,PCI-Express采用嵌入时钟的方式进行同步时钟信号的传送,这种方法通常采用数字锁相环的方式进行时钟信号提取,所以在数据发送过程中需要进行数据编码,将时钟沿信息嵌入到发送数据之中。为了提高编码效率,8b/10b编码器在实现过程通常采用查表的方式实现,可以将8b/10b分解成3b/4b和5b/6b进行处理。编码处理之后的数据通过串行发送器将数据发送到信号线上。串行发送器是一个LVDS的数据发送单元,与接收单元之间采用交流耦合的方式,可以减少收发单元之间的互相干扰。需要注意的一点是,串行收发器采用交流耦合的方式会带来字符间干扰,例如,需要发送的数据串中存在长时间的1,在这长时间的1中只有一位0信息,由于长时间的1对电容进行了充电,所以0信息将很难驱动到有效电平,导致了0信息无法被接收单元识别。为此,物理层芯片通常采用了时域补偿的方法,对发送数据进行了预加重处理,对发送的第一个跳变信息位进行幅度加重处理,相对而言就对其它信息位进行了减重处理,这种处理就可以加强驱动了连续1中存在的0信息位,使得接收单元可以接收到正确的0信息位。PCI-Express总线的串行收发器的运行时钟频率通常在2.5GHz和5GHz的频率上,因此需要注意阻抗匹配的设计,PCI-Express的传输线特性阻抗在100R左右,所以在收发端口需要连接100R的匹配电阻。
PCI-Express物理层芯片上电之后需要进行链路训练,链路的训练采用物理层的链路训练报文。链路训练需要协商通信双方需要采用的通信时钟频率,并且匹配物理链路的信号连接方式。在链路训练期间还需要完成收发时钟信号的同步,使得链路处于active状态。由于数字锁相环具有一定延迟效果,所以当输入信号消失一段时间之后,数字锁相环不会进入失锁状态,但是如果长时间没有输入信号,那么锁相环将会进入失锁状态。所以,在物理层没有数据报文传输时,物理层会间隔一定时间给接收端发送时钟同步报文,保证物理链路处于active状态。
个人觉得PCI-Express总线的物理层设计是整个总线系统的核心,其关系到PCI-E总线设计的成败关键。本人对于高速数据传输报有无限热情,后期还会重点关注PCI-E物理层的具体实现,另外,也想与从事这方面的朋友进行交流和分享。
文章评论(0条评论)
登录后参与讨论