Contents
Foreword
by John H. Crawford
Worked Examples
Computer Organlzatlon and Deslgn Online
Preface
Computer Abstractions and Technology
1.1 Introductlon
1.2 Below Your Program
1.3 Under the Covers
1.4 Integrated ChrcuIts: FUellng innovation
1.5 Real Stuff: Manufacturing Pentlum Chlps
1.6 Fallacies and Pttfalls
1.7 Concluding Renarks
1.8 Historical Perspectlve and Further Roadlng
1.9 Key Torms
l.l0 Exercises
The Role of Performance
2.1 Introduction
2.2 Measurlng Perfonnance
2.3 Relating the Metrics
2.4 Chooslng Prograin to Evaluate Performance
2.8 Comparlng and Summarlzlng Porfonnance
2.6 Real Stuff: The SPEC95 Banchmarks and Performanca of Recant Processors
2.7 Fallacles and Pltfalls
2.8 Concludlng Remarks
2.9 Historical Penpectlve and Further Readlng
2.10 KeyTerms
2.11 Exercises
Instructions: Language of the Machlne
3.1 Introductlon
3.2 Operatlons of the Computer Hardware
3.3 Operands of the Computer Hardware
3.4 Reprasentlng Instructions in tha Computer
3.5 Instmctions for Maiong Deeisions
3.6 Supportlng Procedures In Computer Hardware
3.7 Beyond Numbers
3.8 Other Styles of MIPS Addresslng
3.9 Starting a Program
3.10 An Example to Put R All Together
3.11 Arrays versus Polnters
3.12 Real Stuff: Power PC and 80x86 Instructions
3.13 Fallacios and Pttfalls
3.14 Concludlng Remarks
3.15 Hlstorical Perspectlve and Further Readfng
3.16 KeyTems
3.17 Exerclses
Arithmetic for Computers
4.1 Introductlon
4.2 Slgned and Unslgned Numbers
4.3 Additlon and Subtraction
4.4 Loglcal Operations
4.5 Constructlng an Artthmetic Loglc Unit
4.6 Mumpllcatlon
4.7 Dlviston
4.8 Floating Polnt
4.9 Real Stuff: Floating Polnt In the PowerPC and 80x86
4.10 Fallacies and Pttfalls
4.11 Concludlng Ramarks
4.12 Hlstorical Perspectlve and Further Reading
4.13 KeyTerms
4.14 Exercises
The Processor: Datapath and Control
5.1 Introductlon
5.2 Bulldlng a Datapath
5.3 A Slmple Implementatlon Scheme
5.4 A MuRlcycle Implamentatlon
5.5 Mlcroprogramnmlng: Stmpllfylng Control Deslgn
5.6 Exceptions
5.7 Real Stuff: Tha Pentlum Pro Implementation
5.8 Fallacles and Pttfalls
5.9 Concludlng Remaris
5.10 Hlstorical Perspectlve and Further Readlng
5.11 KeyTerms
5.12 Exerclses
Enhancing Performance with Pipelinlng
6.1 An Overview of Plpellnlng
6.2 A Plpelined Datapath
6.3 Plpelined Control
6.4 Data Hazards and Forwardlng
6.5 Data Hazards and Stalls
6.6 Branch Hazards
6.7 Excaptions
6.8 Superscalar and Dynamlc Pipellning
6.9 Real Stuff: PowerPC 604 and Pentium Pro Pipelibes
6.10 Fallacles and Pttfalls
6.11 Concludlng Remarks
6.12 Historical Perspectlva and Further Readlng
6.13 KeyTerms
6.14 Exerelses
Large and Fast: Exploitlng Memory Hierarchy
7.1 Introductlon
7.2 The Basics of Caches
7.3 Measuring and Improvlng Cache Performance
7.4 Virtual Memory
7.5 A Common Framework for Memory Hlerarchles
7.6 Real Stuff: The Pentlum Pro and PowerPC 604 Memory Hierarchles
7.7 Fallacies and Pttfalls
7.8 Concludlng Remarks
7.9 Historical Perspective and Further Readlng
7.10 KeyTerms
7.11 Exerclses
Interfacing Processors and Perlpherals
8.1 Introductlon
8.2 1/0 Performance Measures: Some Examples from Dlsk and Flle Systems
8.3 Types and Characteristlcs of 1/0 Devlces
8.4 Buses: Connecting 1/0 Devices to Processor and Memory
8.5 Interfaclng 1/0 Devices to the Memory, Processor, and Operatlng System
8.6 Deslgnlng an 1/0 System
8.7 Real Stuff: A Typlcal Desktop 1/0 System
8.8 Fallacies and Pttfalls
8.9 Concludlng Remarks
8.10 Historical Perspectlve and Further Reading
8.11 KeyTerms
8.12 Exercises
Multiprocessors
9.1 Introductlon
9.2 Programmlng Muttlproceuors
9.3 Muttlprocssors Connected by a Slngle Bus
9.4 Muiitilprocassors Connected by a Network
9.5 Clusterx
9.6 Network Topologles
9.7 Real Stuff: Future Dlrectlons for Muttlprocessrs
9.8 Fallacies and Pitfalls
9.9 Concludlng Remarks-Evolution versus Revolutlon In Computer Architecture
9.10 Hlstorical Perspectlve and Further Readlng
9.11 KeyTems
9.12 Exercisas
APPENDICES
Assemblers, Linkers, and the SPIM Slmulator
by James R. Larus, University of Wisconsin
A.1 Introductlon
A.2 Assemblers
A-3 Unkers
A.4 Loadlng
A.5 Memory Uaage
A.6 Procedure Call Conventlo
A.7 Exceptlons and Interrupts .
A.8 Input and Output
A.9 SPIM
A.10 MIPS R2000 Assembly Language
A.ll Concluding Remarks
A.12 KeyTerms
A.13 Exercises
The Baslcs of Loglc Design
B.l Introduction
B.2 Gates, Tnrth Tables, and Logle Equatlons
B.3 Comblnattonal Loglc
B.4 Clocks
B.5 Momory Eloments
B.6 Flnlto Stato Machlnes
B.7 Tlnilng Methodoiogies
B.8 Concludlng Remarks
B.9 Key Terms
B.10 Exercises
Mapplng Control to Hardware
c.1 IntroducHon
c.2 ImplementlngComblnatlonalControlUntts
c.3 Implemeirtlng Flntte State Machlne Control
c.4 Implomenting the Next-stato Function with a Sequencer
c.5 Translating a Mlcroprogram to Hardware
c.6 Concludlng Renarks
c.7 KeyTorms
c.8 Exerclses
Glossary
Index