Archive for February, 2009

Project Utopium Continued

Drudgery continues as I try to complete the Utopium instruction set. Current progress:


So some 38 instructions to go. The speed has now dropped to 26MIPS and the gate count is now up to 17000 (woot! sigh).I did something stupid in spreading the instruction data to the different units (instruction length decoder, data memory controller and ALU …), instead of having a single block decoding the instruction and controling them all, as now I have the same decode logic repeated in 3 places. This isn’t a huge overhead but but it does mean that I end up writing a lot more code. Just waiting till I complete the instruction set before I start inserting the half buffers. Still to come are the stack operations (push, pop, call and ret). The rest is external so that can wait.

Project Utopium

For just over two weeks now I have been designing an asynchronous processor. The working name is “Utopium” (a play on “Lutonium“). It’s an 8051 Currently I am completing the instruction set.

There is a nice instruction set table I am using to mark which instructions it can currently execute. Everything highlighted in pink is done. This was the state on the 6th of February:


This was the state on the 11th of February:


And finally this is now (13th February):


The easy common instructions are done, so that just leaves the reather nasty ones which will be like pushing a pea up a mountain using my nose. So far I learned two things:

  1. The 8 bit micros were designed by either a higher power which I cannot hope to comprehend, or they are a result of top secret illegal government experiments involving LSD and computer engineers.
  2. I should have used the highlighter with most ink.

So far it is 13,948 gates but that should hopefuly go down a bit once I do slightley more intelligent caches although it will also go up once I implement all the instructions. And the performance is a fantastic 30 MIPS which will go up quite a bit once I add the half bufffers.