第二章 运算方法和运算器06浮点运算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章 运算方法和运算器
2.6 浮点运算方法和浮点运算器
2.6.1 浮点加法、减法运算 2.6.2 浮点乘法、除法运算 2.6.3 浮点运算流水线 2.6.4 浮点运算器实例
2.6.1 浮点加法、减法运算
2.6.1 浮点加法、减法运算
2.6.1 浮点加法、减法运算
2.6.1 浮点加法、减法运算
2.6.2 浮点乘法和除法运算
移码采用双符号位,为了对溢出进行判 断 01 为正 00 为负 10 上溢 11 下溢

x=+011,y=+110,求[x+y]移 和 [x-y]移,并判断是否溢出。
[x]移=01 011, [y]补=00 110, [-y]补=11 010 [x+y]移=[x]移+[y]补=10 001, 结果上溢。 [x-y]移=[x]移+[-y]补=00 101, 结果正确,为-3。
◦ CPU之内的浮点运算器(486DX以上)
浮点数有时候也不可靠


1996年6月4日,欧洲航天局发射 的一架未载人阿丽亚娜5号 (Ariane 5)火箭 在发射升空40秒钟后发生了爆炸 这架造价70亿美元的火箭项目是 10年研发后的首次发射 损毁的火箭和货仓就价值5亿美 元。 事故调查委员会两个周后给出了 爆炸的起因,声称是惯性参考系 统的一个软件错误引发的。

流水线浮点运算器
A=a×2P, B=b×2q 在4级流水线加法器中实现上述浮点 加法时,分为以下操作: (1) 求阶差 (2) 对阶 (3) 相加 (4) 规格化
2.6.4浮点运算器实例

浮点运算器实例
◦ CPU之外的浮点运算器(数学协处理器)如80287
完成浮点运算功能,不能单用。 可以和80386或80286异步并行工作。 高性能的80位字长的内部结构。有8个80位字长以堆 栈方式管理的寄存器组。 浮点数格式完全符合IEEE标准。
Baidu Nhomakorabea
2.6.1 浮点加法、减法运算
2、浮点运算步骤如下:
1. 0 操作数的检查,看有无简化操作的 可能; 2. 比较阶码大小并完成对阶(小阶向 大阶对齐); 3. 尾数进行加或减运算; 4. 结果规格化并进行舍入处理,看是 否溢出
2.6.1 浮点加法、减法运算
2.6.1 浮点加法、减法运算
[例28] 设x=22×0.11011011,y=24×0.10101100
2.6.2 浮点乘法和除法运算

实现的逻辑框图
C A M
阶码加法器
尾数相加以 及控制线路
C
B
从造纸术说起

采集原料
从造纸术说起
从造纸术说起

采集原料
从造纸术说起
从造纸术说起
从造纸术说起
从造纸术说起
从造纸术说起
从造纸术说起
从造纸术说起
从造纸术说起-10道工序


浮点数的阶码运算(移码的运算规则) [X]移+[Y]移=2n+[X+Y]移
[ x + y ]移 = [ x ]移 + [ y ]移 + 2 n = [ x ]移 + [ y ]补 = [ y ]移 + [ x ]补 (mod 2 n +1 )
不用深究
[ x − y ]移 = [ x ]移 + [ − y ]补 = [ − y ]移 + [ x ]补 (mod 2 n +1 )
2.6.1 浮点加法、减法运算
课堂练习:x=0.1101*201 y=-0.1010*211 尾数和阶符都采用补码表示,都采用双 符号位表示法。 求x+y

