Computer Architecture

A Quantitative Approach

John L. Hennessy, David A. Patterson

Publisher: Morgan-Kaufmann, 1990, 754 pages

ISBN: 1-55860-069-8

Keywords: Operating Systems

Last modified: April 23, 2021, 11:05 a.m.

An excellent successor to Hennessy and Patterson's Computer Organization and Design, this book presents computer architecture and design as something quantitative that can be studied in the context of real running systems rather than in an abstract format. The concepts are grounded in real machine architectures and many of the examples are contemporary architectures.

Computer Architecture follows the same outline as its predecessor, but covers information in more depth, moving rapidly from introductory discussions to issues just shy of computer design research. The format again includes an excellent mix of exercises and historical background. This book is recommended for people with some experience in digital design — or people who have read and understood the authors' first text.

  1. Fundamentals of Computer Design
    1. Introduction
    2. Definitions of Performance
    3. Quantitative Principles of Computer Design
    4. The Job of a Computer Designer
    5. Putting It All Together: The Concept of Memory Hierarchy
    6. Fallacies and Pitfalls
    7. Concluding Remarks
    8. Historical Perspective and References
    • Exercises
  2. Performance and Cost
    1. Introduction
    2. Performance
    3. Cost
    4. Putting It All Together:
    5. Fallacies and Pitfalls
    6. Concluding Remarks
    7. Historical Perspective and References: Price/Performance of the Three Machines
    • Exercises
  3. Instruction Set Design: Alternatives and Principles
    1. Introduction
    2. Classifying Instruction Set Architectures
    3. Operand Storage in Memory: Classifying General-Purpose Register Machine
    4. Memory Addressing
    5. Operations in the Instruction Set
    6. Type and Size of Operands
    7. The Role of High-Level Languages and Compilers
    8. Putting It All Together: How Programs Use Instruction Sets
    9. Fallacies and Pitfalls
    10. Concluding Remarks
    11. Historical Perspective and References
    • Exercises
  4. Instruction Set Examples and Measurement of Use
    1. Instruction Measurements: What and Why
    2. The VAX Architecture
    3. The 360/370 Architectures
    4. The 8086 Architecture
    5. The DLX Architecture
    6. Putting It All Together: Measurements of Instructions Set Usage
    7. Fallacies and Pitfalls
    8. Concluding Remarks
    9. Historical Perspective and References
    • Exercises
  5. Basic Processor Implementation Techniques
    1. Introduction
    2. Processor Datapath
    3. Basic Steps of Execution
    4. Hardwired Control
    5. Microprogrammed Control
    6. Interrupts and Other Entanglements
    7. Putting It All Together: Control for DLX
    8. Fallacies and Pitfalls
    9. Concluding Remarks
    10. Historical Perspective and References
    • Exercises
  6. Pipelining
    1. What Is Pipelining?
    2. The Basic Pipeline for DLX
    3. Making the Pipeline Work
    4. The Major Hurdle of Pipelining -- Pipeline Hazards
    5. What Makes Pipelining Hard to Implement
    6. Extending the DLX Pipeline to Handle Multicycle Operations
    7. Advanced Pipelining -- Dynamic Scheduling in Pipelines
    8. Advanced Pipelining -- Taking Advantage of More Instruction-Level Parallelism
    9. Putting It All Together: A Pipelined VAX
    10. Fallacies and Pitfalls
    11. Concluding Remarks
    12. Historical Perspective and References
    • Exercises
  7. Vector Processors
    1. Why Vector Machines?
    2. Basic Vector Architecture
    3. Two Real-World Issues: Vector Length and Stride
    4. A Simple Model for Vector Performance
    5. Compiler Technology for Vector Machines
    6. Enhancing Vector Performance
    7. Putting It All Together: Evaluating the Performance of Vector Processors
    8. Fallacies and Pitfalls
    9. Concluding Remarks
    10. Historical Perspective and References
    • Exercises
  8. Memory-Hierarchy Design
    1. Introduction
    2. General Principles of Memory Hierarchy
    3. Caches
    4. Main Memory
    5. Virtual Memory
    6. Protection and Examples of Virtual Memory
    7. More Optimizations Based on Program Behavior
    8. Advanced Topics — Improving Cache-Memory Performance
    9. Putting It All Together: The VAX-11/780 Memory Hierarchy
    10. Fallacies and Pitfalls
    11. Concluding Remarks
    12. Historical Perspective and References
    • Exercises
  9. Input/Output
    1. Introduction
    2. Predicting System Performance
    3. I/O Performance Measures
    4. Types of I/O Performance Devices
    5. Buses — Connecting I/O Devices to CPU Memory
    6. Interfacing to the CPU
    7. Interfacing to an Operating System
    8. Designing an I/O System
    9. Putting It All Together: The IBM 3990 Storage Subsystem
    10. Fallacies and Pitfalls
    11. Concluding Remarks
    12. Historical Perspective and References
    • Exercises
  10. Future Directions
    1. Introduction
    2. Flynn Classification of Computers
    3. SIMD Computers — Single Instruction Stream, Multiple Data Streams
    4. MIMD Computer — Multiple Instruction Streams, Multiple Data Streams
    5. The Road to El Dorado
    6. Special-Purpose Processors
    7. Future Directions for Compilers
    8. Putting It All Together: The Sequent Symmetry Multiprocessor
    9. Fallacies and Pitfalls
    10. Concluding Remarks — Evolution Versus Revolution in Computer Architecture
    11. Historical Perspective and References
    • Exercises
  1. Computer Arithmetic
    1. Introduction
    2. Basic Techniques of Integer Arithmetic
    3. Floating Point
    4. Floating Point Addition
    5. Floating Point Multiplication
    6. Division and Remainder
    7. Precisions and Exception Handling
    8. Speeding Up Integer Addition
    9. Speeding Up Integer Multiple and Division
    10. Putting It All Together
    11. Fallacies and Pitfalls
    12. Historical Perspective and References
  2. Complete Instruction Set Tables
    1. VAX Instruction Set
    2. System/360 Instruction Set
    3. 8086 Instruction Set
  3. Detailed Instruction Set Measurements
    1. VAX Detailed Measurements
    2. 360 Detailed Measurements
    3. Intel 8086 Detailed Measurements
    4. DLX Detailed Instruction Set Measurements
  4. Time Versus Frequency Measurements
    1. Time Distribution on the VAX-11/780
    2. Time Distribution on the IBM 370/168
    3. Time Distribution on an 8086 in an IBM PC
    4. Time Distribution on a DLX Relative
  5. Survey of RISC Architectures
    1. Introduction
    2. Addressing Modes and Instruction Formats
    3. Instructions: The DLX Subset
    4. Instructions: Common Extensions to DLX
    5. Instructions Unique to MIPS
    6. Instructions Unique to SPARC
    7. Instructions Unique to M88000
    8. Instructions Unique to i860
    9. Concluding Remarks
    10. References

Reviews

Computer Architecture

Reviewed by Roland Buresund

OK ***** (5 out of 10)

Last modified: May 21, 2007, 2:57 a.m.

Worth a read if you're into System/360 and Assembler. This is the book that are supposed to have inspired Microsoft to write Windows NT (they needed a RISC computer, which this is discussing). A bit dated, but still worth a read.

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

captcha

required