CHAPTER 1 INTRODUCTION
1.1 The Scope of Computer Architecture and Organization
1.2 Modeling Computer Organization
1.2.1 The Layered Structure of Computer Design Process
1.2.2 The RTL Model of Computer Organization
1.2.3 The Performance Model of a Computer System
1.3 A Historical Sketch of Computer Evolution
1.4 Representative Computer Families
1.4.1 The Pentium Family
1.4.2 The SPARC Family
1.4.3 The PowerPC Family
1.5 Perspectives of the Computer Evolution
1.5.1 The Challenges of a Billion-Transistor IC
1.5.2 The New Role of the Next-Generation PC
1.5.3 Embedded Systems
1.6 Summary
CHAPTER 2 THE REPRESENTATION OF INFORMATION IN A COMPUTER
2.1 Data Types Representing Information in a Computer
2.2 Representation of Fixed-Point Unsigned Numbers
2.2.1 The General Positional Number System
2.2.2 The Representation of Fractional Numbers
2.2.3 Converstion Between Numbers of Different Representations
2.3 Representaion of Fixed-Point Signed Numbers
2.3.1 Sign-Magnitude Representation
2.3.2 Two's Complement Representation
2.3.3 Motivation for the Two's Complement System
2.3.4 One's Complement Representation
2.4 Binary Addition/Subtraction
2.4.1 Sign-Magnitude Addition/Subtraction
2.4.2 Two's Complement Addition/Subtraction
2.4.3 One's Complement Addition/Subtraction
2.5 Other Code Systems Using Bit Strings
2.5.1 Gray Codes
2.5.2 Decimal Codes
2.5.3 Character Codes
2.6 Summary
Exercieses
CHAPTER 3 LOGIC DESIGN OF COMBINATIONAL CIRCUITS
3.1 Combinational Logic Functions and Expressions
3.1.1 Using Truth Table to Define a Combinational Logic Function
3.1.2 Primitive Combinational Functions and Basic Logic Operations
3.1.3 Boolean Algebra and Logic Expression
3.1.4 Canonical Logic Expressions
3.2 Karnaugh Maps for Simplification of Logic Functions
3.3 Implementation of Combinational Logic Functions
3.3.1 AND,OR,and NOT Gates
3.3.2 NAND and NOR Gates
3.3.3 XOR and XNOR Gates
3.4 Design of Combinational Logic Corcuits
3.4.1 Design of a Full Adder
3.4.2 Ripple-Carry Adder/Subtractor with External Logic for Subtraction
3.4.3 Double Pracision Addition/Subtraction
3.4.4 Ripple-Carry Adder For Sign-Magnitude Representation
3.5 Dynamic Characteristics of Combinational Logic Circuits
3.5.1 Propagation Delay of Combinational Logic Circuits
3.5.2 Waveform Diagram of Combinational Logic Circuits
3.5.3 Hazards in Combinational Logic Circuits
3.6 Combinational MSI Modules
3.6.1 Multiplexer
3.6.2 Decoder/Demultiplexer
3.6.3 Encoder
3.7 Programable Logic Devices
3.7.1 Programmable Logic Array(PLA)
3.7.2 Read-Only Memory(ROM)
3.7.3 Programmable Array Logic(PAL)
3.7.4 Complex Programmable Logic Devices(CPLDs)
3.7.5 Field-Programmable Gate Arrays(FPGAs)
3.8 Summary
Exercises
CHAPTER 4 LOGIC DESIGN OF SEQUENTIAL CIRCUITS
4.1 General Model of Sequential Circuits
4.2 Flip-Flops
4.2.1 Analysis of A Simple SR Latch
4.2.2 SR Flip-Flop
4.2.3 JK Flip-Flop
4.2.4 T Filp-Flop
4.2.5 D Filp-Flop
4.2.6 Practical Flip-Flop Circuits
4.3 Analysis of Sequential Logic Circuits
4.3.1 From Circuit to State-Transition Diagram
4.3.2 From State-Transition Diagram to Finite State Machine
4.4 Synthesis of Sequential Logic Circuits
4.5 Sequential MSI Modules
4.5.1 Register
4.5.2 Shift Register
4.5.3 Counter
4.6 Design of a Finite-State Machine
4.7 Summary
Exercises
CHAPTER 5 THE ARITHMETIC LOGIC UNIT
5.1 The von Neumann Computer Model
5.2 Parallel Fast Adders
5.2.1 The Nature of Carry Propagation
5.2.2 The Ripple-Carry Parallel Adder(Revisited)
5.2.3 The Four-bit Carry Look-ahead Adder
5.2.4 The Block Carry Look-ahead Circuit
5.3 Analysis of the Design of a Commercial ALU Chip
5.3.1 Organization of an ALU Based on an Adder
5.3.2 Design of the Input Circuit for Logic Operations
5.3.3 Analysis of the AUL for Arithmetic Operations
5.4 Methodes for Designing Arithmetic-Logic Units
5.4.1 Designing the AUL Using Extrnal Gates for Logic Operations
5.4.2 Designing the ALU Based on Standard ALU Chips
5.4.3 Redesigning the Input Circuit for the ALU
5.4.4 Designing an ALU Using the Internal Circuit of an Adder
5.4.5 Redesigning the Output Circuit of the Adder
5.4.6 Comparison of Different Methods of Designing an ALU
5.5 Incorporating a Shifter in an ALU
5.5.1 Design of a Built-in Shifter in an ALU
5.5.2 Design of the Shifter as an Independent Unit
5.5.3 Design of a Barrel Shifter
5.6 Summary
Exercises
CHAPTER 6 COMPLEX ARITHMETIC OPERATIONS
6.1 Single-Precision Multiplication
6.1.1 The Basic Algorithm for Two's Complement Multiplication
6.1.2 Fast Multiplication
6.2 Double-Precision Multiplication
6.2.1 Special Requirement for the Algorithm
6.2.2 The Algorithm for Double-Precision Multiplication of Positive Numbers
6.2.3 The Algorithm for Double-Precision Multiplcation of Two's Complement Numbers
6.3 Single-Precision Division
6.4 Double-Precision Division
6.4.1 Special Requirements of the Algorithm
6.4.2 The Algorithm for Double-Precision Division of Fractional Numbers
6.4.3 The Algorithm for Double-Precision Division of Integer Numbers
6.5 Floating-Point Operations
6.5.1 The Representation of Floating-Point Numbers
6.5.2 The Algorithms for Floating-Point Operations
6.5.3 A Complete Algorithm for Floating-Point Addition/Subtraction
6.5.4 Implementation of Floating-Point Addition/Subtraction by Sequential Logic
6.6 Summary
Exercises
CHAPTER 7 INSTRUCTION SET ARCHITECTURE
7.1 The Instruction Format
7.2 The Addressing Modes
7.2.1 Specifying the Operand in the Instruction Code
7.2.2 Specifying the Operand in a Register
7.2.3 Specifying the Operand in Memory
7.2.4 Specifying a Location Inside the Assembly-Language Program Code
7.2.5 A Case Study of Addressing Modes
7.3 Instruction Set Design
7.3.1 Data Movement Instructions
7.3.2 Arithmetic-Logic Instructions
7.3.3 Control Instructions
7.4 Reduced Instruction Set Computers(RISC)
7.5 Summary
Exercises
CHAPTER 8 THE CENTRAL PROCESSING UNIT
8.1 The Functions and Functional Parts of a CPU
8.2 The Basic Organization of The CPU
8.2.1 CPU Organization Based on General-Purpose Registers
8.2.2 CPU Organization Based on an Accumulator
8.2.3 CPU Organization Based on a Processor Stack
8.3 The Structure of a CPU Based on an Accumulator
8.3.1 Design of an Accumulator-Based CPU Built on a Single Bus
8.3.2 Design of a Tow-Bus or Three-Bus Acxcumulator-Based CPU
8.3.3 Design of an Accumulator-Based CPU Built on an ALU
8.4 The Structure of a CPU Based on General-Purpose Registers
8.4.1 The Structure of a General-Prupose Register Set
8.4.2 Design of a CPU Based on General-Prupose Registers
8.5 CPU Bit-Slice Device-A Case Study
8.6 Summary
Exercises
CHAPTER 9 THE XONTROL UNIT
9.1 Functions and General Organization of a Control Unit
9.2 Preliminaries of Designing Control Circuits
9.2.1 Control Voltage Signals vs.Control Pulse Signals
9.2.2 Design of a Signal Generator Based on a Counter
9.2.3 Synchronous Control vs.Asynchronous Control
9.2.4 Asychronous Circuits of Signal Generators
9.3 Design of the Sequential Control of Arithmeic Operations
9.3.1 Design of a Bit-Serial Adder
9.3.2 Design of a Sequential Two's Complement Multiplier
9.4 Design of Hardwired Control of a Simple Computer
9.4.1 Specification of a Simple RISC Processor
9.4.2 The Basic Instruction Cyc;e
9.4.3 Design of the Operation Chart for the Instruction Set
9.4.4 Design and Implementation of the Control Signals
9.4.5 Design and Implementation of the Datapath and Timing Signals
9.5 Design of the Microprogrammed Control of a Simple Computer
9.5.1 General Considerations for Microprogrammed Control
9.5.2 Design of the Datapath for Microprogrammed Control
9.5.3 Design of the Micrioinstruction Format for Microprogrammed Control
9.5.4 Design of the Folwchart for Microprogrammed Control
9.5.5 Obtaining the Microrogram List
9.6 Summary
Exercises
CHAPTER 10 PRIMARY MEMORY
10.1 The Memory Hierarchy
10.1.1 The Hierarchical Organization of a Memory System
10.1.2 Functionality and Performance of a Memory Hierarchy
10.2 The Organization of Main Memory
10.2.1 Functions and Characteristics of RAM Chips
10.2.2 Internal Organization of a RAM Chip
10.2.3 Basic Operations for Accessing RAM
10.2.4 Interconnection of RAM Chips for Larger Capacity
10.3 RAM Techniques for Enhanced Performance
10.3.1 Asynchronous DRAM
10.3.2 FPM and EDO
10.3.3 Synchronus DRAM(SDRAM)
10.3.4 Rambus DRAM(RDRAM)
10.3.5 Flash Memory vs.EEPROM
10.3.6 Split Bus
10.4 Cache Memory
10.4.1 Locality of Memory References
10.4.2 Mapping Functions
10.4.3 Write Policies
10.4.4 Replacement Algorithms
10.4.5 Cache Organization and Performance
10.5 Overall Primary Memory Organization
10.5.1 Serial-Memory Narrow-Bus Organization
10.5.2 Parallel-Memory Wide-Bus Organization
10.5.3 Parallel-Memory Narrow-Bus Organization
10.5.4 Interleaved-Memory Narrow-Bus Organization
10.6 Summary
Exercises
CHAPTER 11 INPUT/OUTPUT
11.1 Functions and Characteristics of I/O Subsystem
11.2 Secondary Storage
11.2.1 Magetic Disk
11.2.2 Redundant Array of Independent Disds(RAID)
11.2.3 Optical Disks
11.2.4 Magnetic Tapes
11.3 Input/Output Accessing
11.3.1 Addressing I/O Registers
11.3.2 Programmed I/O
11.3.3 Interrupt-Driven I/O
11.3.4 Direct Memory Access
11.4 Exception and Exception Handling
11.4.1 Interrup Request and Interrupt Acknowledge
11.4.2 Interrup Identification
11.4.3 Interrup Servicing and Interrupt Returning
11.5 The I/O Interfaces
11.5.1 I/O Bus Protocol
11.5.2 Parallel I/O Ports
11.6 Serial I/O Data Communication
11.6.1 Timing Synchroniation of Serial Transmission
11.6.2 Error Detection and Correction Codes
11.6.3 Serial Interfaces and I/O Ports
11.7 Bus Standards
11.7.1 PCI(Peripheral Component Interconnect)Bus
11.7.2 SCSI(Small Computer System Interface)Parallel Interface
11.7.3 The USB Serial Bus
11.7.4 The FireWire Serial Bus
11.7.5 Switched-Fabric Architecture and InfiniBand
11.8 Summary
Exercises
CHAPTER 12 PIPELINING
12.1 The Basic Concept of Pipelining
12.1.1 Parallelism in Time vs.Parallelism in Space
12.1.2 Temporal Parallelism in Pipelining
12.1.3 Performance of the Pipeline
12.2 General Organization of a Pipeline
12.2.1 Synchronous Pipeline
12.2.2 Asynchronous Pipeline
12.3 Design of a Pipeline by Way of Functional Decomposition
12.3.1 Special Properties of Instruction Pipelins
12.3.2 The Mappping of the Dataflow Pattern to the Pipeline
12.3.3 Design of the Basic Datapath of the Pipeline
12.4 The Design of the Pipeline form Hazard Analysis
12.4.1 Structural Hazards
12.4.2 Data Hazards-A General Discussion
12.4.3 Data Hazard Analysis
12.4.4 Control Hazards
12.4.5 The Complete Datapath of the Pipeline
12.5 Superscalar Processor
12.5.1 Special Featrues of a Superscalar Processor
12.5.2 Conceptual Structure of a Superscalar Processor
12.5.3 Instruction-Issue and Instruction-Execute Policies
12.6 Summary
Exercises
REFERENCES