图书介绍

计算机组成 英文版PDF|Epub|txt|kindle电子书版本网盘下载

计算机组成 英文版
  • (美)Carl Hamacher等著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111103467
  • 出版时间:2002
  • 标注页数:805页
  • 文件大小:28MB
  • 文件页数:825页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

计算机组成 英文版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

Chapter 1 BASIC STRUCTURE OF COMPUTERS1

1.1 Computer Types2

1.2 Functional Units3

1.2.1 Input Unit4

1.2.2 Memory Unit4

1.2.3 Arithmetic and Logic Unit5

1.2.4 Output Unit6

1.2.5 Control Unit6

1.3 Basic Operational Concepts7

1.4 Bus Structures9

1.5 Software10

1.6 Performance13

1.6.2 Basic Performance Equation14

1.6.1 Processor Clock14

1.6.3 Pipelining and Superscalar Operation15

1.6.4 Clock Rate16

1.6.5 Instruction Set:CISC and RISC16

1.6.6 Compiler17

1.6.7 Performance Measurement17

1.7 Multiprocessors and Multicomputers18

1.8 Historical Perspective19

1.8.1 The First Generation19

1.8.2 The Second Generation20

1.8.3 The Third Generation20

1.8.4 The Fourth Generation20

1.8.5 Beyond the Fourth Generation21

1.8.6 Evolution of Performance21

1.9 Concluding Remarks21

Problems22

References23

Chapter 2 MACHINE INSTRUCTIONS AND PROGRAMS25

2.1 Numbers,Arithmetic Operations,and Characters27

2.1.1 Number Representation27

2.1.2 Addition of Positive Numbers28

2.1.3 Addition and Subtraction of Sigued Numbers29

2.1.4 Overflow in Intege rArithmetic32

2.1.5 Characters33

2.2 Memory Locations and Addresses33

2.2.1 Byte Addressability33

2.2.2 Big-endian and Little-endian Assignments35

2.2.4 Accessing Numbers,Characters,and Character Strings36

2.3 Memory Operations36

2.2.3 Word Alignment36

2.4 Instructions and Instruction Sequencing37

2.4.1 Register Transfer Notation37

2.4.2 Assembly Language Notation38

2.4.3 Basic Instruction Types38

2.4.4 Instruction Execution and Straight-Line Sequencing42

2.4.5 Branching44

2.4.6 Condition Codes46

2.4.7 Generating Memory Addresses47

2.5 Addressing Modes48

2.5.1 Implementation of Variables and Constants49

2.5.2 Indirection and Pointers50

2.5.3 Indexing and Arrays52

2.5.4 Relative Addressing56

2.5.5 Additional Modes56

2.6 Assembly Language58

2.6.1 Assembler Directives59

2.6.2 Assembly and Execution of Programs62

2.6.3 Number Notation64

2.7 Basic Input/Output Operations64

2.8 Stacks and Queues68

2.9 Subroutines72

2.9.1 Subroutine Nesting and the Processor Stack73

2.9.2 Parameter Passing74

2.9.3 The Stack Frame75

2.10 Additional Instructions81

2.10.1 Logic Instructions81

2.10.2 Shift and Rotate Instructions82

2.11.1 Vector Dot Product Program86

2.11 Example Programs86

2.10.3 Multiplication and Division86

2.11.2 Byte-Sorting Program87

2.11.3 Linked Lists89

2.12 Encoding of Machine Instructions94

2.13 Concluding Remarks98

Problems98

Chapter 3 ARM,MOTOROLA,AND INTEL INSTRUCTION SETS103

Part Ⅰ The ARM Example104

3.1 Registers,Memory Access,and Data Transfer104

3.1.1 Register Structure105

3.1.2 Memory Access Instructions and Addressing Modes106

3.1.3 Register Move Instructions113

3.2 Arithmetic and Logic Instructions113

3.2.1 Arithmetic Instructions113

3.2.2 Logic Instructions115

3.3 Branch Instructions116

