DMA - Direkter Speicherzugriff. Der Betrieb Ihres Treibers beim Lesen oder Schreiben von/in Ihren HW-Speicher, ohne dass die CPU daran beteiligt ist (wodurch sie für andere Dinge frei ist).
DMA-Controller - Lesen und Schreiben kann nicht durch Zauberei erfolgen. Wenn die CPU es nicht tut, brauchen wir eine andere HW, um es zu tun. Vor vielen Jahren (zur Zeit von ISA/EISA) war es üblich, eine gemeinsam genutzte Hardware auf dem Motherboard zu verwenden, die diese Operation durchführte. In den letzten Jahren hat jede HW ihren eigenen DMA-HW-Mechanismus. Aber in allen Fällen erhält diese spezifische HW die Quelladresse und die Zieladresse und leitet die Daten weiter. Löst normalerweise einen Interrupt aus, wenn er fertig ist.
DMA Engine - Hier bin ich mir nicht sicher, was Sie meinen. Ich glaube, Sie beziehen sich wahrscheinlich auf die SW-Seite, die DMA handhabt. DMA ist etwas komplizierter als gewöhnliche E/A, da alle Speicher-SRC und DST während des DMA-Vorgangs jederzeit physisch vorhanden sein müssen. Wenn die DST-Adresse auf die Festplatte ausgelagert wird, schreibt die HW an eine fehlerhafte Adresse und das System stürzt ab. Dieser und andere Aspekte von DMA werden vom Treiber mit Codeabschnitten behandelt, die Sie wahrscheinlich als "DMA-Engine"
*Eine andere Interpretation dessen, was „DMA Engine“ ist, kann ein Codeteil der Firmware (oder HW) sein, der den DMA-HW-Controller auf der HW-Seite handhabt.
Gemäß diesem Dokument http://www.asprom.com/application/intel_3.pdf:
Die 82C37-DMA-Controller sollten nicht mit den DMA-Engines verwechselt werden, die in einigen früheren MCH-Komponenten (Memory ControllerHub) zu finden sind. Diese DMA-Controller sind an den ISA/LPC-Bus gebunden und werden hauptsächlich für Übertragungen zu/von langsamen Geräten wie Diskettencontrollern verwendet.
Es scheint also ein Gerät zu sein, das auf früheren Plattformen gefunden wurde, die MCHs-Geräte verwendet haben.