01 / Reading Guide
Reading Guide
Citation
Shen, J. P., & Lipasti, M. H. (2013). Modern Processor Design: Fundamentals of Superscalar Processors. Waveland Press.
Chapter Summary
The book has eleven chapters, about 640 pages in the Waveland edition, and a progression that is easy to see from the contents: a review of processor design and pipelining, the memory and I/O systems around the processor, the core superscalar material, two detailed case studies with a survey of commercial designs, and then advanced techniques and multithreading. Each chapter ends with homework problems.
Chapter 1: Processor Design
The opening chapter covers the evolution of microprocessors, instruction set processor design, principles of processor performance and instruction-level parallel processing. It frames the rest of the book around the idea of executing several instructions per cycle.
Chapter 2: Pipelined Processors
This chapter treats pipelining fundamentals, the design of pipelined processors and deeply pipelined processors. It is the base on which the superscalar chapters build.
Chapter 3: Memory and I/O Systems
Chapter 3 starts from a system overview and the key concepts of latency and bandwidth, then covers the memory hierarchy, virtual memory systems, how the hierarchy is implemented, and input/output systems.
Chapter 4: Superscalar Organization
The chapter begins with the limitations of scalar pipelines, then describes the move from scalar to superscalar pipelines and gives an overview of a superscalar pipeline.
Chapter 5: Superscalar Techniques
The technical centre of the book is organised by kind of flow: instruction flow techniques, register data flow techniques and memory data flow techniques.
Chapters 6–7: The PowerPC 620; Intel's P6 Microarchitecture
Two case studies. Chapter 6 follows the PowerPC 620 through an experimental framework, instruction fetching, dispatching, execution and completion, with observations and a bridge to the IBM POWER3 and POWER4. Chapter 7 describes the P6 pipeline, its in-order front end, out-of-order core, retirement and memory subsystem.
Chapter 8: Survey of Superscalar Processors
A survey of the development of superscalar processors, a classification of recent designs, individual processor descriptions and the verification of superscalar processors.
Chapters 9–10: Advanced Instruction Flow Techniques; Advanced Register Data Flow Techniques
Chapter 9 covers static, dynamic and hybrid branch prediction and other instruction flow issues. Chapter 10 introduces value locality and redundant execution, and techniques for exploiting value locality without and with speculation.
Chapter 11: Executing Multiple Threads
The last chapter covers synchronizing shared-memory threads, an introduction to multiprocessor systems, explicitly and implicitly multithreaded processors, and executing the same thread.
Key Concepts
Chapters 1–3: Foundations
- Processor performance and instruction-level parallelism: the principles of performance and the idea of executing multiple instructions per cycle.
- Pipelining: overlapping the stages of instruction execution, including deeply pipelined designs.
- Latency and bandwidth; memory hierarchy: the key concepts for memory and I/O systems.
Chapters 4–5: Superscalar processors
- Superscalar pipeline: a pipeline that handles multiple instructions in each stage.
- Instruction, register data and memory data flow: the three flows organising the core techniques of Chapter 5.
Chapters 6–8: Case studies and survey
- Out-of-order core and retirement: described through the PowerPC 620 and Intel P6.
Chapters 9–11: Advanced topics
- Branch prediction: static, dynamic and hybrid predictors.
- Value locality: exploiting repeated values, with and without speculation.
- Multithreading: explicitly and implicitly multithreaded processors.
Critical Analysis
Strengths
- A clear framework. The publisher describes the book as conceptual and precise, distilling complex practices into foundational principles for both graduate and undergraduate students. The chapter structure shows this: instruction, register and memory flow give one scheme for the main techniques.
- Fundamentals before case studies. Chapters 4 and 5 explain the principles, and Chapters 6–8 apply them to named designs and a survey. The two case studies and a survey of commercial superscalar processors let readers see how real designs resolve the trade-offs.
- Advanced techniques in dedicated chapters. Branch prediction (Chapter 9), value-locality techniques (Chapter 10) and multithreading and multiprocessors (Chapter 11) are separated from the core so they can be read selectively.
- Practice problems. Each chapter ends with homework problems, which the publisher says set the groundwork for emerging techniques.
Limitations
- A specific era of case studies. The detailed studies cover the PowerPC 620 and Intel P6, and the Waveland edition carries a 2005 copyright, so the design-specific chapters describe processors of that time. Treat them as worked examples of the principles, not as a picture of current hardware.
- Prerequisites are assumed. Chapters 1–3 revisit processor design, pipelining and memory, so the book is best read after a computer organization course that has already introduced instruction sets, a simple pipeline and caches, together with basic digital logic.
- Narrow focus. The subject is the microarchitecture of a single superscalar processor, with multithreading at the end; topics such as vector and data-parallel hardware, GPUs or energy are not among the chapter titles.
Where It Fits in the Course
Modern Processor Design is the in-depth microarchitecture book in this course list. Charles Petzold's Code and Nisan and Schocken's The Elements of Computing Systems are the gentle first steps, building a computer from gates and logic, while Harris and Harris's Digital Design and Computer Architecture: RISC-V Edition takes the reader from digital logic to a pipelined processor and its memory system. Bryant and O'Hallaron's Computer Systems: A Programmer's Perspective approaches the machine from the software side. Hennessy and Patterson's Computer Architecture: A Quantitative Approach is the broader, performance-and-energy-oriented treatment, covering instruction- and data-level parallelism, memory hierarchy, multicore processors and warehouse-scale systems.
Shen and Lipasti is the specialist book on processor microarchitecture: read it once you understand a basic pipeline and want a systematic account of how superscalar processors work, or alongside Hennessy and Patterson's coverage of instruction-level parallelism.
How to Use This Book
The book is aimed at graduate and advanced undergraduate students who have completed a computer organization course.
A practical plan:
- Core: Chapters 1 and 2 as a rapid review, then Chapters 4 and 5 carefully. These contain the superscalar ideas the rest depends on.
- Supporting: Chapter 3 for the memory and I/O system, which is needed to understand memory data flow.
- Case studies: read either Chapter 6 or Chapter 7 closely as a worked example after Chapter 5, and use Chapter 8 as a survey to browse.
- Advanced: Chapter 9 (branch prediction) is a natural follow-up; Chapters 10 and 11 can be chosen according to interest.
- Practice: work the homework problems at the end of each chapter, and redraw the pipeline diagrams of the case studies to confirm each step of instruction flow.
