To add to this excelent answer, one thing that made me really understand and realize quite a lot about how do CPUs actually work, and why is most of the stuff the way it is, was playing through the amazing “Turing Complete” puzzle game.
The premise is simple - you start with basic AND/OR/NOT gates, and slowly build up stuff. You make a NAND, and then can use your design. Then you make a counter, and can use that. The one bit memory. An adder. A multiplexer. All using the component designs you have already done before.
Eventually, you build up to ALU and RAM, until you end up with a working CPU. Later levels even add creating your instruction sets and assembly language, but I never really got far into that part.
It’s a great combination of being a puzzle game - you have clear goals, and everything is pretty approachable and very well paced. I had no idea how is memory done on the circuit level, but the game made me figure it out, or had hints when I got stuck.
And seeing a working CPU that you’ve designed from scratch is pretty cool, but most importantly - even though I’ve had courses on hardware, CPU architecture and the like on college, there’s a lot of stuff I kind of understood, but it never really clicked. This game has helped tremendously in that regard, and it was full of “aha moments” finally connecting a lot of what I know about low-level computing.
I’m not even into puzzle games that much, but this was just a joy to play. It was so fun I sat through it in one session, up until I got to a complete CPU. I very highly recommend it to anyone.
To add to this excelent answer, one thing that made me really understand and realize quite a lot about how do CPUs actually work, and why is most of the stuff the way it is, was playing through the amazing “Turing Complete” puzzle game.
The premise is simple - you start with basic AND/OR/NOT gates, and slowly build up stuff. You make a NAND, and then can use your design. Then you make a counter, and can use that. The one bit memory. An adder. A multiplexer. All using the component designs you have already done before.
Eventually, you build up to ALU and RAM, until you end up with a working CPU. Later levels even add creating your instruction sets and assembly language, but I never really got far into that part.
It’s a great combination of being a puzzle game - you have clear goals, and everything is pretty approachable and very well paced. I had no idea how is memory done on the circuit level, but the game made me figure it out, or had hints when I got stuck.
And seeing a working CPU that you’ve designed from scratch is pretty cool, but most importantly - even though I’ve had courses on hardware, CPU architecture and the like on college, there’s a lot of stuff I kind of understood, but it never really clicked. This game has helped tremendously in that regard, and it was full of “aha moments” finally connecting a lot of what I know about low-level computing.
I’m not even into puzzle games that much, but this was just a joy to play. It was so fun I sat through it in one session, up until I got to a complete CPU. I very highly recommend it to anyone.