从PCI Express总线演进看高速串行接口跃上主流

本文作者:admin       点击: 2009-03-10 00:00
前言:
PCI Express是Peripheral Component Interconnect Express的缩写,有时候会进一步缩写成PCIe。这是一种在计算机上很常见的内部总线扩展槽/扩充卡规格,其前身为PCI规格。自2002年,PCIe 1.0发表之后,PCIe逐渐取代已经使用了10年的PCI规格,及有过渡性质的AGP及PCI-X规格,成为计算机装置扩展槽/扩充卡的主流。这个标准由PCI特别利益团体(PCI Special Interest Group,PCI-SIG) 负责标准制订,其董事会成员目前包括Intel、Microsoft、IBM、AMD、Sun Microsystems、HP、LSI、Agilent和nVidia,会员更有约900家厂商。PCI-SIG是一个非盈利组织,主要的活动为维护规格,确保规格为稳定的、简单的、容易实现并具有前瞻性。

话说从头

自IBM PC于1981年进入市场,并成为主流之后,其内部的开放标准可扩充接口槽也成为重要的特点之一。IBM PC原本搭配的是ISA 8位扩展槽,在1984年,随着使用Intel 80286的IBM PC/AT机种,再将ISA升级到16位。之后,IBM企图将AT申请为商标却失败后,PC的发展产生飞跃的进步,已不受IBM的控制,因此,当扩展槽的能力追不上微处理器的进步时,虽然IBM试图夺回主控权,在1987年藉由IBM PS/2的推出,提出高性能但与ISA不兼容,又是封闭规格的MCA扩展槽,但这时IBM在PC硬件制造领域的市占率已无法推动一个新而封闭的规格,反而激起Compaq带领其他厂商连手在1988年提出EISA扩展槽规格。这两个阵营的战争,使硬件制造商裹足不前,即便EISA阵营很快就取得服务器领域的胜利,但就是无法向下普及到PC领域,在Intel 80486等级的PC出现时,甚至还出现厂商自行推出VISA局部总线来拖延ISA寿命的怪现象,因为由VISA局部总线的规格来看,显然并不着重未来性,只求暂时解除ISA能力不足的延寿方案。

一直到个人计算机微处理器的主流厂商Intel在1992年推出PCI 1.0规格,PC产业的业者才得到一个速度够快、架构新颖、数量扩充容易,而设计层次清楚的新扩展槽接口。此后,PCI扩展槽逐渐取代了PC中的ISA、MCA、EISA与VISA局部总线扩展槽,甚至后来连苹果计算机的麦金塔系列计算机也改用PCI扩展槽。PCI 1.0规格只是一份组件层的规格,来年发表的PCI 2.0就包括了实做所需的扩展槽、连接器、电气及机构等规格,正式成为实用的业界标准。PCI规格不愧为ISA规格的完美继承者,主宰了计算机扩充卡规格超过10年,在2004年,PCI 3.0规格公布时,已经是PCI规格的尾声了。

由于微处理器循着摩尔定律的惊人预言,其速度及能力高速增长着,即使如PCI这样具有前瞻性的规格也要相形见绌。在1997年,Intel的Pentium II微处理器及芯片组发表时,PCI扩展槽的“共享总线”特性,已经在视讯绘图卡上造成系统的效能瓶颈,这使得Intel只好在PCI接口之外,再独立出一组新规格的扩展槽专供绘图卡使用,称为AGP扩展槽。在1999年,即使PCI 2.2将总线频率倍增到66 MHz,仍不能满足部份用在服务器的高速接口,例如Gigabit Ethernet网卡,因此在同年还发表了PCI-X规格,利用频率倍增的方式进一步提高扩充卡的数据传输率。另外,PCI的主宰地位从另一方面来说,也成为庞大的包袱,让规格的更新只能瞻前顾后,不像一些新的规格可以大刀阔斧的来。如1999年发表的InfiniBand和RapidIO都确实打中PCI规格逼近共享总线物理极限的弱点,而2001年发表的HypeTransport更进一步打击信号单端接地在高频的物理极限,PCI已经到了必须在硬件上大幅改弦更张的地步。

在扩充卡/槽的数据传输率大增的情况下,面对的物理限制有:
● 并列总线:在低速时,并列总线的优势很明显,总线越宽,每一个频率可传输的数据位越多,因此,要数据传输速率增加,只要增加总线宽度就行了,总线宽度的上限唯有成本和空间而已。但当总线频率往上飙升,要维持信号同步与时序控制就会愈来愈难,串音干扰(crosstalk)、信号偏移(skew)…等物理问题也愈来愈严重,接收端的误差幅度(Margin)也会跟着紧缩。由于是物理问题,往往只能由PCB布线设计去设法弥补,但布线设计的实际变因甚多而难以捉摸,一旦失误,甚至会轻易摧毁一个产品。
● 信号传输模型:在低速时,单端接地模型是简单又有效的信号传输模型。但当总线频率往上飙升,电路不再是单纯的集总电路(Lumped circuit),而是布满了各种等效电阻、电容和电感的分布电路(Distributed circuit),造成的信号反射导致的信号变形,连误差幅度都难以补偿。

