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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 110203|回复: 139

【关于AMBA AXI 总线的专题讨论】

[复制链接]
发表于 2005-9-28 12:51:14 | 显示全部楼层 |阅读模式

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

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

x
最近看了不少关于AMBA的贴子,从中受到不少启发。我最近在看关于AMBA AXI的资料,对其中有很多地方都不能理解。希望得到大家的帮助。 1,AXI 中关于Atomic Acesses该怎样理解?我看AHB总线协议里,感觉好像Exclusive access 和Locked access是一个概念。但是在AXI中好像他们不是一个意思。能举个例子解释吗? 2,AXI中关于Unaligned Transfers这个部分也不是很清楚。在AHB协议里,说到Burst传输的时候有这么一句话“All transfers within a burst must be aligned to the address boundary equal to the size of the transfer. For example, word transfers must be aligned to word address boundaries (that is A[1:0] = 00), halfword transfers must be aligned to halfword address boundaries (that is A[0] = 0).”我不知道怎么理解它,感觉如果能够理解这句话,也许就能明白AXI中关于Unaligned Transfers的意思。

[ 本帖最后由 老扁 于 2009-9-18 15:57 编辑 ]
发表于 2005-9-28 13:22:33 | 显示全部楼层

求助版主老扁,几个AMBA AXI Spec中迷惑的问题。多谢!

1. AXI协议俺没实现过,所以也没仔细研读,你的问题暂时无法回答。
2.可能是你对“非对齐”的概念不是很清楚。AHB是必须对齐传输的,就是说字的地址必须低位是00,半字是0。AXI里是不是支持非对齐传输?俺有空再去看看。
 楼主| 发表于 2005-9-28 13:47:49 | 显示全部楼层

求助版主老扁,几个AMBA AXI Spec中迷惑的问题。多谢!

谢谢老扁G。
我记得你曾经在回复一位“ahan”网友的问题时提过“AHB总线是双向总线,有两套数据线,但它并没有充分利用这两套数据线来同时传输数据,以提升总线带宽.所以ARM提出了一个新的高性能总线AXI.AXI总线就充分利用了总线的带宽,理论上使总线带宽提高了一倍.这个AXI总线跟IBM的高性能PLB总线的性能就有可比性了”。我部知道这句话该怎么理解?
1,为什么说AHB是有两套数据线并且是双向的?AHB的读/写数据线是分开的,就是说有两套吗?那双向怎么理解?我觉得双向其实就是一个数据总线,可以同时传递读或者写数据,根据读写信号的有效来区分当前数据是读数据还是写数据。但是AHB的数据线是分开的,所以我感觉应该是单向采对。
2,为什么说“AXI总线就充分利用了总线的带宽,理论上使总线带宽提高了一倍”?
请扁G指正,谢谢!
发表于 2005-9-28 14:12:18 | 显示全部楼层

求助版主老扁,几个AMBA AXI Spec中迷惑的问题。多谢!

1. 哦,双向表达得不够准确。应该只说是两套就可以了。
2. AHB每次传输只能是写或读,就是rdata和wdata数据线同时只能一个在工作。而AXI可以实现两个数据线同时传输数据。这个就跟全双工的概念差不多。
 楼主| 发表于 2005-9-28 14:48:54 | 显示全部楼层

求助版主老扁,几个AMBA AXI Spec中迷惑的问题。多谢!

谢谢扁G。
请问“对齐传输”有什么意义?我不知道为什么要对齐传输?这只是AHB的定义吗?还是说有其他的目的。我看AHB SPEC上好像也举例子说了非对齐的情况。不知道这个例子是为了说明什么?
“For wrapping bursts, if the start address of the transfer is not aligned to the total number of bytes in the burst (size x beats) then the address of the transfers in the burst will wrap when the boundary is reached. For example, a four-beat wrapping burst of word (4-byte) accesses will wrap at 16-byte boundaries. Therefore, if the start address of the transfer is 0x34, then it consists of four transfers to addresses 0x34, 0x38, 0x3C and 0x30.”
发表于 2005-9-28 15:03:02 | 显示全部楼层

