什么是outstanding?
從字面理解,outstanding表示正在進行中的,未完成的意思,形象地說就是“在路上”。
比如現在需要傳輸一段數據,假設沒有outstanding,必須等到地址握手成功才能傳輸數據,而每一次握手過程中都不能保證主從機此刻都準備好,那這樣在數據傳輸過程中就難免會有氣泡,難以實現真正的全流水和滿性能。
所以從設計的角度,我們就有多發幾個地址的需求,比如我們可以發出去10個地址,盡管我們還沒給數據,但是可以讓從機知道,我們接下來要向這些地址寫數據,這樣就可以不用刻板地遵循,每次都要寫地址握手成功再寫數據。
所以在這個例子中,outstanding就是發出去的地址數量,未處理的地址可以先存放在AXI總線的緩存里,等完成一次傳輸事物之后,無需再握手傳輸地址,即可立即進行下一次的數據傳輸,所以outstanding本質上是為了實現數據傳輸的pipeline。
簡單講,如果沒有outstanding,或者說outstanding能力為1,則總線Master的行為如下(AHB總線就沒有outstanding能力):
?1)讀操作:讀地址命令 -》 等待讀數據返回 -》 讀地址命令 -》 等待讀數據返回
?2)寫操作:寫地址命令-》寫數據-》等待寫響應返回-》寫地址命令-》寫數據-》等待寫響應返回
而如果outstanding能力為N》1的話,則:
?1)讀操作:可以連續發N個讀地址命令,這期間如果讀數據沒有返回,則需要等待讀數據返回,如果有讀數據返回,則返回了幾個,那么仍然可以接著發幾個。也就是說,“在路上”的讀命令(或者讀數據)最多可以是N。多說一點,可以看出,如果數據返回得比較慢,那么IP需要等待,效率就會比較低,因此,為了提高效率,有必要提高outstanding能力,以彌補”路上“(總線)引入的延時。但是也不能無限制地發,否則有可能會引起總線擁塞,把其他IP給堵住。
如何計算outstanding?
首先,對于AXI而言,outstanding能力分為讀outstanding能力和寫outstanding能力。
如何計算outstanding能力呢?
首先對一些概念進行類比:
?burst傳輸的長度為一列高鐵的節數,8節高鐵對應的burst length=8。
?一節高鐵載的乘客數就是AXI的數據位寬,常見的AXI的數據位寬有64bit,128bit等等。
?高鐵的速度就是AXI總線的時鐘頻率,好比AXI的頻率有的是200MHz,有的是300MHz。
?從高鐵站觸發,到終點的線路長度就是AXI的總線延遲,即AXI的Master 到Slave的延遲拍數(Clock
Cycle)固定了,一節高鐵可以等效為AXI的一個Cycle。
類比之后,以一段高鐵線路為例,起點為A,終點為B,從A到B的高鐵線路如果要達到最高效率,需要在線路上排滿高鐵,首尾相接。那么需要多少列高鐵才能達到最大效率呢?
假設需要X列高鐵,(1列有N節)
X=(高鐵線路總長度2)/(N節高鐵的長度),N節高鐵的長度=1節高鐵的長度N,
所以X可變換為((高鐵線路總長度/1節高鐵長度)*2)/N,其中(高鐵線路總長度/1節高鐵長度)為高鐵總節數,因為一節高鐵對應一個AXI的cycle,所以高鐵總節數對應該線路的延遲Cycle總數。
X=線路延遲Cycle數目*2/N,
X即為AXI outstanding,其中線路延遲Cycle數目*2為Round Trip Latency(cycle)(往返總延遲),N為burst length。
(補充:最大傳輸帶寬=AXI Clock Frequency x AXI Data Width)
-
數據
+關注
關注
8文章
7193瀏覽量
89789 -
總線
+關注
關注
10文章
2908瀏覽量
88483 -
AXI
+關注
關注
1文章
128瀏覽量
16738
發布評論請先 登錄
相關推薦
AXI VIP設計示例 AXI接口傳輸分析
AXI VIP當作master時如何使用
![<b class='flag-5'>AXI</b> VIP當作master時如何使用](https://file1.elecfans.com/web2/M00/8D/E9/wKgaomTBxieAKrHdAAAsD_5yirc788.png)
XILINX FPGA IP之AXI Traffic Generator
![XILINX FPGA IP之<b class='flag-5'>AXI</b> Traffic Generator](https://file1.elecfans.com/web2/M00/B2/60/wKgZomVfBy6AenGeAAJVXvDnUFY178.jpg)
ARM系列 -- AXI協議資料匯總(二)
Arm AMBA協議集中AHB與AXI相比訪問DDR效率帶寬會差很大
Arm中AHB與AXI相比訪問DDR效率帶寬會差很大
如何使用Xilinx AXI VIP對自己的設計搭建仿真驗證環境的方法
何謂 AXI?關于AXI3/AXI4的相關基礎知識
![何謂 <b class='flag-5'>AXI</b>?關于<b class='flag-5'>AXI</b>3/<b class='flag-5'>AXI</b>4的相關基礎知識](https://file.elecfans.com/web1/M00/C8/4C/pIYBAF9t77CAGi9rAAA_HpvbSjA950.png)
ZYNQ中DMA與AXI4總線
![ZYNQ中DMA與<b class='flag-5'>AXI</b>4總線](https://file.elecfans.com/web1/M00/CE/1F/pIYBAF-fe1OAQWdOAADIZD4QHUg484.png)
AXI4 、 AXI4-Lite 、AXI4-Stream接口
AXI3與AXI4寫響應的依賴區別?
AXI VIP當作master時如何使用?
![<b class='flag-5'>AXI</b> VIP當作master時如何使用?](https://file1.elecfans.com/web2/M00/8D/E9/wKgaomTBxeyAaVacAAAsD_5yirc127.png)
評論