1PCIe雙播產(chǎn)生背景
關(guān)于PCIe的發(fā)展歷史我們可以知道,PCIe發(fā)家于計(jì)算機(jī)領(lǐng)域,起源于PCI總線,隨著計(jì)算機(jī)產(chǎn)業(yè)的發(fā)展而壯大,其行業(yè)生態(tài)慢慢擴(kuò)展到了嵌入式領(lǐng)域及通信領(lǐng)域等。但因?yàn)槠錁錉罱Y(jié)構(gòu)導(dǎo)致其系統(tǒng)中通常僅有一個(gè)RC,大多數(shù)通信都以RC為主(RC能夠與所有的EP通信,且EP與EP之間的通信也要經(jīng)過RC路由(我們常用的PLX交換機(jī)支持P-P模式,可以不經(jīng)過RC)),這樣的樹形架構(gòu)與嵌入式系統(tǒng)的靈活互連帶來了一些沖突和不便的地方。
PCIe的規(guī)范制定者們努力的通過一些改進(jìn)來升級(jí)PCIe,通過在向前兼容的情況下進(jìn)行了多種功能的擴(kuò)展,像NT、多主等功能都是后續(xù)擴(kuò)展出來的,這些功能的優(yōu)化升級(jí)為PCIe的生態(tài)發(fā)展提供了更廣闊的空間,今天我們要介紹的DualCast功能也正是在這樣的背景下產(chǎn)生的。
如上圖所示,2008年5月,PCIe基本規(guī)范2.0增加了關(guān)于Multicast(多播)的ECN,這個(gè)新增的功能為嵌入式系統(tǒng)各節(jié)點(diǎn)之間的數(shù)據(jù)移動(dòng)和共享提供了強(qiáng)大的技術(shù)支撐。今天我們主要介紹下Dual-Cast(雙播,以下簡稱DC),Dual-Cast從名稱上看就可以知道是Multicast的功能簡化版本(需要說明的是在具體技術(shù)實(shí)現(xiàn)上Dual-Cast沒有使用PCIe規(guī)范中的Multicast的技術(shù)架構(gòu),僅僅功能上類似,是PLX公司率先推出的)。
2 PCIe雙播基本介紹
傳統(tǒng)的PCIe系統(tǒng)通常局限于單目標(biāo)的通信傳輸,這種傳輸模式使得在給定的某一時(shí)刻某個(gè)特定的節(jié)點(diǎn)只能與一個(gè)另外的節(jié)點(diǎn)進(jìn)行通信傳輸,如果需要將同樣的數(shù)據(jù)發(fā)送給多個(gè)節(jié)點(diǎn),則需要發(fā)起多次傳輸事務(wù),分別進(jìn)行傳輸。而雙播DC的應(yīng)用則能夠?qū)崿F(xiàn)將相同的數(shù)據(jù)在同一時(shí)刻發(fā)送給兩個(gè)不同的設(shè)備。
主要的應(yīng)用場景比如:通信導(dǎo)航領(lǐng)域,同樣的數(shù)據(jù)需要同時(shí)發(fā)送給兩個(gè)節(jié)點(diǎn)分別進(jìn)行信號(hào)的處理;比如顯控領(lǐng)域,接收到的視頻數(shù)據(jù)同時(shí)送給兩個(gè)大屏,或者接收到的視頻數(shù)據(jù)一邊送顯示一邊送存儲(chǔ);比如存儲(chǔ)領(lǐng)域,為了提高可靠性,數(shù)據(jù)需要同時(shí)存儲(chǔ)到兩個(gè)不同的存儲(chǔ)區(qū)域等。
這樣將相同的數(shù)據(jù)傳輸給兩個(gè)(或者多個(gè))接收設(shè)備的好處也比較明顯,主要有:
1)能夠降低開銷,實(shí)現(xiàn)處理資源的優(yōu)化。這個(gè)比較好理解,本來發(fā)送處理器需要發(fā)起兩個(gè)發(fā)送事務(wù),但是利用了DC功能,則只需要發(fā)起一個(gè)發(fā)送事務(wù),則節(jié)省下來的時(shí)間就可以進(jìn)行其他額外的任務(wù),這相當(dāng)于降低了開銷或者優(yōu)化了處理資源。
- 能夠縮短傳輸時(shí)延,提高設(shè)備之間的一致性。這個(gè)也比較好理解,比如說原本是分兩次順序發(fā)送,那勢必會(huì)導(dǎo)致第二個(gè)接收設(shè)備收到數(shù)據(jù)的時(shí)間晚了。
- 能夠提升鏈路資源的利用率。因?yàn)橥ㄟ^多播方式傳輸,則發(fā)送設(shè)備與交換機(jī)之間的鏈路被少利用了一次,這樣對(duì)鏈路的需求也降低了。
3 PLX86XX中的雙播方案
3.1 PLX86XX的雙播模型和基本概念
如上圖所示,雙播的概念基本都在上圖有表示,分別進(jìn)行介紹:
- DC BAR(Dual Cast Low BAR[0:7] / Dual Cast High BAR[0:7]):DC
BAR表示DC功能的基地址,只有進(jìn)入該BAR窗口的TLP事務(wù)才有可能產(chǎn)生DC事務(wù),PEX86XX共有8個(gè)這樣的BAR地址。該BAR一共為64bit寬度,由Dual
Cast Low BAR[0:7]和Dual Cast High BAR[0:7]組成,其中對(duì)于地址范圍小于4GB或者32bit的系統(tǒng)來說,Dual Cast
High BAR[0:7]內(nèi)部全為0;對(duì)于Dual Cast LowBAR,只有高12Bit有效,低20bit被硬連接設(shè)置為0x0_000C;因?yàn)橹荒茉O(shè)置高12Bit,則DC BAR的最小對(duì)齊邊界為1MB,即只能設(shè)置為1MB的整數(shù)倍。 - DC BAR Setup(Dual Cast Low BAR[0:7] Setup/Dual Cast High BAR[0:7]Setup):DC BAR Setup表示DC功能的BAR的窗口大小,DC BAR Setup與DCBAR一起相當(dāng)于形成了一個(gè)完整的地址空間窗口,當(dāng)進(jìn)入到使能了DC功能的端口時(shí),如果TLP的目的地址≮DC BAR且
- DC BAR Translation(Dual Cast Low BAR[0:7] Translation/Dual Cast High
BAR[0:7]Translation): DC BAR Translation表示DC功能產(chǎn)生的復(fù)制TLP的新的目的地址,用于替換原有的目的地址。 - DC Source Destination Port(Dual Cast Source Port/Dual Cast Destination
Port):用于指定DC功能的源端口和目的端口。
- OriginalTLP:用于表示雙播TLP中的原始TLP。
- DC Copy TLP:用于表示雙播TLP中被復(fù)制轉(zhuǎn)發(fā)的TLP。
注意事項(xiàng):
- NT端口也可以作為Dual Cast Destination Port;
- 只有Memory Write TLP才能夠被用于作為DC TLP,這個(gè)也比較好理解,Memory Write
TLP是Posted事務(wù),不需要接收端進(jìn)行回復(fù),詳見(PCIe中TLP報(bào)文的分類)。 - 關(guān)于地址空間,不能夠互相重疊和沖突,比如說DC BARx之間不能重疊,比如說DC BAR ~ DC BAR+ DC BAR Setup需要在Original TLP的目的端口的地址空間,比如說DC BAR Translation~DC BAR Translation +DC BAR Setup需要在DC Copy TLP的目的端口的地址空間范圍等等。
總結(jié)DC的使能條件:
- TLP事務(wù)是Memory Write TLP;
- TLP事務(wù)的目的地址≮DC BAR,且
- TLP事務(wù)的入端口是Dual Cast Source Port,表明入端口使能了DC功能;
PLX86XX的雙播舉例(參見PEX8624 DataBook)
背景:
- PEX8624,配置為x8,x8,x8,其中Port0為上游端口,Port5和Port8為下游端口;Port5端口的地址空間基址為0XAAA0_0000;Port8端口的地址空間基址為0xBBB0_0000。
- 希望能夠?qū)崿F(xiàn)Memory Write TLP從Port0往Port5的地址空間0XAAA0_0000~0XAAAF_FFFF發(fā)送時(shí),能夠觸發(fā)DC功能,自動(dòng)同時(shí)往Port8端口發(fā)送,對(duì)應(yīng)基址為0XBBB0_0000。
分析:
- 因?yàn)槭恰癙ort0往Port5發(fā)送時(shí),希望能夠觸發(fā)同時(shí)往Port8發(fā)送”,可以知道Dual Cast Source Port=0、Dual Cast Destination Port=8;
- “往Port5的地址空間0XAAA0_0000~0XAAAF_FFFF發(fā)送時(shí),能夠觸發(fā)DC功能”,可以知道DC BAR=0XAAA0_0000、DC BAR Setup=0XF_FFFF(0XAAAF_FFFF-0XAAA0_0000)=1MB;
- “自動(dòng)同時(shí)往Port8端口發(fā)送,對(duì)應(yīng)基址為0XBBB0_0000”,可以知道DC BAR
Translation=0XBBB0_0000; - 且相關(guān)的地址之間不重疊、不沖突。
具體步驟:
- 設(shè)置DC BAR0,DC BAR=0XAAA0_0000,則DC Low BAR0[31:0]=0XAAA0_0000、DC High BAR0[31:0]=0x0。
- 設(shè)置DC BAR0 Setup,DC BAR Setup=1MB,參照對(duì)應(yīng)的空間映射關(guān)系,則DC Low BAR0[31:0]Setup=0XFFF0_0000、DC High BAR0[31:0] Setup=0XFFFF_FFFF。
- 設(shè)置DC BAR Translation,DC BAR Translation=0xBBB0_0000,則DC Low
BAR0[31:0]Translation =0XBBB0_0000、DC High BAR0[31:0] Translation=0x0。 - 設(shè)置DC Source Destination Port,Dual Cast Source Port=0x0、Dual Cast Destination Port=0x8,
DC Source Destination Port[3:0]=0x0;(Dual Cast Source Station/Port=0);
DC Source Destination Port[7:4]=0x8;(Dual Cast Destination Port =0x8);
DC Source Destination Port[8]=1;(Dual Cast on Station 0, Port0 ony);
or DC Source Destination Port[8]=0;(Dual Cast on Station 0, Port 0 and Port1)。
以上即是關(guān)于PCIe交換機(jī)雙播(DualCast、DC)功能的簡單介紹,PEX86XX交換機(jī)具備DC功能,關(guān)于MultiCast的更多介紹請(qǐng)見后續(xù)文章。
-
交換機(jī)
+關(guān)注
關(guān)注
21文章
2726瀏覽量
101449 -
總線
+關(guān)注
關(guān)注
10文章
2953瀏覽量
89404 -
PCIe
+關(guān)注
關(guān)注
16文章
1328瀏覽量
84740 -
云計(jì)算機(jī)
+關(guān)注
關(guān)注
0文章
8瀏覽量
2703
發(fā)布評(píng)論請(qǐng)先 登錄
交換機(jī)的作用
接入層交換機(jī)、匯聚層交換機(jī)和核心層交換機(jī)的區(qū)別
工業(yè)控制交換機(jī)和工業(yè)交換機(jī)的區(qū)別
核心交換機(jī)、匯聚交換機(jī)與普通交換機(jī)的區(qū)別介紹
交換機(jī)怎么用_交換機(jī)的優(yōu)缺點(diǎn)
網(wǎng)絡(luò)交換機(jī)的作用_網(wǎng)絡(luò)交換機(jī)怎么用
pcie2.0交換機(jī)資料
PoE交換機(jī)可以當(dāng)普通交換機(jī)使用嗎
以太網(wǎng)交換機(jī)的升級(jí)版:PCIe交換機(jī)

匯聚交換機(jī)和核心交換機(jī)區(qū)別
交換機(jī)的作用與功能 交換機(jī)的基本配置
如何簡化PCIe 6.0交換機(jī)的設(shè)計(jì)

評(píng)論