计算机组成原理(第二版) 第7章 运算方法和运算器.ppt

计算机组成原理(第二版) 第7章 运算方法和运算器.ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 运算方法和运算器 重点内容: 定点算术运算; 浮点算术运算; 逻辑运算; 算术/逻辑单元(ALU)。 7.1 定点加减法运算 要进行加减法运算首先面临的一个问题就是编码的选择问题,是选择原码还是补码? 用原码进行加减运算时,数值部分和符号部分要分别处理,操作不方便。 计算机中广泛采用补码进行定点加减运算。 符号同数值一同运算,一次运算同时获得结果的符号和数值; 使用补码可使减法运算变为加法运算,运算器里只需要一个加法器就可以了。 7.1.1 补码加法 负数用补码表示后,就可以和正数一样来处理,运算器里只需要一个加法器,不必为了负数的加法运算,再配一个减法器。 补码加法运算前将X和Y分别用补码形式表示,运算后得到X?Y的补码形式,即由[X]补、[Y]补求[X ?Y]补。 补码加法公式: [X ?Y]补 ? [X]补 ? [Y]补 7.1 定点加减法运算 4位定点整数补码加法运算的具体实例 7.1.2 补码减法 补码减法运算前X和Y分别用补码形式表示,运算后得到X?Y的补码形式,即由[X]补、[Y]补求[X ? Y]补。 补码减法公式: [X ? Y]补 ? [X]补? [Y]补 7.1.2 补码减法 4位定点整数补码减法运算的具体实例 7.1 定点加减法运算 补码加减法规则 参加运算的操作数用补码表示。 补码的符号位与数值位同时进行加运算。 若做加,则两数补码直接相加;若做减,将减数补码连同符号位一起按位取反,末位加1,然后再与被减数相加。 运算结果即为和/差的补码。 7.1.3 溢出 加减法运算溢出 7.1.3 溢出 溢出是指运算结果超过了机器数能表示的范围。 两个正数相加,结果大于机器所能表示的最大正数,称为上溢。 两个负数相加,结果小于机器所能表示的最小负数,称为下溢。 在图7-3中,第一个算式发生了上溢,而第二个算式发生了下溢。 7.1.3 溢出 溢出检测方法一 双符号位法(“变形补码”或“模4补码” ) 任何正数,两个符号位都是0,任何负数,两个符号位都是1,两个数相加后,其结果的符号位出现01或10两种组合时,表示发生溢出。 7.1.3 溢出 溢出检测方法二 单符号位法 当最高有效位产生进位而符号位无进位时,产生上溢 当最高有效位无进位而符号位有进位时,产生下溢 溢出逻辑表达式为 其中 为符号位产生的进位 为最高有效位产生的进位 此逻辑表达式也可用异或门实现 7.1.4 基本的加/减法器 7.2 定点乘法运算 计算机中乘除法的主要实现方式有: ① 软件实现,指令系统中无乘除法指令。 经常用在乘法使用很少的计算机中,如一些功能简单的单片机。优点是无需额外硬件支持,缺点是乘除法运算速度慢。 ② 在加/减法器的基础上,增加左移、右移位及其他一些逻辑线路实现乘法,指令系统中设置乘除法指令。 微型或小型计算机普遍采用这种方式,因为只需增加很少的硬件即可实现较为快速的乘除法。 ③ 设置专用的高速阵列乘除运算器,指令系统中设置乘除法指令。 大、中型计算机系统采用,能获得最佳的运算性能,但同时造价也是最高的。 7.2.1 原码乘法 无符号数乘法的手工运算方法 ① 乘法涉及部分积的生成,乘数的每一位对应一个部分积。然后,部分积相加得到最后的乘积 ② 部分积是容易确定的。当乘数的位是0,其部分积也是0;当乘数的位是1,其部分积是被乘数 ③ 部分积通过求和而得到最后乘积。为此,后面的部分积总要比它前面的部分积左移一个位置 ④ 两个n位二进制整数的乘法导致其积为2n位长 7.2.1 原码乘法 原码一位乘法 将被乘数左移一位相加变为部分积与被乘数相加后右移一位,将k个部分积同时相加转换为k次“累加与右移”,即每一步只求一位乘数所对应的新部分积,并与原部分积做一次累加,然后右移一次,这样操作重复k次,得到最后的乘积。 7.2.1 原码乘法 7.2.1 原码乘法 7.2.1 原码乘法 【例7-1】X=2(0010),Y=3(0011),用原码一位乘法方法求X?Y。 7.2.2 补码一位乘 布思(Booth)算法 乘数和被乘数分别放入Q和M寄存器内。这里也有一个1位寄存器,逻辑上位于Q寄存器最低位Q0的右边,并命名为Q-1。乘法的结果将出现在A和Q寄存器中。 A和Q-1初始化为0。与前述相同,控制逻辑也是每次扫描乘数的一位。只不过检查某一位时,它右边的一位也同时被检查。 7.2.2 补码一位乘 布思(Booth)算法(续) 若两位相同(1-1或0-0),则A、Q和Q-1寄存器的所有位向右移一位。若两位不同,根据两位是0-1或1-0,则被乘数被加到A寄存器或由A寄存器减去,加减之后再右移。 无论哪种情况,右移是这样进行的:A的最

文档评论(0)

时间加速器 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档