| |
| |
Preface | |
| |
| |
| |
Introduction | |
| |
| |
| |
A Quick View of Technological Advances | |
| |
| |
| |
Performance Metrics | |
| |
| |
| |
Performance Evaluation | |
| |
| |
| |
Summary | |
| |
| |
| |
Further Reading and Bibliographical Notes | |
| |
| |
Exercises | |
| |
| |
References | |
| |
| |
| |
The Basics | |
| |
| |
| |
Pipelining | |
| |
| |
| |
Caches | |
| |
| |
| |
Virtual Memory and Paging | |
| |
| |
| |
Summary | |
| |
| |
| |
Further Reading and Bibliographical Notes | |
| |
| |
Exercises | |
| |
| |
References | |
| |
| |
| |
Superscalar Processors | |
| |
| |
| |
From Scalar to Superscalar Processors | |
| |
| |
| |
Overview of the Instruction Pipeline of the DEC Alpha 21164 | |
| |
| |
| |
Introducing Register Renaming, Reorder Buffer, and Reservation Stations | |
| |
| |
| |
Overview of the Pentium P6 Microarchitecture | |
| |
| |
| |
VLIW/EPIC Processors | |
| |
| |
| |
Summary | |
| |
| |
| |
Further Reading and Bibliographical Notes | |
| |
| |
Exercises | |
| |
| |
References | |
| |
| |
| |
Front-End: Branch Prediction, Instruction Fetching, and Register Renaming | |
| |
| |
| |
Branch Prediction | |
| |
| |
Sidebar: The DEC Alpha 21264 Branch Predictor | |
| |
| |
| |
Instruction Fetching | |
| |
| |
| |
Decoding | |
| |
| |
| |
Register Renaming (a Second Look) | |
| |
| |
| |
Summary | |
| |
| |
| |
Further Reading and Bibliographical Notes | |
| |
| |
Exercises | |
| |
| |
Programming Projects | |
| |
| |
References | |
| |
| |
| |
Back-End: Instruction Scheduling, Memory Access Instructions, and Clusters | |
| |
| |
| |
Instruction Issue and Scheduling (Wakeup and Select) | |
| |
| |
| |
Memory-Accessing Instructions | |
| |
| |
| |
Back-End Optimizations | |
| |
| |
| |
Summary | |
| |
| |
| |
Further Reading and Bibliographical Notes | |
| |
| |
Exercises | |
| |
| |
Programming Project | |
| |
| |
References | |
| |
| |
| |
The Cache Hierarchy | |
| |
| |
| |
Improving Access to L1 Caches | |
| |
| |
| |
Hiding Memory Latencies | |
| |
| |
| |
Design Issues for Large Higher-Level Caches | |
| |
| |
| |
Main Memory | |
| |
| |
| |
Summary | |
| |
| |
| |
Further Reading and Bibliographical Notes | |
| |
| |
Exercises | |
| |
| |
Programming Projects | |
| |
| |
References | |
| |
| |
| |
Multiprocessors | |
| |
| |
| |
Multiprocessor Organization | |
| |
| |
| |
Cache Coherence | |
| |
| |
| |
Synchronization | |
| |
| |
| |
Relaxed Memory Models | |
| |
| |
| |
Multimedia Instruction Set Extensions | |
| |
| |
| |
Summary | |
| |
| |
| |
Further Reading and Bibliographical Notes | |
| |
| |
Exercises | |
| |
| |
References | |
| |
| |
| |
Multithreading and (Chip) Multiprocessing | |
| |
| |
| |
Single-Processor Multithreading | |
| |
| |
| |
General-Purpose Multithreaded Chip Multiprocessors | |
| |
| |
| |
Special-Purpose Multithreaded Chip Multiprocessors | |
| |
| |
| |
Summary | |
| |
| |
| |
Further Reading and Bibliographical Notes | |
| |
| |
Exercises | |
| |
| |
References | |
| |
| |
| |
Current Limitations and Future Challenges | |
| |
| |
| |
Power and Thermal Management | |
| |
| |
| |
Technological Limitations: Wire Delays and Pipeline Depths | |
| |
| |
| |
Challenges for Chip Multiprocessors | |
| |
| |
| |
Summary | |
| |
| |
| |
Further Reading and Bibliographical Notes | |
| |
| |
References | |
| |
| |
Bibliography | |
| |
| |
Index | |