查看: 5241|回复: 6

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

[复制链接]

该用户从未签到

5

主题

22

帖子

0

新手上路

Rank: 1

积分
42
最后登录
1970-1-1
发表于 2010-7-9 11:27:14 | 显示全部楼层 |阅读模式
都说DMA传输不需要cpu的参与,这样cpu就可以去运行其他任务,比中断方式更有效率。
但是:
在 DMA传输数据时,DMA控制器占用总线,只有DMA控制器可以访问内存和设备。cpu得不到总线控制权,无法到内存取指令和数据,cpu是怎么运行程序的呢?
DMA传输过程中CPU是不是也空闲下来?如果是的话,那DMA传输还有意义吗?
我知道答案 目前已有5人回答
回复

使用道具 举报

该用户从未签到

2

主题

224

帖子

0

版主

Rank: 7Rank: 7Rank: 7

积分
322
最后登录
1970-1-1
发表于 2010-7-9 16:54:20 | 显示全部楼层

RE:在DMA控制传输的同时cpu真的还可以运行其他程序吗?

那要看你所用DMA访问的外设或memory是不是跟CPU正要访问的外设或memory是同一个了。如果是,那对不起,看谁优先级高就先占用总线或外设;如果不形成竞争关系,那就互不干涉。
你说DMA是有用还是没用呢?

该用户从未签到

5

主题

22

帖子

0

新手上路

Rank: 1

积分
42
最后登录
1970-1-1
 楼主| 发表于 2010-7-10 22:38:57 | 显示全部楼层

回复:在DMA控制传输的同时cpu真的还可以运行其他程序吗?

但是我想问的是既然DMA占用了系统总线,那么CPU为什么还能干别的事情呢?难道DMA有自己的总线?希望帮助释疑,谢谢!

该用户从未签到

2

主题

224

帖子

0

版主

Rank: 7Rank: 7Rank: 7

积分
322
最后登录
1970-1-1
发表于 2010-7-11 14:17:29 | 显示全部楼层

RE:在DMA控制传输的同时cpu真的还可以运行其他程序吗?

关于这个问题,你可以看一下cpu架构图,cpu内核与其外设之间不光只有“系统总线”而已。

该用户从未签到

27

主题

418

帖子

0

新手上路

Rank: 1

积分
228
最后登录
1970-1-1
发表于 2010-7-11 15:21:31 | 显示全部楼层

RE:在DMA控制传输的同时cpu真的还可以运行其他程序吗?

coldfire处理器在一个指令周期可以完成两次对ram的访问,所以dma一般不会影响cpu的正常运行。

该用户从未签到

3

主题

87

帖子

0

中级会员

Rank: 3Rank: 3

积分
306
最后登录
1970-1-1
发表于 2010-8-6 10:49:12 | 显示全部楼层

RE:在DMA控制传输的同时cpu真的还可以运行其他程序吗?

你仔细研究一下ColdFire的Crossbar的功能就明白了。

该用户从未签到

1

主题

5

帖子

0

新手上路

Rank: 1

积分
11
最后登录
1970-1-1
发表于 2011-8-18 13:17:23 | 显示全部楼层

回复:在DMA控制传输的同时cpu真的还可以运行其他程序吗?

恩 我以前用过是DSP上的 可以的
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

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

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-27 03:19 , Processed in 0.090772 second(s), 26 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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