Ask HN: Good books to learn more about computer architecture?
Hey all,
I was wondering if anyone could suggest a good book about computer architecture. I program small-scale stuff on my own, but never had to learn any of the details about what C++ actually does (which interviewers seem to love asking) or what's going on past the programming part. If you want to get into architecture in its own right, Hennessy/Patterson. But I think a far better book on the subject for programmers is "Computer Systems: A Programmer's Perspective." This is a textbook out of Carnegie Mellon that I was exposed to in grad school. It goes into all kinds of details of processor architecture, memory, I/O, assembly programming, etc. while staying focused on its audience of a systems programmer in C. It's wonderful. http://www.amazon.com/Computer-Systems-Programmers-Perspecti... Corresponding Lectures: http://www.cs.cmu.edu/~213/schedule.html A little known gem: The Elements of Computing Systems http://www.amazon.com/Elements-Computing-Systems-Building-Pr... This book takes you from logic gates to writing your own (extremely simple) virtual machine, programming language, etc. It's a bit fast paced and project based, but it'll run you through a very high level overview of the whole gamut. John Paul Shen's _Modern Processor Design_ is my current favorite. It covers the design of recent (and also some historic) processor architectures, including pipelining, cache and memory systems, superscalar, and so on. Some concrete examples are given (e.g., PowerPC, x86). Looks like you are asking two questions. "How does C++ get mapped onto real machines (and operating systems)?" and "How do machines really work?". You might want to look at Yale Patt's book which begins from the bottom (gates and assembly language) and works up. http://www.amazon.com/s?ie=UTF8&rh=i%3Astripbooks%2Cp_27... I may be being pedantic, but are you wanting to learn about systems architecture or learn about the internals of C++? Because those are two completely separate questions. You may want to read "CODE" by Charles Petzold http://www.amazon.com/Code-Language-Computer-Hardware-Softwa..., it's a "general interest non-fiction" book with lots of historical stuff, e.g. coverage of the 8080 and 6500. I can't find it now, but it reminds me of a MIT Press book for the educated layman that covered electronics, the various generations of semi-conductors (and how at that period TI was the only company to negotiate all of them, this was written at the dawn of the LSI or VLSI era), the critical details of wafer yield and resultant profitability, etc. Perhaps not the right book for the original poster, but for many people it could be very useful. good book about the memory:
http://www.amazon.com/Memory-Programming-Concept-Frantisek-F...