3.3.1 Setting Condition Codes117

3.3.2 A Loop Program fof Adding Numbers118

3.4 Assembly Language118

3.4.1 Pseudo-Instructions120

3.5 I/O Operations121

3.6 Subroutines122

3.7 Program Examples126

3.7.1 Vector Dot Product Program126

3.7.2 Byte-Sorting Program127

3.7.3 Linked-List Insertion and Deletion Subroutines127

Part Ⅱ The 68000 Example130

3.8.2 Addressing131

3.8.1 The 68000 Register Structure131

3.8 Registers and Addressing131

3.9 Instructions136

3.10 Assembly Language140

3.11 Program Flow Control141

3.11.1 Condilion Code Flags141

3.11.2 Branch Instructions141

3.12 I/O Operations145

3.13 Stacks and Subroutines146

3.14 Logic Instructions151

3.15 Program Examples152

3.15.1 Vector Dot Product Program152

3.15.2 Byte-Sorting Program153

3.15.3 Linked-List Insertion and Deletion Subroutines154

Part Ⅲ The IA-32 Pentium Example155

3.16.1 IA-32 Register Structure156

3.16 Registers and Addressing156

3.16.2 IA-32 Addressing Modes159

3.17 IA-32 Instructions164

3.17.1 Machine Instruction Format168

3.18 IA-32 Assembly Language170

3.19 Program Flow Control171

3.19.1 Conditional Jumps and Condition Code Flags171

3.19.2 Unconditional Jump173

3.20 Logic and Shift/Rotate Instructions173

3.20.1 Logic Operations173

3.20.2 Shift and Rotate Operations173

3.21 I/O Operations174

3.21.1 Memory-Mapped I/O174

3.21.2 Isolated I/O175

3.21.3 Block Transfers176

3.22 Subroutines177

3.23 Other Instructions182

3.23.1 Multiply and Divide Instructions182

3.23.2 Multimedia Extension(MMX)Instructions183

3.23.3 Vector(SIMD)Instructions184

3.24 Program Examples184

3.24.1 Vector Dot Product Program184

3.24.2 Byte-Sorting Program185

3.24.3 Linked-List Insertion and Deletion Subroutines185

3.25 Concluding Remarks188

Problems188

References201

Chapter 4 INPUT/OUTPUT ORGANIZATION203

4.1 Accessing I/O Devices204

4.2 Interrupts208

4.2.1 Interrupt Hardware210

4.2.2 Enabling and Disabling Interrupts211

4.2.3 Handling Multiple Devices213

4.2.4 Controlling Device Requests217

4.2.5 Exceptions218

4.2.6 Use of Interrupts in Operating Systems220

4.3 Processor Examples224

4.3.1 ARM Interrupt Structure224

4.3.2 68000 Interrupt Structure229

4.3.3 Pentium Interrupt Structure231

4.4 Direct Memory Access234

4.4.1 Bus Arbitration237

4.5 Buses240

4.5.1 Synchronous Bus241

4.5.2 Asynchronous Bus244

4.5.3 Discussion247

4.6 Interface Circuits248

4.6.1 Parallel Port248

4.6.2 Serial Port257

4.7 Standard I/O Interfaces259

4.7.1 Peripheral Component Interconnect(PCI)Bus261

4.7.2 SCSI Bus266

4.7.3 Universal Serial Bus(USB)272

4.8 Concluding Remarks283

Problems283

References289

Chapter 5 THE MEMORY SYSTEM291

5.1 Some Basic Concepts292

5.2.1 Internal Organization of Memory Chips295

5.2 Semiconductor RAM Memories295

5.2.2 Static Memories297

5.2.3 Asynchronous Drams299

5.2.4 Synchronous DRAMs302

5.2.5 Structure of Larger Memories305

5.2.6 Memory System Considerations307

5.2.7 Rambus Memory308

5.3 Read-Only Memories309

5.3.1 ROM310

5.3.2 PROM311

5.3.3 EPROM311

