找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1265|回复: 10
打印 上一主题 下一主题
收起左侧

dma与cpu的关系

[复制链接]
跳转到指定楼层
楼主
通常情况下,DMA的使用不会占据CPU的资源,但是有没有DMA与CPU竞争总线的情况?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-11-15 20:53 | 只看该作者
当然不占用CPU的时间,竞争了还叫什么DMA啊?
回复

使用道具 举报

板凳
ID:401564 发表于 2023-11-15 22:55 | 只看该作者
DMA本身就是绕过CPU去干活的,目的就是不要跟CPU抢总线的
你只要不处理DMA中断,基本上就是你干你的活,我干我的活,井水不犯河水
回复

使用道具 举报

地板
ID:830831 发表于 2023-11-15 23:29 | 只看该作者
抢总线的, 但有优先级
回复

使用道具 举报

5#
ID:517951 发表于 2023-11-16 07:30 | 只看该作者
DMA优势是处理大量且有规律的数据, 过程不需要CPU干预,使用前设置好从哪里往哪里送多宽的数据, 送多少个数据, 送完之后告诉CPU已经处理完毕。 就是CPU的助手,DMA传输期间把CPU解放出来,可以干别的活, 比喻处理检测IO高低电平, 中断啥的。
回复

使用道具 举报

6#
ID:195496 发表于 2023-11-16 08:51 | 只看该作者
只在开始初始化和结束时,用一下CPU,其他时间是独立干活的。自觉型。
回复

使用道具 举报

7#
ID:610281 发表于 2023-11-16 08:56 | 只看该作者
一己之见:DMA只会告诉CPU一声,给我单独开个总线通道
回复

使用道具 举报

8#
ID:1099949 发表于 2023-11-16 10:38 | 只看该作者
dma会自己干活,干完告诉cpu
回复

使用道具 举报

9#
ID:123289 发表于 2023-11-16 11:12 | 只看该作者
当两者需要通过【同一条】总线【同时】传输数据时,会有“竞争”,DAM管理器会调控两者分时享用,使两者在大部分时间里不会"抢"总线。
回复

使用道具 举报

10#
ID:1099966 发表于 2023-11-16 12:51 | 只看该作者
DMA(Direct Memory Access,直接存储器访问)是一种数据交换模式,它允许外设直接与内存进行数据传输,而无需通过CPU的介入。DMA可以提高数据传输的效率,减轻CPU的负担,使CPU能够更专注于其他任务。

DMA和CPU之间的关系是竞争对手的关系在DMA传输数据时,DMA控制器直接掌握总线的控制权,而CPU则被暂时剥夺了对总线的访问权限。因此,在DMA传输期间,CPU无法直接访问内存或外设,需要等待DMA传输完成后才能恢复对总线的控制权。

然而,DMA和CPU之间并非完全独立。DMA传输完成后,DMA控制器会立即将总线控制权交还给CPU,以便CPU能够继续执行其任务。此外,CPU仍然需要与DMA控制器进行通信,以设置DMA传输的参数和监控传输的状态。

总之,DMA和CPU之间是一种竞争关系,但也存在合作和协调的机制,以确保数据传输的顺利进行

希望以上回答对你有所帮助。如果还有其他问题,请随时提问。
回复

使用道具 举报

11#
ID:935919 发表于 2023-11-17 09:38 | 只看该作者
DMA 与 CPU 同时访问总线有如下几种方法:
1. 总线时分复用。
这种总线的访问权被分成多个时间片,CPU 和 DMA 分别使用不同的时间片。这种方法在早期的 DMA 中很常见。当时的 CPU 没有指令流水线,每个指令周期需要许多时钟周期才能完成,但只有其中小部分时钟周期访存。这时候 DMA 可以利用 CPU 访存的间隙时间,实现 DMA 与 CPU 并行。类似的做法也存在于比较现代的系统中,通过插入等待状态来实现 CPU 和 DMA 交替访问总线。

2. 矩阵总线。
矩阵总线每一个访存设备和每一组内存设备分别占据一个端口,只要两个访存设备访问的不是同一个端口就可以互不冲突。如果内存被分为多块使用多个总线端口的话,只要 DMA 和 CPU 不同时访问同一块内存,两者就可以相安无事。几乎所有基于 ARM 的芯片都用了矩阵总线作为系统总线。
3. 指令缓存。
现在大多数的 CPU 都有缓存。此时只要 CPU 需要访问的的指令已经存入了缓存,CPU 便不需要去系统总线取指。此时总线完全空闲,DMA 可以独占访问总线。

哪怕是第1种, 也有好多方式:


来源:https://www.zhihu.com/question/321877977/answer/664568452

所以, 基本上不会影响, 从宏观的角度, 可以认为DMA与CPU可以融洽的共享总线.


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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