Muutke küpsiste eelistusi

Computer Organization and Design: The Hardware/Software Interface 4th edition [Pehme köide]

3.97/5 (1774 hinnangut Goodreads-ist)
(Pardee Professor of Computer Science, Emeritus, University of California, Berkeley, USA), (Departments of Electrical Engineering and Computer Science, Stanford University, USA)
Teised raamatud teemal:
  • Pehme köide
  • Hind: 93,69 €*
  • * saadame teile pakkumise kasutatud raamatule, mille hind võib erineda kodulehel olevast hinnast
  • See raamat on trükist otsas, kuid me saadame teile pakkumise kasutatud raamatule.
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Lisa soovinimekirja
Teised raamatud teemal:
Computer Organization and Design, Fourth Edition, has been updated with new exercises and improvements throughout suggested by instructors teaching from the book.

It covers the revolutionary change from sequential to parallel computing, with a chapter on parallelism and sections in every chapter highlighting parallel hardware and software topics. It includes an appendix by the Chief Scientist and the Director of Architecture of NVIDIA covering the emergence and importance of the modern GPU, describing in detail for the first time the highly parallel, highly multithreaded multiprocessor optimized for visual computing. A companion CD provides a toolkit of simulators and compilers along with tutorials for using them, as well as advanced content for further study and a search utility for finding content on the CD and in the printed text. For the convenience of readers who have purchased an ebook edition or who may have misplaced the CD-ROM, all CD content is available as a download at bit.ly/nFXcLq.

This book is recommended for professional digital system designers, programmers, application developers, and system software developers; and undergraduate students in Computer Science, Computer Engineering and Electrical Engineering courses in Computer Organization, Computer Design, ranging from Sophomore required courses to Senior Electives.

Arvustused

"The new coverage of multiprocessors and parallelism lives up to the standards of this well-written classic. It provides well-motivated, gentle introductions to the new topics, as well as many details and examples drawn from curent hardware." -- John Greiner, Rice University

"Patterson and Hennessy not only improve the pedagogy of the traditional material on pipelined processors and memory hierarchies, but also greatly expand the multiprocessor coverage to include emerging multicore processors and GPUs. Computer Organization and Design sets a new benchmark against which all other architecture books must be compared." -- David A. Wood, University of Wisconsin-Madison

"Intended for computer science students and programmers of varied experience levels, this textbook on computer design and engineering provides a firm foundation in hardware engineering and computer architecture that will aid readers not only in working with hardware design and assembly language programming, but inform software engineers as to the underlying technologies and principles at work in machines they program for. Topics discussed include computer abstractions and technologies, instructions as to the language of computer hardware, arithmetic for computers, processors, memory hierarchies, storage and I/O, and multicores and multiprocessors. A series of appendices offers detailed information on graphics and GPU processes. Chapters include numerous illustrations and code examples and an accompanying CD-ROM provides additional chapters and other resources. This fourth edition is updated to account for the latest technological improvements."--Reference and Research Book News, Inc.

"This book, now in its fourth edition, is a comprehensive introduction to modern computer architecture and is aimed at a variety of audiences with backgrounds in either hardware or softwareWhile there is a great deal of technical content, concepts are lucidly described and always given meaningful context. I found this book to be an interesting read and certainly a book I'd plan to read again." --BCS.org

