[comp.unix.microport] SOP Benchmark: 286 Unix vs. 386 Unix

karl@sugar.UUCP (Karl Lehenbauer) (06/25/88)

[...a Seat Of Pants benchmark... -karl]

The benchmark:
	Time to do a 13-bit compress of all the conquer shars,
	423474 bytes in 8 files (one file was truncated)

Machine 1:
	Everex 8 MHz 286 AT clone w/5 MB of 0-wait memory
	Microport System V/AT
	Miniscribe 72 MB disk, pretty high fragmentation

Machine 2:
	Mylex 16 MHz 386 AT clone w/4 MB of RAM and 64 kb cache
	(cache hits = 0 wait states, misses = 3, all writes = 2)
	Bell Technologies Unix System V/386
	Miniscribe 72 MB disk, low fragmentation

Results:
				real		user		system
	8 MHz 286		2:24		111.8		4.5

	16 Mhz 386		0:16		8.87		1.77

Notes:

The Bell Tech Unix is the generic ISC version.  I would expect nearly
identical performance from the other 386 Unix "versions."

I ran it twice and also made sure the files weren't in the disk cache before
starting.

It is somewhat surprising to me that the 386 would outperform the 286
by a greater than 10-to-1 margin.  I would expect 3-to-1 from the clock
and bus width differences.  I attribute the rest of the difference to
the much nicer instruction set provided by the 386 in native mode
(more registers and it's much more orthogonal) and the reduced overhead 
of not having to manipulate segment registers.

Unix System V/386 implements demand paged virtual memory.

Pity that OS/2 will always use this chip in it's 85% brain-dead '286 emulation
mode.
-- 
-- uunet!sugar!karl

mrspock@hubcap.UUCP (Steve Benz) (06/25/88)

From article <2173@sugar.UUCP>, by karl@sugar.UUCP (Karl Lehenbauer):
> It is somewhat surprising to me that the 386 would outperform the 286
> by a greater than 10-to-1 margin.  I would expect 3-to-1 from the clock
> and bus width differences.  I attribute the rest of the difference to
> the much nicer instruction set provided by the 386 in native mode
> (more registers and it's much more orthogonal) and the reduced overhead 
> of not having to manipulate segment registers.

  I'd say it has alot to do with 32-bit pointer manipulations.
It takes in many cases 6 instructions just to *copy* one pointer
to another -- I wouldn't even want to think about how many cycles
are involved in such an operation.  On the 386 it's two instructions
for (I think, but I could be wrong) all cases of 32bit-32bit moves.
(At least all the cases that pcc will generate.)

  You wouldn't do so well if you were comparing a 286 program in
small model to a 386 program.

> -- uunet!sugar!karl

				- Steve Benz