My rating: 5 of 5 stars
An outstanding follow-up to Computer Organization and Design, Computer Architecture: A Quantitative Approach is exactly what it says on the tin: A Quantitative Approach to Computer Architecture. Shocking, I know.
I found Chapter One to be fairly uninteresting, the description of memory models in Chapter 2 and advanced pipelining concepts in Chapter 3 (particularly the discussion of Tomasulo’s Algorithm) enlightening, but Chapter 4 is where the book really heats up. It starts light with vector and SIMD approaches before discussing GPU Architecture. If you’ve ever been mystified by how the graphics card does its job and whether your problem maps to a GPU Compute approach, read Chapter Four of this book.
Chapter 5’s discussion of Thread-Level Parallelism was interesting, but not as riveting as Chapter 4, but Chapter 6 picks up again with a discussion of Warehouse Scale Computers. I didn’t know that I’d care about how WSCs work, the concerns associated with them, and, well, the sheer technological wonders that they actually are, akin to a power plant or water treatment facility! Even if you read nothing else in the book, Chapter 6 is worth a read all on its own.
In addition to Appendices A, B, and C, which are included in the hardcopy, there are also online appendices D through L. As of this writing, I’m still working through Appendix F: Interconnection Networks, because the online appendices somehow don’t count as part of the book in my mind, probably because they comprise more pages among them than the whole hardcopy textbook, including the references and indices.
All in all, Computer Architecture: A Quantitative Approach is a five-star book, appropriate for anyone who wants the gritty details of how hardware does its job, provided that the prospective reader started with this book’s younger sibling, Computer Organization and Design, by the same authors.