AXI4總線中Outstanding究竟是什麼

AXI4總線規範中,提到了一個Outstanding的概念,那麼該如何理解呢?咱們首先給出一個基本的請求-響應模型,以下圖所示。
node

下圖中,Master端向Slave端發出讀請求,Slave端接收請求後進行處理,待處理完成後將數據返回給Master。json

下面結合上面的請求-響應模型來介紹Outstanding的概念,從字面意思上,Outstanding表示正在進行的、未完成的意思,形象地說就是 「在路上的」 意思。緩存

先介紹最簡單的狀況,即Slave端Outstanding爲1,那麼上圖中的請求-響應模型工做過程以下所示:微信

Mater讀請求0 → Slave返回數據0 → Mater讀請求1 → Slave返回數據1 → Mater讀請求2 → Slave返回數據2 → ......flex

而若是Slave端的Outstanding爲N時(N>1),那麼Master端能夠在Slave不返回讀數據的狀況下,連續發出N個請求。假如在這期間Slave端返回了m個數據,那麼Master端還能夠接着發m個請求。形象點說,就是Master端 "在路上" 的請求最多爲N個url

以下圖所示,Slave端包含一個深度爲8的Buffer用來緩存請求命令,該Slave的Outstanding爲8,對於該Slave來講,即便一個命令都沒有處理,也能夠緩存8個命令。那麼對應的Master端就能夠連續發出8個請求,若是這期間Slave沒有返回數據,那麼Master端則不能再發出新的請求。若是這期間Slave端從Buffer中讀取了m個請求命令進行處理後將數據返回給Master,這樣Buffer中就又有了新的空間能夠緩存命令,也就是說Master端能夠繼續發送新的請求命令。spa

若是outstanding能力爲N>1的話,則:.net

1)讀操做:能夠連續發N個讀地址命令,這期間若是讀數據沒有返回,則須要等待讀數據返回,若是有讀數據返回,則返回了幾個,那麼仍然能夠接着發幾個。也就是說,「在路上」 的讀命令(或者讀數據)最多能夠是N。多說一點,能夠看出,若是數據返回得比較慢,那麼IP須要等待,效率就會比較低,所以,爲了提升效率,有必要提升outstanding能力,以彌補」路上「(總線)引入的延時。可是也不能無限制地發,不然有可能會引發總線擁塞,把其餘IP給堵住。下圖爲一個outstanding讀的時序圖例子。3d

2)寫操做:能夠連續發出N組寫地址(寫數據)命令,這期間若是寫響應沒有返回,則必須等待寫響應返回才能接着發寫地址(寫數據)命令,若是有寫響應返回,則返回了幾個,那麼仍然能夠接着發幾組。也就是說,「在路上」 的寫響應最多能夠是Norm

參考連接:AXI的outstanding功能

https://blog.csdn.net/tbzj_2000/article/details/88042890
AXI總線簡介(一)
AXI總線簡介 (二)

 

FPGA   

本文分享自微信公衆號 - 瓜大三哥(xiguazai_tortoise)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索