Date: Wed, 30 Jul 1997 22:00:38 +0200 From: Stefan Esser <se@FreeBSD.ORG> To: Andrew Gallatin <gallatin@cs.duke.edu> Cc: freebsd-current@FreeBSD.ORG Subject: Re: code talks: announcing EIDE bus master patches Message-ID: <19970730220038.02422@mi.uni-koeln.de> In-Reply-To: <199707301924.PAA08936@hurricane.cs.duke.edu>; from Andrew Gallatin on Wed, Jul 30, 1997 at 03:24:54PM -0400 References: <19970729210723.18104@mi.uni-koeln.de> <199707291949.VAA00271@sos.freebsd.dk> <19970729221036.52544@mi.uni-koeln.de> <199707301924.PAA08936@hurricane.cs.duke.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jul 30, Andrew Gallatin <gallatin@CS.Duke.EDU> wrote: > Speaking of PIO vs. DMA, an interesting data point is the bandwidth > differences between PIO & DMA. > > For example, on a 200Mhz P. Pro (Asus XP6NP5, Intel 82440FX chipset) > we can use PIO to move an 8k chunks of memory to a PCI device(*) at a > rate of 29.1 MB/sec, but using PIO for reads gives us bandwidth of > only 8.1MB/sec. Other platforms (Intel Triton @ 13MB/sec) show > similar results. However, using DMA we see b/w of 114.4MB/sec (host > -> PCI device) and 121.5 MB/sec (PCI -> host memory). Is this PIO to an I/O port, or to a memory mapped port ? But in any case: In order to use PCI burst transfers, you have to write to sequential memory addresses, e.g. to some double-mapped SRAM buffer. PCI is slow, if you can't take advantage of burst transfers! > So.. if IDE disks can really supply data at > 8MB/sec, you may > actually be running into a b/w limitation of PIO. If you assume 8 PCI clocks for a non-burst transfer, the limit comes out as 16MB/s. (The minimum is 4 clocks for such a transfer, but don't assume your chip-set does support that :) > (*) PCI device == a Myrinet M2F-PCI32 card. This is a programmable > gigabit networking card. It has a 256k bank of SRAM on the card, and > is very good for doing things like measuring PCI b/w. The tests were > done from user space operating on mmap'ed device memory & a kernel > allocated chunk of RAM to do DMA xfers to/from. It also runs IP > traffic at better than 300Mb/sec. This was a memory mapped device buffer ? That's *very* different from an I/O port, and you should be able to copy data to that SRAM at a much higher rate than 8 or 13MB/s! Regards, STefan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19970730220038.02422>