第1章 计算机系统概述 1
1.1 计算机的发展历程 1
1.2 计算机硬件的基本组成 2
1.2.1 存储器 2
1.2.2 运算器 3
1.2.3 控制器 4
1.2.4 输入输出设备 4
1.2.5 总线 4
1.3 程序设计语言和计算机的层次结构 6
1.4 计算机的主要性能指标 7
1.4.1 机器字长 7
1.4.2 运行速度 7
习题 8
第2章 信息表示 10
2.1 进位记数制及其相互转换 10
2.1.1 进位记数制 10
2.1.2 数制转换 11
2.2 数值数据的表示 12
2.2.1 定点数的表示 12
2.2.2 浮点数的表示 16
2.2.3 C语言中定点数和浮点数的表示 20
2.2.4 十进制数的二进制编码 22
2.3 非数值数据的表示 24
2.3.1 逻辑类型数据表示 24
2.3.2 字符编码 24
2.3.3 汉字编码 25
2.4 可靠性编码 27
2.4.1 格雷码 27
2.4.2 奇偶校验码 27
2.4.3 汉明校验码 28
2.4.4 循环冗余校验码 29
习题 30
第3章 逻辑电路基础 32
3.1 逻辑代数基础 32
3.1.1 逻辑常量、逻辑变量 32
3.1.2 逻辑代数的基本运算 32
3.1.3 基本逻辑公式、定理和规则 33
3.1.4 逻辑函数 34
3.1.5 逻辑函数化简 37
3.2 逻辑电路 39
3.2.1 逻辑门电路 39
3.2.2 门电路的实现 40
3.2.3 集成电路 43
3.2.4 可编程逻辑电路 43
3.2.5 逻辑电路的设计模式 46
3.3 计算机中常用的组合逻辑电路 46
3.3.1 加法器 46
3.3.2 译码器 50
3.3.3 多路选择器 52
3.3.4 三态门 52
3.4 计算机中常用的时序逻辑电路 53
3.4.1 基本R-S触发器和D触发器 53
3.4.2 锁存器 54
3.4.3 数据寄存器 54
3.4.4 移位寄存器 55
3.4.5 计数器 56
习题 57
第4章 运算方法与运算器 58
4.1 定点数加减法运算 58
4.1.1 原码加减运算方法 58
4.1.2 补码加减运算方法 58
4.1.3 补码加减运算的逻辑实现 60
4.1.4 移码加减运算 61
4.2 定点数移位运算 62
4.2.1 逻辑移位 63
4.2.2 算术移位 63
4.2.3 循环移位 64
4.3 定点乘法运算 64
4.3.1 原码乘法运算 65
4.3.2 补码乘法运算 68
4.3.3 阵列乘法器 72
4.4 定点除法运算 73
4.4.1 原码除法运算 74
4.4.2 补码除法运算 78
4.4.3 阵列除法器 80
4.5 浮点数的四则运算 81
4.5.1 浮点加减运算 82
4.5.2 浮点乘除运算 84
4.6 运算器的组织 85
4.6.1 定点运算器的组成与结构 86
4.6.2 定点运算器实例 88
4.6.3 浮点运算器的组成与结构 91
习题 92
第5章 存储器 94
5.1 存储器概述 94
5.1.1 存储器的分类 94
5.1.2 存储器的性能指标 95
5.2 半导体随机存取存储器 96
5.2.1 静态随机存取存储位元 96
5.2.2 动态随机存取存储位元 97
5.2.3 半导体随机存取存储芯片 100
5.2.4 DRAM的发展 106
5.3 非易失性半导体存储器 110
5.3.1 掩膜型只读存储器 110
5.3.2 一次可编程只读存储器 110
5.3.3 可擦除可编程只读存储器 111
5.3.4 电可擦除可编程只读存储器 112
5.3.5 Flash存储器 113
5.3.6 铁电存储器 115
5.3.7 磁性随机存储器 116
5.3.8 相变存储器 117
5.4 主存储器的组织 118
5.4.1 CPU与主存储器的连接 118
5.4.2 主存储器容量的扩充 118
5.4.3 主存储器的编址方式 122
5.4.4 哈佛结构 123
5.5 辅助存储器 124
5.5.1 磁记录原理及记录方式 124
5.5.2 磁盘存储器 127
5.5.3 磁带存储器 133
5.5.4 光盘存储器 134
习题 138
第6章 指令系统及汇编语言程序设计 140
6.1 指令系统的基本概念 140
6.1.1 指令和指令系统 140
6.1.2 指令的格式 141
6.1.3 指令的类型 146
6.2 寻址方式 149
6.3 RISC技术 154
6.3.1 RISC的产生及发展 154
6.3.2 RISC的主要特征 155
6.3.3 RISC与CISC的比较 156
6.4 指令系统举例 158
6.4.1 Intel 8086指令系统 158
6.4.2 RISC Ⅱ指令系统 159
6.4.3 PowerPC指令系统 160
6.5 汇编语言程序设计 162
6.5.1 基本概念 162
6.5.2 JUC-Ⅱ模型机的功能结构 163
6.5.3 JUC-Ⅱ模型机的指令系统 164
6.5.4 JUC-Ⅱ模型机的汇编语言 167
6.5.5 顺序结构程序设计 170
6.5.6 分支程序设计 171
6.5.7 循环程序设计 176
6.5.8 堆栈及子程序 178
6.5.9 汇编语言程序设计举例 181
习题 183
第7章 控制器和中央处理器 186
7.1 控制器概述 186
7.1.1 控制器基本组成 186
7.1.2 控制器的工作过程 187
7.1.3 控制器的实现方式 188
7.2 CPU数据通路 188
7.2.1 Intel 8080的数据通路 188
7.2.2 VAX-11/780的数据通路 190
7.2.3 模型机CPU的数据通路 192
7.3 指令执行流程 196
7.3.1 取指令阶段 196
7.3.2 取操作数阶段 196
7.3.3 执行阶段 196
7.3.4 指令执行的微操作序列举例 198
7.4 硬布线控制器 202
7.4.1 同步控制和异步控制 202
7.4.2 多级时序系统 203
7.4.3 硬布线控制器的设计 206
7.5 微程序控制器 209
7.5.1 微程序控制基本原理 209
7.5.2 微指令编码方式 212
7.5.3 后继微指令地址的形成 214
7.5.4 微程序控制的时序 216
7.6 微程序控制器设计实例 217
7.6.1 微指令编码设计 217
7.6.2 微地址形成 218
7.6.3 取指令的微程序设计 221
7.6.4 取操作数的微程序设计 221
7.6.5 执行阶段的微程序设计举例 222
7.7 流水线技术 225
7.7.1 流水线的基本原理 225
7.7.2 流水线的性能指标 226
7.7.3 流水线的分类 228
7.7.4 指令流水线的相关与冲突 229
7.7.5 流水线的指令调度 231
7.7.6 超标量与超流水线 232
习题 233
第8章 存储体系 238
8.1 并行存储器 238
8.1.1 双端口存储器 238
8.1.2 多模块交叉存储器 239
8.1.3 相联存储器 240
8.2 高速缓冲存储器 241
8.2.1 cache的基本原理 242
8.2.2 地址映像 242
8.2.3 替换算法 245
8.2.4 cache的读写策略 248
8.2.5 cache的多层次结构 249
8.3 虚拟存储器 250
8.3.1 虚拟存储器的基本概念 251
8.3.2 页式虚拟存储器 251
8.3.3 段式虚拟存储器 253
8.3.4 段页式虚拟存储器 254
8.3.5 快速地址变换 254
8.4 存储体系的层次结构 255
习题 256
第9章 输入输出系统 259
9.1 输入输出系统概述 259
9.1.1 输入输出系统的组成 259
9.1.2 输入输出设备 259
9.1.3 输入输出接口 260
9.1.4 输入输出接口与主机的信息传送控制方式 263
9.2 程序查询方式 265
9.2.1 程序查询传送工作流程 265
9.2.2 查询输入接口 266
9.2.3 查询输出接口 267
9.3 程序中断方式 268
9.3.1 中断概述 268
9.3.2 中断请求的表示与控制 270
9.3.3 中断响应 272
9.3.4 中断服务和中断返回 277
9.3.5 中断嵌套 278
9.3.6 中断优先级的动态分配 280
9.4 直接存储器存取方式 281
9.4.1 DMA概述 282
9.4.2 DMA控制器 282
9.4.3 DMA传送方式 284
9.4.4 DMA传送过程 285
9.5 总线 287
9.5.1 总线的特性和性能指标 287
9.5.2 总线仲裁 289
9.5.3 总线操作和定时 292
9.5.4 典型总线标准 296
习题 303