新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PCI-Express總線簡析

        PCI-Express總線簡析

        作者: 時間:2016-12-15 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/201612/330160.htm

        PCI Express的體系結構

        PCI Express體系結構采用分層設計,就像網絡通信中的七層OSI結構一樣,這樣利于跨平臺的應用。
        PCI-Express體系結構如圖5所示。它共分為四層,從下到上分別為:物理層(Physical Layer)、數據鏈路層(Link Layer)、處理層(Transaction Layer)和軟件層(Software Layer)。圖中的“S/W”和“Config/OS”均屬于軟件層。
        PCI Express的體系結構兼容于PCI地址結構模式,使得所有已有應用和驅動程序均不需作任何修改即可應用到新總線系統中。PCI-Express配置使用標準的PCI即插即用規格標準。下面對以上各層分別進行具體介紹。

        圖-5

        1、物理層(Physical Layer)
          物理層是最低層,它負責接口或者設備之間的鏈接,是物理接口之間的連接,可對應于網絡中OSI七層模式中的物理層來理解。
          物理層決定了PCI Express總線接口的物理特性,如點對點串行連接、微差分信號驅動、熱撥插、可配置帶寬等。初始的單一串行PCI Express鏈接包含兩個低電壓微分驅動信號對(4線的接收和發送對)的雙向連接,即“發送”和“接受”信號。數據時鐘使用8/10b解碼方式來達到相當高的數據速率(這一技術同時也在其它串行總線技術中,如InfiniBand和RapidIO),時鐘信息直接被編碼成數據流,比起分離信號時鐘更好。微分信號受兩個不同方向的電壓驅動,初始PCI Express的鏈接信號發送速率為單線每個方向2.5GB/s,預計到2004年可達到5GB/s的信號傳輸速率,使用先進的硅技術把數據傳輸速率提高到10GHz(達到銅線傳輸的理論上最大值)。雙向連接允許數據在兩個方向上同時傳輸,類似于全雙工連接,如電話系統,但是在雙向傳輸中,各自都有自己的地線,而不像雙工傳輸那樣采用公共地線,在雙向連接中可得到高速、更好質量的傳輸信號。單線雙向信號線及傳輸流程如圖6所示。


        圖6

          在圖中的兩個紅色箭頭代表兩個不同的方向(發送和接收)的數據包,從圖中可以看出,單線數據傳輸每個方向只需2要芯線,即一根數據傳輸線,一根為地線。
          PCI Express鏈接可以配置為x1、x2、x4、x8、x12、x16和x32信道帶寬,x1帶寬的鏈接包含4條線,x16帶寬信道每個方向就有16個不同的信號對,或者64根信號芯線用于雙向數據傳輸;終極的x32帶寬信道每個方向可以提供10GB/s的數據傳輸速率,但是在采用8位/10位編碼方式的情況下,實際速率只可達8GB/s,留有20%富余。PCI Express體系結構可以通過速度的提高和先進的編碼技術來升級,但這些速度的提高、編碼的改進和媒介的改變均只影響物理層,所以對于整個PCI Express架構來說升級是非常方便的。
          如圖7所示的是PCI Express總線數據流傳輸示意圖。圖的左邊顯示的是單信道情況下數據流的傳輸方式,因為PCI Express屬于點對點串行連接,所以在單信道情況下,數據流是一個字節一個字節地傳輸。在圖的右邊顯示的是多信道情況下PCI Express總線數據流的傳輸情況。因為有多外信道,所以數據可以依次傳輸到各個信道,加快了整個數據傳輸的速度,提高了數據傳輸效率,這有點類似于網絡中的磁盤陣列。

        不過在此要注意的一點是,連接的雙方信道配置要一致,不可不對稱配置,也就是說說兩個方向的信道數要相等。這主要是PCI Express接口在外設中的應用情況下需要著重考慮的,在計算機內部,通常兩上PCI Express設備之間不會有什么通信請求,如顯卡與網卡之間。有些工業分析家建議在第一代用于替代AGP總線的PCI Express圖形總線應該采用非對稱設計,來取代原有的16信道同步連接計劃,因為他們認為從圖形卡向系統內存傳輸的數據會更少些。


        圖7

          在物理層的另一處重要方面就是中斷。PCI Express支持兩個類型的中斷,現行的PCI INTx (x= A, B, C, or D) 中斷被保留下來了,仍可在PCI Express總線中應用。還有一個新的中斷類型,那就是MSI (Message Signaled Interrupt,信息信號中斷),MSI中斷可以進一步優化PCI .2/2.3設備。INTx中斷方式可以用信號方式中斷主機芯片請求,它可以與現行的PCI總線的驅動程序和操作系統兼容。PCI Express設備必須支持INTx和MS兩種中斷模式,原有設備將壓縮INTx中斷信息在PCI Express處理信息中。MSI中斷是通過內存寫處理操作邊沿觸發和發送的。重新編寫驅動程序對于MSI邊沿觸發中斷是非常有利的,MSI方案在使用數據包協議通過串行鏈接中是一種行之有效的本地中斷方式。MSI在多處理器系統中任何設備都可以發送中斷,比起主機直接發送中斷更加有效,所以現在許多多處理器系統和I/O架構都對MSI中斷技術提供支持。
        2、數據鏈路層(Link Layer)
          數據鏈路層的主要職責就是確保數據包可靠、正確傳輸。它的任務是確保數據包的完整性,并在數據包中添加序列號和發送冗余校驗碼到處理層。大多數數據包是由處理層發起的,基于信任,數據流控制協議確保數據包只在終端緩存空閑時傳輸。排隊了所有數據的重試,使得信道帶寬浪費現象得到有效地約束。但數據鏈路層在信號中斷時自動重新傳輸數據包。傳輸過程如圖8所示。

        3、處理層(Transaction Layer)
          處理層的作用主要是接受從軟件層送來的讀、寫請求,并且建立一個請求包傳輸到鏈接層。所有請求都是分離執行,有些請示包將需要一個響應包。處理層同時接受從鏈路層傳來的響應包,并與原始的軟件請求關聯。處理層還整合或者拆分處理級數據包來發送請求,如數據讀、寫請求,并且操縱鏈接配置和信號控制。以確保端到端連接通信正確,沒有無效數據通過整個組織(包括源設備和目標設備,甚至包括可能通過的多個橋接器和交換器)。
          在PCI Express總線技術中,數據包類型主要有兩種,那就是由處理層發起的“處理層數據包”(Transaction Layer Packet,TLP)和“數據鏈路層數據包”(Data Link Layer Packet,DLLP)。每個數據包都有一個可以使響應包定向于正確發起者的唯一標識符,包的格式支持32位內存地址和擴展64位內存地址。包同時還有如“非窺探”、“無嚴格排序”和“優先權”等屬性,這些屬性將應用于優化路由I/O子系統的數據包。
          處理層包括4個地址空間,其中3個是PCI接口原有的,如內存、I/O和配置地址空間,另一外新PCI-Express接口新加的,它就是“信息空間”。PCI2.2標準中介紹不斷變化的系統中斷宣傳的方法稱之為“信息信號中斷”(Message Signaled Interrupt,MSI)。這里特殊規格格式的內存寫事物代替無邊信號硬寫,如中斷、電源管理請求、復位等等有關信息方面。另一個PCI2.2標準的特殊循環,如中斷響應也屬于信息執行范疇。你可以把PCI-Express信息稱之為“虛擬線”,因為它們的影響將消除現有執行平臺中的廣闊無限頻帶信號的排列。這幾個地址空間類型的用途如下表所示。

        不同地址空間的傳輸類型
        地址空間處理類型基本用途
        內存讀/寫處理來自或發送到內存中的數據
        I/O讀/寫處理來自或發送到I/O節點中的數據
        配置讀/寫設備配置或者設置
        信息基線/供應商定義/先進交換處理從事件信號機制到通用目信息的所有信息


          PCI Express使用數據包和層協議結構,而不需任何邊帶及旁路主流串行連接信號。層協議已經在數據通信中使用多年,它們允許在不同協議的功能區域中保持分離,而且可以不用做任何改動更新或者濃縮在其它不同層中。如新的處理類型可以包括在新的協議版本中,而不會影響下面的層,或者物理媒介可以被更換,而不會對更高層有大的影響。
          下圖9說明了PCI Express的3個協議層(處理層、數據鏈路層和物理層)在數據傳輸中的作用,數據流從一個設備的處理層發起,經過數據鏈路層,到物理的總線接口設備,然后通過相應的PCI Express數據電纜傳輸到另一設備的物理層設備,經過另一設備的數據鏈路層再傳到處理層進行處理,第一層都代表一個協議棧。

        圖10顯示了數據包在兩個設備中傳輸的實際流程,高層數據包信息被壓縮在低層封裝包中,應用級數據最終在數據包的核心位置。處理層在端到端的數據傳輸中使用32位冗余校驗碼,在數據鏈路層是使用16位校驗碼的。處理層數據包頭包括許多控制信息和端到端傳輸數據。
          PCI Express處理層使用基于信任的流控制機制來確保接收設備有足夠的緩存資源用于接受從發送端設備所傳輸的數據大小和類型。


        圖10

          講到數據處理,再來講一下PCI Express總線接口中新的結構,那就是虛擬通道(Virtual lan)。類似于InfiniBand,PCI Express總線技術在每一個物理信道中也支持多點虛擬通道,理論上來講每一個單物理信道中可以允許有8條虛擬通道信道進行獨立通信控制。每個通信的數據包都定義不同的QoS,如圖11所示。當數據包通過PCI Express組織傳輸時,在每個交換器或者鏈接終端,數據包的基本傳輸信息和傳策略可以得到應用。傳輸信息在數據包包頭,它包括3位代碼,可以描述8個不同的傳輸信道。


        圖11

        4. 軟件層(Software Layer)
          軟件層被稱為最重要的部分,因為它是保持與PCI總線兼容的關鍵。其目的在于使系統在使用PCI Express啟動時,像在PCI下的初始化和運行那樣,無論是在系統中發現的硬件設備,還是在系統中的資源,如內存、I/O空間和中斷等,它可以創建非常優化的系統環境,而不需要進行任何改動。在PCI-Express體系結構中保持這些配置空間和I/O設備連接的規范穩定是非常關鍵的。事實上,在PCI-Express平臺中所有操作系統在引導時都不需要進行任何編輯,也就是說在軟件方面完全可以實現從PCI總線平穩過渡。
          在軟件響應時間模式方面,PCI-Express體系結構支持PCI的本地存儲、共享內存模式,這樣所有PCI軟件在PCI-Express體系中運行都不需任何改變。當然新的軟件可能包括新的特性。


        上一頁 1 2 下一頁

        關鍵詞: PCI-Express總線簡

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 三明市| 和田县| 木兰县| 常州市| 庐江县| 宕昌县| 伊春市| 双桥区| 黔南| 新泰市| 双牌县| 米脂县| 科尔| 托克逊县| 曲靖市| 秭归县| 阳谷县| 兰西县| 滦平县| 陆良县| 屏南县| 克什克腾旗| 卢氏县| 无为县| 唐海县| 浪卡子县| 兴隆县| 衡阳市| 彰武县| 巫溪县| 翁牛特旗| 怀柔区| 郎溪县| 普定县| 香河县| 肥西县| 蕉岭县| 弥勒县| 澳门| 乐清市| 威信县|