Uh-oh, it looks like your Internet Explorer is out of date.

For a better shopping experience, please upgrade now.

Computer Organization and Design: The Hardware/Software Interface / Edition 3

Computer Organization and Design: The Hardware/Software Interface / Edition 3

by David A. Patterson

See All Formats & Editions

ISBN-10: 1558606041

ISBN-13: 9781558606043

Pub. Date: 08/01/2004

Publisher: Elsevier Science

The performance of software systems is dramatically affected by how well software designers understand the basic hardware technologies at work in a system. Similarly, hardware designers must understand the far-reaching effects their design decisions have on software applications. For readers in either category, this classic introduction to the field provides a look


The performance of software systems is dramatically affected by how well software designers understand the basic hardware technologies at work in a system. Similarly, hardware designers must understand the far-reaching effects their design decisions have on software applications. For readers in either category, this classic introduction to the field provides a look deep into the computer. It demonstrates the relationships between the software and hardware and focuses on the foundational concepts that are the basis for current computer design.

As with previous editions, a MIPS processor is the core used to present the fundamentals of hardware technologies at work in a computer system. The book presents an entire MIPS instruction set-instruction by instruction-the fundamentals of assembly language, computer arithmetic, pipelining, memory hierarchies, and I/O, and introduces the essentials of network and multiprocessor architectures.

A new aspect of the third edition is the explicit connection between program performance and CPU performance. The authors show how hardware and software components-such as the specific algorithm, programming language, compiler, instruction set architecture, and processor implementation-impact program performance. This edition also digs deeper into related hardware and software issues, offering specific material on the CD for readers with a hardware or software focus. A CD provides a toolkit of simulators and compilers along with tutorials for using them.

Revised Printing Features: Appendix A now in the text; corrections throughout the text; updated links on the CD: Uses standard 32-bit MIPS 32 as the primary teaching ISA: Highlights the latestdevelopments in architecture, Intel IA-32, Power PC 604, Pentium P4, Google's PC cluster, SPEC CPU2000 benchmark suite for processors, vSPEC Web99 benchmark for web, EEMBC benchmark for embedded systems, AMD Opteron memory hierarchy, AMD vs. 1A-64, Intrinsity's FastMATH processor servers: New material for a Hardware Focus, Using logic design conventions, Designing with hardware description languages, Advanced pipelining, Designing with FPGAs, HDL simulators and tutorials, Xilinx CAD tools: New material for a Software Focus, How compilers work, How to optimize compilers, How to implement object oriented languages, History sections on programming languages, compilers, operating systems, and databases: A search engine for both the printed text and CD-only content.

Product Details

Elsevier Science
Publication date:
The Morgan Kaufmann Series in Computer Architecture and Design Ser.
Edition description:
Product dimensions:
7.82(w) x 10.84(h) x 0.95(d)

Table of Contents

