From owner-freebsd-hardware Mon Feb 24 23:33:05 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id XAA04905 for hardware-outgoing; Mon, 24 Feb 1997 23:33:05 -0800 (PST) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id XAA04900 for ; Mon, 24 Feb 1997 23:33:00 -0800 (PST) Received: (from bde@localhost) by godzilla.zeta.org.au (8.8.3/8.6.9) id SAA00656; Tue, 25 Feb 1997 18:30:56 +1100 Date: Tue, 25 Feb 1997 18:30:56 +1100 From: Bruce Evans Message-Id: <199702250730.SAA00656@godzilla.zeta.org.au> To: asami@vader.cs.berkeley.edu, jin@george.lbl.gov, mark@quickweb.com Subject: Re: Memory speed of P6-200 (256k) Cc: freebsd-hardware@freebsd.org, kuku@gilberto.physik.rwth-aachen.de, robsch@robkaos.ruhr.de Sender: owner-hardware@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >Do not waste time to play this game. The "dd" is O.S. dependent code. No, dd is very machine-independent. It just loops calling read() and write() with the specified block size. However, the implementation of /dev/zero is very machine-dependent. FreeBSD happens to have an implementation that copies memory in a straightforward way, so the speed reported by dd is closely related to the memory write bandwidth. The read bandwidth doesn't matter much because most reads are from the cache. >It does not give you what is real memory speed on your system. The result >from dd is really depended on the O.S. you are running. If you run 2.2 or >higher, you will get much better performance than 2.1.x. There isn't much difference unless you have a P5 and the P5-optimized copyout routine is not disabled. >440FX does have worse memory speed than Triton-{I,II}; even though P6 has >much better CPU speed, but the PCI controller (440FX) is worse. That would explain why a P6 is more than twice as slow as a P5 for large writes. It is inherently about twice as slow because P6's read cache lines before writing to them. Read-before-write is useful if the memory is read after writing to it, but the dd benchmark never does that. Bruce