Best Books for Intro to Computer Architecture
If you’re interested in the architecture of computers and how CPU’s, RAM etc. are built from logic gates, then here is my selection of some good books to read. Not only do they explain the fundamental hardware needed, they go on to explain assembly language, operating systems etc.
But How Do It Know?
by J Clark Scott
This is a great book that explains how computers are built, from NAND gates up. Each chapter goes through how a particular component is built, and these components are connected together in further chapters to create a full computer. No technical background is required, and it really does explain things well. Some of the topics aren’t covered in too much depth but the range is excellent.
In addition to the book, the website has some demos (including one in Excel!). There is also a good video on Youtube that has an overview of the theoretical CPU, and there’s even a Udemy course that explains it in more detail.
Code: The Hidden Language of Computer Hardware and Software
by Charles Petzold
This is another excellent book that explains the basics of CPU’s, including the binary system etc. This probably goes into a bit more detail than the first book but doesn’t cover quite as many topics.
The Elements of Computing Systems: Building a Modern Computer from First Principles
by Noam Nisan and Shimon Schocken
This book is a bit more hands-on, with excercises and project work. The accompanying Nand to Tetris website has the project materials and software tools necessary for building this general-purpose computer system from the ground up. There is also a free Coursera course available with videos.
The first six chapters of the book go through hardware projects (using a language to define the hardware). This is broadly similar content to the first two books. The last six chapters are writing the accompanying software.
This is definitely more in depth than the first two books, and definitely worth looking at for more hands-on learning. It may be wise to read one of the first two books before progressing to this one.
Computer Organization and Design: The Hardware/Software Interface
by David A. Patterson and John L. Hennessy
This is a classic book in the Computer Science field and is very lengthy and detailed. It’s quite academic (its required reading on some Comp Sci undergraduate courses) but its got lots of great information in it.
These are my picks for great books on the fundamentals of computer architecture but let me know in the comments if you have any more!