- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 运算方法和运算器 4.4 定点运算器的组成与结构 一、定点运算器的组成 设计定点运算器,如何确定各部件的功能和组织方式是关键,这取决于以下几个方面: 指令系统 机器字长 机器数及其运算原理 体系结构: 二、定点运算器的内部总线结构与通路 1、单总线结构 单总线运算器的结构形式1 单总线运算器的结构形式2 2、双总线结构 双总线运算器的结构形式1 双总线运算器的结构形式2 3、三总线结构 4.5 浮点运算及运算器 一、浮点加减运算 假设两个浮点数X和Y: 二、浮点乘除运算 1、浮点数乘法运算 假设两个浮点数X和Y,它们的值为: 浮点数的乘法运算五个步骤: (1)0操作数检查 当有一个乘数为0,则积就为0,无需下列操作。 (2)阶码相加 阶码相加可以采用补码或者移码的定点整数加法,同时对相加结果判溢,一旦发生正溢出,则需报告溢出,若发生负溢出,则将结果置为机器零。 (3)尾数相乘 尾数相乘可以选择任何一种定点机器数(小数)的乘法算法来实现。 (4)结果规格化 (5)舍入处理 尾数相乘的结果长度是尾数长度的两倍,若要写回其规格化浮点数形式,则必须对低位舍入,方法同加减运算。 2、浮点数除法运算 假设两个浮点数X和Y,它们的值为 : 浮点数的除法运算五个步骤: (1)0操作数检查 当除数为0,则报告除法出错,或者结果(商)无穷大;当被除数为0,则商为0。 (2)阶码相减 同乘法类似,阶码相减的结果也可能溢出,若发生正溢出,则需报告浮点数溢出,若发生负溢出,则将结果置为机器零。 (3)尾数相除 尾数相除可以选择任何一种定点机器数(小数)的除法算法来实现。 (4)结果规格化 (5)舍入处理 三、浮点运算器 本 章 小 结 定点机器数的加减法运算通常通过补码来实现 补码的加减运算规则使得计算机中的减法转化为加法来运算,方便了硬件设计。 定点机器数的乘法运算 乘法运算 原码一位乘法 原码两位乘法 补码Booth乘法 乘法器件可以采用基于上述串行乘法算法的乘法器,也可以采用高速的阵列乘法器。 定点机器数的除法运算 除法运算 原码恢复余数除法 原码加减交替法 除法的硬件实现中,陈列除法器大大地提高除法运算的速度。 浮点数的运算也均由定点数的运算复合而成。浮点运算器由阶码运算部件和尾数运算部件两部分构成。 本章重点为定点数和浮点数的运算方法 * * 浮点数的加减运算五个步骤 : (1)0操作数检查 (2)对阶 对阶的过程是:首先求阶差ΔE=EX-EY,若ΔE=0,则EX=EY,无需下面的对阶操作;若ΔE≠0,则EX≠EY,要进行对阶操作。 若ΔE0,则EXEY,MY每右移一位,EY+1,直至EY=EX。若ΔE0,则EXEY,MX每右移一位,EX+1,直至EX=EY。 可见,对阶的原则是小阶对向大阶。 (3)尾数相加减 (4)结果规格化 尾数运算的结果可能出现两种非规格化情况: A、一种是尾数溢出,此时,需要右规,即尾数右移一位,阶码加1,注意只需右规一位即可; B、另一种是尾数的绝对值小于2-1,则需要左规,即尾数左移一位,阶码减1,左规可能多次,直到尾数变为规格化形式。 (5)舍入 计算机中舍入的方法很多,常见的有截断法、0舍1入法、末位恒置1法等。 浮点加减运算流程 例如:一浮点数表示格式为:12位浮点数,阶码4位,包含1位阶符,尾数8位,包含1位数符,用补码表示,阶码在前,尾数(包括数符)在后,已知: X=(-0.1001011)×2001 Y=0.1100101×2-010 求Z=X+Y。 解:按照浮点数的格式分别写出它们的表示形式,为计算方便,阶码和尾数均采用双符号位: [X]浮 = 00,001 11.0110101 [Y]浮 = 11,110 00.1100101 (1)对阶 ΔE=EX-EY=[EX]补+[-EY]补 = 00,001+00,010 = 00,011 ΔE=30,则EY,将MY右移3位,EY加3: [Y]浮 = 00,010 00.0001100 (101) (2)尾数相加 [MZ]补 = 11.1000001(101) (3)结果规格化 左规一位,无溢出: [MZ]补 = 11.0000011(01) [EZ]补 = 00,001 + 11,111= 00,000 (4)舍入 按照0舍1入法,尾数多余位舍去,结果为: [Z]浮 = 0,000 1.0000011 浮点数乘法运算流程 例如:一浮点数表示格式为:10位浮点数,阶码4位,包含1位阶符,用移码表示,尾数6位,包含1位数符,用补码表示,阶码在前,尾数(包括数符)在后,已知: X=(-0.11001)×2011 Y=0.10011×2-
文档评论(0)