Skip to content

Computer Organization and Design The Hardware/Software Interface

Best in textbook rentals since 2012!

ISBN-10: 1558604286

ISBN-13: 9781558604285

Edition: 2nd 1998

Authors: David A. Patterson, John L. Hennessy

List price: $89.95
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Description:

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 deep look into the computer. It demonstrates the relationship between the software and hardware and focuses on the foundational concepts that are the basis for current computer design. Using a distinctive "learning by evolution" approach the authors present each idea from its first principles, guiding readers through a series of…    
Customers also bought

Book details

List price: $89.95
Edition: 2nd
Copyright year: 1998
Publisher: Elsevier Science & Technology Books
Binding: Hardcover
Pages: 965
Size: 7.75" wide x 9.75" long x 2.00" tall
Weight: 4.136
Language: English

David A. Patterson was the first in his family to graduate from college (1969 A.B UCLA), and he enjoyed it so much that he didn't stop until a PhD, (1976 UCLA). After 4 years developing a wafer-scale computer at Hughes Aircraft, he joined U.C. Berkeley in 1977. He spent 1979 at DEC working on the VAX minicomputer. He and colleagues later developed the Reduced Instruction Set Computer (RISC). By joining forces with IBM's 801 and Stanford's MIPS projects, RISC became widespread. In 1984 Sun Microsystems recruited him to start the SPARC architecture. In 1987, Patterson and colleagues wondered if tried building dependable storage systems from the new PC disks. This led to the popular Redundant…    

John L. Hennessy is the president of Stanford University, where he has been a member of the faculty since 1977 in the departments of electrical engineering and computer science. Hennessy is a fellow of the IEEE and the ACM, a member of the National Academy of Engineering, the National Academy of Science, the American Academy of Arts and Sciences, and the Spanish Royal Academy of Engineering. He received the 2001 Eckert-Mauchly Award for his contributions to RISC technology, the 2001 Seymour Cray Computer Engineering Award, and shared the John von Neumann award in 2000 with David Patterson. After completing the project in 1984, he took a one-year leave from the university to co-found MIPS…    

