找回密码
 注册
搜索
查看: 940|回复: 3

[讨论] 请问:在DMA控制传输的同时cpu真的还可以运行其他程序吗?

[复制链接]
发表于 2010-3-10 09:23:55 | 显示全部楼层 |阅读模式
我一直有个疑问:好多书上描述DMA说,MDA控制器代替CPU完成IO设备与内存间数据的传输,不需要cpu的参与,这样cpu就可以去运行其他任务,比中断方式更有效率;
是这样的吗,在DMA控制传输的同时cpu真的还可以运行其他程序吗?

在 DMA传输数据时,DMA控制器占用总线,只有DMA控制器可以访问内存和设备。cpu得不到总线控制权,无法到内存取指令和数据,cpu是怎么运行程序的呢?

是书上说错了吗,没说清楚?还是的确在DMA控制传输的同时cpu真的还可以运行程序?

有朋友可以解释一下这个问题吗?
发表于 2010-3-12 14:43:55 | 显示全部楼层
这个时候SDRAM被占用,CPU只能傻等;除非建立设备到cpu内部ram的dma传输,这样就不会有冲突,不过这样一来好像就不能开cache了。。。
点评回复

使用道具 举报

 楼主| 发表于 2010-3-13 17:43:33 | 显示全部楼层
我的一个同事说:有可能cpu还可以到自己的一级或二级CACHE里取址和数据同时运行,不知道实际情况是不是这样,我感觉cpu也只能傻等,直到又可以使用总线的时候
点评回复

使用道具 举报

发表于 2010-6-4 15:45:06 | 显示全部楼层
DMA少了数据从内存到cpu寄存器,cpu寄存器再到内存的过程。直接从内存到外设。速度快。

MTK的lcd数据传输用dma,cpu照样能访问flash和memery,可以运行程序。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-10-8 22:55 , Processed in 0.049460 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表