本书一直作为清华大学计算机系和电子类本科生必修课《微型机原理》的专用教材,并长年被国内400多所高等院校选用,发行70余万册,是一本广受任课教师和学生好评的高水平教材。
第4版以Pentium为核心,系统讲述了当前最先进的微型机技术。首先分析了CPU的原理结构、总线周期、中断机制、寻址方式和指令系统;然后阐述了存储器管理技术和高速缓存技术;接着讲解了微型机和外设之间的各种数据传输方式,其中,着重分析了中断方式和DMA方式的工作原理和传输特点,并用较多篇幅讲述微型机的接口技术,逐一讲解了各关键接口部件以及多功能接口部件的原理和应用;此后,讲述了键盘和鼠标技术、显示技术、打印机技术、软盘硬盘和光盘技术以及总线技术,特别对PCI总线技术进行了重点讲解;最后介绍了Pentium主机系统的整体结构,对系统控制芯片组和BIOS作了透彻讲述,由此使学生对微型机系统建立整体观念。
在各章中,对重点技术都结合实例予以说明,并进行归纳和总结,以利于读者对微型机技术中最重要最关键的部分深入理解、牢固掌握和灵活应用,同时,对关键技术尽量阐述其设计思想和创新点,以启发和培养学生的创新能力。
作者基于深厚的教学和科研功底,以一贯精益求精的科学作风,对各章内容的选择、组织和表述进行了精心考虑,特别注重符合初学者的认知规律,对所有技术都讲得条理清晰、深入浅出、通俗易懂。
本书可作为高等院校计算机系本科生和电子类本科生的教材;由于注意了尽量减少对其他专业课的依托性,所以,也完全可以作为非计算机专业教材;对于从事微型机技术研究和应用的科研人员,本书也是一本内容翔实、可读性非常好的自学教材和参考书。如同清华大学有学生所评价,这是一本“价值大大高于价格的书”. 本书封面贴有清华大学出版社防伪标签, 无标签者不得销售。
本书10年来一直被国内400多所高等院校计算机专业和电子类专业选为教材,发行70余万册,笔者也由此与兄弟院校众多同行成为学术距离很近的朋友,常通过邮件和电话交流意见。正是基于他们真诚切实的建议、要求和希望,确立了编写本书第4版的指导思想: 以当前流行的Pentium为主线,讲深讲透微型机最新最关键的技术;即使是对最庞杂的技术,也要遵循认知规律来组织内容和表述,使全书所有文字都通俗易懂。
由此,第4版着重如下几方面的更新:
① 简约了有关16位机的大部分内容,全书以Pentium为主线讲述微型机技术。
② 将Pentium的中断机制、描述符机制、保护技术、段页两级存储管理机制,Pentium指令系统,液晶显示器的原理,PCI总线技术,作为重点更新内容,反复推敲、反复修改,有些章节从初稿到定稿,反复调整内容组织,再三改进文字表达,前后修改12稿之多,只为了让读者得到的是真正的精品。
③ 在对各个技术进行深入讲解之后,最后一章介绍Pentium微型机系统的整体结构,其中对系统控制芯片组和BIOS进行重点讲解,前者是联系计算机系统各部件的枢纽,后者是联系硬件和软件的纽带,由此使学生建立关于微型机系统的整体观念。
④ 对第3版保留的章节,从文字上反复修改,以期望更加条理清晰、更加深入浅出。
本书在教学使用中,可根据四种情况作选择: 一是对计算机专业,一般按64学时安排,可选1~9、15和16章;二是对计算机控制专业,也按64学时安排,可加选第10章;三是对电子类专业,一般按48学时,可大致按第一种情况安排,但可不讲高速缓存技术,并简约PCI总线的扩展传输和配置机制部分;四是对非电子类专业,除了首尾两章外,可对每一章作简约性选择和讲解,通常可对每章后面内容简化。
对于安排有汇编语言课程的专业,不必讲第3章,但读者仍可读一遍本章,此为笔者在设计20 000多行汇编语言程序的基础上总结编写,其中包括不少切身体会。另外,所有必选章节都可划出部分内容自学或在自学基础上作答疑式讲解。对于没有列入必选部分的章节,笔者在编写时为自学作了更充分的考虑。
电子课件为全书16章都配置了教案,并提出了使用方法,以及对每部分的教学建议和重点,这是在听取众多同行意见基础上设计的,使用中可按具体情况作选择和修改。
有兄弟院校老师评价前一版教材:“不但有利于在教学中对学生的能力培养和素质培养,而且也使采用本书的教师感到得心应手”。期望第4版为教材使用者带来同样的感受。 于清华大学计算机系
2007年8月第3版前言
本书第2版自1996年5月出版后,被国内400多所院校使用,发行39.9万册,2001年9月获北京市教育教学成果一等奖,2002年5月获国家级教学成果二等奖。
伴随微型机技术飞速发展的是相关知识的快速持续更新,这个特点使得在微型机技术的教学中,如何处理具体知识和综合能力两者的关系成了一个关键点和难点,这也是笔者和许多兄弟院校同行经常讨论的问题。
本书第3版正是在对此问题的反复思考中,确定如下指导思想: 讲深讲透基础技术和关键技术,使得学生对这部分技术做到深入理解、牢固掌握、灵活应用,注重提高分析问题和解决问题的能力;同时,讲清讲好最新的技术,在此过程中,注重其与基础技术之间的承上启下关系和创新点,以此让学生在拓展知识的同时,跟踪微型机技术的更新思路,培养和提高接受新技术的能力和创新能力。
为此,第3版删去了第2版中的陈旧内容和过细说明,并删除单片机一章;在各章中,对重点内容和关键技术都结合实例予以说明,并进行归纳和总结;对主要内容尽量结合当前最先进的技术作充实和优化,并尽可能通俗易懂地阐述每个新技术的设计思想和创新点。
在本书使用和修改过程中,我们得到了许多朋友的真诚帮助。在此,首先感谢美国Intel公司教育部经理唐永坚博士几次给笔者寄来成箱的资料,使我们及时获得有关Intel新技术的第一手最详细准确的信息;我们也感谢国家外国教材中心提供了大量国外教材,使我们能够经常感受到国外的技术脉搏;我们还感谢许多兄弟院校同行以及广大本校和外校的同学,在使用第2版教材的过程中提出了很多有益的修改意见和建议,这一版的内容删减和扩充部分中许多是在他们的意见基础上确定的;我们还很感谢清华大学计算机系张公忠教授和北京工业大学苏开娜教授,他们仔细审阅了第3版教材,并提出许多宝贵意见。
在使用本书时,如按48学时安排,则可选学1~7、9、13、14章;如按64学时安排,则可加选10、11、12、15章;如是侧重计算机控制的专业,则可加选第8章;如此前已讲过汇编语言,则不必再讲第3章;每章内容均可根据具体情况划出一部分进行自学。
第1章 微型计算机概述1
1.1 微型计算机的特点和发展1
1.2 微型计算机的分类2
1.3 微处理器、微型计算机和微型计算机系统3
1.3.1 微处理器3
1.3.2 微型计算机5
1.3.3 微型计算机系统6
1.4 微型计算机的应用7
1.5 微型计算机的性能指标8
第2章 16位和32位微处理器9
2.1 16位微处理器80869
2.1.1 8086的编程结构9
2.1.2 8086的引脚信号和工作模式13
2.1.3 8086的操作和时序22
2.1.4 8086的存储器编址和I/O编址35
2.2 32位微处理器Pentium的先进技术38
2.3 Pentium的指令流水线技术41
2.4 Pentium的工作方式44
2.5 Pentium的原理结构45
2.6 Pentium的寄存器和相关机制48
2.6.1 基本寄存器组48
2.6.2 段寄存器和描述符以及保护方式的寻址机制49
2.6.3 系统寄存器组51
2.6.4 浮点寄存器组55
2.7 Pentium的主要信号57
2.8 Pentium的总线状态61
2.9 Pentium的总线周期62
2.10 Pentium的中断65
2.10.1 Pentium的中断机制65
2.10.2 中断描述符表68
2.11 Pentium的保护技术69
2.11.1 段页两级保护机制69
2.11.2 程序运行中的保护71
2.12 Pentium系列微处理器的技术发展72
2.13 Itanium微处理器概述74
第3章 Pentium的指令系统75
3.1 Pentium的寻址方式75
3.1.1 立即数寻址75
3.1.2 寄存器寻址76
3.1.3 输入/输出端口寻址76
3.1.4 存储器寻址77
3.2 Pentium的指令系统79
3.2.1 传送指令80
3.2.2 算术运算指令86
3.2.3 逻辑运算和移位指令98
3.2.4 串操作指令101
3.2.5 调用/转移/循环控制/中断指令105
3.2.6 标志操作和处理器控制指令115
3.2.7 条件测试和字节设置指令117
3.2.8 位处理指令118
3.2.9 系统管理指令120
3.2.10 支持高级语言的指令122
3.3 汇编语言中的标记、表达式和伪指令122
3.3.1 汇编语言概况122
3.3.2 标记124
3.3.3 表达式125
3.3.4 语句127
3.3.5 伪指令127
第4章 存储器、存储管理和高速缓存技术133
4.1 存储器和存储器件133
4.1.1 存储器的分类133
4.1.2 微型计算机内存的行列结构134
4.1.3 选择存储器件的考虑因素134
4.1.4 随机存取存储器RAM136
4.1.5 只读存储器ROM137
4.2 存储器的连接140
4.2.1 存储器和CPU的连接考虑140
4.2.2 片选信号的产生方法140
4.2.3 SRAM和DRAM的连接举例141
4.2.4 存储器的数据宽度扩充和字节数扩充144
4.3 微型计算机系统中存储器的体系结构144
4.3.1 层次化的存储器体系结构144
4.3.2 微型计算机系统的内存组织148
4.4 Pentium的虚拟存储机制和片内两级存储管理150
4.4.1 虚拟存储技术和三类地址150
4.4.2 分段管理152
4.4.3 段选择子、段描述符和段描述符表153
4.4.4 逻辑地址转换为线性地址157
4.4.5 分页管理158
4.4.6 线性地址转换为物理地址159
4.4.7 转换检测缓冲器TLB162
4.5 高档微机系统中的高速缓存技术164
4.5.1 Cache概述164
4.5.2 Cache的组织方式165
4.5.3 Cache的数据更新方法169
4.5.4 Cache控制器82385170
4.5.5 Pentium的两级Cache组织174
4.5.6 影响Cache性能的因素176
第5章 微型计算机和外设的数据传输177
5.1 为什么要用接口177
5.2 CPU和输入/输出设备之间的信号178
5.2.1 数据信息178
5.2.2 状态信息178
5.2.3 控制信息179
5.3 接口部件的I/O端口179
5.4 接口的功能以及在系统中的连接180
5.4.1 接口的功能180
5.4.2 接口与系统的连接181
5.5 CPU和外设之间的数据传送方式182
5.5.1 程序方式182
5.5.2 中断方式188
5.5.3 DMA方式191
5.5.4 输入/输出过程中涉及的几个问题196
5.5.5 接口部件和多字节数据总线的连接197
5.5.6 接口部件和地址总线的错位连接197
第6章 串并行通信和接口技术199
6.1 串行接口和串行通信199
6.1.1 串行通信涉及的几个问题199
6.1.2 串行接口201
6.2 可编程串行通信接口8251A202
6.2.1 8251A的基本性能202
6.2.2 8251A的基本工作原理203
6.2.3 8251A的对外信号206
6.2.4 8251A的编程210
6.2.5 8251A编程举例213
6.2.6 8251A的使用实例216
6.3 并行通信和并行接口217
6.4 可编程并行通信接口8255A218
6.4.1 8255A的内部结构219
6.4.2 8255A的芯片引脚信号220
6.4.3 8255A的控制字220
6.4.4 8255A的工作方式224
6.4.5 8255A的应用举例233
第7章 中断控制器236
7.1 8259A的引脚信号、编程结构和工作原理236
7.1.1 8259A的外部信号和含义236
7.1.2 8259A的编程结构和工作原理237
7.2 8259A的工作方式238
7.3 8259A的初始化命令字和初始化流程243
7.3.1 8259A的初始化命令字243
7.3.2 8259A的初始化流程245
7.4 8259A的操作命令字247
7.5 8259A使用举例250
7.6 多片8259A组成的主从式中断系统255
第8章 DMA控制器258
8.1 DMA控制器概要258
8.2 DMA控制器8237A的编程结构和外部信号258
8.2.1 8237A的编程结构259
8.2.2 8237A的对外连接信号260
8.2.3 8237A工作时各信号的配合261
8.3 8237A的工作模式和模式寄存器262
8.3.1 8237A的工作模式262
8.3.2 8237A的模式寄存器262
8.4 8237A的工作时序263
8.5 8237A的控制寄存器和状态寄存器264
8.6 8237A各寄存器对应的端口地址268
8.7 8237A的编程和使用269
第9章 计数器/定时器和多功能接口芯片272
9.1 可编程计数器/定时器的工作原理272
9.2 8253/8254的编程结构和外部信号274
9.2.1 8253/8254的编程结构274
9.2.2 8253/8254的外部信号275
9.3 8253/8254的控制字和状态字275
9.3.1 8253/8254控制寄存器和控制字275
9.3.2 8254的状态寄存器和状态字277
9.4 8253/8254的编程命令277
9.5 8253/8254的工作模式278
9.6 8253/8254应用举例282
9.7 32位微型计算机系统中的多功能接口芯片82380284
9.7.1 多功能接口芯片82380的组成和信号284
9.7.2 82380和CPU的连接288
第10章 模/数和数/模转换290
10.1 概述290
10.2 数/模(D/A)转换器290
10.2.1 D/A转换的原理290
10.2.2 D/A转换器的指标293
10.2.3 D/A转换器DAC0832的工作方式和应用294
10.3 模/数(A/D)转换器297
10.3.1 A/D转换涉及的参数297
10.3.2 A/D转换的方法和原理298
10.3.3 A/D转换器和系统连接时要考虑的问题303
10.3.4 A/D转换器ADC0809以及用中断方式读取转换结果304
10.3.5 A/D转换器AD570以及用查询或等待方式读取转换结果306
10.3.6 12位A/D转换器ADC1210和系统的连接308
第11章 键盘和鼠标309
11.1 键盘的基本原理结构309
11.2 键的识别--行扫描法310
11.3 键的识别--行反转法312
11.4 抖动和重键问题的解决315
11.5 微型机的键盘子系统321
11.5.1 扩展键盘和键盘控制器322
11.5.2 主机的键盘接口电路324
11.6 键盘中断处理程序326
11.6.1 09H键盘中断处理程序326
11.6.2 16H键盘中断处理程序327
11.7 键盘缓冲区328
11.8 鼠标329
11.8.1 鼠标的工作原理、连接方式和数据格式329
11.8.2 鼠标的驱动程序及其功能调用331
第12章 显示器的工作原理和接口技术333
12.1 CRT显示器和光栅扫描333
12.2 液晶显示器LCD的工作原理335
12.2.1 液晶显示器的特点和性能指标335
12.2.2 液晶显示器的工作原理336
12.3 显示适配器338
12.3.1 显示适配器的性能338
12.3.2 显示适配器的种类339
12.3.3 彩色显示适配器的功能模块340
12.4 显示系统的字符模式和图形模式342
12.5 显示存储器的组织方式343
12.6 显示驱动程序345
12.7 高速图形适配器连接端口AGP346
第13章 打印机的工作原理和接口技术347
13.1 概述347
13.2 打印机的指标和性能347
13.3 针式打印机的工作原理348
13.4 喷墨打印机的工作原理349
13.5 激光打印机的工作原理350
13.6 关于打印机适配器353
13.7 打印机和主机的连接354
13.7.1 打印机采用并行方式连接主机354
13.7.2 打印机采用串行方式连接主机357
第14章 软盘、硬盘和光盘子系统358
14.1 软盘子系统358
14.2 硬盘子系统359
14.2.1 硬盘驱动器360
14.2.2 硬盘控制器362
14.2.3 硬盘驱动程序363
14.2.4 硬盘安全性和数据保护技术364
14.3 光盘子系统365
14.3.1 光盘的特点和类型365
14.3.2 光盘读/写原理366
第15章 总线368
15.1 总线的分类和性能指标368
15.2 PCI的特点和系统结构369
15.2.1 PCI的概况和特点369
15.2.2 PCI的层次化系统结构371
15.3 PCI的信号372
15.4 PCI的命令类型376
15.5 PCI的中断和中断响应377
15.6 PCI的编址379
15.7 PCI的数据传输380
15.7.1 PCI数据传输的相关要点380
15.7.2 PCI的单数据读/写操作381
15.7.3 PCI的突发传输383
15.8 PCI的64位扩展传输384
15.8.1 64位传输的相关信号和规则385
15.8.2 64位数据32位地址的传输--数据扩展385
15.8.3 32位数据64位寻址的双地址期传输--地址扩展386
15.8.4 主设备启动64位数据64位寻址的扩展传输387
15.9 PCI的配置机制388
15.9.1 配置空间的功能和结构388
15.9.2 基本配置空间的结构388
15.9.3 配置空间基址寄存器的特点和操作391
15.9.4 配置空间的访问393
15.10 PCI的仲裁394
15.11 PCI兼容的局部总线397
15.11.1 局部总线ISA397
15.11.2 局部总线EISA398
15.12 外部总线399
15.12.1 外部总线IDE和EIDE400
15.12.2 外部总线SCSI401
15.12.3 外部总线RS-232-C403
15.12.4 通用串行总线USB405
第16章 Pentium微型计算机系统的结构409
16.1 Pentium微型计算机系统的总体结构409
16.2 Pentium微型计算机系统中的BIOS411
16.3 Pentium微型计算机系统的控制芯片组412
16.3.1 北桥-南桥式控制芯片组及相关的微型计算机系统413
16.3.2 MCH-ICH集中式控制芯片组及相关的微型计算机系统415
16.4 Pentium的系统配置和主机板417
16.4.1 Pentium的系统配置417
16.4.2 Pentium主机板的结构418
16.4.3 Pentium主机板的部件420
参考文献422