Forums - Open Redstone Engineers
The Return Of QCPU - Printable Version

+- Forums - Open Redstone Engineers (https://forum.openredstone.org)
+-- Forum: ORE General (https://forum.openredstone.org/forum-39.html)
+--- Forum: Projects & Inventions (https://forum.openredstone.org/forum-19.html)
+---- Forum: Completed Projects (https://forum.openredstone.org/forum-21.html)
+---- Thread: The Return Of QCPU (/thread-15748.html)



The Return Of QCPU - QSmally - 04-26-2020

Hey people, I have kind-of completed my CPU (after three years)!

I began working on this unit about three years ago. It was eventually working with simple programs like the Fibonacci sequence, counting, all that fun stuff. I wasn't satisfied with the wiring, so I kept rebuilding it until I was demotivated which was about a year ago. I, then, quit for about a year and came back in January of 2020. I had picked up enough motivation to come and finish what I've started.

I had replanned everything and combined every singular thing to create this.

[attachment=1085]

Information About The CPU:
- 8-bit data length.
- 8-bit instruction length.
- 4 stage pipeline - Fetch, decode, execute, (writeback).
- 32 bytes of iCache/program memory. (Can be reprogrammed through software.)
- 32 bytes of RAM/data memory. (CPU will be stalled when loading, not when the byte is in the cache.)
- 8-byte cache for the data memory.
- I/O ports, addressable 0-7.
- 7 bytes of registers + 1 zero register (with pointer support. Can load a register for an address to a port, memory, jump, etc - anything addressable excluding own regs).
- Multi-function ALU, but only increment, right shift, addition, subtraction and XOR as OPCodes.
- 8 * 32 bytes of storage. (Not yet built, although the CPU is finished. Data memory can be stored there, and storage can be loaded to data and program memory.)

I haven't yet updated the Instruction Set from this sheet, but I will in the next 48 - Instruction Set

This CPU functions on an 8 tick clock, but stalls whenever the storage or data memory is accessed. Jumps are not predicted and the decoders are just disabled when jumping.

[attachment=1086]

I have already created the following programs:
- Counting. ("Program counter being simulated" - Koy)
- Fibonacci Sequence.
- TypeWriter. (Keyboard -> CPU (store to/manage memory) -> screen)
- Sorting Algorithm. (First ever I've heard. I'll be making a post about this)

I'm planning on creating a multiplication program and a 'file system' of some sort that interacts with I/O and returns a file stream. Yet to plan the latter. :]

Feel free to visit my plot and view it! You can also write some programs for it as well. I suggest making a schematic of it and pasting it somewhere in a singleplayer world to mess around with it. I am updating it regularly, however, because I still want to add the storage unit and some general-purpose I/O modules.

Finally, I think it's time to say thanks. I'm not even sure where to start, because this is basically my first actual working & big CPU on the server. All the others - like poor 'ARM' - were kinda buggy in a way. So, I'm happy and excited that I finally finished this. I will be making yet another video on this CPU somewhere in the future. Anyways, I just want to say thank you to all the ORE community. Especially the people that checked out the progress when I was working on it!

If you have any questions about the CPU, feel free to ask me as a comment, on Discord (QSmally#3594) or in-game.


RE: The Return Of QCPU - QSmally - 04-26-2020

I forgot to add; 'QCPU' is not its official name. I'm not sure how to call it, so I went with my favourite letter (which is quite obvious).


RE: The Return Of QCPU - Nickster258 - 04-29-2020

I am just glad to see people working on CPUs again. This is great!


RE: The Return Of QCPU - Trecar - 04-29-2020

Nice job m8! Guess I gotta give a sorting algo a shot too Big Grin
Also very nice documentaion and info post of your CPU. Couldn't have written the last part better myself xD

On another note, yeah, the timespan in which CPU's are developed are getting quite lengthy on ORE lately... Chasing ticks, optimizing to the extreme. I am pretty impressed by all the projects being taken on and especially by those that actually (sort of) complete. ORE is kind of one of these rare, beautiful occasions were insanity and productivity work hand in hand instead of counteracting each other.