基于PCI Express架構(gòu)的第三代局域I/O總線
PCI Express架構(gòu)采取分層式設(shè)計。新架構(gòu)維持與PCI兼容的尋址模式(加載-存儲架構(gòu)加上一組平面式的尋址空間),確保目前所有應(yīng)用程序與驅(qū)動程序不須變更即可在新平臺上執(zhí)行。PCI Express配置運(yùn)用許多PCI即插即用規(guī)格中的標(biāo)準(zhǔn)機(jī)制。軟件層負(fù)責(zé)產(chǎn)生讀取與寫入要求,這些要求的傳輸則由交易層透過基于分組的分離傳輸(split-transaction)傳遞至I/O器件。鏈路層在這些數(shù)據(jù)包中加入序列號與循環(huán)冗余碼檢測(CRC),建構(gòu)出一套極為可靠的數(shù)據(jù)傳輸機(jī)制。基本物理層則由內(nèi)建一個信號傳送對與接收對的dual-simplex信道所組成。初期的速度為每方向每秒2.5千兆次傳輸,提供一個200MBps的通訊信道,帶寬接近典型PCI接口的兩倍。
物理層
基礎(chǔ)PCI Express鏈接包含兩組低電壓之驅(qū)動信號對:傳送信號對與接收信號對。內(nèi)建之?dāng)?shù)據(jù)時脈運(yùn)用8b/10b編碼機(jī)制達(dá)到極高的數(shù)據(jù)傳輸率。初期的時脈頻率為每方向每秒2.5千兆次傳輸,隨著硅組件技術(shù)的演進(jìn),未來將可提高至每方向每秒10千兆次傳輸(信號在銅導(dǎo)線中的最高理論值)。物理層負(fù)責(zé)在兩組PCI Express裝置的鏈接層之間傳送封包。
PCI Express鏈接層可透過增加信號對,建構(gòu)多組管線,以達(dá)到帶寬線性擴(kuò)充的目標(biāo)。物理層能搭配x1、x2、x4、x8、x12、x16以及x32管線的寬度,并以位數(shù)據(jù)來切分,如圖5所示。每個位以8b/10b編碼機(jī)制在各管線之間傳送。對于其它功能層而言,數(shù)據(jù)的譯碼與重新編碼都是透明化的模式。
在啟始階段,每個PCI Express鏈接設(shè)定都會由每個鏈接端點的兩個代理元件相互協(xié)商管線的寬度與頻率。此過程中固件或操作系統(tǒng)軟件都沒有參與。
PCI Express架構(gòu)透過速度升級以及各種先進(jìn)的編碼技術(shù),達(dá)到未來性能提升的目標(biāo)。未來的速度、編碼技術(shù)或媒介都僅能影響物理層。
鏈路層
鏈路層主要的角色是確保PCI Express鏈接穩(wěn)定地傳送數(shù)據(jù)包。鏈路層負(fù)責(zé)維持?jǐn)?shù)據(jù)的完整性,并在交易層數(shù)據(jù)包中加入序列號與CRC。
大多數(shù)數(shù)據(jù)包都在交易層中構(gòu)建。授權(quán)型(credit-based)流程控制協(xié)議確保數(shù)據(jù)包僅會在另一端有空出的緩沖區(qū)能儲存接收數(shù)據(jù)包時才會送出。這種模式能預(yù)防數(shù)據(jù)包重傳的狀況,避免因資源限制而浪費總線帶寬。當(dāng)數(shù)據(jù)包損毀時,鏈路層會自動重新傳送封包。
交易層
交易層可讀寫來自軟件層的請求,然后創(chuàng)建所請求的數(shù)據(jù)包傳送至鏈接層。所有要求都采用個別傳輸?shù)哪J?,有時會需要響應(yīng)封包。交易層也會收到發(fā)自鏈路層的響應(yīng)數(shù)據(jù)包,并與原始的軟件請求進(jìn)行比對。每個數(shù)據(jù)包有一個獨一無二的識別符,讓響應(yīng)數(shù)據(jù)包能被轉(zhuǎn)送至正確的發(fā)送端。數(shù)據(jù)包格式支持32位內(nèi)存尋址以及延伸型6?位內(nèi)存尋址模式。封包亦具有“no-snoop”、“relaxed-ordering”以及“priority”等屬性,系統(tǒng)能根據(jù)這些屬性在I/O子系統(tǒng)中為數(shù)據(jù)包找出最佳的傳輸線路。
交易層支持四種尋址空間:其中包括三種PCI尋址空間(內(nèi)存、I/O以及配置),并增加一種消息空間。PCI 2.2推出一種稱為消息信號中斷(MSI)的系統(tǒng)中斷傳遞方法。系統(tǒng)運(yùn)用一套特殊格式的內(nèi)存寫入處理模式,而不是利用硬線邊帶信號。這是PCI 2.2系統(tǒng)的一項可選型功能。PCI Express規(guī)格重復(fù)運(yùn)用MSI的概念作為中斷處理的主要方法,并運(yùn)用Message Space支持所有邊帶信號,例如像中斷、電源管理要求以及重新激活等,其模式與帶內(nèi)Messages相同。PCI 2.2規(guī)格中的其它“special cycles”,像Interrupt Acknowledge,亦視為帶內(nèi)Messages??梢詫CI Express Messages看作是“虛擬線路”,因為它的效果就是消除各種的目前用于平臺實現(xiàn)中的邊帶信號。
軟件層
軟件兼容性是第三代局域I/O總線最重要的特性。軟件兼容有兩個層面:初始化/列舉以及運(yùn)行階段(run-time)。PCI具有一套魯棒性強(qiáng)的初始化模塊,讓操作系統(tǒng)能搜尋所有外插硬件設(shè)備,并分配適量的系統(tǒng)資源例如內(nèi)存、I/O空間以及中斷等給這些設(shè)備,建立一個最佳化的系統(tǒng)環(huán)境。PCI配置空間以及I/O器件的可編程性是關(guān)鍵性的觀念,仍被PCI Express架構(gòu)所延用。事實上,所有操作系統(tǒng)不須任何修改就可直接導(dǎo)入PCI Express-based平臺。
PCI支持的運(yùn)行階段軟件模塊是一套加載-儲存式的共享內(nèi)存模塊,PCI Express架構(gòu)仍繼續(xù)延用這種技術(shù),讓所有現(xiàn)有軟件不須修改就能繼續(xù)在PCI Express平臺上執(zhí)行,且新軟件可使用各種PCI Express的新功能。
評論