资讯详情

用计算机浮点数表示法计算,计算机组成原理第4章浮点数运算方法ppt课件

5beb2383c97f55fa2d331076c9a34354.png

PPT内容

这是计算机组成原理第四章浮点数运算方法ppt课件下载主要介绍浮点的表示;浮点加减操作;浮点加减操作步骤;浮点加减操作流程图;浮点加减操作;浮点操作所需的硬件配置,欢迎点击下载。

第4章 浮点运算规则 浮点加减运算 浮点乘除法运算 表示浮点数 机器中的任何浮点都可以写成: Mx对于浮点数的尾数,一般为绝对值小于1的规格化数(补码表示时允许为-1),机器中可以用原码或补码表示。 Ex浮点数的阶码一般为整数,大部分机器用补码或移码表示。 R浮点数的基数常用于2、8 、10或16表示。以下以基数为2进行讨论。 浮点加减运算 设置两个浮点数 尾数的加减操作规则与定点数完全相同。 由于两尾数小数点的实际位置不同,两尾数小数点不能直接加减。如:x=0.123×103 y=4.56×102 = 0.456×103 浮点加减操作步骤 对齐两数的小数点位置。 尾数求和,按定点加减运算规则对阶后两尾数求和(差)。 规格化,为了增加有效数字的位数,提高操作精度,必须规范求和(差)后的尾数。 为了提高精度,应考虑尾数右移时丢失的值位。 判断结果 ,即判断结果是否溢出 1. 对阶 这一步是对齐两个加数的小数点。 小阶向大阶看齐,小阶码数,尾数向右移动,每右移动一个,阶码加1,直到两个阶码相同。 数字丢失可能发生在尾数右移时,影响精度。 例:两浮点数 x = 0.1101×201, y = -(0.1010)×211,求x y。(1)先写x、y计算机中的补码表示。 [x]补=00,01;00.1101,[y]补=00,11;11.0110 阶码EX 尾数Mx Ey My (2)加法前必须先对阶,所以先求阶差: [ΔE]补=[Ex]补-[Ey]补=[Ex]补 [-Ey]补 = 00,01 11,01=11,10 即ΔE=-2,表示x的阶码比y的阶码小,然后按照小阶向大阶看齐的原则,将x的尾数右移两位,其阶码加2。 得[x]’补=00,11;00.0011(01) 此时,ΔE=表示对阶完成。 得[x]’补=00,11;00.0011(01) 此时,ΔE=表示对阶完成。 2. 尾数求和 按定点加(减)操作规则计算阶后两个尾数。 注:不考虑溢出-溢出由阶码决定 接上例,两数对阶后得到: [x]ˊ补=00,11;00.0011(01) [y]补=00,11;11.0110 则[Mx My]补=00.0011 11.0110=11.1001(01) 即[x y]补=00,11;11.1001(01) 3. 规格化 如果采用双符号位的补码,则 当M>0时,补码的标准化形式是 [M]补=00.1××…× 当M<0时,补码的标准化形式是 [M]补=11.0××…× 但对M<有两种情况需要特殊处理。 M=-1/2,则[M]补=11.100…0。 M=-1/2,则[M]补=11.100…0.对于补码,它不满足于上述标准化表达式。为便于硬件判断,特别规定-1/2是标准化的数补码)。 M=-1,则[M]补=11.000…0。因为小数补码允许表示-1,所以-1被视为标准化数。 规格化分为左规和右规。 左规。当尾数出现00.0××…×或11.1××…×需要左规。左规时尾数左移一位,阶码减1,直至符合补码标准化表示式。 右规。当尾数出现01.××…×或10.××…×在定点加减操作中不允许尾数溢出,但在浮点操作中不溢出,可以通过右规处理。右规时尾数右移一位,阶码加1。 接上例,求和结果为[x y]补=00,11;11.1001(01) 尾数的第一值与符号位相同,需要左规,即左移一位,同时阶码减1,得[x y]补=00,10;(1)11.0010(1)。 4. 舍入 在对阶和右规的过程中,尾数的低位可能会丢失,造成误差,影响精度。因此,可以采用舍入法来提高尾数的精度。 舍入时应满足两个要求 首先,对于每个操作结果,确保误差不超过给定范围。比如机器尾数长39位,要求每次操作误差不超过末位(即第39位)的1 2-39。 其次在大量的运算过程中要保证误差的平衡,即在每一次运算时,由于舍入处理,可能使运算结果增大了,也可能减少了。但总的来说,增减的机会必须平等,否则会产生很大的积累误差。 4. 舍入-常用的舍入方法 0舍1入法:0舍1入法类似于十进制运算中的四舍五入法,即尾数右移时,被移除的最高值为0,则被移除;被移除的最高值为1,尾数末端加1。这样做可能会使尾数再次溢出,此时需要再做一次右规。 特点:最大误差在最低位-1/2到接近1/2之间,正误差可与负误差抵消。这是一种理想的方法,但它更复杂。 如上例: [x y]补=00,10;(1)11.0010(1) = 00,10;11.0011 恒位1法:尾数右移时,无论失去的最高值是1还是0,都使右移后尾数末位恒位1。这种方法也有两种可能性使尾数变大变小。 特点:误差范围扩大,但正负误差可相互抵消,相对容易实现。 5. 溢出判断 浮点规格化中指出,当尾数之和(差)出现01时.××…×或10.××…×时间,并不意味着溢出,只有在数右规之后,再根据阶码判断浮点运算结果是否溢出。 如果机器数为补码,尾数为标准化形式,假设阶码为2位,阶码为7位,尾数为n位,则可在数轴上表示的补码范围如下图所示。 浮点机的溢出可以由阶码符号决定。即 阶码[E]补=01,××…×为上溢。 阶码[E]补=10,××…×下溢,按机器零处理。 当阶符为01时,需要进行溢出处理。 下溢时,浮点值趋于零,因此机器不进行溢出处理,只将其作为机器零。 当溢出时,浮点数真正溢出。机器需要停止操作并中断溢出。 一般来说,浮点溢出是指溢出。 例:设x=2-101×(-0.101000),y=2-100×( 0.11011)假设阶符2位,阶码3位,数2位,尾数6位,求x-y。 解:由x=2-101×(-0.101000),y=2-100×( 0.111011) 得[x]补=11,011;11.011000,[y]补=11,100;00.111011 ①对阶 [ΔE]补=[Ex]补-[Ey]补=11,011 00,100=11,111 即ΔE=-1,x尾数向右移动一位,阶码相应加1,即 [x]ˊ补=11,100;11.101100 ②求和 [Mx]ˊ补-[My]补=[Ex]补 [-Ey]补 =11.101100 11.000101 =10.110001 即 [x-y]补=11,100;10.110001 尾数符号位出现10,需要右规。 (续) : 即 [x-y]补=11,100;10.110001, 尾数符号位出现“10”,需右规。 ③规格化 右规后得 [x-y]补=11,101;(1)1.011000(1) ④舍入处理 采用0舍1入法,尾数右规时末位丢1 [x-y]补=11,101;11.011001 ⑤溢出判断 舍入后入处理为11,不溢出,所以最终结果: x-y= 2-011×(-0.100111) 浮点数加减运算流程图 浮点加减法操作 大型计算机和高档微型机中,浮点加减法操作是由硬件完成的。低档微机浮点加减法操作由软件完成,但基本原理是一致的,无论是硬件还是软件。低档微机浮点加减法操作由软件完成,但基本原理是一致的,无论是硬件还是软件。 浮点加减法的操作应通过五个步骤来判断:对阶、尾数求和、规格化、舍入和溢出。尾数运算与定点加减法相同,而对阶、舍入、规格化、溢出判断则是浮点加减法与定点加减法不同的操作。 在补码浮点操作中,阶码和尾数可以用补码表示。在硬件实现的操作中,阶符和数符通常采用双符号位,正数符00,负数符11。 浮点乘除法运算 设两浮点数 则 阶码运算 尾数运算 1. 阶码运算 如果阶码用补码计算,乘积的阶码是[jx]补 [jy]补,商的阶码是[jx]补-[jy]补。 若阶码用移码运算,则 [jx]移=2n jx -2n≤jx<2n (n为整数的位数) [jy]移=2n jy -2n≤jy<2n (n为整数的位数) 所以[jx]移 [jy]移= 2n jx 2n jy = 2n (2n ( jx jy))= 2n [jx jy]移 可见,直接使用移码求阶码和时,其最高位增加2n,为了获得移码形式的结果,必须减去2n。 由于同一真值的移码和补码的数值部分完全相同,符号位正好相反,即 [jy]补=2n 1 jy (mod 2n 1) 因此,如果求阶码和可用下式完成: [jx]移 [jy]补= 2n jx 2n 1 jy = 2n [2n ( jx jy)] = [jx jy]移 (mod 2n 1) 移码形式可以直接获得。 同样,当作为除法操作时,商业阶码可以以下方式完成: [jx]移 [-jy]补 = [jx - jy]移 阶码运算 阶码操作方法:移码加减操作时,只需取反移码表示的加减符号位(即变为补码),然后操作即可获得阶和(或阶差)的移码。 溢出判断:在原有移码符号位的前面(即高位)再增加位符号位,并规定该位恒用“0”表示,而加数或减数的补码的两位符号位则一致。 溢出判断:在原移码符号位前(即高位)增加位符号位,并规定该位恒用0表示,而加减两位符号位一致。 溢出条件是运算结果移码的最高符号为1。此时,如果低符号位为0,则表示溢出;低符号位为1,表示溢出。 若运算结果移码的最高符号位为0,则表示无溢出。此时,如果低符号位为1,则表示结果为正:低符号位为0,则表示结果为负。 阶码运算 溢出判断的例子: 设阶码取三位(不含符号位), 当jx= 101,jy= 110时,有 [jx]移=01,101, [jy]补=00,110 则: [jx jy]移=[jx]移 [jy]补=01,101 00,110=10,001 结果上溢 [jx -jy]移=[jx]移 [-jy]补=01,101 11,100=01,001 结果 1 2. 尾数运算 (1)浮点乘法尾数运算 (2)浮点除法尾数的运算 (1)浮点乘法尾数运算 预处理:检测两个尾数中是否有一个为0,如果有一个为0,乘积必须为0,不再进行其他操作;若两尾数均不为0,则可进行乘法操作。 相乘:两个浮点数的尾数相乘可以通过任何一种定点小数乘法来完成。 相乘:两个浮点数的尾数相乘可以通过任何一种定点小数乘法来完成。 规格化:相乘结果可能需要左规。左规时,如果阶下溢出发生在调整阶码后,将对机器进行零处理;如果阶上溢出,将进行溢出处理。 尾数截断:尾数相乘会得到双字长的结果,如果限制只取一倍字长,则乘积的几个低位就会丢失。通常有两种方法可以处理丢失的值。 截断处理:正常尾数最低位后的全部值无条件丢失。 舍入处理:按照浮点加减操作讨论的舍入原则进行舍入处理。 (1)浮点乘法尾数运算 舍入处理 对于原码,采用0舍1入法时,舍使数的绝对值变小,入使数的绝对值变大,无论其值是正数还是负数。 对于补码,采用0舍1入法时,如果丢失的位置不是全0,舍、入的结果和正数的原码好相同;对负数来说,“舍”、“入”的结果与原码分析正好相反,即“舍”使绝对值变大,“入”使绝对值变小。 为了使原码、补码舍入处理后的结果相同,对负数的补码可采用如下规则进行舍入处理。 ①当丢失的各位均为0时,不必舍入; ②当丢失的各位数中的最高位为0时,且以下各位不全为0;或丢失的各位数中的最高位为1,且以下各位均为0时,则舍去被丢失的各位; ③当丢失的各位数中的最高位为1,且以下各位又不全为0时;则在保留尾数的最末位加1修正。 舍入操作实例 浮点乘法运算举例 例:设机器数阶码取3位(不含阶符),尾数取7位(不舍数符),要求阶码用移码运算,尾数用补码运算,最后结果保留1倍字长。 设x=2-101×0.0110011),y=2011×(-0.1110010) 求: x• y。 解:[x]补=11,011;00.0110011     [y]补=00,011;11.0001110   ①阶码运算     [jx]移=00,011, [jy]补=00,011     [jx+jy]移=[jx]移+[jy]补=00,011+00,011=00,110 对应真值-2 浮点乘法运算举例(续) ②尾数相乘(采用Booth算法)其过程如下表所示。 浮点乘法运算举例(续) 即[x•y]补=11,110;11.10100101001010 ③ 规格化。左规后[x•y]补=11,101;11.01001010010100 ④舍入处理。尾数为负,按负数的补码的舍入规则,取1倍字长,丢失的7位为0010100,应“舍”。 故最终的结果为:[x•y]补=11,101;11.0100101 即:xy= 2-011×(-0.1011011) (2)浮点除法尾数运算 步骤: 检测被除数是否为0,若为0,则商为0;再检测除数是否为0,若为0,则商为无穷大,另作处理。若两数均不为0,则可进行除法运算。 两浮点数尾数相除同样可采取定点小数的任何一种除法运算来完成。 对已规格化的尾数,为了防止除法结果溢出,可先比较被除数和除数的绝对值,如果被除数的绝对值大于除数的绝对值,则先将被除数右移一位,其阶码加1,再作尾数相除。此时所得结果必然是规格化的定点小数。 浮点除法尾数运算—例题 例: x=2101×0.1001,y=2011×(-0.1101),按补码浮点运算方法求x/y。 解:[x]补=00,101;00.1001, [y]补=00,011;11.0011, [-Sy]补=00.1101   ①阶码相减。   [jx]补-[jy]补=00,101-00,011=00,101+11,101=00,010 ②尾数相除(采用补码除法)。 浮点除法尾数运算—例题(续) ②尾数相除(采用补码除法)。 浮点乘除法运算 两浮点数相乘其乘积的阶码为相乘两数阶码之和,其尾数应为相乘两数的尾数之积。 两个浮点数相除,商的阶码为被除数的阶码减去除数的阶码得到的差,尾数为被除数的尾数除以除数的尾数所得的商。 参加运算的两个数都为规格化浮点数,乘除运算都可能出现结果不满足规格化要求的问题,因此也必须进行规格化、舍入和溢出判断等操作。规格化时要修改阶码。 浮点运算所需的硬件配置 浮点运算器主要由两个定点运算部件组成: 阶码运算部件:用来完成阶码加、减,以及控制对阶时小阶的尾数右移次数和规格化时对阶码的调整。 尾数运算部件:用来完成尾数的四则运算以及判断尾数是否已规格化。 此外,还需有判断运算结果是否溢出的电路等。 现代计算机可把浮点运算部件做成独立的选件,称为协处理器。 浮点协处理器Inte l80287可与Intel 80286或80386微处理器配合处理浮点数的算术运算和多种函数计算。 也可用编程的办法来完成浮点运算,不过这会影响机器的运算速度。 2 算术逻辑单元 ALU电路、快速进位链 ALU电路 Ai和Bi为输入变量;Ki为控制信号,Ki的不同取值可决定该电路作哪一种算术运算或哪一种逻辑运算;Fi是输出函数。 74181—ALU集成电路芯片 74181是能完成四位二进制代码的算逻运算部件,其外特性如下图所示。 74181—ALU集成电路芯片 29C101芯片 将寄存器和ALU集成导一个芯片内。 快速进位链 问题:随着操作数位数的增加,电路中进位的速度对运算时间的影响也越大。 并行加法器 ——多位加法器 串行进位链 并行进位链 单重分组跳跃进位 即:单级分组 双重分组跳跃进位 快速进位链 问题:随着操作数位数的增加,电路中进位的速度对运算时间的影响也越大。 并行加法器 ——多位加法器 串行进位链 并行进位链 单重分组跳跃进位 即:单级分组 双重分组跳跃进位 半加器(half adder) 全加器(full adder) 其输入不仅有两个1位二进制数相加,还需加上低位送来的进位。 双全加器74LS182的1/2逻辑图 1. 并行(多位)加法器 n+1个全加器级联,就组成了一个n+1位的并行加法器(行波进位加法器)。 并行加法器 分析:由全加器的逻辑表达式可知, Ci进位有两部分组成:本地进位AiBi,可记作di,与低位无关;传递进位(Ai+Bi)Ci-1,与低位有关,称(Ai+Bi)为传递条件,记作ti,则: 由Ci的组成可以将逐级传递进位的结构转换为以进位链的方式实现快速进位。目前进位链通常采用串行和并行两种。 2. 串行进位链 串行进位链是指并行加法器中的进位信号采用串行传递。 以四位并行加法器为例,每一位的进位表达式可示为: 由上式可见,采用与非逻辑电路可方便地实现进位传递,如下图所示。注意:A+B =-( -A * -B) 串行进位链 延迟时间分析: 若设与非门的级延迟时间为ty,那么当di、ti形成后,共需8ty使可产生最高位的进位。 实际上每增加一位全加器,进位时间就会增加2ty。n位全加器的最长进位时间为2nty。 3. 并行进位链 并行进位链是指并行加法器中的进位信号是同时产生的,又称先行进位、跳跃进位等。 超前进位加法器 通常并行进位链有单重分组和双重分组两种实现方案。 理想的并行进位链是n位全加器的n位进位同时产生,但实际实现有困难。 (1)单重分组跳跃进位 单重分组跳跃进位:将M位全加器分成若干小组,小组内的进位同时产生,小组与小组之间采用串行进位。 又称为“组内并行、组间串行”进位。 以四位并行加法器为例,对其进位表示式稍作变换,便可获得并行进位表达式: 四位一组并行进位 对应的逻辑图为: 单重分组跳跃进位 如果将16位的全加器按四位一组分组,便可得单重分组跳跃进位链框图 单重分组跳跃进位 缺点:但随着n的增大,其优势便很快减弱。 例如,n=64,4位分组,共为16组:组间有16位串行进位,在di、ti形成后,还需经16×2.5= 40ty才能产生全部进位,显然进位时间太长。 如果能使组间进位也同时产生,必然会更大地提高进位速度,这就是组内、组间均为并行进位的方案。 (2)双重分组跳跃进位 双重分组跳跃进位原理: 将n位全加器分成几个大组 每个大组又包含几个小组 每个大组内所包含的各个小组的最高位进位是同时形成的,大组与大组间采用串行进位。 各小组最高位进位是同时形成的,小组内的其他进位也是同时形成的 故又有“组内并行、组间并行”之称 注意:两小组内的其他进位与小组的最高位进位并不是同时产生的,。 双重分组跳跃进位 32位并行加法器双重分组跳跃进位链的框图 双重分组跳跃进位 32位并行加法器双重分组跳跃进位链的框图 双重分组跳跃进位 32位并行加法器双重分组跳跃进位链的框图 双重分组跳跃进位 进一步展开又得: 双重分组跳跃进位 Di和Ti它们都是由小组产生的,按其逻辑表达式可画出相应的电路如下图所示。 双重分组跳跃进位 由大组跳跃进位链和小组跳跃进位链的线路可构成16位加法器的双重分组跳跃进位链框图。 双重分组跳跃进位 32位并行加法器双重分组跳跃进位链的框图 进位方案选择和实例 机器究竟采用哪种方案,每个小组内应包含几位,应根据运算速度指标及所选元件等诸方面团素综合考虑。 74181芯片是4位ALU电路,其四位进位是同时产生的,多片74181级联就犹如本节介绍的单重分组跳跃进位,即组内(74181片内)并行,组间(74181片间)串行。 进位方案选择和实例 74182为先行进位部件,将74181与74182芯片配合,就可组成双重分组跳跃进位链。 两片74182和8片74181组成32位ALU电路。 本章小结 数据的表示方法和转换 无符号数和有符号数 数的定点表示和浮点表示 定点运算 浮点四则运算 算术逻辑单元ALU 作业 第291页—294页:4、5、7、9、12、19(1)、19(4)、20(1)、21(1)、24(1)、25(1)、27(1)、28(1)、30(2)。 报告:编写一个完成原码、补码四则运算(定点、浮点)的仿真程序。 输入:x,y 输出:演示运算每个步骤的流程图。

相关PPT

中国移动核心网基本原理(培训)ppt课件:这是中国移动核心网基本原理(培训)ppt课件下载,主要介绍了系统结构和接口协议;移动区域与编号计划;典型流程介绍;GPRS介绍;R4核心网介绍,欢迎点击下载。

《阿基米德原理》浮力PPT课件4:这是《阿基米德原理》浮力PPT课件4下载,主要介绍了学习目标,探究影响浮力大小的因素,探究浸入水中的物体受到的浮力与它排开液体的重力的关系,课堂练习,课堂小结,欢迎点击下载哦。

高中数学1.3.2空间几何体的体积同步辅导与检测课件苏教版必修PPT:这是高中数学1.3.2空间几何体的体积同步辅导与检测课件苏教版必修PPT下载,主要介绍了情景切入;自主学习;要点讲解;知识点;棱、锥、台和球的体积公式;柱体的体积;锥体的体积;台体的体积;球体的体积;球体的体积;有关组合体的表面积和体积;基础巩固;能力升级,欢迎点击下载哦。

《计算机组成原理第4章浮点数运算方法ppt课件》是由用户huangyixuan于2020-11-21上传,属于数学课件PPT。

标签: jy131变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台