Indeed. My CS degree program taught me Karnough maps and some other basics, and that was enough to build a simple microprocessor design myself (it sucked, I neglected to build a way to use immediate values in instructions so I had to build a hacky "set" instruction that just set a register to a 15 bit immediate)
But I mostly can't grok things like cache implementation, or branch prediction, or pipelines, or register renaming and out of order execution, or "store forwarding" and other necessary features.
The simulator programs I was using have instant/single cycle memory access, and the cpu had single cycle execution of all instructions so it wasn't really necessary, but still.
But I mostly can't grok things like cache implementation, or branch prediction, or pipelines, or register renaming and out of order execution, or "store forwarding" and other necessary features.
The simulator programs I was using have instant/single cycle memory access, and the cpu had single cycle execution of all instructions so it wasn't really necessary, but still.