什么是PCI Express 標準(中)
PCI Express 構架
如圖 2 所示,即 PCI Express |0">PCI Express 的層次體系結構。它保持了與 PCI 尋址模式(加載-存儲體系結構且具有單層地址空間)的兼容性,從而保證了所有現(xiàn)有的應用程序和驅動操作無需改變。PCI Express 配置使用的是PCI 即插即用標準中所定義的標準機制。軟件層發(fā)出讀和寫請求,并使用基于數據包、分段傳輸的協(xié)議通過處理層傳輸至I/O 設備。
鏈路層向這些數據包添加序列號和循環(huán)冗余校驗(CRC )從而創(chuàng)建了一個高度可靠的數據傳輸機制。基本的物理層包括兩個單工通道,即傳輸對和接收對。這個傳輸對和接收對一起被稱為一個信道。2.5 Gb/s 的初始速度提供了在每個PCI Express 信道上每個方向上大約250 MB/s 標準帶寬。一旦考慮協(xié)議頭,這其中大約200 MB/s 由設備用來傳輸數據。這一速率是大多數典型 PCI 設備的 2 番到 4 番。而且不同于 PCI 的是,只要總線帶寬在設備之間共享,每一個設備都 具有此帶寬。
基本的PCI Express 鏈路包括兩個低電壓的AC 耦合差分信號對(一個傳輸對和一個接收對),如圖3所示。物理鏈路層信號使用一個去加重(de-emphasis )策略來減少符號間干擾,從而提高了數據完整性。數據時鐘通過使用 8b/10b 的解碼策略來嵌入,從而到達極高的數據傳輸率。初始的信號發(fā)生頻率是每個方向 2.5 Gb/s (生成1個信號) 而且它將會隨著硅工藝的提高而增加至每個方向10 Gb/s(信號在銅線中傳輸可能實現(xiàn)的最大速率)。兩個鏈路層的 PCI Express 代理在物理層上傳輸數據包。
在PCI Express 中使用不同的信道寬度需要用戶注意擴展板要求的帶寬以及與母板提供的帶寬相匹配。除了圖形卡以外(通常是X16 ),許多早期的PCI Express 擴展板使用的 X1 的寬度。隨著更高的帶寬要求,越來越多的板卡將使用更寬的帶寬。早期的PCI Express 計算機提供一個X16 的連接器以及一些X1 、X4 、X8 插槽的組合,這由計算機面向的客戶所決定。PCI Express 允許在不匹配的信道寬度上進行一些交互操作,這取決于不匹配的方向。在一個較小寬度的連接器上使用更大寬度的擴展板卡是向下插入。例如,利用PCI ,您可以在一個32 位的插槽上插入一個64 位的PCI 板卡。
然而,在 PCI Express 中,向下插入在物理上被擴展板卡和連接器所阻止。另一中不匹配在一個較大的連接器上使用一個較小的擴展板卡是向上插入。向上插入是允許的,但是會受到限制在這種配置下,母板廠商需要支持僅在X1 數據率上的擴展板卡,從而浪費了在具有更快接口速率的擴展板卡上的投資。無論一個特定的母板在向上插入配置時能否在全速率時處理一個擴展板卡,都必須在每種情況下向母板生產商確認。例如,一些母板可以在一個X4 的擴展板卡插入一個X8 或X1 的插槽時,以全速率(X4 )進行處理,然而來自同一廠商的其他母板可能僅以X1 的速率運行。在一個母板既帶有集成圖形控制器(板載)又帶有一個 X16 的 PCI Express 插槽以用于將來圖形擴展的情況下,通常不可能在板載圖形卡使能的同時使用那個 X16 的插槽。
數據鏈路層
鏈路層的主要作用就是保證數據包在 PCI Express 鏈路上的可靠傳輸。鏈路層負責數據完整性并向處理層的數據包添加序列號和循環(huán)冗余校驗,如圖4所示。大部分數據包在處理層初始化。一個基于優(yōu)先數的、流量控制的協(xié)議保證了數據包僅在另一端具有接收這個數據包的緩沖區(qū)情況下才能傳輸,這樣就去除了任何數據包的請求以及由于資源限制而引起的總線帶寬浪費。鏈路層會自動的重新收發(fā)一個被標記為損壞的數據包。
處理層接收軟件層的讀和寫請求,并創(chuàng)建請求數據包發(fā)送至鏈路層。所有的請求都被分段的處理而且一些請求包需要一個響應包。處理層也從鏈路層接收響應數據包并且將它與原先的軟件請求相匹配。每一個數據包都具有一個唯一的標識,使得響應包能夠指向正確的源。數據包的格式提供了32 位的存儲地址和擴展的64 位地址。數據包也具有諸如“無偵聽”、“靈活排序”“優(yōu)先級”等屬性,這可能用于將這些數據包在I/O 子系統(tǒng)中以最優(yōu)的路徑傳輸。
處理層提供4 個地址空間3 個PCI 地址空間(內存、I/O 和配置)和消息空間。PCI 2.2 引入了另一種廣播系統(tǒng)中斷的方式稱為消息信號中斷(MSI )。作為PCI 2.2 系統(tǒng)中一種可選的性能, 這里使用了一種特殊格式的內存寫處理替代硬連接的邊帶信號。PCI Express 技術指標重新使用了MSI 概念以作為一種主要的中斷處理方式,并且使用了消息空間來接收所有的優(yōu)先的邊帶信號來作為帶內信號,例如中斷、電源管理請求,和復位。其它PCI 2.2 技術指標中的“特殊周期”,例如中斷確認,也被處理成帶內消息。您可以將 PCI Express 消息視為“虛擬的線”,因為他們的作用是消除當前平臺上所使用的各種邊帶信號。
軟件層
軟件兼容性對于 PCI Express 是極為重要的。軟件兼容性有兩個方面初始化(或者列舉)和運行時刻。PCI 具有一個功能強大的初始化模式,其中操作系統(tǒng)可以發(fā)現(xiàn)所有當前添加的硬件設備然后分配系統(tǒng)資源,例如內存、I/O 空間和中斷,從而創(chuàng)建一個優(yōu)化的系統(tǒng)環(huán)境。PCI 配置空間和I/O 設備可編程能力是PCI Express 體系結構中保持不變的重要概念。PCI 所使用的運行時刻軟件模式是一個加載-存儲、共享內存的模式,它在PCI Express 體系結構中得以保持以使得所有現(xiàn)有的軟件能夠無需改變即可執(zhí)行。新的軟件也可以利用一些PCI Express 最新的先進特性,例如高級開關(本文并未述及)。
評論