Preface     xi
Computer Abstractions and Technology     2
Introduction     3
Below Your Program     11
Under the Covers     15
Real Stuff: Manufacturing Pentium 4 Chips     28
Fallacies and Pitfalls     33
Concluding Remarks     35
Historical Perspective and Further Reading     36
Exercises     36
Computers in the Real World: Information Technology for the 4 Billion without IT     44
Instructions: Language of the Computer     46
Introduction     48
Operations of the Computer Hardware     49
Operands of the Computer Hardware     52
Representing Instructions in the Computer     60
Logical Operations     68
Instructions for Making Decisions     72
Supporting Procedures in Computer Hardware     79
Communicating with People     90
MIPS Addressing for 32-Bit Immediates and Addresses     95
Translating and Starting a Program     106
How Compilers Optimize     116
How Compilers Work: An Introduction     121
A C Sort Example to Put It All Together     121
Implementing an Object-Oriented Language     130
Arrays versus Pointers     130
Real Stuff: IA-32 Instructions     134
Fallacies and Pitfalls     143
Concluding Remarks     145
Historical Perspective and Further Reading     147
Exercises     147
Computers in the Real World: Helping Save Our Environment with Data     156
Arithmetic for Computers     158
Introduction     160
Signed and Unsigned Numbers     160
Addition and Subtraction     170
Multiplication     176
Division     183
Floating Point     189
Real Stuff: Floating Point in the IA-32     217
Fallacies and Pitfalls     220
Concluding Remarks     225
Historical Perspective and Further Reading     229
Exercises     229
Computers in the Real World: Reconstructing the Ancient World     236
Assessing and Understanding Performance     238
Introduction     240
CPU Performance and Its Factors     246
Evaluating Performance     254
Real Stuff: Two SPEC Benchmarks and the Performance of Recent Intel Processors     259
Fallacies and Pitfalls     266
Concluding Remarks     270
Historical Perspective and Further Reading     272
Exercises     272
Computers in the Real World: Moving People Faster and More Safely     280
The Processor: Datapath and Control     282
Introduction     284
Logic Design Conventions     289
Building a Datapath     292
A Simple Implementation Scheme     300
A Multicycle Implementation     318
Exceptions     340
Microprogramming: Simplifying Control Design     346
An Introduction to Digital Design Using a Hardware Design Language     346
Real Stuff: The Organization of Recent Pentium Implementations     347
Fallacies and Pitfalls     350
Concluding Remarks     352
Historical Perspective and Further Reading     353
Exercises     354
Computers in the Real World: Empowering the Disabled     366
Enhancing Performance with Pipelining     368
An Overview of Pipelining     370
A Pipelined Datapath     384
Pipelined Control     399
Data Hazards and Forwarding     402
Data Hazards and Stalls     413
Control Hazards     416
Using a Hardware Description Language to Describe and Model a Pipeline     426
Exceptions     427
Advanced Pipelining: Extracting More Performance     432
Real Stuff: The Pentium 4 Pipeline     448
Fallacies and Pitfalls     451
Concluding Remarks     452
Historical Perspective and Further Reading     454
Exercises     454
Computers in the Real World: Mass Communication without Gatekeepers     464
Large and Fast: Exploiting Memory Hierarchy     466
Introduction     468
The Basics of Caches     473
Measuring and Improving Cache Performance     492
Virtual Memory     511
A Common Framework for Memory Hierarchies     538
Real Stuff: The Pentium P4 and the AMD Opteron Memory Hierarchies     546
Fallacies and Pitfalls     550
Concluding Remarks     552
Historical Perspective and Further Reading     555
Exercises     555
Computers in the Real World: Saving the World's Art Treasures     562
Storage, Networks, and Other Peripherals     564
Introduction     566
Disk Storage and Dependability     569
Networks     580
Buses and Other Connections between Processors, Memory, and I/O Devices     581
Interfacing I/O Devices to the Processor, Memory, and Operating System     588
I/O Performance Measures: Examples from Disk and File Systems     597
Designing an I/O System     600
Real Stuff: A Digital Camera     603
Fallacies and Pitfalls     606
Concluding Remarks     609
Historical Perspective and Further Reading     611
Exercises     611
Computers in the Real World: Saving Lives through Better Diagnosis     622
Multiprocessors and Clusters     2
Introduction     4
Programming Multiprocessors     8
Multiprocessors Connected by a Single Bus     11
Multiprocessors Connected by a Network     21
Clusters     25
Network Topologies     27
Multiprocessors Inside a Chip and Multithreading     30
Real Stuff: The Google Cluster of PCs     34
Fallacies and Pitfalls     39
Concluding Remarks     42
Historical Perspective and Further Reading     47
Exercises     55
Assemblers, Linkers, and the SPIM Simulator     2
Introduction      3
Assemblers     10
Linkers     18
Loading     19
Memory Usage     20
Procedure Call Convention     22
Exceptions and Interrupts     33
Input and Output     37
SPIM     40
MIPS R2000 Assembly Language     44
Concluding Remarks     79
Exercises     80
The Basics of Logic Design     2
Introduction     3
Gates, Truth Tables, and Logic Equations     4
Combinational Logic     8
Using a Hardware Description Language     20
Constructing a Basic Arithmetic Logic Unit     26
Faster Addition: Carry Lookahead     38
Clocks     47
Memory Elements: Flip-Flops, Latches, and Registers     49
Memory Elements: SRAMs and DRAMs     57
Finite-State Machines     67
Timing Methodologies     72
Field Programmable Devices     77
Concluding Remarks     78
Exercises     79
Mapping Control to Hardware     2
Introduction     3
Implementing Combinational Control Units     4
Implementing Finite-State Machine Control      8
Implementing the Next-State Function with a Sequencer     21
Translating a Microprogram to Hardware     27
Concluding Remarks     31
Exercises     32
A Survey of RISC Architectures for Desktop, Server, and Embedded Computers     2
Introduction     3
Addressing Modes and Instruction Formats     5
Instructions: The MIPS Core Subset     9
Instructions: Multimedia Extensions of the Desktop/Server RISCs     16
Instructions: Digital Signal-Processing Extensions of the Embedded RISCs     19
Instructions: Common Extensions to MIPS Core     20
Instructions Unique to MIPS-64     25
Instructions Unique to Alpha     27
Instructions Unique to SPARC v.9     29
Instructions Unique to PowerPC     32
Instructions Unique to PA-RISC 2.0     34
Instructions Unique to ARM     36
Instructions Unique to Thumb     38
Instructions Unique to SuperH     39
Instructions Unique to M32R     40
Instructions Unique to MIPS-16     41
Concluding Remarks     43
Index     I-1
Glossary     G-1
Further Reading     FR-1

Customer Reviews

Average Review:

Post to your social network


Most Helpful Customer Reviews

See all customer reviews