现在的主机板跟从前的不一样了。从过去十多年来,整个PC產业都在建构PCI(PeripheralComponent Interconnect)汇流排技术,而且所有电子工程科系的学生也都学习这项技术。然而PCI规格却已过时,因为PCI己无法满足新一代消费性装置以及电脑週边產品使用的需求,因此越来越多系统设计业者也表明「需要跳过PCI,并使用准备好解决下一代传输频宽需求的PCIExpress。」
事实上,PCIExpress目前被广泛认为是一项革命性的转移技术,其重要性是可以满足企业用户、消费者,以及网路使用者对频宽持续不断提升的需求。现今最重要的资料通讯设备平台以及个人电脑配备都采用PCI介面,但为了支援未来持续增加的频宽需求,则有转换成PCIExpress介面的必要性。
PCI逐渐转移到另一项新世代汇流排技术的现象并不令人差异,但要探讨为何业界要采用一项新技术去取代一项原有的技术,则是相当有趣的话题。而PCIExpress汇流排技术因为具备众多技术优点,所以才能脱颖而出。
PCI Express解决频宽需求
第一个因频宽需求增加而不适用PCI的周边配备是高速影像卡。为了解决这个问题,业界改用影像处理加速埠(AdvancedGraphics Port, AGP)作为特殊的视讯汇流排。采用AGP技术的厂商甚至将AGP直接连接到Intel ICH5芯片组的记忆体控制器(MCH),使AGP的频宽提升到每秒2GB。为了像AGP一样提升频宽,其他週边配备也纷纷效尤,最后如音效卡与USB之类的配备,几乎都和主机板的晶片组直接连结以获得足够的频宽。也因此整个PC架构需要一个新的扩充汇流排,以支援像Gigabit乙太网路(GBE)的高频宽週边配备。
为了解决频宽需求的问题,许多技术标准陆续问世却也很快就被淘汰,例如更快、频宽更多的PCI规格,以及某些伺服器设计所采用的PCI-X汇流排,都只是曇花一现。最后,Intel公司计划更改主机板晶片组的标准,并说服PCISIG组织采用它的3GIO(3rd Generation I/O)标准,最后更公布将这项介面标准改名为PCIExpress。
PCI Express是一种具扩充性的的汇流排,在首项规格改版中,在2.5Ghz的讯号速度下可提供从每秒250Mb到每秒8Gb的讯号传输率。甚至可以透过增加时脉速度或汇流排宽度的方式获得更高的频宽。PCIExpress最重要的技术效益之一,在于这个介面具备与PCI软体的回溯相容性,使目前基本输出入系统(BIOSes)以及作业系统皆能维持相同的运作方式。
PCI Express有一项很有趣的特色,就是这个规格可用两种方式扩充(见表1)。最初的规格要求每个传输方向需要每秒2.5Gb或相当于大约每秒250Mb的双向传输,平均上传与下载的频宽几乎是目前PCI汇流排的两倍。另外,需要更高频宽的装置与插槽还可增加额外的通道,可能的选择包括x2、x4、x8、x12、x16或x32之通道频宽(见图2),然而16通道(x16)预计将成为新一代绘图汇流排介面。
这套规格的另一项效益在于可以将汇流排延伸到PC机壳之外。PCIExpress SIG组织从2003年开始,便积极拟定一套PCIExpress的线材规格。一旦这套规格完成,PCIe汇流排将可用来连接PC外部的高频宽週边配备。
PCI Express可达到短时间转移
PCI Express和PC系统中的PCI架构十分相似,都是以週边连接汇流排的型态建构于南桥晶片中。此外,PCIExpress也由北桥晶片中延伸出来,以供绘图卡使用。图3显示低价PC系统之PCI Express建构方式。虽然目前很多週边连接设备仍采用PCI介面,但为了迎合未来,更高传输频宽的需求将会在短时间内转移到PCIExpress介面。
由于具备优异的基础架构和PCI在软体上的回溯相容性,因此PCIExpress介面的转移可以说是轻而易举。此外,全球產业对PCI介面都相当熟悉,因此转移到PCIExpress是相当合理的选择。以下让我们来探讨典型PCIExpress传输的过程,以瞭解其中资料传输的路径。
PCI Express可降低一半的回传延迟率
为了完整解释PCIExpress的效益,让我们来看看PCIExpress在实际应用中是如何进行的。以网页浏览器的应用为例,这项应用可能需要读取从乙太网路卡中已经接收的一些资料。为了读取资料,浏览器会產生读取记忆体缓冲区的要求,而这个要求经过数个软体层的传播之后,最后会到达硬体抽象层(HAL)。HAL属于Windows作业系统的一部份,可将各种逻辑位址转译为实体位址。一旦这项要求通过HAL,CPU将会执行实体记忆体位址的读取动作,此时这个CPU执行绪必须等候读取动作的完成。
一旦读取动作的传输离开CPU之后,将会经过前端汇流排(FSB,如上面图3所示)进入北桥晶片(也称为记忆体控制器集线器(MCH)或Root Complex)。北桥晶片检视传输的位址,发现目的地是南桥晶片(也称为ICH或IO集线控制器)后,会因此将传输转送到南桥晶片。南桥晶片包含一个PCIExpress交换器,会将这个读取要求首次移入PCIExpress之中(如图3底部所示的I/O集线控制器)。
在这裡,读取要求进入RootComplex的排列之中(图4)。一旦读取要求抵达排列前端时,RootComplex会将其放置于资料交易层封包(TLP)之中,这个TLP包含一个回传位址,让系统能传递所读取的资料、被读取资料的位址,以及被读取资料的长度。现在这个封包已经准备好透过连线传送,但RootComplex应该先确认接收端的装置有足够的空间可暂时储存这个封包。
PCI Express使用一种称为「授权式(credit-based)流程控制」的方法,以掌握连线另一端可用的缓冲区空间。当一个端点装置或交换器啟动时,会传送一个资料连结层封包(DLLP)到连线的另一端,可显示每一种传输类型有多少的缓冲区空间可以使用,然后传送端的装置会计算接收端还有多少剩餘空间可用。因为可能的接收缓冲区很多,这种流程控制模式在PCIExpress介面中就显得特别重要,若采用重传式流程控制法的话,因缺乏有系统的资料管理方式,于是当系统一搜寻到有内含空间的接收缓冲区时,大量频宽会在资料频繁往返间被消耗掉。
因为我们的读取要求只有16位元的长度,因此只需要一次授权(credit)。当Root Complex具备该传输类型以及虚拟通道(VC)所需的足够credit之后(请参阅PCIExpress辞汇解释中「虚拟通道」的定义),会将读取要求透过连线传送(见图4的箭头#1所示),并在其重传缓冲区(ReplayBuffer)储存该封包的复本。这个重传缓冲区会暂时保留封包复本,直到交换器确认该封包为止。虽然在PC背板上执行错误校正似乎不太需要,但错误校正可以提升伺服器可运用的时间,且将容许这个规格未来之扩充以接纳外部的连接线材。
下一步是当交换器接收到读取要求之后,会查看位址栏,并根据主机所发出的位址范围,判断正确的下传埠,然后将讯息放置在该通讯埠的传输缓冲区中。如果还有其他讯息需要处理,交换器会先传送具有较高优先权的讯息,然后将我们的读取要求转送到装置中(见图4的箭头#2)。
装置会将读取要求放在接收缓冲区当中,这个时候具有较高优先权的虚拟通道再次有机会优先被处理。在我们现在讨论的情况下,接收缓冲区是空的,因此我们的要求可以立刻被处理。该装置会从其记忆体中擷取资料,并建立一个内含对方要求之资料的读取完成封包(ReadCompletion Packet)。这个读取完成封包会进入该装置的传输缓冲区排列中,预备透过交换器传回RootComplex。当传输缓冲区获准传输时,封包会透过连线传送,并储存于重传缓冲区之中。
由于装置与交换器之间的路径目前没有任何指令在进行,因此交换器可以进行直接贯通传输(Cut-throughTransaction)的工作(见图4之箭头#3及箭头#4)。进行直接贯通传输时,交换器在尚未接收到完整的封包时,就会开始将封包传送到上传埠;这种传输方式可以大幅降低PCIExpress系统的延迟率。在我们的范例中,由于采用单一交换器,直接贯通传输可以将回传时的延迟率降低一半。
当南桥晶片接收到读取完成封包之后,会经过北桥晶片回传到CPU,然后CPU可以再次运作这个执行绪,而所读取的资料也会呈现给使用者。虽然这个过程听起来很复杂,但其中有很多步骤是PC系统内原来就具备的。目前每一部电脑都有北桥与南桥晶片,而且这些步骤与指令的执行皆以奈秒作为测量单位。
PCI Express将成未来10年PC汇流排
PCI Express严然是PC演化的下一个步骤。随著最终使用者对频宽需求不断增加,另外电脑厂商愈来愈注重成本控制,对照之下PCIExpress提供相当有吸引力的解决方案。PCIExpress和USB、SATA标准一样,可将数个庞大的平行汇流排转变为单一精确的高速序列汇流排。采用序列汇流排可以减少背板中线路的数量与线材,因此也可减少EMI、成本与空间的使用。而且PCIExpress具备与现有PC架构之回溯相容性,因此不需要重新改造电脑系统即可搭配PCIExpress架构。有鑑于PCIExpress在效能上的提升以及完善的回溯相容性,PCIExpress无疑是未来十年真正的PC汇流排。