Newsgroups: comp.sys.amiga.advocacy Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!mintaka!geech.gnu.ai.mit.edu!rjc From: rjc@geech.gnu.ai.mit.edu (Ray Cromwell) Subject: Re: (Video) Hardware Idiots ? Message-ID: <1991Jun12.232718.2373@mintaka.lcs.mit.edu> Sender: news@mintaka.lcs.mit.edu Organization: The Internet References: <1991Jun10.065629.21255@marlin.jcu.edu.au> <1991Jun10.074421.6782@mintaka.lcs.mit.edu> <22368@cbmvax.commodore.com> Date: Wed, 12 Jun 91 23:27:18 GMT Lines: 74 In article <22368@cbmvax.commodore.com> daveh@cbmvax.commodore.com (Dave Haynie) writes: >In article <1991Jun10.074421.6782@mintaka.lcs.mit.edu> rjc@wookumz.gnu.ai.mit.edu (Ray Cromwell) writes: >>In article <1991Jun10.065629.21255@marlin.jcu.edu.au> cpca@marlin.jcu.edu.au (Colin Adams) writes: > >>Assuming those 5 million instructions were all move's theoretically >>the 030 could transfer 20 megs of data/sec if there was no bus >>contention and using fast ram. (5 MIPS * 4 bytes per longword = 20meg) > >Strangely enough, the A3000's fast RAM bus runs at 20 MB/s (megabytes per >second), nonburst, 33 MB/s burst. A 25MHz 68030 running with 0 wait states >(you never use burst at 0 wait states, the '030 cache is too small for that >to always win) manages 50 MB/s. Obviously, if you're talking about data >transfers, the best you do is half of that, since the CPU need to read in, >then write out, any particular datum. [I feel like a dummy, in my example I started out by figuring out the transfer rate on the fast ram bus @25mhz and then tried to apply it to the chip bus, I must be losing my mind.] So the max transfer rate, with 0 wait states is 10mb/sec (theoretical) on the fast ram bus at @25mhz. Can you explain how burst works? I remember reading about it a long time ago, but can't recall it, something about eliminating wait states on sequential ram accesses? >>Chip ram cuts this figure in half (the processor only gets access >>every other cycle), and a 16bit bus cuts it in half again. > >Essentially wrong on both counts. Forget about "every other cycle", that only >has meaning to Agnus. Think "bandwidth". Agnus will support 7.16MHz 68000 >accesses at full speed, which turns out to be roughly 3.5 MB/s. An A2500 can >only hit chip RAM at 3.5 MB/s, but since an A3000 has a 32 bit Chip RAM bus, >it's 68030 can hit chip RAM at 7 MB/s. Since the blitter, if allowed, can also >manage 7MB/s (twice the RAM speed but half the bus width), there's no clear >winner in any race, it depends totally on what you're doing. IMHO, it looks like the blitter wins in the majority of situations like large blits, masking and shifting, arbitrary bit boundaries and complex logic operations. [feel free to correct me on this Dave]. Now in operations involving multiple planes, like drawing colored lines a 68030 might win. Someone told me the blitter will access a ram address up to 16 times to draw a line (worst cast is horizontal)? It seems like a simple optimization to cache last word read and set pixels in the cache then write it back when the pixel location crosses a word boundary. I recently wrote a line plotter on the Commodore 64 that cached the current bitmap byte, it sped the plot tremendously. (instead of a lda (bitmapptr),y; ora bittable,x; sta (bitmapptr),y; [15 cycles] it was lda temp; ora bittable,x; sta temp; [9 cycles] when incrementing the x coordinate, I simply did a inx; txa; and #07; beq writecache, this would write the cache back, recalculate the bitmap vector, and fetch a new value. I noticed most other line plotters recalculated the bitmap address ptr every pixel. Apologies for the 6502 code. BTW, the cache was a zero page location. ) >> And I wouldn't want 100% of my CPU being eaten up to copy data, > >That's true; people seem amazed when the CPU does something faster than the >blitter. "Why not have the CPU do this?", they ask. They are missing the >big picture. Yep. I love the Amiga's DMA philosophy, even the hardware multitasked. I think Polled I/O should go the way 8bit machines. >-- >Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" > {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy > "This is my mistake. Let me make it good." -R.E.M. -- / INET:rjc@gnu.ai.mit.edu * // The opinions expressed here do not \ | INET:r_cromwe@upr2.clu.net | \X/ in any way reflect the views of my self.| \ UUCP:uunet!tnc!m0023 * /