Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 05 Apr 1996 02:21:48 -0800
From:      David Greenman <davidg@Root.COM>
To:        asami@cs.berkeley.edu (Satoshi Asami)
Cc:        current@FreeBSD.org, nisha@cs.berkeley.edu, tege@matematik.su.se, hasty@rah.star-gate.com
Subject:   Re: fast memory copy for large data sizes 
Message-ID:  <199604051021.CAA00222@Root.COM>
In-Reply-To: Your message of "Fri, 05 Apr 1996 01:35:16 PST." <199604050935.BAA24263@silvia.HIP.Berkeley.EDU> 

next in thread | previous in thread | raw e-mail | index | archive | help
>We've put together a fast memory copy that uses floating point
>registers to speed up large transfers.  The original idea was taken
>from Amancio Hasty's old post to use floating point registers to move
>8 bytes at a time.  (We tried using integer registers too but with our
>wits we could only get 10MB/s less than the FP case.)
>
>By the way, we plugged this thing in as a replacement to
>copyin/copyout and our ccd testing machine, (striping disk driver, see
>http://stampede.cs.berkeley.edu/ccd/ for details) and maximum read
>performance improved from 21MB/s to 24MB/s using 9 disks.  But that's
>only to our interest, so here's a comparison with the libc bcopy()
>(which is essentially the same code as the stock copyin/copyout).
>
>Here are the kind of numbers we are seeing, and hope you will see, if
>you run the program attached at the end of this mail:
>
> 90MHz Pentium (silvia), SiS chipset, 256KB cache:
>
>    size     libc             ours
>      32  15.258789 MB/s   6.103516 MB/s 
>      64  20.345052 MB/s  15.258789 MB/s
>     128  17.438616 MB/s  15.258789 MB/s

   This would be a big lose in the kernel since just about all bcopy's fall
into this range _except_ disk I/O block copies. I know this can be done better
using other techniques (non-FP, see hackers mail from about 3 months ago). You
should talk to John Dyson who's also working on this.

-DG

David Greenman
Core-team/Principal Architect, The FreeBSD Project



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199604051021.CAA00222>