第II篇PCI Express體係結構概述
雖然PCI總線取得了巨大的成功,但是隨著處理器主頻的不斷提高,PCI總線提供的帶寬愈發顯得捉襟見肘。PCI總線也在不斷地進行升級,其位寬和頻率從最初的32位/33MHz擴展到64位/66MHz,而PCI-X總線更是將總線頻率提高到533MHz,能夠提供的最大理論帶寬為4263MB。但是PCI總線仍無法解決其體係結構中存在的一些缺陷。PCI總線麵臨著一係列挑戰,包括帶寬、流量控製和數據傳送質量等。
PCI總線的最高工作頻率為66M,最大位寬為64b,從理論上講,PCI總線可以提供的最大傳輸帶寬為532MB。然而PCI總線作為一個共享總線,在其上的所有PCI設備必須要共享PCI總線的帶寬。同時由於PCI總線的協議開銷,導致PCI總線可以實際利用的數據帶寬遠小於其峰值帶寬。
PCI總線采用提高總線位寬和頻率的方法增加其傳輸帶寬。但是這種方法從性能價格比的角度上看,並不是最優的。數據總線位寬的提高將直接影響芯片的生產成本,64位的PCI總線接口需要設計者使用更多的芯片引腳,從而導致64位的PCI總線接口芯片的價格遠高於32位的PCI總線接口芯片。與32位PCI總線接口相比,設計者還需要使用更多的印製板層數來實現64位PCI總線接口。
而提高總線頻率,除了給硬件工程師帶來了一係列信號完整性的問題之外,更直接影響PCI總線的負載能力。一條33MHz的PCI總線最多可以驅動10個負載,而66Mhz的PCI總線最多隻能驅動4個負載。因此片麵提高PCI總線的頻率和位寬,並不能有效地提高PCI總線的帶寬。
除此之外PCI總線在設計之初並沒有考慮服務質量的問題。有些實時數據采集卡,音頻或者視頻的多媒體應用需要PCI總線提供額定帶寬,而PCI總線上的設備隻能輪流使用PCI總線,當一個設備長期占用PCI總線時,將阻止其他PCI設備使用PCI總線,從而影響了PCI總線的傳送質量。
基於以上幾個原因,PCI總線在某種程度上說並不能完全適應現代處理器係統的需要,而使用PCIe總線可以有效解決PCI總線存在的一些問題。首先PCIe總線可以提供更大的總線帶寬,PCIe V3.0支持的最高總線頻率為4GHz,遠高於PCI-X總線提供的最高總線頻率。
其次PCIe總線支持虛通路VC(Virtual Channel)技術,優先級不同的數據報文可以使用不同的虛通路,而每一路虛通路可以獨立設置緩衝,從而相對合理地解決了數據傳送過程中存在的服務質量問題。
PCIe總線由若幹層次組成,包括事務層、數據鏈路層和物理層。PCIe總線使用數據報文進行數據傳遞,這些數據報文需要通過PCIe總線的這些層次。PCIe總線的這種數據傳遞方式與互聯網使用TCP/IP協議進行數據傳遞有類似之處。
實際上在互聯網中存在的許多概念也存在於PCIe總線中,如交換、路由和仲裁機製等,不過這兩者之間在實現上的最大不同在於前者主要使用軟件程序實現其協議棧,而後者使用硬件邏輯實現。
半導體工藝的逐步提高,使得更多的軟件算法可以使用硬件邏輯來實現,這給從事IC Design的工程師帶來了巨大的挑戰,因為他們使用Verilog/VHDL程序書寫的算法,之前是使用C或者是C++這樣的高別語言實現的。
PCIe總線在係統軟件級與PCI總線兼容,基於PCI總線的係統軟件幾乎可以不經修改直接移植到PCIe總線中。絕大多數PCI/PCI-X總線使用的總線事務都被PCIe總線保留,而PCI設備使用的配置空間也被PCIe總線繼承。基於PCI體係結構的係統編程模型,幾乎可以在沒有本質變化的前提下,直接在PCIe體係結構中使用。
但是從體係係統的角度上看,PCIe總線還是增加了一些新的特性,其中一些特性不僅僅是稱唿上的變化,而且在功能上也得到了增強。如在PCIe體係結構中出現的RC(Root Complex)。RC的主要功能與PCI總線中的HOST主橋類似,但是在HOST主橋的基礎上增加了許多功能。
在不同處理器係統中,RC的實現方式不同,因此僅僅用PCIe總線控製器稱唿RC是不夠的,實際上PCIe總線規範對RC並沒有一個合適的解釋。RC本身也是隨處理器係統的不同而不同,是一個很模煳的概念。
Intel並沒有使用PCIe總線控製器,而是使用RC管理PCIe總線,基於深層次的考慮。在x86處理器體係結構中,RC並不僅僅管理PCIe設備的數據訪問,而且還包含訪問控製、錯誤處理和虛擬化技術等一係列內容。因此使用PCIe總線控製器統稱RC,在x86處理器體係結構中,並不合適。
在PCIe總線中,還有一些特性與PCIe總線協議的實現相關。與PCI總線相比,PCIe總線使用端到端的連接方式,添加流量控製機製,並對“訪問序”做出了進一步優化。雖然從係統軟件的角度上看,PCI總線與PCIe總線基本一致。但是從硬件設計的角度上看PCIe總線完全不同於PCI總線,基於PCIe總線各類設備的硬件設計難度遠大於基於PCI總線的對應設備的設計難度。
目前PCIe總線規範,依然在迅勐發展,但並不是所有PCIe設備都支持這些在PCIe總線的最新規範中提及的概念。一般說來,PCIe總線規範提出的新的概念,最先在x86處理器係統的Chipset和Intel設計的EP中出現。最後更新:2017-04-03 16:48:37