Computer Organization and Design - 1st Edition - ISBN: 9781483207759, 9781483221182

Computer Organization and Design

1st Edition

The Hardware / Software Interface

Authors: John L. Hennessy David A. Patterson
eBook ISBN: 9781483221182
Imprint: Morgan Kaufmann
Published Date: 1st January 1994
Page Count: 876
Sales tax will be calculated at check-out Price includes VAT/GST
25% off
25% off
25% off
25% off
25% off
20% off
20% off
25% off
25% off
25% off
25% off
25% off
20% off
20% off
25% off
25% off
25% off
25% off
25% off
20% off
20% off
Price includes VAT/GST
× DRM-Free

Easy - Download and start reading immediately. There’s no activation process to access eBooks; all eBooks are fully searchable, and enabled for copying, pasting, and printing.

Flexible - Read on multiple operating systems and devices. Easily read eBooks on smart phones, computers, or any eBook readers, including Kindle.

Open - Buy once, receive and download all available eBook formats, including PDF, EPUB, and Mobi (for Kindle).

Institutional Access

Secure Checkout

Personal information is secured with SSL technology.

Free Shipping

Free global shipping
No minimum order.


Computer Organization and Design: The Hardware/Software Interface presents the interaction between hardware and software at a variety of levels, which offers a framework for understanding the fundamentals of computing. This book focuses on the concepts that are the basis for computers.

Organized into nine chapters, this book begins with an overview of the computer revolution. This text then explains the concepts and algorithms used in modern computer arithmetic. Other chapters consider the abstractions and concepts in memory hierarchies by starting with the simplest possible cache. This book discusses as well the complete data path and control for a processor. The final chapter deals with the exploitation of parallel machines.

This book is a valuable resource for students in computer science and engineering. Readers with backgrounds in assembly language and logic design who want to learn how to design a computer or understand how a system works will also find this book useful.

Table of Contents



The SPIM Simulator for the MIPS R2000/R3000

Chapters 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 Fallacies and Pitfalls

1.6 Concluding Remarks

1.7 Historical Perspective and Further Reading

1.8 Exercises

2 The Role of Performance

2.1 Introduction

2.2 Measuring Performance

2.3 Relating the Metrics

2.4 Popular Performance Metrics

2.5 Choosing Programs to Evaluate Performance

2.6 Comparing and Summarizing Performance

2.7 Fallacies and Pitfalls

2.8 Concluding Remarks

2.9 Historical Perspective and Further Reading

2.10 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 Other Styles of MIPS Addressing

3.8 Alternatives to the MIPS Approach

3.9 An Example to Put it All Together

3.10 A Longer Example

3.11 Arrays Versus Pointers

3.12 Fallacies and Pitfalls

3.13 Concluding Remarks

3.14 Historical Perspective and Further Reading

3.15 Exercises

4 Arithmetic for Computers

4.1 Introduction

4.2 Negative 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 Fallacies and Pitfalls

4.10 Concluding Remarks

4.11 Historical Perspective and Further Reading

4.12 Exercises

5 The Processor: Datapath and Control

5.1 Introduction

5.2 Building a Datapath

5.3 A Simple Implementation Scheme

5.4 A Multiple Clock Cycle Implementation

5.5 Microprogramming: Simplifying Control Design

5.6 Exceptions

5.7 Fallacies and Pitfalls

5.8 Concluding Remarks

5.9 Historical Perspective and Further Reading

5.10 Exercises

6 Enhancing Performance with Pipelining

6.1 Introduction

6.2 A Pipelined Datapath

6.3 Pipelined Control

6.4 Data Hazards

6.5 Control for Data Hazards: Stalls

6.6 Reducing Data Hazards: Forwarding

6.7 Branch Hazards

6.8 Exceptions

6.9 Performance of Pipelined Systems

6.10 Fallacies and Pitfalls

6.11 Concluding Remarks

6.12 Historical Perspective and Further Reading

6.13 Exercises

7 Large and Fast: Exploiting Memory Hierarchy

7.1 Introduction

7.2 Caches

7.3 Virtual Memory

7.4 A Common Framework for Memory Hierarchies

7.5 Fallacies and Pitfalls

7.6 Concluding Remarks

7.7 Historical Perspective and Further Reading

7.8 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 Fallacies and Pitfalls

8.7 Concluding Remarks

8.8 Historical Perspective and Further Reading

8.9 Exercises

9 Parallel Processors

9.1 Introduction

9.2 SIMD Computers—Single Instruction Stream, Multiple Data Streams

9.3 MIMD Computers—Multiple Instruction Streams, Multiple Data Streams

9.4 Programming MIMDs

9.5 MIMDs Connected by a Single Bus

9.6 MIMDs Connected by a Network

9.7 Future Directions for Parallel Processors

9.8 Fallacies and Pitfalls

9.9 Concluding Remarks—Evolution Versus Revolution in Computer Architecture

9.10 Historical Perspective and Further Reading

9.11 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.10 MIPS R2000 Assembly Language

A.11 Concluding Remarks

A.12 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 Exercises

C Mapping Control to Hardware

C.1 Introduction

C.2 Implementing Finite State Machine Control

C.3 Implementing the Next-State Function with a Sequencer

C.4 Translating a Microprogram to Hardware

C.5 Concluding Remarks

C.6 Exercises

D Introducing C to Pascal Programmers

D.1 Introduction

D.2 Variable Declarations

D.3 Assignment Statements

D.4 Relational Expressions and Conditional Statements

D.5 Loops

D.6 Examples to Put it All Together

D.7 Exercises

E Another Approach to Instruction Set Architecture—VAX

E.1 Introduction

E.2 VAX Operands and Addressing Modes

E.3 Encoding VAX Instructions

E.4 VAX Operations

E.5 An Example to Put it All Together: Swap

E.6 A Longer Example: Sort

E.7 Fallacies and Pitfalls

E.8 Concluding Remarks

E.9 Historical Perspective and Further Reading

E.10 Exercises



No. of pages:
© Morgan Kaufmann 1994
Morgan Kaufmann
eBook ISBN:

About the Author

John L. Hennessy

David A. Patterson

Ratings and Reviews