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