[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to achieve a long burst?
Hi,
you're comparing a horse and a cow in the scenario pointed out.
I have to throw my hat in for DMA transfers.
Some of my experience:
1) You just get reasonable DMA performance if you do long bursts (4kB or so)
2) You need to use the right PCI commands during the transfer (Memory Read
Line/Mulktiple and Memory Write and Invalidate)
3) For small junks of data, host initiated transfers may work as you pointed
out.
4) PCI2PCI bridges kill DMA performance. If you could do the DMA directly
from MPC8240 an with no 21554 in between you would receive much higher
bandwith.
5) We have implemented systems which tranfer 80MB/s !!!sustained!!!, not
peak using Bus master DMA.
Regards,
Peter Marek
General Director
MarekMicro GmbH
Kropfersrichter Str. 6-8
D-92237 Sulzbach-Rosenberg
Germany
Phone: 049 - 9661 - 908 - 210
Fax: 049 - 9661 - 908 - 100
----- Original Message -----
From: Scott C. Karlin <scott@CS.Princeton.EDU>
To: <pci-sig@znyx.com>
Sent: Thursday, December 14, 2000 6:03 PM
Subject: Re: How to achieve a long burst?
> 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
> ---------------------------------------------------------------------