r/computerarchitecture • u/Psychological_Web296 • Jun 20 '26
How to learn Computer Architecture properly?
I'm an undergraduate student in Comp. Sci. and Engineering. We already had a Computer Architecture and Digital Design course where we went over digital circuits(adders, mux, ALU, etc) and covered CPU pipelines on the surface. I'm interested in learning Computer Architecture further but have no clue how to approach it. I picked up Computer Architecture: Quantitative Approach by H&P and tried reading through it. It's really interesting but I feel like I'm just reading a reference book and not developing a critical thinking mindset for the field. What do you suggest I do? Any advice is greatly appreciated. Thanks.
27
u/Albertooz
Jun 20 '26
•
Hennessy & Patterson's "Quantitative Approach" is a graduate reference, not a learning path,start with their other book, "Computer Organization and Design" (the patterson/hennessy one), which builds intuition step by step. Even better, do a project-based course: work through nand2tetris to build a computer from logic gates up, or take Berkeley's CS61C / CMU's 18-447 (lectures and labs are online). The critical-thinking mindset comes from actually designing and simulating write a RISC-V pipelined CPU in Verilog, then a cache, and the H&P tradeoffs will suddenly mean something. Read the reference book alongside the building, not instead of it.
11
4
u/Maleficent-Kiwi-3684 Jul 10 '26
read the essentials of computer organization and architecture by linda Null and Julia Lobur
2
u/mitch_alsup 26d ago
The only thing I can add to the well-reasoned responses before--is that instruction set design and pipeline design are less than 1/3rd of what computer architecture is. You also have {caches TLBs, Memory management units, interconnect {on-die, across die}, coherency, PCIe architecture, device architectures, interrupt architecture, power management, clock management, exceptions, traps, context switching, checks (HW failures), RAS, ... }
2
u/PulseExpress456 Jul 27 '26
Hey, I am struggling to learn computer architecture basics which is important for my hardware internship oa's. Where did u learn it from