Preface
Computer Abstractions and Technology
Introduction
Below Your Program
Under the Covers
Real Stuff: Manufacturing Pentium 4 Chips
Fallacies and Pitfalls
Concluding Remarks
Historical Perspective and Further Reading
Exercises
Computers in the Real World: Information Technology for the 4 Billion without IT
Instructions: Language of the Computer
Introduction
Operations of the Computer Hardware
Operands of the Computer Hardware
Representing Instructions in the Computer
Logical Operations
Instructions for Making Decisions
Supporting Procedures in Computer Hardware
Communicating with People
MIPS Addressing for 32-Bit Immediates and Addresses
Translating and Starting a Program
How Compilers Optimize
How Compilers Work: An Introduction
A C Sort Example to Put It All Together
Implementing an Object-Oriented Language
Arrays versus Pointers
Real Stuff: IA-32 Instructions
Fallacies and Pitfalls
Concluding Remarks
Historical Perspective and Further Reading
Exercises
Computers in the Real World: Helping Save Our Environment with Data
Arithmetic for Computers
Introduction
Signed and Unsigned Numbers
Addition and Subtraction
Multiplication
Division
Floating Point
Real Stuff: Floating Point in the IA-32
Fallacies and Pitfalls
Concluding Remarks
Historical Perspective and Further Reading
Exercises
Computers in the Real World: Reconstructing the Ancient World
Assessing and Understanding Performance
Introduction
CPU Performance and Its Factors
Evaluating Performance
Real Stuff: Two SPEC Benchmarks and the Performance of Recent Intel Processors
Fallacies and Pitfalls
Concluding Remarks
Historical Perspective and Further Reading
Exercises
Computers in The Real World: Moving People Faster and More Safely
The Processor: Datapath and Control
Introduction
Logic Design Conventions
Building a Datapath
A Simple Implementation Scheme
A Multicycle Implementation
Exceptions
Microprogramming: Simplifying Control Design
An Introduction to Digital Design Using a Hardware Design Language
Real Stuff: The Organization of Recent Pentium Implementations
Fallacies and Pitfalls
Concluding Remarks
Historical Perspective and Further Reading
Exercises
Computers in the Real World: Empowering the Disabled
Enhancing Performance with Pipelining
An Overview of Pipelining
A Pipelined Datapath
Pipelined Control
Data Hazards and Forwarding
Data Hazards and Stalls
Branch Hazards
Using a Hardware Description Language to Describe and Model a Pipeline
Exceptions
Advanced Pipelining: Extracting More Performance
Real Stuff: The Pentium 4 Pipeline
Fallacies and Pitfalls
Concluding Remarks
Historical Perspective and Further Reading
Exercises
Computers in the Real World: Mass Communication without Gatekeepers
Large and Fast: Exploiting Memory Hierarchy
Introduction
The Basics of Caches
Measuring and Improving Cache Performance
Virtual Memory
A Common Framework for Memory Hierarchies
Real Stuff: The Pentium P4 and the AMD Opteron Memory Hierarchies
Fallacies and Pitfalls
Concluding Remarks
Historical Perspective and Further Reading
Exercises
Computers in the Real World: Saving the World's Art Treasures
Storage, Networks, and Other Peripherals
Introduction
Disk Storage and Dependability
Networks
Buses and Other Connections between Processors, Memory, and I/O Devices
Interfacing I/O Devices to the Processor, Memory, and Operating System
I/O Performance Measures: Examples from Disk and File Systems
Designing an I/O System
Real Stuff: A Digital Camera
Fallacies and Pitfalls
Concluding Remarks
Historical Perspective and Further Reading
Exercises
Computers in the Real World: Saving Lives through Better Diagnosis
Multiprocessors and Clusters
Introduction
Programming Multiprocessors
Multiprocessors Connected by a Single Bus
Multiprocessors Connected by a Network
Clusters
Network Topologies
Multiprocessors Inside a Chip and Multithreading
Real Stuff: The Google Cluster of PCs
Fallacies and Pitfalls
Concluding Remarks
Historical Perspective and Further Reading
Exercises
Appendices
Assemblers, Linkers, and the SPIM Simulator
Introduction
Assemblers
Linkers
Loading
Memory Usage
Procedure Call Convention
Exceptions and Interrupts
Input and Output
SPIM
MIPS R2000 Assembly Language
Concluding Remarks
Exercises
The Basics of Logic Design
Introduction
Gates, Truth Tables, and Logic Equations
Combinational Logic
Using a Hardware Description Language
Constructing a Basic Arithmetic Logic Unit
Faster Addition: Carry Lookahead
Clocks
Memory Elements: Flip-flops, Latches, and Registers
Memory Elements: SRAMs and DRAMs
Finite State Machines
Timing Methodologies
Field Programmable Devices
Concluding Remarks
Exercises
Mapping Control to Hardware
Introduction
Implementing Combinational Control Units
Implementing Finite State Machine Control
Implementing the Next-State Function with a Sequencer
Translating a Microprogram to Hardware
Concluding Remarks
Exercises
A Survey of RISC Architectures for Desktop, Server, and Embedded Computers
Introduction
Addressing Modes and Instruction Formats
Instructions: The MIPS Core Subset
Instructions: Multimedia Extensions of the Desktop/Server RISCs
Instructions: Digital Signal-Processing Extensions of the Embedded RISCs
Instructions: Common Extensions to MIPS Core
Instructions Unique to MIPS64
Instructions Unique to Alpha
Instructions Unique to SPARC v.9
Instructions Unique to PowerPC
Instructions Unique to PA-RISC 2.0
Instructions Unique to ARM
Instructions Unique to Thumb
Instructions Unique to SuperH
Instructions Unique to M32R
Instructions Unique to MIPS16
Concluding Remarks
Acknowledgments
References
Index
Glossary
Further Reading