I want to understand - how implements a DMA mechanism in modern systems. I looked a ICH7 specification and found that it has two DMA controllers. I just want to understand how this is done from the point of view of end devices. Can any device that runs on any bus (SATA, USB, PCIe etc.) use the DMA engine (through DMI?) ? Is this actions initiating by chipset driver every time? Or DMA is using for IDE UDMA mode only? How NICs, soundcards etc. (include USB implementation of its) performs data transfers with memory? Not through CPU?
Please, share with me a general information about it (specifications, Intel's publications etc.)...
I would recommend posting your inquiry at the communities linked below:
Public documentation about DMA in ICH7 might be available here: