PCI Express

PCI Express的硬體協定

PCIe的連接是建立在一個單向的序列的（1-bit）對等連接基礎之上，這稱之為通道（lane）。這一點上PCIe連接與早期PCI連接形成鮮明對比，PCI連接基於匯流排控制，所有裝置共用雙向32位元並列匯流排。PCIe是一個多層協定，由事務層，資料交換層和實體層構成。實體層又可進一步分為邏輯子層和電氣子層。邏輯子層又可分為物理程式碼子層（PCS）和媒介接入控制子層（MAC）。這些術語借用自 IEEE 802 網路協定模型。PCIe通過ASPM協定進行電源管理。

實體層

於使用電力方面，每組流水線使用兩個單向的低電壓差分訊號（LVDS）合計達到2.5 Gbit/s。傳送及接收不同資料會使用不同的傳輸通道，每一通道可運作四項資料。兩個PCIe裝置之間的連接成為「連結」，這形成1組或更多的傳輸通道。各個裝置最少支援1傳輸通道（x1）的連結。也可以有2，4，8，16，32個通道的連結。這可以更好的提供雙向相容性（x2模式將用於內部介面而非插槽模式）。PCIe卡能使用在至少與之傳輸通道相當的插槽上（例如x1介面的卡也能工作在x4或x16的插槽上）。一個支援較多傳輸通道的插槽可以建立較少的傳輸通道（例如8個通道的插槽能支援1個通道）。PCIe裝置之間的連結將使用兩裝置中較少通道數的作為標準。一個支援較多通道的裝置不能在支援較少通道的插槽上正常工作，例如x4介面的卡不能在x1的插槽上正常工作（插不入），但它能在x4的插槽上只建立1個傳輸通道（x1）。PCIe卡能在同一資料傳輸通道內傳輸包括中斷在內的全部控制資訊。這也方便與PCI的相容。多傳輸通道上的資料傳輸採取交叉存取，這意味著連續位元組交叉存取在不同的通道上。這一特性被稱之為「資料條紋」，需要非常複雜的硬體支援連續資料的同步存取，也對連結的資料吞吐量要求極高。由於資料填充的需求，資料交叉存取不需要縮小封包。與其它高速數傳輸協定一樣，時鐘資訊必須嵌入訊號中。在實體層上，PCIe採用常見的8B/10B程式碼方式來確保連續的1和0字串長度符合標準，這樣保證接收端不會誤讀。編碼方案用10位編碼位元代替8個未編碼位元來傳輸資料，占用20%的總頻寬。到了PCIe 3.0，採用128B/130B程式碼方式，僅占用1.538%的總頻寬。有些協定（如SONET）使用另外的編碼結構如「不規則」在資料流中嵌入時鐘資訊。PCIe的特性也定義一種「不規則化」的運算方法，但這種方法與SONET完全不同，它的方法主要用來避免資料傳輸過程中的資料重複而出現資料散射。第一代PCIe採用2.5GT/s單訊號傳輸率，PCI-SIG計劃在未來版本中增強到5~10GT/s。

資料鏈路層

資料鏈路層採用按序的交換層資訊包（Transaction Layer Packets,TLPs），是由交換層生成，按32位元迴圈冗餘校驗碼（CRC，本文中用LCRC）進行資料保護，採用著名的協定（Ack and Nak signaling）的資訊包。TLPs能通過LCRC校驗和連續性校驗的稱為Ack（命令正確應答）；沒有通過校驗的稱為Nak（沒有應答）。沒有應答的TLPs或者等待逾時的TLPs會被重新傳輸。這些內容儲存在資料鏈路層的快取內。這樣可以確保TLPs的傳輸不受電子噪音干擾。PCIe對於ACK有所規範，在收到TLP封包之後，在一定時間內必須回應ACK，也就是ACK延遲（ACK Latency）的等待時間。因應ACK/NAK流程的需要，必須實作出重新播送緩衝器（Replay Buffer）。
TLPs加上Sequence number以及16 位元 CRC 後，被包裹成為資料鏈路層資訊包（Data Link Layer Packet,DLLP），除了資料傳遞外，交握訊號ACK和NAK訊號亦被包裹在資訊包中傳送，除此之外也用來傳送兩個互連裝置的交換層之間的流控制資訊和實現電源管理功能。

事務層

