Computer organization and design : the hardware/software interface / John L. Hennessy, David A. Patterson ; with a contribution by James R. Larus.
By: Hennessy, John L.
Contributor(s): Patterson, David A.
Material type: BookPublisher: San Francisco, CA : Morgan Kaufmann Publishers, 1998Edition: 2nd ed.Description: xxix, 757,[50] p. : ill.(some col.) ; 25 cm. + pbk.ISBN: 1558604286 (hbk); 155860491X (pbk).Subject(s): Computer organization | Computer engineering | Computer interfacesDDC classification: 004.2Item type | Current library | Call number | Copy number | Status | Date due | Barcode | Item holds |
---|---|---|---|---|---|---|---|
General Lending | MTU Bishopstown Library Lending | 004.2 (Browse shelf(Opens below)) | 1 | Available | 00076242 |
Enhanced descriptions from Syndetics:
This book trains the student with the concepts needed to lay a solid foundation for joining this exciting field. More importantly, this book provides a framework for thinking about computer organization and design that will enable the reader to continue the lifetime of learning necessary for staying at the forefront of this competitive discipline. --John Crawford Intel Fellow Director of Microprocessor Architecture, Intel 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 worked examples that incrementally add more complex instructions until they ha
Includes bibliographical references and index.
Computer Abstractions and Technology -- The Role of Performance -- Instructions: Language of the Machine -- Arithmetic for Computers -- The Processor: Datapath and Control -- Enhancing Performance with Pipelining -- Large and Fast: Exploiting memory hierarchy -- Interfacing processors and peripherals -- Multiprocessors.
Table of contents provided by Syndetics
- Preface (p. ix)
- 1 Computer Abstractions and Technology (p. 2)
- 1.1 Introduction (p. 3)
- 1.2 Below Your Program (p. 11)
- 1.3 Under the Covers (p. 15)
- 1.4 Real Stuff: Manufacturing Pentium 4 Chips (p. 28)
- 1.5 Fallacies and Pitfalls (p. 33)
- 1.6 Concluding Remarks (p. 35)
- 1.7 Historical Perspective and Further Reading (p. 36)
- 1.8 Exercises (p. 36)
- Computers in the Real World: Information Technology for the 4 Billion without IT (p. 44)
- 2 Instructions: Language of the Computer (p. 46)
- 2.1 Introduction (p. 48)
- 2.2 Operations of the Computer Hardware (p. 49)
- 2.3 Operands of the Computer Hardware (p. 52)
- 2.4 Representing Instructions in the Computer (p. 60)
- 2.5 Logical Operations (p. 68)
- 2.6 Instructions for Making Decisions (p. 72)
- 2.7 Supporting Procedures in Computer Hardware (p. 79)
- 2.8 Communicating with People (p. 90)
- 2.9 MIPS Addressing for 32-Bit Immediates and Addresses (p. 95)
- 2.10 Translating and Starting a Program (p. 106)
- 2.11 How Compilers Optimize (p. 116)
- 2.12 How Compilers Work: An Introduction (p. 121)
- 2.13 A C Sort Example to Put It All Together (p. 121)
- 2.14 Implementing an Object-Oriented Language (p. 130)
- 2.15 Arrays versus Pointers (p. 130)
- 2.16 Real Stuff: IA-32 Instructions (p. 134)
- 2.17 Fallacies and Pitfalls (p. 143)
- 2.18 Concluding Remarks (p. 145)
- 2.19 Historical Perspective and Further Reading (p. 147)
- 2.20 Exercises (p. 147)
- Computers in the Real World: Helping Save Our Environment with Data (p. 156)
- 3 Arithmetic for Computers (p. 158)
- 3.1 Introduction (p. 160)
- 3.2 Signed and Unsigned Numbers (p. 160)
- 3.3 Addition and Subtraction (p. 170)
- 3.4 Multiplication (p. 176)
- 3.5 Division (p. 183)
- 3.6 Floating Point (p. 189)
- 3.7 Real Stuff: Floating Point in the IA-32 (p. 217)
- 3.8 Fallacies and Pitfalls (p. 220)
- 3.9 Concluding Remarks (p. 225)
- 3.10 Historical Perspective and Further Reading (p. 229)
- 3.11 Exercises (p. 229)
- Computers in the Real World: Reconstructing the Ancient World (p. 236)
- 4 Assessing and Understanding Performance (p. 238)
- 4.1 Introduction (p. 240)
- 4.2 CPU Performance and Its Factors (p. 246)
- 4.3 Evaluating Performance (p. 254)
- 4.4 Real Stuff: Two SPEC Benchmarks and the Performance of Recent Intel Processors (p. 259)
- 4.5 Fallacies and Pitfalls (p. 266)
- 4.6 Concluding Remarks (p. 270)
- 4.7 Historical Perspective and Further Reading (p. 272)
- 4.8 Exercises (p. 272)
- Computers in The Real World: Moving People Faster and More Safely (p. 280)
- 5 The Processor: Datapath and Control (p. 282)
- 5.1 Introduction (p. 284)
- 5.2 Logic Design Conventions (p. 289)
- 5.3 Building a Datapath (p. 292)
- 5.4 A Simple Implementation Scheme (p. 300)
- 5.5 A Multicycle Implementation (p. 318)
- 5.6 Exceptions (p. 340)
- 5.7 Microprogramming: Simplifying Control Design (p. 346)
- 5.8 An Introduction to Digital Design Using a Hardware Design Language (p. 346)
- 5.9 Real Stuff: The Organization of Recent Pentium Implementations (p. 347)
- 5.10 Fallacies and Pitfalls (p. 350)
- 5.11 Concluding Remarks (p. 352)
- 5.12 Historical Perspective and Further Reading (p. 353)
- 5.13 Exercises (p. 354)
- Computers in the Real World: Empowering the Disabled (p. 366)
- 6 Enhancing Performance with Pipelining (p. 368)
- 6.1 An Overview of Pipelining (p. 370)
- 6.2 A Pipelined Datapath (p. 384)
- 6.3 Pipelined Control (p. 399)
- 6.4 Data Hazards and Forwarding (p. 402)
- 6.5 Data Hazards and Stalls (p. 413)
- 6.6 Branch Hazards (p. 416)
- 6.7 Using a Hardware Description Language to Describe and Model a Pipeline (p. 426)
- 6.8 Exceptions (p. 427)
- 6.9 Advanced Pipelining: Extracting More Performance (p. 432)
- 6.10 Real Stuff: The Pentium 4 Pipeline (p. 448)
- 6.11 Fallacies and Pitfalls (p. 451)
- 6.12 Concluding Remarks (p. 452)
- 6.13 Historical Perspective and Further Reading (p. 454)
- 6.14 Exercises (p. 454)
- Computers in the Real World: Mass Communication without Gatekeepers (p. 464)
- 7 Large and Fast: Exploiting Memory Hierarchy (p. 466)
- 7.1 Introduction (p. 468)
- 7.2 The Basics of Caches (p. 473)
- 7.3 Measuring and Improving Cache Performance (p. 492)
- 7.4 Virtual Memory (p. 511)
- 7.5 A Common Framework for Memory Hierarchies (p. 538)
- 7.6 Real Stuff: The Pentium P4 and the AMD Opteron Memory Hierarchies (p. 546)
- 7.7 Fallacies and Pitfalls (p. 550)
- 7.8 Concluding Remarks (p. 552)
- 7.9 Historical Perspective and Further Reading (p. 555)
- 7.10 Exercises (p. 555)
- Computers in the Real World: Saving the World's Art Treasures (p. 562)
- 8 Storage, Networks, and Other Peripherals (p. 564)
- 8.1 Introduction (p. 566)
- 8.2 Disk Storage and Dependability (p. 569)
- 8.3 Networks (p. 580)
- 8.4 Buses and Other Connections between Processors, Memory, and I/O Devices (p. 581)
- 8.5 Interfacing I/O Devices to the Processor, Memory, and Operating System (p. 588)
- 8.6 I/O Performance Measures: Examples from Disk and File Systems (p. 597)
- 8.7 Designing an I/O System (p. 600)
- 8.8 Real Stuff: A Digital Camera (p. 603)
- 8.9 Fallacies and Pitfalls (p. 606)
- 8.10 Concluding Remarks (p. 609)
- 8.11 Historical Perspective and Further Reading (p. 611)
- 8.12 Exercises (p. 611)
- Computers in the Real World: Saving Lives through Better Diagnosis (p. 622)
- 9 Multiprocessors and Clusters (p. 2)
- 9.1 Introduction (p. 4)
- 9.2 Programming Multiprocessors (p. 8)
- 9.3 Multiprocessors Connected by a Single Bus (p. 11)
- 9.4 Multiprocessors Connected by a Network (p. 20)
- 9.5 Clusters (p. 25)
- 9.6 Network Topologies (p. 27)
- 9.7 Multiprocessors Inside a Chip and Multithreading (p. 30)
- 9.8 Real Stuff: The Google Cluster of PCs (p. 34)
- 9.9 Fallacies and Pitfalls (p. 39)
- 9.10 Concluding Remarks (p. 42)
- 9.11 Historical Perspective and Further Reading (p. 47)
- 9.12 Exercises (p. 55)
- Appendices
- A Assemblers, Linkers, and the SPIM Simulator (p. 2)
- A.1 Introduction (p. 3)
- A.2 Assemblers (p. 10)
- A.3 Linkers (p. 18)
- A.4 Loading (p. 19)
- A.5 Memory Usage (p. 20)
- A.6 Procedure Call Convention (p. 22)
- A.7 Exceptions and Interrupts (p. 33)
- A.8 Input and Output (p. 38)
- A.9 SPIM (p. 40)
- A.10 MIPS R2000 Assembly Language (p. 45)
- A.11 Concluding Remarks (p. 81)
- A.12 Exercises (p. 82)
- B The Basics of Logic Design (p. 2)
- B.1 Introduction (p. 3)
- B.2 Gates, Truth Tables, and Logic Equations (p. 4)
- B.3 Combinational Logic (p. 8)
- B.4 Using a Hardware Description Language (p. 20)
- B.5 Constructing a Basic Arithmetic Logic Unit (p. 26)
- B.6 Faster Addition: Carry Lookahead (p. 38)
- B.7 Clocks (p. 47)
- B.8 Memory Elements: Flip-flops, Latches, and Registers (p. 49)
- B.9 Memory Elements: SRAMs and DRAMs (p. 57)
- B.10 Finite State Machines (p. 67)
- B.11 Timing Methodologies (p. 72)
- B.12 Field Programmable Devices (p. 77)
- B.13 Concluding Remarks (p. 78)
- B.14 Exercises (p. 79)
- C Mapping Control to Hardware (p. 2)
- C.1 Introduction (p. 3)
- C.2 Implementing Combinational Control Units (p. 4)
- C.3 Implementing Finite State Machine Control (p. 8)
- C.4 Implementing the Next-State Function with a Sequencer (p. 21)
- C.5 Translating a Microprogram to Hardware (p. 27)
- C.6 Concluding Remarks (p. 31)
- C.7 Exercises (p. 32)
- D A Survey of RISC Architectures for Desktop, Server, and Embedded Computers (p. 2)
- D.1 Introduction (p. 3)
- D.2 Addressing Modes and Instruction Formats (p. 5)
- D.3 Instructions: The MIPS Core Subset (p. 9)
- D.4 Instructions: Multimedia Extensions of the Desktop/Server RISCs (p. 16)
- D.5 Instructions: Digital Signal-Processing Extensions of the Embedded RISCs (p. 19)
- D.6 Instructions: Common Extensions to MIPS Core (p. 20)
- D.7 Instructions Unique to MIPS64 (p. 25)
- D.8 Instructions Unique to Alpha (p. 27)
- D.9 Instructions Unique to SPARC v.9 (p. 29)
- D.10 Instructions Unique to PowerPC (p. 32)
- D.11 Instructions Unique to PA-RISC 2.0 (p. 34)
- D.12 Instructions Unique to ARM (p. 36)
- D.13 Instructions Unique to Thumb (p. 38)
- D.14 Instructions Unique to SuperH (p. 39)
- D.15 Instructions Unique to M32R (p. 40)
- D.16 Instructions Unique to MIPS16 (p. 41)
- D.17 Concluding Remarks (p. 43)
- D.18 Acknowledgments (p. 46)
- D.19 References (p. 47)
- Index (p. 1)
- Glossary (p. 1)
- Further Reading (p. 1)