《计算机组成与体系结构 性能设计 原书第8版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)斯托林斯著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2011
  • ISBN:9787111328780
  • 页数:492 页
图书介绍:本书以Intel x86体系结构和ARM两个处理器系列为例,结合当代计算机系统性能设计问题,介绍了计算机体系结构的主流技术和最新技术。本书可作为高等院校计算机及相关专业的计算机体系结构课程教材或教学参考书,同时也可以作为从事计算机研究与开发的技术人员的参考书。

第0章 读者指南 1

0.1 本书概要 1

0.2 导读 1

0.3 为何要学习计算机组成和体系结构 1

0.4 因特网与Web资源 2

0.4.1 本书的Web站点 2

0.4.2 其他Web站点 3

0.4.3 USENET新闻组 3

第一部分 概论 6

第1章 导论 6

1.1 计算机组成与体系结构 6

1.2 结构和功能 7

1.2.1 功能 7

1.2.2 结构 8

1.3 关键词和思考题 9

第2章 计算机的演变和性能 10

2.1 计算机简史 10

2.1.1 第一代:真空管 10

2.1.2 第二代:晶体管 15

2.1.3 第三代:集成电路 16

2.1.4 后续几代 20

2.2 性能设计 22

2.2.1 微处理器的速度 23

2.2.2 性能平衡 23

2.2.3 芯片组成和体系结构的改进 25

2.3 Intel x86体系结构的进展 26

2.4 嵌入式系统和ARM 27

2.4.1 嵌入式系统 27

2.4.2 ARM的进展 29

2.5 性能评价 30

2.5.1 时钟速度和每秒指令数 30

2.5.2 基准程序 32

2.5.3 阿姆达尔定律 34

2.6 推荐的读物和Web站点 35

2.7 关键词、思考题和习题 36

第二部分 计算机系统 42

第3章 计算机功能和互连的顶层视图 42

3.1 计算机的部件 42

3.2 计算机的功能 44

3.2.1 指令的读取和执行 44

3.2.2 中断 46

3.2.3 I/O功能 51

3.3 互连结构 51

3.4 总线互连 52

3.4.1 总线结构 52

3.4.2 多总线层次结构 54

3.4.3 总线的设计要素 55

3.5 PCI 58

3.5.1 总线结构 58

3.5.2 PCI命令 61

3.5.3 数据传送 62

3.5.4 仲裁 63

3.6 推荐的读物和Web站点 64

3.7 关键词、思考题和习题 64

附录3A 时序图 67

第4章 cache存储器 69

4.1 计算机存储系统概述 69

4.1.1 存储系统的特性 69

4.1.2 存储器层次结构 71

4.2 cache存储器原理 73

4.3 cache的设计要素 75

4.3.1 cache地址 75

4.3.2 cache容量 76

4.3.3 映射功能 77

4.3.4 替换算法 85

4.3.5 写策略 85

4.3.6 行大小 86

4.3.7 cache数目 86

4.4 Pentium 4的cache组织 88

4.5 ARM的cache组织 90

4.6 推荐的读物 91

4.7 关键词、思考题和习题 91

附录4A 两级存储器的性能特点 95

第5章 内部存储器 100

5.1 半导体主存储器 100

5.1.1 组织 100

5.1.2 DRAM和SRAM 100

5.1.3 ROM类型 102

5.1.4 芯片逻辑 103

5.1.5 芯片封装 104

5.1.6 模块组织 105

5.1.7 多体交叉存储器 106

5.2 纠错 107

5.3 高级DRAM组织 110

5.3.1 同步DRAM 111

5.3.2 Rambus DRAM 112

5.3.3 DDR DRAM 113

5.3.4 cache DRAM 114

5.4 推荐的读物和Web站点 114

5.5 关键词、思考题和习题 115

第6章 外部存储器 118

6.1 磁盘 118

6.1.1 磁读写机制 118

6.1.2 数据组织和格式化 119