PCI Express採用分離交換（資料提交和應答在時間上分離），可保證傳輸通道在目標端裝置等待傳送回應資訊傳送其它資料資訊。
PCI Express採用可信性流控制。這一模式下，一個裝置廣播它可接收快取的初始可信號誌。連結另一方的裝置會在傳送資料時統計每一傳送的TLP所占用的可信號誌，直至達到接收端初始可信訊號最高值。接收端在處理完畢快取中的TLP後，它會回送傳送端一個比初始值更大的可信號誌。可信訊號統計是客製化的標準計數器，相比於其他方法，如基於握手的傳輸協定，這一模式的優勢在於可信訊號的回傳反應時間不會影響系統效能，因為如果雙方裝置的快取足夠大，是不會出現達到可信訊號最高值的情況，這樣傳送資料不會停頓。
第一代PCIe標稱可支援每傳輸通道單向每秒250 MB的資料傳輸率。這一數字是根據物理訊號率2500 Mbit/s除以編位元速率（10位／每位元組）計算而得。這意味著一個16通道（x16）的PCIe卡理論上可以達到單向250*16=4000 MB/s（3.7 GB/s）。實際的傳輸率要根據資料有效載荷率，即依賴於資料的本身特性，這是由更高層（軟體）應用程式和中間協定層決定。
PCI Express與其它高速序列連接系統相似，它依賴於傳輸的魯棒性（CRC校驗和ACK）。長時間連續的單向資料傳輸（如高速儲存裝置）可以達到>95%的PCIe通道資料傳輸利用率。這樣的傳輸受益於增加的傳輸通道（x2, x4 等）。但大多數應用程式如USB或乙太網路控制器會把傳輸內容拆成小的封包，同時還會強制加上確認訊號。這類資料傳輸由於增加封包的解析和強制中斷，降低傳輸通道的效率。作為一個在同一個印刷電路板（PCB）裝置間的通訊協定，它不需要達到其他遠距離通訊協定要求的高資料傳輸錯誤容忍度，而且，這種效率的降低並非只出現在PCIe上。

競爭協定

基於高速序列構架產生了很多傳輸標準，包括HyperTransport、InfiniBand、RapidIO和StarFabric等等。這些標準均有業界的不同企業支援，背後也都有大量的資金投入標準的研究開發，所以每一標準都聲稱自己與眾不同，獨占優勢。主要的差異在於可延伸性、靈活性與反應時間、單位成本的取捨平衡各不相同。其中的一個例子是在傳輸包上增加一個複雜的頭資訊以支援複雜路由傳輸（PCI Express不支援這種方式）。這樣的資訊增加降低了介面的有效頻寬也使傳輸更複雜，但是相應創造了新的軟體支援此功能。這種架構下需要軟體追蹤網路拓撲結構的變化以實現系統支援熱插拔。InfiniBand和StarFabric標準即能實現這一功能。另一個例子是縮小資訊包以減少反應時間。較小的資訊包意味著包頭占用了包的更大百分比，這樣又降低了有效頻寬。能實現此功能的標準是RapidIO和HyperTransport。PCI Express取中庸之道，定位於設計成一種系統互連介面而非一種裝置介面或路由網路協定。另外為了針對軟體透明，它的設計目標限制了它作為協定，也在某種程度上增加了它的反應時間。

應用與前景

在2005年，PCIe已近乎成為新的個人電腦主機板標準。關於此有不少評論，但最基本的原因是它對於軟體開發者完全透明——為PCI所設計的作業系統可以不做任何程式碼修改來啟動PCIe裝置。其二，它能增強系統效能，還有強有力的品牌認知。各類網卡、音效卡、顯示卡，以及當下的NVMe固態硬碟都使用了PCIe標準。下面為主流的使用PCIe 的外設產品。

顯示卡

大部分新型的AMD或NVIDIA顯示卡都使用PCIe標準。NVIDIA在它新開發的SLI上採用PCIe的高速資料傳輸，這使得兩塊相同晶片組顯示卡可同時工作於一台電腦之上。AMD公司也基於PCIe開發一種兩個GPU一同運作的技術，稱為CrossFire。ExpressCard剛剛出現在筆記型電腦上，但由於大部分筆記型電腦僅有一個插槽，目前無法將現有的Cardbus介面完全淘汰，更新成新的快速卡插槽。桌上型電腦就沒有這種問題，因為它的多個插槽可以同時支援PCIe和舊版PCI。

硬碟

當下主流的固態硬碟介面有M.2、U.2、PCIe、SATA、SATA Express等。M.2和U.2可選PCIe介面。NVMe協定是目前最高效的PCIe SSD協定標準。