计算机组成:结构化方法(原书第6版) pdf

计算机组成:结构化方法(原书第6版)

内容简介

本书采用结构化方法来介绍计算机系统,书的内容完全建立在“计算机是由层次结构组成的,每层完成规定的功能”这一概念之上。作者对本版进行了彻底的更新,以反映当今最重要的计算机技术以及计算机组成和体系结构方面的最新进展。书中详细讨论了数字逻辑层、微体系结构层、指令系统层、操作系统层和汇编语言层,并涵盖了并行体系结构的内容,而且每一章结尾都配有丰富的习题。本书适合作为计算机专业本科生计算机组成与结构课程的教材或参考书,也可供相关领域技术人员参考。

作者简介

[荷] Andrew S.Tanenbaum,[美] Todd Austin 著,刘卫东,宋佳兴 译

目录

Structured Computer Organization, Sixth Edition
出版者的话
译者序
前言
第1章 概述 1
1.1 结构化计算机组成 1
1.1.1 语言、层次和虚拟机 1
1.1.2 现代多层次计算机 3
1.1.3 多层次计算机的演化 5
1.2 计算机体系结构的里程碑 8
1.2.1 第零代——机械计算机(1642—1945) 8
1.2.2 第一代——电子管计算机(1945—1955) 10
1.2.3 第二代——晶体管计算机(1955—1965) 12
1.2.4 第三代——集成电路计算机(1965—1980) 14
1.2.5 第四代——超大规模集成电路计算机(1980年至今) 15
1.2.6 第五代——低功耗和无所不在的计算机 17
1.3 计算机家族 18
1.3.1 技术和经济推动 18
1.3.2 计算机扫视 20
1.3.3 一次性计算机 21
1.3.4 微型控制器 22
1.3.5 移动计算机和游戏计算机 23
1.3.6 个人计算机 24
1.3.7 服务器 25
1.3.8 大型主机 26
1.4 系列计算机举例 26
1.4.1 x86体系结构简介 27
1.4.2 ARM体系结构简介 31
1.4.3 AVR体系结构简介 32
1.5 公制计量单位 33
1.6 本书概览 34
习题 35
第2章 计算机系统组成 38
2.1 处理器 38
2.1.1 CPU组成 39
2.1.2 指令执行 40
2.1.3 RISC和CISC 42
2.1.4 现代计算机设计原则 43
2.1.5 指令级并行 44
2.1.6 处理器级并行 47
2.2 主存储器 50
2.2.1 存储位 50
2.2.2 内存编址 51
2.2.3 字节顺序 52
2.2.4 纠错码 53
2.2.5 高速缓存 56
2.2.6 内存封装及其类型 58
2.3 辅助存储器 59
2.3.1 层次存储结构 59
2.3.2 磁盘 60
2.3.3 IDE盘 62
2.3.4 SCSI盘 63
2.3.5 RAID盘 64
2.3.6 固盘 67
2.3.7 只读光盘 68
2.3.8 可刻光盘 71
2.3.9 可擦写光盘 73
2.3.10 DVD 73
2.3.11 Blu-Ray 74
2.4 输入/输出设备 75
2.4.1 总线 75
2.4.2 终端 78
2.4.3 鼠标 81
2.4.4 游戏控制器 83
2.4.5 打印机 84
2.4.6 电信设备 88
2.4.7 数码相机 94
2.4.8 字符编码 95
2.5 小结 99
习题 99
第3章 数字逻辑层 103
3.1 门和布尔代数 103
3.1.1 门 103
3.1.2 布尔代数 105
3.1.3 布尔函数的实现 107
3.1.4 等价电路 108
3.2 基本数字逻辑电路 110
3.2.1 集成电路 111
3.2.2 组合逻辑电路 111
3.2.3 算术电路 114
3.2.4 时钟 118
3.3 内存 119
3.3.1 锁存器 119
3.3.2 触发器 121
3.3.3 寄存器 122
3.3.4 内存组成 123
3.3.5 内存芯片 125
3.3.6 RAM和ROM 128
3.4 CPU芯片和总线 130
3.4.1 CPU芯片 130
3.4.2 计算机总线 132
3.4.3 总线宽度 134
3.4.4 总线时钟 135
3.4.5 总线仲裁 138
3.4.6 总线操作 141
3.5 CPU芯片举例 143
3.5.1 Intel Core i7 143
3.5.2 德州仪器的OMAP4430片上系统 147
3.5.3 Atmel的ATmega168微控制器 150
3.6 总线举例 152
3.6.1 PCI总线 152
3.6.2 PCI Express 159
3.6.3 通用串行总线USB 162
3.7 接口电路 165
3.7.1 输入/输出接口 165
3.7.2 地址译码 166
3.8 小结 169
习题 169
第4章 微体系结构层 173
4.1 微体系结构举例 173
4.1.1 数据通路 174
4.1.2 微指令 178
4.1.3 微指令控制:Mic-1 180
4.2 指令系统举例:IJVM 183
4.2.1 栈 183
4.2.2 IJVM内存模型 185
4.2.3 IJVM指令集 186
4.2.4 将Java编译为IJVM 189
4.3 实现举例 190
4.3.1 微指令和符号 190
4.3.2 用Mic-1实现IJVM 193
4.4 微体系结构层设计 201
4.4.1 速度与价格 202
4.4.2 缩短指令执行路径长度 203
4.4.3 带预取的设计:Mic-2 208
4.4.4 流水线设计:Mic-3 211
4.4.5 七段流水线设计:Mic-4 215
4.5 提高性能 217
4.5.1 高速缓存 218
4.5.2 分支预测 222
4.5.3 乱序执行和寄存器重命名 226
4.5.4 推测执行 230
4.6 微体系结构层举例 232
4.6.1 Core i7 CPU的微体系结构 232
4.6.2 OMAP4430 CPU的微体系结构 236
4.6.3 ATmega168微控制器的微体系结构 240
4.7 Core i7、OMAP4430和ATmega168三种CPU的比较 241
4.8 小结 242
习题 243
第5章 指令系统层 246
5.1 指令系统层概述 247
5.1.1 指令系统层的性质 247
5.1.2 存储模式 249
5.1.3 寄存器 250
5.1.4 指令 251
5.1.5 Core i7指令系统层概述 251
5.1.6 OMAP4430 ARM指令系统层概述 253
5.1.7 ATmega168 AVR指令系统层概述 255
5.2 数据类型 256
5.2.1 数值数据类型 257
5.2.2 非数值数据类型 257
5.2.3 Core i7的数据类型 258
5.2.4 OMAP4430 ARM CPU的数据类型 258
5.2.5 ATmega168 AVR CPU的数据类型 259
5.3 指令格式 259
5.3.1 指令格式设计准则 260
5.3.2 扩展操作码 261
5.3.3 Core i7指令格式 263
5.3.4 OMAP4430 ARM CPU指令格式 264
5.3.5 ATmega168 AVR指令格式 266
5.4 寻址 267
5.4.1 寻址方式 267
5.4.2 立即寻址 267
5.4.3 直接寻址 267
5.4.4 寄存器寻址 267
5.4.5 寄存器间接寻址 267
5.4.6 变址寻址 269
5.4.7 基址变址寻址 270
5.4.8 栈寻址 270
5.4.9 转移指令的寻址方式 272
5.4.10 操作码和寻址方式的关系 273
5.4.11 Core i7的寻址方式 274
5.4.12 OMAP4430 ARM CPU的寻址方式 276
5.4.13 ATmega168 AVR的寻址方式 276
5.4.14 寻址方式讨论 276
5.5 指令类型 277
5.5.1 数据移动指令 277
5.5.2 双操作数指令 278
5.5.3 单操作数指令 279
5.5.4 比较和条件转移指令 280
5.5.5 过程调用指令 281
5.5.6 循环控制指令 282
5.5.7 输入/输出指令 283
5.5.8 Core i7指令系统 285
5.5.9 OMAP4430 ARM CPU指令系统 287
5.5.10 ATmega168 AVR指令系统 289
5.5.11 指令集比较 291
5.6 控制流 291
5.6.1 顺序控制流和转移 291
5.6.2 过程 292
5.6.3 协同过程 295
5.6.4 陷阱 297
5.6.5 中断 297
5.7 详细举例:汉诺塔 300
5.7.1 Core i7汇编语言实现的汉诺塔 300
5.7.2 OMAP4430 ARM汇编语言实现的汉诺塔 302
5.8 IA-64体系结构和Itanium 2 303
5.8.1 IA-32的问题 303
5.8.2 IA-64模型:显式并行指令计算 304
5.8.3 减少内存访问 305
5.8.4 指令调度 305
5.8.5 减少条件转移:判定 307
5.8.6 推测加载 308
5.9 小结 309
习题 310
第6章 操作系统层 314
6.1 虚拟内存 314
6.1.1 内存分页 315
6.1.2 内存分页的实现 316
6.1.3 请求调页和工作集模型 319
6.1.4 页置换策略 320
6.1.5 页大小和碎片 321
6.1.6 分段 322
6.1.7 分段的实现 324
6.1.8 Core i7的虚拟内存 326
6.1.9 OMAP4430 ARM CPU的虚拟内存 329
6.1.10 虚拟内存和高速缓存 331
6.2 硬件虚拟化 331
6.3 操作系统层I/O指令 333
6.3.1 文件 333
6.3.2 操作系统层I/O指令的实现 335
6.3.3 目录管理指令 337
6.4 用于并行处理的操作系统层指令 338
6.4.1 进程创建 339
6.4.2 竞争条件 339
6.4.3 使用信号量的进程同步 342
6.5 操作系统实例 345
6.5.1 简介 345
6.5.2 虚拟内存实例 350
6.5.3 操作系统层I/O举例 352
6.5.4 进程管理实例 361
6.6 小结 365
习题 366
第7章 汇编语言层 371
7.1 汇编语言简介 371
7.1.1 什么是汇编语言 372
7.1.2 为什么使用汇编语言 372
7.1.3 汇编语言语句的格式 373
7.1.4 伪指令 374
7.2 宏 376
7.2.1 宏定义、调用和扩展 376
7.2.2 带参数的宏 377
7.2.3 高级特性 378
7.2.4 汇编器中宏处理的实现 378
7.3 汇编过程 379
7.3.1 两趟汇编的汇编器 379
7.3.2 第一趟扫描 379
7.3.3 第二趟扫描 382
7.3.4 符号表 384
7.4 链接和加载 385
7.4.1 链接器的处理过程 386
7.4.2 目标模块的结构 388
7.4.3 绑定时间和动态重定位 389
7.4.4 动态链接 390
7.5 小结 393
习题 393
第8章 并行计算机体系结构 396
8.1 片内并行 397
8.1.1 指令级并行 397
8.1.2 片内多线程 402
8.1.3 单片多处理器 406
8.2 协处理器 410
8.2.1 网络处理器 411
8.2.2 图形处理器 416
8.2.3 加密处理器 418
8.3 共享内存的多处理器 418
8.3.1 多处理器与多计算机 418
8.3.2 内存语义 424
8.3.3 UMA对称多处理器体系结构 426
8.3.4 NUMA多处理器系统 432
8.3.5 COMA多处理器系统 439
8.4 消息传递的多计算机 440
8.4.1 互联网络 441
8.4.2 MPP——大规模并行处理器 443
8.4.3 集群计算 450
8.4.4 多计算机的通信软件 454
8.4.5 调度 456
8.4.6 应用层的共享内存 457
8.4.7 性能 461
8.5 网格计算 465
8.6 小结 467
习题 468
参考文献 471
附录A 二进制数 479
附录B 浮点数 487
附录C 汇编语言程序设计 493
索引 534

