《计算机原理》由会员分享,可在线阅读,更多相关《计算机原理(141页珍藏版)》请在金锄头文库上搜索。
1、计算机组成原理,教学目的: 本课程主要讲授计算机硬件系统的工作原理,使学员对计算机主要硬件的结构及工作机理有一个比较系统的了解。,教材及参考资料(适合于信息管理与信息系统专业):1、计算机组成原理教程(第4版). 张基温. 清华大学出版社,20042、计算机原理与系统结构(第2版). 侯炳辉. 清华大学出版社, 2002 3、计算机组成与结构. 何友鸣. 清华大学出版社,2007,课程的重点,第3章 输入/输出及其控制第5章 处理器,课程要求及说明,1、课堂学习2、及时反馈意见3、闭卷考试,总 目 录,第1章 计算机系统概述第2章 存储系统第3章 输入/输出及其控制第4章 总线系统第5章 处理
2、器第6章 计算机系统的发展,第1章 计算机系统概述,1.1 计算工具及其进步1.2 二进制编码1.3 电子数字计算机工作原理1.4 现代计算机系统结构与发展,1.1 计算工具及其进步,1.1.1 从穴石记事到算盘 手动计算工具1.1.2 从Pascal加法器到ENIAC内动力计算工具1.1.3 提花机-Babbage分析机 实现自动计算,穴石记事-算盘:手动计算工具,石子记事,游珠算盘与算盘,穴石记事-算盘:手动计算工具,算筹,穴石记事-算盘:手动计算工具(西方),计算尺,两款手摇计算机,Pascal加法器-ENIAC:内动力计算工具,B.Pascal及其制造的计算机(1642),Leibni
3、tz及其制造的乘法器(1694),法国著名的数学家、物理学家、哲学家和散文家。没有受过正规的学校教育。1642年在帮助父亲做税务计算工作时,发明了加法器(计算器)。发现帕斯卡定律39岁去世。为了纪念他:压强单位:帕编程语言:pascal (1960s),德国哲学家、数学家创建微积分制造乘法器:基本原理继承于 帕斯卡,采用十进制。提出二进制,动力来源:手摇、齿轮。类似于手表和能跑动的机械类玩具,电动机械式计算机(1930),Zuse的继电器式计算机(1938),第1台真空管计算机ABC(1942),ENIAC(1946),Atanasoff-Berry Computer,动力来源:电力。 计算过
4、程需要人工控制:数据需要从面板上输入、 不同的运算需要改接线路。,提花机-Babbage分析机:实现自动计算,提花机,天工开物记载的明代提花机,顶部的花楼控制经线起落(人工控制。用于引出 JACQUARD提花机),JACQUARD提花机和穿孔卡片(1801),差分机(1822)和分析机(1834),打孔的地方编织针可以通过,从而控制经线起落。自动控制。不是计算机。,英国学者巴贝奇从法国JACQUARD提花机中得到灵感,制作差分机和分析机。提高乘法速度和改进对数表等数学用表的精确度。,Babbage的设计已经初步具备现代计算机的基本结构:存储器(仓库):齿轮阵列运算器(作坊):齿轮间的啮合、旋转
5、、平移控制器(穿孔卡片及其阅读设备):有无孔决定下一步的操作输入/输出设备(卡片穿孔设备、印刷厂),提花机-Babbage分析机:实现自动计算,H.Aiken和Mark计算机(1944),John Von Neumann和IAS电子计算机EDVAC(1952),艾肯博士根据巴贝奇的设想,在IBM资助下研制而成。第一台实际制成的全自动电脑,一旦开始运算,无需人工干预。现代电脑的开端。IBM从此涉足计算机。,美籍匈牙利人。终年54岁。美国数学会主席。量子力学的数学基础 。提出全新的存储程序自动计算机EDVAC方案。诺依曼研究报告电子计算装置逻辑结构初探,体现了诺依曼结构。,(1)电子数字计算机要采
6、用二进制(数据、指令均采用二进制)(2)自动计算机要采用程序存储控制工作方式,Neumann体系的2个要点,(1)针对某项计算,事先为其设计一个程序(2)用输入设备将程序存入到存储器中(3)运算开始时,系统自动将程序中的第一条指令送入控制器中 进行分析,根据分析结果来发出控制信号。在控制信号 的控制下,相应的部件进行工作,从而完成规定的操作(4)自动取下一条指令并执行(5)计算过程中需要输出时,则安排相应的指令进行输出,Neumann体系计算机的工作过程:,运算器、控制器、存储器、输入设备、输出设备,Neumann体系计算机组成部分,1.2 二进制编码,1.2.1 字与字节 1.2.2 数值数
7、据的0、1编码1.2.3 字符数据的0、1编码1.2.4 图像的0、1编码1.2.5 声音的0、1编码1.2.6 指令的0、1编码与计算机程序设计语言1.2.7 数据传输中的差错检验,一只开关只有“开”和“关”两种状态。这两种状态可以用来表示“0”和“1”。计算机工作中所需要的一切数据信息,都可以用开关状态的组合表示的,这种组合称为二进制编码或0、1编码。,1.2.1 字与字节,位:bit,一个二进制数据字:计算机中最小的有意义的数据例如一个数据、一条指令字的bit个数称为字长不同的机器,字长可能不同:8位机、16位机、32位机字节:8个bit算作一个字节可以作为处理单位也可以作为存储单位,1
8、.2.2 数值数据的0、1编码,1、十进制与二进制 整数10-2: 除2取余,直到0,连续“除2取余”,0 1 3 7 14 29,结束 1 1 1 0 1,十进制余数序列即对应的二进制数,所以 29D = 11101B,1.2.2 数值数据的0、1编码,1、十进制与二进制 小数10-2: 乘2取整,直到0,小数部分连续“乘2取整”,0.375,0.75,1.50,1.00,结束,0.,0,1,1,0.375D=0.011B,既有整数部分又有小数部分的数,可按上述规则分别转换。,2. 二进制运算法则 加法:逢2进1减法:借1当2 乘法与除法与十进制的乘除法类似,3. 其它进制数 八进制: 10
9、1 101 110.111 1B556.74O Octal 十六进制: 10110 1110.1111B16E.FH Hex二-十进制(BCD):二进制编码形式的十进制数,即用4位二进 制数来表示一位十进制数。压缩的BCD码。 常用编码方法:8421码、格雷码、余3码,3 5 7 9 0011 0101 0111 1001 所以 3579D 0011 0101 0111 1001 BCD,用8421BCD方式计算81+211000 0001+0010 0001=1010 0010=(1010+0110)(0010)(加6修正)=0001 0000 0010=10210,用8421BCD方式计算
10、67+340110 0111+0011 0100=1001 1011=1001 (1011+0110)=1001+1(0001)(加6修正)=1010 0001=(1010+0110) 0001=1 0000 0001=10110,相对于压缩的BCD码,把用8位二进制数表示的一位十进制数的编码称为非压缩的BCD码,这时高4位无意义,低4位是一个BCD码。数字的ASCII码中的高4位是0011(3),低4位正好是一个BCD码。所以,数字的ASCII码也是一种非压缩的BCD码。,4. 机器数数值部分和符号部分均用0、1表示最高位为0,表示正数,如+1011表示为01011最高位为1,表示负数,如-
11、1011表示为11011一个数在机器内的表示形式称为机器数,如11011这个数本身的值称为该机器数的真值, 如-1011,直接用一位用0、1码表示正、负,而数值部分不变,在运算时带来一些新的问题: (1) 两个正数相加时,符号位可以同时相加:0 + 00,即和仍然为正数。没问题 (2) 一个正数与一个负数相加,和的符号位不一定是两符号位直接运算的值:0 + 11。可能有问题 (3) 两个负数相加时,由于1 + 110。有问题负数的符号位与其数值部分一道参加运算,可能出问题。必须利用单独的线路确定和的符号位。导致计算机的结构复杂化。为了解决机器内负数的符号位参加运算的问题,引入了反码和补码两种机
12、器数形式,而把前文所述的直接形式称为原码。,(1)反码 正数的反码和原码相同,即X原X反 负数的反码为其原码的数值部分的各位变反 X X原 X反 +1101 01101 01101 -1101 11101 10010 取反,反码运算要注意3个问题: 反码运算时,其符号位与数值一起参加运算。 反码的符号位相加后,如果有进位出现,则要把它 送回到最低位去相加,即循环进位。 反码运算有如右性质:X反 + Y反X + Y反。,例1.11 已知: X0.1101 Y-0.0001 求: X + Y? 解: X反0.1101 正数的反码与原码相同 + Y反1.1110 10.1011 +循环进位 1 X
13、+ Y反0.1100 所以 X + Y0.1100,例 1.12 已知:X-0.1101 Y-0.0001 求: X + Y ? 解: X反1.0010 + Y反1.1110 11.0000 +循环进位 1 X + Y反1.0001 所以 X + Y -0.1110,(2)补码正数的补码和原码相同:X原X补负数的补码为其反码的末位加1,X X原 X反 X补 +1101 01101 01101 01101 -1101 11101 10010 10011 取反 补1 这种求负数的补码的方法,在逻辑电路中实现起来比较很容易。 不论对正数,还是对负数,反码与补码具有下列相似的性质: X反反X原 X补补X原,变反 X反反 X X原 变反 X反 加1 X补 变反 X补反 加1 X补补+ 1101 01101 01101 01101 01101 01101 -1101 11101 10010 10011 11100 11101 采用补码运算也要注意3个问题 补码运算时,其符号位也要与数值部分一样参加运算。 符号运算后如有进位出现,则把这个进位舍去不要。 补码运算有如右性质:X补 + Y补X + Y补。,