[comp.sys.amiga.hardware] AsSpeed Results...

markv@kuhub.cc.ukans.edu (04/23/91)

As promised, here are my benchmarks from the AdSpeed.  The figures given
are a percentage increase in speed from a base machine to a machine
with the AdSpeed turned on.  Note the machine was an Amiga 2000 with
ECS, Supra Wordsync, and 3MB of FAST ram on a RAM Works 2000.

Speed Comparisons:

   Light DMA   -Run w/CHIP only and 4 color std workbench, nothing else.
   Heavy DMA   -  "   "   "        16 Color HiRes Screen in full foreground.
   FAST RAM    -From FAST RAM w/all program and data in fast.
   CHIP/FAST   -Slow machine, Hvy CHIP versus FAST, just for interest...

Note these categories are important as the AdSpeed does NOT cache CHIP
RAM (it properly handles both 512K and 1MB of CHIP).

The categories are pretty simple.  All operations work on two 40K arrays
(enough to overrun most any on chip cache I've ever seen), from array to
array, and from variable to variable.  Temp vars are register variable,
so each arithmatic category involves 100,000 iterations of each operation
with an assignment, both memory to memory, and memory to register,
register to register, and signed and unsigned.

The Str/Mem category is a short and long based involving a memory to memory
copy with the arrays, a memory to register compare, and a memory to
memory compare.

Function call is a dummy function call with 3 params (1 ea of byte, short,
and long, plus one indirection fetch) with a long return.

Okay, here goes:

Category       Light DMA   Heavy DMA   FAST RAM    Hvy CHIP/FAST
-------------- ----------  ----------  ---------   --------------
16 Bit Add/Sub    2.5 %       6.0 %      86.0 %      124.0 %
 "     Mul/Div   55.0 %      53.0 %     102.0 %       94.0 % 
-------------- ----------  ----------  ---------   --------------
16 Bit Total	 31.0 %      31.0 %      96.0 %       105.0 %
============== ==========  ==========  =========   ==============
32 Bit Add/Sub    5.4 %      10.0 %      72.0 %       126.0 %
 "     Mul/Div   24.0 %      14.0 %      83.0 %       101.0 %      
-------------- ----------  ----------  ---------   --------------
32 Bit Total     20.0 %      14.0 %      81.0 %       105.0 %
============== ==========  ==========  =========   ==============
Arith Total      24.0 %      19.0 %      86.0 %       105.0 %
============== ==========  ==========  =========   ==============
String/Memory    26.0 %      21.0 %      89.0 %       107.0 %
============== ==========  ==========  =========   ==============
Function Call     7.4 %       5.0 %      59.0 %       129.0 %
============== ==========  ==========  =========   ==============
TOTAL            23.0 %      18.0 %      85.0 %       107.0 %
============== ==========  ==========  =========   ==============

Note also the total results are not too valid, since they are unweighted
and the artihmatic total accounts for over 75% of the time in each.

The program I used I wrote in C, so it is usable for many single variable
comparisons, and is effected by the quality of the code generated by
the compiler.

Note also this program generates a "Performance Index" relative to a
4.77 MHz 8088 PC/XT w/MSC 5.1.  These results follow:

State               Arith      String      Function     Overall
------------------  ---------  ----------  -----------  ----------
Slow, Light Chip       3.82       3.73       11.59         3.86
Slow, Hvy. Chip        1.90       1.81        5.41         1.90
Slow, Fast RAM         3.89       3.77       12.44         3.93
Fast, Light Chip       4.74       4.73       12.44         4.75
Fast, Hvy. Chip        2.26       2.21        5.70         2.25
Fast, Fast RAM         7.25       7.14       19.76         7.28

The results reflect the differing architectures.  Note that the arith
results show that Mul/Div is twice as costly as Ad/Sub.  On Intel machines
with 286 and even 386 the difference is much less, since Intels CPUs 
have excellent Mul/Div speed relative to most arithmatic operations.
On the otherhand, Intel CPUs suffer for lack of some bit instructions,
and 8088/86 code is a PIG on function call because of lack of
a stack frame instruction, and limits on operands for PUSH/POP.

Note a 3000/16 weighs in an overall index of 13-14 versus an index of 
16-18 for a Zenith 386/16MHz (likely because the Zenith has 0ws
interleaved RAM).

Now, to wrap up quickly, given that the AdSpeed can be found for well
under $250, it is an excellent value.  Note that if you include a 
RAM board with 4MB of FAST RAM versus the 2630 or GVP 3001/28 w/4MB, the
Cost/MIPs ratio is just about the same.  This is good news since it means
that Amiga owners can pick the performance point they want with a relativly
even cost factor.  Also, these results should show you that if you
do a lot of CHIP intensive work, getting some fast RAM is more important
for a first step.  (You should have more than 1MB anyways...).

Well, 'nuff said,
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mark Gooderum			Only...		\    Good Cheer !!!
Academic Computing Services	       ///	  \___________________________
University of Kansas		     ///  /|         __    _
Bix:	  mgooderum	      \\\  ///  /__| |\/| | | _   /_\  makes it
Bitnet:   MARKV@UKANVAX		\/\/  /    | |  | | |__| /   \ possible...
Internet: markv@kuhub.cc.ukans.edu
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~