From: lindblad@klaava.Helsinki.FI (Jarkko Lindblad)
Subject: Re: HELP--AMIGA OR IBM PC CLONE?
Organization: University of Helsinki
X-Newsreader: TIN [version 1.1 PL6]
Date: Tue, 12 Jan 1993 22:46:24 GMT

Jerry Shekhel (jerry@msi.com) wrote:
> Jarkko Lindblad (lindblad@klaava.Helsinki.FI) wrote:

> : In your dreams. And in some benchmarks too. Do you really want to know
> : why _benchmarks_ are not a usefull source of information?
> : 	I can show you benchmarks which will clearly state that 6502
> : is faster than any 486-clone. Of course I'll choose the compilers to
> : compile the benchmarks - one will be a custom made C-compiler with
> : 'JarkkoStone'-optimizer, the other may be any 486-C-compiler.
> :
> 
> Shouldn't that be "JharkkoStone"? :-)

Sorry. Of course it is/will be JharkkoStone :)

> Look, you've got every right not to believe benchmark results.  I've got no
> problem with that.  But, you also said, "In your dreams," which implies that
> you believe that a 486DX2 could not beat an 040.  Well, how about some proof?

I said "In your dreams" to "486DX2 BLOWS away" - however, if two
programs were written using fully optimized code, one for 486-system
(w/o external cache - we want to measure CPU speed, not 'CPU+something
to boost it' speed), and one for 040, I'd say 040 would blow away
486DX's of similar clock speed and would generate _at least_ equal
performance to 33/66 MHz 486DX2.

> And remember, no benchmarks!

As the code should be fully optimized, I assume that pipelines are
fill just about all the time, now: 68040 executes instructions in less
clock cycles in general (branch not taken seems to be the only
comparable insturction 486 executes faster (1 vs 3 clocks)). Much of
this is due to extra pipeline stage of 040 (which also takes advantage
of dual caches). 68040 has more registers and all data registers are
interchangeable (one can use whichever dataregister for whichever
purpouse). 486 on the otherhand has fewer registers and their usage is
much more limited - many 486 instructions insist that one parameter
has to be given in fixed register, for example mul- & div-instructions
always need EAX-register. What this means is 'register shuffle', one
has to spend move cycles in moving stuff from registers to memory or
other registers. Also 68040 has 7 identical address registers.
	Now, there are differences in instruction sets - 486 has
string instructions (which are mainly usefull in dhrystone-benchmarks,
JharkkoStones will not take advantage of them :), and 040 has more
addressing modes, and all this makes valid comparing a bit hard.

In practise 486 processors (when running 32-bit code) usually do use
(IMHO) more of their potential than 040 as its extremely probable that
the world has seen much better optimizers for 486 than for 040 (I
guess only HP has a relatively good optimizer for 040). Extremely
probable as it's pretty hard to tell for absolutely sure.

> BTW, I'd love to see that 6502 vs. 486 benchmark!  Please, enlighten us!

It's not done yet. Actually it's not even started yet. But I could do
it. You could do it (even if you had to learn 6502 for it). It's just
that the optimizer for 6502 would optimize the whole benchmark away
(or leave only very few meaningless & quick parts of it lesft) being
programmed to find this kind of benchmarks.

-- 
Jarkko Lindblad         | sleep my friend and you will see
lindblad@cc.helsinki.fi | that dream is my reality
------------------------| they keep me locked up in this cage
          - MetallicA - | can't they see it's why my brain say rage
Newsgroups: comp.sys.amiga.advocacy