Computer Organization and Design (4th ed)

David Patterson & John Hennessy

Published by

Morgan Kaufmann





Reviewed by

Patrick Hill CEng MBCS CITP


10 out of 10

As software architects, designers and developers, we are used to working with increasing layers of abstraction that separate us from the hardware. The authors of this book argue that, these abstractions notwithstanding, computer professionals should have an awareness of how the hardware works.

This is particularly important, they suggest, with the recent switch to multicore processors, which fundamentally affects the way software should be structured in order to obtain full benefit from the hardware.

This book, now in its fourth edition, is a comprehensive introduction to modern computer architecture and is aimed at a variety of audiences with backgrounds in either hardware or software.

This is a large book, having over 700 pages, plus appendices. In addition, supplementary chapters are contained on the accompanying CD. A table in the preface suggests reading plans by indicating the emphasis of each major section of the book, in terms of software or hardware focus and context. The book is intended to serve both as an introductory text as well as a reference.

The content is detailed and wide-ranging. Using the MIPS processor as an example, early chapters discuss the fundamental concepts of representing and manipulating data and instructions within the computer. This discussion introduces assembly language concepts as well as describing how high-level languages, such as C and Java, are translated into machine-level instructions.

The book builds upon these concepts to introduce topics relating to instructions set design and processor datapath design including pipelining and parallelism. Further chapters describe the design of memory systems, I/O and data storage. There are also interesting discussions around the implementation of virtual machines and on the design of graphics processors contrasted with general-purpose CPUs.

The layout of the book is striking and engaging. Terms that are introduced are explained further in the margins. Each chapter contains brief ‘Big Picture’ sections, which help to put the detail into a larger context, and a section overviewing common misconceptions and mistakes relating to the material of that chapter. In-line ‘Check Yourself’ sections ask quick questions that aim to reinforce understanding.

Each chapter also has extensive exercises associated with it, although answers are not provided. In addition, while for pedagogic reasons, the descriptive content is sometimes simplified and hypothetical, there are sections that describe how concepts are realised in modern production hardware.

While there is a great deal of technical content, concepts are lucidly described and always given meaningful context. I found this book to be an interesting read and certainly a book I'd plan to read again.

Further information: Morgan Kaufmann

May 2012