Hacker News new | ask | show | jobs
by ronald_raygun 3145 days ago
I had a very similar experience when I took a processor design class in college. At first in the class we started learning the binary codes for each instruction, which bits were the registers, instruction bits etc. It seemed so pointless at the time. When we finally got to the end and it clicked that those bits were physically turning on and off gates, it blew my mind.
1 comments

In my class, circa 2001, we were taught about an adder, then used cheap chips in a breadboard with wires and bulbs to show it, then used Logicworks to create a simple version in software. Rinse and repeat for other components, and the final project was to copy and paste those components into a larger logicworks project and hook them up together into a simple 4 bit CPU with a few dozen bytes of RAM. It could understand four instructions if I recall correctly, so very simple programs could run from that RAM.

I don't really remember how to do any of it anymore (but I have no doubt I could research it without much trouble) but it certainly was a good way to demystify a CPU, given you had fully simulated one at the gate level by the end.

My world was opened up when in my college Computer Architecture class I learned the relationship between microcode and an instruction set. It gave me confidence. The final in that class had a question on it where I had to apply the general principles I learned to draw a new conclusion--the first time I'd ever taken a test where the test itself actually taught me something I hadn't fully internalized or learned before. What a feeling--it was like magic.