早在2001年的春季IDF(Intel開發者論壇)上,Intel公司已經宣布要用一種新的技術取代PCI總線和多種芯片的內部連接,并稱之為第三代I/O總線技術(3rd Generation I/O,也就是3GIO);到了2001年底,包括Intel、AMD、DELL、IBM等20多家業界主導公司加入了PCI-SIG(PCI特殊興趣小組)并開始起草3GIO規范的草案;2002年草案完成,并把3GIO正式命名為PCI Express。而在春季IDF 2003上,Intel公布了PCI Express的產品開發計劃。目前PCI Express技術的915系列主板產品和不少顯卡都已經能在市面上買到了,那PCI EXPRESS的技術特點究竟是什么呢?
PCI Express技術要點
從并行到串行的轉變
與傳統PCI以及更早期的計算機總線的共享并行架構相比,PCI Express采用設備間的點對點串行連接(serial interface)。如此一來即允許每個設備都有自己的專用連接,是獨占的,并不需要向整個總線請求帶寬,同時利用串行的連接特點將能輕松將數據傳輸速度提到一個很高的頻率,達到遠超出PCI總線的傳輸速率。單個基本的PCI Express連接是一種單雙單工連接,一個單獨的基本的PCI Express串行連接就是兩個獨立的通過不同的低電壓對驅動信號實現的連接,一個接受對和一個發送對(共四組線路)。一個微分信號在兩個接口之間有電壓差來傳遞。
第一代的PCI Express連接將提供2.5Gbit/s的單向單線連接傳輸速率。相對于傳統PCI總線在單一時間周期內只能實現單向傳輸,PCI Express的雙單工連接能提供更高的傳輸速率和質量,它們之間的差異跟半雙工和全雙工類似。同時PCI Express串行連接使用了內嵌時鐘技術(8b/10b編碼模式),時鐘信息直接寫入數據流中,這對比大多數并行總線要額外傳輸保持同步的時鐘信號來說更能節省傳輸的通道和提高傳輸效率.
與Serial ATA類似,串行連接能大大減少電纜間的信號干擾和電磁干擾,由于傳輸線條數有所減少,更能節省空間和連接更遠的距離(單位時間內傳輸的數據流比并行總線中獨立時鐘信號的數據流更能傳送更遠的距離)。當然,一個PCI Express連接可以由多個“通道”組成,每個通道包括前面所提的單雙工連接(兩對線路)。
在設備和芯片之間的連接就能實現串行的多通道連接,每個通道相互獨立。一個PCI Express連接可以被配置成x1,x2,x4,x8,x12,x16和x32的數據帶寬。x1的通道能實現單向312.5MB/秒(2.5Gbit/s * 1 / 8位)的傳輸速率,同理x32通道連接就能提供10GB/秒的速率,但考慮使用8b/10b編碼實際上有20%左右的消耗,實際的傳輸速率大概是8GB/秒(x32單向)。
分層分包協議
PCI Express包含3個協議層:事物層(Transaction)、數據鏈路層(Data Link)和物理層(Physical),當數據在設備間傳輸時,每個設備都會被看成一個協議棧(protocol stack)。
數據傳輸過程
在發送端,數據先在事務層被分成數據包,然后繼續到下一層數據連接層和物理層,每一層都將在原有的數據上加入新的頭信息或尾部信息,最后通過物理連接傳輸到接受端設備的協議棧中;再接受端經過相反次序通過協議棧將在發送端的分包還原出來。
在三層中都各司其職,其中物理層負責組裝和分解處理層數據,同時掌握連接結構以及信號的控制,保證數據能實現端到端的通信,使合法的數據從發送端傳輸到整個PCI Express架構。順利達到接受端。而數據連接層則保證連接完整無缺地從一端傳輸到另一端,采用了Ack/Nack協議技術,能檢測錯誤并進行修正。
數據包處理和插槽
PCI Express數據包處理包含4種基本的處理類型:內存事務處理、I/O事務處理、配置事務處理和信息處理。
PCI Express數據處理
采用基本的流控制來保證接受端設備有足夠的緩沖資源接受來自發送端的數據(包括數據的容量和類型)。PCI Express的接口根據總線位寬不同而有所差異,包括x1、x4、x8以及x16(x2模式將用于內部接口而非插槽模式)目前的PCI接口將保留(就如當初PCI代替ISA時也在主板上留下ISA槽一樣)。較短的PCI Express卡可以插入較長的的PCI Express插槽中使用(也就是說低位寬的能插入高位寬的插槽使用)。
可升級插槽設計
同時PCI Express卡能夠支持熱拔插以及熱交換特性,支持的三種電壓分別為+3.3V、3.3Vaux以及+12V。考慮到現在顯卡功耗的日益上漲,PCI Express而后在規范中改善了直接從插槽中取電的功率限制,16x的最大提供功率達到了70W,比AGP8X接口有了很大的提高。基本可以滿足未來中高端顯卡的需求。這一點可以從AGP、PCI Express兩個不同版本的6600GT上就能明顯地看到,后者并不需要外接電源。
PCI Express支持的電壓
PCI Express虛擬通道及通信量等級.此外,PCI Express也支持每個連接的虛擬多通道。在一個小連接上可以存在最大8個獨立控制的通訊。每個通訊都可以根據數據包的通信量等級(Traffic Class,TC)性質得到不同的處理。對于在PCI Express中傳輸的數據包而言,在每一個轉換或連接終端,都要查驗TC信息,并據此進行適當的處理。在數據包頭部的TC描述符由3個bit組成,可以表示不同的TC等級。這和我們在網絡技術中看到的QOS實際上起到一個作用,就是保證那些需要實時處理的數據擁有較高的傳輸優先權,避免數據傳輸延遲。
PCI Express現有應用除了顯卡外,千兆以太網卡,電視卡,視頻編輯卡等,都已經出現.