Computer Architecture

COA9eStallings, W. (2013) Computer Organization and Architecture – Designing for Performance, Ninth Edition, International Edition, Pearson

Companion Website: http://williamstallings.com/ComputerOrganization/
http://williamstallings.com/ComputerOrganization/styled-3/
  (Ninth Edition)

Download eBook PDF (ZIP 5MB)

Computer Organization and Architecture is a comprehensive coverage of the entire field of computer design updated with the most recent research and innovations in computer structure and function. With clear, concise, and easy-to-read material, the Tenth Edition is a user-friendly source for students studying computers. Subjects such as I/O functions and structures, RISC, and parallel processors are explored integratively throughout, with real world examples enhancing the text for student interest. With brand new material and strengthened pedagogy, this text engages students in the world of computer organization and architecture.

Computer Organization and Architecture contains the following features to facilitate learning:

UPDATED! Information on the newest technology in computer design

  • NEW! Chapter on GPUs (General Purpose Computing on Graphics Processing Units) highlights one of the most important new developments in computer science. Their ability to coordinate with traditional CPUs to handle large amounts of data over a wide range of applications make them widely used throughout the field.
  • NEW! Heterogeneous Multicore Processors are surveyed in a new section of the text.
  • NEW! Embedded Systems overview in chapter 1 has been greatly expanded and revised to reflect the current state of embedded technology.
  • NEW! Microcontrollers are mentioned in chapter 1 for their widespread use in almost all modern computers. The ARM Cortex-M3 microcontroller is used as an ongoing example throughout the text.
  • NEW! Cloud Computing is newly discussed by the book as an overview in chapter 1 and a detailed discussion in chapter 17.
  • NEW! System Performance issues coverage has been revised, expanded, and reorganized for a clearer and more thorough treatment throughout the text. Chapter 2 is devoted to the topic, and the subject is explored integratively throughout the text.
  • NEW! Flash Memory coverage has been revised and expanded with new information, including a new discussion of technology and organization of flash memory for internal memory (chapter 5) and external memory (chapter 6).
  • NEW! Nonvolatile RAMtechnologies STT-RAM, PCRAM, and ReRAM are newly covered.
  • NEW! Direct Cache Address (DCA) are detailed in chapter 7, developed by computer manufacturers to meet processing demands for high speed networks.
  • UPDATED! Intel Core Microarchitecture continues to be used as a major example throughout with information reflecting newer Intel systems such as Intel Core Microarchitecture.

A comprehensive coverage of the entire field of computer design

  • Systems are viewed from both the architectural and organizational structure perspectives to help students gain a comprehensive view of computer design.
  • A unified Treatment of I/O provides a full understanding of I/O functions and structures, including two important external interface examples: FireWire and InfiniBand.
  • A focus on RISC gives students a broad understanding of this technology, found in virtually all contemporary machines.
  • Parallel Processors such as symmetric multiprocessors (SMP), clusters, and NUMA systems are covered in an exceptionally clear, well-organized manner throughout the text.
  • Microprogrammed Implementation is thoroughly covered, allowing students to gain a complete understanding of processor organization.
  • Multicore Processor Coverage is explained as a standard in processor design.
  • Embedded Processors and the unique design issues they present are acknowledged by the text. The ARM architecture is used as a case study.

A text that conveys information through real world examples and practice

  • UPDATED! Homework Problems have been expanded upon and added to the text with solutions.
  • Case studies of Intel x86 and embedded ARM architectures supplement and explain material.
  • Over 20 Interactive Web Simulations supplement to major portions of the text to illustrate computer architecture design issues.
  • Appendices are available online as PDFs to make the book more concise and easier to transport.

PART ONE: OVERVIEW

  • Chapter 1: Basic Concepts and Computer Evolution
  • Chapter 2: Performance Issues

PART TWO: THE COMPUTER SYSTEM

  • Chapter 3: A Top-Level View of Computer Function and Interconnection
  • Chapter 4: Cache Memory
  • Chapter 5: Internal Memory Technology
  • Chapter 6: External Memory
  • Chapter 7: Input/Output
  • Chapter 8: Operating System Support

PART THREE: ARITHMETIC AND LOGIC

  • Chapter 9: Number Systems
  • Chapter 10: Computer Arithmetic
  • Chapter 11: Digital Logic