求助版主老扁,几个AMBA AXI Spec中迷惑的问题。多谢!

[这个贴子最后由老扁在 2005/10/09 05:30pm 第 1 次编辑]

这两个align不是说的一回事。前面那个说的是字地址和半字地址的对齐规则。而你上帖的align说的是对一个cache line操作时的首地址如果不对齐到合适的位置,就要形成wrap传输。
关于align的背景知识你可以参看计算机原理和体系结构的书籍。
 楼主| 发表于 2005-9-28 15:32:38 | 显示全部楼层

求助版主老扁,几个AMBA AXI Spec中迷惑的问题。多谢!

谢谢扁G。
我再仔细看看,研究研究。关于AXI的那几个问题,如果你有时间,帮我看看吧。
 楼主| 发表于 2005-10-8 18:05:17 | 显示全部楼层

求助版主老扁,几个AMBA AXI Spec中迷惑的问题。多谢!

扁哥,有几个概念向你请教。
1,你说AHB必须是对齐传输(aligned transfer),这个是只针对wrap类型吗?是不是increment类型也是要对齐传输?还是说对increment没有什么限制?
2,我该怎么理解“AHB Multi-layer”的意思呢?看到你曾经说过“当多个master要频繁访问总线的时候,最好做成几层AHB”,你说的“几层”是什么意思?我又怎么理解“matrix 部分”是什么意思呢?
3,什么叫做“low-order address lines”.
谢谢了。我对计算机体系结构不是很清楚。
发表于 2005-10-8 20:10:04 | 显示全部楼层

求助版主老扁,几个AMBA AXI Spec中迷惑的问题。多谢!

[这个贴子最后由老扁在 2005/10/09 05:31pm 第 1 次编辑]

1.对于wrap和inc传输都要对齐。
2.multi-layer就是在逻辑上有几个AHB叠加在一起,真正叠加可以通过“矩阵”或者说switch来控制配置和连接关系。
3.这个应该是指 地址的低位部分 吧。
简单回答这些,深入的你可以自己去研读资料。
 楼主| 发表于 2005-10-9 10:14:37 | 显示全部楼层

求助版主老扁,几个AMBA AXI Spec中迷惑的问题。多谢!

扁哥,那我觉得有些不理解。
AXI协议中chapter10的标题是Unaligned Transfers,用了一章的内容写unaligned transfer.说是和AHB不同之处。其中有一段是这样写的:
“The AXI protocol uses burst-based addressing, which means that each transaction consists of a number of data transfers. Typically, each data transfer is aligned to the size of the transfer. For example, a 32-bit wide transfer is usually aligned to four-byte boundaries. However, there are times when it is desirable to begin a burst at an unaligned address.
For any burst that is made up of data transfers wider than one byte, it is possible that the first bytes that have to be accessed do not align with the natural data width boundary. For example, a 32-bit (four-byte) data packet that starts at a byte address of 0x1002 is not aligned to a 32-bit boundary.
The AXI protocol enables a master to use the low-order address lines to signal an unaligned start address for a burst. The information on the low-order address lines must be consistent with the information contained on the byte lane strobes.”
我一直不理解“对齐”是什么意思。“For example, a 32-bit (four-byte) data packet that starts at a byte address of 0x1002 is not aligned to a 32-bit boundary.”这是说32-bit的首地址一定要是4的倍数吗?所以0x1002是非对齐的?
还有,“The AXI protocol enables a master to use the low-order address lines to signal an unaligned start address for a burst.”这句话怎么理解?随后的几个图例都是举的increment的例子,没有wrap的例子,你不是说AHB的increment类型也可以是非对齐的吗?感觉这里好像也是说只有increment才可以有非对齐方式,那不就跟AHB是一样的了?
36_369_9.bmp
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-28 19:54 , Processed in 0.032300 second(s), 8 queries , Gzip On, Redis On.

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