2.6.1 浮点加法、减法运算
[x]浮=0001,00.1101 [y]浮=0011,11.0110 阶差=1110 即为-2 Mx应当右移2位, [x]浮=0011,00.0011(01) 尾数和为11.1001(01) 左规11.0010(10),阶码减1为0010 舍入(就近舍入)11.0011 丢弃10 x+y=-0.1101*210
流水线原理
设过程段 Si所需的时间为τi,缓冲寄存器的 延时为τl,线性流水线的时钟周期定义为 τ=max{τi}+τl=τm+τl 流水线处理的频率为 f=1/τ。
流水线原理
一个具有k 级过程段的流水线处理 n 个任务需 要的时钟周期数为Tk=k+(n-1), 所需要的时间为: T=Tk × τ 而同时,顺序完成的时间为:T=n×k×τ k级线性流水线的加速比: Ck = TL = n·k Tk k+(n-1)
2.6.1 浮点加法、减法运算
这是什么情况,为什么?
2.6.1 浮点加法、减法运算
2.6.1 浮点加法、减法运算
2.6.1 浮点加法、减法运算
1、浮点加减运算
设有两个浮点数x和y,它们分别为 x=2Ex·Mx y=2Ey·My 其中Ex和Ey分别为数x和y的阶码,Mx 和My为数x和y的尾数。两浮点数进行加法 和减法的运算规则是 x±y=(Mx2Ex-Ey±My)2Ey, 设Ex<=Ey
1、0操作数检查(非0) 2、对阶:阶码对齐后才能加减。规则是阶码小的向 阶码大的数对齐;
若△E=0,表示两数阶码相等,即Ex=Ey; 若△E>0,表示Ex>Ey; 若△E<0,表示Ex>Ey。 当Ex≠Ey 时,要通过尾数的移动以改变Ex或Ey, 使之相等。
2.6.1 浮点加法、减法运算

本章小结
数的真值变成机器码时有四种表示方法:原码表 示法,反码表示法,补码表示法,移码表示法。 其中移码主要用于表示浮点数的阶码E,以利于 比较两个指数的大小和对阶操作。 字符信息属于符号数据,是处理非数值领域的问 题。国际上采用的字符系统是七单位的ASCII码。 直接使用西文标准键盘输入汉字,进行处理,并 显示打印汉字,是一项重大成就。为此要解决汉 字的输入编码、汉字内码、字模码等三种不同用 途的编码。

本章小结

为运算器构造的简单性,运算方法中算术运算通 常采用补码加、减法,原码乘除法或补码乘除法。 为了运算器的高速性和控制的简单性,采用了先 行进位、阵列乘除法、流水线等并行技术措施。 运算方法和运算器是本章的重点。 定点运算器和浮点运算器的结构复杂程度有所不 同。早期微型机中浮点运算器放在CPU芯片外, 随着高密度集成电路技术的发展,现已移至CPU 内部。
2.6.1 浮点加法、减法运算

舍入处理(对阶和向右规格化时)

溢出判断和处理
◦ 就近舍入(0舍1入):类似”四舍五入”,丢弃的最高 位为1,进1 ◦ 朝0舍入:截尾 ◦ 朝+∞舍入:正数多余位不全为”0”,进1;负数,截尾 ◦ 朝-∞ 舍入:负数多余位不全为”0”,进1;正数,截尾 ◦ 例子 ◦ 阶码上溢,一般将其认为是+∞和-∞ 。 ◦ 阶码下溢,则数值为0 ◦ 尾数上溢,两个同符号位的数相加。处理方法是 尾数右移,阶码 加1。 ◦ 尾数下溢。尾数右移时,最低位从最右端流出。 进行要进行舍入处理 。
2.6.2 浮点乘法和除法运算


设有两个浮点数x和y: x=2Ex·Mx y=2Ey·My x×y=2(Ex+Ey)·(Mx×My) x÷y=2(Ex-Ey)·(Mx÷My) 乘除运算分为四步
① ② ③ ④ 0操作数检查 阶码加减操作 尾数乘除操作 结果规格化和舍入处理
2.6.2 浮点乘法和除法运算-阶码加减操作
2.6.2 浮点乘法和除法运算
设有浮点数x=2-5×0.0110011,y =23×(-0.1110010),阶码用4位移码表 示,尾数(含符号位)用8位补码表示。求 [x×y]浮。要求用补码完成尾数乘法 运算,运算结果尾数保留高8位(含符号 位),并用尾数低位字长值处理舍入操作。
[解:] 移码采用双符号位,尾数补码采用单符号位,则有 [Mx]补=0.0110011, [My]补=1.0001110, [Ey]移=01 011, [Ey]补=00 011, [Ex]移=00 011, [x]浮=00 011, 0.0110011, [y]浮=01 011, 1.0001110 (1)判断操作是否为”0”,求阶码和 [Ex+Ey]移=[Ex]移+[Ey]补=00 011+00 011=00 110, 值为移码形式-2。 (2) 尾数乘法运算可采用补码阵列乘法器实现,即有 [Mx]补×[My]补=[0.0110011]补×[1.0001110]补 =[1.1010010,1001010]补 (3) 规格化处理 乘积的尾数符号位与最高数值位符号相同,不是规格化的数,需要左 规,阶码变为00 101(-3), 尾数变为 1.0100101,0010100。 (4) 舍入处理 尾数为负数,取尾数高位字长,按舍入规则,舍去低位字长,故尾 数为1.0100101 。 最终相乘结果为 [x×y]浮=00 101,1.0100101 其真值为 x×y=2-3×(-0.1011011)
浮点数有时候也不可靠
控制惯性导航系统的计 算机向控制引擎喷嘴的 计算机发送了一个无效 数据 将一个64位浮点数转换 成16位整数时,产生了 溢出 溢出值是火箭的水平速 率,比Ariane 4高出5倍 之前认为不会超过16位