PART FOUR: THE CENTRAL PROCESSING UNIT

  • Chapter 12: Instruction Sets: Characteristics and Functions
  • Chapter 13: Instruction Sets: Addressing Modes and Formats
  • Chapter 14: Processor Structure and Function
  • Chapter 15: Reduced Instruction Set Computers (RISCs)
  • Chapter 16: Instruction-Level Parallelism and Superscalar Processors

PART FIVE: PARALLEL ORGANIZATION

  • Chapter 17: Parallel Processing
  • Chapter 18: Multicore Computers
  • Chapter 19: General-Purpose Graphic Processing Units

PART SIX THE CONTROL UNIT

  • Chapter 20: Control Unit Operation
  • Chapter 21: Microprogrammed Control

Appendix A Assembly Language, Assemblers, and Compilers

APPENDIX B Projects for Teaching Computer Organization and Architecture


Patterson, D. A. and Hennessy, J.L. (2014) Computer Organisation and Design – The Hardware/Software Interface, Fifth Edition, Morgan Kaufmann, Elsevier Inc.

Download eBook PDF (PDF 29,918KB)

The fifth edition of Computer Organization and Design―winner of a 2014 Textbook Excellence Award (Texty) from The Text and Academic Authors Association―moves forward into the post-PC era with new examples, exercises, and material highlighting the emergence of mobile computing and the cloud. This generational change is emphasized and explored with updated content featuring tablet computers, cloud infrastructure, and the ARM (mobile computing devices) and x86 (cloud computing) architectures.
Because an understanding of modern hardware is essential to achieving good performance and energy efficiency, this edition adds a new concrete example, “Going Faster,” used throughout the text to demonstrate extremely effective optimization techniques. Also new to this edition is discussion of the “Eight Great Ideas” of computer architecture.
As with previous editions, a MIPS processor is the core used to present the fundamentals of hardware technologies, assembly language, computer arithmetic, pipelining, memory hierarchies and I/O.
Instructors looking for fourth edition teaching materials should e-mail textbook@elsevier.com.

Winner of a 2014 Texty Award from the Text and Academic Authors Association

  • Includes new examples, exercises, and material highlighting the emergence of mobile computing and the cloud
  • Covers parallelism in depth with examples and content highlighting parallel hardware and software topics
  • Features the Intel Core i7, ARM Cortex-A8 and NVIDIA Fermi GPU as real-world examples throughout the book
  • Adds a new concrete example, “Going Faster,” to demonstrate how understanding hardware can inspire software optimizations that improve performance by 200 times
  • Discusses and highlights the “Eight Great Ideas” of computer architecture:  Performance via Parallelism; Performance via Pipelining; Performance via Prediction; Design for Moore’s Law; Hierarchy of Memories; Abstraction to Simplify Design; Make the Common Case Fast;  and Dependability via Redundancy
  • Includes a full set of updated and improved exercises

The fifth edition of Computer Organization and Design moves into the Post-PC era with new examples and material highlighting the emergence of mobile computing and the cloud. This book explores this generational change with updated content featuring tablet computers, cloud infrastructure, and the ARM (mobile computing devices) and x86 (cloud computing) architectures.
Because an understanding of modern hardware is essential to achieving good performance and energy efficiency, this edition adds a new concrete example, “Going Faster,”used throughout the text to demonstrate extremely effective optimization techniques. This edition also adds a new discussion of the “Eight Great Ideas” of computer architecture.
As with previous editions, this book uses a MIPS processor core to present the fundamentals of hardware technologies, assembly language, computer arithmetic, pipelining, memory hierarchies and I/O.
Computer Organization and Design, Fifth Edition:
Covers the generational change of the emerging PostPC era with new content featuring tablet computers, cloud infrastructure, and the ARM (mobile computing devices) and x86 (cloud computing) architectures.
Demonstrates extremely effective optimization techniques featuring the “Going Faster” example throughout the text.
Highlights the “Eight Great Ideas of Computer Architecture” throughout the text: Design for Moore’s Law; Use Abstraction to Simplify Design; Make the Common Case Fast; Dependability via Redundancy; Hierarchy of Memories; Performance via Parallelism; Performance via Pipelining; and Performance via Prediction.
Covers parallelism in depth with examples and content highlighting parallel hardware and software topics.
Features the Intel Core i7, ARM Cortex-A8 and NVIDIA Fermi GPU as real-world examples throughout the book.

