在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
EETOP诚邀模拟IC相关培训讲师 创芯人才网--重磅上线啦!
查看: 14603|回复: 13

[求助] 求助:AXI总线pec中的interleaved和out of order

[复制链接]
发表于 2012-3-12 21:05:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
关于AXI总线中讲到的interleaved和out of order,这两个词讲到的是不是同一种情况呢?AXI总线中的乱序传输到底指的是那种情况呢?我自己也总结了一下对AXI总线中乱序传输的情况:
1、对于写传输,同一master发出的写地址可以和写数据乱序,如m1按顺序发出两个写命令CMD1和CMD2分别访问S1和S2,此时可以先向S2发送写数据再向S1发送写数据
2、对于读传输,同一slave接收到得读地址可以和返回的读数据乱序,情况同比上例
3、对于同一master发出的写命令或者同一slave接收到的读命令,Burst间的交叉乱序传输,如m1按顺序发出两个写命令CMD1和CMD2,写数据时可以在CMD1的数据没有发完的情况下就发送CMD2的数据

不知道这几种情况是否是之前提到的interleaved或者out of order呢?
本人初学AXI,这些概念没有搞的太懂,特此请教各位大虾指点迷津
:loveliness::loveliness::loveliness::loveliness::loveliness::loveliness::loveliness::loveliness::loveliness::loveliness::loveliness::loveliness::loveliness::loveliness::loveliness::loveliness::loveliness:
 楼主| 发表于 2012-3-13 10:04:11 | 显示全部楼层
怎么都没人响应呢?
发表于 2012-3-21 12:59:16 | 显示全部楼层
本帖最后由 catflying 于 2012-3-21 13:56 编辑

支持interleave的话,基本上就是允许out of order的意思吧
发表于 2012-11-7 10:37:32 | 显示全部楼层
interleave是支持out of order的方式,我理解的是,关于write操作,比如两个master向一个slave write 数据,第一个master慢,第二个master快,第二个master不用等待第一个master把数据write完,再进行write操作,而是两个master的数据可以interleave在一起,write到slave,同时通过tagID来区分data属于哪个master,又因为第一个master慢,所以在slave的数据通道这里看到interleave数据中的第一个master的数据占有率要少。再比如一个master向两个slave发送数据,第一个slave慢,第一个slave快,master可以把write到两个slave的数据interleave到master端的数据通道,而不是等到把第一个slave的数据发完后再发第二个slave的数据。不知道这样理解对不对?
发表于 2013-1-6 12:53:14 | 显示全部楼层
关于这一点,我也一直在困扰,之前我一直用AMBA总线中的AHB+APB,现在也在研究AXI总线,看来相关的技术手册,发现AXI相比AHB就是支持了乱序传输,但是乱序传输的好处到底在哪?而且如何在应用过程中进行应用呢?
发表于 2013-1-25 14:32:33 | 显示全部楼层
Interleave可以算out-of-order的特殊形式;
out of order是指发出命令的顺序与返回响应的顺序不一致(通过ID识别);
interleave是指两个命令的响应混合在一起了,而读out of order是指,虽然返回的顺序不一致;
但是肯定是一个命令的读数据都返回后,才返回另一个读命令的数据;
另外,写intterleave可以不用看了,后续的协议会删除;
发表于 2016-2-17 15:17:34 | 显示全部楼层
In AXI, a transfer is not completed until the bus master receive the response from the read data channel or write response channel.  Also after a bus master issue a transfer, it can issue another transfer without waiting for the first one to complete. If the order of the responses coming back from the slaves arrived in different order from the order that the transfers were issued, we can call it out of order completion.

Write data interleave happen when two AXI bus masters generate sequence of write data to the same slave, but the write data doesn't arrive every clock cycle. In this case, instead of waiting for one sequence to complete before the other sequence start, the AXI infrastructure can interleave the write data sequences together to avoid wasting idle cycles on the bus.

https://community.arm.com/thread/3469
发表于 2016-4-12 17:44:20 | 显示全部楼层
站在master和slave两个角色分别来看吧。
对于AXI master,先看写操作。如果分别发出WCMD1和WCMD2两个写命令给两个不同的slave,假设这两个写命令都是四拍的数据分别记为WDATA1_0,WDATA1_1,WDATA1_2,WDATA1_3,以及WDATA2_0,WDATA2_1,WDATA2_2,WDATA2_3。
如果master在自己的写数据总线上,依次发出WDATA2_0,WDATA2_1,WDATA2_2,WDATA2_3,WDATA1_0,WDATA1_1,WDATA1_2,WDATA1_3,这就叫写out of order;
如果master在自己的写数据总线上,依次发出WDATA2_0,WDATA1_0,WDATA2_1,WDATA1_1,WDATA2_2WDATA2_3,WDATA1_2,WDATA1_3,这就叫写out of order且interleave;注意,不论是out of order还是interleave,同一个命令对应的四拍数据在内部必须是顺序的,不能乱序。比如,不允许出现WDATA2_1,WDATA1_0,WDATA2_0,WDATA1_1,WDATA2_2WDATA2_3,WDATA1_2,WDATA1_3这样的。
显然,你自己设计master时,如果是写操作,你不会主动发出out of oder和interleave的操作,因为这个明显增加了复杂度且没带来master自己的效率提高。


再看master读,同样发出RCMD1和RCMD2两个读命令给不同的slave,由于不同slave的响应速度不同,就可能出现RCMD2对应的读数据先返回到master的情况;再考虑到复杂系统的总线设计,master依次接收到RDATA2_0,RDATA1_0,RDATA1_1,RDATA1_2,RDATA2_1RDATA2_2,RDATA1_3,RDATA2_3这样的数据是有可能的,这就是读的out of order且interleave。


所以,对于master,不建议发出out of order与interleave的写数据,但是必须支持out of order与interleave的读操作!


同理,可以分析,对于slave,必须支持out of order与interleave的写操作,不建议返回out of order与interleave的读数据。


在一个系统中,interleave会明显增加设计复杂度,其实可以约定master,slave以及连接总线都不要使用interleave,这样可以降低复杂度,但out of order是AXI特性,这个功能必须支持。





发表于 2016-9-22 10:37:37 | 显示全部楼层
本帖最后由 wangjun403 于 2016-9-22 10:46 编辑

回复 8# 杰克淡定


    请问下大神,一个master给2个slave写数据,slave是如何知道那个数据是写给自己的?

是通过AWID之类的来确定吗?
发表于 2016-9-23 19:50:55 | 显示全部楼层
回复 8# 杰克淡定


    是不是说,只要两个burst之间的数据有交叉就是interleave,如果两个burst之间的数据,都是自己一块传输结束之后,另一再传输,就不是interleave,不知道我的理解对不对??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-4 23:15 , Processed in 0.034697 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表