Well, we did it… we cracked 4MIPS on our TTL CPU.
I have to admit I’m both relieved and surprised. The key parts to achieving this was to decrease the latency for the instruction decode and also the flag register writing. The time to decode an instruction, perform a bit of math and then write to the flags was at around 270nS.
With the changes we made, the instruction decode had a radical reworking and the flag writing had some big changes as well, means we go this down to under 200nS.
Which means we are able to run the CPU Core at 4MIPS!
Which we’re both super pleased with.
However (you knew there was a “but” coming didn’t you?) the external display (text and RGB dot matrix) does sometimes “glitch” at 4MIPS, but at 2MIPs is rock solid.
It’s a good thing we added that “speed” switch flag which will let us swap between speeds.
Whilst the boards themselves needed no modifications, we did make a couple of mistakes and had to swap some OR gates for AND gates, thankfully the same pin outs, so we’re happy.
PJ5 CPU running at 4MIPS
The new instruction board includes a few new commands, things like storeimm which stores an immediate value to a location in memory (rather than a regular store which stores the value of a register to memory) and also more branch options, things like branch if greater, branch if less than and so on.
I’m not sure if this is moving us out of RISC into CISC territory, but we’re happy we have a good set of instructions and everything is one clock cycle.
So the next bits we need to work on are;
The New fast ROM board and it’s programmer (which has been ordered)
A new Clock Board, one with a clearer speed selection and also two speed settings.
A new back plane, basically we want to move the register read and write bus displays on the main bus board, we also want the instruction decode to be in hex rather than binary.
After that, we need to look at the display and make it brighter, possibly see if we can improve it’s speed.
Then we need to build some more code (other than our test code).
I’m working on a Mandelbrot generator, which is proving a challenge in 8 bit assembly. And I know Jon is keen to put Tetris on here.
The latter means we need joystick inputs and also sound, so there’s a couple more pieces of the puzzle to be created.
it’s take us nearly 18 months to get here, and it’s been an adventure with lots of ups and downs, but it’s so wonderful to see it finally working at a speed we never imagined and with zero mod wires.