第1章 微型计算机系统概论 1
1.1 微型计算机技术发展 1
目录 1
1.2 微型计算机系统组成及层次结构 5
1.2.1 微型计算机硬件组成 5
1.2.2 计算机系统的多层次结构 17
1.3.1 指令周期 19
1.3.2 取指周期和执行周期 19
1.3 计算机的工作过程 19
1.3.3 中断指令周期 20
1.4 数据单位表示 21
1.4.1 常用的术语 21
1.4.2 表示存储容量的计量单位 22
1.4.3 编址与寻址 23
1.5 微型机主要性能指标 23
习题1 24
2.1 概述 26
2.1.1 微处理器常用术语 26
第2章 微型计算机的CPU 26
2.1.2 微处理器操作方式 28
2.2 RISC和CISC 28
2.2.1 复杂指令系统计算机CISC 28
2.2.2 精简指令系统计算机RISC 29
2.3 Pentium体系结构与原理 30
2.3.1 体系结构 31
2.3.2 Pentium寄存器 35
2.3.3 堆栈操作 47
2.4.2 Pentium采用的新技术 49
2.4 Pentium采用的新技术 49
2.4.1 新型体系结构 49
2.5 流水线技术 52
2.5.1 Pentium整数流水线 52
2.5.2 Pentium浮点流水线 52
2.5.3 指令流水线 53
2.5.4 指令预取 58
2.5.5 指令配对规则 59
习题2 59
3.1 综述 61
3.1.1 存储器及管理系统 61
第3章 存储管理技术 61
3.1.2 三种类型地址 63
3.2 虚拟存储技术 63
3.2.1 虚拟存储 63
3.2.2 虚拟存储技术 65
3.3 分段存储管理技术 65
3.3.1 分段存储管理 65
3.3.2 段的转换 68
3.3.3 段选择符 71
3.3.4 段描述符 72
3.3.5 段描述符表 77
3.3.6 描述符表基址寄存器 78
3.4 分页存储管理技术 78
3.4.1 页的转换 79
3.4.2 分页控制位 80
3.4.3 线性地址 80
3.4.4 页表 81
3.4.5 页表项 81
3.4.6 转换旁视缓冲存储器TLB 84
3.4.7 页级保护 84
3.5.1 平台存储管理方式 86
3.5 分段与分页组合技术 86
3.5.3 页覆盖段 87
3.5.2 段覆盖页 87
3.5.4 页和段边界不必对准 88
3.5.5 页和段边界对准 88
3.5.6 每段的页表 88
习题3 88
4.1.1 什么是Cache 90
4.1.2 局部性原理 90
4.1 Cache存储器 90
第4章 高速缓冲存储器Cache 90
4.1.3 技术术语 92
4.1.4 Pentium片内Cache 93
4.2 Cache配置方案 94
4.2.1 Pentium片内Cache的配置 94
4.2.2 影响Cache性能的因素 98
4.2.3 Cache大小规模和性能 98
4.2.4 缔合方式和性能 100
4.2.5 实际Cache 103
4.3 Cache结构 103
4.4 Cache操作方式 105
4.4.2 数据Cache更新方案 106
4.4.1 数据Cache 106
4.4.3 指令Cache 107
4.4.4 Cache读写操作 107
4.4.5 Cache替换算法与规则 108
4.4.6 Cache写贯穿 109
4.4.7 Cache写回 110
4.5 一致性协议 110
4.5.1 MESI Cache一致性协议模型 110
4.6 二级Cache 111
4.5.2 指令Cache一致性协议 111
4.6.1 二级Cache与一级Cache的关系 113
4.6.2 统一的二级Cache 115
4.6.3 二级Cache监视 119
4.6.4 数据传送方式 120
习题4 122
第5章 指令格式与寻址方式 124
5.1 指令格式 124
5.1.1 指令格式 124
5.1.2 指令中各字段意义 126
5.1.3 操作数大小规模和地址大小规模 127
5.1.4 默认段的属性 127
5.1.5 操作数大小和地址大小指令前缀 127
5.1.6 堆栈地址大小属性 127
5.2 寻址方式 128
5.2.1 立即操作数寻址 129
5.2.2 寄存器操作数寻址 129
5.2.3 存储器操作数寻址 130
5.3 计算机数据类型 133
习题5 136
第6章 浮点技术 137
6.1 综述 137
6.2 浮点部件体系结构 139
6.2.1 数值寄存器 139
6.2.2 状态字寄存器 141
6.2.3 控制字寄存器 144
6.2.4 标记字寄存器 146
6.2.5 最后的指令操作码字段 146
6.2.6 数值指令和数据指针 147
6.3.1 浮点流水线 149
6.3 浮点部件流水线操作 149
6.3.2 浮点指令的流动 150
6.3.3 安全指令的识别 151
6.3.4 旁路BYPASSES 151
6.4 计算基础 152
6.4.1 数字系统 152
6.4.2 数据类型和格式 154
6.4.3 舍入控制 157
习题6 158
6.4.4 精度控制 158
第7章 中断 160
7.1 中断的概念 160
7.1.1 概述 160
7.1.2 中断系统 160
7.2 异常与中断 162
7.2.1 中断源分类 162
7.2.2 中断控制器 163
7.2.3 异常和中断向量 164
7.2.4 指令的重新启动 164
7.3.2 IF屏蔽INTR 165
7.3.1 不可屏蔽中断对未来的不可屏蔽中断的屏蔽 165
7.3 允许及禁止中断 165
7.3.3 对调试故障的屏蔽 166
7.3.4 对堆栈段中某些异常和中断的屏蔽 166
7.4 中断描述符表 167
7.4.1 异常和中断同时存在时的优先级 167
7.4.2 中断描述符表 168
7.4.3 中断描述符表内描述符 169
7.5 中断任务和中断过程 169
7.5.1 中断过程 170
7.5.2 中断任务 172
7.6 错误代码 173
7.7 异常条件 173
7.7.1 中断0——除法错 174
7.7.2 中断1——调试异常 174
7.7.3 中断3——断点 174
7.7.4 中断4——溢出 174
7.7.5 中断5——边界检查 175
7.7.6 中断6——无效操作码 175
7.7.7 中断7——设备不可用 175
7.7.8 中断8——双故障 176
7.7.10 中断10——无效任务状态段 177
7.7.9 中断9(由Intel保留,未使用) 177
7.7.11 中断11——段不存在 178
7.7.12 中断12——堆栈异常 179
7.7.13 中断13——一般保护 180
7.7.14 中断14——页故障 180
7.7.15 中断16——浮点错 182
7.7.16 中断17——对准检查 184
7.8 异常和错误小结 185
习题7 187
8.1.1 什么是总线 188
第8章 总线技术 188
8.1 总线的概念 188
8.1.2 总线标准的四个特性 189
8.1.3 总线分类 190
8.1.4 总线操作 192
8.1.5 总线配置结构 194
8.2 数据传送机制 197
8.2.1 实际存储器和I/O接口 197
8.2.2 数据传送机制 198
8.2.3 与8位、16位、32位及64位存储器接口 199
8.3 总线周期 202
8.3.1 单传送周期 203
8.3.2 成组周期 204
8.3.3 中断确认周期 205
8.3.4 专用总线周期 206
8.4 PCI总线 207
8.4.1 PCI局部总线的特征 207
8.4.2 即插即用 209
8.4.3 PCI总线的结构 211
8.4.5 基于PCI总线系统 213
8.4.4 PCI性能 213
8.4.6 PCI总线接口 214
8.4.7 PCI总线的BIOS 215
8.4.8 PCI总线操作 218
8.4.9 PCI总线命令 218
8.4.10 DMA和中断 220
8.4.11 PCI总线仲裁 221
8.4.12 PCI适配器 221
8.4.13 PCI总线信号 221
习题8 223
9.1 段级保护技术 225
第9章 保护技术 225
9.2 段描述符与保护之关系 226
9.2.1 对类型的检查 227
9.2.2 对界限的检查 228
9.2.3 特权级 229
9.3 访问数据时的限制 230
9.4 控制转移 232
9.5 门描述符技术 233
9.5.1 堆栈转换技术 236
9.5.2 从过程返回 238
9.6 操作系统指令 239
9.6.1 特权指令 239
9.6.2 敏感指令 240
9.7 指针指令 240
9.7.1 描述符验证 241
9.7.2 指针完整性与请求特权级 242
9.8 页级保护技术 243
9.8.1 保存保护参数的页表项 243
9.8.2 两级页表的组合保护 244
9.8.4 段与页保护的组合 245
9.8.3 页保护越权 245
习题9 246
第10章 输入输出技术 247
10.1 输入输出编址 247
10.1.1 独立编址的输入输出 248
10.1.2 存储器映像输入输出 249
10.2 输入输出指令 250
10.2.1 寄存器输入输出指令 252
10.2.2 从端口输入输出字串指令 252
10.3.1 输入输出特权级 253
10.3 输入输出与保护 253
10.3.2 输入输出准许位映像 254
习题10 255
第11章 初始化处理技术 257
11.1 初始化处理 257
11.1.1 复位后微处理器的状态 257
11.1.2 第一条指令地址 259
11.1.3 允许Cathe操作 260
11.2 实模式下的软件初始化处理技术 260
11.3.1 系统表 261
11.3 保护模式下的软件初始化处理技术 261
11.2.2 非屏蔽中断 261
11.2.1 系统表 261
11.3.2 分页 262
11.3.3 任务处理技术 263
11.3.4 中断处理途径 263
11.4 操作模式的转换 263
11.4.1 向保护模式的转换 264
11.4.2 转换回实地址模式 265
11.5 浮点部件的初始化处理 266
11.5.1 数值平台的配置 267
11.5.2 浮点部件的软件仿真 268
习题11 269
第12章 多任务处理技术 270
12.1 任务状态段 271
12.2 任务状态段描述符 273
12.3 任务寄存器 274
12.4 任务门描述符 275
12.5 任务转换 277
12.6 任务连接技术 279
12.6.1 用忙位阻止可能的封闭 280
12.7.1 任务线性空间到物理空间的映像 281
12.6.2 修改任务的连接 281
12.7 任务地址空间 281
12.7.2 任务逻辑地址空间 282
习题12 283
第13章 调试技术 284
13.1 调试支持 284
13.2 调试寄存器 285
13.2.1 调试地址寄存器(DR0~DR3) 285
13.2.2 调试控制寄存器(DR7) 285
13.2.3 调试状态寄存器(DR6) 286
13.2.4 断点字段识别 287
13.3 调试异常 288
13.3.1 中断1——调试异常 288
13.3.2 中断3——断点指令 291
习题13 291
第14章 指令系统 292
14.1 数据传送指令 292
14.1.1 通用数据传送指令 292
14.1.2 堆栈处理指令 293
14.1.3 类型转换指令 294
14.2 二进制算术运算指令 296
14.2.1 加法指令和减法指令 297
14.2.2 比较和符号改变指令 298
14.2.3 乘法指令 298
14.2.4 除法指令 299
14.3 十进制算术运算指令 300
14.3.1 压缩BCD调整指令 300
14.3.2 非压缩BCD调整指令 300
14.4 逻辑指令 301
14.4.1 布尔操作指令 301
14.4.4 移位与环移指令 302
14.4.2 位测试与修改指令 302
14.4.3 位扫描指令 302
14.4.5 根据条件设置字节指令 310
14.4.6 测试指令 310
14.5 控制转移指令 311
14.5.1 无条件转移指令 311
14.5.2 条件转移指令 312
14.5.3 软件中断 314
14.6 串操作 315
14.6.1 重复前缀 315
14.6.2 变址和定向标志的控制 316
14.6.3 字串指令 317
14.7 结构化语言指令 318
14.8 标志控制指令 323
14.8.1 进位和定向标志控制指令 323
14.8.2 标志转换指令 323
14.9 数字指令 324
14.10 段寄存器指令 325
14.10.1 段寄存器转移指令 325
14.10.3 数据指针指令 326
14.10.2 远控制转移指令 326
14.11 杂项指令 327
14.11.1 地址计算指令 327
14.11.2 无操作指令 328
14.11.3 转换指令 328
14.11.4 字节交换指令 328
14.11.5 交换与相加指令 330
14.11.6 比较与交换指令 330
14.11.7 CPUID指令 331
习题14 331
附录A Pentium指令系统 333