AXI outstanding out-of-order interleaving

前言

最近把AXI的out-of-order忘记了,惭愧惭愧。记一下笔记。参考知乎一篇文章:soc设计提升-AXI outstanding,out of order与interleaving

outstanding

outstanding其实就是先发地址,不用等上一笔的数据传输完成,先把地址发送到slave。

如何提高性能呢?

如果没有outstanding,那么master与slave之间肯定有握手信号,握手完毕后才会发送下一笔地址。这样会存在cylce上的浪费。

但如果支持outstanding的话,那么slave可以在上一笔结束前的最后一个周期就可以去拿地址。这样再下一个周期就可以发送数据到master。

outstanding能力不是越强越好。因为地址是缓存在SRAM中的;要根据上游的需求进行涉及。

Out of order

相当于不同笔burst之间进行乱序。是在transation级进行乱序;最小单位是一个burst len长度的数据。

主要应用:比如DDR中,在DDRC中A11的地址比A21的地址优先级低。那么DDRC会先处理A21,然后处理A11。返回到NOC上的数据就会先返回A21,然后是A11。

Interleaving

是不同burst 之间的拍级交互。

为啥会需要这样的现象呢?

还是拿DDR举例。在SOC中不同master的burst len不一样。有的burst len长,比如是是两个BL长度;可能一笔BL读完后。下一笔BL可能还是没有打开的行。那么下一笔BL可能优先级会降低。让其他读命令去读数据。那么从DDRC返回到AXI端口上的数据就会是先第一笔burst len的第一个BL,然后是其他读命令的读数据,然后是第一笔burst len的第二个BL。这样就是interleaving。
 

例子说明

1.举个例子说明outstanding

DDR控制器如果不支持outstanding的。那么master只能等这笔数据传输完成后,才能进行传输下一笔。如果只有一个AXI port的话,DDRC一次只能执行当前的命令。没有办法做命令调度。但如果一下子存了好几个地址。在执行第一笔操作的时候,DDRC就可以规划存入的这几个地址对应命令进行重新规划。这样有利于提高带宽效率。

2.举个例子说明out-of-order 和interleaving

:DDR DQ位宽32;BL=8;那么一个BL传输的数据是32*8 bit;

这里三笔burst 的数据位宽是128,burst len 分别是A= 8,B= 2,C=4;

进入到DDRMC中后,A会分成4个读命令,B是一个读命令,C是两个读命令。

在DDRC中经过命令调度,往DRAM中发送命令的顺序可能是:

A1 ; A2;B1;B2 ; C1;C2;C3;C4;A3;A4;A5;A6;A7;A8。

这样的原因可能是因为A3-A8在一个打开bank的没有激活的行;那么需要将该bank的激活行关闭,然后再进行打开。所以DDRC可能会降低A3-A8的优先级,先处理B和C。

这样如果master支持interleaving,那么AXI端口就按照上面的顺序返回。这样带宽利用率最高,没有浪费。

如果不支持interleaving的话。那么DDR MC中的AXI模块会将A1;A2缓存到一个虚拟通道中,等A3-A8存到虚拟通道后,就可以发A了。

如果有空闲的虚拟通道,让B和C存放。而且支持out-of-order;那么发送到AXI的顺序就是B;C;A。

这样的话只会浪费发送A1;A2的时间。

如果不支持out-of-order的话;就只能等到A3-A8存到虚拟通道后,按照A;B;C顺序发送。

这样的话就会浪费A1-A8整个的时间。这样会浪费居多时间。

这个例子可以说明out-of-order和interleaving的重要性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

二哈哈黄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值