Computer Architecture: Four Great Learning Resources
Great resources to go from the basics to advanced understanding of computer architectures
I mentioned in One Year On : Thank You! that I had plans to make ‘The Chip Letter’ more relevant and useful in its second year. One of those plans is to start sharing educational resources where I think those will be helpful for readers.
There is so much complexity in modern computers (and so much jargon) and a scarcity of materials that explain how they work in a relatively accessible way.
I’m always interested in new learning resources, so I was delighted to come across two great new(ish) resources that delve into the detail of modern computer architecture and design. Together they provide a fantastic introduction the key concepts in computer design - including logic design, hardware description languages, microarchitectures, GPUs and a lot more - and even build to the design of real RISC-V processors.
First, though, two of my standard recommendations as a starting point for understanding how computers work.
The first is ‘Code’ by Charles Petzold, now in its second edition.
From the Amazon review by Scott Hanselman:
For me, Code was a revelation. It was the first book about programming that spoke to me. It started with a story, and it built up, layer by layer, analogy by analogy, until I understood not just the Code, but the System.
I’ve had the first edition of ‘Code’ for a long time and it’s a great, highly readable, introduction to the basics of computer design. Highly recommended as a starting point.
Incidentally, Ptezold is also the author of The Annotated Turing: A Guided Tour Through Alan Turing’s Historic Paper on Computability and the Turing Machine. The book not only provides a, line by line, guide to Turing’s famous 1936 paper "On Computable Numbers, with an Application to the Entscheidungsproblem" it also provides wider background including on Turing himself.
NAND to Tetris
If you want something a little more ambitious in scope, and with more interactive materials then there is ‘NAND to Tetris’ by Noam Nisan and Shimon Schocken. From the accompanying website:
The site contains all the lectures, project materials and tools necessary for building a general-purpose computer system and a modern software hierarchy from the ground up.
Along with a book Elements of Computing Systems and website there are also a series of accompanying videos and a Coursera course.
After the break two great resources that provide even more detail on the practical design of modern computers. With over 50 hours of video and thousands of slides freely available, they provide a comprehensive learning resource on modern computer architectures. They are terrific if you want to go deeper on computer architectures.
The rest of this edition is for paid subscribers. If you value The Chip Letter,then please consider becoming a paid subscriber. You’ll get additional weekly content, learn more and help keep this newsletter going!