发布于 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控制器的代码部分。
发布于 2019-03-07 22:28:44
根据这份文件,3.pdf
82C37 DMA控制器不应与一些早期MCH (内存控制器集线器)组件中的DMA引擎混淆。这些DMA控制器被绑定到ISA/LPC总线上,主要用于与诸如软盘控制器等慢速设备之间的传输。
因此,它似乎是在以前的平台上发现的一个使用MCHs设备的设备。
https://stackoverflow.com/questions/44195754
复制相似问题