《计算机系统组成与体系结构》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)John D.Carpinelli著;李仁发,彭蔓蔓译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2003
  • ISBN:7115112436
  • 页数:409 页
图书介绍:本书详细叙述了有关计算机及其子系统的基本概念及相关知识。全书由三大部分组成:第一部分是数字逻辑和有限状态机,介绍了布尔代数基础、数字部件、组合逻辑和顺序逻辑、可编程逻辑器件。有限状态机是全书的基础。第二部分是计算机组成和系统结构,内容包括指令集系统结构、计算机组成、寄存器传输语言、CPU设计、控制部件设计、算术运算、存储器结构、I/O结构等。

第一部分 数字逻辑与有限状态机 3

第1章 数字逻辑基础 3

1.1 布尔代数 3

1.1.1 基本函数 4

1.1.2 布尔函数的使用 5

1.2 基本的组合逻辑 9

1.3 更复杂的组合元件 11

1.3.1 多路选择器 11

1.3.2 译码器 13

1.3.3 编码器 14

1.3.4 比较器 16

1.3.5 加法器和减法器 18

1.3.6 存储器 20

1.4 组合电路设计 21

1.4.1 BCD码的7段译码器 22

1.4.2 数据排序器 24

1.5 基本时序元件 25

1.6 更复杂的时序元件 28

1.6.1 计数器 28

1.6.2 移位寄存器 30

1.7 实例:可编程逻辑设备 31

1.8 总结 33

1.9 习题 34

第2章 介绍有限状态机 37

2.1 状态图和状态表 38

2.2 Mealy机和Moore机 41

2.3 设计状态图 41

2.3.1 模6计数器 42

2.3.2 串检查器 43

2.3.3 收费站控制器 44

2.4 从状态图到实现 48

2.4.1 状态赋值 49

2.4.2 Mealy机和Moore机的实现 50

2.4.3 产生次态 51

2.4.4 产生系统输出 55

2.4.5 一种可替代的设计 58

2.4.6 八状态串检查器 59

2.5 实例:实际考虑 61

2.5.1 未使用状态 61

2.5.2 异步设计 63

2.5.3 状态机转换 66

2.6 总结 67

2.7 习题 68

第二部分 计算机组成与体系结构 75

第3章 指令集结构 75

3.1 程序设计语言的级别 76

3.1.1 语言种类 76

3.1.2 编译和汇编程序 76

3.2 汇编语言指令 79

3.2.1 指令类型 80

3.2.2 数据类型 81

3.2.3 寻址方式 82

3.2.4 指令格式 84

3.3 指令集结构设计 86

3.4 相对简单的指令集结构 87

3.5 实例:8085微处理器指令集结构 92

3.5.1 8085微处理器的寄存器组 92

3.5.2 8085微处理器指令集 93

3.5.3 一个简单的8085程序 97

3.5.4 分析8085指令集结构 98

3.6 总结 99

3.7 习题 99

第4章 介绍计算机组成 102

4.1 基本的计算机组成 102

4.1.1 系统总线 103

4.1.2 指令周期 104

4.2 CPU组成 106

4.3 存储器子系统组成和接口 107

4.3.1 存储器的种类 107

4.3.2 芯片内部组成 109

4.3.3 存储器子系统配置 110

4.3.4 多字节数据组成 114

4.3.5 基本功能的拓展 115

4.4 I/O子系统组成和接口 115

4.5 相对简单计算机 117

4.6 实例:一台基于8085的计算机 120

4.7 总结 123

4.8 习题 124

第5章 寄存器传送语言 126

5.1 微操作和寄存器传送语言 127

5.2 用RTL描述数字系统 132

5.2.1 数字元件 132

5.2.2 简单系统的描述与实现 133

5.3 更复杂的数字系统和RTL 136

5.3.1 模6计数器 137

5.3.2 收费站控制器 139

5.4 实例:VHDL-VHSIC硬件描述语言 143

5.4.1 VHDL语法 144

5.4.2 高层抽象的VHDL设计 146

5.4.3 低层抽象的VHDL设计 149

5.5 总结 151

5.6 习题 151

第6章 CPU设计 154

6.1 CPU的设计规范 154

6.2 非常简单CPU的设计与实现 155

6.2.1 非常简单CPU的设计规范 155

6.2.2 从存储器中取指令 156

6.2.3 指令译码 157

6.2.4 指令执行 158

6.2.5 建立所需的数据通路 160

6.2.6 非常简单ALU的设计 163

6.2.7 用硬连线控制设计控制单元 164

6.2.8 设计验证 168

6.3 相对简单CPU的设计和实现 169

6.3.1 相对简单CPU的规范 169

6.3.2 取指令和指令译码 171

6.3.3 执行指令 172

6.3.4 创建数据通路 176

6.3.5 相对简单ALU的设计 179

6.3.6 用硬连线控制设计控制单元 181

6.3.7 设计验证 183

6.4 简单CPU的缺点 183

6.4.1 更多的内部寄存器和高速缓存 183

6.4.2 CPU内部的多总线 184

6.4.3 指令流水线式处理 185

6.4.4 更大的指令集 186

6.5 实例:8085微处理器的内部结构 187

6.4.5 子程序和中断 187

6.6 总结 189

6.7 习题 189

第7章 微序列控制单元设计 194

7.1 微序列控制器设计基础 194

7.1.1 微序列控制器的操作 194

7.1.2 微指令格式 196

7.2 非常简单微序列控制器的设计和实现 197

7.2.1 基本布局 197

