1 Computing and Computers 1
1.1 The Nature of Computing 1
1.2 The Evolution Of Computers 12
1.3 The VLSI Era 35
1.4 Summary 56
1.5 Problems 57
1.6 References 62
2 Design Methodology 64
2.1 System Design 64
2.2 The Register Level 83
2.3 The Processor Level 114
2.4 Summary 126
2.5 Problems 127
2.6 References 136
3 Processor Basics 137
3.1 CPU Organization 137
3.2 Data Representation 160
3.3 Instruction Sets 178
3.4 Summary 211
3.5 Problems 212
3.6 References 221
4 Datapath Design 223
4.1 Fixed-Point Arithmetic 223
4.2 Arithmetic-Logic Units 252
4.3 Advanced Topics 266
4.4 Summary 292
4.5 Problems 293
4.6 References 301
5 Control Design 303
5.1 Basic Concepts 303
5.2 Microprogrammed Control 332
5.3 Pipeline Control 364
5.4 Summary 390
5.5 Problems 392
5.6 References 399
6 Memory Organization 400
6.1 Memory Technology 400
6.2 Memory Systems 426
6.3 Caches 452
6.4 Summary 471
6.5 Problems 472
6.6 References 478
7 System Organization 480
7.1 Communication Methods 480
7.2 IO And System Control 504
7.3 Parallel Processing 539
7.4 Summary 578
7.5 Problems 579
7.6 References 587
Index 589