1 Computer Abstractions and Technology
1.1 Introduction
1.2 Eight Great Ideas in Computer Architecture
1.3 Below Your Program
1.4 Under the Covers
1.5 Technologies for Building Processors and Memory
1.6 Performance
1.7 The Power Wall
1.8 The Sea Change: The Switch from Uniprocessors to Multiprocessors
1.9 Real Stuff: Benchmarking the Intel Core i7
1.10 Fallacies and Pitfalls
1.11 Concluding Remarks
1.12 Historical Perspective and Further Reading
1.13 Exercises

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 theComputer
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 v7 (32-bit) Instructions
2.17 Real Stuff: x86 Instructions
2.18 Real Stuff: ARM v8 (64-bit) Instructions
2.19 Fallacies and Pitfalls
2.20 Concluding Remarks
2.21 Historical Perspective and Further Reading
2.22 Exercises

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: Subword Parallelism
3.7 Real Stuff: x86 Streaming SIMD Extensions and Advanced Vector Extensions
3.8 Going Faster: Subword Parallelism and Matrix Multiply
3.9 Fallacies and Pitfalls
3.10 Concluding Remarks
3.11 Historical Perspective and Further Reading
3.12 Exercises

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 via Instructions
4.11 Real Stuff: The ARM Cortex-A8 and Intel Core i7 Pipelines
4.12 Going Faster: Instruction-Level Parallelism and Matrix Multiply
4.13 Advanced Topic: an Introduction to Digital Design Using a Hardware Design Language to Describe and Model a Pipeline and More Pipelining Illustrations
4.14 Fallacies and Pitfalls
4.15 Concluding Remarks
4.16 Historical Perspective and Further Reading
4.17 Exercises XXX

5 Large and Fast: Exploiting Memory Hierarchy
5.1 Introduction
5.2 Memory Technologies
5.3 The Basics of Caches
5.4 Measuring and Improving Cache Performance
5.5 Dependable Memory
5.6 Virtual Machines
5.7 Virtual Memory
5.8 A Common Framework for Memory Hierarchy
5.9 Using a Finite-State Machine to Control a Simple Cache
5.10 Parallelism and Memory Hierarchies: Cache Coherence
5.11 Parallelism and Memory Hierarchy: Redundant Arrays of Inexpensive Disks
5.12 Advanced Material: Implementing Cache Controllers
5.13 Real Stuff: The ARM Cortex-A8 and Intel Core i7 Memory Hierarchies
5.14 Going Faster: Cache Blocking and Matrix Multiply
5.15 Fallacies and Pitfalls
5.16 Concluding Remarks
5.17 Historical Perspective and Further Reading
5.18 Exercises

6 Parallel Processors from Client to Cloud
6.1 Introduction
6.2 The Difficulty of Creating Parallel Processing Programs
6.3 SISD, MIMD, SIMD, SPMD, and Vector
6.4 Hardware Multithreading
6.5 Multicore and Other Shared Memory Multiprocessors
6.6 Introduction to Graphics Processing Units
6.7 Clusters and Other Message-Passing Multiprocessors
6.8 Introduction to Multiprocessor Network Topologies
6.9 Communicating to the Outside World: Cluster Networking
6.10 Multiprocessor Benchmarks and Performance Models
6.11 Real Stuff: Benchmarking Intel Core i7 versus NVIDIA Fermi GPU
6.12 Going Faster: Multiple Processors and Matrix Multiply
6.13 Fallacies and Pitfalls
6.14 Concluding Remarks
6.15 Historical Perspective and Further Reading
6.16 Exercises

APPENDICES
A Assemblers, Linkers, and the SPIM Simulator
A.1 Introduction A-3
A.2 Assemblers A-10
A.3 Linkers A-18
A.4 Loading A-19
A.5 Memory Usage A-20
A.6 Procedure Call Convention A-22
A.7 Exceptions and Interrupts A-33
A.8 Input and Output A-38
A.9 SPIM A-40
A.10 MIPS R2000 Assembly Language A-45
A.11 Concluding Remarks A-81
A.12 Exercises A-82