5.3.4 EEPROM311

5.3.5 Flash Memory312

5.4 Speed,Size,and Cost313

5.5 Cache Memories314

5.5.1 Mapping Functions316

5.5.2 Replacement Algorithms321

5.5.3 Example of Mapping Techniques322

5.5.4 Examples of Caches in Commerciai Processors325

5.6 Performance Considerations329

5.6.1 Interleaving330

5.6.2 Hit Rate and Miss Penalty332

5.6.3 Caches on the Processor Chip334

5.6.4 Other Enhancements335

5.7 Virtual Memories337

5.7.1 Address Translation339

5.8 Memory Management Requirements343

5.9 Secondary Storage344

5.9.1 Magnetic Hard Disks344

5.9.2 Optical Disks352

5.9.3 Magnetic Tape Systems358

5.10 Concluding Remarks359

Problems360

References366

Chapter 6 ARITHMETIC367

6.1 Addition and Subtraction of Signed Numbers368

6.1.1 Addition/Subtraction Logic Unit369

6.2 Design of Fast Adders371

6.2.1 Carry-Lookahead Addition372

6.3 Multiplication of Positive Numbers376

6.4 Signed-Operand Multiplication380

6.4.1 Booth Algorithm380

6.5 Fast Multiplication383

6.5.1 Bit-Pair Recoding of Multipliers384

6.5.2 Carry-Save Addition of Summands385

6.6 Integer Division390

6.7 Floating-Point Numbers and Operations393

6.7.1 IEEE Standard for Floating-Point Numbers394

6.7.2 Arithmetic Operations on Floating-Point Numbers398

6.7.3 Guard Bits and Truncation399

6.7.4 Implementing Floating-Point Operations400

6.8 Concluding Remarks403

Problems403

References410

Chapter 7 BASIC PROCESSING UNIT411

7.1 Some Fundamental Concepts412

7.1.1 Register Transfets415

7.1.2 Performing an Arithmetic or Logic Operation415

7.1.3 Fetching a Word from Memory418

7.1.4 Storing a Word in Memory420

7.2 Execution of a Complete Instruction421

7.2.1 Branch Instructions422

7.3 Multiple-Bus Organization423

7.4 Hardwired Control425

7.4.1 A Complete Processor428

7.5 Microprogrammed Control429

7.5.1 Microinstructions432

7.5.2 Microprogram Sequencing435

7.5.3 Wide-Branch Addressing437

7.5.4 Microinstructions with Next-Address Field440

7.5.5 Prefetching Microinstructions443

7.5.6 Emulation443

7.6 Concluding Remarks445

Problems446

Chapter 8 PIPELINING453

8.1 Basic Concepts454

8.1.1 Role of Cache Memory456

8.1.2 Pipeline Performance458

8.2 Data Hazards461

8.2.1 Operand Forwarding462

8.2.2 Handling Data Hazards in Software464

8.2.3 Side Effects464

8.3 Instruction Hazards465

8.3.1 Unconditional Branches466

8.3.2 Conditional Branches and Branch Prediction470

8.4 Influence on Instruction Sets476

8.4.1 Addressing Modes476

8.4.2 Condition Codes478

8.5 Datapath and Control Considerations479

8.6 Superscalar Operation481

8.6.1 Out-of-Order Execution483

8.6.2 Execution Completion485

8.6.3 Dispatch Operation486

8.7 UltraSPARC Ⅱ EXAMPLE486

8.7.1 SPARC Architecture487

8.7.2 UltraSPARC Ⅱ493

8.7.3 Pipeline Structure493

8.8 Performance Considerations503

8.8.1 Effect of Instruction Hazards504

8.8.2 Number of Pipeline Stages505

8.9 Concluding Remarks506

Problems506

Reference509

Chapter 9 EMBEDDED SYSTEMS511

9.1 Examples of Embedded Systems512

9.1.1 Microwave Oven512

9.1.2 Digital Camera514

9.1.3 Home Telemetry516

