1990年早期,PCI首次被引進至PC,它對於當時在PC上過多可用的I/O匯流排造成全面的影響,其影響範圍涵蓋如(圖一)所顯示的VESA本機匯流排、EISA、ISA和「微通道」。因為PCI是首次實際用於晶片對晶片的互相連接,並可取代碎片式的ISA匯流排,所以早期33MHz的PCI匯流排已經是搭配當時主流週邊設備需求I/O頻寬的好搭檔了。時至今日,PCI之前的盛況已完全改觀。處理器和記憶體時脈經常在增加,尤其是處理器,其處理速度更是大幅提升。在演進的期間內,PCI匯流排已經從33MHz增加至66MHz,而處理器速度則由33MHz增加至3GHz。新興的I/O技術,像是Gigabit乙太網路和IEEE 1394B,單一裝置幾乎獨佔所有可用的PCI匯流排頻寬。
PCI匯流排歷史和概觀
PCI匯流排較之前的匯流排實作方式有許多項的優點。其中最重要的就是處理器獨立性、緩衝的隔絕、匯流排控制和真正的隨插即用操作。緩衝隔絕可以同時在電子和時脈領域,實際將CPU本機匯流排與PCI匯流排隔絕。這項功能為系統效能帶來了兩項主要的優點。第一項是在PCI匯流排和CPU匯流排執行同時流程的能力;而第二項則是獨立於PCI匯流排速度和載入之外,增加CPU本機匯流排頻率。有了匯流排控制,PCI裝置可以透過仲裁程序及直接控制匯流排執行,來獲得對於PCI匯流排的存取,而不需要等候主機CPU為裝置提供服務,進一步減少提供I/O執行服務時的整體延遲。隨插即用操作可以讓裝置自動偵測及設定妥當,因此使用者不用在ISA架構的主機板上,用開關及跳線繁複地進行手動設定位址及中斷處理的需要。
PCI挑戰
雖然PCI非常成功,但它現在面臨了一系列的挑戰,其中包括:頻寬限制、有限的主機接腳數、缺乏即時的資料傳輸(如同步資料傳輸服務),同時也欠缺下一代I/O需求(如服務品質、電源管理及I/O視覺化等功能)。
從PCI的引進開始,就已進行數次關於PCI規格的修正,以便試著配合I/O不斷增加的需求。(表一)便將這些修正做一摘要。
因為通訊協定的經常支出和匯流排拓蹼的關係,PCI匯流排的實用頻寬和它的改良版,比理論上的頻寬來得少。PCI的主要限制為可用的頻寬,這是匯流排上所有裝置共用的。
隨著PCI時脈頻率在某些應用中已明顯不足,PCI的改良版,像是PCI-X和進階圖形連接埠(AGP),就藉由增加匯流排時脈以增加頻寬使用率。增加時脈的副作用,是匯流排的路由距離,以及匯流排收發器可以驅動的接頭數目同時減少,形成將PCI匯流排分割為多重區塊的概念。每一個被切割的區塊都需要從主機驅動晶片,將一個完整的PCI-X匯流排傳送到每一現有插槽中。例如,64位元的PCI-X的每一區塊需要150支接腳,這在實作上的成本明顯偏高,並且對於路由、主機板層數和晶片封裝接腳輸出等功能有所限制。只有像伺服器等對頻寬要求非常高的情況下,這種昂貴的成本才能被接受。
有些資料擷取、波型產生以及包括串流音訊和視訊的多媒體應用程式等應用,需要確保頻寬和限定的延遲,否則將會影響使用者的量測結果與使用經驗。原始PCI規格並無法解決這些問題,因為這些應用在開發規格書上還未普及。現今的同步資料傳輸功能,例如高畫質且未經壓縮的視訊及音訊,其I/O系統必須擁有同步傳輸的功能。同步傳輸的副作用,PCI Express裝置比起傳統用來將變動頻寬問題降到最小的PCI裝置,其緩衝區裏所需的記憶體便少了許多。
最後,下一代的I/O需求,像是量測結果的品質和電源管理,將可改善資料之完整性,並允許選擇性地關閉電源系統裝置,這是針對現代PC電源需求量持續成長的重要考量。「虛擬通道」能夠傳送從虛擬路徑通過的資料;即使其他通道因為執行特別的動作而受到封鎖,也可以進行資料傳輸。
雖然PCI匯流排在某些領域已有點過時,但全面改用PCI Express還是一條長遠的路,PCI匯流排在未來的幾年中,還是會在I/O擴充上維持其強有力的競爭地位。在2004年及其後所引進的現代PC,將會同時含有PCI和PCI Express插槽,而且使用PCI Express比例會隨著其技術被採用而逐漸增加。
PCI Express架構
PCI Express架構是在各層中指定的,如(圖二)所示。此架構維持了與PCI定址模式的相容性(載入儲存架構及平面位址空間),可確保所有現存應用程式和驅動程式能不變地運作。PCI Express組態使用了在PCI隨插即用規格中所定義的標準機制。在使用以封包為基礎、分割執行的通訊協定等條件下,軟體層能夠產生由執行層傳送至I/O裝置的讀取及寫入請求。而連結層會對這些封包加入順序編號及CRC,以建立高度可靠的資料傳輸機制。基本實體層包含實際作為一傳輸對和一接收對的雙重單通道。以每一方向初始2.5Gbps之速度,在每一方向提供了200Mbps的通訊通道,這種速率已經非常接近典型PCI資料速率的四倍。
實體層
基本PCI Express之連結包含兩個如(圖三)所示,配有低電壓AC的差動訊號對(一傳輸對和一接收對)。實體連結訊號使用一種反加強的架構,以降低記號間的干擾,因此維持了資料的完整性。資料時脈則是使用8b/10b的內嵌編碼架構,以達成更高的資料速率。初始的訊號頻率為2.5Gbps/方向(第一代的訊號發送),而且這個數值預計可隨半導體製程技術的進步直線增加至10Gbps/方向(銅線的實作最大訊號值)。實體層會在兩個PCI Express代理的連結層之間傳送封包。
PCI Express連結的頻寬可以藉由增加訊號對,以形成多重路徑進行線性擴展。實體層提供×1、×2、×4、×8、×12、×16和×32倍速的路徑寬度,並將位元資料加以分割。每一位元都可以8b/10b編碼,並可跨路徑傳輸。這種資料的分解及重新組裝對其他層而言是透明的。在初始化階段,每一個PCI Express連結都會依據路徑寬度流通,以及在連結兩端的兩個裝置操作頻率上加以設定。這不會涉及任何韌體或作業系統軟體。PCI Express架構可經由速度升級及進階的編碼技術,提供進一步的效能改進。在未來,不論是速度、編碼技術或是媒體,都只會對實體層造成影響。
資料連結層
連結層的主要角色,是確保封包能跨越PCI Express連結達成傳送工作。連結層負責資料的完整性,如(圖四)所示,連結層確保資料的完整性,並在執行層封包的過程中加入順序編號和CRC。大部份的封包都會在執行層予以初始化。以信任為基礎,流程控制的通訊協定可以確保封包僅在它所知悉的本封包另一端有可以接收的緩衝區時,才會予傳送,這可以免除任何封包重試,以及因為資源限制所造成的相關匯流排頻寬浪費。連結層會在一封包的訊號毀損時,自動重試。
執行層
執行層可從軟體層接收讀取及寫入的請求,並建立封包的請求,以傳送至連結層。所有的請求都會以分割執行加以實作,而某些請求封包則需要一個回應封包。執行層也可以從連結層接收回應封包,並將它們與原始軟體請求比對。每一封包都擁有獨特的識別元,可以讓回應封包導向正確的原始產生者。封包格式提供了32位元的記憶體定址,以及擴充的64位元記憶體定址。封包也擁有像是「無調查」、「鬆散型排序」及「優先順序」等特性,以便透過I/O子系統,以最佳化方式用來路由這些封包。
執行層提供了四種位址空間,其中包括三種PCI位址空間(記憶體、I/O和組態)和「訊息空間」。PCI2.2引進了另一種傳播系統中斷指令的方法,稱為「訊息訊號中斷指令」(MSI)。它使用一種特殊的記憶體寫入執行來取代硬性線路的側帶訊號,可在PCI2.2系統中做為選用的功能。PCI Express規格書重複使用了MSI概念做為中斷處理程序的主要方法,並使用「訊息空間」來接受所有先前的側帶訊號,如中斷指令、電源管理的請求以及重設,當做帶內訊息(in-band Messages)。其他在PCI2.2規格書中的「特殊流程」,像是「中斷指令認證」,也是以帶內訊息加以實作的。PCI Express訊息可以視為「虛擬線路」,因為它們主要是負責消除目前使用在平台執行的多種側帶訊號。
軟體層
軟體相容性是PCI Express最重要的特性。軟體相容性有兩種面相--初始化(或列舉)的功能及執行時間。PCI擁有強健的初始化模型,因此作業系統可以發現目前所有新增的硬體裝置,再進行系統資源的配置,以建立最佳化的系統環境,故涉及如記憶體、I/O空間和中斷指令重新配置。在PCI Express架構中仍然維持不變的關鍵概念,即為PCI設定空間和I/O裝置中可程式的功能;事實上,所有作業系統都能不經修改,即可在PCI Express架構的電腦中開機。PCI使用的執行時間軟體模型其實是一種載入儲存、共用記憶體的模型,使用PCI Express架構,不用更改現存的軟體即可執行。新軟體也可以利用PCI Express某些進階功能,如「進階交換」功能,但這部份並不在本文件討論範圍之內。
PCI Express架構主導PC未來趨勢
PC架構在每一種交互連結中,有許多進階的需求。例如,圖形主機板是經由「進階圖形連接埠」(APG)形成介面,而記憶體橋接器則是經由多種介面與I/O橋接器相連的,例如(圖五)中所描繪的Hublink。
如(圖六)所示,PCI Express 使用通用匯流排架構來統一I/O系統。此外,PCI Express也替換了某些連結子系統的內部匯流排。
PCI Express可以依據應用平台--筆記型電腦、桌上型電腦或伺服器,提供許多種不同的I/O擴充格式。以伺服器而言,將擁有更多的PCI Express插槽,因為這些插槽將可提供更多的PCI Express路徑,這樣可以提供較大頻寬以配合I/O的需求。相反的,筆記型電腦可以在內部使用PCI Express架構,但僅顯露單一×1路徑供中速週邊設備使用。
桌上型電腦PCI Express擴充插槽
桌上型電腦和工作站電腦PCI主機板的替代品,和今日的PCI主機板的機械結構非常相似,它依據主機板邊緣接頭和及突出支架的I/O接頭,連接至主PWB的支撐支架。主機板上的接頭擁有改良的定位功能,以確保主機板的接頭不會因為震動或在送貨時滑動。它依據PCI Express路徑寬度,提供了許多不同尺寸的主機板邊緣接頭,從x1到最高x16。此插槽是為16倍速所規劃,以取代主機板上的AGP插槽,方便圖形主機板擴充之用。(圖七)顯示三個PCI插槽內的主機板圖片--兩個1倍速和一個16倍速供圖形主機板使用。請注意主機板仍擁有許多典型的PCI插槽,而典型PCI插槽還是可以使用一段長時間。(圖八)顯示一張典型圖形主機板的照片,提供一條16倍速連結,並可以3.2Gbps的速度傳送資料。(圖九)顯示各種不同PCI Express接頭的機械繪圖。
《圖七 主機板上的PCI Express擴充插槽》 |
|
《圖九 各種不同PCI Express接頭的機械式繪圖》 |
|