什么是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文章
7237瀏覽量
90937 -
總線
+關注
關注
10文章
2941瀏覽量
89303 -
AXI
+關注
關注
1文章
134瀏覽量
17075
發布評論請先 登錄
AXI VIP設計示例 AXI接口傳輸分析
AXI VIP當作master時如何使用

XILINX FPGA IP之AXI Traffic Generator

ARM系列 -- AXI協議資料匯總(二)
Arm AMBA協議集中AHB與AXI相比訪問DDR效率帶寬會差很大
Arm中AHB與AXI相比訪問DDR效率帶寬會差很大
如何使用Xilinx AXI VIP對自己的設計搭建仿真驗證環境的方法
何謂 AXI?關于AXI3/AXI4的相關基礎知識

ZYNQ中DMA與AXI4總線

AXI4 、 AXI4-Lite 、AXI4-Stream接口
AXI3與AXI4寫響應的依賴區別?
AXI VIP當作master時如何使用?

評論