注册 登录 进入教材巡展
#
  • #

出版时间:2023-09-18

出版社:机械工业出版社

以下为《计算机组成与体系结构:性能设计(原书第11版)》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 机械工业出版社
  • 9787111728450
  • 1-1
  • 2023-09-18
  • 936
内容简介
本书介绍了计算机组成及体系结构的核心知识,内容包括计算机系统的概念、运算、CPU、指令集和汇编语言、并行处理等,是计算机及相关专业了解计算机组成的经典教材。
目录
目 录
Computer Organization and Architecture: Designing for Performance, Eleventh Edition
译者序
前言
作者简介
译者简介
第一部分 概述
第1章 基本概念与计算机演化 2
1.1 组成与体系结构 2
1.2 功能和结构 3
1.2.1 功能 3
1.2.2 结构 3
1.3 IAS计算机 8
1.4 逻辑门、存储器位元、芯片和
  多芯片模块 12
1.4.1 逻辑门和存储器位元 12
1.4.2 晶体管 13
1.4.3 微电子芯片 13
1.4.4 多芯片模块 15
1.5 Intel x86体系结构的演化 15
1.6 嵌入式系统 18
1.6.1 物联网 19
1.6.2 嵌入式操作系统 19
1.6.3 应用处理器与专用处理器 19
1.6.4 微处理器与微控制器 20
1.6.5 嵌入式系统与深度嵌入式系统 20
1.7 ARM体系结构 21
1.7.1 ARM的演变 21
1.7.2 指令集体系结构 21
1.7.3 ARM产品 22
1.8 关键词、思考题和习题 25
第2章 性能问题 28
2.1 性能设计 28
2.1.1 微处理器的速度 29
2.1.2 性能平衡 29
2.1.3 芯片组成和体系结构的改进 30
2.2 多核、MIC和GPGPU 32
2.3 阿姆达尔定律和利特尔法则 33
2.3.1 阿姆达尔定律 33
2.3.2 利特尔法则 34
2.4 计算机性能的基本指标 35
2.4.1 时钟速度 36
2.4.2 指令执行速度 36
2.5 计算平均值 37
2.5.1 算术平均值 39
2.5.2 调和平均值 39
2.5.3 几何平均值 41
2.6 基准测试和SPEC 43
2.6.1 基准测试原则 43
2.6.2 SPEC基准测试 44
2.7 关键词、思考题和习题 49
第二部分 计算机系统
第3章 计算机功能和互连的顶层视图56
3.1 计算机的部件 56
3.2 计算机的功能 58
3.2.1 指令的读取和执行 58
3.2.2 中断 61
3.2.3 I/O功能 67
3.3 互连结构 68
3.4 总线互连 68
3.5 点对点互连 70
3.5.1 QPI物理层 71
3.5.2 QPI链路层 72
3.5.3 QPI路由层 73
3.5.4 QPI协议层 73
3.6 PCIe 73
3.6.1 PCI物理和逻辑体系结构 74
3.6.2 PCIe物理层 75
3.6.3 PCIe事务处理层 76
3.6.4 PCIe数据链路层 78
3.7 关键词、思考题和习题 79
第4章 存储器层次结构:
    局部性和性能 83
4.1 局部性原理 83
4.2 存储系统的特性 87
4.3 存储器层次结构 88
4.3.1 成本与性能特点 89
4.3.2 存储器层次结构的典型构件 91
4.3.3 IBM z13存储器层次结构 92
4.3.4 存储器层次结构的设计原则 93
4.4 多级存储器层次结构的性能建模 93
4.4.1 两级存储器存取 93
4.4.2 多级存储器存取 97
4.5 关键词、思考题和习题 99
第5章 cache存储器 102
5.1 cache存储器的原理 102
5.2 cache的设计要素 105
5.2.1 cache地址 105
5.2.2 cache容量 106
5.2.3 逻辑cache的组织结构 107
5.2.4 替换算法 117
5.2.5 写策略 118
5.2.6 行大小 119
5.2.7 cache的数目 119
5.2.8 包含策略 121
5.3 Intel x86的cache组织 122
5.4 IBM z13的cache组织 124
5.5 cache的性能模型 125
5.5.1 cache的时序模型 125
5.5.2 用于提高性能的设计选项 126
5.6 关键词、思考题和习题 127
第6章 内部存储器 131
6.1 半导体主存储器 131
6.1.1 组织 131
6.1.2 DRAM和SRAM 132
6.1.3 ROM类型 133
6.1.4 芯片逻辑 134
6.1.5 芯片封装 136
6.1.6 模块组织 136
6.1.7 多体交叉存储器 138
6.2 纠错 138
6.3 DDR DRAM 142
6.3.1 SDRAM 142
6.3.2 DDR SDRAM 144
6.4 eDRAM 146
6.4.1 IBM z13 eDRAM的
    cache结构 146