6.1.3 物理特性 121

6.1.4 磁盘性能参数 122

6.2 RAID 124

6.2.1 RAID 0级 125

6.2.2 RAID 1级 128

6.2.3 RAID 2级 128

6.2.4 RAID 3级 128

6.2.5 RAID 4级 129

6.2.6 RAID 5级 130

6.2.7 RAID 6级 130

6.3 光存储器 131

6.3.1 光盘 131

6.3.2 数字多功能光盘 133

6.3.3 高清晰光盘 134

6.4 磁带 135

6.5 推荐的读物和Web站点 136

6.6 关键词、思考题和习题 137

第7章 输入/输出 140

7.1 外部设备 140

7.1.1 键盘/监视器 141

7.1.2 磁盘驱动器 142

7.2 I/O模块 142

7.2.1 模块功能 142

7.2.2 I/O模块结构 143

7.3 编程式I/O 143

7.3.1 编程式I/O概述 144

7.3.2 I/O命令 144

7.3.3 I/O指令 144

7.4 中断驱动式I/O 146

7.4.1 中断处理 146

7.4.2 设计问题 148

7.4.3 Intel 82C59A中断控制器 149

7.4.4 Intel 82C55A可编程外部接口 150

7.5 直接存储器存取 151

7.5.1 编程式I/O和中断驱动式I/O的缺点 151

7.5.2 DMA功能 151

7.5.3 Intel 8237A DMA控制器 153

7.6 I/O通道和处理器 155

7.6.1 I/O功能的演变 155

7.6.2 I/O通道的特点 155

7.7 外部接口:FireWire和InfiniBand 156

7.7.1 接口类型 156

7.7.2 点对点和多点配置 156

7.7.3 FireWire串行总线 157

7.7.4 InfiniBand 159

7.8 推荐的读物和Web站点 162

7.9 关键词、思考题和习题 162

第8章 操作系统支持 166

8.1 操作系统概述 166

8.1.1 操作系统的目标与功能 166

8.1.2 操作系统的类型 168

8.2 调度 173

8.2.1 长期调度 173

8.2.2 中期调度 173

8.2.3 短期调度 173

8.3 存储器管理 176

8.3.1 交换 177

8.3.2 分区 177

8.3.3 分页 179

8.3.4 虚拟存储器 180

8.3.5 快表 182

8.3.6 分段 183

8.4 Pentium存储器管理 184

8.4.1 地址空间 184

8.4.2 分段 184

8.4.3 分页 186

8.5 ARM存储器管理 187

8.5.1 存储器系统组织 187

8.5.2 虚拟存储器地址转换 187

8.5.3 存储器管理格式 189

8.5.4 存取控制 190

8.6 推荐的读物和Web站点 191

8.7 关键词、思考题和习题 191

第三部分 中央处理器 196

第9章 计算机算术 196

9.1 算术逻辑单元 196

9.2 整数表示 196

9.2.1 符号-幅值表示法 197

9.2.2 2的补码表示法 197

9.2.3 不同位长间的转换 199

9.2.4 定点表示法 200

9.3 整数算术 200

9.3.1 取负 200

9.3.2 加法和减法 201

9.3.3 乘法 203

9.3.4 除法 207

9.4 浮点表示 208

9.4.1 原理 208

9.4.2 二进制浮点表示的IEEE标准 211

9.5 浮点算术 212

9.5.1 浮点加法和减法 213

9.5.2 浮点乘法和除法 214

9.5.3 精度考虑 215

9.5.4 二进制浮点算术的IEEE标准 216

9.6 推荐的读物和Web站点 218

9.7 关键词、思考题和习题 219

第10章 指令集:特征和功能 222

10.1 机器指令特征 222

10.1.1 机器指令要素 222

10.1.2 指令表示 223

10.1.3 指令类型 224

10.1.4 地址数目 225

10.1.5 指令集设计 226

10.2 操作数类型 226

10.2.1 数值 227

