1. Processor Design
The Evolution of Microprocessors / Instruction Set Processor Design / Principles of Processor Performance / Instruction-Level Parallel Processing / Summary
2. Pipelined Processors
Pipelining Fundamentals / Pipelined Processor Design / Deeply Pipelined Processors / Summary
3. Memory and I/O Systems
Introduction / Computer System Overview / Key Concepts: Latency and Bandwidth / Memory Hierarchy / Virtual Memory Systems / Memory Hierarchy Implementation / Input/Output Systems / Summary
4. Superscalar Organization
Limitations of Scalar Pipelines / From Scalar to Superscalar Pipelines / Superscalar Pipeline Overview / Summary
5. Superscalar Techniques
Instruction Flow Techniques / Register Data Flow Techniques / Memory Data Flow Techniques / Summary
6. The PowerPC 620
Introduction / Experimental Framework / Instruction Fetching / Instruction Dispatching / Instruction Execution / Instruction Completion / Conclusions and Observations / Bridging to the IBM POWER3 and POWER4 / Summary
7. Intel's P6 Microarchitecture
Introduction / Pipelining / The In-Order Front End / The Out-of-Order Core / Retirement / Memory Subsystem / Summary / Acknowledgments
8. Survey of Superscalar Processors
Development of Superscalar Processors / A Classification of Recent Designs / Processor Descriptions / Verification of Superscalar Processors / Acknowledgments
9. Advanced Instruction Flow Techniques
Introduction / Static Branch Prediction Techniques / Dynamic Branch Prediction Techniques / Hybrid Branch Predictors / Other Instruction Flow Issues and Techniques / Summary
10. Advanced Register Data Flow Techniques
Introduction / Value Locality and Redundant Execution / Exploiting Value Locality without Speculation / Exploiting Value Locality with Speculation / Summary
11. Executing Multiple Threads
Introduction / Synchronizing Shared-Memory Threads / Introduction to Multiprocessor Systems / Explicitly Multithreaded Processors / Implicitly Multithreaded Processors / Executing the Same Thread / Summary