DMA - 直接内存访问。驱动程序在没有CPU参与的情况下从/向内存读取或写入的操作(释放它以执行其他操作)。
DMA控制器 - 魔法无法完成读写操作。如果CPU没有这样做,我们需要另一台硬件来完成它。许多年前(在ISA / EISA时),通常在主板上使用共享硬件执行此操作。近年来,每个HW都有自己的DMA HW机制。但在所有情况下,此特定HW都会获取源地址和目标地址并传递数据。通常在完成时触发中断。
DMA引擎 - 现在我不知道你的意思。我相信你可能会提到处理DMA的SW端。 DMA比通常的I / O稍微复杂一些,因为在DMA操作期间所有存储器SRC和DST必须始终物理存在。如果将DST地址交换到磁盘,则HW将写入错误的地址,系统将崩溃。 DMA的这个和其他方面由驱动程序处理,代码部分可能称为“DMA引擎”
*对“DMA引擎”的另一种解释可能是处理HW端的DMA HW控制器的固件(或HW)的代码部分。
根据这份文件,http://www.asprom.com/application/intel_3.pdf:
不应将82C37 DMA控制器与某些早期MCH(内存控制器中枢)组件中的DMA引擎混淆。这些DMA控制器与ISA / LPC总线相连,主要用于与慢速设备(如软盘控制器)之间的传输。
因此,它似乎是在先前平台上使用MCH设备的设备。