计算机原理教案分解.doc
计算机原理课程教案张永超本课程是计算机专业本科生的核心课程,是主干必修课。课程以阐述原理为主,讲述计算机系统及其各功能部件的工作原理以及逻辑实现,计算机系统及其各功能部件的设计原理以及并行处理技术。设置这一课程的目的是使学生掌握计算机的基本工作原理,掌握计算机各主要部件的硬件结构、相互联系和作用,掌握计算机系统的设计原理以及软硬件的界面,从而对整个计算机系统有完整的了解,为计算机专业的后继课程的学习打下基础。一、 本课程得主要内容1、 计算机系统概论2、 数字逻辑基础(复习及提高)3、 信息编码和数据表示4、 运算方法与运算器5、中央处理器6、存储器与存储系统7、处理机设计8、输入输出系统二、本课程教学重点与难点重点:信息编码和数据表示控制器存储系统输入输出系统三、教材选用计算机组织原理.外语教学与研究出版社四、教学手段:PPT+版书+实验五、课程内容和学时分配 (整体安排按信息表示、信息处理、信息输出思路。)计算机系统概论一、教学内容: 1、了解计算机的发展; 2、了解计算机系统的组成以及各部分的主要功能; 3、掌握键盘的使用,熟练掌握标准指法操作; 4、了解计算机中数据的表示编码。二、教学目的使学生了解计算机基础知识,掌握计算机系统的概念三、教学基本要求了解计算机的特点、发展史(包括微型计算机的发展史)、类型、应用领域及前景;掌握计算机软件系统及硬件系统构成,了解微机的硬件系统,包括掌握微机系统硬件组成及主要性能指标。四、重点与难点重点:计算机的发展史和应用领域,计算机软件系统及硬件系统构成难点:计算机系统的层次结构五、教学方法:讲授(ppt)六、教学过程:第一课时:计算机概述1、什么是计算机(概念)2、计算机发展过程阶段年份物理器件软件特征应用范围第一代46-58电子管机器语言、汇编语言科学计算第二代59-64晶体管高级语言科学计算、数据处理、工业控制第三代65-70小规模集成电路操作系统科学计算、数据处理、工业控制、文字处理、图形处理第四代70至今大规模集成电路数据库网络等各个领域3、计算机技术发展的趋势巨型化、高性能、开放式、多媒体化、智能化、网络化4、计算机的分类:1)、根据规模大小分类:巨型机、大型机、中型机、小型机、微机、2)、根据用途分类:通用计算机、专用计算机5、计算机的主要应用科学计算、数据处理、计算机控制、计算机辅助系统、人工智能、办公自动化系统中的应用注:记住一些专用名字的缩写详细内容及要求第二、三课时:计算机系统计算机系统:是由硬件系统和软件系统两部分组成;两者相辅相成,构成计算机系统的统一体。1、计算机硬件系统硬件系统组成由运算器、控制器、存储器、输入设备和输出设备五部分组成。1) 中央处理器CPU 运算器和控制器合称为中央处理单元,简称CPU。CPU的作用是处理数据、存取数据或指令、协调各部件工作等。2) 存储器 存储器用于保存数据和程序。 存储器分为内部存储器和外部存储器 内存又分为只读存储器(ROM)和随机存储器(RAM) 外存分为软盘、硬盘、光盘、磁带 它们的特点和缺点存储器的有关术语简述如下:*位(Bit):存放一位二进制数即0或1。位是计算机中存储信息的最小单位。*字节(Byte):8个二进制位为一个字节。为了便于衡量存储器的大小,统一以字节(Byte简写为B)为单位。字节是计算机中存储信息的基本单位*地址:整个内存被分成若干个存储单元,每个存储单元一般可存放8位二进制(字节编址)。每个存储单元可以存放数据或程序代码。为了能有效地存取该单元内的内容,每个单元必须有唯一的编号(称为地址)来标识。*读操作(Read):按地址从存储器中取出信息,不破坏原有的内容,称为对存储器进行“读”操作。*写操作(Write):把信息写入存储器,原来的内容被覆盖,称为对存储器进行“写”操作。*主频 主频是衡量CPU运行速度的重要指标。它是指系统时钟脉冲发生器输出周期性脉冲的频率。通常以赫兹(Hz)为单位。目前的奔腾微处理器的主频已高达1.5GHz、2.2GHz。*字长 字长是CPU可以同时处理的二进制数据位数。如64位微处理器,一次能够处理64位二进制数据。常用的有16位、32位、64位微处理器。3)输入设备输入设备用来接受用户输入的原始数据和程序,并将它们转变为计算机可以识别的二进制形式存放到内存中。常用的输入设备有键盘、鼠标、扫描仪、光笔、数字化仪、麦克风等。4)输出设备输出设备用于将存放在内存中由计算机处理的结果转变为人们所能接受的形式。常用的输出设备有:显示器、打印机、绘图仪、音箱等。2、软件系统分为系统软件和应用软件1). 系统软件 (1)操作系统 (2)语言处理程序(3)数据库管理系统 (4)网络管理软件 (5)常用的服务程序2)应用软件应用软件是在计算机硬件和系统软件的支持下,为解决各类专业和实际问题而设计开发的一类软件。如文字处理、电子表格、多媒体制作工具、各种工程设计和数学计算软件、模拟过程、辅助设计和管理程序等。(1)操作系统 操作系统:是管理和控制计算机的全部硬件、软件资源的程序。 主要功能有:用户与计算机硬件的接口、硬件功能的扩充、计算机系统的控制及管理等。(2) 语言处理程序 机器语言 汇编语言 高级语言:Basic语言、Pascal语言、 C语言、 Java语言等。 (3)实用程序 一些公用的工具性程序,如:编辑程序EDIT,调试程序DEBUG,诊断程序等。 4)数据库系统按数据模型的不同分为三种类型:层次型、网状型、关系型。目前比较流行的数据库系统有 FoxPro、Oracle、SQL等。教学小结:这一节最为重要的内容是掌握计算机系统的概念,这一点在教学过程中要注意强调;对于上机实验的第一节课,要注意强调正确的指法操作。第二章 数字逻辑基础本讲目的:掌握数字逻辑的基础本讲要求:掌握逻辑运算、组合逻辑电路、常用时序电路本讲重点:逻辑代数运算本讲难点:常用时序电路授课内容一、逻辑代数的基本概念建立逻辑代数的概念,以区别普通代数,不能简单地把普通代数的规律照搬到逻辑代数中来。逻辑变量 逻辑代数中也用字母代表变量,但通常用一个字母代表一个变量。逻辑变量的取值只能是“0”或“1”,代表的是事物矛盾着的双方;判断事件的“真伪”和“是非”,无大小和正负之分。在数字系统中,代表开关的接通现断开,晶体管的导通与截止,电压的高(5V)低(0V),信号的有无等。逻辑运算三种基本的逻辑运算:“或” 、“与”、 “非”。“或” 运算概念:着重因果关系。“或” 运算关系表达式:F=A+B 或者 F=AB。“或” 运算口诀:“有1出1”和“都0出0”。“与” 运算概念:着重因果关系。“与” 运算关系表达式:F=A·B,或者 F=AB ,或者 F=AB。“或” 运算口诀:“有0出0”和“都1出1”。“非” 运算概念:着重因果关系。“非” 运算关系表达式:F=,或者 F= A。“非” 运算口诀:“反0出1”和“反1出0”。二、触发器的基本概念1. 触发器特点触发器与组合逻辑电路不同,触发器的输出不仅与输入信号有关,而且还与触发器原来的状态有关。触发器具有记忆功能,是构成时序电路的基本单元电路。触发器具有两个稳定的状态0和1。在不同的输入信号作用下,触发器可以置成0,也可以置成1。当输入信号消失后,触发器能保持其状态不变。2. 触发器控制信号触发器的外部控制信号分为三类:(1)置位信号、复位信号:置位信号和复位信号有高有效或低有效、同步或异步之分。置位信号和复位信号是低有效的异步信号,当信号有效时,触发器置1或清零,和不能同时有效。(2)时钟脉冲信号:时钟脉冲信号为触发器的控制端,决定触发器的状态何时转换。(3)外部激励信号:外部激励信号在CP脉冲作用下控制触发器的状态转换。3. 触发器类型触发器有不同的分类方法,按触发方式分类,有:电位触发方式、主从触发方式和边沿触发方式。按逻辑功能分类,有:RS触发器、D触发器、JK触发器和T触发器等。4. 触发器逻辑功能描述方法触发器的逻辑功能是指触发器的次态与现态以及输入信号之间的逻辑关系。描述触发器的逻辑功能常用方法有:(1)状态转换表与激励表(2)特征方程(3)状态转换图(4)时序图(二)触发器的基本类型1. 基本RS触发器基本RS触发器没有同步触发脉冲,输入信号直接控制输出端的状态。只要输入变化,输出立即变化。基本RS触发器的特征方程为:2. 同步RS触发器同步RS触发器在时钟脉冲CP有效时,如CP=1期间,触发器的输出随输入信号的变化而改变。在时钟脉冲有效期间,其特征表、特征方程与基本RS触发器完全相同。同步RS触发器为电平触发方式,特点是在CP=1整个时间内,触发器输出都会随输入信号的变化而变化。这种现象称为“空翻”。3. 主从RS触发器主从RS触发器由主触发器和从触发器两部分组成,主从RS触发器在CP=1期间把输入信号送入主触发器,整个触发器的状态并不改变。当CP下降沿到来时再将触发器的状态传入从触发器,触发器的状态才可能翻转。主从RS触发器克服了同步RS触发器的“空翻”现象。主从RS触发器在时钟脉冲CP下降沿时,其特征表、特征方程与基本RS触发器完全相同。4. 主从JK触发器主从JK触发器的工作过程与主从RS触发器相同,分为 两步:CP=1期间,接收J、K端的外部信号并存入主触发器,从触发器状态不变;在CP由1变为0时,主触发器状态不变,从触发器状态翻转;CP=0期间,主触发器不接收J、K端的外部信号,触发器的状态不变。在一个时钟周期内,主从JK触发器状态只在CP下降沿发生一次变换。在CP=1期间,如果J、K端的信号发生变化,主触发器的状态能够也只能够变化一次,称为主从JK触发器的一次变化。JK触发器的特征方程为:5. 边沿JK触发器边沿JK触发器在时钟脉冲的下降沿触发翻转。要求J、K信号在时钟脉冲CP的下降沿之前一段时间到来。在CP=1、CP=0及CP上升沿期间,J、K信号的任何变化都不会影响触发器的输出结果,因此,电路具有更强的抗干扰能力。其特征方程、激励表与主从JK触发器完全一样。6. 维持阻塞D触发器维持阻塞D触发器为边沿触发器。在CP脉冲上升沿状态翻转,翻转结果取决于CP上升沿到达瞬间输入信号D的状态。D触发器的特征方程为:(三)时序电路的基本概念数字逻辑电路可分为两大类:组合逻辑电路和时序逻辑电路,前者简称组合电路,后者简称时序电路。在逻辑电路中,如果任一时刻的输出信号不仅取决于该时刻输入信号,而且还与电路原来的状态有关,或者说与电路原来的输入信号有关,具备这种功能的电路被称为时序逻辑电路。1. 时序电路的特点时序电路具有记忆能力,能保存电路原来的输入状态;时序电路含有存储电路,这些存储电路多数由触发器构成。时序电路有两大类:同步时序电路和异步时序电路。2. 时序电路与组合电路的区别时序电路在某一时刻的输出不仅取决于该时刻电路的输入,还取决于该电路原来的状态,也就是说与电路原来的输入有关。而组合电路在某一时刻的输出仅仅取决于该时刻电路的输入。3. 同步时序电路电路中有一个统一的时钟脉冲源,存储电路里所有触发器的状态变化都与同一个时钟脉冲同步。在电路结构上,存储电路中各触发器的时钟脉冲端接同一个时钟脉冲源。4. 异步时序电路电路中没有统一的时钟脉冲,触发器状态的变化不与时钟脉冲同步。(四)同步时序电路的分析与设计l. 同步时序电路的分析时序电路完成的逻辑功能不同,组成结构不同,其分析步骤也有所不同。对具体电路分析时,应能做到灵活应用。同步时序电路分析的一般步骤如下:(1)根据给定的同步时序电路列写方程:时序电路的输出方程,各触发器的驱动方程。(2)将触发器的驱动方程代入对应触发器的特征方程,求出时序电路的状态方程。(3)根据时序电路的输出方程和状态方程,计算时序电路的状态转换表、画出状态转换图或时序图。状态转换表、状态转换图或时序图三种形式之间可以互相转换。(4)根据上述分析结果,用文字描述给定同步时序电路的逻辑功能。2. 同步时序电路的设计设计是根据给定具体的逻辑问题,给出符合其功能要求的时序电路。设计是分析的逆过程,设计又称为综合。这里只给出用小规模集成电路进行设计的步骤,设计的基本思想是用最少的触发器和门电路实现符合要求的时序电路。(1)根据给定的逻辑功能建立原始状态转换图分析给定的逻辑问题,定义输入变量、输出变量以及电路的状态。根据实际的逻辑问题,分析每一种输入情况下的状态变化和相应的输出,从而构成原始状态转换图或原始状态转换表。(2)状态化简原始状态转换图可能包含多余的状态,状态数目越多,设计的电路越复杂。状态化简,消去多余的状态,求出最小化的状态转换图或状态转换表。(3)状态编码对简化后的状态转换表中每一个状态用一个二进制代码来表示,即进行状态编码,也叫做状态分配。状态编码的方案不同,所得到的电路结构及其复杂程度不同,状态编码应当以有利于触发器驱动方程的简化为原则。(4)选择触发器选择不同类型的触发器,设计出的电路不同。利用编码后的状态转换表,根据选定触发器的类型,求驱动方程和输出方程。(5)画逻辑电路图(6)画全状态转换图全状态转换图指的是包含触发器所有状态组合的转换图。检查电路是否符合设计要求,符合要求,则设计完毕。否则,需修改设计。(五)异步时序电路同步时序电路中有统一的时钟信号,异步时序电路没有统一的时钟信号。因此,异步时序电路的分析与设计与同步时序电路有所不同。1. 异步时序电路的分析(1)分析电路,列写各触发器的驱动方程和时钟方程;(2)根据触发器的特征方程,求出电路的状态方程;(3)求状态转换表;求解状态转换表时,首先分析触发器有无时钟信号,在有时钟信号的前提下,再计算状态的转换。(4)确定电路的逻辑功能。2. 异步时序电路的设计(1)根据设计要求,确定状态数目、选择状态编码,列写状态转换表。(2)确定触发器类型,选择每个触发器的时钟信号,求时钟方程、驱动方程和输出方程; (3)画出逻辑电路图或波形图。第三章 计算机中的信息表示本讲目的:了解计算机中数的表示本讲要求:掌握二进制、十六进制和带符号数的表示以及BCD码、ASCII码本讲重点:十六进制数和补码本讲难点:负数的补码表示授课内容一、数与数制1、十进制记数法在十进制记数中,用0,1,2,9这10个符号来表示数量,无论多大的数,都是用这10个符号的组合来表示的。 例如,十进制数3758可用上面的法则来表示: (3758)10=3×103+7×102+5×101+8×100根据同样的法则,也可以表示十进制小数,小数点的右边各位的权为10-1,10-2,10-3,。例如,十进制数275.368可以用上述法则写成: (275.368)10=2×102+7×101+5×100+3×10-1+6×10-2+8×10-32、二进制记数法二进制记数法用来表示数量的符号只有两个,就是0和1。二进制数中的任何一个0或1称为比特(bit)。例如,二进制数110101可以表示为 (110101)2=1×25+1×24+0×23+1×22+0×21+1×203、二进制数与十进制数的相互转换 二进制数转换成十进制数如上所述,只要将二进制数的每一位乘上它的权然后加起来就可以求得二进制数的十进制数值。例如,二进制数101101.11换算成十进制数为:(101101.11)2 =1×25+0×24+1×23+1×22+0×21+1×20+1×2-1+1×2-2=(45.75)10 十进制数转换成二进制数 十进制数转换为二进制数的方法分两步进行。 例如,欲将十进制数175.71875转换为二进制数,其过程如下: 第一步: 175÷2=87 - 余数为 - 1 87÷2=43 - 1 43÷2=21 - 1 21÷2=10 - 1 10÷2=5 - 0 5÷2=2 - 1 2÷2=1 - 0 1÷2=0 - 1得到结果:(175)10=(10101111)2。第二步:将十进制小数0.71875转换成二进制小数,其过程如下: 0.71875×2=1.4375 - 取整数部分 - 1 0.4375×2=0.875 - 0 0.875×2=1.75 - 1 0.75×2=1.5 - 1 0.5×2=1.0 - 1 得到结果:(0.71875)10=(0.10111)2。综上所述,一个十进制整数的二进制转换方法就是“除2取余”;而一个十进制小数的二进制转换方法就是“乘2取整”。若一个十进制数既包含整数部分又包含小数部分,它的二进制转换就是将它的整数部分和小数部分用上述方法分别进行转换,最后将转换好的两部分结合在一起形成要转换的二进制数,例如, (175.71875)10=(10101111.10111)24、八进制记数法 例如,八进制数372.01,根据各位的权不同可以写成:(372.01)8=3×82+7×81+2×80+0×8-1+1×8-2将上式中各位与其权相乘而后加到一起,就可以得到八进制数372.01的十进制数为: (372.01)8=(250.015625)10这也表明了八进制数转换为十进制数的过程。十进制数转换为八进制数的方法是:对于十进制整数采用“除8取余”的方法转换为八进制整数;对于十进制小数则采用“乘8取整”的方法转换为八进制小数。例如,将十进制数194.46875转换成八进制数时,应将整数部分和小数部分分别转换,最后再合到一起就得到要转换的八进制数:194÷8=24 余数为 2 0.46875×8=3.75 整数部分 3 24÷8=3 0 0.75×8=6.0 6 3÷8=0 3 所以,(194.46875)10=(302.36)8 二进制数转换成八进制数的方法就是从小数点起,把二进制数每三位分成一组,然后写出每一组的等值八进制数,顺序排列起来就得到所要求的八进制数。例如,将二进制数11101111010.1011转换为八进制数: (011 101 111 010 . 101 100)2 (3 5 7 2 . 5 4)8 依据同样的思想,即一位八进制数用三位二进制数表示,就可以直接将八进制数转换成二进制数。例如,将八进制数712.46转换为二进制数,其过程如下: ( 7 1 2 . 4 6)8 (111 001 010 . 100 110)2 5、十六进制记数法 十六进制记数法中,09的表示与十进制相同,用A表示10、B表示11、C表示12、D表示13、E表示14、F表示15。“逢16进1”。例如,十六进制数E5D7.A3可以表示为: (E5D7.A3)16 =E×16 3+5×16 2+D×16 1+7×16 0+A×16 -1+3×16 -2 又如,将(47632.78125)10转换成十六进制数,其过程如下:整数部分: 47632÷16=2977 余数 016进制数 0 2977÷16=186 1 1 18÷16=11 10 A 11÷16=0 11 B小数部分: 0.78125×16=12.5 整数 12 C 0.5×16=8.0 8 8最后得到(47632.78125)10=(BA10.C8)16 。 由于一位十六进制数可以用四位二进制数来表示,因此二进制数与十六进制数的相互转换就比较容易。二进制数到十六进制数的转换是由小数点开始,每四位二进制数为一组,将每一组用相应的一位十六进制数来表示,即可得到正确的十六进制数,例如: (1 1101 0100 1011 0111 . 0101 1110 1010)2 (1 D 4 B 7 . 5 E A )16二、十进制数与字符的编码表示1、BCD码把十进制数转换为其等值的二进制数称之为BCD编码(如表1.1所示)。表1.1 BCD码与其它数制的对应关系十进制数 8 4 2 1 B C D 码 纯二进制数 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 2 0 0 1 0 0 0 1 0 3 0 0 1 1 0 0 1 1 4 0 1 0 0 0 1 0 0 5 0 1 0 1 0 1 0 1 6 0 1 1 0 0 1 1 0 7 0 1 1 1 0 1 1 1 8 1 0 0 0 1 0 0 0 9 1 0 0 1 1 0 0 1 10 0 0 0 1 0 0 0 0 1 0 1 0 11 0 0 0 1 0 0 0 1 1 0 1 1 12 0 0 0 1 0 0 1 0 1 1 0 0 13 0 0 0 1 0 0 1 1 1 1 0 1 14 0 0 0 1 0 1 0 0 1 1 1 0 15 0 0 0 1 0 1 0 1 1 1 1 1 根据上述说明,一个十进制数,能够很方便地用BCD码来表示。例如,十进制数859用BCD码表示为:(859)10=(1000 0101 1001)BCD 只要熟记十进制数09与BCD码的对应关系,则它们之间的相互转换是十分方便的。例如:(0110 1001 0101 . 0010 0111 1001) BCD =(695.279) 102、ASCII码 ASCII码是美国标准信息交换码的简称,现在为各国所广泛采用。 通常,ASCII码由7位二进制编码来表示,用于微处理机与它的外部设备之间进行数据交换以及通过无线或有线进行数据传送。代表上述字符或控制功能的ASCII码是由一个4位组和一个3位组构成的,形成7位二进制编码,其格式为: 4位组 01234563位组根据ASCII码的构成格式,可以很方便地从附录A中ASCII表查出每一个字符或特殊控制功能的编码。例如,大写英文字母A,从表中查出其3位组为(100)2,4位组为(0001)2,故构成字母A的ASCII编码为(1000001)2或(41)16。 三、二进制算术运算 1、二进制加法 二进制加法与十进制加法相类似,所不同的是,二进制加法中是“逢二进一”,其法则为:0+0=0; 1+0=1; 0+1=1; 1+1=0 并进位 例如,两个二进制数相加: 10110101 + 10001110 101000011 2、二进制减法 在二进制减法中,同样有如下法则: 0-0=0; 1-0=1; 1-1=0; 0-1=1 有借位当不够减时需要借位,高位的1等于下一位的2,即“借一当二”。例如,两个二进制数相减: 10110100 - 01010111 01011101 3、二进制乘法 二进制乘法与十进制乘法是一样的。但因为二进制数只由0和1构成,因此,二进制乘法更简单。其法则如下: 0×0=0; 1×0=0; 0×1=0; 1×1=1例如,二进制数1101.1与101.1相乘: 1101.1 被乘数(13.5) 10 × 101.1 乘数(5.5) 10 1101 1 11011 00000 + 11011 1001010.01 乘积 (74.25) 10 再看下面的例子:(1011)2×(1101)2 1011 被乘数(11) 10 × 1101 乘数(13) 10 1011 0000 1011 + 1011 10001111 乘积(143) 4、二进制除法二进制除法是乘法的逆运算,其方法与十进制除法是一样的,而且二进制数仅由0,1构成,做起来更简单。例如,求二进制数100111除以110的商的方法如下: 110.1 110 100111 110 111 110 110 110 0四、符号数的表示及其运算1、符号数的表示方法 表示一个带符号的二进制数有3种方法。 原码法 例如,8位二进制符号数(45) 10和(45) 10,可以按如下写出: (45) 10=( 0 0101101) 2 符号位 数值位(45) 10=( 1 0101101) 2 符号位 数值位 反码法 在计算机的早期,曾采用反码法来表示带符号的数。对于正数,其反码与其原码相同。 例如,(45) 10=(00101101) 2也就是说正数用符号位与数值凑到一起来表示。对于负数,用相应正数的原码各位取反来表示,包括将符号位取反,取反的含义就是将0变为1,将1变为0。例如,(45)10的反码表示就是将上面(45) 10的二进制数各位取反: (45) 10=(11010010) 2同样,可以写出如下几个数的反码表示,以便读者对照: (+4) 10=(00000100) 2 (-4) 10=(11111011) 2 (+7) 10=(00000111) 2 (-7) 10=(11111000) 2 (+122) 10=(01111010) 2 (-122) 10=(10000101) 2 补码法 在微处理机中,符号数是用补码(对2的补码)来表示的。用补码法表示带符号数的法则是:正数的表示方法与原码法和反码法一样;负数的表示方法为该负数的反码表示加1。例如,(+4)10的补码表示