您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 02 运算方法与运算器 浮点运算方法和浮点运算器
2.6浮点运算方法和浮点运算器第二章运算方法和运算器计算机组成原理22020年2月26日星期三当我们用不同的电脑计算圆周率时,会发现一台电脑的计算较另一台来讲结果更加精确;或者我们在进行枪战游戏的时候,当一粒子弹击中墙壁时,墙上剥落下一块墙皮,同样的场面在一台电脑上的表现可能会非常的呆板、做作;而在另外一台电脑上就会非常生动形象,甚至与我们在现实中看到的所差无几。这都是浮点运算能力的差异导致的。第二章运算方法和运算器计算机组成原理32020年2月26日星期三2.6.1浮点加法、减法运算设有两个浮点数x和y,分别为ynxmMyMx22浮点加减运算过程可用下页流程描述:?yx?1074.01053.063661074.01000053.033107401053.0第二章运算方法和运算器计算机组成原理42020年2月26日星期三2.6.1浮点加法、减法运算YXZ浮点数加、减运算过程第二章运算方法和运算器计算机组成原理52020年2月26日星期三浮点数加减法运算的过程(1)零操作数检查(2)对阶(3)尾数求和(4)结果规格化(5)舍入处理(6)溢出处理第二章运算方法和运算器计算机组成原理62020年2月26日星期三浮点数加法运算的过程(1)零操作数检查如操作数之一为0则可省去后续操作,节省运算时间。第二章运算方法和运算器计算机组成原理72020年2月26日星期三浮点数加法运算的过程(2)对阶两浮点数进行加、减时,首先要看两数的阶码是否相同,若两数的阶码不等,表示小数点位置没有对齐,则必须使两数的阶码相等,这个过程叫做对阶。第二章运算方法和运算器计算机组成原理82020年2月26日星期三对阶的方法:求出两数的阶码m和n之差:第二章运算方法和运算器计算机组成原理92020年2月26日星期三对阶操作规定使尾数右移,尾数右移后阶码作相应增加,其数值保持不变(若右移引起最低有效位的丢失,则采用0舍1入的方法),一个增加后的阶码与另一个阶码相等,所增加的阶码一定是小阶,因此在对阶时,总是使小阶向大阶看齐。若m<n,则将操作数x的尾数右移,x的阶码m增加,直到m=n为止。若m>n,则将操作数y的尾数右移,y的阶码增加,直到m=n为止。第二章运算方法和运算器计算机组成原理102020年2月26日星期三浮点数加法运算的过程(3)尾数相加对阶后,就完成了小数点对准的工作,这时可以执行尾数相加操作。尾数相加与定点数的加、减法相同。第二章运算方法和运算器计算机组成原理112020年2月26日星期三浮点数加法运算的过程(4)结果规格化结果规格化就是使运算结果成为规格化数。为了运算处理方便,可将尾数的符号位扩展为两位。右规:当尾数符号位为01或10时,需要右规。方法:将尾数连同符号位右移一位,和的阶码加1,经右规处理后得到00.1XX…X或11.0XX…X的形式,即成为规格化的数.左规:当运算结果的符号位和最高有效位为00.0或11.l时,需要左规。方法:将尾数连同符号位一起左移一位,和的阶码减1,直到尾数部分出现00.l或11.0的形式为止。第二章运算方法和运算器计算机组成原理122020年2月26日星期三(5)舍入处理简单的舍入方法:0舍1入法:右移被丢掉数位最高位为0舍掉,为1尾数末位加1。恒置1法:只要数位被移掉,就在尾数的末位恒置1。第二章运算方法和运算器计算机组成原理132020年2月26日星期三(5)舍入处理在IEEE754标准中,舍入处理提供了4种可选方法就近舍入:就是“四舍五入”,如尾数超出规定23位的多余位数字是10010,多余位的值超过规定的最低有效位值的一半,则最低有效位增1;若为01111这样,则简单截尾;为10000这样的特殊值时视最低有效位情况,为0截尾;为1向上进1,末位为0。朝0舍入:就是简单的截尾。使取值的绝对值比原值的绝对值小,易导致误差积累。朝+舍入:对正数只要多余位不全为0则进1;对负数截尾。朝-舍入:处理与向+舍入相反。第二章运算方法和运算器计算机组成原理142020年2月26日星期三(6)溢出判断浮点数的溢出表现为阶码的溢出,通过阶码来判断。表现及处理:阶码上溢:超过阶码可表示的最大值的正指数值。一般认为是+和-。阶码下溢:超过了阶码可表示的最小值的负指数值。一般将其认为是0。尾数上溢:两个同符号尾数相加产生最高位向上的进位,要将尾数右移,阶码增1来从新对齐。尾数下溢:将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处理。第二章运算方法和运算器计算机组成原理152020年2月26日星期三例:设x=2010×0.11011011,y=2100×(-0.10101100),求x+y=?。解:假设两数以补码表示,阶码采用双符号位,尾数采用单符号位,则它们的浮点表示分别为:[x]浮=00010,0.11011011[y]浮=00100,1.01010100(1)求阶差并对阶X的阶码小,Mx右移两位,Ex加2[x]浮=00100,0.00110110(11)(2)尾数求和0.00110110(11)1.010101001.10001010(11)2111101110000010补补yxyxEEEEE第二章运算方法和运算器计算机组成原理162020年2月26日星期三(3)规格化处理尾数运算结果的符号位与最高数值位为同值,执行左归,结果为1.00010101(10)阶码为00011(4)舍入处理采用0舍1入法,则尾数为:1.00010101+11.00010110(5)判溢出,阶码符号位为00,不溢出,故得最终结果为x+y=2011×(-0.11101010)第二章运算方法和运算器计算机组成原理172020年2月26日星期三例:设浮点数的阶码为4位(含阶符),尾数为6位(含尾符),x、y中的指数项,小数项均为二进制真值.第二章运算方法和运算器计算机组成原理192020年2月26日星期三2.6.3浮点运算流水线1、提高并行性的两个渠道空间并行性:增加冗余部件,如增加多操作部件处理机和超标量处理机时间并行性:改善操作流程,如流水线技术第二章运算方法和运算器计算机组成原理202020年2月26日星期三第二章运算方法和运算器计算机组成原理212020年2月26日星期三2.6.3浮点运算流水线2、流水技术原理把一个任务分解为几个有联系的子任务。每个子任务由一个专门的功能部件实现在流水线中必须是连续的任务,只有不断的提供任务才能充分发挥流水线的效率在流水线中的每个功能部件之后都要有一个缓冲寄存器,或称为锁存器流水线中各段的时间应该尽量相等,否则将会引起“堵塞”和“断流”的现象流水线需要有装入时间和排空时间,只有当流水线完全充满时,才能充分发挥效率第二章运算方法和运算器计算机组成原理222020年2月26日星期三流水线原理设过程段Si所需的时间为τi,缓冲寄存器的延时为τl,线性流水线的时钟周期定义为τ=max{τi}+τl=τm+τl流水线处理的频率为f=1/τ。第二章运算方法和运算器计算机组成原理232020年2月26日星期三流水线原理一个具有k级过程段的流水线处理n个任务需要的时钟周期数为Tk=k+(n-1),所需要的时间为:T=Tk×τ而同时,顺序完成的时间为:T=n×k×τk级线性流水线的加速比:Ck=TL=n·kTkk+(n-1)第二章运算方法和运算器计算机组成原理242020年2月26日星期三流水线浮点运算器A=a×2P,B=b×2q在4级流水线加法器中实现上述浮点加法时,分为以下操作:(1)求阶差(2)对阶(3)相加(4)规格化2.6.2浮点乘法、除法运算第二章运算方法和运算器计算机组成原理262020年2月26日星期三2.浮点乘法运算设两个浮点数x和y分别为ynxmMyMx22yxnmMMyx2则第二章运算方法和运算器计算机组成原理272020年2月26日星期三浮点乘法运算步骤:(1)阶码相加两个数的阶码相加在加法器中完成;先完成阶码求和运算。阶码相加后有可能产生溢出,若发生溢出,则相应部件将给出溢出信号,指示计算机作溢出处理。第二章运算方法和运算器计算机组成原理282020年2月26日星期三浮点乘法运算步骤(1)阶码相加阶码相加算法[x+y]移=[x]移+[y]补原因:[x]移+[y]移=2n+x+2n+y=2n+[x+y]移而[x]移+[y]补=2n+x+2n+1+y=2n+1+[x+y]移=[x+y]移同理:[x-y]移=[x]移+[-y]补溢出处理以双符号位参加运算,移码最高符号位恒为0,为1时溢出,低位符号位为0时上溢,为1时下溢。第二章运算方法和运算器计算机组成原理292020年2月26日星期三浮点乘法运算步骤(2)尾数相乘两个运算数的尾数部分相乘就得到积的尾数。尾数相乘可按定点乘法运算的方法进行运算。第二章运算方法和运算器计算机组成原理302020年2月26日星期三浮点乘法运算步骤(3)结果规格化规格化及舍入方法与浮点加、减法处理的方法相同。截断处理,简单但影响精度运算过程中保留右移中移出的若干高位值,最后按某种规则进行舍入处理。尾数用原码表示时:(1)只要尾数的最低位为1,或移出的几位中有为1的数值位,就使最低位的值为1;(2)0舍1入法,当丢失的最高位为1时,就把这个1加到最低数值位上进行修正。尾数用补码表示时:(1)当丢失的各位都为0时,不必舍入;(2)当丢失的最高位为0,以下不全为零或最高位为1,以下各位全0,则舍去丢失位上的值;(3)当丢失最高位为1,以下各位不全为0时,则进行在尾数最低位入1的修正操作。第二章运算方法和运算器计算机组成原理312020年2月26日星期三3.浮点除法运算设两个浮点数x和y分别为ynxmMyMx22yxnmMMyx2则第二章运算方法和运算器计算机组成原理322020年2月26日星期三浮点除法运算步骤:(1)检查被除数的尾数检查被除数的尾数是否小于除数的尾数(从绝对值考虑)。如果被除数的尾数大于除数的尾数,则将被除数的尾数右移并相应地调整阶码。目的是使被除数的尾数绝对值小于除数尾数的绝对值,以防止商的尾数出现混乱。第二章运算方法和运算器计算机组成原理332020年2月26日星期三(2)阶码求差商的阶码等于被除数的阶码减去除数阶码。阶码求差在阶码加法器中实现.(3)尾数相除商的尾数等于被除数的尾数除以除数尾数(尾数相除的结果是规格化定点小数)。两个尾数相除方法与定点除法相类似。第二章运算方法和运算器计算机组成原理342020年2月26日星期三例:X=+011,y=+110,求[x+y]移和[x-y]移,并判断是否溢出。解:[x]移=01011,[y]补=00110,[-y]补=11010[x+y]移=[x]移+[y]补01011+0011010001[x-y]移=[x]移+[-y]补=00101=-011=-301011+1101000101结果上溢无溢出第二章运算方法和运算器计算机组成原理352020年2月26日星期三例:设[x1]补=11.01100000,[x2]补=11.01100001[x3]补=11.01101000,[x4]补=11.01111001求执行只保留小数点后4位有效数字的舍入操作值。解:[x1]补=11.0110(0000不舍不入)[x2]补=11.0110(0001最高位0,舍)[x3]补=11.0110(1000:1后全0,舍)[x4]补=11.1000(1001:最高位1,其后不全0,入)第二章运算方法和运算器计算机组成原理362020年2月26日星期三例:设有浮点数,阶码用4位移码表示,尾数(含符号位)用8位补码表示,求要求用补码完成尾数乘法运算,运算结果尾数保留高8位(含符号位),并用尾数低位字长的值处理舍入操作。解:移码采用双符号位,尾数补码采用单符号位,有[Mx]补=0.0110011,[My]补=1.0001110[Ex]移=00011,[Ey]移=01011,[Ey]
本文标题:02 运算方法与运算器 浮点运算方法和浮点运算器
链接地址:https://www.777doc.com/doc-4019530 .html