從PCI Express匯流排演進看高速串列介面躍主流

本文作者:admin       點擊: 2009-03-17 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的繼承規格,不斷的趨向人們夢想的終點,那個沒有人能望見的終點。

電子郵件:look@compotechasia.com

聯繫電話:886-2-27201789       分機請撥:11