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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: 裴静

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

[复制链接]
发表于 2005-10-9 11:49:16 | 显示全部楼层

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

对齐是针对size来说的,32bit的通常以00(最低两位)地址开始;16bit的以0开始;等等。也就是你说的“这是说32-bit的首地址一定要是4的倍数”。
但AXI支持非对齐传输。可以从任意地址开始,但只是针对第一个transfer来说的,后面的还是对齐的;从图上来看,比如从07地址开始的传输,第一个传输只访问一个byte(地址07),后面的传输还是继续传32bit。
 楼主| 发表于 2005-10-9 14:02:44 | 显示全部楼层

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

那就是说,比如地址07开始的那个图。其实虽然要求是Transfer size = 32 bits,但是第一次传输其实只能有 1 byte 是有效的,就是说其实第一次只传了8-bit(虽然感觉这样好像是没有能够按照要求的32 bits传输)也是对的。
发表于 2005-10-9 14:29:33 | 显示全部楼层

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

对。
俺理解这样做的好处是把连续字节的读写一次传完,而不需要分最少两次:第一次单字节传输,第二次burst传输。
这种协议确实可以提高性能。
 楼主| 发表于 2005-10-9 15:56:56 | 显示全部楼层

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

扁哥,关于AXI非对齐传输,spec中给出的图例我感觉,好像是说只有type是incrementing的类型才有这个unaligened transfer 的 feature,而wrapping都是对齐传输的。如果是这样的话,那不就跟AHB没有区别了吗?为什么AXI还说这是它的新特点呢?还是说我理解不对,AHB无论对于incrementing还是wrapping,都只能是对齐传输,或者是AXI wrapping也可以非对齐传输,只是图例没有给出这样的例子而已呢?
谢谢扁哥,经过你的指点,我现在已经理解的对齐传输这里的“对齐”的含义了。
36_369_13.bmp
发表于 2005-10-9 17:20:08 | 显示全部楼层

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

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

1。wrap传输要求一个cache line最后都需要传输,所以非对齐传输没有意义。而AXI中的inc传输增加的非对齐类型确实是AHB中不支持的。
2。AHB都必须对齐传输。

注:不好意思,我看了一下前面的回复,感觉有的地方回答得有误,俺已经重新编辑修改了一下,你可以再仔细看一下。(有被编辑标志的回帖)
36_369_14.bmp
 楼主| 发表于 2005-10-10 10:28:48 | 显示全部楼层

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

扁哥:
“wrap传输要求一个cache line最后都需要传输”不明白这句该怎么理解?
1,我不是学计算机的,所以对于计算机体系结构不清楚。上网搜了一些资料,感觉cache line是cpu访问内存的数据交换单位(不过不清楚是仅指cpu 访问cache用这个单位还是说cpu 访问主存也是这个单位还是说是主存和cache之间的交换单位)
2,如果cache line是一个数据操作的单位,那么你的意思是说wrap类型是以这个单位作为一次访问的最小单位对吗?
3,如果2成立,那么inc是以什么单位呢?
4,如果cache line容量是32-byte,假如我需要传16-byte,用wrap方式,你的意思是说实际传输了32-byte(因为cache line是32-byte),其中有16 byte是浪费的。那么如果我用inc方式,要求传17 bytes,是不是说就可以只传17 bytes呢?如果inc也是cache line为单位,那肯定还是要传32 bytes了?
扁哥,也许我的问题有很多看来都很幼稚,不好意思,我现在也来不及补这些计算机知识,只能上网查一些资料。不过大部分好的资料都是英文的,我没有概念,所以也看不懂,难以理解。我是学通信的,对计算机体系不太明白,以前只学过微机原理,好像没有提到这些内容。请扁哥不吝赐教。谢谢。
发表于 2005-10-10 13:30:33 | 显示全部楼层

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

wrap传输是设计用于cache访问内存等情况下的读写的,但它本身的定义并不是针对cache line来定义的,它的传输地址是靠size和burst长度来计算的,到达边界时就wrap回来。
inc传输地址也是靠size和burst长度来计算的,但一直增加不wrap回来。
你如果只传16bytes或17 byte,实际也就只传16 byte或17 byte的。不会多传。
我说的一般cache访问内存时是以cache line为单位的,但并不表示wrap是以cache line为单位。
是不是说得还有点绕?
 楼主| 发表于 2005-10-10 14:16:38 | 显示全部楼层

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

那扁哥,“wrap传输要求一个cache line最后都需要传输”这是什么意思?呵呵真不好意思,小妹很笨:(
发表于 2005-10-10 14:30:48 | 显示全部楼层

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



下面引用由裴静2005/10/10 02:16pm 发表的内容:
那扁哥,“wrap传输要求一个cache line最后都需要传输”这是什么意思?呵呵真不好意思,小妹很笨:(

这个又可能是俺的一次误联系。sorry。
俺的本意是 cache line的读写如果采用wrap形式时肯定一个line内的地址都要访问到(比如32byte,一般是8个beat,每个beat 32bit;对于64位系统或总线,每个beat就是64 bit;对于其它size来说,需要的beat数就要超过8,但AMBA系统一般建议不要超过8,所以一般cache line传输都采用总线最大的位宽size,比如32bit)。
但反过来,并不表示一个wrap传输必须传32 byte,呵呵。
 楼主| 发表于 2005-10-10 15:17:38 | 显示全部楼层

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

谢谢扁哥。
我理解你的意思,是说一般wrap传输设计多用于cache访问,而一个cache访问的数据单元是一个cache line,而cache line的传输都采用最大位宽(有多少位传多少位,比如16位传16位,32位传32位,64位传64位),所以说wrap传输对于非对齐传输是没有意义的(因为非对齐传输是数据并没有占满整个数据总线宽度)。我的理解对吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-6-1 19:30 , Processed in 0.027312 second(s), 7 queries , Gzip On, Redis On.

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