atari email archive

a collection of messages sent at Atari from 1983 to 1992.

68020 vs 68000 performance

(1 / 1)


	I recently converted my program from 68000 to 68EC020.  I thought
there might be others interested in the performance increase from the 68020.
The following is my mileage, yours will certainly vary.

	Both systems were running at 14.1MHz.

	In both cases the C compiler is gnu C 1.40.  OSM generates better 
code on the 68000 although I cannot run it on the 68020.

	In both cases the program is running with 1 wait state (for SLOOP
and 100ns ROMs).

	ASIC is used just for sin, cos, atan, and TRANSVEC (transform unit
vectors into another frame of reference).

	I will define a time of 1.0 to be the running time of my program on
the 68000 without the ASIC.  .4 would mean the program would run in 40% of 
the time.

	time	configuration
	1.0	68000 
	 .8	68000, with ASIC
	 .8	68020, 16 bit bus, 68000 code 
	 .74	68020, 16 bit bus, 68000 code, with ASIC
	 .65	68020, 16 bit bus, 68000 code, cache on
	 .55	68020, 32 bit bus, 68000 code
	 .5	68020, 32 bit bus, 68000 code, cache on
	 .45	68020, 32 bit bus, 68020 code (MULS.L used)
	 .42	68020, 32 bit bus, 68020 code (MULS.L used), cache on
	 .42	68020, 32 bit bus, 68020 code (MULS.L and DIVS.L used)
	 .38	68020, 32 bit bus, 68020 code (MULS.L and DIVS.L used), cache on

	The 68020 seems to be better than twice as fast as the 68000.

	The results show that the ASIC should not be used for small routines
like sin and atan where the 68020 will run faster that it takes to get the
info to and from the ASIC.

	It is also quite clear that changing just two of my most used routines 
(TRANSVEC and atan2) to use the MULS.L and DIVS.L instructions is well worth it.
Message 1 of 1

Feb 24, 1992