6.4.2 Intel Core系统的cache结构 146
6.5 闪存 148
6.5.1 操作 148
6.5.2 NOR和NAND闪存 148
6.6 较新的非易失性固态存储器技术 150
6.6.1 STT-RAM 151
6.6.2 PCRAM  152
6.6.3 ReRAM 152
6.7 关键词、思考题和习题 152
第7章 外部存储器 156
7.1 磁盘 156
7.1.1 磁读写机制  156
7.1.2 数据组织和格式化 157
7.1.3 物理特性  160
7.1.4 磁盘性能参数 161
7.2 RAID 163
7.2.1 RAID 0级 165
7.2.2 RAID 1级 167
7.2.3 RAID 2级 168
7.2.4 RAID 3级 168
7.2.5 RAID 4级 169
7.2.6 RAID 5级 169
7.2.7 RAID 6级 169
7.3 固态硬盘 171
7.3.1 固态硬盘与硬盘驱动器的比较 171
7.3.2 固态硬盘组织结构 171
7.3.3 实际问题 172
7.4 光存储器 172
7.4.1 光盘 173
7.4.2 数字多功能光盘 175
7.4.3 高清晰光盘 176
7.5 磁带 177
7.6 关键词、思考题和习题 178
第8章 输入/输出 182
8.1 外部设备 182
8.1.1 键盘/监视器 184
8.1.2 磁盘驱动器 184
8.2 I/O模块 184
8.2.1 模块功能 184
8.2.2 I/O模块结构 185
8.3 编程式I/O 186
8.3.1 编程式I/O概述 186
8.3.2 I/O命令 187
8.3.3 I/O指令 188
8.4 中断驱动式I/O 189
8.4.1 中断处理 189
8.4.2 设计问题 191
8.4.3 Intel 82C59A中断控制器 192
8.4.4 Intel 8255A可编程外部接口 192
8.5 DMA 196
8.5.1 编程式I/O和中断驱动式
    I/O的缺点 196
8.5.2 DMA功能 197
8.5.3 Intel 8237A DMA控制器 198
8.6 DCA 200
8.6.1 使用共享的最后一级
    cache的DMA 201
8.6.2 cache相关的性能问题 202
8.6.3 直接cache存取策略 204
8.6.4 直接数据I/O 204
8.7 I/O通道和处理器 206
8.7.1 I/O功能的演变 206
8.7.2 I/O通道的特点 206
8.8 外部互连标准 207
8.8.1 通用串行总线 207
8.8.2 FireWire串行总线 208
8.8.3 小型计算机系统接口 208
8.8.4 迅雷 208
8.8.5 InfiniBand 209
8.8.6 PCIe 209
8.8.7 SATA 209
8.8.8 以太网 209
8.8.9 WiFi 209
8.9 IBM z13 I/O结构 210
8.9.1 通道结构 210
8.9.2 I/O系统组织结构 211
8.10 关键词、思考题和习题 212
第9章 操作系统支持 217
9.1 操作系统概述 217
9.1.1 操作系统的目标与功能 217
9.1.2 操作系统的类型 219
9.2 调度 224
9.2.1 长期调度 225
9.2.2 中期调度 225
9.2.3 短期调度 225
9.3 存储器管理 228
9.3.1 交换 228
9.3.2 分区 229
9.3.3 分页 230
9.3.4 虚拟存储器 232
9.3.5 快表 233
9.3.6 分段 235
9.4 Intel x86存储器管理 235
9.4.1 地址空间 235
9.4.2 分段 236
9.4.3 分页 238
9.5 ARM存储器管理 239
9.5.1 存储器系统组织 239
9.5.2 虚拟存储器地址转换 239
9.5.3 存储器管理格式 240
9.5.4 存取控制 242
9.6 关键词、思考题和习题 242
第三部分 算术与逻辑
第10章 数字系统 248
10.1 十进制系统 248
10.2 按位记数制系统 249
10.3 二进制系统 249
10.4 二进制数与十进制数的转换 250
10.4.1 整数 250
10.4.2 小数  251
10.5 十六进制表示法 252
10.6 关键词和习题 254
第11章 计算机算术运算 256
11.1 算术逻辑单元 256
11.2 整数表示 257
11.2.1 符号-幅值表示法 257
11.2.2 二进制补码表示法 258
11.2.3 范围扩展 260
11.2.4 定点表示法 261
11.3 整数算术运算 261
11.3.1 取负 261
11.3.2 加法和减法 262
11.3.3 乘法 265
11.3.4 除法 270
11.4 浮点表示 273
11.4.1 原理 273
11.4.2 二进制浮点表示的
       IEEE标准 275
