Path: utzoo!mnetor!uunet!cbmvax!daveh From: daveh@cbmvax.UUCP (Dave Haynie) Newsgroups: comp.sys.amiga Subject: Re: Re: 68000 speed up kits Message-ID: <3330@cbmvax.UUCP> Date: 16 Feb 88 22:42:15 GMT References: <41880@sun.uucp> Organization: Commodore Technology, West Chester, PA Lines: 75 > In article <32328R38@PSUVM> R38@PSUVM.BITNET (aka Marc Rifkin) writes: >> 2. Memory - the '20 is 32-bit; the Amiga is physically (by nature of >> its PCB) 16 bit (in terms of its busses), so the '20 needs support >> circuitry to access such memory, and can only take advantage of >> its speed in 32-bit memory (equals $$). > Technically, this is not true. You see the 68020 has this line that > tells it what the Bus size is, and it modifies the way it fetches data > internally. That's basically correct. For every memory cycle, the 68020 asserts two lines, SIZ0 and SIZ1, which together tell you what size port the '020 is looking for. And every port (eg, chunk of memory, mapped I/O) responds to such addressing with a code on another two lines, /DSACK0 and /DTACK1, which tell the 68020 how large the actual item being addressed is. This lets the 68020 figure out that it needs to run two memory cycles for a 32 bit cycle if it's talking to a 16 bit port. > The resultant bus accesses look a lot like 68000 bus accesses. But not completely. > Because the execution time for many of the instructions is one clock faster > on the '020 you should see a slight increase in speed when the '020 is > running at the identical clock rate of the '000. Ideally. This won't work for most of the Amiga system, since the typical expansion card is either driven synchronously by the system supplied clocks, in which case you'll always run 4 clocks, or it's got some on-card syncing to do (like a memory card that does hidden refresh) and normally imposes a 4 clock cycle to keep itself in sync. It's possible for a card to assert a very early /DTACK, but you still could run into trouble on the expansion bus as data buffers aren't enabled until S4 (if anyone out there doesn't understand this, don't worry about it). > The cache helps too but not as much as one would hope. Well, it is only a rather small instruction cache. If you've got subroutines that are pretty small, or programs with lots of tight loops, the cache may help tremendously. A memory test I use here runs maybe 6x-10x faster on an '020 board with the cache enabled. Some other things may not change much at all. > If you double the width of the memory bus you double it's bandwidth and thus > help performance considerably. The only reason I can think of that some > vendors board would run slower than a 68000 out of 16 bit memory, is that > they have broken wait state hardware. I'd pretty much agree with that. The one catch here is that the 68020 always does 32 bit prefetches, even if it's looking for something that's only 16 bits wide (as these are prefetches, the CPU doesn't yet know the width it'll be looking for). At least with the cache on, I've never found a case in which our A2620 board runs slower than or even as slow as the 68000, even without 32 bit wide memory. > Anyway, it takes no extra hardware. Well, interfacing the 68020 to a 68000 bus is still non-trivial, and right where you'd expect design differences to show up. The 68020 and 68000 do byte-wide addressing differently, so you have to create 68000 compatible /UDS and /LDS signals. The 68020 doesn't have built-in support for the 6800/6502 compatible peripheral interface as in the 68000, so that must be emulated too. The 68020 has bus clocks that come out at different times than the 68000, so you've got to correct for this too in order to ensure compatibility. And you probably want to run your 68020 faster, at least in an Amiga system, than the 68000, so that introduces another level of complexity. > --Chuck McManis > uucp: {anywhere}!sun!cmcmanis BIX: cmcmanis ARPAnet: cmcmanis@sun.com > These opinions are my own and no one elses, but you knew that didn't you. -- Dave Haynie "The B2000 Guy" Commodore-Amiga "The Crew That Never Rests" {ihnp4|uunet|rutgers}!cbmvax!daveh PLINK: D-DAVE H BIX: hazy "I can't relax, 'cause I'm a Boinger!"