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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: ahan

【AMBA AHB总线专题讨论】

[复制链接]
发表于 2004-11-29 11:10:35 | 显示全部楼层

那位大侠对AMBA总线比较熟悉阿?

一般情况下Arbiter会等待上一个burst传输的倒数第二个时给出新的grant,但是由于AHB里有不定长的wrap传输类型,加上有hready信号可以降低速度等因素,为了提高总线的性能,比较简单的arbiter设计都会在有高优先级的request时break up正在进行的传输.低优先级被break up后可以继续申请.你要是想某个传输不被打断,可以在发请求时使hold有效,但一般系统里尽量不要用hold,因为这样可能反而会造成很多问题,况且一般都设计成hold也只有最高优先级的才能用.
 楼主| 发表于 2004-11-29 15:19:15 | 显示全部楼层

那位大侠对AMBA总线比较熟悉阿?

比较简单的arbiter设计都会在有高优先级的request时break up正在进行的传输.低优先级被break up后可以继续申请
-------是不是可以这样子理解,假如一条总线上有两个master,万一低优先级的的传输没有完成,高优先级的master发出请求,arbiter就可能中断低优先级的master的传输,对么?但是若是高优先级的master一直申请总线,低优先级的master会不会永远无法取得总线那?如何解决?谢谢。
 楼主| 发表于 2004-11-29 15:25:41 | 显示全部楼层

那位大侠对AMBA总线比较熟悉阿?

还请教一个问题:关于burst的长度限制问题
3-11
burst must not cross a 1KB address boundary.Therefore it is important that masters do not attampt to start a fixed-length incrementing burst which would cause this boundary to be crossed.
发表于 2004-11-29 15:35:36 | 显示全部楼层

那位大侠对AMBA总线比较熟悉阿?

1. 确实,如果arbiter比较简单,高优先级又一直申请,低优先级就会永远得不到机会;所以对于有优先级的系统,arbiter要设计得复杂一些才行. 可以考虑用权重轮循法来仲裁.
2. 3-11的意思是说地址空间以1k为一个大的边界,你做burst时地址不能跨越这个边界.如果跨越边界,必须分成两次burst传输来实现.
 楼主| 发表于 2004-11-29 16:19:44 | 显示全部楼层

那位大侠对AMBA总线比较熟悉阿?

[这个贴子最后由ahan在 2004/11/29 04:20pm 第 1 次编辑]

1.听了师兄的介绍,感觉仲裁系统不是我一个人可以解决的,并且设计到具体的算法问题,不知道其他人是买ip还是自己开发?
2.因为每次传输的size不一样,但是所以1kB对应传输的beats次数不一样,具体这部分的定义对master和slave有什么具体的影响呢?望指教:)
也就说假如master不按规定传了1kB,slave会有什么反应?如何保证slave在master发出1kB的数据的作出恰当的反应?做为master如何保证一次transfer在1kB之内呢?
比如说DMA,假如ARM要求DMA搬移2KB的数据,这时候DMA就要识别分两次搬移,看来DMA也是一个不容易处理的地方,在总线上DMA应该和ARM共享,不知道ARM通过什么端口控制DMA(这部分还没有看,才看了一个星期的AHB,不好意思哈)。
发表于 2004-11-29 16:44:51 | 显示全部楼层

那位大侠对AMBA总线比较熟悉阿?

看来你没有理解这个1K地址边界的含义.
你想像把系统的地址空间分割成1K大小的很多块,每次传输的地址只能在每个块内增加,要跨越到下一个块时,必须另起一次传输操作. 一般AHB的一次burst长度最好不要超过8.
另外,DMA在实现的时候也不是象你说的那样,而是每次也只传输8个,16个 beats,一个DMA操作是分很多次总线操作来实现的.而且DMA的优先级一般比较低,只有在没有其他高优先级总线操作的情况下,它才能去得到总线.
 楼主| 发表于 2004-11-29 16:59:45 | 显示全部楼层

那位大侠对AMBA总线比较熟悉阿?

因为其中有个INCR的传输方式,没有定义传输的长度,假如每次传输32bit,256beats就达到1KB,若每次传64bit,那么128eats就够了,假如master没做好,假如哈,因为DMA也是个master撒,每次64bit,传了129次,那么挂在总线的memory(slave)他如何知道错了呢?
发表于 2004-11-29 17:19:41 | 显示全部楼层

那位大侠对AMBA总线比较熟悉阿?

slave是完全被动的,它不需要知道错没错.1k边界是master必须遵守的.这个1k的边界是对一次burst有限制,对多次不限制,你的DMA完全可以跨边界的.
感觉你有很多系统概念还不很清晰,你不光要研究总线,你还得研究一些系统设计的原理才能很好用好总线协议.AHB总线本身是不会讲这些原理的.
 楼主| 发表于 2004-11-29 17:50:08 | 显示全部楼层

那位大侠对AMBA总线比较熟悉阿?

确实哈,原来读计算机的时候很少研究硬件的东西,后来读通信又搞什么编码,现在看系统结构,没有专注的地方,不好。谢谢师兄:)
 楼主| 发表于 2004-11-29 20:10:01 | 显示全部楼层

那位大侠对AMBA总线比较熟悉阿?

再请教一个问题Protection control
The protection control signals,HPROT[3:0],provide additional information about a bus access and are primarily intended for use by any module that wishes to implement some level of protection.
The signals indicate if the transfer is
an opcode fetch or data access
a privileged mode access or user mode access.
For bus masters with a memory management unit these signals also indicate whtether the current access is caheable or bufferable.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-22 14:20 , Processed in 0.021146 second(s), 6 queries , Gzip On, Redis On.

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