10.2.2 字符 227

10.2.3 逻辑数据 228

10.3 Intel x86和ARM数据类型 228

10.3.1 x86数据类型 228

10.3.2 ARM数据类型 229

10.4 操作类型 230

10.4.1 数据传送 232

10.4.2 算术运算 233

10.4.3 逻辑运算 233

10.4.4 转换 234

10.4.5 输入/输出 235

10.4.6 系统控制 235

10.4.7 控制转移 235

10.5 Intel x86和ARM操作类型 238

10.5.1 x86操作类型 238

10.5.2 ARM操作类型 244

10.6 推荐的读物 246

10.7 关键词、思考题和习题 246

附录10A 栈 250

附录10B 小端、大端和双端 253

第11章 指令集:寻址方式和指令格式 256

11.1 寻址方式 256

11.1.1 立即寻址 257

11.1.2 直接寻址 257

11.1.3 间接寻址 257

11.1.4 寄存器寻址 258

11.1.5 寄存器间接寻址 258

11.1.6 偏移寻址 258

11.1.7 栈寻址 260

11.2 x86和ARM寻址方式 260

11.2.1 x86寻址方式 260

11.2.2 ARM寻址方式 262

11.3 指令格式 264

11.3.1 指令长度 264

11.3.2 位的分配 265

11.3.3 变长指令 267

11.4 x86和ARM指令格式 269

11.4.1 x86指令格式 269

11.4.2 ARM指令格式 271

11.5 汇编语言 272

11.6 推荐的读物 274

11.7 关键词、思考题和习题 274

第12章 CPU结构和功能 277

12.1 CPU组成 277

12.2 寄存器组成 278

12.2.1 用户可见寄存器 278

12.2.2 控制和状态寄存器 280

12.2.3 微处理器寄存器组成的例子 281

12.3 指令周期 282

12.3.1 间接周期 282

12.3.2 数据流 283

12.4 指令流水线技术 283

12.4.1 流水线策略 284

12.4.2 流水线性能 286

12.4.3 流水线冒险 288

12.4.4 处理分支指令 289

12.4.5 Intel 80486的流水线 292

12.5 x86系列处理器 293

12.5.1 寄存器组成 294

12.5.2 中断处理 298

12.6 ARM处理器 299

12.6.1 处理器组成 300

12.6.2 处理器模式 301

12.6.3 寄存器组成 301

12.6.4 中断处理 303

12.7 推荐的读物 304

12.8 关键词、思考题和习题 304

第13章 精简指令集计算机 308

13.1 指令执行特征 309

13.1.1 操作 309

13.1.2 操作数 310

13.1.3 过程调用 311

13.1.4 推论 311

13.2 大寄存器组方案的使用 311

13.2.1 寄存器窗口 312

13.2.2 全局变量 313

13.2.3 大寄存器组与高速缓存的对比 313

13.3 基于编译器的寄存器优化 314

13.4 精简指令集体系结构 315

13.4.1 采用CISC的理由 315

13.4.2 精简指令集体系结构特征 317

13.4.3 CISC与RISC特征对比 318

13.5 RISC流水线技术 319

13.5.1 使用规整指令的流水线技术 319

13.5.2 流水线的优化 320

13.6 MIPS R4000 322

13.6.1 指令集 322

13.6.2 指令流水线 324

13.7 SPARC 327

13.7.1 SPARC寄存器组 327

13.7.2 指令集 328

13.7.3 指令格式 329

13.8 RISC与CISC的争论 330

13.9 推荐的读物 331

13.10 关键词、思考题和习题 331

第14章 指令级并行性和超标量处理器 335

14.1 概述 335

14.1.1 超标量与超级流水线的对比 336

14.1.2 限制 337

14.2 设计考虑 338

14.2.1 指令级并行性和机器并行性 338

14.2.2 指令发射策略 339

14.2.3 寄存器重命名 341

14.2.4 机器并行性 342

