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源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索