Flow ControlFlow Control即流量控制,這一概念起源于網(wǎng)絡(luò)通信中。PCIe總線采用Flow Control的目的是,保證發(fā)送端的PCIe設(shè)備永遠(yuǎn)不會發(fā)送接收端的PCIe設(shè)備不能接收的TLP(事務(wù)層包)。也就是說,發(fā)送端在發(fā)送前可以通過Flow Control機(jī)制知道接收端能否接收即將發(fā)送的TLP。
在PCI總線中,并沒有Flow Control這樣的機(jī)制,因此發(fā)送端并不知道當(dāng)前時刻,接收端能夠接收對應(yīng)的TLP。因此,發(fā)送端只能先嘗試發(fā)送,期間可能會被插入多個等待周期(接收設(shè)備尚未就緒等原因),甚至是重發(fā)(Retries)等。
PCIe Spec規(guī)定,PCIe設(shè)備的每一個端口(Ports)都必須支持Flow Control機(jī)制,在發(fā)送TLP之前,F(xiàn)low Control必須先檢查接收端口是否有足夠的Buffer空間來接收這個TLP。當(dāng)PCIe設(shè)備支持多個VC(Virtual Channel)時,F(xiàn)low Control機(jī)制可以顯著地提高總線的傳輸效率。
PCIe Spec規(guī)定,每個PCIe設(shè)備最多支持8個VC,并且每個VC的Flow Control Buffer是完全獨(dú)立的。也就是說,某一個VC的Flow Control Buffer滿了,并不會影響其他的VC的通信。
前面的文章中介紹過,F(xiàn)low Control機(jī)制是通過相鄰兩個端口(Ports)的數(shù)據(jù)鏈路層之間發(fā)送DLLP(Flow Control DLLPs)來實(shí)現(xiàn)的。在進(jìn)行初始化的時候,接收端需要向發(fā)送端報(bào)告(reports)其Buffer的大小,在正常運(yùn)行狀態(tài)(Run-time)時,會周期性地通過Flow Control DLLPs來告知發(fā)送端,接收端的各個Buffer的大小。
需要注意的是,雖然Flow Control DLLP只在相鄰的數(shù)據(jù)鏈路層之間傳輸,但是相關(guān)的Buffer和計(jì)數(shù)器(FC Counter)確實(shí)存在于事務(wù)層(Transaction Layer)的。如下圖所示:
前面的文章中多次介紹過,TLP一共有三大類:
Posted Transactions(包括Memory Writes和Messages)、Non-Posted Transactions(包括Memory Reads、Configuration Reads and Writes、IO Reads and Writes)以及Completions(包括Read and Write Completion)。并且知道,TLP可以分為兩個部分,Header和Data部分。Flow Control為了獲得更高的數(shù)據(jù)傳輸效率,將這三類TLP分開存放,同時將Header與Data部分也分開存放。因此,一共存在六種不同的Flow Control Buffer類型,如下圖所示:
Flow Control Buffer的存儲單元(Unit)被稱作Flow Control Credits。對于Header來說,Requests TLP每個unit等于5DW,而Completions TLP每個unit等于4DW。對于Data來說,每個unit等于4DW,即Data Buffer是按照16個字節(jié)對齊的。對于各種類型的Buffer的最小值如下表所示:
最大值如下表所示:
注:0 unit表示無限(Infinite)。
-
總線
+關(guān)注
關(guān)注
10文章
2947瀏覽量
89331 -
PCIe
+關(guān)注
關(guān)注
16文章
1322瀏覽量
84656
原文標(biāo)題:【博文連載】PCIe掃盲——Flow Control基礎(chǔ)(一)
文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
1553b總線的特點(diǎn)和消息傳輸機(jī)制,有什么應(yīng)用?
關(guān)于AHB總線 Master的回復(fù)機(jī)制解析
STM32總線CPU和DMA可以同時工作嗎?有仲裁機(jī)制嗎?
采用Flow Control機(jī)制的PCIe總線

PCIe總線必須要先完成Flow Control初始化

區(qū)塊鏈機(jī)制設(shè)計(jì),可以解決可信性以及效率問題
CET為何而生?CET安全防御機(jī)制解析
W-CDMA電源顯著提高傳輸效率

扒一扒PCIe中的Flow Control

高性能整流器顯著提高服務(wù)器供電效率

評論