本章小结
一个定点数由符号位和数值域两部分组成。按小数点 位置不同,定点数有纯小数和纯整数两种表示方法。 按IEEE754标准,一个浮点数由符号位S、阶码E、尾数 M三个域组成。其中阶码E的值等于指数的真值e加上 一个固定偏移值。 为了使计算机能直接处理十进制形式的数据,采用两 种表示形式:(1)字符串形式,主要用在非数值计算的 应用领域;(2)压缩的十进制数串形式,用于直接完成 十进制数的算术运算。
浸渍2 浸渍3 捞纸1 捞纸2
t2
t3
时 间
t4
t5
... ...
2.6.3 浮点运算流水线
1、提高并行性的两个渠道:

空间并行性:
◦ 增加冗余部件,如增加多操作部件处理机和超标 量处理机

时间并行性:
◦ 改善操作流程如:流水线技术
2.6.3 浮点运算流水线
2、流水技术原理
◦ 在流水线中必须是连续的任务,只有不断的提供 任务才能充分发挥流水线的效率 ◦ 把一个任务分解为几个有联系的子任务。每个子 任务由一个专门的功能部件实现 ◦ 在流水线中的每个功能部件之后都要有一个缓冲 寄存器,或称为锁存器 ◦ 流水线中各段的时间应该尽量相等,否则将会引 起“堵塞”和“断流”的现象 ◦ 流水线需要有装入时间和排空时间,只有当流水 线完全充满时,才能充分发挥效率

原则:小阶向大阶 设△E>0,表示Ex>Ey,则移动y的尾数,My 右移△E位,问题:为什么要小阶向大阶看齐? 阶差=Ex-Ey=00 010- 00 100 =11 110 即阶差为-2,Mx右移两位,Ex加2 x=00100 , 0.00110110(11)
2.6.1 浮点加法、减法运算
2.6.2 浮点乘法和除法运算

尾数处理
◦ 截断 ◦ 舍入
尾数用原码表示时
只要尾数最低为1或者移出位中有1数值位,使最低位置1 0舍1入
尾数用补码表示时(p57例30)
丢失的位全为0,不必舍入。 丢失的最高位为0,以后各位不全为0时;或者最高为1,以后 各位全为0时,不必舍入。 丢失的最高位为1,以后各位不全为0时,则在尾数的最低位入 1的修正操作。
采集原料 泡浆 踏浆 浸渍 捞纸 压榨 揭纸 烘干 裁剪 包装
怎么提高速度
从造纸术说起-10道工序
采集原料部门
采集原料1
采集原料2
采集原料3
采集原料4
采集原料5
... ... ... ... ... ...
泡浆部门 踏浆部门 浸渍部门 捞纸部门 t1
泡浆1
泡浆2 踏浆1
泡浆3 踏浆2 浸渍1
泡浆4 踏浆3
3、尾数相加
◦ 00.00110110(11)+11.01010100=11.10001010(11)
4、结果规格化
◦ (1)在浮点加减运算时,尾数求和的结果也可以得到 01.ф…ф或10.ф…ф,即两符号位不等,此时将运算 结果右移以实现规格化表示,称为向右规格化。 ◦ 规则:尾数右移1位,阶码加1 ◦ (2) 结果是 00.0..01..... 或 11.1...10... 时,则向左 规格化 ◦ 规则:尾数左移1位,阶码减1,直到规格化 ◦ 右规,阶码加1,左规,阶码减1 ◦ 刚才例子左规为11.00010101(10),阶码减1为00011 ◦ 练习:01.1101 10.0001 11.1001
相关文档
最新文档