7.2.2 生成正确序列并设计映象逻辑 198

7.2.3 用水平微代码生成微操作 199

7.2.4 用垂直微代码生成微操作 201

7.2.5 从微代码直接产生控制信号 205

7.3 相对简单微序列控制器的设计和实现 206

7.3.1 修改状态图 206

7.3.2 设计顺序硬件和微代码 207

7.3.3 用水平微代码完成设计 210

7.4 减少微指令数 212

7.4.1 微子程序 212

7.4.2 微代码跳转 215

7.5 微程序控制和硬连线控制的比较 216

7.5.1 指令集的复杂度 217

7.5.2 修改的容易度 217

7.5.3 时钟速度 217

7.6 实例:一个(大部分是)微代码的CPU:奔腾微处理器 217

7.7 总结 219

7.8 习题 219

第8章 运算方法 222

8.1 无符号表示法 223

8.1.1 加法和减法 223

8.1.2 乘法 226

8.1.3 除法 234

8.2 带符号表示法 241

8.2.1 符号幅值表示法 242

8.2.2 符号补码表示法 246

8.3 BCD码(binary coded decimal) 246

8.3.1 BCD码的格式 247

8.3.2 加法和减法 247

8.3.3 乘法和除法 251

8.4 专用运算部件 252

8.4.1 流水线 253

8.4.2 查找表 255

8.4.3 华莱士树 256

8.5 浮点数 259

8.5.1 数据格式 260

8.5.2 数据性质 260

8.5.3 加法和减法 262

8.5.4 乘法和除法 265

8.6 实例:IEEE 754浮点标准 267

8.6.1 格式 268

8.7 总结 269

8.6.2 非规范数 269

8.8 习题 270

第9章 存储器结构 273

9.1 存储器的层次结构 273

9.2 cache存储器 274

9.2.1 相联存储器 274

9.2.2 相联映象的cache存储器 276

9.2.3 直接映象的cache存储器 278

9.2.4 组相联映象的cache存储器 279

9.2.5 在cache中替换数据 281

9.2.6 写数据到cache 283

9.2.7 cache的性能 284

9.3 虚拟存储器 287

9.3.1 分页 288

9.3.2 分段 294

9.3.3 存储保护 296

9.4.1 基本cache的扩展 297

9.4 基本cache和虚拟存储器的扩展 297

9.4.2 基本虚拟存储器的扩展 298

9.5 实例:Pentium/Windows个人计算机上的内存管理 299

9.6 总结 300

9.7 习题 300

第10章 输入输出结构 305

10.1 异步数据传输 305

10.1.1 源启动的数据传送 306

10.1.2 目的启动的数据传送 307

10.1.3 握手 308

10.2 可编程I/O 309

10.2.1 新指令 313

10.2.2 新控制信号 313

10.2.3 新状态和RTL代码 313

10.2.4 修改CPU硬件以支持新指令 314

10.3.1 CPU和I/O设备之间的数据传送 315

10.2.5 确保其他指令正常工作 315

10.3 中断 315

10.3.2 中断类型 317

10.3.3 中断处理 317

10.3.4 中断硬件和优先级 319

10.3.5 CPU内部中断实现 323

10.4 直接存储器访问 325

10.4.1 将直接存储器访问(DMA)纳入计算机系统 325

10.4.2 DMA传输方式 327

10.4.3 修改CPU使其与DMA共处 328

10.5 I/O处理器 329

10.6 串行通信 332

10.6.1 串行通信原理 332

10.6.2 通用异步收发器(UART) 334

10.7 实例:串行通信标准 336

10.7.1 RS-232-C标准 336

10.7.2 通用串行总线标准 337

10.8 总结 338

10.9 习题 339

第三部分 高级专题 345

第11章 精简指令集计算 345

11.1 RISC基本原理 345

11.1.1 定长指令 346

11.1.2 只有LOAD和STORE的指令访问存储器 346

11.1.3 较少的寻址方式 346

11.1.4 指令流水线 346

11.1.5 大量的寄存器 347

11.1.6 硬连线控制单元 347

11.1.7 延时载入和分支 347

11.1.8 指令的预测执行 347

11.1.9 优化编译器 348

11.1.10 分离指令和数据流 348

11.2 RISC指令集 348

11.3.1 指令流水线 350

11.3 指令流水线和寄存器窗口 350

11.3.2 寄存器窗口和重命名 353

11.4 指令流水线冲突 356

11.4.1 数据冲突 356

11.4.2 分支冲突 359

11.5 RISC与CISC的比较 363

11.6 实例:Itanium微处理器 363

11.7 小结 365

11.8 习题 366

第12章 介绍并行处理 369

12.1 单处理机系统中的并行机制 369

12.2 多处理机系统的组织结构 372

12.2.1 弗林分类法 372

12.2.2 系统拓扑结构 373

12.2.3 MIMD系统的体系结构 375

12.3 多处理机系统中的通信 378

12.3.1 固定连接 379

12.3.2 可重构连接 380

12.3.3 多级互连网络(MIN)的路由 384

12.4 多处理机系统中的存储器管理 388

12.4.1 共享存储器 388

12.4.2 Cache一致性 390

12.5 多处理机操作系统和软件 393

12.6 并行算法 394

12.6.1 并行冒泡排序 395

12.6.2 并行矩阵乘法 396

12.7 其他的并行体系结构 399

12.7.1 数据流计算 399

12.7.2 脉动阵列 403

12.7.3 神经网络 406

12.8 小结 406

12.9 习题 407