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

Re: How to achieve a long burst?



Scott,

Interesting figures. However, the 8240 DMA seems a bit slow to me.
Can you give some more details on how you program the 8240's DMA controller.
Especially:
- which PCI commands do you use and?
- does the 8240 DMA controller run with or without snooping enabled?
- do you run the 8240 DMA controller in interrupt mode?
- Finally, which version of the 8240 silicon are you using?

Best regards
Klaus

"Scott C. Karlin" wrote:

> Maybe you don't need DMA on the host bridge...
>
> I did some recent measurements of data transfer across the PCI bus
> to and from a board with DMA capability.  The motherboard is an
> Intel CA810E with a 733MHz Pentium III.  The target PCI board is
> a RAMiX PMC694 which has a 266 MHz Motorola MPC8240 (PPC core with
> other goodies including a DMA engine) behind an Intel 21554 bridge.
> The PCI bus is 32 bits / 33 MHz.  I'm running Linux on the Pentium
> and "raw" code on the 8240.
>
> Here's what I measured:
>
> Bus Master    Mode    Direction   MBytes/sec (64-byte chunks)
> ===========   ====    =========   ===========================
> Pentium III   memcpy  read                3.98
> Pentium III   memcpy  write              68.70
> MPC8240       DMA     read               22.66
> MPC8240       DMA     write              34.19
>
> (memcpy is the gcc compiler supplied routine)
>
> The host bridge seems to be doing a good job of write combining.
>
> What this tells me is that for many applications the transfer
> speed of a host Pentium may be fast enough.  It also confirms
> what has been observed before: it is better to push data across
> the bus than to pull it.  Certainly, if you want more speed, you
> can implement a DMA controller on the host side; however, you'll
> always be limited by the slower device (master or target) of the
> transaction.  (DMA also has other advantages: you can overlap DMA
> transfers with other computation and you might be able to use a
> slower CPU as a result.)
>
> Scott
>
> Ted Firlit writes:
> >
> > Unfortunately, it appears that the bridge chips on PC motherboards do
> > not implement DMA engines.  Therefore it falls to the peripherals to
> > implement DMA.. which also mandates they must be capable of becoming the
> > PCI bus master.
>
> ---------------------------------------------------------------------
> Scott C. Karlin                        Princeton University
> http://www.cs.princeton.edu/~scott     Department of Computer Science
> ---------------------------------------------------------------------