什么是outstanding?
從字面理解,outstanding表示正在進(jìn)行中的,未完成的意思,形象地說就是“在路上”。
比如現(xiàn)在需要傳輸一段數(shù)據(jù),假設(shè)沒有outstanding,必須等到地址握手成功才能傳輸數(shù)據(jù),而每一次握手過程中都不能保證主從機(jī)此刻都準(zhǔn)備好,那這樣在數(shù)據(jù)傳輸過程中就難免會(huì)有氣泡,難以實(shí)現(xiàn)真正的全流水和滿性能。
所以從設(shè)計(jì)的角度,我們就有多發(fā)幾個(gè)地址的需求,比如我們可以發(fā)出去10個(gè)地址,盡管我們還沒給數(shù)據(jù),但是可以讓從機(jī)知道,我們接下來要向這些地址寫數(shù)據(jù),這樣就可以不用刻板地遵循,每次都要寫地址握手成功再寫數(shù)據(jù)。
所以在這個(gè)例子中,outstanding就是發(fā)出去的地址數(shù)量,未處理的地址可以先存放在AXI總線的緩存里,等完成一次傳輸事物之后,無需再握手傳輸?shù)刂?,即可立即進(jìn)行下一次的數(shù)據(jù)傳輸,所以outstanding本質(zhì)上是為了實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)?a href="http://ttokpm.com/tags/pi/" target="_blank">pipeline。
簡單講,如果沒有outstanding,或者說outstanding能力為1,則總線Master的行為如下(AHB總線就沒有outstanding能力):
?1)讀操作:讀地址命令 -》 等待讀數(shù)據(jù)返回 -》 讀地址命令 -》 等待讀數(shù)據(jù)返回
?2)寫操作:寫地址命令-》寫數(shù)據(jù)-》等待寫響應(yīng)返回-》寫地址命令-》寫數(shù)據(jù)-》等待寫響應(yīng)返回
而如果outstanding能力為N》1的話,則:
?1)讀操作:可以連續(xù)發(fā)N個(gè)讀地址命令,這期間如果讀數(shù)據(jù)沒有返回,則需要等待讀數(shù)據(jù)返回,如果有讀數(shù)據(jù)返回,則返回了幾個(gè),那么仍然可以接著發(fā)幾個(gè)。也就是說,“在路上”的讀命令(或者讀數(shù)據(jù))最多可以是N。多說一點(diǎn),可以看出,如果數(shù)據(jù)返回得比較慢,那么IP需要等待,效率就會(huì)比較低,因此,為了提高效率,有必要提高outstanding能力,以彌補(bǔ)”路上“(總線)引入的延時(shí)。但是也不能無限制地發(fā),否則有可能會(huì)引起總線擁塞,把其他IP給堵住。
如何計(jì)算outstanding?
首先,對于AXI而言,outstanding能力分為讀outstanding能力和寫outstanding能力。
如何計(jì)算outstanding能力呢?
首先對一些概念進(jìn)行類比:
?burst傳輸?shù)拈L度為一列高鐵的節(jié)數(shù),8節(jié)高鐵對應(yīng)的burst length=8。
?一節(jié)高鐵載的乘客數(shù)就是AXI的數(shù)據(jù)位寬,常見的AXI的數(shù)據(jù)位寬有64bit,128bit等等。
?高鐵的速度就是AXI總線的時(shí)鐘頻率,好比AXI的頻率有的是200MHz,有的是300MHz。
?從高鐵站觸發(fā),到終點(diǎn)的線路長度就是AXI的總線延遲,即AXI的Master 到Slave的延遲拍數(shù)(Clock
Cycle)固定了,一節(jié)高鐵可以等效為AXI的一個(gè)Cycle。
類比之后,以一段高鐵線路為例,起點(diǎn)為A,終點(diǎn)為B,從A到B的高鐵線路如果要達(dá)到最高效率,需要在線路上排滿高鐵,首尾相接。那么需要多少列高鐵才能達(dá)到最大效率呢?
假設(shè)需要X列高鐵,(1列有N節(jié))
X=(高鐵線路總長度2)/(N節(jié)高鐵的長度),N節(jié)高鐵的長度=1節(jié)高鐵的長度N,
所以X可變換為((高鐵線路總長度/1節(jié)高鐵長度)*2)/N,其中(高鐵線路總長度/1節(jié)高鐵長度)為高鐵總節(jié)數(shù),因?yàn)橐还?jié)高鐵對應(yīng)一個(gè)AXI的cycle,所以高鐵總節(jié)數(shù)對應(yīng)該線路的延遲Cycle總數(shù)。
X=線路延遲Cycle數(shù)目*2/N,
X即為AXI outstanding,其中線路延遲Cycle數(shù)目*2為Round Trip Latency(cycle)(往返總延遲),N為burst length。
(補(bǔ)充:最大傳輸帶寬=AXI Clock Frequency x AXI Data Width)
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6820瀏覽量
88747 -
總線
+關(guān)注
關(guān)注
10文章
2859瀏覽量
87914 -
AXI
+關(guān)注
關(guān)注
1文章
127瀏覽量
16577
發(fā)布評論請先 登錄
相關(guān)推薦
評論