第一部分 计算机的基本功能及其构成第1章 导论:软硬件接口 1
1.1 计算机系统及网络通信的重要性 1
1.2 硬件和软件的互相依赖 2
1.3 硬件编程:VHDL 3
1.4 人人都应了解的系统管理问题 4
1.5 语音、图像和数据:技术的趋同现象 5
1.6 窗口界面(WIMP) 5
1.7 因特网:连接所有的网络 7
1.8 使用PC:学习CSA的更多理由 9
1.9 小结 10
实习作业 10
练习 10
课外读物 11
第2章 冯·诺依曼体系结构的特征 13
2.1 以2为基:二进制的优点 13
2.2 程序控制存储:通用机器 13
2.3 指令代码:控制机器动作的指令系统 14
2.4 转换:编译器和汇编器 15
2.5 链接:将程序组合到一起 16
2.6 解释器:执行高级命令 16
2.7 代码共享和重用:不要总是从头做起 17
2.8 数据编码:数值和字符 18
2.9 操作系统:Unix和Windows 20
2.10 客户机服务器计算:网络时代的方式 22
2.11 可重配置硬件:读取-执行的另一种替代方式 23
2.12 小结 23
实习作业 23
练习 24
课外读物 24
附录:以11为基的计数 25
第3章 功能部件和读取-执行周期 26
3.1 各部分的命名:CPU、存储器、IO单元 26
3.2 CPU的读取-执行周期:高速且单调 29
3.3 系统总线:同步或异步 31
3.4 系统时钟:指令周期时序 32
3.5 预取:前期工作以使速度得到提高 34
3.6 存储器长度:寻址宽度 35
3.7 字节次序:微软与Unix,以及Intel与Motorola 36
3.8 简单的输入输出:并行端口 38
3.9 小结 38
实习作业 38
练习 39
课外读物 39
第4章 构成计算机的逻辑电路:控制单元 40
4.1 电子积木和逻辑电路:模块化器件的优点 40
4.2 基本逻辑门 40
4.3 真值表和多路复用器:简单但有效的设计工具 42
4.4 可编程逻辑器件:可重新配置的逻辑芯片 44
4.5 交通灯控制器:无法避免 46
4.6 根据真值表实现电路:一些实用提示 47
4.7 译码器逻辑:控制单元及存储器的根本所在 48
4.8 CPU控制单元:“核心“ 49
4.9 洗衣机控制器:简单的CU 49
4.10 RISC与CISC译码:使计算机的处理速度更快 52
4.11 小结 53
实习作业 53
练习 54
课外读物 54
第5章 构成计算机的逻辑电路:算术逻辑单元 55
5.1 德·摩根等价定律:逻辑互换性 55
5.2 二进制加法:半加器、全加器、并行加法器 55
5.3 二进制减法:2的补码的整数格式 57
5.4 二进制移位:桶形移位器 58
5.5 整数乘法:移位和相加 60
5.6 浮点数:从极大到极小 63
5.7 小结 65
实习作业 66
练习 66
课外读物 66
第6章 计算机的逻辑构成:存储器 67
6.1 数据存储 67
6.2 存储设备 68
6.3 静态存储器 69
6.4 动态存储器 70
6.5 DRAM刷新 71
6.6 分页访问存储器:EDO和SDRAM 71
6.7 存储器映射:寻址和译码 73
6.8 IO端口映射 75
6.9 小结 77
实习作业 77
练习 77
课外读物 78
第7章 Intel奔腾CPU 79
7.1 奔腾:高性能的微处理器 79
7.2 CPU寄存器:数据和地址变量的临时存储区 82
7.3 指令集:基本奔腾指令集简介 85
7.4 指令的结构:CU如何理解指令 86
7.5 CPU状态寄存器:十分短期的存储空间 87
7.6 寻址方式:构建有效地址 89
7.7 执行流水线:RISC加速技术 90
7.8 奔腾4:扩展 91
7.9 Microsoft Developer Studio:调试器的使用 92
7.10 小结 94
实习作业 95
练习 95
课外读物 96
第8章 子例程 97
8.1 子例程的目的:节省空间和精力 97
8.2 返回地址:堆栈的引入 98
8.3 使用子例程:HLL程序设计 99
8.4 堆栈:大多数操作的基本要素 100
8.5 参数传递:将子例程具体化 100
8.6 堆栈框架:所有局部变量 102
8.7 对HLL的支持:CPU针对子例程处理的特性 104
8.8 中断服务例程:由硬件调用的子例程 104
8.9 访问操作系统例程:后期绑定 105
8.10 小结 106
实习作业 106
练习 106
课外读物 106
第9章 简单的输入输出 107
9.1 基本IO方法:轮询、中断和DMA 107
9.2 外设接口寄存器:程序员的角度 108
9.3 轮询:单字符IO 111
9.4 中断处理 114
9.5 关键数据的保护:如何与中断通信 119
9.6 缓冲IO:驱动中断设备的驱动程序 122
9.7 直接内存访问:自治的硬件 123
9.8 单字符IO:屏幕和键盘例程 124
9.9 小结 125
实习作业 126
练习 126
课外读物 126
第10章 串行通信 127
10.1 串行传输:数据、信号和时序 127
10.2 数据的格式:编码技术 127
10.3 时序同步:频率和相位 129
10.4 数据编码和错误控制:奇偶校验、检验和、汉明码和CRC 131
10.5 流量控制:硬件和软件方法 137
10.6 16550 UART:RS232 138
10.7 串行鼠标:机械或光学 142
10.8 串行端口 144
10.9 USB:通用串行总线 144
10.10 调制解调器:载波调制 147
10.11 小结 151
实习作业 152
练习 152
课外读物 152
第11章 并行连接 153
11.1 并行接口 153
11.2 Centronics:大于打印端口但小于总线 153
11.3 SCSI:小型计算机系统接口 155
11.4 IDE:智能驱动电路 158
11.5 AT/ISA:计算机标准的成功案例 158
11.6 PCI:外设部件的互连 160
11.7 即插即用:自动配置 162
11.8 PCMCIA:个人计算机存储卡国际联盟 163
11.9小结 164
实习作业 165
练习 165
课外读物 165
第12章 存储体系 166
12.1 系统的性能 166
12.2 访问局部化:利用重复 167
12.3 指令及数据的高速缓存:匹配内存和CPU的速度 171
12.4 高速缓存映射 172
12.5 虚拟内存:分段和按需页面调度 174
12.6 地址公式化:时间、地点和数量 178
12.7 硬盘使用:参数、访问调度和数据安排 179
12.8 性能提高:块、高速缓存、碎片整理、调度、RAM磁盘 181
12.9 光盘:CD-DA、CD-ROM、CD-RW和DVD 182
12.10 DVD:数字通用光盘 184
12.11 MPEG:视频和音频压缩 185
12.12 闪存:新型软盘 190
12.13 小结 190
实习作业 190
练习 191
课外读物 191
第二部分 网络通信及复杂性的增加 193
第13章 程序员的观点 193
13.1 不同的观点与不同的需求 193
13.2 应用程序用户及办公软件包 193
13.3 系统管理:软件安装和维护 195
13.4 HLL程序员:Java、C++和BASIC 198
13.5 系统编程:汇编和C 200
13.6 硬件工程师:硬件的设计和维护 202
13.7 分层虚拟机:体系结构简介 202
13.8 汇编器:简单的转换器 203
13.9 编译器:转换及其他诸多工作 204
13.10 小结 205
实习作业 205
练习 205
课外读物 206
第14章 局域网 207
14.1 用户之间的纽带:电子邮件、打印机和数据库 207
14.2 PC网络接口:布线和接口卡 210
14.3 以太网:带冲突检测的载波侦听、多路访问 213
14.4 局域网的寻址:逻辑和物理方案 215
14.5 主机名:另外一个转换层 217
14.6 分层和封装:TCP/IP软件堆栈 217
14.7 网络文件系统:跨网络共享文件 218
14.8 网络的互连:网关 219
14.9 socket编程:WinSock简介 220
14.10 小结 222
实习作业 223
练习 223
课外读物 224
第15章 广域网 225
15.1 Internet的起源 225
15.2 TCP/IP基本协议 226
15.3 TCP错误处理和流量控制 229
15.4 IP路由:数据包如何找到正确的路径 230
15.5 DNS:分布式域名数据库 234
15.6 万维网的起源 236
15.7 浏览Web:Netscape Navigator 236
15.8 HTTP 239
15.9 搜索引擎Google 241
15.10 操作系统互连:一种理想的方案 243
15.11 小结 245
实习作业 245
练习 245
课外读物 246
第16章 其他网络 247
16.1 PSTN:电话网络 247
16.2 Cellnet:移动通信提供商 251
16.3 ATM:异步传输模式 257
16.4 消息传递:无线寻呼和分组无线网络 260
16.5 ISDN:全数字 261
16.6 DSL:数字用户线路 264
16.7 有线电视:数据传输设施 264
16.8 小结 266
实习作业 267
练习 267
课外读物 267
第17章 操作系统 269
17.1 历史渊源:基本功能的发展 269
17.2 Unix:操作系统的里程碑 271
17.3 概要结构:模块化 273
17.4 进程管理:初始化和调度 273
17.5 调度决策:时间片划分、抢先和协作 277
17.6 任务通信:管道和重定向 278
17.7 排斥和同步:信号量和信号 279
17.8 内存分配:malloc()和free() 283
17.9 用户界面:GUI和外壳 284
17.10 输入输出管理:设备处理程序 285
17.11 小结 287
实习作业 287
练习 287
课外读物 288
第18章 Windows XP 289
18.1 Windows GUI:满足用户的需求 289
18.2 Win32:推荐的用户API 290
18.3 进程和线程:多任务 290
18.4 内存管理:虚拟内存的实现 291
18.5 Windows注册表:集中化的管理数据库 291
18.6 NTFS:Windows NT文件系统 293
18.7 文件访问:ACL、权限和安全 293
18.8 共享软件组件:OLE、DDE和COM 295
18.9 Windows XP主机:Winframe终端服务器 295
18.10 小结 296
实习作业 296
练习 296
课外读物 296
第19章 档案管理系统 298
19.1 数据存储:文件系统和数据库 298
19.2 PC文件分配表:FAT 303
19.3 Unix索引节点:不同的方式 305
19.4 Microsoft NTFS 308
19.5 RAID:更安全的磁盘子系统 309
19.6 文件安全:访问控制 311
19.7 CD可移植文件系统:多个区段内容清单 312
19.8 小结 313
实习作业 313
练习 313
课外读物 314
第20章 图形输出 315
20.1 计算机和图形:捕获、存储、处理和重现 315
20.2 PC图形接口卡:图形协处理器 320
20.3 激光打印机:机电一体化 323
20.4 Adobe PostScript:页面描述语言 325
20.5 WIMP:重塑计算机的形象 327
20.6 Win32:图形API及其他 328
20.7 X窗口系统:分布式处理 329
20.8 MMX技术:辅助图形计算 329
20.9 小结 330
实习作业 330
练习 331
课外读物 331
第21章 RISC处理器:ARM和SPARC 332
21.1 RISC的优点:更高的指令吞吐量 332
21.2 流水线技术:更多的并行操作 335
21.3 超标量方法:并行的并行 336
21.4 寄存器存储:更多的CPU寄存器 336
21.5 分支预测方法:流水线的维护 338
21.6 编译器支持:RISC的重要组成部分 339
21.7 ARM 32位CPU的起源 339
21.8 StrongARM处理器:32位微控制器 345
21.9 HP iPAQ:StrongARM PDA 347
21.10 Puppeteer:StrongARM SBC 348
21.11 Sun SPARC:RISC架构的标量处理器 350
21.12 嵌入式系统:交叉开发技术 351
21.13 小结 352
实习作业 352
练习 352
课外读物 353
第22章 VLIW处理器:EPIC安腾 354
22.1 安腾64位处理器简介 354
22.2 安腾汇编语言:对CPU控制更多 359
22.3 运行时调试:gvd/gdb 363
22.4 未来的处理器设计 364
22.5 小结 364
实习作业 365
练习 365
课外读物 365
第23章 并行处理 366
23.1 并行处理基础 366
23.2 指令级并行:流水线化 368
23.3 超标量:多执行单元 368
23.4 未来的对称、共享内存并行处理 368
23.5 单芯片多处理器:IBM Cell 370
23.6 集群和网格:应用级并行 372
23.7 小结 373
实习作业 374
练习 374
课外读物 374
附录 Microsoft Visual Studio 8 Express版 375
术语表 383
参考文献 396