Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!cbatt!ihnp4!ptsfa!styx!ames!oliveb!pyramid!decwrl!labrea!rocky!rokicki From: rokicki@rocky.UUCP Newsgroups: comp.sys.amiga Subject: Re: Blitter / Assembly block clear benchmarks Message-ID: <287@rocky.STANFORD.EDU> Date: Tue, 5-May-87 00:42:45 EDT Article-I.D.: rocky.287 Posted: Tue May 5 00:42:45 1987 Date-Received: Thu, 7-May-87 01:14:16 EDT References: <8705030729.AA23771@cory.Berkeley.EDU> Organization: Stanford University Computer Science Department Lines: 41 Summary: Faster than that! dillon@CORY.BERKELEY.EDU (Matt Dillon) writes: > for comparison, a 68010 can zero a large block @ 2.04 MBytes/sec Actually, it's possible to clear memory pretty quickly with a bare bones 68000. For block sizes larger than 256, you can do something like this (after setup): loop: movem.l d1-d7/a1-a6,-(a0) ; 116 movem.l d1-d7/a1-a6,-(a0) ; 116 movem.l d1-d7/a1-a6,-(a0) ; 116 movem.l d1-d7/a1-a6,-(a0) ; 116 movem.l d1-d7/a1-a5,-(a0) ; 108 dbra d0,loop ; 10 _____ 582 cycles to clear 256 bytes On a 7.18 MHz processor, that yields a throughput of ( 7.18 * 10^6 * 256 ) / ( 582 * 1048576 ) or 3.01 MBytes per second. (Gotta run it to be sure.) Of course, the bandwidth of the 68000 is: ( 7.18 * 10^6 ) / ( 2 * 1048576 ) or 3.42 MBytes per second, so we are not too far off. The blitter can function at twice that: ( 7.18 * 10^6 ) / 1048576 or 6.85 MBytes per second, if you turn the display off. And get rid of all of the other overhead. Note that in the 68000 calculations above, we are assuming no contention for the bus for the 68000. Actually, the 68000 *does* see some small amount of contention, even with only a high-res 2 bit plane screen like the workbench screen, but it's not much. Now, what are you going to do with memory you clear so fast?