B The Basics of Logic Design
B.1 Introduction B-3
B.2 Gates, Truth Tables, and Logic Equations B-4
B.3 Combinational Logic B-9
B.4 Using a Hardware Description Language B-20
B.5 Constructing a Basic Arithmetic Logic Unit B-26
B.6 Faster Addition: Carry Lookahead B-38
B.7 Clocks B-48
B.8 Memory Elements: Flip-Flops, Latches, and Registers B-50
B.9 Memory Elements: SRAMs and DRAMs B-58
B.10 Finite-State Machines B-67
B.11 Timing Methodologies B-72
B.12 Field Programmable Devices B-78
B.13 Concluding Remarks B-79
B.14 Exercises B-80

ONLINE  CONTENT
C Graphics and Computing GPUs
C.1 Introduction C-3
C.2 GPU System Architectures C-7
C.3 Programming GPUs C-12
C.4 Multithreaded Multiprocessor Architecture C-25
C.5 Parallel Memory System C-36
C.6 Floating Point Arithmetic C-41
C.7 Real Stuff: The NVIDIA GeForce 8800 C-46
C.8 Real Stuff: Mapping Applications to GPUs C-55
C.9 Fallacies and Pitfalls C-72
C.10 Concluding Remarks C-76
C.11 Historical Perspective and Further Reading C-77

D Mapping Control to Hardware
D.1 Introduction D-3
D.2 Implementing Combinational Control Units D-4
D.3 Implementing Finite-State Machine Control D-8
D.4 Implementing the Next-State Function with a Sequencer D-22
D.5 Translating a Microprogram to Hardware D-28
D.6 Concluding Remarks D-32
D.7 Exercises D-33

E A Survey of RISC Architectures for Desktop, Server, and Embedded Computers
E.1 Introduction E-3
E.2 Addressing Modes and Instruction Formats E-5
E.3 Instructions: The MIPS Core Subset E-9
E.4 Instructions: Multimedia Extensions of theDesktop/Server RISCs E-16
E.5 Instructions: Digital Signal-Processing Extensions of the Embedded RISCs E-19
E.6 Instructions: Common Extensions to MIPS Core E-20
E.7 Instructions Unique to MIPS-64 E-25
E.8 Instructions Unique to Alpha E-27
E.9 Instructions Unique to SPARC v.9 E-29
E.10 Instructions Unique to PowerPC E-32
E.11 Instructions Unique to PA-RISC 2.0 E-34
E.12 Instructions Unique to ARM E-36
E.13 Instructions Unique to Thumb E-38
E.14 Instructions Unique to SuperH E-39
E.15 Instructions Unique to M32R E-40
E.16 Instructions Unique to MIPS-16 E-40
E.17 Concluding Remarks E-43


Carter, N. (2002) Schaum’s Outline of Computer Architecture, McGraw-Hill

Master the fundamentals of computer architecture with “Schaum’s” – the high-performance study guide. It will help you cut study time, hone problem-solving skills, and achieve your personal best on exams and projects! Students love “Schaum’s Outlines” because they produce results. Each year, hundreds of thousands of students improve their test scores and final grades with these indispensable study guides. Get the edge on your classmates. Use “Schaum’s”!If you don’t have a lot of time but want to excel in class, this book helps you: use detailed examples to solve problems; brush up before tests; find answers fast; study quickly and more effectively; and, get the big picture without poring over lengthy textbooks. “Schaum’s Outlines” give you the information your teachers expect you to know in a handy and succinct format – without overwhelming you with unnecessary jargon. You get a complete overview of the subject. Plus, you get plenty of practice exercises to test your skill. Compatible with any classroom text, “Schaum’s” let you study at your own pace and remind you of all the important facts you need to remember – fast! And “Schaum’s” are so complete, they’re perfect for preparing for graduate or professional exams.Inside, you will find: overview of hardware and software design elements in computer systems; concise explanations of hardware and software interface; complete details on the efficient use of system resources; solved problems in: instruction sets, pipelining, cache, memory, I/O; and more! If you want top grades and a thorough understanding of computer architecture, this powerful study tool is the best tutor you can have!
The chapters include: Introduction; Binary Logic; Computer Arithmetic; Machine Organization; Programming Models; Basic Processor Design; Pipelining Instruction-Level Parallelism; Introduction to Memory Systems; Cache Memories; Virtual Memory; Input/Output Systems; and, Introduction to Multiprocessors.
  • A problem/solution manual, integrating general principles and laboratory exercises, that provides students with the hands-on experience needed to master the basics of modern computer system design
  • Features more than 200 detailed problems, with step-by-step solutions; many detailed graphics and charts; chapter summaries with additional “rapid-review” questions; and expert sidebar tips
  • Describes analytical methods for quantifying real-world design choices regarding instruction sets, pipelining, cache, memory, I/O, and other critical hardware and software elements involved in building computers
  • An ideal educational resource for the more than 70,000 undergraduate and graduate students who, each year, enroll in computer architecture and related courses