11.5 浮点算术运算 279
11.5.1 浮点加法和减法 280
11.5.2 浮点乘法和除法 281
11.5.3 精度考虑 282
11.5.4 二进制浮点算术运算的
    IEEE标准 284
11.6 关键词、思考题和习题 286
第12章 数字逻辑 290
12.1 布尔代数 290
12.1.1 集合代数 291
12.1.2 布尔恒等式 293
12.2 门 294
12.3 组合电路 296
12.3.1 布尔函数的实现 296
12.3.2 多路复用器 303
12.3.3 解码器 304
12.3.4 只读存储器 305
12.3.5 加法器 306
12.4 时序电路 309
12.4.1 触发器 309
12.4.2 寄存器 311
12.4.3 计数器 313
12.5 可编程逻辑器件 315
12.5.1 可编程逻辑阵列 316
12.5.2 现场可编程门阵列 317
12.6 关键词和习题 318
第四部分 指令集与汇编语言
第13章 指令集:特征和功能 324
13.1 机器指令特征 324
13.1.1 机器指令要素 324
13.1.2 指令表示 325
13.1.3 指令类型 326
13.1.4 地址数目 327
13.1.5 指令集设计 328
13.2 操作数类型 329
13.2.1 数值 329
13.2.2 字符 329
13.2.3 逻辑数据 330
13.3 Intel x86和ARM数据类型 330
13.3.1 x86数据类型 330
13.3.2 ARM数据类型 331
13.4 操作类型 333
13.4.1 数据传送 335
13.4.2 算术运算 336
13.4.3 逻辑运算 336
13.4.4 转换 338
13.4.5 输入/输出 338
13.4.6 系统控制 339
13.4.7 控制转移 339
13.5 Intel x86和ARM操作类型 342
13.5.1 x86操作类型 342
13.5.2 ARM操作类型 347
13.6 关键词、思考题和习题 348
本章附录 小端、大端和双端 353
第14章 指令集:寻址方式和
     指令格式 356
14.1 寻址方式 356
14.1.1 立即寻址 356
14.1.2 直接寻址 358
14.1.3 间接寻址 358
14.1.4 寄存器寻址 358
14.1.5 寄存器间接寻址 359
14.1.6 偏移寻址 359
14.1.7 栈寻址 360
14.2 x86和ARM寻址方式 361
14.2.1 x86寻址方式 361
14.2.2 ARM寻址方式 363
14.3 指令格式 365
14.3.1 指令长度 365
14.3.2 位的分配 366
14.3.3 变长指令 368
14.4 x86和ARM指令格式 371
14.4.1 x86指令格式 371
14.4.2 ARM指令格式 373
14.5 关键词、思考题和习题 375
第15章 汇编语言及相关主题 379
15.1 汇编语言概念 380
15.2 运用汇编语言编程的动机 381
15.3 汇编语言元素 383
15.3.1 语句 383
15.3.2 伪指令 385
15.3.3 指令 386
15.3.4 系统调用 387
15.4 示例 387
15.4.1 最大公约数 387
15.4.2 求素数程序 388
15.4.3 字符串操作 390
15.5 汇编器的类型 391
15.6 汇编器 392
15.6.1 两趟汇编器 392
15.6.2 单趟汇编器 393
15.7 装载和链接 394
15.7.1 重定位 394
15.7.2 装载 395
15.7.3 链接 397
15.8 关键词、思考题和习题 399
第五部分 CPU
第16章 CPU的结构和功能 404
16.1 CPU组成 404
16.2 寄存器组成 405
16.2.1 用户可见寄存器 405
16.2.2 控制和状态寄存器 407
16.2.3 微处理器寄存器组成的例子 408
16.3 指令周期 409
16.3.1 间接周期 409
16.3.2 数据流 410
16.4 指令流水线技术 411
16.4.1 流水线策略 411
16.4.2 流水线性能 416
16.4.3 流水线冒险 416
16.4.4 处理分支指令 419
16.4.5 Intel 80486的流水线 422
16.5 用于流水线的处理器结构 423
16.6 x86系列处理器 425
16.6.1 寄存器组成 425
16.6.2 中断处理 429
16.7 ARM处理器 431
16.7.1 处理器组成? 431
16.7.2 处理器模式 432
16.7.3 寄存器组成 433
16.7.4 中断处理 434
16.8 关键词、思考题和习题 435
第17章 精简指令集计算机 439
17.1 指令执行特征 440
17.1.1 操作 441
17.1.2 操作数 441
17.1.3 过程调用 442
17.1.4 推论 442
17.2 大寄存器组方案的使用 443
17.2.1 寄存器窗口 443
17.2.2 全局变量 444
17.2.3 大寄存器组与cache的对比 445
17.3 基于编译器的寄存器优化 446
17.4 精简指令集体系结构 448
17.4.1 采用CISC的理由 448
17.4.2 精简指令集体系结构特征 449
17.4.3 CISC与RISC特征对比 451
17.5 RISC流水线技术 452
17.5.1 使用规整指令的流水线技术 452
17.5.2 流水线的优化 453
17.6 MIPS R4000 455
17.6.1 指令集 455
17.6.2 指令流水线 456
17.7 SPARC 459
17.7.1 SPARC寄存器组 459
17.7.2 指令集 460
17.7.3 指令格式 462
17.8 用于流水线的处理器结构 463
17.9  CISC、RISC和当代系统 465
17.10 关键词、思考题和习题 465
第18章 指令级并行性和超标量
         处理器 469
