从1.0到2.0——PCI Express迈入新总线时代

技术空间

作为系统核心的CPU近年来运算能力大为提高,双物理核心处理器已经成为主流产品,而四物理核心产品也蓄势待发。与此同时,显卡的运算能力也从数十FLOPS(FLoating-point Operations Per Seconds,每秒的浮点运算次数)提升到了数百FLOPS以上。

正如那句“要想富、先修路”的名言一样,PC系统中主要部件性能的飙升也就意味着对连接各个部分的总线会产生更高的要求。在2007年下半年2.0版本的PCI Express产品呼之欲出。

43-e15e16-1.jpg
显示系统总线带宽的发展

新标准速度和带宽加倍

1.数据速率倍增为5Gbps

PCI Express系列标准是PCI-SIG(PCI Special Interest Group,PCI特殊行业组织)推出的总线协议。和前代PCI标准相比,PCI Express明显的变化是从所有设备共同分享的单向并行总线,转变为点对点双向1bit的串行连接。在1.0版本时期,PCI Express每个信道连接的频率是2.5GHz,因为架构是1bit的串行连接,所以单向数据速率就是2.5Gbps。而在2.0版本的PCI Express中,信道的连接频率已经提升到5GHz,单向数据速率倍增为5Gbps是2.0版本最突出的特征。

小贴士:

PCI-SIG是一个有超过90家企业成员的组织,它的成员包括IBM、Intel、AMD、NVIDIA、HP以及Microsoft等业界巨擘,而PCI Express系列标准正是它们旗下的总线协议之一。

43-e15e16-2.jpg

2.物理层频率增加

PCI Express架构体系分为物理层(Physical Layer)、数据链路层(Link Layer)、处理层(Transaction Layer)和软件层(Software Layer)四个部分。为了保证和以前的PCI总线兼容,连接速度变化都只是在物理层上的改动。

在物理层上,和大多数高速序列传输标准一样,PCI Express也采用了LVDS(低电压微分信号)来构成基础信道。从1.0到2.0时代,PCI Express都采用了很常见的8bit/10bit编码方式,这种编码方式简单来说就是对8bit的内容用10bit的规模去传输,

那么5GHz连接频率的单信道PCI Express 2.0的实际带宽就是500MB/s。而在未来的3.0版本中,连接速度最终为8GHz,这个速度已经开始逼近了目前铜线缆工艺10GHz的极限频率,如果要进一步提升则需要考虑更新工艺或者使用光纤介质。而且在3.0版本中,8bit/10bit这种内嵌时钟信息被直接写入数据流中的编码方式可能会加以改进,毕竟这种方式存在着20%明显的带宽浪费。

总体来说,从1.0版本到2.0版本,速度的提升主要来源于物理层上频率的直接增加,而在3.0中除了频率增加外还有编码方式的改进。在具体改进方法上,可能是在数据流中采用不规则的方式加入时钟信息,这样在整体上可能会提升有效带宽。

3.规格要求更为严格

速度/带宽提升是最引人注目的特性,但这正如同一核心、工艺CPU的频率提升往往以功耗作为代价一样,PCI Express连接频率提升也有其不菲的代价。其中比较明显的是,线路阻抗有15%的变动,容许的抖动也直接从400ps(皮秒)削减到了200ps。

