上一篇我們把已經成為過去歷史的一部分的那些匯流排介面介紹完,接下來是時候回到現代了,從過去 20 年內的經驗我們大致上可以說這段歷史幾乎是重複著從大一統走向百家爭鳴,之後又因為太過複雜造成的麻煩而重新回歸大一統的循環,而目前正好是走到了大一統的時代。不過 PCI Express 也已經發佈超過十年了,或許此刻同時也是正要再次走向百家爭鳴的開始。

PCI Express

在 PCI 規範推出將近十年之後,人們意識到當年 ISA 末期的狀況似乎又重現了,甚至比當年還要更加複雜,光是 PCI 自己就有先後不同版本,還有使用不同電壓的問題,而後來為了顯示卡而另外設計的 AGP 某種程度上也重演了當年 PCI 末年衍伸出 VESA Local Bus 的歷史,甚至連當年 ISA 的後續延伸 EISA 這樣的歷史也在 PCI-X 的出現之下被重演了,於是重新統一匯流排介面的需求再次出現。

PCE5885

PCI Express 就是在這樣的背景下誕生的,與 PCI、AGP 一樣又是 Intel 主導 (Intel 在這幾年內關於規格標準制定方面特別活躍),開發階段中被稱為第三代 I/O (3GIO,命名來源是將 PCI 是為第二代 I/O,ISA 視為第一代 I/O),由 Intel 制定並轉交 PCI-SIG 進行審定作為 PCI 的後續標準發佈。

以 PCI 技術為底層基礎進行大改造

為了降低在軟體上需要的修改量,並且提高 PCI Express 能一口氣取代所有多種慣用介面的資本,所以 PCI Express 發展的時候使用了與 PCI 一致的通訊標準,不過除此之外基本上 PCI Express 與 PCI、PCI-X 已經大不相同,最明顯的差異就在於傳輸介面從原來的並列 (Parallel) 改為序列 (Serial),這和 IDE 升級到 SATA 的趨勢有點類似,所以 PCI Express 基本上在使用上與 PCI 是沒有直接相容性可言的,但由於在通訊標準上的一致,所以廠商可以很容易設計出橋接晶片在原生 PCI Express 介面上拉出 PCI 插槽來 (下圖左邊的 PCIe to PCI/PCI-X Bridge)。

PCE5522

從上面的拓樸圖中還可以看到 PCI Express 的另一個特性,不同於 PCI/PCI-X 是使用共享匯流排的設計,PCI Express 實際上比較接近 AGP,是採用點對點連線通道的方式組成,而且單一裝置可以使用複數條連線通道來達成更高的理論資料傳輸率 (例如顯示卡最多可以使用 16 條)。