Amiga.org
Amiga computer related discussion => Amiga Hardware Issues and discussion => Topic started by: Generale on March 17, 2005, 12:06:06 PM
-
Okay, heres an idea I came up with a while ago to add extra features to a c64's cpu. Never tried it though. I don't see why the same idea couldn't apply to 68k.
For starters, the main difference is that the newer CPUs have more abilities, most notably the 32 bit databus, the mmu and the fpu.
Considering the a500 is a 16 bit databus and the 68k has it's 32 bit bus multiplexed internally anyway, the alterations that need to be done would be the extra opcodes (relatively easy), the FPU (moderate) and the MMU (depending on the desired CPU result...very hard)
For a hardware only solution without software patches, some odd kludges can be done...I believe.
Opcodes: They all go via ROMs. The output mostly mirroring the input, except for the new opcodes.
For these new opcodes, a different opcode is sent to the CPU such as a simple add for example, utilizing the memory accesses for the new opcode.
This saves extra wiring for the addresslines. (a buffer would be placed on the datalines to 'mute' the cpu) The PIC, FPGA or whatever intervenes as a result of databit(s) in the ROM allocated to the control of the 'custom' chip. This could do something such as say "grab the data from the bus on clock tick a, mess with the bits, then send them off on clock tick b ( when the cpu is going to do the write).
Anyway, that's the beginning of my idea. Please feel free to find faults as I'm sure it's a terrible idea anyway.
-
A Sort of hardware emulator for new instructions?
-
Cool idea, but it seems it would be a pain to implement, particularly if you were trying to make it 030 compatible or some other advanced member of the 68K family. If you don't try to make it compatible with one of those you won't have any software that's designed to run on it.
Also, it seems that the performance gain would be rather small. You're still limited to about 1 MIP or so. It seems it would be better to either implement some 68k compatible chip in FPGA or work on some kind of coldfire accelerator rather than trying to hack on extra instructions to the 68000, but perhaps I'm being overly negative about this.
-
Yeah, it's a cool idea... but what's the point in adding instructions to the 68k?
-
do you mean like this? (http://main.aminet.net/util/misc/Run68017.lzh)
-
SamuraiCrow wrote:
do you mean like this? (http://main.aminet.net/util/misc/Run68017.lzh)
So that is one way of adding a coldfire accelerator to an Amiga, by using exception traps? The other being dynamic recompilation I assume?
-
What's the point indeed... I never said that it was a totally practical idea :-)
The extra opcodes are basically just the ones to do with mmu and mathematical functions. And yes they would be true to 68k.
As for the performance increase, not much. But it would add compatibility, but probably no more than a simple interrupt handler patch.
Are there fpgas with enough uhh gate thingies to do a 68k? I know there's enough to do a 65816 (re: c= one which i'd kill to get)
As for the dynamic recompilation etc, none needed. What I came up with is a brutal hack. And yes it probably would be a lot easier to use another CPU and plonk it on a board and just write a simple CPU emulator for it.
Oh yeah. The pseudo FPU would be a simple extension to the idea. And as for MMUs, they give me a headache, but easy enough to emulate.
I know it's impossible, but I wish I could use a dragonball EZ or VZ for the CPU.
That's right, I dl'ed the file up there. I'd better have a look.
-
Generale : I can´t help you on this as I haven´t got any knowledge about this subject, but I just want to show my respect to you for trying to do this :-)
-
I'm actually tempted to attack one of my surplus c=64s to test the basics of my idea.
The C64 because I have 5, or something like that of them. Now to get back to trying to figure out how to get my cd-rom to work on my a500.
-
Hacking in an MMU would be a real pains since you would have to mangle the 68K address lines. Of course, on a Classic Amiga the MMU is arguably much less useful than the FPU.
Modern FPGAs have gotten quite large, of course the more gates they have the more expensive they are. Still, the original 68K was a relatively simple chip on the grand scale of things and a lot of what makes the later members of the 68K family so complex are more performance related than feature related (particularly on the superscalar 060).
EDIT:
I don't see why you couldn't use one of the Dragonball chips. All of the extra registers are mapped high in RAM (0xFFFC0000 and above) so only programs that tried to access ROM with an FF in the high bite of the address would have a problem (no idea if this is common). Of course even the 66MHz can only achieve 10 MIPS, about the same as a 68020 clocked at half that speed.
-
hmm. I might leave the cpu for now. I've always wanted to play with FPGAs. Only problem is that the programming hardware and the fpgas are quite costly.What I don't get is why the programming hardware is so complex when they are meant to be field programmable.
I brought up the dragonball because it'd have to be my fave 68k cpu. And then you have the built in hardware used for the LCD, which could possibly be used for other things. And the software controllable clock speed, to name a few features. Theres a lot to be said for a 'computer on a chip' that still uses external memory. anyway, I'm dreaming. Even the soldering would be way too hard. the pin spacing is like 0.0mm on those things. So tiny!!!
-
Programming hardware for FPGAs is quite simple actually. Generally they're designed to read the configuration from a ROM or SRAM, though I'm pretty sure you can manually program them via a JTAG interface. There are a few reasons the dev boards tend to be expensive, but a lot of it is that companies that are designing products around these chips can afford to spend that much.
Someone came up with a clever and easy way to solder TSOP and QFP packages with a standard soldering iron. The original page seems to be gone, but archive.org to the rescue: http://web.archive.org/web/20020806173831/http://warmcat.com/milksop/soldering.html
-
Generale wrote:
hmm. I might leave the cpu for now. I've always wanted to play with FPGAs. Only problem is that the programming hardware and the fpgas are quite costly.What I don't get is why the programming hardware is so complex when they are meant to be field programmable.
If you are interested in FPGAs I think fpga4fun (http://www.fpga4fun.com) is a good reference. I think they also have some less expensive boards there.
Staf.
-
Ooh. So much more information!
I've been meaning to have a better look at VHDL.
It might be overkill, but I have the trial of protel DXP, which I believe can also do fpga simulation among about a billion other things.
If anyone else wants to play with it and is on dialup like myself, Protel will send you the trial CD for free. the only limitation is time. If you buy the full version, that means you are very rich. And you are getting sleeepy @_@ You feeeel the need to give me moooneeeeey....
That reminds me. Circuitmaker 2000 is great for people that want to learn about circuitry etc. But not too hot at other things. They dnt have a fantastic range of chips, but its fun to play with.