Università di Roma "La Sapienza" - Corso di Calcolatori Elettronici II (A-L, Ingegneria Informatica)
by David A. Patterson and John L. Hennessy
Foreword
Worked Examples
Computer Organization and Design Online
Preface
1 Computer Abstractions and Technology
1.1 Introduction
1.2 Below Your Program
1.3 Under the Covers
1.4 Integrated Circuits: Fueling Innovation
1.5 Real Stuff: Manufacturing Pentium Chips
1.6 Fallacies and Pitfalls
1.8 Historical Perspective and Further Reading
1.9 Key Terms
1.10 Exercises
2 The Role of Performance
2.1 Introduction
2.2 Measuring Performance
2.3 Relating the Metrics
2.4 Choosing Programs to Evaluate Performance
2.5 Comparing and Summarizing Performance
2.6 Real Stuff: The SPEC95 Benchmarks and Performance of Recent Processors
2.7 Fallacies and Pitfalls
2.8 Concluding Remarks
2.9 Historical Perspective and Further Reading
2.10 Key Terms
2.11 Exercises
3 Instructions: Language of the Machine
3.1 Introduction
3.2 Operations of the Computer Hardware
3.3 Operands of the Computer Hardware
3.4 Representing Instructions in the Computer
3.5 Instructions for Making Decisions
3.6 Supporting Procedures in Computer Hardware
3.7 Beyond Numbers
3.8 Other Styles of MIPS Addressing
3.9 Starting a Program
3.10 An Example to Put It All Together
3.11 Arrays versus Pointers
3.12 Real Stuff: PowerPC and 80x86 Instructions
3.13 Fallacies and Pitfalls
3.14 Concluding Remarks
3.15 Historical Perspective and Further Reading
3.16 Key Terms
3.17 Exercises
4 Arithmetic for Computers
4.1 Introduction
4.2 Signed and Unsigned Numbers
4.3 Addition and Subtraction
4.4 Logical Operations
4.5 Constructing an Arithmetic Logic Unit
4.6 Multiplication
4.7 Division
4.8 Floating Point
4.9 Real Stuff: Floating Point in the PowerPC and 80x86
4.10 Fallacies and Pitfalls
4.11 Concluding Remarks
4.12 Historical Perspective and Further Reading
4.13 Key Terms
4.14 Exercises
5 The Processor: Datapath and Control
5.1 Introduction
5.2 Building a Datapath
5.3 A Simple Implementation Scheme
5.4 A Multicycle Implementation
5.5 Microprogramming: Simplifying Control Design
5.6 Exceptions
5.7 Real Stuff: The Pentium Pro Implementation
5.8 Fallacies and Pitfalls
5.9 Concluding Remarks
5.10 Historical Perspective and Further Reading
5.11 Key Terms
5.12 Exercises
6 Enhancing Performance with Pipelining
6.1 An Overview of Pipelining
6.2 A Pipelined Datapath
6.3 Pipelined Control
6.4 Data Hazards and Forwarding
6.5 Data Hazards and Stalls
6.6 Branch Hazards
6.7 Exceptions
6.8 Superscalar and Dynamic Pipelining
6.9 Real Stuff: PowerPC 604 and Pentium Pro Pipelines
6.10 Fallacies and Pitfalls
6.11 Concluding Remarks
6.12 Historical Perspective and Further Reading
6.13 Key Terms
6.14 Exercises
7 Large and Fast: Exploiting Memory Hierarchy
7.1 Introduction
7.2 The Basics of Caches
7.3 Measuring and Improving Cache Performance
7.4 Virtual Memory
7.5 A Common Framework for Memory Hierarchies
7.6 Real Stuff: The Pentium Pro and PowerPC 604 Memory Hierarchies
7.7 Fallacies and Pitfalls
7.8 Concluding Remarks
7.9 Historical Perspective and Further Reading
7.10 Key Terms
7.11 Exercises
8 Interfacing Processors and Peripherals
8.1 Introduction
8.2 I/O Performance Measures: Some Examples from Disk and File Systems
8.3 Types and Characteristics of I/O Devices
8.4 Buses: Connecting I/O Devices to Processor and Memory
8.5 Interfacing I/O Devices to the Memory, Processor, and Operating System
8.6 Designing an I/O System
8.7 Real Stuff: A Typical Desktop I/O System
8.8 Fallacies and Pitfalls
8.9 Concluding Remarks
8.10 Historical Perspective and Further Reading
8.11 Key Terms
8.12 Exercises
9 Multiprocessors
9.1 Introduction
9.2 Programming Multiprocessors
9.3 Multiprocessors Connected by a Single Bus
9.4 Multiprocessors Connected by a Network
9.5 Clusters
9.6 Network Topologies
9.7 Real Stuff: Future Directions for Multiprocessors
9.8 Fallacies and Pitfalls
9.9 Concluding Remarks-Evolution versus Revolution in Computer Architecture
9.10 Historical Perspective and Further Reading
9.11 Key Terms
9.12 Exercises
A Assemblers, Linkers, and the SPIM Simulator
A.1 Introduction
A.2 Assemblers
A.3 Linkers
A.4 Loading
A.5 Memory Usage
A.6 Procedure Call Convention
A.7 Exceptions and Interrupts
A.8 Input and Output
A.9 SPIM
A.10 MIPS R2000 Assembly Language
A.11 Concluding Remarks
A.12 Key Terms
A.13 Exercises
B The Basics of Logic Design
B.1 Introduction
B.2 Gates, Truth Tables, and Logic Equations
B.3 Combinational Logic
B.4 Clocks
B.5 Memory Elements
B.6 Finite State Machines
B.7 Timing Methodologies
B.8 Concluding Remarks
B.9 Key Terms
B.10 Exercises
C Mapping Control to Hardware
C.1 Introduction
C.2 Implementing Combinational Control Units
C.3 Implementing Finite State Machine Control
C.4 Implementing the Next-State Function with a Sequencer
C.5 Translating a Microprogram to Hardware
C.6 Concluding Remarks
C.7 Key Terms
C.8 Exercises
Glossary
Index
Last update 2006-04-17 11:49