DMA是否不需要CPU的参与,除初始化外不占用cpu时间呢

[复制链接]
 楼主| blong75 发表于 2015-8-16 20:22 | 显示全部楼层 |阅读模式
DMA真的不占用一点CPU时间么,有点怀疑这个答案
情深一往 发表于 2015-8-17 08:30 | 显示全部楼层
同问,初始化肯定是占用的,传输数据过程中完全独立的么?
柠檬酸 发表于 2015-8-17 14:56 | 显示全部楼层
DMA请求仅仅使CPU暂停一下,不需要对断点和现场的处理,并且是由DMA控制外设与主存之间的数据传送,无需CPU的干预,DMA只是借用了一点CPU的时间而已。这是网上找的,占用了一点点cpu时间而已,不对断点和现场进行处理

评分

参与人数 1威望 +1 收起 理由
蔚蓝的海 + 1 赞一个!

查看全部评分

蔚蓝的海 发表于 2015-8-18 10:33 | 显示全部楼层
柠檬酸 发表于 2015-8-17 14:56
DMA请求仅仅使CPU暂停一下,不需要对断点和现场的处理,并且是由DMA控制外设与主存之间的数据传送,无需CPU ...

讲的不错,赞一个!应该就是这个
yyj8902 发表于 2015-8-19 15:54 | 显示全部楼层
DMA传送高速数据时,会由DMA控制器发送一个停止信号给CPU,请求获取对地址总线、数据总线以及其他控制总线的控制权,获取后,进行有关数据的传送,在此期间,CPU基本处于不工作状态,直到数据传送完毕,DMA控制器再度通知CPU,并把总线控制权交还给CPU
公孙璇娟 发表于 2015-8-19 16:52 | 显示全部楼层
DMA传输的时候无需CPU控制,只是在传输结束时发出一个中断通知CPU来响应。
若相依 发表于 2015-8-19 22:33 | 显示全部楼层
DMA是一种不需要CPU干预,也不需要 (通过CPU) 的高速数据传送方式。
李少帅 发表于 2015-8-20 09:34 | 显示全部楼层
本帖最后由 李少帅 于 2015-8-20 09:35 编辑

看看DMA的定义就知道了,DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式。在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,可以大大节省系统资源。
 楼主| blong75 发表于 2015-8-29 09:41 | 显示全部楼层
yyj8902 发表于 2015-8-19 15:54
DMA传送高速数据时,会由DMA控制器发送一个停止信号给CPU,请求获取对地址总线、数据总线以及其他控制总线 ...

学习了,说的很好。
柠檬酸 发表于 2015-9-27 18:51 | 显示全部楼层
李少帅 发表于 2015-8-20 09:34
看看DMA的定义就知道了,DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问,是一种不 ...

看来还是需要耗费一点点时间的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

83

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

10

主题

83

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部