Preface xv
1 Computer Abstractions and Technology 2(72)
1.1 Introduction
3(7)
1.2 Below Your Program
10(3)
1.3 Under the Covers
13(13)
1.4 Performance
26(13)
1.5 The Power Wall
39(2)
1.6 The Sea Change: The Switch from Uniprocessors to Multiprocessors
41(3)
1.7 Real Stuff: Manufacturing and Benchmarking the AMD Opteron X4
44(7)
1.8 Fallacies and Pitfalls
51(3)
1.9 Concluding Remarks
54(1)
1.10 Historical Perspective and Further Reading
55(1)
1.11 Exercises
56(18)
2 Instructions: Language of the Computer 74(148)
2.1 Introduction
76(1)
2.2 Operations of the Computer Hardware
77(3)
2.3 Operands of the Computer Hardware
80(7)
2.4 Signed and Unsigned Numbers
87(7)
2.5 Representing Instructions in the Computer
94(8)
2.6 Logical Operations
102(3)
2.7 Instructions for Making Decisions
105(7)
2.8 Supporting Procedures in Computer Hardware
112(10)
2.9 Communicating with People
122(6)
2.10 MIPS Addressing for 32-Bit Immediates and Addresses
128(9)
2.11 Parallelism and Instructions: Synchronization
137(2)
2.12 Translating and Starting a Program
139(10)
2.13 A C Sort Example to Put It All Together
149(8)
2.14 Arrays versus Pointers
157(4)
2.15 Advanced Material: Compiling C and Interpreting Java
161(1)
2.16 Real Stuff: ARM Instructions
161(4)
2.17 Real Stuff: x86 Instructions
165(9)
2.18 Fallacies and Pitfalls
174(2)
2.19 Concluding Remarks
176(3)
2.20 Historical Perspective and Further Reading
179(1)
2.21 Exercises
179(43)
3 Arithmetic for Computers 222(76)
3.1 Introduction
224(1)
3.2 Addition and Subtraction
224(6)
3.3 Multiplication
230(6)
3.4 Division
236(6)
3.5 Floating Point
242(28)
3.6 Parallelism and Computer Arithmetic: Associativity
270(2)
3.7 Real Stuff: Floating Point in the x86
272(3)
3.8 Fallacies and Pitfalls
275(5)
3.9 Concluding Remarks
280(3)
3.10 Historical Perspective and Further Reading
283(1)
3.11 Exercises
283(15)
4 The Processor 298(152)
4.1 Introduction
300(3)
4.2 Logic Design Conventions
303(4)
4.3 Building a Datapath
307(9)
4.4 A Simple Implementation Scheme
316(14)
4.5 An Overview of Pipelining
330(14)
4.6 Pipetined Datapath and Control
344(19)
4.7 Data Hazards: Forwarding versus Stalling
363(12)
4.8 Control Hazards
375(9)
4.9 Exceptions
384(7)
4.10 Parallelism and Advanced Instruction-Level Parallelism
391(13)
4.11 Real Stuff: the AMD Opteron X4 (Barcelona) Pipeline
404(2)
4.12 Advanced Topic: an Introduction to Digital Design Using a Hardware Design Language to Describe and Model a Pipeline and More Pipelining Illustrations
406(1)
4.13 Fallacies and Pitfalls
407(1)
4.14 Concluding Remarks
408(1)
4.15 Historical Perspective and Further Reading
409(1)
4.16 Exercises
409(41)
5 Large and Fast: Exploiting Memory Hierarchy 450(118)
5.1 Introduction
452(5)
5.2 The Basics of Caches
457(18)
5.3 Measuring and Improving Cache Performance
475(17)
5.4 Virtual Memory
492(26)
5.5 A Common Framework for Memory Hierarchies
518(7)
5.6 Virtual Machines
525(4)
5.7 Using a Finite-State Machine to Control a Simple Cache
529(5)
5.8 Parallelism and Memory Hierarchies: Cache Coherence
534(4)
5.9 Advanced Material: Implementing Cache Controllers
538(1)
5.10 Real Stuff: the AMD Opteron X4 (Barcelona) and Intel Nehalem Memory Hierarchies
539(4)
5.11 Fallacies and Pitfalls
543(4)
5.12 Concluding Remarks
547(1)
5.13 Historical Perspective and Further Reading
548(1)
5.14 Exercises
548(20)
6 Storage and Other I/O Topics 568(62)
6.1 Introduction
570(3)
6.2 Dependability, Reliability, and Availability
573(2)
6.3 Disk Storage
575(5)
6.4 Flash Storage
580(2)
6.5 Connecting Processors, Memory, and I/O Devices
582(4)
6.6 Interfacing I/O Devices to the Processor, Memory, and Operating System
586(10)
6.7 I/O Performance Measures: Examples from Disk and File Systems
596(2)
6.8 Designing an I/O System
598(1)
6.9 Parallelism and I/O: Redundant Arrays of Inexpensive Disks
599(7)
6.10 Real Stuff: Sun Fire x4150 Server
606(6)
6.11 Advanced Topics: Networks
612(1)
6.12 Fallacies and Pitfalls
613(4)
6.13 Concluding Remarks
617(1)
6.14 Historical Perspective and Further Reading
618(1)
6.15 Exercises
619(11)
7 Multicores, Multiprocessors, and Clusters 630
7.1 Introduction
632(2)
7.2 The Difficulty of Creating Parallel Processing Programs
634(4)
7.3 Shared Memory Multiprocessors
638(3)
7.4 Clusters and Other Message-Passing Multiprocessors
641(4)
7.5 Hardware Multithreading
645(3)
7.6 SISD, MIMD, SIMD, SPMD, and Vector
648(6)
7.7 Introduction to Graphics Processing Units
654(6)
7.8 Introduction to Multiprocessor Network Topologies
660(4)
7.9 Multiprocessor Benchmarks
664(3)
7.10 Roofline: A Simple Performance Model
667(8)
7.11 Real Stuff: Benchmarking Four Multicores Using the Roofline Model
675(9)
7.12 Fallacies and Pitfalls
684(2)
7.13 Concluding Remarks
686(2)
7.14 Historical Perspective and Further Reading
688(1)
7.15 Exercises
688
Appendices
A Graphics and Computing GPUs
A-2
A.1 Introduction
A-3
A.2 GPU System Architectures
A-7
A.3 Programming GPUs
A-12
A.4 Multithreaded Multiprocessor Architecture
A-25
A.5 Parallel Memory System
A-36
A.6 Floating Point Arithmetic
A-41
A.7 Real Stuff: The NVIDIA GeForce 8800
A-46
A.8 Real Stuff: Mapping Applications to GPUs
A-55
A.9 Fallacies and Pitfalls
A-72
A.10 Concluding Remarks
A-76
A.11 Historical Perspective and Further Reading
A-77
B Assemblers, Linkers, and the SPIM Simulator
B-2
B.1 Introduction
B-3
B.2 Assemblers
B-10
B.3 Linkers
B-18
B.4 Loading
B-19
B.5 Memory Usage
B-20
B.6 Procedure Call Convention
B-22
B.7 Exceptions and Interrupts
B-33
B.8 Input and Output
B-38
B.9 SPIM
B-40
B.10 MIPS R2000 Assembly Language
B-45
B.11 Concluding Remarks
B-81
B.12 Exercises
B-82
Index I-1
ACM named David A. Patterson a recipient of the 2017 ACM A.M. Turing Award for pioneering a systematic, quantitative approach to the design and evaluation of computer architectures with enduring impact on the microprocessor industry. David A. Patterson is the Pardee Chair of Computer Science, Emeritus at the University of California Berkeley. His teaching has been honored by the Distinguished Teaching Award from the University of California, the Karlstrom Award from ACM, and the Mulligan Education Medal and Undergraduate Teaching Award from IEEE. Patterson received the IEEE Technical Achievement Award and the ACM Eckert-Mauchly Award for contributions to RISC, and he shared the IEEE Johnson Information Storage Award for contributions to RAID. He also shared the IEEE John von Neumann Medal and the C & C Prize with John Hennessy. Like his co-author, Patterson is a Fellow of the American Academy of Arts and Sciences, the Computer History Museum, ACM, and IEEE, and he was elected to the National Academy of Engineering, the National Academy of Sciences, and the Silicon Valley Engineering Hall of Fame. He served on the Information Technology Advisory Committee to the U.S. President, as chair of the CS division in the Berkeley EECS department, as chair of the Computing Research Association, and as President of ACM. This record led to Distinguished Service Awards from ACM, CRA, and SIGARCH. ACM named John L. Hennessy a recipient of the 2017 ACM A.M. Turing Award for pioneering a systematic, quantitative approach to the design and evaluation of computer architectures with enduring impact on the microprocessor industry. John L. Hennessy is a Professor of Electrical Engineering and Computer Science at Stanford University, where he has been a member of the faculty since 1977 and was, from 2000 to 2016, its tenth President. Prof. Hennessy is a Fellow of the IEEE and ACM; a member of the National Academy of Engineering, the National Academy of Science, and the American Philosophical Society; and a Fellow of the American Academy of Arts and Sciences. Among his many awards are the 2001 Eckert-Mauchly Award for his contributions to RISC technology, the 2001 Seymour Cray Computer Engineering Award, and the 2000 John von Neumann Award, which he shared with David Patterson. He has also received seven honorary doctorates.