Clements, Alan (2006) Principles of Computer Hardware, Fourth Edition, OUP Oxford

Computer technology pervades almost every aspect of our life: from the cars that we drive, to the mobile phones that we use to communicate; from the digital cameras that capture images of the world around us, to the laser printers that turn image into picture. Yet at the heart of these enabling technologies lie fundamental components and systems, without the understanding of which such technologies would never have been developed.
Principles of Computer Hardware explores the fundamentals of computer structure, architecture, and programming that underpin the array of computerized technologies around which our lives are now built.
The book opens with an introduction to the fundamental concepts upon which computers are constructed – gates, circuits, logic – and computer arithmetic, the ‘language’ through which computers communicate. It then reveals how computers are structured and how they operate, taking us step-wise from the instruction set architecture, the bringing together of instructions through assembly language programming, and on to the heart of the computer, the central processing unit. The book then builds on these foundations to consider how the hardware interfaces with its surroundings, introducing us to topics such as computer memory; operating systems and the interface between hardware and software; and computer peripherals and computer communications – the interface with the outside world.
Always putting educational value first, Principles of Computer Hardware uses the 68K processor as a powerful teaching and learning tool, putting substance firmly before style. With the clarity of explanation and captivating style for which Alan Clements is renowned, the book draws the student in to the heart of the subject, to foster an in-depth understanding from which more specialised study can then extend.
The learning experience is enriched still further with a free CD-ROM, providing resources to enable students to engage with the subject in a hands-on manner:
· A Windows-based simulator for the student to explore the design of digital circuits
· Windows and DOS-based 68K simulators for students to investigate the operation of the 68K processor
· An ARM simulator for students to write programs for a RISC processor, and run them on a PC

  • Revised structure leads the student through the heart of the subject in a more progressive manner, to help them master the subject more easily
  • Enriched pedagogy, including boxes, additional examples, and two colour artwork, makes learning more stimulating, enjoyable, and effective
  • Exploits the 68K processor as a powerful and elegant teaching and learning tool, placing educational value at the book’s core

New to this Edition:

  • New two colour text design enlivens the book’s presentation to fully engage students, and enhance the educational value of the illustrations presented
  • New online resource centre featuring figures from the book available to download, and a downloadable solutions manual
  • New boxes throughout, to augment the content of the main text, and relate key concepts to familiar contexts, such as the PC
  • Advanced topics from chapter 12 integrated throughout the book, offering deeper insights into key topics
  • Revised structure, featuring four new chapters (5, 8, 9, 11): The Instruction Set Architecture; Peripherals for computers; ARM and RISC now split across two new chapters: Accelerating Performance; Processor Architectures.
  • New coverage within existing chapters includes: History of computing in Chapter 1; Error detecting codes and data compressing codes in Chapter 4; The Bus in Chapter 10; A summary of the latest optical memory technology in Chapter 9.

1: Introduction to computer hardware
2: Gates, Circuits, and Combinational Logic
3: Sequential logic
4: Computer arithmetic
5: The Instruction Set Architecture
6: Assembly language programming
7: Structure of the CPU
8: Accelerating Performance
9: Processor Architectures
10: Buses and Input/Output Mechanisms
11: Peripherals for Computers
12: Computer memory
13: The CPU, memory and the operating system
14: Computer communications
Appendices
Bibliography