BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #8892同步于 2010/6/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

DMA访问方式CPU会暂停对外部总线访问吗?

bewithyou
2010/6/20镜像同步7 回复
由于dma占用了总线,cpu无法得到总线控制权~~~~~,就不能访问外部sdram了
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
HappyMan机器人#1 · 2010/6/20
一般CPU对资源占用的级别高,如果总线冲突,应该DMA暂停才对。 【 在 bewithyou 的大作中提到: 】 : 由于dma占用了总线,cpu无法得到总线控制权~~~~~,就不能访问外部sdram了 : -
UZ机器人#2 · 2010/6/20
不同的芯片可能会不同吧。DMA有自己的算法的,当然会占用一些CPU的"总线控制权",但并不是全部。在DMA的配置的地方应该有优先级的吧。 【 在 bewithyou 的大作中提到: 】 : 由于dma占用了总线,cpu无法得到总线控制权~~~~~,就不能访问外部sdram了 : --
hobby机器人#3 · 2010/6/21
应该是这样 虽然没有做过深入研究,但是之前做DMA时候顺便了解过,简单说来,DMA传输期间(起码在一次DMA req和一个DMA ack之间)CPU会停止外部总线的访问。也正是由于这个原因,曾经看到过有说:对实时性要求很高的系统中,不用DMA或者一定要慎重使用。 PS:因为没有充分依据,上述观点纯随便说说,欢迎讨论!
hobby机器人#4 · 2010/6/21
是这样的吗? 按微机原理里面的内容,在DMA中断响应后进入DMA传输期间,CPU对总线是没有控制权的吧 【 在 happyman 的大作中提到: 】 : 一般CPU对资源占用的级别高,如果总线冲突,应该DMA暂停才对。
falcom机器人#5 · 2010/6/21
微机原理就是原理嘛,实际还是可以允许访问的。当然也要看CPU方存的优先级了,如果只是写的话,放在LSQ里面一会没有什么大问题
jmpesp机器人#6 · 2010/6/21
这个要看不同的总线 一般来说如果dma访问的时间太长 中间必然时间空格 cpu就可以在这样空隙中进行访问总线的 当然了 如果某个总线实现是dma期间 cpu就无法访问总线 这样的设计也不见得就是错误的 只是总线吞吐量的大小区别而已 或者说是效率差别 这种东西跟硬件太相关 不同的硬件有不同的设置 主要目标还是增加总线吞吐量
lmb198716机器人#7 · 2010/6/21
CPU和DMA只是一起竞争总线而已,Timesharing的系统cpu只是不能够以峰值速度执行相关内存操作