序列點對點傳輸帶來大幅提升的理論資料傳輸率

前面提過 PCI Express 與 PCI 最大的差異在於 PCI Express 捨去過去的並列傳輸,改採序列訊號為基礎,並且捨去過去的多點共用匯流排架構改採點對點資料通道設計,這樣的特性主要是為了解決過去 PCI 使用並列訊號時必須做到每條訊號線路都能等長的問題 (其實等長只是簡單的說法,實際上是需要確保傳輸的時候不會因為速度落差造成訊號不同步產生扭曲的問題),讓線路設計變得更加簡單,而且可以很容易透過增加資料通道數量的方式來倍數提升資料傳輸速率,除此之外也解決了並列傳輸一直以來都有,而且隨著傳輸速率增加越來越嚴重的串音干擾問題 (其實理由跟從 IDE 轉換到 SATA 差不多)。

在改用序列傳輸技術再加上差動訊號的設計等改進之後,PCI Express 的運作時脈有了近乎瘋狂的提升,還記得前面討論 PCI、AGP 等介面的時候都是 33 / 66 MHz,最高也只看到 533 MHz 嗎?PCI Express 1.0 的傳輸時脈是 2.5 GHz (25 x 100 MHz),在 2006 年發佈的 PCI Express 2.0 中還直接提高一倍來到了 5 GHz (50 x 100 MHz)。

除了時脈以外,追求進一步提升資料傳輸率的手段

然而我們都知道運作時脈是不可能無限往上增加的,所以在設計 PCI Express 3.0 的時候就把腦筋動到了資料的編碼方式上,原先 PCI Express 1.0/2.0 使用的是 8b/10b 編碼法,也就是將原先占用 8 個 bit 的資料編碼為 10 個 bit,目的在於以增加冗餘資料的方式來達到降低資料誤傳時造成系統出錯的機率的目的,於是實際的編碼效率僅有 80%。

而到了 PCI Express 3.0 時改採 128b/130b 編碼法,也就是每 128 個 bit 的資料只搭配 2 個 bit 的冗餘,新的編碼法效率可以高達 98.46%,也就是用於冗餘資料而被「浪費掉」的資料傳輸率僅有 1.54 %,這使得規格制定者只需要將運作時脈拉高到 8 GHz 就可以實現頻寬兩倍成長的預期目標,而不需要直接撐上 10 GHz

修訂版本運作時脈編碼方式編碼效率單通道傳輸率單通道頻寬最大傳輸率最大頻寬
1.02.5 GHz8b/10b80%2.5 GT/s250 MB/s40 GT/s4 GB/s
2.05 GHz8b/10b80%5 GT/s500 MB/s80 GT/s8 GB/s
3.08 GHz128b/130b98.5%8 GT/s984.6 MB/s128 GT/s16 GB/s

供電能力的提升

AGP8599

考慮到 PCI Express x16 主要用於顯示卡,而且顯示卡的供電需求越來越高,早在 AGP 的中後期就已經有需要外接 4-pin 電源的顯示卡出現 (上圖這張就是),到晚期甚至有需要兩個 4-pin 電源接頭 (傳統硬碟用的那種) 的顯示卡,顯然 AGP 的 25W 供電能力是遠遠不夠的,所以在設計 PCI Express 介面的時候就有特別考慮到這個問題,將 PCI Express x16 的供電能力一舉提高三倍,來到了 75W 之譜。

PCE8855

以 7600GT 為例,PCI Express 版本 (上圖) 基本上是不需要外接電源的,供電電路也相對簡單許多,而 AGP 版本除了多了一顆橋接晶片之外,還需要額外的外部電源 (下圖)。

PCE7596

不過呢,後來發生的事情大家都知道了,在 PCI Express 的時代開始之後,顯示卡的功率需求馬上就破百瓦了,所以現在的顯示卡通常都還是有外部輔助電源,而且電源供應器也發展出專門用於顯示卡的 6-pin 與 8-pin 電源接頭了,硬要說的話,當年對供電能力的強化其實並沒有如同預期發揮在滿足顯示卡需求上,倒是給了開發擴充卡時更加充裕的電源,使得一些相較於過去而言強化許多的擴充介面卡 (例如高性能的磁碟陣列卡) 得以成為可能。

PCI Express 的下一步

雖然 PCI Express 從 2004 年正式發佈到現在已經將近 12 個年頭了,但就目前我們所知道的消息,PCI Express 的發展還沒到尾聲,原先預定在今年要隨 Skylake 架構推出進軍消費性電腦市場的 PCI Express 4.0 已經被延期到 2017 年 (其實我個人是不看好在 2017 年有辦法釋出,很有可能要到 2018 或 2019 年,說起來最早的排程是下圖中的 2014~2015 年呢)。

PCE5882

PCI Express 4.0 的預期資料傳輸率將會比 PCI Express 3.0 再高出一倍,被認為這應該會是銅纜接觸技術的極限,接下來大概要往光纖發展了,沒有意外的話 PCI Express 4.0 應該會是 PCI Express 的最後一次大改版。