感悟与笔记

一、结构化计算机组成

  1. 数字计算机是通过执行人们给出的指令来完成工作的机器。描述如何完成一个确定的任务的指令列成为程序。
  2. 机器的原始指令共同组成了一种可供人和计算机进行交流的语言,我们成其为机器语言。
  3. 在方便人们使用和方便计算机实现之间存在着巨大的差距,这个问题可以两个途径解决,两者都需要设计一个比内置的机器指令更方便人们使用的新的指令集合。
    • 一种途径是在执行L1写的程序之间生成一个等价,的L0指令序列来替换它,生成的程序全部由L0指令组成。计算机执行等效的L0来替换原来的L1程序,这种技术叫翻译。
    • 另一种途径是用L0写一个程序,将L1的程序作为输入数据,按顺序检查他的每一条指令,然后直接执行等效的L0指令序列计算出结果。它不需要事先生成一个L0语言的新程序,这种技术叫解释,L0叫解释器。
  4. 硬件和软件在逻辑上是等同的。

二、计算机家族

  1. RFID(Radio Frequency IDentification):无线射频识别,一般是微波,1-100GHz,适用于短距离识别通信。
  2. 微型控制器:又称嵌入式计算机,管理设备又负责和用户交互。
  3. 移动计算机和游戏计算机。
  4. 个人计算机。
  5. 服务器:在计算中,服务器是为其他程序或设备(称为“客户端”)提供功能的计算机程序或设备。

三、系列计算机

三类流行的指令集体系结构(ISA):x86,ARM,AVR

  1. x86:常用于个人计算机和服务器系统。
  2. ARM:常用于智能手机和平板电脑,ARM公司的ARM架构处理器已经有了很多版本,ARM、Cortex、Krait、Kryo;骁龙、苹果等厂商生产的CPU就是基于以上架构的,ARM没有直接生产自己的任何一款微处理器,而只是生产详细的设计方案,以及基于ARM的开发工具和库函数,并把它们授权给系统设计和芯片制造商生产。 
  3. AVR:增强型内置Flash的RISC(Reduced Instruction Set Computer) 精简指令集高速8位单片机,广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。
Copyright © 2021-2022 知识猫. All Rights Reserved.