DMA - Accesso diretto alla memoria. L'operazione del tuo driver che legge o scrive da/sulla tua memoria HW senza che la CPU sia coinvolta (liberandola per fare altre cose).
Controller DMA:leggere e scrivere non può essere fatto per magia. se la CPU non lo fa, abbiamo bisogno di un altro HW per farlo. Molti anni fa (ai tempi di ISA/EISA) era comune utilizzare un HW condiviso sulla scheda madre che eseguiva questa operazione. Negli ultimi anni, ogni HW ha il proprio meccanismo DMA HW. Ma in tutti i casi questo HW specifico ottiene l'indirizzo di origine e l'indirizzo di destinazione e passa i dati. Solitamente attivando un'interruzione al termine.
DMA Engine - Ora qui non sono sicuro di cosa intendi. Credo che probabilmente ti riferisci al lato SW che gestisce il DMA.DMA è un po' più complicato del solito I\O poiché tutta la memoria SRC e DST deve essere fisicamente presente in ogni momento durante l'operazione DMA. Se l'indirizzo DST viene scambiato su disco, l'HW scriverà su un indirizzo errato e il sistema andrà in crash. Questo e altri aspetti del DMA sono gestiti dal driver con sezioni di codice che probabilmente chiamerai "Motore DMA"
*Un'altra interpretazione di cosa sia "DMA Engine", potrebbe essere una parte di codice del firmware (o HW) che gestisce il controller DMA HW sul lato HW.
Secondo questo documento, http://www.asprom.com/application/intel_3.pdf:
I controller DMA 82C37 non devono essere confusi con i motori DMA presenti in alcuni componenti MCH (Memory ControllerHub) precedenti. Questi controller DMA sono collegati al bus ISA/LPC e utilizzati principalmente per i trasferimenti a/da dispositivi lenti come i controller per floppy disk.
Quindi sembra che sia un dispositivo trovato su piattaforme precedenti che utilizzavano dispositivi MCH.