容许抖动的削减,将直接影响到产品设计与认证。PCI-SIG不仅是工业标准的制定者,也是标准的检测者,在其官方网站就有通过PCI Express认证的产品列表,这里面包括芯片组和显卡等产品。要达到2.0版本标准的5GHz连接速度并通过更为严格的认证,厂商在设计和用料上自然也需要付出更多努力。(相关链接:http://www.pcisig.com/developers/compliance_program/integrators_list/pcie/pcie)

同时,单个连接器的连接长度在2.0版本中也被削弱了,在1.0版本中可以达到12英寸的连接长度被削弱为6~8英寸,而且连接器之间需要更复杂的内层线来连接。这一系列电气性能上的变化全是为提速付出的代价。相对1.0版本来说,2.0版PCI Express在标准公布之后,具体产品出现到市场上的时间也就会较晚,普及也会更慢一些。

数据链路层与处理层的改进

PCI Express总线数据传输并不仅是物理层上的工作,其他两个协议层也进行着大量的工作。物理层之上的数据链路层主要就是用于保证数据传输的完整性与可靠性,比如加入CRC(循环冗余校验)信息等;而处理层则是接受并处理(整合或者拆分)从软件层送来的读、写请求,操纵链接配置和信号控制,并且建立请求包传输到数据链路层。因而常见的数据包类型就分为TLP(Transaction Layer Packet,处理层数据包)和DLLP(Data Link Layer Packet,数据链路层数据包)两种了。

PCI Express采用的是数据提交和应答在时间上分离的模式,但TLP和DLLP每个数据包都还是具备唯一标志符,可以使响应包定向于正确发起者。数据包的格式支持32位和扩展64位内存地址,同时还有优先权、非窥探等属性,这些属性随着版本的变化在不断地增加和增强中。

在2.0版本中,这两个部分也得到了一定程度的增强。在数据链路层上,更安全的校验措施被加入进了协议,对于封包的路由有了更详细而可靠的控制措施,这将防止封包被欺骗或者假路由的可能性。这部分改变除了安全性提升的必然需求外,另一个原因就是因为在下一代的10Gbps网络连接应用中,2.0版本PCI Express将试图做较深的介入。而在处理层部分,自动调节连接速度,动态配置总线通道以优化路由I/O子系统,这也是2.0版本的新特色。

43-e15e16-3.jpg
数据包结构示意图

需求与发展

1.增加虚拟技术

在2.0版本的改进中,I/O虚拟化技术是宣传比较多的亮点。对于单CPU系统实现I/O虚拟化目前已经做得有一些眉目了,但对于多处理系统的标准还亟待完善。这项技术的发展关系到PCI Express技术走出PC桌面领域,前景不错,但目前实用价值还不明显。

2.支持高功耗显卡

目前显卡发展已被高功耗拖到无法自拔的地步,唯一自救的方案就是类似多核心CPU的并列方案,而PCI Express 2.0的高带宽正是多显卡并联的救命仙丹。同时,2.0版本总线在供电上可以支持225W~300W功耗的显卡,这比1.0版本的75W上限高出很多,足以满足现在顶级显卡对于供电的需求。

3.有效带宽有待增大

在1.0版本的PCI Express中,16个信道也就是×16的总线具有了250MB/s×16=4GB/s的单向带宽,而在2.0版本中单向带宽更是达到了8GB/s,双向为16GB/s,但这个带宽还不是我们真正可以用到的有效带宽。

前面提到了在数据链路层和处理层,2.0版本在功能和性能两个方面都有一定的进步,但这还远远不够。在编码和通信协议开销这些部分,2.0版本依旧至少有15%左右的提升余地,所以目前在3.0版本的研发中,提高发送接收等同性、改进PLL、时钟数据恢复和提高处理层反应时间都是明确的设计改进目标。

厂商的态度

1.只能向下兼容

事实上在PC外部,原有的PCI Express 1.0/1.1规范的功能卡可以在支持PCI Express 2.0的插槽中正常运行,但是PCI Express 2.0的功能卡无法兼容PCI Express 1.0/1.1插槽,也就是说PCI Express 2.0规范只能做到向下兼容PCI Express 1.0/1.1,因为接口定义有所改变。

2.主板、显卡蓄势支持新标准

对于PC内部而言,显卡是新总线技术最大和最直接的受益者。一直对PCI Express 2.0规范比较热衷的AMD这次被NVIDIA抢了先手,微星一款GeForce 8600GTS的身影已经出现在一些媒体报道中。不过从目前的情形来看,GeForce 8600GTS对于1.0版本的4GB/s带宽尚不能完全利用,总线带宽倍增对该显卡的性能提升几乎为零,即使面对目前高高在上的GeForce 8800Ultra显卡,×16的PCI Express总线对它也基本不形成瓶颈。

但这并不意味着2.0版本的PCI Express没有实用价值,因为在顶级双卡并联平台上数据量交换的频繁,4GB/s的总线已经开始有吃紧的迹象,而在今年稍晚些时候,NVIDIA平台上名为Triple-SLI的3路SLI显卡的出现已成定局。目前得到的消息是,基于PCI Express 2.0的显卡是GeForce 8800 GTX、GeForce 8800 Ultra等双桥接口显卡,支持的芯片组则是NVIDIA自家的nForce 680i SLI、nForce 780a/780i SLI三款。

43-e15e16-4.jpg
PCI Express 2.0的接口定义有所改变

AMD方面也不甘示弱,名为“CrossFire X”的三显卡、四显卡互联技术也箭在弦上蓄势待发。芯片组方面,AMD的AMD 790X和AMD 790 FX已经做好了准备,而在显卡方面目前主流的Radeon HD 2600/2900系列以及即将到来的RV670核心产品等都在计划之内。

在芯片组方面,NVIDIA、AMD的产品对2.0版本PCI Express支持的热情自不待言,而龙头老大Intel最高端的Bearlake芯片组——X38也抢先将PCI Express 2.0作为自己的卖点。

43-e15e16-5.jpg
微星基于PCI Express 2.0的GeForce 8600GTS显卡

总的来说,对于主流用户而言PCI Express的价值目前还不明显,最大的好处可能只是免去了独立显卡外接供电的麻烦。而对于愿意尝试诸如Quad CrossFire的高端用户而言,PCI Express对性能的提升还是比较大的。而从长远来说,在2009年,2.0版本的PCI Express成为PC平台新主流、新热点不成问题,但或许在技术细节上改变更多的3.0版本对我们的吸引力会更大一些,不过那也是3年以后的事情了。