9.2 Processor Chips for Embedded Applications517

9.3 A Simple Microcontroller518

9.3.1 Parallel I/O Ports518

9.3.2 Serial I/O Interface521

9.3.3 Counter/Timer523

9.3.4 Interrupt Control Mechanism525

9.4 Programming Considerations525

9.4.1 Polling Approach526

9.4.2 Interrupt Approach529

9.5 I/O Device Timing Constraints531

9.5.1 C Program for Transfer via a Circular Buffer533

9.5.2 Assembly Language Program for Transfer via a Circular Buffer534

9.6 Reaction Timer-An Example535

9.6.1 C Program for the Reaction Timer537

9.6.2 Assembly Language Program for the Reaction Timer537

9.6.3 Final Comments541

9.7 Embedded Processor Families541

9.7.1 Microcontrollers Based on the Intel 8051542

9.7.2 Motorola Microcontrollers542

9.7.3 ARM Microcontrollers543

9.8 Design Issues544

9.9 System-on-a-Chip546

9.9.1 FPGA Implementation547

9.10 Concluding Remarks549

Problems550

References552

Chapter 10 COMPUTER PERIPHERALS553

10.1 Input Devices554

10.1.1 Keyboard554

10.1.2 Mouse555

10.1.3 Trackball,Joystick,and Touchpad556

10.1.4 Scanners557

10.2 Output Devices558

10.2.1 Video Displays558

10.2.2 Flat-Panel Displays559

10.2.3 Printers560

10.2.4 Graphics Accelerators561

10.3 Serial Communication Links563

10.3.1 Asynchronous Transmission566

10.3.2 Synchronous Transmission568

10.3.3 Standard Communications Interfaces571

10.4 Concluding Remarks574

Problems575

Chapter 11 PROCESSOR FAMILIES577

11.1 The ARM Family579

11.1.1 The Thumb Instruction Set579

11.1.2 Processor and CPU Cores580

11.2 The Motorola 680X0 and ColdFire Families582

11.2.1 68020 Processor582

11.2.2 Enhancements in 68030 and 68040 Processors584

11.2.4 The ColdFire Family585

11.3 The Intel IA-32 Family585

11.2.3 68060 Processor585

11.3.1 IA-32 Memory Segmentation586

11.3.2 Sixteen-Bit Mode588

11.3.3 80386 and 80486 Processors588

11.3.4 Pentium Processor589

11.3.5 Pentium Pro Processor589

11.3.6 Pentium Ⅱand Ⅲ Processors590

11.3.7 Pentium 4 Processor590

11.3.8 Advanced Micro Devices IA-32 Processors591

11.4 The PowerPC Family591

11.4.1 Register Set591

11.4.2 Memory Addressing Modes592

11.4.3 Instructions592

11.4.4 PowerPC Processors592

11.5 The Sun Microsystems SPARC Family594

11.6.1 Instruction and Addressing Mode Formats596

11.6 The Compaq Alpha Family596

11.6.2 Alpha 21064 Processor597

11.6.3 Alpha 21164 Processor597

11.6.4 Alpha 21264 Processor597

11.7 The Intel IA-64 Family598

11.7.1 Instruction Bundles598

11.7.2 Conditional Execution598

11.7.3 Speculative Loads600

11.7.4 Registers and the Register Stack600

11.7.5 Itanium Processor602

11.8 A Stack Processor603

11.8.1 Stack Structure604

11.8.2 Stack Instructions606

11.8.3 Hardware Registers in the Stack610

Problems612

11.9 Concluding Remarks612

References614

Chapter 12 LARGE COMPUTER SYSTEMS617

12.1 Forms of Parallel Processing619

12.1.1 Classification of Parallel Structures619

12.2 Array Processors620

12.3 The Structure of General-Purpose Multiprocessors622

12.4 Interconnection Networks624

12.4.1 Single Bus624

12.4.2 Crossbar Networks625

12.4.3 Multistage Networks626

12.4.4 Hypercube Networks628

