PCIE的結(jié)構(gòu)
在概念上,PCI Express總線是較舊的PCI/ PCI-X總線的高速串行替換。PCI Express總線與舊PCI之間的主要區(qū)別之一是總線拓?fù)洹? PCI使用共享并行總線架構(gòu),其中PCI主機(jī)和所有設(shè)備共享一組通用的地址,數(shù)據(jù)和控制線。 相比之下,PCI Express基于點(diǎn)到點(diǎn)拓?fù)洌瑔为?dú)的串行鏈路將每個(gè)設(shè)備連接到根系統(tǒng)(主機(jī))。 由于其共享總線拓?fù)?,可以?duì)單個(gè)方向上的PCI總線進(jìn)行仲裁(在多個(gè)主機(jī)的情況下),并且一次限制為一個(gè)主機(jī)。 此外,舊的PCI時(shí)鐘方案將總線時(shí)鐘限制在總線上最慢的外設(shè)(不管總線事務(wù)中涉及的設(shè)備如何)。
相比之下,PCI Express總線鏈路支持任何兩個(gè)端點(diǎn)之間的全雙工通信,同時(shí)跨多個(gè)端點(diǎn)的并發(fā)訪問沒有固有的限制。在總線協(xié)議方面,PCI Express通信封裝在數(shù)據(jù)包中。打包和解包數(shù)據(jù)和狀態(tài)消息流量的工作由PCI Express端口的事務(wù)層處理,電信號(hào)和總線協(xié)議的根本差異需要使用不同的機(jī)械外形尺寸和擴(kuò)展連接器(因此,需要新的主板和新的適配器板); PCI插槽和PCI Express插槽不可互換。在軟件級(jí)別,PCI Express保留與PCI的向后兼容性; 傳統(tǒng)的PCI系統(tǒng)軟件可以檢測(cè)和配置較新的PCI Express設(shè)備,而無需顯式支持PCI Express標(biāo)準(zhǔn),但是新的PCI Express功能無法訪問。兩個(gè)設(shè)備之間的PCI Express鏈路可以由1個(gè)到32個(gè)通道組成。 在多通道鏈路中,分組數(shù)據(jù)在通道上條帶化,并且峰值數(shù)據(jù)吞吐量與整個(gè)鏈路寬度成比例。通道計(jì)數(shù)在設(shè)備初始化期間自動(dòng)協(xié)商,并且可以被任一端點(diǎn)限制。例如,單通道PCI Express(×1)卡可以插入多通道插槽(×4,×8等),初始化周期自動(dòng)協(xié)商最高相互支持的通道數(shù)。該鏈接可以動(dòng)態(tài)地自動(dòng)配置自己,以便使用較少的通道,在存在不良或不可靠的通道的情況下提供故障容限。PCI Express標(biāo)準(zhǔn)定義了多個(gè)寬度的插槽和連接器:×1,×4,×8,×12,×16和×32。這允許PCI Express總線服務(wù)于不需要高吞吐量的成本敏感型應(yīng)用,以及諸如3D圖形,網(wǎng)絡(luò)(萬兆以太網(wǎng)或多端口千兆位以太網(wǎng))和企業(yè)級(jí)存儲(chǔ)(SAS或光纖通道)等關(guān)鍵性能的應(yīng)用。作為參考,使用四路(×4)的PCI-X(133MHz 64位)設(shè)備和PCI Express 1.0設(shè)備具有大致相同的峰值單向傳輸速率為1064MB / s。 在多個(gè)設(shè)備同時(shí)傳輸數(shù)據(jù)的情況下,或者與PCI Express外設(shè)的通信是雙向的情況下,PCI Express總線具有比PCI-X總線更好的性能。
互連PCI Express設(shè)備通過稱為互連或鏈路的邏輯連接進(jìn)行通信。鏈路是兩個(gè)PCI Express端口之間的點(diǎn)對(duì)點(diǎn)通信通道,允許它們發(fā)送和接收普通PCI請(qǐng)求(配置,I / O或存儲(chǔ)器讀/寫)和中斷(INTx,MSI或MSI-X) 。 在物理層面上,一條鏈路由一條或多條通道組成。低速外設(shè)(例如802.11 Wi-Fi卡)使用單通道(×1)鏈路,而圖形適配器通常使用更寬更快的16通道鏈路。
通道通道由兩個(gè)差分信號(hào)對(duì)組成,一對(duì)用于接收數(shù)據(jù),另一對(duì)用于發(fā)送。 因此,每個(gè)通道由四條線或信號(hào)跡線組成。在概念上,每條通道用作全雙工字節(jié)流,在鏈路端點(diǎn)之間的兩個(gè)方向同時(shí)傳輸8位“字節(jié)”格式的數(shù)據(jù)包。物理PCI Express鏈路可能包含1個(gè)到32個(gè)通道,更精確地包括1,2,4,8,12,16或32個(gè)通道。通道計(jì)數(shù)用“×”前綴( 例如“×8”表示八通道卡或插槽),×16是常用的最大尺寸。
串行總線由于后者的固有限制,包括半雙工操作,超量信號(hào)計(jì)數(shù)以及由于定時(shí)偏移引起的固有的較低帶寬,因此,傳統(tǒng)的并行總線選擇了綁定串行總線架構(gòu)。定時(shí)偏移來自在不同長(zhǎng)度的導(dǎo)線,潛在不同的印刷電路板(PCB)層和可能不同的信號(hào)速度下行進(jìn)的并行接口內(nèi)的分離的電信號(hào)。盡管作為單個(gè)字同時(shí)傳輸,并行接口上的信號(hào)具有不同的行進(jìn)持續(xù)時(shí)間,并在不同時(shí)間到達(dá)其目的地。當(dāng)接口時(shí)鐘周期短于信號(hào)到達(dá)之間的最大時(shí)間差時(shí),就不可能恢復(fù)傳輸?shù)淖帧S捎诓⑿锌偩€上的定時(shí)偏移量可能達(dá)到幾納秒,因此所產(chǎn)生的帶寬限制在幾百兆赫的范圍內(nèi)。串行接口不會(huì)出現(xiàn)定時(shí)偏移,因?yàn)槊總€(gè)通道中每個(gè)方向只有一個(gè)差分信號(hào),并且由于時(shí)鐘信息嵌入在串行信號(hào)本身中,所以沒有外部時(shí)鐘信號(hào)。因此,串行信號(hào)的典型帶寬限制在幾千兆赫范圍內(nèi)。 PCI Express是串行互連替代并行總線的一般趨勢(shì)的一個(gè)例子;其他示例包括Serial ATA(SATA),USB,Serial Attached SCSI(SAS),F(xiàn)ireWire(IEEE 1394)和RapidIO。在數(shù)字視頻中,常用的例子有DVI,HDMI和DisplayPort。多通道串行設(shè)計(jì)增加了靈活性,其能夠?yàn)檩^慢的設(shè)備分配較少的通道。