新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PCI-Express總線(xiàn)簡(jiǎn)析

PCI-Express總線(xiàn)簡(jiǎn)析

作者: 時(shí)間:2016-12-15 來(lái)源:網(wǎng)絡(luò) 收藏

本文引用地址:http://2s4d.com/article/201612/330160.htm

PCI Express的體系結(jié)構(gòu)

PCI Express體系結(jié)構(gòu)采用分層設(shè)計(jì),就像網(wǎng)絡(luò)通信中的七層OSI結(jié)構(gòu)一樣,這樣利于跨平臺(tái)的應(yīng)用。
PCI-Express體系結(jié)構(gòu)如圖5所示。它共分為四層,從下到上分別為:物理層(Physical Layer)、數(shù)據(jù)鏈路層(Link Layer)、處理層(Transaction Layer)和軟件層(Software Layer)。圖中的“S/W”和“Config/OS”均屬于軟件層。
PCI Express的體系結(jié)構(gòu)兼容于PCI地址結(jié)構(gòu)模式,使得所有已有應(yīng)用和驅(qū)動(dòng)程序均不需作任何修改即可應(yīng)用到新總線(xiàn)系統(tǒng)中。PCI-Express配置使用標(biāo)準(zhǔn)的PCI即插即用規(guī)格標(biāo)準(zhǔn)。下面對(duì)以上各層分別進(jìn)行具體介紹。

圖-5

1、物理層(Physical Layer)
  物理層是最低層,它負(fù)責(zé)接口或者設(shè)備之間的鏈接,是物理接口之間的連接,可對(duì)應(yīng)于網(wǎng)絡(luò)中OSI七層模式中的物理層來(lái)理解。
  物理層決定了PCI Express總線(xiàn)接口的物理特性,如點(diǎn)對(duì)點(diǎn)串行連接、微差分信號(hào)驅(qū)動(dòng)、熱撥插、可配置帶寬等。初始的單一串行PCI Express鏈接包含兩個(gè)低電壓微分驅(qū)動(dòng)信號(hào)對(duì)(4線(xiàn)的接收和發(fā)送對(duì))的雙向連接,即“發(fā)送”和“接受”信號(hào)。數(shù)據(jù)時(shí)鐘使用8/10b解碼方式來(lái)達(dá)到相當(dāng)高的數(shù)據(jù)速率(這一技術(shù)同時(shí)也在其它串行總線(xiàn)技術(shù)中,如InfiniBand和RapidIO),時(shí)鐘信息直接被編碼成數(shù)據(jù)流,比起分離信號(hào)時(shí)鐘更好。微分信號(hào)受兩個(gè)不同方向的電壓驅(qū)動(dòng),初始PCI Express的鏈接信號(hào)發(fā)送速率為單線(xiàn)每個(gè)方向2.5GB/s,預(yù)計(jì)到2004年可達(dá)到5GB/s的信號(hào)傳輸速率,使用先進(jìn)的硅技術(shù)把數(shù)據(jù)傳輸速率提高到10GHz(達(dá)到銅線(xiàn)傳輸?shù)睦碚撋献畲笾担?。雙向連接允許數(shù)據(jù)在兩個(gè)方向上同時(shí)傳輸,類(lèi)似于全雙工連接,如電話(huà)系統(tǒng),但是在雙向傳輸中,各自都有自己的地線(xiàn),而不像雙工傳輸那樣采用公共地線(xiàn),在雙向連接中可得到高速、更好質(zhì)量的傳輸信號(hào)。單線(xiàn)雙向信號(hào)線(xiàn)及傳輸流程如圖6所示。


