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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9965|回复: 12

扁兄,咨询一个AXI的burst问题!

[复制链接]
发表于 2009-8-26 15:07:19 | 显示全部楼层 |阅读模式

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

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

x
AXI总线,burst操作,不能跨4K边界问题!
在Master_A设计中,假如Master_A只操作一块64M SDRAM(此Master_A不操作任何其他Slave),读写的数据量远远大于4K。因此其中某个Burst的操作可能 会出现在4K边界上。
请问: 在这样的情况下,Master_A设计的Burst操作是否需要遵守4k边界的约定。
发表于 2010-4-9 14:33:40 | 显示全部楼层
同问!!!
发表于 2010-4-9 18:14:00 | 显示全部楼层
应该需要自己把一个跨4K boundry的transaction 拆成两个吧
发表于 2010-4-9 23:06:33 | 显示全部楼层
同问。。。。
发表于 2012-7-10 17:58:00 | 显示全部楼层
4k boundary,偶也不懂
发表于 2012-7-14 15:34:33 | 显示全部楼层
还没人回答么,也想知道啊
发表于 2012-7-28 17:10:50 | 显示全部楼层
回复 1# mclee999
协议中之所以规定一个burst不能跨越4K边界是为了避免一笔burst交易访问两个slave(每个slave的地址空间是4K/1K对齐的)。假如一个burst交易访问了两个slave A 和B(A在前B在后),那么只有A收到了地址和控制信息,而B不会收到地址和控制信息,因此只有A响应B并无响应,这就会导致此笔burst交易无法完成(B无法返回最后一笔transfer)。因此如果你必须确定系统中所有slave中地址空间最小的那一个,假设是1M,这样你的burst边界可以大于4K至1M。但还是不建议这么做,毕竟一个burst跨越4K边界的概率还是较低的,如果真的跨越了就拆分。
发表于 2012-11-7 11:23:11 | 显示全部楼层
回复 7# zjzhiview


   “协议中之所以规定一个burst不能跨越4K边界是为了避免一笔burst交易访问两个slave(每个slave的地址空间是4K/1K对齐的)。假如一个burst交易访问了两个slave A 和B(A在前B在后),那么只有A收到了地址和控制信息,而B不会收到地址和控制信息,因此只有A响应B并无响应,这就会导致此笔burst交易无法完成(B无法返回最后一笔transfer)。因此如果你必须确定系统中所有slave中地址空间最小的那一个,假设是1M,这样你的burst边界可以大于4K至1M。但还是不建议这么做,毕竟一个burst跨越4K边界的概率还是较低的,如果真的跨越了就拆分。"
请问:
Q1:不是一个burst的最长是16(len)×128byte(size)=2Kbyte吗,所以一个burst怎么超过4K的边界?
Q2:“4K/1K对齐的”是什么意思?
Q3:“如果真的跨越了就拆分”是什么意思?
发表于 2012-11-7 12:33:15 | 显示全部楼层
回复 8# hawaii_e

所谓的4K边界是指低12bit为0的地址,例如32'h00001000, 32'h00002000... 这些特殊的地址我们称之为4k边界;同理1k边界是指低10bit为0的地址,例如32'h00000400,32'h00000800...
发表于 2012-11-7 16:14:51 | 显示全部楼层
回复 8# hawaii_e


4K对齐最大原因是系统中定义一个page大小是4K。所以,为了更好的设定每个slave的访问attribue,就给一个slave划分4K空间。
4K对齐,以32位地址为例,[31:12]相等的地址都是同一个page,没有跨4K边界。 即[11:0] 可以为0~0xFFF.  例如0x1000和0x2000就是在不同的page,跨了4K边界。0x1000和0x1FFF则是在同一个page,没有跨4K边界。同理,0x1FFF和0x2000则跨了4K边界,虽然他们是相邻的byte。
再说到一次burst没有4K大小,但是如果起始地址是0x1FFC, INCR模式,会跨边界吧?

1K对齐,就是说 [31:10]相等的地址都是在一个1K对齐的空间内。

至于真的跨越了,就拆分。例如处理器load多个数据,就是跨页访问,到了接口控制模块,也会把这一个访问拆分成两个访问。在interfere上的都是符合协议的transaction。例如,core要访问0x1FF0-0x200C共32byte的数据(每次beat 4B)。系统会自动给拆分成0x1FF0-0x1FFC和0x2000-0x200C两个transaction。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-18 09:34 , Processed in 0.096570 second(s), 11 queries , Gzip On, MemCached On.

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