Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: $Revision: 1.6.2.16 $; site pbear.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!bellcore!decvax!cca!pbear!peterb From: peterb@pbear.UUCP Newsgroups: net.arch Subject: Re: Need 286 "C" benchmark Message-ID: <600002@pbear.UUCP> Date: Tue, 28-May-85 11:27:00 EDT Article-I.D.: pbear.600002 Posted: Tue May 28 11:27:00 1985 Date-Received: Fri, 31-May-85 03:18:52 EDT References: <426@oakhill.UUCP> Lines: 51 Nf-ID: #R:oakhill:-42600:pbear:600002:000:1456 Nf-From: pbear!peterb May 28 11:27:00 1985 There is no such thing as a single benchmark. There are many that exist. The point it that more than one exists and that you can not test the merit of a chip based on one benchmark. You have to run them all and analyse the results. In the analysis you discover the better OVERALL chip, and also find the strengths and weaknesses of each chip in small areas. These include: Register to register moves, Add/Sub/Mul/Div speeds (both signed and unsigned) (& BCD for the *86) memory to register register to memory memory to memory string ops, interupt response, i/o response time memory fault reload times Also the benchmarks can not be done in a HLL since there you are not only testing architecures, but compiler implementations. Take the previous benchmark of moving arrays in C: int a[50000]; main() { int i; for(i=0 ; i < 49999 ; i++) a[i+1]=a[i]; } When looking at the code you will see obvious deficiencies in the compiler output. Some will recompute the address of a[i] twice, whereas others will recognize the commons sub-expression and collapse it. A better benchmark would be: unsigned int a[50000]; main() { register int * j ; register int * k = a+50000; for ( ; j