040 Accelerator
13-Jul-91 00:01:56
Sb: #27756-040 Accelerator
Fm: Trevor Laib 72310,2647
To: John Pendergrass 76246,676
–jp–seattle–
I puzzled over the 'how-to-do' part quite a lot last year. Can't
remember all the details anymore, but I seem to recall that the only real
nastiness involved is in preventing RAM contention. You hafta make a
globally acessable table showing what memory is locked out, and set it up
so that only one CPU can access it at once. Memory is addressed linearly,
but each CPU has a mem bank reserved for its use: looks like this–
MASTER CPU SLAVE #1 SLAVE #2 SLAVE #3 …..
0-16M 16-20M 20-24M 24-28M …..
..not that all of the memory need be installed, but less than 1Meg per CPU
would be a waste. The master would need a few Meg extra. When the 680×0
in slave #1 makes a read to its own memory bank, the higher bits of the
address indicate a 'local' read and the data is gotten from the slave's
internal bus. No bus contention, therefore. External reads have different
bits in the high end, and now the chip has to request bus access. The OS
needs to be tweaked to get progs to use RAM inside their own bank as much
as possible. Every read/write to other mem banks including the master bank
slows the system down.
Another version I came up with relied on a 'phasic' bus. This bizarre
creature required a 114.04MHz bus & 16 680×0's. Could never get any of my
E/E friends to buy into the idea as it had horrible switching problems, but
from the OS standpoint, it looked feasible. Would've appeared to the user
to be 16 Amiga's in one box, all thinking that they were independant
machines, despite having overlapping memory and shared hardware. Nifty
stuff, but way too weird. Each 680×0 would THINK that it was the master
and all the others were slave chips…
No, it can be done, but would it sell in Topeka?
————————————————————TL———-