[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
> ---------------------------------------------------------------------