因此,我们可以看到InfiniBand和HyperTransport已经改用串行总线来避开并列总线的物理限制。串行总线不像并列总线是将频率线、控制线独立于数据线之外,而是将控制、数据,甚至频率都融合在同一传输信道上,而运用编码方法,让数据传输也可以具有夹带频率的同步能力,使收发两端不致有时序偏误的运作,而数据传输也不全然是用在实质传输数据,部分带宽也用于传递控制性的数据,如此看来,由于不完全传输数据,似乎较完全传输数据,在数据传输速率上吃亏,也需要多出的解/编码电路及并转串/串转并电路,但是,没有了串音、偏移等问题,信号频率便可大幅提升,足以超越原来的数据传输速率,而多出的电路,对现今芯片的超大晶体管数量而言,根本不算什么(占微处理器芯片面积的往往是内存)。另外,RapidIO和HyperTransport则是改用低电压差动信号(LVDS)模型来避开单端接地信号模型的物理限制。以往只用在远距高速传输线的差动信号现在也用在电路板上,不但有效抵抗干扰,接收端也不再需要很大的误差幅度,从而可以降低信号振幅,信号振幅的下降又进一步降低信号切换时间,使频率频率再升高,还附带降低功率消耗。

PCI Express 1.0

由于改变迫在眉梢,Intel提出了3GIO(即3rd Generation I/O,“第三代输出入接口”的简称),并在2002年正式由PCI-SIG发表为PCI Express 1.0标准。虽然名称只加了Express一字,但实际标准上的变动相当大:
● 由并列传输模式改为串行传输模式:完全改变最基本的传输架构。除了增加并转串和串转并方块之外,原先频率、控制、数据线分开的方式也改为融合,因此也必须加入编码器和译码器。至此,总线已完全找不到与ISA的关联性,反而类似Ethernet。
● 将信号传输改为LVDS:完全改变最底层的物理特性,因此必须加入物理层方块。
● 总线拓朴的改变:由原先的“共享总线”架构改成“点对点加交换器”架构。
● 全新的连接器:由于在物理层已有很大的不同,连接器不论是接脚定义和外型均与PCI不同。但在不增加系统成本的指导原则下,材质和外型看起来仍和原来很相像。
● 可扩充式架构:虽然改用串行传输模式,但新的规格仍有前瞻性的设计。只要用不用的扩展槽连接器及扩充卡宽度,扩充卡可以设计成每线道(lane)有1位、2位、4位、8位、12位、16位和32位。
● 传输速度跃进:即使是线道宽度最小的1位扩展槽,也能提供2.5 Gbit/s的数据带宽,还比PCI的66 MHz/32位版本快一点(2,133 Mbit/s),更何况线道宽度为16位的版本,可提供高达32 Gbit/s的数据带宽。
● 兼容的软件模式:虽然在硬件上有了巨大的改变,PCI Express试图沿用PCI的软件架构与驱动程序,以减低对系统厂商的冲击,而且,在软件上谨守“向下兼容”的指导原则。

PCI Express 2.0 vs. HyperTransport 3.0

由于半导体进展速度极快,各种竞争规格也不断翻新,甚至连被定义为“低速”的接口,如USB与ATA…等接口,极速也不断突破,PCI Express的规格也不得不亦步亦趋的跟着爬上摩尔定律的山头。2006年,PCI-SIG发表PCI Express 2.0规格,将速度往上再翻一倍,达1位线道5Gbit/s。这够快了吗?嘿嘿!在同一年,HyperTransport 3.0规格出炉,光1位线道的速度就高达10.4Gbit/s,连“慢速”装置USB的3.0规格,都在去年底宣告将极速推到5 Gbit/s,这表示以PCIe 2.0 x1扩充卡,要实做USB 3.0 Host卡都会有困难。因此,PCI-SIG赶在2007年中即宣示,在2010年以前,将提升PCIe的速度到8 Gbit/s,在2008年Intel举办的IDF上,更宣示要在PCIe 3.0时,较PCIe 2.0的速度倍增,到10 Gbit/s,而且往后每3~4年要让数据带宽的极速再倍增。由于8 Gbit/s几已到PCIe 2.0的物理极限,Intel发现串行编码的8b/10b算法是效能的瓶颈,故在PCIe 3.0时很可能会放弃这个串行接口上极为普遍的编/解码方法,甚至不做编/译码,以其他算法来补足这2 Gbit/s的差距。

无尽的高速需求

当摩尔定律发威,使得制定出来的规格感觉离我们有点距离时,人们总会问一个问题:“我们真的需要吗?”但是,从计算机和半导体的历史来看,我们问过微处理器“需要上GHz吗?”“需要多核心吗?”问过内存“需要上MByte吗?”“需要上GByte吗?”也问过通讯速度“需要上Kbit吗?”“需要上Mbit吗?”“需要上Gbit吗?”我们总是发现,天上似乎传来一个声音:“需要,我们需要!”而那个声音,那个声音其实来自人们伟大的梦想。以PCIe 3.0的速度,我们可以做出童年梦寐以求,哆啦A梦的百宝袋、竹蜻蜓吗?可以做得出星际争霸战中,打败赛隆人的太空战机吗?还差得远呢!人类的想象力才是这些规格的终点,而这,没有人能望见。我们还会看见PCIe 3.0,甚至PCIe的继承规格,不断的趋向人们梦想的终点,那个没有人能望见的终点。