VOGONS


First post, by Swiego

User metadata
Rank Member
Rank
Member

As I understand it, DMA is possible with some cards such as sound cards, however no drive controller or host bus adapter supports it. Am I misunderstanding this? If not, what is the reason for this?

Reply 1 of 1, by mpe

User metadata
Rank Oldbie
Rank
Oldbie

There are two relevant types of DMA. Classical PC-XT style "ISA" DMA and "PCI" bus-mastering DMA.

ISA DMA is horribly inefficient. DMA clock is typically 4.77 MHz and has several limitations which make it unsuitable for hard-disks.

IBM-XT actually used DMA for its ST-506/MFM disk interface. However, in AT they switched to PIO for ATA which lead to much faster transfer speeds.

ATA single-word DMA, ATA multiword DMA and UDMA are all PCI Busmastering DMA types.

Also, the fact that you can free-up CPU by DMA wasn't that great advantage for contemporary software to balance disadvantages. In those days you first loaded programs to memory and then ran them. So you wanted a fast loading time more than low CPU usage during I/O. Freeing up CPU started to be important later when OS got multi-tasked or when people were trying to play first videos which really become a thing in PCI days.

Blog|NexGen 586|S4