Computer Organization and Design, 4th Ed.pdf
(
15947 KB
)
Pobierz
COMPUTER
ORGANIZATION
AND DESIGN
THE HARDWARE / SOFTWARE INTERFACE
DAVID A. PATTERSON
J O H N L. HENNESSY
MORGANKAUFMANN
F O U R T H
E D I T I O N
Computer Organization and Design
THE
H A R D WA R E / S 0 F T W A R E
I N T E R F A C E
Contents
Preface
xv
C H A P T E R S
Computer Abstractions audi Technology
Introduction 3
Below Your Program 10
Under the Covers 13
Performance 26
The Power Wall 39
The Sea Change: The Switch from Uniprocessors to
Multiprocessors 41
1.7 Real Stuff: Manufacturing and Benchmarking the AMD
Opteron X4 44
1.8 Fallacies and Pitfalls 51
1.9 Concluding Remarks 54
1.10 Historical Perspective and Further Reading 55
1.11 Exercises 56
1.1
1.2
1.3
1.4
1.5
1.6
2
Instructions: Language of the Computer
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
Introduction 76
Operations of the Computer Hardware 77
Operands of the Computer Hardware 80
Signed and Unsigned Numbers 87
Representing Instructions in the Computer 94
Logical Operations 102
Instructions for Making Decisions 105
Supporting Procedures in Computer Hardware 112
Communicating with People 122
MIPS Addressing for 32-Bit Immediates and Addresses
Parallelism and Instructions: Synchronization 137
Translating and Starting a Program 139
AC Sort Example to Put It All Together 149
74
128
xii
Contents
2.14
2.15
2.16
2.17
2.18
2.19
2.20
2.21
Arrays versus Pointers 157
Advanced Material: Compiling C and Interpreting Java
Real Stuff: ARM Instructions 161
Real Stuff: x86 Instructions 165
Fallacies and Pitfalls 174
Concluding Remarks 176
Historical Perspective and Further Reading 179
Exercises 179
161
Arithmetic for Computers
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
222
Introduction 224
Addition and Subtraction 224
Multiplication 230
Division 236
Floating Point 242
Parallelism and Computer Arithmetic: Associativity
Real Stuff: Floating Point in the x86 272
Fallacies and Pitfalls 275
Concluding Remarks 280
Historical Perspective and Further Reading 283
Exercises 283
270
The Processor
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
298
4.13
4.14
4.15
4.16
Introduction 300
Logic Design Conventions 303
Building a Datapath 307
A Simple Implementation Scheme 316
An Overview of Pipelining 330
Pipelined Datapath and Control 344
Data Hazards: Forwarding versus Stalling 363
Control Hazards 375
Exceptions 384
Parallelism and Advanced Instruction-Level Parallelism 391
Real Stuff: the AMD Opteron X4 (Barcelona) Pipeline 404
Advanced Topic: an Introduction to Digital Design
Using a Hardware Design Language to Describe and
Model a Pipeline and More Pipelining Illustrations 406
Fallacies and Pitfalls 407
Concluding Remarks 408
Historical Perspective and Further Reading 409
Exercises 409
Contents
xiii
Large and Fast: Exploiting Memory Hierarchy
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
Introduction 452
The Basics of Caches 457
Measuring and Improving Cache Performance 475
Virtual Memory 492
A Common Framework for Memory Hierarchies 518
Virtual Machines 525
Using a Finite-State Machine to Control a Simple Cache 529
Parallelism and Memory Hierarchies: Cache Coherence 534
Advanced Material: Implementing Cache Controllers 538
Real Stuff: the AMD Opteron X4 (Barcelona) and Intel Nehalem
Memory Hierarchies 539
Fallacies and Pitfalls 543
Concluding Remarks 547
Historical Perspective and Further Reading 548
Exercises 548
450
Storage and Other I/O Topics
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
6.13
6.14
6.15
568
Introduction 570
Dependability, Reliability, and Availability 573
Disk Storage 575
Flash Storage 580
Connecting Processors, Memory, and I/O Devices 582
Interfacing I/O Devices to the Processor, Memory, and
Operating System 586
I/O Performance Measures: Examples from Disk and File Systems 596
Designing an I/O System 598
Parallelism and I/O: Redundant Arrays of Inexpensive Disks 599
Real Stuff: Sun Fire x4150 Server 606
Advanced Topics: Networks 612
Fallacies and Pitfalls 613
Concluding Remarks 617
Historical Perspective and Further Reading 618
Exercises 619
Multicores, Multiprocessors, and Clusters
7.1
7.2
7.3
Introduction 632
The Difficulty of Creating Parallel Processing Programs
Shared Memory Multiprocessors 638
630
634
Plik z chomika:
musli_com
Inne pliki z tego folderu:
Logic and Computer Design Fundamentails.pdf
(100951 KB)
Computability and Complexity.pdf
(51360 KB)
Introduction to the Theory of Computation, Second Edition.pdf
(21201 KB)
Computer Organization and Design, 4th Ed.pdf
(15947 KB)
Charles_Petzold-Annotated_Turing-Wiley(2008).pdf
(12331 KB)
Inne foldery tego chomika:
0_Computer History
1_Principles of Programming Languages
2_Algorithms
3_Theory
5_Parallel and Distributed
Zgłoś jeśli
naruszono regulamin