PCIe總線設(shè)計(jì)之初,主要是針對(duì)于音頻和視頻傳輸?shù)冗@些對(duì)時(shí)間要求特別敏感的應(yīng)用的。為了保證這些特殊應(yīng)用的數(shù)據(jù)包能夠得到優(yōu)先發(fā)送,PCIe Spec中為每一個(gè)包都分配了一個(gè)優(yōu)先級(jí),通過(guò)TLP的Header中的3位(即TC,Traffic Class)。
如下圖所示:

TC值越大,表示優(yōu)先級(jí)越高,對(duì)應(yīng)的包也就會(huì)得到優(yōu)先發(fā)送。一般來(lái)說(shuō),支持QoS(Quality of Service)的PCIe總線系統(tǒng),對(duì)于每一個(gè)TC值都會(huì)有一個(gè)獨(dú)立Virtual Channel(VC)與之對(duì)應(yīng)。這個(gè)Virtual Channel實(shí)際上就是一個(gè)Buffer,用于緩存數(shù)據(jù)包。
注:當(dāng)然也有那些只有一個(gè)VC Buffer的,此時(shí)不管包的TC值如何,都只能緩存在同一個(gè)VC Buffer中,自然也就沒(méi)有辦法保證按優(yōu)先級(jí)傳輸了。這樣的PCIe設(shè)備稱之為不支持QoS的PCIe設(shè)備。
一個(gè)簡(jiǎn)單的QoS的例子如下圖所示:

圖中左下角的Endpoint(即Isochronous Traffic)的優(yōu)先級(jí)比右邊的Endpoint(即Ordinary Traffic)的優(yōu)先級(jí)要高。因此,在Switch中,來(lái)自左邊的Endpoint的包會(huì)得到優(yōu)先傳輸。而Switch的這種判決操作叫做端口仲裁(Port Arbitration)。
默認(rèn)情況下,VC Buffer中的數(shù)據(jù)包是按照包達(dá)到的時(shí)間順序,依次放入VC Buffer中的。但是也并不是總是這樣,PCIe總線繼承了PCI/PCI-X總線關(guān)于Transaction-Ordering和Relaxed-Ordering的架構(gòu),但也只是針對(duì)相同的TC值才有效。關(guān)于Transaction-Ordering和Relaxed-Ordering,大家可以去參考PCI-X的Spec,這里不再詳細(xì)地介紹。
對(duì)于大部分的串行傳輸協(xié)議而言,發(fā)送方能夠有效地將數(shù)據(jù)發(fā)送至接收方的前提是,接收方有足夠的接收Buffer來(lái)接收數(shù)據(jù)。在PCI總線中,發(fā)送方在發(fā)送前并不知道接收法是否有足夠的Buffer來(lái)接收數(shù)據(jù)(即接收方是否就緒),因此經(jīng)常需要一些Disconnects和Retries的操作,這將會(huì)嚴(yán)重地影響到總線的傳輸效率(性能)。
PCIe總線為了解決這一問(wèn)題,提出了Flow Control的概念,如下圖所示。PCIe總線中要求接收方必須經(jīng)常(在特定時(shí)間)向發(fā)送方報(bào)告其VC Buffer的使用情況。而報(bào)告的方式是,接收方向發(fā)送方發(fā)送Flow Control的DLLP(數(shù)據(jù)鏈路層包),且這種DLLP的收發(fā)是由硬件層面上自動(dòng)完成的,并不需要人為的干預(yù)。需要注意的是,雖然這一操作旨在數(shù)據(jù)鏈路層之間進(jìn)行,但是這些VC Buffer的使用情況對(duì)于應(yīng)用層(軟件層)也是可見的。

采用Flow Control機(jī)制的PCIe總線,相對(duì)于PCI總線獲得了更高的總線利用率。雖然增加了Flow Control DLLP,但是這些DLLP對(duì)帶寬的占用極小,幾乎對(duì)總線利用率沒(méi)有什么影響。
-
總線
+關(guān)注
關(guān)注
10文章
3040瀏覽量
91658 -
PCIe
+關(guān)注
關(guān)注
16文章
1460瀏覽量
88404
原文標(biāo)題:【博文連載】PCIe掃盲——PCIe總線事務(wù)層入門(三)
文章出處:【微信號(hào):ChinaAET,微信公眾號(hào):電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
總線授時(shí)卡優(yōu)勢(shì)解讀 #雙模pcie授時(shí)卡 #北斗pcie授時(shí)卡 #pcie授時(shí)板卡 #總線 #同步天下
PCIe總線的通信機(jī)制
PCIe總線必須要先完成Flow Control初始化
Flow Control機(jī)制可以顯著地提高總線的傳輸效率
PCIe掃盲—PCIe錯(cuò)誤檢測(cè)機(jī)制的詳細(xì)資料概述
PCIe總線的熱插拔機(jī)制
PCIe錯(cuò)誤報(bào)告的兩種機(jī)制詳解
PCIe 9110IM PCIe總線轉(zhuǎn)CAN設(shè)備手冊(cè)
CET為何而生?CET安全防御機(jī)制解析
扒一扒PCIe中的Flow Control
PCIe熱插拔機(jī)制介紹
采用Flow Control機(jī)制的PCIe總線
評(píng)論