直接内存访问DMA

翻译并提取自维基百科:https://en.wikipedia.org/wiki/Direct_memory_access

概念

DMA(Direct Memory Access)是一种硬件体系特性,它允许某些硬件子系统不通过CPU就直接访问随机访问内存(RMA)。它是一种系统特性,而非指定的某种硬件或者软件,而为了实现这种特性,可能需要用到专门的DMA外设(第三方DMA),也可以直接通过系统机制来实现(第一方DMA)。为什么要提供DMA机制呢?由于内存访问的操作通常频繁发生,如果没有DMA机制,所有的硬件都要等到CPU调度来访问RMA的话,那么CPU的时间将会被大量的IO操作所占据,从而无法为其他的程序提供服务。而采用了DMA机制之后,CPU只需要启动一个控制器(DMA Controller),在控制器自行调度硬件内存访问的同时CPU可以执行其他的工作,而DMA Controller在工作完毕后发送一个中断给CPU,通知其内存调度已经完成。这一机制使得CPU的时间片可以用在更加紧急的任务上,而无需处理相对较为缓慢的数据传输工作,也可以让CPU无法空闲的情况下硬件子系统仍旧可以访问物理内存。

拥有DMA通道的硬件系统,在数据传输、硬件存取方面的CPU开销比无DMA通道的硬件系统要小得多得多。启用DMA机制后,系统中可以真正并发的进行计算操作与数据传输。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值