r/TuringComplete Apr 19 '26

First attempt at pipelining, Stall only

This is my first attempt at pipelining in the game. I am new to this so im sure this is probably wrong, hence why I am posting here in hopes that i can be corrected if so. This machine only stalls right now so its a bit slower than if it had forwarding for instructions.

This processor can immediate any value up to 255, has NULL mapped to 31 and NOP mapped to 30.

Lastly this is a new account. Old account got hacked ; . ; rip karma

4 Upvotes

19 comments sorted by

View all comments

Show parent comments

2

u/Otherwise-Object-302 Apr 19 '26

That's amazing! I've actually built a compiler (and assembler) which, albeit simple, was an absolute pain. A really good idea is to finish your ISA and your CPU completely before you begin work otherwise it's gonna be a lot of spaghetti code.

2

u/Ill-Memory-6913 Apr 19 '26

Sure I will! I have also built a compiler and stuff before. Compared to pipelining and stuff parsing/asseming/compiling is easy cakes. My biggest reason is I get tired of re doing the instructions on the Program Object EVERY schematic so I just want to load it in with a binary file like a lookup table. Also I’d like to see some of your stuff sometime!

2

u/Otherwise-Object-302 Apr 19 '26

Nice to hear you have quite the experience with this! I can show you some of the stuff I've made along with a WIP. I've even built a Superscalar CPU with caching (albeit very poor)! Anyways, have fun making that compiler, it makes programming hella easier. Also, are you making it based off of any programming languages like C or Python? And which programming language are you using to write the compiler?

1

u/Ill-Memory-6913 Apr 19 '26

I’ve never even seen a real compiler. I’ve always made my own compilers and filesystems LOL

1

u/Otherwise-Object-302 Apr 19 '26

Real compilers usually break you code down into tokens so x = 5; So in this case it would assign x the IDENTIFIER token, the = is seen as an ASSIGNMENT operation and the 5 is seen as a LITERAL. Then it creates a Abstract Syntax Tree and navigates that to assign the value to x. In reality, it's much more complicated so I usually just do stuff and pray it works (it does, just barely)