| |
| |
Online Resources | |
| |
| |
Preface | |
| |
| |
About the Author | |
| |
| |
| |
Reader�s and Instructor�s Guide | |
| |
| |
Outline of the Book | |
| |
| |
A Roadmap for Readers and Instructors | |
| |
| |
Why Study Computer Organization and Architecture? | |
| |
| |
Internet and Web Resources | |
| |
| |
Overview | |
| |
| |
Introduction | |
| |
| |
Organization and Architecture | |
| |
| |
Structure and Function | |
| |
| |
Key Terms and Review Questions | |
| |
| |
Computer Evolution and Performance | |
| |
| |
A Brief History of Computers | |
| |
| |
Designing for Performance | |
| |
| |
Multicore, MICs, and GPGPUs | |
| |
| |
The Evolution of the Intel x86 Architecture | |
| |
| |
Embedded Systems and the Arm | |
| |
| |
Performance Assessment | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
The Computer System | |
| |
| |
A Top-Level View of Computer Function and Interconnection | |
| |
| |
Computer Components | |
| |
| |
Computer Function | |
| |
| |
Interconnection Structures | |
| |
| |
Bus Interconnection | |
| |
| |
Point-To-Point Interconnect | |
| |
| |
PCI Express | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
Cache Memory | |
| |
| |
Computer Memory System Overview | |
| |
| |
Cache Memory Principles | |
| |
| |
Elements of Cache Design 123 | |
| |
| |
Pentium 4 Cache Organization | |
| |
| |
Arm Cache Organization | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
A Performance Characteristics of Two-Level Memories | |
| |
| |
Internal Memory | |
| |
| |
Semiconductor Main Memory | |
| |
| |
Error Correction | |
| |
| |
Advanced Dram Organization | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
External Memory | |
| |
| |
Magnetic Disk | |
| |
| |
Raid | |
| |
| |
Solid State Drives | |
| |
| |
Optical Memory | |
| |
| |
Magnetic Tape | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
Input/Output | |
| |
| |
External Devices | |
| |
| |
I/O Modules | |
| |
| |
Programmed I/O | |
| |
| |
Interrupt-Driven I/O | |
| |
| |
Direct Memory Access | |
| |
| |
I/O Channels and Processors | |
| |
| |
The External Interface: Thunderbolt and Infiniband | |
| |
| |
IBM zEnterprise 196 I/O Structure | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
Operating System Support | |
| |
| |
Operating System Overview | |
| |
| |
Scheduling | |
| |
| |
Memory Management | |
| |
| |
Pentium Memory Management | |
| |
| |
ARM Memory Management | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
Arithmetic and Logic | |
| |
| |
Number Systems | |
| |
| |
The Decimal System | |
| |
| |
Positional Number Systems | |
| |
| |
The Binary System | |
| |
| |
Converting Between Binary and Decimal | |
| |
| |
Hexadecimal Notation | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms and Problems | |
| |
| |
Computer Arithmetic | |
| |
| |
The Arithmetic and Logic Unit | |
| |
| |
Integer Representation | |
| |
| |
Integer Arithmetic | |
| |
| |
Floating-Point Representation | |
| |
| |
Floating-Point Arithmetic | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
Digital Logic | |
| |
| |
Boolean Algebra | |
| |
| |
Gates | |
| |
| |
Combinational Circuits | |
| |
| |
Sequential Circuits | |
| |
| |
Programmable Logic Devices | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms and Problems | |
| |
| |
The Central Processing Unit | |
| |
| |
Instruction Sets: Characteristics and Functions | |
| |
| |
Machine Instruction Characteristics | |
| |
| |
Types of Operands | |
| |
| |
Intel x86 and Arm Data Types | |
| |
| |
Types of Operations | |
| |
| |
Intel x86 and ARM Operation Types | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
A Little-, Big-, and Bi-Endian | |
| |
| |
Instruction Sets: Addressing Modes and Formats | |
| |
| |
Addressing Modes | |
| |
| |
x86 and ARM Addressing Modes | |
| |
| |
Instruction Formats | |
| |
| |
x86 and ARM Instruction Formats | |
| |
| |
Assembly Language | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
Processor Structure and Function | |
| |
| |
Processor Organization | |
| |
| |
Register Organization | |
| |
| |
Instruction Cycle | |
| |
| |
Instruction Pipelining | |
| |
| |
The x86 Processor Family | |
| |
| |
The Arm Processor | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
Reduced Instruction Set Computers | |
| |
| |
Instruction Execution Characteristics | |
| |
| |
The Use of a Large Register File | |
| |
| |
Compiler-Based Register Optimization | |
| |
| |
Reduced Instruction Set Architecture | |
| |
| |
RISC Pipelining | |
| |
| |
MIPS R4000 | |
| |
| |
Sparc | |
| |
| |
RISC Versus CISC Controversy | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
Instruction-Level Parallelism and Superscalar Processors | |
| |
| |
Overview | |
| |
| |
Design Issues | |
| |
| |
Pentium 4 | |
| |
| |
Arm Cortex-A8 | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
Parallel Organization | |
| |
| |
Parallel Processing | |
| |
| |
Multiple Processor Organizations | |
| |
| |
Symmetric Multiprocessors | |
| |
| |
Cache Coherence and the MESI Protocol | |
| |
| |
Multithreading and Chip Multiprocessors | |
| |
| |
Clusters | |
| |
| |
Nonuniform Memory Access | |
| |
| |
Vector Computation | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
Multicore Computers | |
| |
| |
Hardware Performance Issues | |
| |
| |
Software Performance Issues | |
| |
| |
Multicore Organization | |
| |
| |
Intel x86 Multicore Organization | |
| |
| |
ARM11 MPCore | |
| |
| |
Ibm zEnterprise 196 Mainframe | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
Projects for Teaching Computer Organization and Architecture | |
| |
| |
Interactive Simulations | |
| |
| |
Research Projects | |
| |
| |
Simulation Projects | |
| |
| |
Assembly Language Projects | |
| |
| |
Reading/Report Assignments | |
| |
| |
Writing Assignments | |
| |
| |
Test Bank | |
| |
| |
Assembly Language and Related Topics | |
| |
| |
Assembly Language | |
| |
| |
Assemblers | |
| |
| |
Loading and Linking | |
| |
| |
Recommended Reading | |
| |
| |
Key Terms, Review Questions, and Problems | |
| |
| |
The Control Unit 19- | |
| |
| |
Control Unit Operation 19- | |
| |
| |
Micro-operations 19- | |
| |
| |
Control of the Processor 19- | |
| |
| |
Hardwired Implementation 19- | |
| |
| |
Recommended Reading 19- | |
| |
| |
Key Terms, Review Questions, and Problems 19- | |
| |
| |
Microprogrammed Control 20- | |
| |
| |
Basic Concepts 20- | |
| |
| |
Microinstruction Sequencing 20- | |
| |
| |
Microinstruction Execution 20- | |
| |
| |
TI 8800 20- | |
| |
| |
Recommended Reading 20- | |
| |
| |
Key Terms, Review Questions, and Problems 20- | |
| |
| |
Hash Tables | |
| |
| |
Victim Cache Strategies | |
| |
| |
Victim Cache | |
| |
| |
Selective Victim Cache | |
| |
| |
Interleaved Memory | |
| |
| |
The International Reference Alphabet | |
| |
| |
Virtual Memory Page Replacement Algorithms | |
| |
| |
Optimal | |
| |
| |
Least Recently Used | |
| |
| |
First-In-First-Out | |
| |
| |
Other Page Replacement Algorithms | |
| |
| |
Recursive Procedures | |
| |
| |
Recursion | |
| |
| |
Activation Tree Representation | |
| |
| |
Stack Processing | |
| |
| |
Recursion and Iteration | |
| |
| |
Additional Instruction Pipeline Topics | |
| |
| |
Pipeline Reservation Tables | |
| |
| |
Reorder Buffers | |
| |
| |
Tomasulo�s Algorithm | |
| |
| |
Scoreboarding | |
| |
| |
Linear Tape Open Technology | |
| |
| |
LTO Generations | |
| |
| |
LTO Format | |
| |
| |
LTO Operation | |
| |
| |
DDR SRAM | |
| |
| |
Protocols and Protocol Architectures | |
| |
| |
Introduction | |
| |
| |
The TCP/IP Protocol Architecture | |
| |
| |
The Role of an Internet Protocol | |
| |
| |
IPv | |
| |
| |
IPv | |
| |
| |
The OSI Protocol Architecture | |
| |
| |
Scrambling | |
| |
| |
Timing Diagrams | |
| |
| |
Stacks | |
| |
| |
Stack Structure | |
| |
| |
Stack Implementation | |
| |
| |
Expression Evaluation | |