axi 不同传输类型比较及Q&A(持续更新)

一、不同axi传输类型总结表

传输类型含义解释效果

burst transfer

突发传输

master发送控制信息和首地址信息给slave,slave根据这些信号计算接下来的地址信息。一拍地址和控制信息,操控多拍数据的读出/写入,减少了地址反复握手带来的延迟。

提高单笔数据的传输效率

outstanding transfer

超前传输

前一次burst传输还没完成时,就开始下一次数据传输一次握手,发送10个burst,减少burst握手带来的时间损耗;主设备发送10个地址和控制信号,缓存起来,1个burst结束后马上执行下一个

前一次burst传输还没完成时(还没收到slave发来的response),就开始下一次数据传输;

减少了因为burst提升同一从设备多笔burst传输的效率

out-of-order transfer

乱序传输

前一次传输还没完成时,就开始下一次数据传输且数据返回的顺序和地址顺序不同提高多个从设备传输效率

interleaving transfer

交织传输

前一次传输还没完成时,就开始下一次数据传输且数据返回的顺序和地址顺序不同,不同地址的数据可以交替出现在乱序的基础上支持不同ID间数据的乱序,而相同ID的数据还是顺序返回的,不同ID之间才有交织传输。
out of order与interleaving的区别在于前者是transaction粒度的乱序,而后者是transfer粒度的乱序

二、outstanding传输

形象得描述一下outstanding传输是什么?

假设master是仓库大叔,slave是快递小哥。大叔需要在今天从仓库里搬20件东西让快递小哥搬走。

非outstanding传输时,大叔把东西1拿出来,等小哥把东西1装进去箱子后,再继续去拿东西2;

也就是大叔拿东西1——>小哥装东西1——>大叔拿东西2——>小哥装东西2——>...大叔拿东西20——>小哥装东西20。

这样有两个坏处:

  • 这大叔不得被小哥打shi……效率太低

outstanding传输时,大叔可以在准备好的时候一次性把20件东西全部拿出来,让小哥慢慢把东西装进箱子里。也就是大叔拿东西1、2、...20——>小哥装东西1、2...20。

如何理解outstanding是针对master这句话?

对于一般的读传输,master发送完读地址后,需要等到读数据返回后,才会再一次发送下一个读地址;

对于一般的写传输,master发送完写地址和数据后,需要等到写响应返回后,才会再一次发送下一个写地址和数据的发送;

而outstanding传输时,master可以不需要等待上述的读数据或者写响应返回,就直接开启下一次传输。master是outstanding发起的主体,所以说outstanding是针对master。

上一笔transaction没传输完,下一笔就开始。那怎么区别数据属于哪一笔transaction?

根据W或者R通道的last信号或者response通道的信号即可区分。

outstanding需要master和slave同时支持时才能实现最大传输效率。那如果slave不支持呢?

slave可以通过Axready信号来阻止master的outstanding传输。

如果master发送trans 0后又紧接着发送trans1, slave可以通过将Axready信号拉低,来阻止master的outstanding传输。此时master会讲trans 1保留在总线上,等待slave接受。

等到slave接收完rdata 0后,slave再拉高Axready,表示可以接收master的下一笔传输。

如何实现outstanding?

既然outstanding是针对master的,那么实现outstanding也就需要master来做好准备。具体就是,master需要给多个还没有被slave响应的burst传输准备一片缓存,来保存还没有发送出去的burst传输的地址和控制信号。

因此,outstanding的能力就通过这片缓存的深度来实现。缓存深度越大,能力越强。

三、out of order传输

如何理解乱序out of order是针对slave这句话?

master发起outstanding传输给多个slave时,会有多笔burst传输启动(以master读slave为例)。这几笔burst传输是有先后的,比如先给slave 0发送了一笔transaction 0,再给slave 1 发送了一笔transaction 1。如果是允许out of order的话,并且slave 1比slave 0更早把数据准备好,那么就允许后发送的slave 1先返回数据。

所以说乱序是针对slave而言的。

其实针对slave,也就是针对transaction事务的,反正就不是针对master的。也就是说,多个master可以发起不同的事务,单个master也可以。

乱序是如何实现的?

需要通过不同的AXID来保证。

如果AXID是相同的,那么就没有办法乱序,因为一旦乱序了,你也不知道怎么谁是谁。所以相同的AXID,需要顺序返回。

那问题来了,master进行outstanding传输时,发出了几个AXID相同的读的burst,master怎么知道返回来的transaction是先发的还是后发的呢?

估计有个记录地址的地方。发第一个就先记录一下。

为何取消写乱序?

深入 AXI4 总线(五B)多主机传输事务场景 - 知乎

outstanding传输与out of order的区别?

四、interleaving传输

ref:

1.AXI中的传输类型——图文解释(Burst / Outstanding / Out-of-order 等)_axi outstanding-CSDN博客2.AXI协议一些定义的区分_outstanding和out of order有什么区别-CSDN博客

3.AXI协议学习总结(二)_axi id-CSDN博客

4.Out standing、Out of order、Interleaving详细介绍_out of order outstanding-CSDN博客

5.axios传输乱码 axi乱序传输什么意思_mob6454cc70cb6b的技术博客_51CTO博客

深入 AXI4 总线(O)专栏目录与资料集合 - 知乎

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hardworking_IC_boy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值