12.4.5 Mesh Networks630

12.4.6 Tree Networks630

12.4.7 Ring Networks631

12.4.8 Practical Considerations632

12.4.9 Mixed Topology Networks636

12.4.10 Symmetric Multiprocessors636

12.5 Memory Organization in Multiprocessors637

12.6 Program Parallelism and Shared Variables638

12.6.1 Accessing Shared Variables640

12.6.2 Cache Coherence641

12.6.3 Need for Locking and Cache Coherence645

12.7 Multicomputers645

12.7.1 Local Area Networks646

12.7.2 Ethemet(CSMA/CD)Bus646

12.7.3 Token Ring647

12.7.4 Network of Workstations647

12.8.1 Shared Memory Case648

12.8 Programmer's View of Shared Memory and Message Passing648

12.8.2 Message-Passing Case651

12.9 Performance Considerations653

12.9.1 Amdahl's Law654

12.9.2 Performance Indicators656

12.10 Concluding Remarks656

Problems657

References660

APPENDIX A:LOGIC CIRCUITS661

A.1 Basic Logic Functions662

A.1.1 Electronic Logic Gates665

A.2 Synthesis of Logic Functions666

A.3 Minimization of Logic Expressions668

A.3.1 Minimization Using Karnaugh Maps671

A.4 Synthesis with NAND and NOR Gates674

A.3.2 Don't-Care Conditions674

A.5 Practical Implementation of Logic Gates678

A.5.1 CMOS Circuits681

A.5.2 Propagation Delay686

A.5.3 Fan-In and Fan-Out Constraints687

A.5.4 Tri-state Buffers687

A.5.5 Integrated Circuit Packages688

A.6 Flip-Flops690

A.6.1 Gated Latches690

A.6.2 Master-Slave Flip-Flop694

A.6.3 Edge Triggering694

A.6.4 T Flip-Flop697

A.6.5 JK Flip-Flop697

A.6.6 Flip-Flops with Preset and Clear698

A.7 Registers and Shift Registers699

A.8 Counters702

A.9 Decoders703

A.10 Multiplexers705

A.11 Programmable Logic Devices(PLDs)705

A.11.1 Programmable Logic Array(PLA)707

A.11.2 Programmable Array Logic(PAL)710

A.11.3 Complex Programmable Logic Devices(CPLDs)711

A.12 Field-Programmable Gate Arrays712

A.13 Sequential Circuits714

A.13.1 An Example of an Up/Down Counter714

A.13.2 Timing Diagrams718

A.13.3 The Finite State Machine Model719

A.13.4 Synthesis of Finite State Machines720

Problems724

A.14 Concluding Remarks724

References731

APPENDIX B:ARM INSTRUCTION SET733

B.1 Instruction Encoding734

B.1.1 Arithmetic and Logic Instructions734

B.1.2 Memory Load and Store Instructions741

B.1.3 Block Load and Store Instructions744

B.1.4 Branch and Branch with Link Instructions747

B.1.5 Machine Control Instructions747

B.2 Other ARM Instructions750

B.2.1 Coprocessor Instructions750

B.2.2 Versions v4 and v5 Instructions750

B.3 Programming Experiments750

APPENDIX C:MOTOROLA 68000 INSTRUCTION SET751

APPENDIX D:INTEL IA-32 INSTRUCTION SET769

D.1 Instruction Encoding770

D.1.1 Addressing Modes772

D.2 Basic Instructions773

D.2.1 Conditional Jump Instructions782

D.2.2 Unconditional Jump Instructions782

D.3 Prefix Bytes782

D.4 Other Instructions783

D.4.1 String Instructions783

D 4.2 Floating-Point,MMX,and SSE Instructions784

D.5 Sixteen-Bit Operation785

D.6 Programming Experiments785

APPENDIX E:CHARACTER CODES AND NUMBER CONVERSION789

E.1 Character Codes790

E.2 Decimal-to-Binary Conversion793

INDEX795

热门推荐