dma适用于什么数据传送_DMA 技术是什么,在哪里用?看完绝对有收获

前文《I/O Zero Copy是什么?》介绍了 Zero Copy 的本质就是 IO 设备跟用户程序空间传输数据的过程中,减少数据拷贝次数,减少系统调用,实现 CPU 的零参与,彻底消除 CPU 在这方面的负载。实现 Zero Copy 用到的最主要技术是 DMA 数据传输技术和内存区域映射技术(虚拟内存)。

挖坑不断,填坑不止,通过《10 分钟看懂虚拟内存底层原理》我们学习了虚拟内存的底层原理。今天,我们来填一下 DMA 的大坑。从上层应用一路往下到底层硬件高速数据交换接口 DMA,越往下笔者愈感心有余而力不足,在这方面笔者也是个新人,边学边做一些笔记。

一、DMA 是什么?

DMA(Direct Memory Access:直接内存存取)是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量中断负载,是一种可以大大减轻 CPU 工作量的数据转移方式。

CPU 有转移数据、计算、控制程序转移等很多功能,但其实转移数据(尤其是转移大量数据)是可以不需要 CPU 参与。比如希望外设A 的数据拷贝到外设 B,只要给两种外设提供一条数据通路,再加上一些控制转移的部件就可以完成数据的拷贝。

正是基于上述的考虑,大佬们设计了 DMA ,解决数据转移过度消耗CPU资源的问题。

DMA 细节我们就不继续深究了,更多去了解 DMA 在 I/O 上的应用是怎样的,不过要记住 DMA 基本原理:

​DMA 是一种允许外围设备(硬件子系统)直接访问系统主内存的机制。也就是说,基于 DMA 访问方式,系统主内存于硬盘或网卡之间的数据传输可以绕开 CPU 的调度。

整个数据传输操作在一个 D

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值