圖6

  在圖中的兩個(gè)紅色箭頭代表兩個(gè)不同的方向(發(fā)送和接收)的數(shù)據(jù)包,從圖中可以看出,單線(xiàn)數(shù)據(jù)傳輸每個(gè)方向只需2要芯線(xiàn),即一根數(shù)據(jù)傳輸線(xiàn),一根為地線(xiàn)。
  PCI Express鏈接可以配置為x1、x2、x4、x8、x12、x16和x32信道帶寬,x1帶寬的鏈接包含4條線(xiàn),x16帶寬信道每個(gè)方向就有16個(gè)不同的信號(hào)對(duì),或者64根信號(hào)芯線(xiàn)用于雙向數(shù)據(jù)傳輸;終極的x32帶寬信道每個(gè)方向可以提供10GB/s的數(shù)據(jù)傳輸速率,但是在采用8位/10位編碼方式的情況下,實(shí)際速率只可達(dá)8GB/s,留有20%富余。PCI Express體系結(jié)構(gòu)可以通過(guò)速度的提高和先進(jìn)的編碼技術(shù)來(lái)升級(jí),但這些速度的提高、編碼的改進(jìn)和媒介的改變均只影響物理層,所以對(duì)于整個(gè)PCI Express架構(gòu)來(lái)說(shuō)升級(jí)是非常方便的。
  如圖7所示的是PCI Express總線(xiàn)數(shù)據(jù)流傳輸示意圖。圖的左邊顯示的是單信道情況下數(shù)據(jù)流的傳輸方式,因?yàn)镻CI Express屬于點(diǎn)對(duì)點(diǎn)串行連接,所以在單信道情況下,數(shù)據(jù)流是一個(gè)字節(jié)一個(gè)字節(jié)地傳輸。在圖的右邊顯示的是多信道情況下PCI Express總線(xiàn)數(shù)據(jù)流的傳輸情況。因?yàn)橛卸嗤庑诺?,所以?shù)據(jù)可以依次傳輸?shù)礁鱾€(gè)信道,加快了整個(gè)數(shù)據(jù)傳輸?shù)乃俣?,提高了?shù)據(jù)傳輸效率,這有點(diǎn)類(lèi)似于網(wǎng)絡(luò)中的磁盤(pán)陣列。

不過(guò)在此要注意的一點(diǎn)是,連接的雙方信道配置要一致,不可不對(duì)稱(chēng)配置,也就是說(shuō)說(shuō)兩個(gè)方向的信道數(shù)要相等。這主要是PCI Express接口在外設(shè)中的應(yīng)用情況下需要著重考慮的,在計(jì)算機(jī)內(nèi)部,通常兩上PCI Express設(shè)備之間不會(huì)有什么通信請(qǐng)求,如顯卡與網(wǎng)卡之間。有些工業(yè)分析家建議在第一代用于替代AGP總線(xiàn)的PCI Express圖形總線(xiàn)應(yīng)該采用非對(duì)稱(chēng)設(shè)計(jì),來(lái)取代原有的16信道同步連接計(jì)劃,因?yàn)樗麄冋J(rèn)為從圖形卡向系統(tǒng)內(nèi)存?zhèn)鬏數(shù)臄?shù)據(jù)會(huì)更少些。


圖7

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

3、處理層(Transaction Layer)
  處理層的作用主要是接受從軟件層送來(lái)的讀、寫(xiě)請(qǐng)求,并且建立一個(gè)請(qǐng)求包傳輸?shù)芥溄訉?。所有?qǐng)求都是分離執(zhí)行,有些請(qǐng)示包將需要一個(gè)響應(yīng)包。處理層同時(shí)接受從鏈路層傳來(lái)的響應(yīng)包,并與原始的軟件請(qǐng)求關(guān)聯(lián)。處理層還整合或者拆分處理級(jí)數(shù)據(jù)包來(lái)發(fā)送請(qǐng)求,如數(shù)據(jù)讀、寫(xiě)請(qǐng)求,并且操縱鏈接配置和信號(hào)控制。以確保端到端連接通信正確,沒(méi)有無(wú)效數(shù)據(jù)通過(guò)整個(gè)組織(包括源設(shè)備和目標(biāo)設(shè)備,甚至包括可能通過(guò)的多個(gè)橋接器和交換器)。
  在PCI Express總線(xiàn)技術(shù)中,數(shù)據(jù)包類(lèi)型主要有兩種,那就是由處理層發(fā)起的“處理層數(shù)據(jù)包”(Transaction Layer Packet,TLP)和“數(shù)據(jù)鏈路層數(shù)據(jù)包”(Data Link Layer Packet,DLLP)。每個(gè)數(shù)據(jù)包都有一個(gè)可以使響應(yīng)包定向于正確發(fā)起者的唯一標(biāo)識(shí)符,包的格式支持32位內(nèi)存地址和擴(kuò)展64位內(nèi)存地址。包同時(shí)還有如“非窺探”、“無(wú)嚴(yán)格排序”和“優(yōu)先權(quán)”等屬性,這些屬性將應(yīng)用于優(yōu)化路由I/O子系統(tǒng)的數(shù)據(jù)包。
  處理層包括4個(gè)地址空間,其中3個(gè)是PCI接口原有的,如內(nèi)存、I/O和配置地址空間,另一外新PCI-Express接口新加的,它就是“信息空間”。PCI2.2標(biāo)準(zhǔn)中介紹不斷變化的系統(tǒng)中斷宣傳的方法稱(chēng)之為“信息信號(hào)中斷”(Message Signaled Interrupt,MSI)。這里特殊規(guī)格格式的內(nèi)存寫(xiě)事物代替無(wú)邊信號(hào)硬寫(xiě),如中斷、電源管理請(qǐng)求、復(fù)位等等有關(guān)信息方面。另一個(gè)PCI2.2標(biāo)準(zhǔn)的特殊循環(huán),如中斷響應(yīng)也屬于信息執(zhí)行范疇。你可以把PCI-Express信息稱(chēng)之為“虛擬線(xiàn)”,因?yàn)樗鼈兊挠绊憣⑾F(xiàn)有執(zhí)行平臺(tái)中的廣闊無(wú)限頻帶信號(hào)的排列。這幾個(gè)地址空間類(lèi)型的用途如下表所示。

