首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DMA引擎和DMA控制器有什么区别?

DMA引擎和DMA控制器有什么区别?
EN

Stack Overflow用户
提问于 2017-05-26 07:14:21
回答 2查看 4.1K关注 0票数 8
  1. 如前所述,dma引擎和dma控制器(关注linux)之间有什么区别?
  2. linux引擎什么时候出现?这是一个特殊的设备,还是所有支持dma的外围设备的一部分?
  3. 在浏览linux源代码时,我找到了驱动程序ste_dma40.c。司机是如何使用这个引擎的?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-19 06:04:24

DMA -直接内存访问。在没有CPU的情况下从HW内存读取或写入驱动程序的操作(释放它来做其他事情)。

DMA控制器-读和写不能用魔法完成。如果CPU不这样做,我们需要另一个HW来完成它。许多年前(在ISA/EISA的时候),在执行此操作的主板上使用共享HW是很常见的。近年来,每个HW都有自己的DMA HW机制。但是在所有情况下,这个特定的HW获取源地址和目标地址并传递数据。通常在完成时触发中断。

DMA引擎-现在我不知道你是什么意思。我相信您可能指的是处理DMA的SW端。DMA比通常的I\O要复杂一些,因为在DMA操作期间,所有内存、SRC和DST都必须在物理上始终存在。如果将DST地址交换到磁盘,则HW将写入错误的地址,系统将崩溃。DMA的这个和其他方面由驱动程序处理,其中的代码部分可能称为"DMA引擎“。

*对“DMA引擎”的另一解释可能是固件(或HW)中处理HW侧DMA HW控制器的代码部分。

票数 14
EN

Stack Overflow用户

发布于 2019-03-07 22:28:44

根据这份文件,3.pdf

82C37 DMA控制器不应与一些早期MCH (内存控制器集线器)组件中的DMA引擎混淆。这些DMA控制器被绑定到ISA/LPC总线上,主要用于与诸如软盘控制器等慢速设备之间的传输。

因此,它似乎是在以前的平台上发现的一个使用MCHs设备的设备。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44195754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档