描述
开 本: 16开纸 张: 轻型纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787121269097丛书名: 高等学校规划教材
编辑推荐
1.本书通俗易懂,内容精炼,讲解方式新颖,富有趣味性,适合非计算机专业选用
2.本书各章节以冯.诺依曼体系为基本线索,采用问题驱动方式层层挖掘、逐步展开相关知识,注重前后知识之间的连贯性及思维过程
3.本书配套PPT、习题解答、源代码,作者提供了详细的教学思路和教学方法
2.本书各章节以冯.诺依曼体系为基本线索,采用问题驱动方式层层挖掘、逐步展开相关知识,注重前后知识之间的连贯性及思维过程
3.本书配套PPT、习题解答、源代码,作者提供了详细的教学思路和教学方法
内容简介
本书以冯.诺依曼体系为基本线索,分部分地介绍了CPU、总线、存储器、I/O接口等相关的知识和工作原理。在借鉴了国外经典教材以分析为主的写法的基础上,教材的风格有了较大的变化。抛弃了传统的以知识点为线索的风格,而采用了问答式的叙述方式,通过问题驱动,逐步展开相关的知识,使得知识不再是独立的单元,而是为了解决某个问题而出现的必然结果。通过这种方式,我们力图改变一下高等教育课堂上的授课方式。本书为教学老师提供PPT、习题解答,可从网站http://www.hxedu.com.cn下载。
目 录
第1章 绪论 1
1.1 计算机发展简史 1
1.1.1 关于计算的历史 2
1.1.2 通用数字电子计算机的出现 3
1.2 计算思想的发展历史 5
1.2.1* 图灵机简介 6
1.2.2 冯诺依曼体系 7
1.3 现代计算机系统结构 9
1.3.1 计算机系统层次结构 9
1.3.2 计算机内部硬件结构 11
思考题及习题1 12
第2章 通用计算机工作原理的通俗理解 13
2.1 关于计算问题 13
2.2 运算器 15
2.3 指令、程序和存储器 17
2.4 指令格式 20
2.5 关于程序的自动执行 23
2.6 本章小结 24
思考题及习题2 25
第3章 CPU的构成及工作原理 26
3.1 通用CPU的构成 26
3.1.1 运算器的组成 26
3.1.2 控制器的组成 34
3.2 典型CPU的构成 41
3.2.1 8086微处理器的功能结构 43
3.2.2 8086微处理器的寄存器结构 45
3.2.3 典型CPU的外在特性 48
3.3* CPU优化技术——流水线技术 52
3.3.1 流水线基本思路 52
3.3.2 流水线冲突 53
3.4* 指令优化技术——RISC技术 54
3.5 本章小结 56
思考题及习题3 57
第4章 总线技术 59
4.1 总线产生的思路 59
4.2 总线的概念 60
4.3 系统总线的构成 60
4.4 系统总线的工作时序 61
4.5* 关于计算机中的时间 67
4.6 总线的结构 70
4.6.1 单总线 70
4.6.2 双总线 70
4.6.3 多总线 71
4.7 总线的仲裁 72
4.8 总线的同步技术 74
4.8.1 总线的分类 74
4.8.2 串行总线的同步技术 75
4.9 总线的性能评价指标 77
4.10 计算机外部总线 77
4.10.1 ISA与EISA总线 78
4.10.2 PCI总线 80
4.10.3 USB总线 82
4.11 本章小结 83
思考题及习题4 84
第5章 存储器技术 86
5.1 存储器发展历史和分类 86
5.1.1 存储器发展历史 86
5.1.2 存储器分类 88
5.2 存储器层次结构 90
5.3* 半导体存储器原理 92
5.3.1 静态随机存储器(SRAM,Static RAM)的工作原理 93
5.3.2 电可擦写只读存储器(EPROM)的工作原理 94
5.3.3 存储器的技术指标 95
5.4 典型EPROM和SRAM介绍 96
5.5 存储器扩展技术 99
5.6* 微机的存储器组织 109
5.7 存储器的寻址方式与访问指令 110
5.8 汇编语言对存储器的操作 114
5.9 堆栈技术 119
5.10* 存储器优化——Cache的工作原理 122
5.10.1 Cache的基本思路 122
5.10.2 Cache的地址映射与变换 124
5.10.3 Cache的替换策略 124
5.10.4 Cache的写策略 125
5.10.5 Cache的实现方式 125
5.11 本章小结 126
思考题及习题5 126
第6章 微机接口技术之并行接口 128
6.1 键盘和CPU的接口技术 128
6.1.1 简单的键盘接口 128
6.1.2 矩阵键盘的接口技术 131
6.1.3 *键盘消抖技术 135
6.2 LED与CPU的接口技术 137
6.2.1 LED简介 137
6.2.2 LED与CPU的接口 138
6.3 并行接口芯片8255A 144
6.3.1 8255A引脚介绍 145
6.3.2 8255A内部结构图 145
6.3.3 8255A的工作方式及其初始化编程 147
6.4 键盘和LED通过8255A与CPU接口 152
6.5 本章小结 159
思考题及习题6 159
第7章 微机接口技术之串行接口 161
7.1 串行传输的概念 161
7.2 串/并、并/串转化 162
7.3 串行通信的时间统一问题 162
7.3.1 同步方式 162
7.3.2 异步方式 163
7.4 单、双向串行通信 165
7.4.1 全双工方式(Full Duplex) 165
7.4.2 半双工方式(Half Duplex) 165
7.5 可编程串行通信芯片(Intel 8251A) 166
7.5.1 8251A内部结构图 167
7.5.2 8251A外部引脚信号说明 168
7.5.3 8251A的控制字与状态字 170
7.5.4 应用实例 173
7.6 本章小结 176
思考题及习题7 177
第8章 中断技术 179
8.1 中断概念 180
8.2 中断检测 180
8.3 中断服务程序 181
8.4 中断管理机制 185
8.5 中断优先级管理 188
8.6 可编程中断接口芯片:8259A 190
8.6.1 8259A引脚说明 191
8.6.2 8259A的内部结构及工作原理 191
8.6.3 单片8259A与总线的连接方式 193
8.6.4 8259A的初始化 193
8.7 *中断工作过程及时序 196
8.8 *键盘中断接口实例 197
8.9 本章小结 201
思考题及习题8 202
附录Ⅰ 计算机的数制和编码 204
Ⅰ.1 关于二进制 204
Ⅰ.2 数制之间的转换 205
思考题及习题Ⅰ 218
附录Ⅱ 8086汇编指令表(以指令助记符字母顺序排列) 220
附录Ⅲ 中断向量表 224
参考文献 226
1.1 计算机发展简史 1
1.1.1 关于计算的历史 2
1.1.2 通用数字电子计算机的出现 3
1.2 计算思想的发展历史 5
1.2.1* 图灵机简介 6
1.2.2 冯诺依曼体系 7
1.3 现代计算机系统结构 9
1.3.1 计算机系统层次结构 9
1.3.2 计算机内部硬件结构 11
思考题及习题1 12
第2章 通用计算机工作原理的通俗理解 13
2.1 关于计算问题 13
2.2 运算器 15
2.3 指令、程序和存储器 17
2.4 指令格式 20
2.5 关于程序的自动执行 23
2.6 本章小结 24
思考题及习题2 25
第3章 CPU的构成及工作原理 26
3.1 通用CPU的构成 26
3.1.1 运算器的组成 26
3.1.2 控制器的组成 34
3.2 典型CPU的构成 41
3.2.1 8086微处理器的功能结构 43
3.2.2 8086微处理器的寄存器结构 45
3.2.3 典型CPU的外在特性 48
3.3* CPU优化技术——流水线技术 52
3.3.1 流水线基本思路 52
3.3.2 流水线冲突 53
3.4* 指令优化技术——RISC技术 54
3.5 本章小结 56
思考题及习题3 57
第4章 总线技术 59
4.1 总线产生的思路 59
4.2 总线的概念 60
4.3 系统总线的构成 60
4.4 系统总线的工作时序 61
4.5* 关于计算机中的时间 67
4.6 总线的结构 70
4.6.1 单总线 70
4.6.2 双总线 70
4.6.3 多总线 71
4.7 总线的仲裁 72
4.8 总线的同步技术 74
4.8.1 总线的分类 74
4.8.2 串行总线的同步技术 75
4.9 总线的性能评价指标 77
4.10 计算机外部总线 77
4.10.1 ISA与EISA总线 78
4.10.2 PCI总线 80
4.10.3 USB总线 82
4.11 本章小结 83
思考题及习题4 84
第5章 存储器技术 86
5.1 存储器发展历史和分类 86
5.1.1 存储器发展历史 86
5.1.2 存储器分类 88
5.2 存储器层次结构 90
5.3* 半导体存储器原理 92
5.3.1 静态随机存储器(SRAM,Static RAM)的工作原理 93
5.3.2 电可擦写只读存储器(EPROM)的工作原理 94
5.3.3 存储器的技术指标 95
5.4 典型EPROM和SRAM介绍 96
5.5 存储器扩展技术 99
5.6* 微机的存储器组织 109
5.7 存储器的寻址方式与访问指令 110
5.8 汇编语言对存储器的操作 114
5.9 堆栈技术 119
5.10* 存储器优化——Cache的工作原理 122
5.10.1 Cache的基本思路 122
5.10.2 Cache的地址映射与变换 124
5.10.3 Cache的替换策略 124
5.10.4 Cache的写策略 125
5.10.5 Cache的实现方式 125
5.11 本章小结 126
思考题及习题5 126
第6章 微机接口技术之并行接口 128
6.1 键盘和CPU的接口技术 128
6.1.1 简单的键盘接口 128
6.1.2 矩阵键盘的接口技术 131
6.1.3 *键盘消抖技术 135
6.2 LED与CPU的接口技术 137
6.2.1 LED简介 137
6.2.2 LED与CPU的接口 138
6.3 并行接口芯片8255A 144
6.3.1 8255A引脚介绍 145
6.3.2 8255A内部结构图 145
6.3.3 8255A的工作方式及其初始化编程 147
6.4 键盘和LED通过8255A与CPU接口 152
6.5 本章小结 159
思考题及习题6 159
第7章 微机接口技术之串行接口 161
7.1 串行传输的概念 161
7.2 串/并、并/串转化 162
7.3 串行通信的时间统一问题 162
7.3.1 同步方式 162
7.3.2 异步方式 163
7.4 单、双向串行通信 165
7.4.1 全双工方式(Full Duplex) 165
7.4.2 半双工方式(Half Duplex) 165
7.5 可编程串行通信芯片(Intel 8251A) 166
7.5.1 8251A内部结构图 167
7.5.2 8251A外部引脚信号说明 168
7.5.3 8251A的控制字与状态字 170
7.5.4 应用实例 173
7.6 本章小结 176
思考题及习题7 177
第8章 中断技术 179
8.1 中断概念 180
8.2 中断检测 180
8.3 中断服务程序 181
8.4 中断管理机制 185
8.5 中断优先级管理 188
8.6 可编程中断接口芯片:8259A 190
8.6.1 8259A引脚说明 191
8.6.2 8259A的内部结构及工作原理 191
8.6.3 单片8259A与总线的连接方式 193
8.6.4 8259A的初始化 193
8.7 *中断工作过程及时序 196
8.8 *键盘中断接口实例 197
8.9 本章小结 201
思考题及习题8 202
附录Ⅰ 计算机的数制和编码 204
Ⅰ.1 关于二进制 204
Ⅰ.2 数制之间的转换 205
思考题及习题Ⅰ 218
附录Ⅱ 8086汇编指令表(以指令助记符字母顺序排列) 220
附录Ⅲ 中断向量表 224
参考文献 226
前 言
前 言
很久以前偶然看到一本书——以色列的管理学大师高德拉特的《目标》,它是一本关于生产过程管理的书。高德拉特以小说的形式来推理展开管理学的知识和思路,使读者从一开始就被书中的内容深深地吸引,以至于可能连吃饭都忘记了。几十年过去了,这本书的内容、情节、叙述方式、思考问题的方式依然清晰地印在我的脑海里。至今我会经常将它重新翻出来,再阅读一遍,就像读《三国演义》一样,百看不厌。其中修订版的作者序中关于科学与教育的探索中的一段话常常让我回味良久,我将原话抄录如下:
“我也希望借着本书探讨教育的意义,我诚心诚意地相信,唯有透过推导的过程,我们才能真正地学习。直接把*后的结论摆在我们面前,不是好的学习方式,充其量不过是训练我们的方式罢了。这是为什么我试图用苏格拉底的方式来呈现本书想表达的讯息。尽管钟纳(书中的人物)对于答案胸有成竹,但是他仍然不断以‘问号’,而不是‘惊叹号’,来激励罗哥(书中的人物)自行找到答案。我们相信运用这种方式,读者可以抢在罗哥之前,就推断出解答。假如你觉得这本书很有趣,那么或许你会同意,好的教育方式也应该如此,而且我们应该运用苏格拉底的方式来编撰教科书。我们的教科书不应该提供我们一堆*后的解答,而应该引导读者自己经历整个推论的过程。”
将近三十年授课的经历使我常常在幻想:如果教科书是用高德拉特的方式来书写会怎么样呢?这是教育的本质吗?尽管目前还不能给出完美的答案,但能否试一试呢?
本书的基本思路
“微机原理与接口技术”这个议题应该说是非常“老”了,已经有几十年的历史,国内外许多教授们也已经完成了对该课程体系的完整的建设,有很多很好的教科书在使用。那么,怎样能在不改变体系的前提下展现出一种新的形式是我们面临的一个问题。为此,我们采用了下面几个思路进行教材的书写,算是一种尝试。
1.以问题的方式展开。我们接受了苏格拉底的教育理念,在本教材中,通过连续的提问、解答的过程,力图逐渐展开《微机原理与接口技术》的相关知识。我们希望去讲解每一个知识点的来龙去脉,将当初人类面临的问题、提出的解决方案和改进方案、*后获得的结果,以及问题解决到什么程度等相关问题介绍给读者。这样既讲述了知识本身,同时又将人类发明或者发现该知识的思维过程讲解清楚,这是一个推理过程的展示。在这个过程中既能够提高学生的思维能力,又能够激发学生探索的兴趣。从科学发现的角度讲,人类一直是这么进行探索和研究的,只是在教学的过程中,我们将知识点和结论留下,而将其他的抛弃了,这种抛弃使得教授过程变得简单,但是对于思维培训却是一个很大的损失,那么,这种思路是正确的吗?我们并不确定,或许高德拉特的教育思路给了我们一个启示。
2.以较通俗的语言描述。当我们要以提问、回答的形式展开课程的时候,一个问题马上出现了:如果按照惯常的做法(以概念、定理、定律的顺序来叙述),那么,问题和概念、定理、定律之间的关系就很难描述。我们面临一个艰难的选择,或者恢复之前的惯常做法,或者抛弃惯常的做法。如果抛弃之前的做法,如何保障体系的完整和概念的清晰同样是一个问题。经过思考和讨论,我们认为:既然我们写的是教材,不是科学专著,我们的*根本的目标还是要关注于读者(尤其是初学者)对问题或者知识的理解,所以,我们采用了在保证知识体系不变,概念不变的前提下,用较通俗的语言来书写教材。同时,在书写的过程中尽量将技术的变化过程交代清楚,使得读者明晰技术的来源、技术的选择、技术本身、技术所带来的问题等相关内容。
微机原理与接口技术的前半部分一般讲解计算机的组成结构(后半部分为接口的设计),但如果只是描述计算机的组成结构,会面临一个问题:为什么会有这样的结构?此结构怎样能够完成计算的任务?为此,我们试图来模拟图灵和冯诺依曼等人的基本思路,以及仿真计算机的结构产生的过程。但是,这里还是存在一个问题:如何能在有限的篇幅内完成上述任务呢?为此,我们采用了较通俗的语言来讲述计算及如何实现自动计算等问题。但能否讲解得非常清楚,这与我们对计算机的理解和所站的角度、高度有关。我们尝试了,但是否成功了,还需要各位读者的检验。在本书的其他章节,作者也力图抛开传统教材的书写方式,尽量用简单易懂的语言展开叙述。
3.以系统的线索展开。微机原理与接口技术教学的基本思路都是按照冯诺依曼体系的划分来分部讲解的如CPU、总线、存储器、接口等。但实际上计算机是一个完整的系统,每个部分是不能单独工作的,需要各个部分协调动作才能完成计算任务。也就是说,在分部讲解的过程中,需要一个整合的过程,因此本书在写作的过程中力求在分部的基础上将计算机合并为一个整体。但是,也存在一个问题:计算机是软、硬件的结合,除了硬件,还有位于其上的BIOS、操作系统等软件的配合才能成为真正的计算机系统。但由于篇幅所限,我们将注意力集中在了硬件的构造方面,而舍弃了上层软件方面的讲解,这诚然会带来理解上的问题。如果有的读者需要了解软、硬件完整的工作原理,那么强烈建议读者去阅读《深入理解计算机系统》一书。但是该书的专业性较强,初学者也许不容易理解。当然,我们也试图在今后再编写一本将软件、硬件结合在一起的书,供初学者对计算机有一个更全面的认识。
4.开放式的作业题。微机原理与接口技术作为一门成熟的课程,其例题与习题不可胜数。但本书在写作的时候,力图多设计一些开放性的题目,这些题目很难用简单的语言或者公式来回答,需要读者通过阅读本书,理解相应的内容后,经过仔细的思考,方能得出答案。我们试图调动读者去思考问题,而不是简单地记住答案。
5.较大量引入“隐喻”。隐喻是一种比喻,即用一种事物暗喻另一种事物。隐喻是在彼类事物的暗示之下感知、体验、想象、理解、谈论此类事物的心理行为、语言行为和文化行为。隐喻要求所选择的实例与现有的知识吻合度很高,通过对实例的理解,就可以完全理解现有的知识。所以,隐喻需要认真地设计。本书中在较多的地方通过隐喻的方式来帮助读者建立起计算机的相关概念。例如在中断章节,我们通过一个学生在学习的时候被其他的事件所打断时会做出的各种反应来引入中断源、中断优先级、中断嵌套、中断屏蔽等概念。
本书面向的对象
在中国的理工科大学中,计算机系统的知识对于电类或者非电类专业的学生来说都十分重要,如电气工程专业、自动控制专业、机械专业……。这些专业在教学上可能会针对计算机相关知识安排3~5门课程,而计算机硬件类课程一般在1~2门。微机原理与接口技术这门课一般是为使非计算机专业的学生掌握计算机的结构和工作过程而设置的,如果是计算机本专业的学生,常常会包含计算机组成原理、汇编语言、计算机体系结构、计算机接口技术等4~5门课。
本书实际上是将上述的4门课程合为一门课程,以计算机组成和工作原理为主线,同时兼顾计算机体系结构、汇编语言及接口技术的知识和方法。这就面临一个问题:非计算机专业的学生可能存在学年不同、专业不同等原因,其相关的基本知识是有差别的,如何适应这个差别?本教材在编写的时候,首先考虑到一般电类专业和机械类专业的学生都会学习电路、数字电路的相关课程,因此对数字逻辑的基本概念应该是清楚的。对于非电类专业的学生,可能没有学习过数字电路的相关知识,这就需要教师补充一些相关知识。但考虑到计算机体系的结构性,我们在书中没有加入数字逻辑的内容,如果需要,我们希望能在课件上予以适当的弥补。
所以,本书面向的主要对象是具有一定数字逻辑或者数字电路知识的非计算机专业的读者。
当然,在本书的前两章我们试图讲解一下计算机的发展历程,及冯诺依曼等人对用计算机器实现自动计算的一些思考等内容,虽然看似复杂,但我们尽量采用了较通俗的语言进行描述,所涉及的数学概念也是初高中学过的,应该不会造成较大的理解困难。
对使用本书的教师的建议
每个学校针对不同的学生可能采用不同的教学目标和教学安排,本书面向的对象主要为非计算机专业的学生,我们将这些学生进行了简单的分类:电类专业和非电类专业。
对于电类学生,计算机相关知识可能是其教学体系中较重要的一门课程,需要深入地理解和掌握,而且此类学生一般都学过电路、模拟电子和数字电子等课程。在此基础上,本书的内容对他们而言,其难度并不高。但是因为书的风格和以往不太一致,所以讲解时也需要注意一些问题。
1.本书基本思路是:先讲通用数字计算机的基本结构和工作原理,而后以8086/8088微型计算机系统为一个具体实例来说明计算机的具体结构和工作原理。当然也可以以ARM或者51系列单片机为例来讲解。即先通用,后具体。通用部分讲的是“道”,具体部分讲的是“术”。
2.讲通用部分的时候,我们的思路是这样的:(1)先讲清楚计算机器是很早就产生的想法,而直到20世纪初才出现通用计算机思路(即将软件从硬件部分分离,参见第1章)。(2)既然分为软件和硬件两个部分,那么哪些可以成为软件?哪些可以成为硬件?这将从对计算的分析中获得(参见第2章)。(3)硬件可以用数字电路实现,软件是什么?如何表述?机器如何识别?这是不可回避的问题(参见第2章)。(4)能够表述的软件如何才能自动执行?(参见第2章)。(5)当我们回答完上述问题时,我们发现计算机CPU的基本构成应该已经出现(运算器、控制器、寄存器)。(6)那么如何才能设计出一个CPU呢?需要考虑哪些问题呢?当然先需要设计汇编语言指令集,然后设计汇编语言的运行机制的相关电路(参见第3章)。(7)汇编语言形成的指令序列即为程序,如果要自动运行就需要存储程序和数据,如何存储?如何访问?如何使访问灵活机动?如何实现跳转?这些问题都需要解决,也就是我们需要一个存储器(参见第5章)及连接CPU与存储器的总线(参见第4章)。(8)如果有可能,我们非常建议教师可以设计一个完整的实验,实现CPU、存储器及两者之间的连接,但可能学时上会受到较大的限制。(9)到此为止,我们一直在讲“通用”计算机,一个真正的CPU、存储器是如何实现的?与我们讲的到底有没有区别?区别是什么?为什么会有如此
很久以前偶然看到一本书——以色列的管理学大师高德拉特的《目标》,它是一本关于生产过程管理的书。高德拉特以小说的形式来推理展开管理学的知识和思路,使读者从一开始就被书中的内容深深地吸引,以至于可能连吃饭都忘记了。几十年过去了,这本书的内容、情节、叙述方式、思考问题的方式依然清晰地印在我的脑海里。至今我会经常将它重新翻出来,再阅读一遍,就像读《三国演义》一样,百看不厌。其中修订版的作者序中关于科学与教育的探索中的一段话常常让我回味良久,我将原话抄录如下:
“我也希望借着本书探讨教育的意义,我诚心诚意地相信,唯有透过推导的过程,我们才能真正地学习。直接把*后的结论摆在我们面前,不是好的学习方式,充其量不过是训练我们的方式罢了。这是为什么我试图用苏格拉底的方式来呈现本书想表达的讯息。尽管钟纳(书中的人物)对于答案胸有成竹,但是他仍然不断以‘问号’,而不是‘惊叹号’,来激励罗哥(书中的人物)自行找到答案。我们相信运用这种方式,读者可以抢在罗哥之前,就推断出解答。假如你觉得这本书很有趣,那么或许你会同意,好的教育方式也应该如此,而且我们应该运用苏格拉底的方式来编撰教科书。我们的教科书不应该提供我们一堆*后的解答,而应该引导读者自己经历整个推论的过程。”
将近三十年授课的经历使我常常在幻想:如果教科书是用高德拉特的方式来书写会怎么样呢?这是教育的本质吗?尽管目前还不能给出完美的答案,但能否试一试呢?
本书的基本思路
“微机原理与接口技术”这个议题应该说是非常“老”了,已经有几十年的历史,国内外许多教授们也已经完成了对该课程体系的完整的建设,有很多很好的教科书在使用。那么,怎样能在不改变体系的前提下展现出一种新的形式是我们面临的一个问题。为此,我们采用了下面几个思路进行教材的书写,算是一种尝试。
1.以问题的方式展开。我们接受了苏格拉底的教育理念,在本教材中,通过连续的提问、解答的过程,力图逐渐展开《微机原理与接口技术》的相关知识。我们希望去讲解每一个知识点的来龙去脉,将当初人类面临的问题、提出的解决方案和改进方案、*后获得的结果,以及问题解决到什么程度等相关问题介绍给读者。这样既讲述了知识本身,同时又将人类发明或者发现该知识的思维过程讲解清楚,这是一个推理过程的展示。在这个过程中既能够提高学生的思维能力,又能够激发学生探索的兴趣。从科学发现的角度讲,人类一直是这么进行探索和研究的,只是在教学的过程中,我们将知识点和结论留下,而将其他的抛弃了,这种抛弃使得教授过程变得简单,但是对于思维培训却是一个很大的损失,那么,这种思路是正确的吗?我们并不确定,或许高德拉特的教育思路给了我们一个启示。
2.以较通俗的语言描述。当我们要以提问、回答的形式展开课程的时候,一个问题马上出现了:如果按照惯常的做法(以概念、定理、定律的顺序来叙述),那么,问题和概念、定理、定律之间的关系就很难描述。我们面临一个艰难的选择,或者恢复之前的惯常做法,或者抛弃惯常的做法。如果抛弃之前的做法,如何保障体系的完整和概念的清晰同样是一个问题。经过思考和讨论,我们认为:既然我们写的是教材,不是科学专著,我们的*根本的目标还是要关注于读者(尤其是初学者)对问题或者知识的理解,所以,我们采用了在保证知识体系不变,概念不变的前提下,用较通俗的语言来书写教材。同时,在书写的过程中尽量将技术的变化过程交代清楚,使得读者明晰技术的来源、技术的选择、技术本身、技术所带来的问题等相关内容。
微机原理与接口技术的前半部分一般讲解计算机的组成结构(后半部分为接口的设计),但如果只是描述计算机的组成结构,会面临一个问题:为什么会有这样的结构?此结构怎样能够完成计算的任务?为此,我们试图来模拟图灵和冯诺依曼等人的基本思路,以及仿真计算机的结构产生的过程。但是,这里还是存在一个问题:如何能在有限的篇幅内完成上述任务呢?为此,我们采用了较通俗的语言来讲述计算及如何实现自动计算等问题。但能否讲解得非常清楚,这与我们对计算机的理解和所站的角度、高度有关。我们尝试了,但是否成功了,还需要各位读者的检验。在本书的其他章节,作者也力图抛开传统教材的书写方式,尽量用简单易懂的语言展开叙述。
3.以系统的线索展开。微机原理与接口技术教学的基本思路都是按照冯诺依曼体系的划分来分部讲解的如CPU、总线、存储器、接口等。但实际上计算机是一个完整的系统,每个部分是不能单独工作的,需要各个部分协调动作才能完成计算任务。也就是说,在分部讲解的过程中,需要一个整合的过程,因此本书在写作的过程中力求在分部的基础上将计算机合并为一个整体。但是,也存在一个问题:计算机是软、硬件的结合,除了硬件,还有位于其上的BIOS、操作系统等软件的配合才能成为真正的计算机系统。但由于篇幅所限,我们将注意力集中在了硬件的构造方面,而舍弃了上层软件方面的讲解,这诚然会带来理解上的问题。如果有的读者需要了解软、硬件完整的工作原理,那么强烈建议读者去阅读《深入理解计算机系统》一书。但是该书的专业性较强,初学者也许不容易理解。当然,我们也试图在今后再编写一本将软件、硬件结合在一起的书,供初学者对计算机有一个更全面的认识。
4.开放式的作业题。微机原理与接口技术作为一门成熟的课程,其例题与习题不可胜数。但本书在写作的时候,力图多设计一些开放性的题目,这些题目很难用简单的语言或者公式来回答,需要读者通过阅读本书,理解相应的内容后,经过仔细的思考,方能得出答案。我们试图调动读者去思考问题,而不是简单地记住答案。
5.较大量引入“隐喻”。隐喻是一种比喻,即用一种事物暗喻另一种事物。隐喻是在彼类事物的暗示之下感知、体验、想象、理解、谈论此类事物的心理行为、语言行为和文化行为。隐喻要求所选择的实例与现有的知识吻合度很高,通过对实例的理解,就可以完全理解现有的知识。所以,隐喻需要认真地设计。本书中在较多的地方通过隐喻的方式来帮助读者建立起计算机的相关概念。例如在中断章节,我们通过一个学生在学习的时候被其他的事件所打断时会做出的各种反应来引入中断源、中断优先级、中断嵌套、中断屏蔽等概念。
本书面向的对象
在中国的理工科大学中,计算机系统的知识对于电类或者非电类专业的学生来说都十分重要,如电气工程专业、自动控制专业、机械专业……。这些专业在教学上可能会针对计算机相关知识安排3~5门课程,而计算机硬件类课程一般在1~2门。微机原理与接口技术这门课一般是为使非计算机专业的学生掌握计算机的结构和工作过程而设置的,如果是计算机本专业的学生,常常会包含计算机组成原理、汇编语言、计算机体系结构、计算机接口技术等4~5门课。
本书实际上是将上述的4门课程合为一门课程,以计算机组成和工作原理为主线,同时兼顾计算机体系结构、汇编语言及接口技术的知识和方法。这就面临一个问题:非计算机专业的学生可能存在学年不同、专业不同等原因,其相关的基本知识是有差别的,如何适应这个差别?本教材在编写的时候,首先考虑到一般电类专业和机械类专业的学生都会学习电路、数字电路的相关课程,因此对数字逻辑的基本概念应该是清楚的。对于非电类专业的学生,可能没有学习过数字电路的相关知识,这就需要教师补充一些相关知识。但考虑到计算机体系的结构性,我们在书中没有加入数字逻辑的内容,如果需要,我们希望能在课件上予以适当的弥补。
所以,本书面向的主要对象是具有一定数字逻辑或者数字电路知识的非计算机专业的读者。
当然,在本书的前两章我们试图讲解一下计算机的发展历程,及冯诺依曼等人对用计算机器实现自动计算的一些思考等内容,虽然看似复杂,但我们尽量采用了较通俗的语言进行描述,所涉及的数学概念也是初高中学过的,应该不会造成较大的理解困难。
对使用本书的教师的建议
每个学校针对不同的学生可能采用不同的教学目标和教学安排,本书面向的对象主要为非计算机专业的学生,我们将这些学生进行了简单的分类:电类专业和非电类专业。
对于电类学生,计算机相关知识可能是其教学体系中较重要的一门课程,需要深入地理解和掌握,而且此类学生一般都学过电路、模拟电子和数字电子等课程。在此基础上,本书的内容对他们而言,其难度并不高。但是因为书的风格和以往不太一致,所以讲解时也需要注意一些问题。
1.本书基本思路是:先讲通用数字计算机的基本结构和工作原理,而后以8086/8088微型计算机系统为一个具体实例来说明计算机的具体结构和工作原理。当然也可以以ARM或者51系列单片机为例来讲解。即先通用,后具体。通用部分讲的是“道”,具体部分讲的是“术”。
2.讲通用部分的时候,我们的思路是这样的:(1)先讲清楚计算机器是很早就产生的想法,而直到20世纪初才出现通用计算机思路(即将软件从硬件部分分离,参见第1章)。(2)既然分为软件和硬件两个部分,那么哪些可以成为软件?哪些可以成为硬件?这将从对计算的分析中获得(参见第2章)。(3)硬件可以用数字电路实现,软件是什么?如何表述?机器如何识别?这是不可回避的问题(参见第2章)。(4)能够表述的软件如何才能自动执行?(参见第2章)。(5)当我们回答完上述问题时,我们发现计算机CPU的基本构成应该已经出现(运算器、控制器、寄存器)。(6)那么如何才能设计出一个CPU呢?需要考虑哪些问题呢?当然先需要设计汇编语言指令集,然后设计汇编语言的运行机制的相关电路(参见第3章)。(7)汇编语言形成的指令序列即为程序,如果要自动运行就需要存储程序和数据,如何存储?如何访问?如何使访问灵活机动?如何实现跳转?这些问题都需要解决,也就是我们需要一个存储器(参见第5章)及连接CPU与存储器的总线(参见第4章)。(8)如果有可能,我们非常建议教师可以设计一个完整的实验,实现CPU、存储器及两者之间的连接,但可能学时上会受到较大的限制。(9)到此为止,我们一直在讲“通用”计算机,一个真正的CPU、存储器是如何实现的?与我们讲的到底有没有区别?区别是什么?为什么会有如此
评论
还没有评论。