




已阅读5页,还剩111页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成原理 主编: 石磊 教授 郑州大学信息工程学院计算机系 2 第一章 概述 第二章 计算机中的数据表示 第三章 运算方法和运算器 第四章 存储器及存储系统 第五章 指令系统 第六章 中央处理器 第七章 总线系统 第八章 输入输出系统 第九章 计算机外部设备 第十章 计算机系统及发展 目录 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 3页 第 3章 运算方法和运算器 计算机组成原理 清华大学出版社教学目标 教学重点 教学过程 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 4页 教学目标 理解和掌握数据在运算器中的基本运算方法 理解运算器的核心部件 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 5页 教学重点 运算器的核心部件 定点数和浮点数四则运算 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 6页 教学过程 点数的加减运算 点乘法运算 点除法运算 点运算器的组成和结构 点算术运算方法和浮点运算器 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 7页 计算机进行算术运算的特点 (1)所有数据都是用二进制数位形式来表示的。 (2)在计算机内部数以编码形式即机器数来表示的。 (3)机器运算用电子设备实现,电子设备规模有限,因而机器运算要解决运算方法、数据表示格式及数据长度的选取、规定等问题。 (4)用计算机进行运算时,都要把复杂的运算,简化为一系列最基本的运算才能实现。计算机可以实现的基本运算有算术运算 (加、减、乘、除等 )和逻辑运算 (与、或、异或等 )。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 8页 点数的加减运算 码加减运算规则 码加减运算规则 本的二进制加法 /减法器 法运算及其加速方法 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 9页 码加减运算 对两个数进行加减运算时,计算机的实际操作时加还是减,不仅取决于指令的操作码,还取决于两个操作数的符号。 当原码加减运算时,符号位并不参加运算,只有两数的绝对值参加运算。首先要判断参加运算的两个操作数的符号,再根据操作的要求决定进行相加还是相减运算,最后还要根据两个操作数绝对值的大小决定结果的符号,整个运算过程比较复杂。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 10页 码加减运算 在大多数计算机中,通常只设置加法器而不设置减法器,减法运算将转换为加法运算来实现。原码运算时,用 |X|+|Y|补来代替 |X|-|Y|。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 11页 码加减运算 原码加减运算规则如下: 参加运算的操作数取其绝对值。 若做加法,则两数直接相加,若做减法,则将减数先 变一次补,再进行加法运算。 运算之后,可能有两种情况: 若有进位,结果为正,即得到正确的结果。 若无进位,结果为负,则应再变一次补,才能得到正确的结果。 结果加上符号位。 通常,把运算之前的变补称为前变补,运算之后的变补称为后变补。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 12页 码加减运算 在大多数计算机中,通常只设置加法器而不设置减法器,减法运算将转换为加法运算来实现。原码运算时,用 |X|+|Y|补来代替 |X|-|Y|。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 13页 补码加法 补码加法的公式是 x补 +y补 = + 补 在模 2意义下,任意两数的补码之和等于该两数之和的补码 这是 补码加法的理论基础 ,其结论也适用于定点整数 例: x 补 y 补 x 补 y 补 + 补 所以 例: x 补 y 补 x 补 y 补 + 补 所以 算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 16页 补码减法 负数的减法运算可以转化为加法来做,它可以和常规的加法运算使用同一加法器电路,从而简化了计算机的设计 数用补码表示时,减法运算的公式为 补 x补 -y补 x补 - 2 2 例 : 已知 1 2 : , , , 例: + + x补 y补 x 补 补 补 所以 算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 19页 溢出概念与检验方法 两个正数相加 ,结果为负(即: 大于机器所能表示的最大正数 ) ,称为 上溢 。 两个负数相加 ,结果为正(即: 小于机器所能表示的最小负数 ),称为 下溢 。 运算出现溢出,结果就是错误的 例 求 。 解 : 补 补 补 补 补 两正数相加,结果为负,显然错误。 运算中出现了“ 上溢 ” 有进位 无进位 又例 求 。 解 : 补 补 补 补 补 正数相加,结果无溢出 无进位 无进位 例 求 。 解 : 补 补 补 补 补 负数相加,结果为正,显然错误。 运算中出现了“ 下溢 ” 无进位 有进位 又例 求 。 解 : 补 补 补 补 补 负数相加,结果为负,无 溢出。 有进位 有进位 进一步结论 : 当最高有效位产生进位而符号位无进位时 ,产生 上溢 ; 当最高有效位无进位而符号位有进位时 ,产生 下溢 。 产生 “ 溢出 ” 的原因 : 分析可知,当最高有效数值位的运算 进位 与符号位的运算 进位 不一致时,将产生运算 “ 溢出 ” “溢出”检测方法 为了判断 “ 溢出 ” 是否发生 ,可采用 两种 检测的方法 。 第一种方法 : 采用 双符号位 法 , 称为 “ 变形补码 ” 或“ 模 4补码 ” ,可使模 2补码所能表示的数的范围扩大一倍 第二种溢出检测方法 : 采用 “ 单符号位法 ” 。 当最高有效位产生进位而符号位无进位时 ,产生 上溢 ; 当最高有效位无进位而符号位有进位时 ,产生 下溢 。 故: 溢出逻辑表达式为 : V 中 : 进位。(显然:此逻辑关系可用异或门方便地实现) 在定点机中,当运算结果发生溢出时 ,机器通过逻 辑电路自动检查出溢出故障 ,并进行中断处理。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 26页 码加减运算规则 ( 1/4) 公式总结: X+Y补 =X补 +Y补 =X补 + 例 3X=Y= X+Y补 解: X补 =Y补 =X+Y补 = X补 +Y补 = 算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 27页 码加减运算规则 ( 2/4) 例 3X=Y= 解: X补 = 补 = = X补 + = 算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 28页 码加减运算规则 ( 3/4) 溢出及处理:补码加减运算可能溢出,为判断,采用变形补码形式 判断溢出的原则:以两位符号位表示数的符号。当两符号位不同时,溢出;两符号位相同时,无溢出。无论是否发生溢出,最高符号位代表真正的符号。 变形补码的加减法,同样是两个符号位都看作数值位参加运算,最高符号位产生的进位丢掉。 X+Y 变补 =X 变补 +Y 变补 变补 =X 变补 +变补 例 3X=Y= X+Y补 解: X变补 = Y 变补 = X+Y 变补 = X+Y补 = 算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 29页 码加减运算规则 ( 4/4) 例 3X=Y= X+Y补 解: X 变补 = Y 变补 = X+Y 变补 = 算结果的两符号位是 01,不相同,发生溢出,因第一符号位是 0,代表正数, 这种溢出为“正溢出”。 例 3X=Y= X+Y补 解: X 变补 = Y 变补 = X+Y 变补 = 果的两符号位是 10,不相同,发生溢出,因第一符号位是 1,代表负数, 所以称这种溢出为“负溢出”。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 30页 本的二进制加法 /减法器 在计算机中完成两个二进制数相加的基本加法器有半加器和全加器。半加器在完成两数相加时,不需要考虑低位进位。全加器用来完成两个二进制数相加,并且同时考虑低位的进位,即全加器完成三个一位数相加的功能。 设: 为第 i+1位产生的进位 则全加器以 、 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 31页 本的二进制加法 /减法器 图 3加器逻辑图 i i i i i+1 输 出 输 入 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 表 3加器真值表 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 32页 本的二进制加法 /减法器 全加器的表达式为: = 一位全加器内部逻辑图 B C i+1 A B C A i 算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 33页 本的二进制加法 /减法器 利用全加器可以实现两数的和或差 1、串行加法:从低位开始,每步只完成一位运算的加法。 串行加法器只需要一个全加器和一个进位触发器 计算两个 要 n+1步( 1位符号位),或n+2步( 2位符号位)运算。 高位运算只有等低位运算完成后才能进行,速度较慢 2、并行加法器:可在同一时刻完成 若采用变形补码表示一个机器数,则符号位需 2位,这时需要 n+2个加法器。 运算速度比串行进位加法器高很多,这是用足够多的硬件设备换来的。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 34页 本的二进制加法 /减法器 图 3波进位补码加法 /减法器 A A 0 1 0 1 0 溢出 控制 M=1 减 M=0 加 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 35页 法运算及其加速方法 在计算机技术发展过程中,人们提出了各种各样提高运算速度的方法: 、从计算机系统结构角度,提出了并行处理、流水线等方式; 、运算电路特别是用高速化的逻辑电路实现加法和移位功能; 、运算方法和逻辑结构的高速化。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 36页 法运算及其加速方法 1一级分组先行进位法 ( 1)相邻 4位加法器单元逻辑(第 i+开: i=i i I*,最后一项的前四个因子记为 则, 算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 37页 四位一组先行进位全加器 + + + i i 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 38页 一级分组先行进位及组间行波进位 14 1 (2 4 5 8 11 12 2 2 1 第 3组先行 进位加法器 第 2组先行 进位加法器 第 1组先行 进位加法器 第 0组先行 进位加法器 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 39页 法运算及其加速方法 2 二级分组先行进位法 仿一级分析法: + 1) + 3*(1 ) + 7* + 7*1 ) + 11* + 11*3*(1 ) 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 40页 法运算及其加速方法 图 4片 4位先行加法器构成的 16位快速进位加法器逻辑示意图 C 0 1 I+0 12 8 4 0 12 8 4 0 中组 (包括四小组 )加法器 5 10 I+2 14 15 一级先行进位 第 3组 一级先行进位 第 2组 一级先行进位 第 1组 一级先行进位 第 0组 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 41页 点乘法运算 实现乘除法运算的方案: 1、当使用乘除运算较多,速度要求高时,用硬件直接实现; 2、一般情况,配置乘除法选件; 3、对速度要求不高的机器,用软件实现。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 42页 码一位乘法 ( 1/5) 算法描述 设 X原 = iX 1Y原 = iY 1乘积 Z原 = ( 运算步骤 (1) 从乘数的最低位开始,用乘数 ,若 B 的某个二进制位为 1,则得位积 A;如为 0,则得位积 0。 (2) 的所得的位积,因为位权不同,逐次向左移位,即在空间上按一定位数错开,这样逐位进行下去,直到乘数各位都乘完为止。 (3) 把经过移位对准的各次位积相加起来即得结果。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 43页 码一位乘法 ( 2/5) 缺点 (a)将多个数一次相加,机器难以实现。一般的加法器,只能把两个输入数相加,多个位积的同时输入是无法实现的。 (b)乘积位数增长一倍,即 2n,而机器字长只有 改进 (a)把一次求和操作,变成逐步累加求部分积的操作。 (b)将求积过程中逐位按权左移位积的操作,改为位积不动,而是上次部分积右移的操作。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 44页 码一位乘法 ( 3/5) 手算方法 例如 求 A= 机器算法 若用 0 2 2 2A + 2 和 AB=求得乘积位左移位左移位左移不移位乘数被乘数0 1 0 0 1 1 1 0 02221 1 0 11121 1 0 10200 0 0 00 1 1 1 0 第三章运算方法和运算器 2016年 3月 14日 第 45页 码一位乘法 ( 4/5) 例 3已知 X=Y= X Y原 解: X原 =Y原 =X| = |Y| = 原码一位乘法运算规则,求 X Y原 的数值部分。 |X| |Y| = 而 1 0 =1 最后求得 X Y原 = 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 46页 例 3 位乘法运算过程 +) 0. 0 0 0 0 +) 0. 0 0 0 0 +) 0. 1 0 1 1 +) 0. 1 0 1 1 0. 0 0 0 1 0. 0 1 1 0 0. 1 1 0 0 0. 0 0 1 0 0. 0 0 1 0 0. 0 1 0 1 0. 0 1 0 1 0. 1 0 1 1 0. 0 0 0 0 右移一位得部分积 数同时右移一位 右移一位得部分积 数同时右移一位 右移一位得部分积 数同时右移一位 右移一位得部分积 数同时右移一位 ,加 |X| ,加 0 ,加 0 ,加 |X| 设部分积初值 操作说明 乘 数 部 分 积 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 低 位 积 高 位 积 例 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 47页 原码一位乘法逻辑结构原理图 1 S R 分积 Z 乘数 Y 计数器 i Y/2Y / 2Z 乘法启动 n 1 s 1 , 2 被乘数 X 加数器 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 48页 码一位乘法 ( 5/5) 工作原理 ( I) 乘法开始时,“启动”信号使控制触发器 1”,于是开启时序脉冲 T。 ( 当乘数寄存器 1”时,部分积 在加法器中相加,其结果输出至 ( 旦打入控制脉冲 制信号 此同时, 计数器 ( 计数器 i=数器的溢出信号使触发器 0”,关闭时序脉冲 T, 乘法宣告结束。 若将 1连接起来,乘法结束时乘积的高 0,低 1, 由于移位而全部丢失。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 49页 码一位乘法 X 补 与真值的关系: 设 X补 = n,则有设 X补 = 2X 证明:当 X补 = 2X=X 当 X补 = 2+X=2X(根据定义) 由此可得: X =X补 2 - 0 n 即 ,真值 X=X补 ; ,真值 X= n 故可推出,当 ( n) =X( 0 n) 以得到: X Y补 = X补 ( n) + 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 50页 码一位乘法 校正法的思想: 先将任意两个补码 X补 、 Y补 看作是一般的二进制数,仍按原码运算规则求得 X补 Y补 ,然后对其结果加以校正,而获得 X Y补 之值。 当乘数 原码乘法相似,只是在部分积相加、右移操作时, 按补码性质进行;当乘数为负时,先不考虑乘数的符号,将乘数补码的数值部分与被乘数相乘;最后进行校正操作,即加上 。 设 Y补 = n ,我们用一个公式表示补码校正法的算法规则: X Y补 = X补 ( n) + 时, X Y补 = X补 ( n) 当 时, X Y补 = X补 ( n) + 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 51页 码一位乘法 布斯夫妇提出,又称 对校正法的改进,不论乘数为正为负,符号位都参加运算,其运算规则统一。 假设 X、 X补 和 Y 补 = n,都是任意符号表示的数。求新的部分积,取决于两个比较位的数位,即 布斯乘法规则: ( 1)设置附加位 =0,部分积初值 补 =0。 ( 2)当 n0时,判 ,若 =00或 11,即相邻位相同时,上次部分积右移一位,直接得部分积。 若 =01,上次部分积加 X补 ,右移一位得新部分积 若 =10,上次部分积加 ,右移一位得新部分积 ( 3)当 n=0时,判 (对应于 运算规则同( 1)只是不移位。即在运算的最后一步,乘积不再右移。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 52页 码一位乘法 例 3X补 =Y补 =X Y 补 解: 补 = X Y 补 = 算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 53页 表 3 3+) 1 1 0 1 1 1 +) 0 0 1 0 0 1 +) 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 右移一位得部分积 右移一位得 右移一位得 =10, + =11,右移一位得 =01, +X补 =10, + =11,最后一步不移位 设部分积初值 ,附加位 =0 操作说明 乘 数 附加位 部 分 积 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 低 位 积 高 位 积 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 54页 码两位乘法 为了提高乘法的执行速度 , 可以选用两位乘法的方案 。 所谓两位乘法 , 就是每次处理乘数中的两位 , 从而使乘法的速度提高了一倍 。 为了简单起见 , 这里只介绍补码两位乘法 。 可以根据前面介绍的 即把补码两位乘理解为将 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 55页 假定上次乘法的部分积表示为 Z补,本次的部分积表示为 Z 补 ,则有: Z补 =2Z补 +( - X补 Z 补 =2 Z补 +( X补 =22Z补 +( - X补 +( X补 =2Z补 +( - X补 +2( X补 =2Z补 +( + 2X补 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 56页 判断位 操 作 说 明 0 0 0 原部分积 +0,右移两位 0 0 1 原部分积 +X补 ,右移两位 0 1 0 原部分积 +X补 ,右移两位 0 1 1 原部分积 +2X补 ,右移两位 1 0 0 原部分积 +2 ,右移两位 1 0 1 原部分积 + ,右移两位 1 1 0 原部分积 + ,右移两位 1 1 1 原部分积 +0,右移两位 表 3补码两位乘法操作 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 57页 被乘数和部分积取 3个符号位,当乘数的数值位 数取 2个符号位,共需做 n/2+1次累加, n/2次移位(最后一次不移位);当 数只需 1个符号位,共需 (n+1)/2次累加和移位,但最后一次仅移一位。 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 58页 例 3知 X=Y= X Y。 解: X补 =B, Y补= , 0A 。 2X补 =2 = 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 59页 A C 附加位 说明 0 0 0 . 0 0 0 0 0 0 0 + 2 - X 补1 1 1 . 0 0 1 1 0 1 0 1 1 1 . 0 0 1 1 0 1 0 2 1 1 1 . 1 1 0 0 1 1 0 + 0 0 0 0 . 0 0 0 0 0 0 0 1 1 1 . 1 1 0 0 1 1 0 2 1 1 1 . 1 1 1 1 0 0 1 + X 补0 0 0 . 0 1 1 0 0 1 1 0 0 0 . 0 1 0 1 1 0 0 2 0 0 0 . 0 0 0 1 0 1 1 + - X 补1 1 1 . 1 0 0 1 1 0 1 1 1 1 . 1 0 1 1 0 0 0 1 1 1 1 . 1 1 0 1 1 0 0 1 . 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 1 0 0 , + 2 - X 补 部分积右移两位 1 1 1 , + 0 部分积右移两位 0 0 1 , + X 补 部分积右移两位 1 1 0 , + - X 补 最后一次右移一位 所以 X Y补 = Y=算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 60页 至此,介绍了原码、补码一位乘法和补码两位乘法,对于初学者来说,往往会在运算次数、符号位取多少位、符号位是否参加运算等问题上出错,为了帮助大家记忆,特将这 3种乘法运算的上述问题统一列于表3 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 61页 乘法类型 符号位 累加次数 移位 参与运算 部分积 乘数 方向 次数 每次位数 原码一位乘法 否 2 0 n 右 n 1 补码一位乘法 是 2 1 n+1 右 n 1 补码两位乘法 是 3 2( n/2+1 右 n/2 2 1( (n+1)/2 右 (n+1)/2 2(最后一次移 1位 ) 表 3乘法运算总结 计算机组成原理 第三章运算方法和运算器 2016年 3月 14日 第 62页 列乘法器 为了进一步提高乘法运算的速度,可采用高速乘法模块组成的阵列乘法器。设有两个不带符号的二进制整数 102102 101010)( 22)( 第三章运算方法和运算器 2016年 3月 14日 第 63页 例 3 例如: m=n=5时, P 9 P 8 P 7 P 6 P 5 P 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论