
Ask HN: Good books to learn more about computer architecture? - psycovic23
Hey all,<p>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.
======
timf
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...](http://www.amazon.com/Computer-Systems-Programmers-
Perspective-2nd/dp/0136108040/ref=dp_ob_title_bk)

~~~
alexgartrell
Corresponding Lectures: <http://www.cs.cmu.edu/~213/schedule.html>

------
UrLicht
A little known gem: The Elements of Computing Systems

[http://www.amazon.com/Elements-Computing-Systems-Building-
Pr...](http://www.amazon.com/Elements-Computing-Systems-Building-
Principles/dp/0262640686/ref=sr_1_4?ie=UTF8&s=books&qid=1272300761&sr=8-4)

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.

------
kabdib
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).

------
drallison
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...](http://www.amazon.com/s?ie=UTF8&rh=i%3Astripbooks%2Cp_27%3AYale%20Patt&field-
author=Yale%20Patt&page=1)

------
j_baker
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.

------
deppp
You may want to read "CODE" by Charles Petzold

~~~
hga
[http://www.amazon.com/Code-Language-Computer-Hardware-
Softwa...](http://www.amazon.com/Code-Language-Computer-Hardware-
Software/dp/0735611319/), 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.

------
paulbaumgart
[http://www.amazon.com/s/qid=1272228099/ref=sr_gnr_aps?search...](http://www.amazon.com/s/qid=1272228099/ref=sr_gnr_aps?search-
alias=books&field-keywords=hennessy%20and%20patterson)

------
azrealus
good book about the memory: [http://www.amazon.com/Memory-Programming-Concept-
Frantisek-F...](http://www.amazon.com/Memory-Programming-Concept-Frantisek-
Franek/dp/0521520436)

