The prerequisites for this book are courses in logic design with state machines, assembly language programming, and, eventually, data structures and basic operating systems. The book is intended for use in a one-semester, upper-division undergraduate course. Its two main themes are an overview of the major ideas and design philosophies of computer architecture and implementation, with an elaboration of their historical development, and the analytic modeling of computer performance.
Chapter 1 covers the von Neumann architecture and some of its precursors, including the work of Charles Babbage, John Atanasoff, Konrad Zuse, Howard Aiken, and J. Presper Eckert and John Mauchly, with useful details on the architecture of their computers.
Chapter 2 introduces analytical performance modeling, learning curves, and other evaluation techniques.
Chapter 3 describes issues in user instruction set design: lexical level, instruction set architecture, CISC and RISC architecture styles, static and dynamic instruction statistics, and arithmetic operations.
Chapter 4 refers to memory implementation: memory systems before processors, virtual memory, cache memory, and performance models for hierarchical memory.
Chapter 5 explains hardwired processors (state diagrams) and microprogrammed processors (microinstruction set architecture).
Chapter 6 describes pipeline processors: performance models, pipeline partitioning, pipeline delays, superscalar pipelines, and pipeline processor memory demand.
Chapter 7 covers input/output issues, including I/O system architecture, I/O device requirements, buses and controllers, serial communication (clock recovery and protocols), clock synchronization, and queueing theory.
Chapter 8 discusses extensions to the user instruction set architecture that support operating systems, virtual memory, caches, interrupt support, input/output, and multiprocessors. It also describes the MMX extensions to the Intel Pentium Pro.
The book ends with a useful index. The author provides many worked examples and more than 130 exercises. He also introduces a new vocabulary, and I recommend that readers have access to a computer dictionary.