18.1 概述 469
18.1.1 超标量与超流水线的对比 471
18.1.2 限制 471
18.2 设计考虑 474
18.2.1 指令级并行性和机器并行性 474
18.2.2 指令发射策略 474
18.2.3 寄存器重命名 477
18.2.4 机器并行性 478
18.2.5 分支预测 479
18.2.6 超标量执行 479
18.2.7 超标量实现 480
18.3 Intel Core微体系结构 480
18.3.1 前端 482
18.3.2 乱序执行逻辑 483
18.3.3 整数和浮点执行单元 484
18.4 ARM Cortex-A8 485
18.4.1 取指单元 486
18.4.2 指令译码单元 487
18.4.3 整数执行单元 489
18.4.4 SIMD和浮点流水线 490
18.5 ARM Cortex-M3 491
18.5.1 总线管道结构 492
18.5.2 处理分支 492
18.6 关键词、思考题和习题 494
第19章 控制器操作和微程序控制 498
19.1 微操作 498
19.1.1 取指周期 499
19.1.2 间接周期 500
19.1.3 中断周期 501
19.1.4 执行周期 501
19.1.5 指令周期 502
19.2 处理器控制 503
19.2.1 功能需求 503
19.2.2 控制信号 504
19.2.3 控制信号示例 505
19.2.4 处理器内部的组织 506
19.2.5 Intel 8085 507
19.3 硬布线实现 510
19.3.1 控制器输入 510
19.3.2 控制器逻辑 511
19.4 微程序控制 512
19.4.1 微指令 512
19.4.2 微程序控制器 514
19.4.3 Wilkes控制 516
19.4.4 优缺点 518
19.5 关键词、思考题和习题 519
第六部分 并行组织
第20章 并行处理 522
20.1 多处理器组织 522
20.1.1 并行处理器系统的类型 522
20.1.2 并行组织概述 523
20.2 对称多处理器 524
20.2.1 对称多处理器的组织 525
20.2.2 多处理器操作系统设计考虑 526
20.3 cache一致性与MESI协议 527
20.3.1 软件解决方案 527
20.3.2 硬件解决方案 528
20.3.3 MESI协议 529
20.4 多线程与片上多处理器 534
20.4.1 隐式与显式多线程 534
20.4.2 显式多线程的方式 535
20.5 集群 537
20.6 非均匀存储器访问 540
20.6.1 研究动机 540
20.6.2 组织 540
20.6.3 NUMA的优缺点 542
20.7 关键词、思考题和习题 542
第21章 多核计算机 547
21.1 硬件性能问题 547
21.1.1 增加并行和复杂度 547
21.1.2 功耗 548
21.2 软件性能问题 549
21.2.1 多核软件 549
21.2.2 应用实例:Valve游戏软件 551
21.3 多核组织结构 552
21.3.1 cache的级别 552
21.3.2 同步多线程 553
21.4 异构多核组织 554
21.4.1 不同的指令集体系结构 554
21.4.2 等效指令集体系结构 557
21.4.3 cache一致性和MOESI模型 559
21.5 Intel Core i7-5960X 560
21.6 ARM Cortex-A15 MPCore 561
21.6.1 中断处理 561
21.6.2 cache一致性 563
21.6.3 L2 cache一致性 564
21.7 IBM z13大型机 564
21.7.1 组织 565
21.7.2 cache结构 565
21.8 关键词、思考题和习题 567
附录一
附录A 系统总线
附录B victim cache策略
附录C 交叉存储器
附录D 国际参考字母表
附录E 栈
附录F 递归程序
附录G 对指令流水线主题的补充
术语表
参考文献