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>