不同地址空間的傳輸類(lèi)型
地址空間處理類(lèi)型基本用途
內(nèi)存讀/寫(xiě)處理來(lái)自或發(fā)送到內(nèi)存中的數(shù)據(jù)
I/O讀/寫(xiě)處理來(lái)自或發(fā)送到I/O節(jié)點(diǎn)中的數(shù)據(jù)
配置讀/寫(xiě)設(shè)備配置或者設(shè)置
信息基線(xiàn)/供應(yīng)商定義/先進(jìn)交換處理從事件信號(hào)機(jī)制到通用目信息的所有信息


  PCI Express使用數(shù)據(jù)包和層協(xié)議結(jié)構(gòu),而不需任何邊帶及旁路主流串行連接信號(hào)。層協(xié)議已經(jīng)在數(shù)據(jù)通信中使用多年,它們?cè)试S在不同協(xié)議的功能區(qū)域中保持分離,而且可以不用做任何改動(dòng)更新或者濃縮在其它不同層中。如新的處理類(lèi)型可以包括在新的協(xié)議版本中,而不會(huì)影響下面的層,或者物理媒介可以被更換,而不會(huì)對(duì)更高層有大的影響。
  下圖9說(shuō)明了PCI Express的3個(gè)協(xié)議層(處理層、數(shù)據(jù)鏈路層和物理層)在數(shù)據(jù)傳輸中的作用,數(shù)據(jù)流從一個(gè)設(shè)備的處理層發(fā)起,經(jīng)過(guò)數(shù)據(jù)鏈路層,到物理的總線(xiàn)接口設(shè)備,然后通過(guò)相應(yīng)的PCI Express數(shù)據(jù)電纜傳輸?shù)搅硪辉O(shè)備的物理層設(shè)備,經(jīng)過(guò)另一設(shè)備的數(shù)據(jù)鏈路層再傳到處理層進(jìn)行處理,第一層都代表一個(gè)協(xié)議棧。

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


圖10

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


圖11

4. 軟件層(Software Layer)
  軟件層被稱(chēng)為最重要的部分,因?yàn)樗潜3峙cPCI總線(xiàn)兼容的關(guān)鍵。其目的在于使系統(tǒng)在使用PCI Express啟動(dòng)時(shí),像在PCI下的初始化和運(yùn)行那樣,無(wú)論是在系統(tǒng)中發(fā)現(xiàn)的硬件設(shè)備,還是在系統(tǒng)中的資源,如內(nèi)存、I/O空間和中斷等,它可以創(chuàng)建非常優(yōu)化的系統(tǒng)環(huán)境,而不需要進(jìn)行任何改動(dòng)。在PCI-Express體系結(jié)構(gòu)中保持這些配置空間和I/O設(shè)備連接的規(guī)范穩(wěn)定是非常關(guān)鍵的。事實(shí)上,在PCI-Express平臺(tái)中所有操作系統(tǒng)在引導(dǎo)時(shí)都不需要進(jìn)行任何編輯,也就是說(shuō)在軟件方面完全可以實(shí)現(xiàn)從PCI總線(xiàn)平穩(wěn)過(guò)渡。
  在軟件響應(yīng)時(shí)間模式方面,PCI-Express體系結(jié)構(gòu)支持PCI的本地存儲(chǔ)、共享內(nèi)存模式,這樣所有PCI軟件在PCI-Express體系中運(yùn)行都不需任何改變。當(dāng)然新的軟件可能包括新的特性。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