[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: I am working on a GS accelerator, can you help?



Sheldon Simms wrote in message ...
>In article <ericlob-1212982353420001@ts001d34.ric-wa.concentric.net>,
>ericlob@cris.com (ericlob) wrote:
>
>> As long as we're pipe-dreaming, I'd also drop the 65816 and go with some
>> cheap but speedy RISC chip and write a 65816 emulator for it. I'm not
sure
>> how much faster it would be (if any) than a 20MHz '816 but any "native"
>> apps written for it would be much faster.
>
>And put a VGA controller on it, so that all video access can be done at
>top speed - and you get better graphics to boot... at which point I ask,
>why not just go buy an iMac and run Bernie?
>
>--
>W. Sheldon Simms III   |   2000 is *still* the 20th century
>sheldon@atlcom.net     |

I would be interested in some feedback (but only constructive feedback
thanks) on this point.

I have been contemplating a GS upgrade = accelerator come VGA come you name
it. I have even purchased a number of the parts required. (I have been
sticking to TQFP/PQFP & PLCC packages since they're much easier (for me) to
prototype with than the BGA parts.

This is the concept so far...

A 65816 running at 20MHz (If I can push it to 22.5 that'll be better)

Cache (as much as possible and affordable) probably single-way write back.

An FPGA (& 16bit SRAM) to remap 24 bit addresses to 32 bit addresses with
the top 15/16 bits being derived from the process id and the 8 bit bank
information. This allows multiple processes to be cuncurrently running (time
switched, of course) each with their own bank 0 (stack) etc. It also breaks
the 16Mb addressing barrier with the 65816. The general idea is that several
instances of GS/OS (or P8) could be running concurrently and that they be
switched without any confilcts whatsoever. I expect that a setup like the
lower 8Mb be instance (application) specific, The next 4 - 6 Mb be common
(for data transfers between instances and multiprocess switching routines &
memory allocation routines) and the $Ex/Fx banks be as they are. Special
care needas to be taken to map banks $00/$01 properly for I/O and display
compatibility. I suspect that say bank $E2 would be used to program the SRAM
with the top 16 bits of the address for each bank/process combination (ie
8bit process + 7bit bank = 16 bit {somewhere in bank $E2) and the contents
of that location gives the top 16-bits of a 32-bit address)

2 x 72-pin SIMM sockets for upto 64Mb of EDO DRAM.

A VGA controller => Chips 65550 2Mbit with multimedia (bit blitter) engine
{I have these devices} Ultimately to have several windows on the display
each with a different instance of a program displayed (eg AW5 & GS/OS
displayed at the same time in seperate windows...)

A Coldfire MCF5307 32-bit RISC/pipeline CPU with 68000 like instruction set.
Runs 70MIPS at 90MHz with 45MHz local bus, 8Kb 4 way set associative,
combined Instruction/Data cache (divide by two for GS bus...) (I have these
devices).

The question is this...

I would like an IDE conroller.

If I work around a Super I/O type device I can have 1 IDE device, A PC type
Floppy controller (360/720/1.4/2.8), two UARTS (there are two one the
coldfire, so this is inconsequential, although one can be set to MIDI baud
rates or be used for a PS/2 mouse port) AND an ECP/EPP style PARALLEL PORT.
This is useful for connection to PC peripherals like printers/scanners/ZIPs
etc. A 1.4 FDD wouldn't hurt...

The problem is that there is only a single IDE port with this option, for a
single HDD.

The alternative is to use a PCI IDE controller.

I have some QSpan devices (Tundra semiconductors) which will bridge the
Colfire local bus with the PCI bus. The VGA chip (65550) can be used in
either local bus or PCI mode, although I'm favouring the later. With some
additional logic the coldfire can control the PCI bus. The PCI IDE allows
for two IDE channels with two IDE devices on each, so you could have
multiple HDDs _AND_ an IDE CDROM  or CD/R [!]. I notice that there's been
considerable traffic on the newsgroup about CD burners and this would allow
for that contingency. There would be no ability to have a floppy or parallel
port. However, there may be the option of having a PCI expansion port (_NO_
it would not be a PCI slot - custom hardware only) which could add
additional devices later such as a MIDI controller/synth.

If you have something useful to add (that might help me make up my mind
which option to take) please feel free to comment or (better) email me.

At this point in time I have the literature and most parts, but the Super
I/Os are becoming very old and won't be available much longer... (so if
that's what you want you'd better speak up quick...)

And no, I don't like running bernie on my powerPC.