000 06034cam a2200337 i 4500
999 _c8235
_d8235
001 15327388
005 20201005130420.0
008 080612s2009 maua b 001 0 eng
010 _a 2008026443
020 _a9780123744937 (pbk. : alk. paper)
040 _aDLC
_cDLC
_dDLC
_dEG-NcFUE
_erda
050 0 0 _aQA76.9.C643
_bP37 2009
082 0 0 _a004.6
_222
_bP.D.C
100 1 _aPatterson, David A.
245 1 0 _aComputer organization and design :
_bthe hardware/software interface /
_cDavid A. Patterson, John L. Hennessy.
250 _aFourth edition.
260 _aBurlington, MA :
_bMorgan Kaufmann Publishers,
_cc2009.
300 _a1 volume (various pagings) :
_billustration. ;
_c24 cm. +
_e1 CD-ROM (4 3/4 in.)
336 _2rdacontent
_atext
337 _2rdamedia
_aunmediated
338 _2rdacarrier
_avolume
500 _aIncludes bibliographical references and index.
505 0 _aChapter 1. Computer Abstractions and Technology 1.1 Introduction 1.2 Below Your Program 1.3 Under the Covers 1.4 Performance 1.5 The Power Wall 1.6 The Sea Change: The Switch from Uniprocessors to Multiprocessors 1.7 Real Stuff: Manufacturing and Benchmarking the AMD Opteron X4 1.8 Fallacies and Pitfalls 1.9 Concluding Remarks 1.10 Historical Perspective and Further Reading 1.11 Exercises Chapter 2. Instructions: Language of the Computer 2.1 Introduction 2.2 Operations of the Computer Hardware 2.3 Operands of the Computer Hardware 2.4 Signed and Unsigned Numbers 2.5 Representing Instructions in the Computer 2.6 Logical Operations 2.7 Instructions for Making Decisions 2.8 Supporting Procedures in Computer Hardware 2.9 Communicating with People 2.10 MIPS Addressing for 32-Bit Immediates and Addresses 2.11 Parallelism and Instructions: Synchronization 2.12 Translating and Starting a Program 2.13 A C Sort Example to Put It All Together 2.14 Arrays versus Pointers 2.15 Advanced Material: Compiling C and Interpreting Java 2.16 Real Stuff: ARM Instructions 2.17 Real Stuff: x86 Instructions 2.18 Fallacies and Pitfalls 2.19 Concluding Remarks 2.20 Historical Perspective and Further Reading 2.21 Exercises Chapter 3. Arithmetic for Computers 3.1 Introduction 3.2 Addition and Subtraction 3.3 Multiplication 3.4 Division 3.5 Floating Point 3.6 Parallelism and Computer Arithmetic: Associativity 3.7 Real Stuff: Floating Point in the x86 3.8 Fallacies and Pitfalls 3.9 Concluding Remarks 3.10 Historical Perspective and Further Reading 3.11 Exercises Chapter 4. The Processor 4.1 Introduction 4.2 Logic Design Conventions 4.3 Building a Datapath 4.4 A Simple Implementation Scheme 4.5 An Overview of Pipelining 4.6 Pipelined Datapath and Control 4.7 Data Hazards: Forwarding versus Stalling 4.8 Control Hazards 4.9 Exceptions 4.10 Parallelism and Advanced Instruction-Level Parallelism 4.11 Real Stuff: the AMD Opteron X4 (Barcelona) Pipeline 4.12 Advanced Topic: an Introduction to Digital Design Using a Hardware Design Language to Describe 4.13 Fallacies and Pitfalls 4.14 Concluding Remarks 4.15 Historical Perspective and Further Reading 4.16 Exercises Chapter 5. Large and Fast: Exploiting Memory Hierarchy 5.1 Introduction 5.2 The Basics of Caches 5.3 Measuring and Improving Cache Performance 5.4 Virtual Memory 5.5 A Common Framework for Memory Hierarchies 5.6 Virtual Machines 5.7 Using a Finite-State Machine to Control a Simple Cache 5.8 Parallelism and Memory Hierarchies: Cache Coherence 5.9 Advanced Material: Implementing Cache Controllers 5.10 Real Stuff: the AMD Opteron X4 (Barcelona) and Intel Nehalem Memory Hierarchies 5.11 Fallacies and Pitfalls 5.12 Concluding Remarks 5.13 Historical Perspective and Further Reading 5.14 Exercises Chapter 6. Storage and Other I/O Topics 6.1 Introduction 6.2 Dependability, Reliability, and Availability 6.3 Disk Storage 6.4 Flash Storage 6.5 Connecting Processors, Memory, and I/O Devices 6.6 Interfacing I/O Devices to the Processor, Memory, and Operating System 6.7 I/O Performance Measures: Examples from Disk and File Systems 6.8 Designing an I/O System 6.9 Parallelism and I/O: Redundant Arrays of Inexpensive Disks 6.10 Real Stuff: Sun Fire x4150 Server 6.11 Advanced Topics: Networks 6.12 Fallacies and Pitfalls 6.13 Concluding Remarks 6.14 Historical Perspective and Further Reading 6.15 Exercises Chapter 7. Multicores, Multiprocessors, and Clusters 7.1 Introduction 7.2 The Difficulty of Creating Parallel Processing Programs 7.3 Shared Memory Multiprocessors 7.4 Clusters and Other Message-Passing Multiprocessors 7.5 Hardware Multithreading 7.6 SISD, MIMD, SIMD, SPMD, and Vector 7.7 Introduction to Graphics Processing Units 7.8 Introduction to Multiprocessor Network Topologies 7.9 Multiprocessor Benchmarks 7.10 Roofline: A Simple Performance Model 7.11 Real Stuff: Benchmarking Four Multicores Using the Roofline Model 7.12 Fallacies and Pitfalls 7.13 Concluding Remarks 7.14 Historical Perspective and Further Reading 7.15 Exercises Appendix A. Graphics and Computing GPUs A.1 Introduction A.2 GPU System Architectures A.3 Programming GPUs A.4 Multithreaded Multiprocessor Architecture A.5 Parallel Memory System A.6 Floating-point Arithmetic A.7 Real Stuff: The NVIDIA GeForce 8800 A.8 Real Stuff: Mapping Applications to GPUs A.9 Fallacies and Pitfalls A.10 Concluding Remarks A.11 Historical Perspective and Further Reading Appendix B. Assemblers, Linkers, and the SPIM Simulator B.1 Introduction B.2 Assemblers B.3 Linkers B.4 Loading B.5 Memory Usage B.6 Procedure Call Convention B.7 Exceptions and Interrupts B.8 Input and Output B.9 SPIM B.10 MIPS R2000 Assembly Language B.11 Concluding Remarks B.12 Exercises Index
650 0 _aComputer organization.
_920707
650 0 _aComputer engineering.
650 0 _aComputer interfaces.
700 1 _aHennessy, John L.
856 4 1 _3Table of contents only
_uhttp://www.loc.gov/catdir/toc/ecip0821/2008026443.html
942 _cBK
_2ddc