14.2.5 分支预测 342

14.2.6 超标量执行 343

14.2.7 超标量实现 343

14.3 Pentium 4 343

14.3.1 前端 347

14.3.2 乱序执行逻辑 348

14.3.3 整数和浮点执行单元 349

14.4 ARM CORTEX-A8 349

14.4.1 指令取指单元 349

14.4.2 指令译码单元 351

14.4.3 整数执行单元 353

14.4.4 SIMD和浮点流水线 354

14.5 推荐的读物 355

14.6 关键词、思考题和习题 356

第四部分 控制器 362

第15章 控制器操作 362

15.1 微操作 362

15.1.1 取指周期 363

15.1.2 间接周期 364

15.1.3 中断周期 365

15.1.4 执行周期 365

15.1.5 指令周期 366

15.2 处理器控制 367

15.2.1 功能需求 367

15.2.2 控制信号 367

15.2.3 控制信号举例 368

15.2.4 处理器内部的组织 369

15.2.5 Intel 8085 370

15.3 硬布线实现 373

15.3.1 控制器输入 373

15.3.2 控制器逻辑 374

15.4 推荐的读物 374

15.5 关键词、思考题和习题 375

第16章 微程序控制 376

16.1 基本概念 376

16.1.1 微指令 376

16.1.2 微程序控制器 378

16.1.3 Wilkes控制 379

16.1.4 优缺点 382

16.2 微指令定序 382

16.2.1 设计考虑 382

16.2.2 定序技术 382

16.2.3 地址生成 384

16.2.4 LSI-11微指令定序 384

16.3 微指令执行 385

16.3.1 微指令的分类法 385

16.3.2 微指令编码 387

16.3.3 LSI-11微指令执行 388

16.3.4 IBM 3033微指令执行 390

16.4 TI 8800 391

16.4.1 微指令格式 391

16.4.2 微定序器 393

16.4.3 寄存器式ALU 395

16.5 推荐的读物 397

16.6 关键词、思考题和习题 397

第五部分 并行组织 400

第17章 并行处理 400

17.1 多处理器组织 401

17.1.1 并行处理器系统的类型 401

17.1.2 并行组织 402

17.2 对称多处理器 402

17.2.1 组织 403

17.2.2 多处理器操作系统设计考虑 405

17.2.3 大型机SMP 405

17.3 cache一致性和MESI协议 407

17.3.1 软件解决方案 408

17.3.2 硬件解决方案 408

17.3.3 MESI协议 409

17.4 多线程和片上多处理器 411

17.4.1 隐式和显式多线程 412

17.4.2 显式多线程的方式 413

17.4.3 示例系统 415

17.5 集群 416

17.5.1 集群配置 417

17.5.2 操作系统设计问题 418

17.5.3 集群计算机体系结构 419

17.5.4 刀片服务器 420

17.5.5 集群与SMP的对比 421

17.6 非均匀存储器访问 421

17.6.1 动机 421

17.6.2 组织 422

17.6.3 NUMA的优缺点 423

17.7 向量计算 424

17.7.1 向量计算的方法 424

17.7.2 IBM 3090向量机制 427

17.8 推荐的读物和Web站点 432

17.9 关键词、思考题和习题 433

第18章 多核计算机 437

18.1 硬件性能问题 437

18.1.1 增加并行 437

18.1.2 功耗 439

18.2 软件性能问题 440

18.2.1 多核软件 440

18.2.2 应用实例:Valve游戏软件 441

18.3 多核组织结构 442

18.4 Intel x86多核结构 443

18.4.1 Intel Core Duo 443

18.4.2 Intel Core i7 445

18.5 ARM11 MPCore 445

18.5.1 中断处理 446

18.5.2 cache一致性 448

18.6 推荐的读物和Web站点 448

18.7 关键词、思考题和习题 449

附录A 计算机组成与体系结构的教学课题 451

附录B 汇编语言及相关主题 455

术语表 473

参考文献 480