- 1、本文档共132页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[例28]设有浮点数x=2-5×0.0110011,y=23×(-0.1110010),求[x×y]浮。 要求:阶码用4位移码表示,尾数(含符号位)用8位补码表示,用补码完成尾数乘法运算,运算结果尾数保留高8位(含符号位),并用尾数低位字长值处理舍入操作。 [解] 尾数补码采用单符号位: [Mx]补=0.0110011, [My]补=1.0001110 阶码移码采用双符号位: [Ex]移=00 011,[Ey]移=01 011, [Ey]补=00 011 x 和y 的浮点数形式: [x]浮=00 011, 0.0110011, [y]浮=01 011, 1.0001110 (1) 求阶码和 [Ex+Ey]移=[Ex]移+[Ey]补=00 011+00 011 =00 110 (真值为-2) (2) 尾数补码相乘[Mx]补×[My]补=[0.0110011]补×[1.0001110]补 =[1.1010010 1001010]补 (3) 规格化处理 乘积的尾数不符合规格化要求,需要左规 尾数左移,变为 1.0100101 0010100 阶码减1,变为00 101(真值为-3) (4) 舍入处理 按舍入规则,舍去低位字长,尾数为1.0100101 最终结果: [x×y]浮=00 101,1.0100101 其真值为: x×y=2-3×(-0.1011011) 浮点运算器 计算机实现浮点运算 软件实现:利用定点运算部件,根据算法流程图,编写浮点四则运算子程序供用户调用 低档机,结构简单,速度慢。 设置可选浮点协处理器 80287和80387,速度较快。 将协处理器与CPU集成 80486以后的CPU。 采用浮点流水运算部件,形成流水作业。 进一步加快浮点运算的速度。 奔腾以后的CPU。 浮点运算器80X87 美国Intel公司生产的专用浮点数运算的处理器,配合80X86CPU进行工作,所以又称为协处理器。 80X87与主CPU的并行工作 80X87有自己的浮点运算指令,但不能读写主存,真正的读写主存的工作是由主CPU执行。 主CPU从主存读取浮点运算指令,送80X87,由80X87译码并执行。 80X87运算期间,主CPU取下一条其他指令予以执行,因而实现了并行工作。 如80X87执行过程中,主CPU又送来了一条浮点指令,则80X87给出“忙”信号。 当80X87完成浮点运算,取消“忙” 信号,主CPU才发送下一条浮点运算指令。 80X87可处理多种数据类型 整数、浮点数、压缩十进制数等。 80X87的内部结构 第六次课+习题 * * * * * * * * * * * * * * * * * * * * * 可控加/减法(CAS)单元 CAS Ai Bi P P Ci Ci+1 Si Bi 四个输入端 Ai、Bi、Ci P:控制端输入 四个输出端 Si、Ci+1 Bi:除数右移 P :控制端输出 P=0:CAS作加法 Si=Ai⊕Bi ⊕Ci Ci+1=AiBi + (Ai ⊕Bi)Ci P=1:CAS作减法 Si=Ai⊕Bi ⊕Ci ( Bi=Bi⊕1) Ci+1=AiCi + (Ai ⊕Ci)Bi 不恢复余数的阵列除法器 不恢复余数的除法——加减交替法 当前行应执行加法还是减法,取决于上一行余数的符号与被除数的符号是否一致: 余数与被除数异号(余数为负),商“0”,除数右移,与原余数相加,得新余数; 余数与被除数同号(余数为正),商“1”,除数右移,与原余数相减,得新余数。 只介绍被除数、除数均为正数的情况。 阵列除法器 逻辑结构图 被除数 x=0.x1x2x3x4x5x6 (双倍长) 除数 y=0.y1y2y3 (XY) 商数 q=0.q1q2q3 余数 r=0.00r3r4r5r6 字长 n+1=4 第一行做减法(P=1),由于XY,余数0,商的个位q0上0。 第二行做加法,余数加上右移一位后的Y。 由余数的正负决定第二位商q1是1或0。 由q1控制第三行做加法或减法,依次类推。 [例20] x=0.101001, y=0.111, 求x÷y。 [解:] [-y]补=1.001 被除数x 0.1 0 1 0 0 1 被除数x 减y 1.0 0 1 ?????(-0.111) 第一步减除数y ???????? 1.1 1 0 0 0 1 <0 q
文档评论(0)