Re: DMA Vs Programmed IO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 30 Oct 2002 16:20:51 -0600
Sumit Agarwal <aksumit@india.hp.com> wrote:

> Most of the cards like SCSI, FC, NIC now include their own
> DMA engines.
> Therefore it is good to have DMA for them. The older cards
> of EISA
> that donot have their DMA engines needs to be set up using
> the DMA
> controllers. Setting up of DMA controller is not a over
> head, as the
> DMA is setup during the initialization. Later on just the
> channel is
> selected and the locations are marked. This is always going
> to be
> better than no DMA. The device driver writer is aware of the
> DMA
> capabilities and generate the code.

Note that you miss the OS here. Usually, when using DMA the process
blocks and later an interrupt wakes it up. Sleep and wakeup carry
overhead that may be bigger than the gains of making the CPU available.

> 
> It is just the HBA (host bus adapter) or NIC that is in
> picture while
> doing DMA and not the disk e.t.c that is present on the
> secondary
> bus (like SCSI, IDE e.t.c). In PIO mode for every byte/word
> transaction
> CPU intervention is required and hence is slow.

Yes, usually, but not always.  Bus transactions initiated by the CPU
with read/write instructions (i.e. in/out or ld/st) can have the
drawback that they may requre address phase with certain busses and
bridges, i.e. no burst. Bus master devices usually perform burst
transfers, thus the gain is twofold: a) faster transfers b) available
CPU.

~velco
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux