资源预览内容
第1页 / 共54页
第2页 / 共54页
第3页 / 共54页
第4页 / 共54页
第5页 / 共54页
第6页 / 共54页
第7页 / 共54页
第8页 / 共54页
第9页 / 共54页
第10页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第4章章数值的机器运算数值的机器运算14.6 规格化浮点运算规格化浮点运算 第第2章章中中已已经经讨讨论论了了浮浮点点数数的的表表示示方方法法,这这里里将将进进一一步步讨讨论论规规格格化化浮浮点点数数的的四四则则运运算问题,其中尾数的基值算问题,其中尾数的基值r = 2。24.6.1 4.6.1 浮点加减运算浮点加减运算 设两个非设两个非0的规格化浮点数分别为:的规格化浮点数分别为: A=MA B=MB 规格化浮点数规格化浮点数A、B加减运算通式为:加减运算通式为: AB=(MA,EA)(MB,EB) = EAEBEAEB31. 浮点数加减运算步骤浮点数加减运算步骤 对阶对阶 两两个个浮浮点点数数相相加加或或相相减减,首首先先要要把把小小数数点点的的位位置置对对齐齐,而而浮浮点点数数的的小小数数点点的的实实际际位位置置取取决决于于阶阶码码的的大大小小,因因此此,对对齐齐两两数数的的小小数数点点,就就是是使使两两数数的的阶阶码码相相等等,这这个过程称为对阶。个过程称为对阶。 要要对对阶阶,首首先先应应求求出出两两数数阶阶码码EA和和EB之差之差E=EA-EB 若若E=0,表表示示两两数数阶阶码码相相等等,即即EA=EB;若若E0,表表示示EAEB;若若E0,表示表示EAEB。4.6.1 4.6.1 浮点加减运算浮点加减运算 41. 浮点数加减运算步骤(续)浮点数加减运算步骤(续) 当当EAEB时时,要要通通过过尾尾数数的的移移位位来来改改变变EA或或EB。对对阶阶的的规规则则是是:小小阶阶向向大大阶阶看看齐齐。要要使使小小阶阶的的阶阶码码增增大大,则则相相应应的的尾尾数数右右移移,直直到到两两数数的的阶阶码码相相等等为为止止。每每右右移一位,阶码加移一位,阶码加1。 EAEB,则则MB右右移移。每每右右移移一一位位,EB+1EB,直至直至EA=EB为止。为止。 EAEB,则则MA右右移移。每每右右移移一一位位,EA+1EA,直至直至EA=EB为止。为止。 尾数右移后,应对尾数进行舍入。尾数右移后,应对尾数进行舍入。4.6.1 4.6.1 浮点加减运算浮点加减运算 51. 浮点数加减运算步骤(续)浮点数加减运算步骤(续) 尾数加尾数加/减减 对对阶阶之之后后,就就可可以以进进行行尾尾数数加加/减减,即:即:MAMBMC 其算法与定点加其算法与定点加/减法相同。减法相同。 尾数结果规格化尾数结果规格化 尾尾数数加加/减减运运算算之之后后得得到到的的数数可可能能不不是是规规格格化化数数,为为了了增增加加有有效效数数字字的的位位数数,提提高运算精度,必须进行结果规格化操作。高运算精度,必须进行结果规格化操作。 4.6.1 4.6.1 浮点加减运算浮点加减运算 61. 浮点数加减运算步骤(续)浮点数加减运算步骤(续) 尾数结果规格化尾数结果规格化 |M|1 设设尾尾数数用用双双符符号号位位补补码码表表示示,经经过过加加/减减运算之后,可能出现以下运算之后,可能出现以下6种情况,即:种情况,即: 00.1 x x x 11.0 x x x 00.0 x x x 11.1 x x x 01.x x x x 10.x x x x4.6.1 4.6.1 浮点加减运算浮点加减运算 71. 浮点数加减运算步骤(续)浮点数加减运算步骤(续) 第第和和种情况,已是规格化数。种情况,已是规格化数。 第第和和种种情情况况需需要要使使尾尾数数左左移移以以实实现现规规格格化化,这这个个过过程程称称为为左左规规。尾尾数数每每左左移移一一位位,阶阶码码相相应应减减1(EC-1EC),直至成为规格化数为止。直至成为规格化数为止。 左规左规= +Cs1 Cs2 C1 左左规规可可以以进进行行多多次次。式式中中Cs1、Cs2表表示示尾尾数数MC的的两两个个符符号号位位,C1为为MC的的最最高高数值位。数值位。4.6.1 4.6.1 浮点加减运算浮点加减运算 81. 浮点数加减运算步骤(续)浮点数加减运算步骤(续) 第第和和种种情情况况在在在在定定点点加加减减运运算算中中称称为为溢溢出出;但但浮浮点点加加减减运运算算中中,只只表表明明此此时时尾尾数数的的绝绝对对值值大大于于1,而而并并非非真真正正的的溢溢出出。这这种种情情况况应应将将尾尾数数右右移移以以实实现现规规格格化化。这这个个过过程程称称为为右右规规。尾尾数数每每右右移移一一位位,阶码相应加阶码相应加1(EC+1EC)。)。 右规右规=Cs1 Cs2 右规最多只有一次。右规最多只有一次。4.6.1 4.6.1 浮点加减运算浮点加减运算 91. 浮点数加减运算步骤(续)浮点数加减运算步骤(续) 舍入舍入 最最简简单单的的舍舍入入方方法法是是恒恒舍舍法法,即即无无条条件件的的丢丢掉正常尾数最低位之后的全部数值。掉正常尾数最低位之后的全部数值。 溢出判断溢出判断 当当尾尾数数右右规规后后,根根据据阶阶码码来来判判断断浮浮点点运运算算结结果是否溢出。果是否溢出。 EC补补=01, x x x x,表表示示上上溢溢。此此时时,浮浮点点数数真真正正溢溢出出,机机器器需需停停止止运运算算,做做溢溢出出中中断断处理。处理。 EC补补=10, x x x x,表表示示下下溢溢。浮浮点点数数值值趋趋于于零零,机机器器不不做做溢溢出出处处理理,而而是是按按机机器器零零处处理。理。4.6.1 4.6.1 浮点加减运算浮点加减运算 102. 浮点数加减运算举例浮点数加减运算举例 有两浮点数为有两浮点数为 A=0.1011102-01 B=-(0.101011)2-10 假假设设这这两两数数的的格格式式:阶阶码码4位位,用用移移码码(偏偏置置值值为为23)表表示示;尾尾数数8位位,用用补补码表示,包含一位符号位,即码表示,包含一位符号位,即 阶码阶码 尾数尾数 A浮浮=0111;0.1011100 B浮浮=0110;1.01010104.6.1 4.6.1 浮点加减运算浮点加减运算 112. 浮点数加减运算举例(续)浮点数加减运算举例(续) 对阶对阶 求阶差:求阶差:E=EA-EB=-1-(-2)=1 E=1,表表示示EAEB。按按对对阶阶规规则则,将将MB右移一位,右移一位,EB+1EB,得:得: B浮浮=0111;1.1010101 尾数求和尾数求和 00.1011100 + 11.1010101 00.01100014.6.1 4.6.1 浮点加减运算浮点加减运算 122. 浮点数加减运算举例(续)浮点数加减运算举例(续) 尾数结果规格化尾数结果规格化 由由于于结结果果的的尾尾数数是是非非规规格格化化的的数数,故故应应左左规规。尾尾数数每每左左移移一一位位,阶阶码码减减1,直直至尾数成为规格化数为止。最后结果为至尾数成为规格化数为止。最后结果为 A+B浮浮=0110;0.1100010 即即 A+B =(0.110001)2-10 未发生溢出未发生溢出 4.6.1 4.6.1 浮点加减运算浮点加减运算 134.6.2 4.6.2 浮点乘除运算浮点乘除运算 设两个非设两个非0的规格化浮点数分别为的规格化浮点数分别为 A=MA B=MB 规格化浮点数规格化浮点数A、B乘除运算通式为:乘除运算通式为: (MA,EA)(MB,EB)=(MAMB,EA+EB) (MA,EA)(MB,EB)=(MAMB,EA-EB)141. 乘法步骤乘法步骤 两两浮浮点点数数相相乘乘,其其乘乘积积的的阶阶码码应应为为相相乘乘两两数数的的阶阶码码之之和和,其其乘乘积积的的尾尾数数应应为为相乘两数的尾数之积。即:相乘两数的尾数之积。即: AB=(MAMB)阶码相加阶码相加 两两个个浮浮点点数数的的阶阶码码相相加加,如如果果阶阶码码用用补补码码表表示示,无无须须校校正正;当当阶阶码码用用偏偏置置值值为为2n的的移移码码表表示示时时,阶阶码码相相加加后后要要减减去去一一个偏移量个偏移量2n。4.6.2 4.6.2 浮点乘除运算浮点乘除运算 151. 乘法步骤(续)乘法步骤(续) 因为因为EA移移=2n+EA,EB移移=2n+EB, EA+EB移移=2n+(EA+EB) 而而EA移移+EB移移=2n+EA+2n+EB 所以所以EA+EB移移=EA移移+EB移移-2n 显显然然,此此时时阶阶码码和和中中多多余余了了一一个个偏偏置置量量2n,应应将将它它减减去去。另另外外,阶阶码码相相加加后后有可能产生溢出,此时应另作处理。有可能产生溢出,此时应另作处理。 4.6.2 4.6.2 浮点乘除运算浮点乘除运算 161. 乘法步骤(续)乘法步骤(续) 尾数相乘尾数相乘 若若MA、MB都都不不为为0,则则可可进进行行尾尾数数乘乘法法,算算法与定点数乘法算法相同。法与定点数乘法算法相同。 尾数结果规格化尾数结果规格化 由由于于A、B均均是是规规格格化化数数,所所以以尾尾数数相相乘乘后后的的结果一定落在下列范围内:结果一定落在下列范围内: |MAMB|1 当当 |MAMB|1时时,乘乘积积已已是是规规格格化化数数,无无须须再再进进行行规规格格化化操操作作;当当 |MAMB| 时时,则则需需要要左左规规一一次次。左左规规时时调调整整阶阶码码后后如如果果发发生生阶阶码码下下溢溢,则做机器零处理。则做机器零处理。 4.6.2 4.6.2 浮点乘除运算浮点乘除运算 172. 除法步骤除法步骤 两两浮浮点点数数相相除除,其其商商的的阶阶码码应应为为相相除除两两数数的的阶阶码码之之差差,其其商商的的尾尾数数应应为为相相除除两数的尾数之商。即:两数的尾数之商。即: AB=(MAMB)尾数调整尾数调整 为为了了保保证证商商的的尾尾数数是是一一个个定定点点小小数数,首首先先需需要要检检测测|MA|MB|。如如果果不不小小于于,则则MA右右移移一一位位,EA+1EA,称称为为尾尾数数调调整整。因因为为A、B都都是是规规格格化化数数,所所以以最最多多调整一次。调整一次。4.6.2 4.6.2 浮点乘除运算浮点乘除运算 182. 除法步骤(续)除法步骤(续) 阶码相减阶码相减 两两浮浮点点数数的的阶阶码码相相减减,如如果果阶阶码码用用补补码码表表示示,阶阶码码相相减减之之后后无无须须校校正正;当当阶阶码码用用偏偏置置值值为为2n的的移移码码表表示示时时,阶阶码码相相减减后后要要加加上上一一个个偏偏移移量量2n。阶阶码码相相减减后后,如如有溢出,应另作处理。有溢出,应另作处理。 4.6.2 4.6.2 浮点乘除运算浮点乘除运算 192. 除法步骤(续)除法步骤(续) 尾数相除尾数相除 若若MA、MB都都不不为为0,则则可可进进行行尾尾数数除除法法。尾尾数数除除法法的的算算法法与与前前述述定定点点数数除除法法算算法法相相同同。因因为为开开始始时时已已进进行行了了尾尾数数调调整整,所以运算结果一定落在规格化范围内,即所以运算结果一定落在规格化范围内,即 |MAMB|1 4.6.2 4.6.2 浮点乘除运算浮点乘除运算 204.6.3 4.6.3 浮点运算器的实现浮点运算器的实现 浮浮点点运运算算的的阶阶码码只只有有加加减减运运算算,尾尾数数则则有有加加、减减、乘乘、除除四四种种运运算算。可可见见浮浮点点运运算算器器主主要要由由两两个个定定点点运运算算部部件件组组成成,一一个个是是阶阶码码运运算算部部件件,用用来来完完成成阶阶码码加加、减减,以以及及控控制制对对阶阶时时小小阶阶的的尾尾数数右右移移次次数数和和规规格格化化时时对对阶阶码码的的调调整整;另另一一个个是是尾尾数数运运算算部部件件,用用来来完完成成尾尾数数的的四四则则运运算算以以及及判判断断尾尾数数是是否否已已规规格格化化。此此外外,还还需需要有溢出判断电路等。要有溢出判断电路等。 现现代代计计算算机机可可把把浮浮点点运运算算部部件件做做成成任任选选件件,或或称称为为协协处处理理器器。所所谓谓协协处处理理器器是是因因为为它它只只能能协助主处理器工作,不能单独工作。协助主处理器工作,不能单独工作。 214.7 十进制整数的加法运算十进制整数的加法运算 一一些些通通用用计计算算机机中中设设有有十十进进制制数数据据表表示示,可可以以直直接接对对十十进进制制整整数数进进行行算算术术运运算算。下下面面讨讨论论十十进进制制整整数数的的加加法法运运算算和和十十进制加法器。进制加法器。224.7.1 4.7.1 一位十进制加法运算一位十进制加法运算1. 8421码加法运算码加法运算 8421码的加法规则:码的加法规则: 两两个个十十进进制制数数的的8421码码相相加加时时,按按“逢二进一逢二进一”的原则进行;的原则进行; 当和当和9,无需校正;,无需校正; 当和当和9,则,则+6校正;校正; 在在做做+6校校正正的的同同时时,将将产产生生向向上上一位的进位。一位的进位。238421码的校正关系码的校正关系十进制数十进制数8421码码C4S4S3S2S1校正前的二进制数校正前的二进制数C4S4S3S2S1校正与否校正与否090 0 0 0 0 0 1 0 0 10 0 0 0 0 0 1 0 0 1不校正不校正101112131415161718191 0 0 0 01 0 0 0 11 0 0 1 01 0 0 1 11 0 1 0 01 0 1 0 11 0 1 1 01 0 1 1 11 1 0 0 01 1 0 0 10 1 0 1 00 1 0 1 10 1 1 0 00 1 1 0 10 1 1 1 00 1 1 1 11 0 0 0 01 0 0 0 11 0 0 1 01 0 0 1 1+6校正校正4.7.1 4.7.1 一位十进制加法运算一位十进制加法运算24校正举例校正举例0101 5+ 100081101+ 0110 61 0011 131001 9+ 100081 0001+ 0110 61 0111 17 4.7.1 4.7.1 一位十进制加法运算一位十进制加法运算252. 余余3码加法运算码加法运算 余余3码的加法规则:码的加法规则: 两两个个十十进进制制数数的的余余3码码相相加加,按按“逢二进一逢二进一”的原则进行;的原则进行; 若若 其其 和和 没没 有有 进进 位位 , 则则 减减 3( 即即+1101)校正;)校正; 若若其其和和有有进进位位,则则加加3(即即+0011)校正。校正。4.7.1 4.7.1 一位十进制加法运算一位十进制加法运算26余余3码的校正关系码的校正关系十进制数十进制数余余3码码C4S4S3S2S1校正前的二进制数校正前的二进制数C4S4S3S2S1校正与否校正与否01890 0 0 1 10 0 1 0 0 0 1 0 1 10 1 1 0 00 0 1 1 00 0 1 1 1 0 1 1 1 00 1 1 1 1-3校正校正1011 18191 0 0 1 11 0 1 0 0 1 1 0 1 11 1 1 0 01 0 0 0 01 0 0 0 1 1 1 0 0 01 1 0 0 1+3校正校正4.7.1 4.7.1 一位十进制加法运算一位十进制加法运算27校正举例校正举例0110 3+ 100051110+ 1101 无进位,无进位,-3,+1101 1011 81001 6+ 100051 0001+ 0011 有进位,有进位,+31 0100 11 4.7.1 4.7.1 一位十进制加法运算一位十进制加法运算284.7.2 4.7.2 十进制加法器十进制加法器 1. 一位一位8421码加法器码加法器 校正函数校正函数=C4+S4S3+S4S2 向上一位的进位向上一位的进位C4=校正函数校正函数29一位一位8421码加法器码加法器 图图4-21 一位一位8421码加法器码加法器1 4.7.2 4.7.2 十进制加法器十进制加法器 302. 一位余一位余3码加法器码加法器 C4=0,-3校正;校正;C4=1,+3校正。校正。 向上一位的进位向上一位的进位C4=C44.7.2 4.7.2 十进制加法器十进制加法器 31一位余一位余3码加法器码加法器 图图4-22 一位余一位余3码加法器码加法器 4.7.2 4.7.2 十进制加法器十进制加法器 324.7.3 4.7.3 多位十进制加法多位十进制加法 对对于于多多位位十十进进制制数数加加法法可可采采用用多多个个BCD码码加加法法器器,每每个个BCD码码加加法法器器就就是是前前述述的的一一个个一一位位十十进进制制加加法法器器,可可执执行行两两个个一一位位BCD数数的的加加法法。若若n位位BCD数数相相加加,由由从从低低位位至至高高位位采采用用行行波波式式串串行行进进位位的的n位十进制加法器完成。位十进制加法器完成。334.8 4.8 逻辑运算与实现逻辑运算与实现 计计算算机机在在解解题题过过程程中中,除除了了要要做做大大量量的的算算术术运运算算外外,还还需需做做许许多多逻逻辑辑操操作作,如如:与与、或或、非非、异异或或等等。逻逻辑辑运运算算比比算算术术运运算算要要简简单单得得多多,这这是是因因为为逻逻辑辑运运算算是是按按位位进进行行的的,位位与与位位之之间间没没有有进进位位与与借借位位的关系的关系。341. 逻辑非逻辑非 逻逻辑辑非非又又称称求求反反操操作作,它它对对某某个个寄寄存存器或主存单元中各位代码按位取反。器或主存单元中各位代码按位取反。 设:设:X=X0X1Xn,Z=Z0Z1Zn 则:则:Zi= (i=0,1,n)2. 逻辑乘逻辑乘 逻逻辑辑乘乘就就是是将将两两个个寄寄存存器器或或主主存存单单元元中的每一相应位的代码进行按位与操作。中的每一相应位的代码进行按位与操作。 设:设:X=X0X1Xn,Y=Y0Y1Yn, Z=Z0Z1Zn 则:则:Zi=XiYi(i=0,1,n) 4.8 4.8 逻辑运算与实现逻辑运算与实现353. 逻辑加逻辑加 逻逻辑辑加加就就是是将将两两个个寄寄存存器器或或主主存存单单元中的每一相应位的代码进行或操作。元中的每一相应位的代码进行或操作。 设:设:X=X0X1Xn,Y=Y0Y1Yn, Z=Z0Z1Zn 则:则:Zi=XiYi(i=0,1,n)4. 逻辑异或逻辑异或 逻逻辑辑异异或或又又称称按按位位加加,它它对对两两个个寄寄存器或主存单元中各位的代码求模存器或主存单元中各位的代码求模2和。和。 设:设:X=X0X1Xn,Y=Y0Y1Yn, Z=Z0Z1Zn 则:则:Zi=Xi Yi(i=0,1,n)4.8 4.8 逻辑运算与实现逻辑运算与实现364.9 运算器的基本组成与实例运算器的基本组成与实例 运运算算器器是是在在控控制制器器的的控控制制下下实实现现其其功功能能的的。运运算算器器不不仅仅可可以以完完成成数数据据信信息息的的算算逻逻运运算算,还还可可以以作作为为数数据据信信息息的的传传送送通通路。路。374.9.1 4.9.1 运算器结构运算器结构 1. 运算器的基本组成运算器的基本组成 基基本本的的运运算算器器包包含含以以下下几几个个部部分分:实实现现基基本本算算术术、逻逻辑辑运运算算功功能能的的ALU,提提供供操操作作数数与与暂暂存存结结果果的的寄寄存存器器组组,有有关关的的判别逻辑判别逻辑和和控制电路控制电路等。等。 运运算算器器内内的的各各功功能能模模块块之之间间的的连连接接也也广广泛泛采采用用总总线线结结构构,这这个个总总线线称称为为运运算算器器的的内内部部总总线线,ALU和和各各寄寄存存器器都都挂挂在在上上面面。运运算算器器的的内内部部总总线线是是CPU的的内内部部数据通路,因此只有数据线数据通路,因此只有数据线。381. 运算器的基本组成(续)运算器的基本组成(续) 带多路选择器的运算器带多路选择器的运算器 各各寄寄存存器器可可以以独独立立、多多路路地地将将数数据据送送至至ALU的的多多路路选选择择器器,使使ALU有有选选择择地地同同时时获获得得两两路路输输入入数数据据。运运算算器器的的内内部部总总线线是是一一组组单单向向传传送送的的数数据据线线,它它将将运运算算结结果果送送往往各各寄寄存存器器,由由寄寄存存器器的的同同步步打打入入脉脉冲冲CPi将将内内部部总总线线上上的的数数据据送送入入Ri。如如果果同同时时发发出出几几个个打打入入脉脉冲冲,则则可可将将总总线线上上的的同同一一数数据据同同时时送入几个相关的寄存器中。送入几个相关的寄存器中。 4.9.1 4.9.1 运算器结构运算器结构 39带多路选择器的运算器带多路选择器的运算器图图4-24 带多路选择器的运算器带多路选择器的运算器4.9.1 4.9.1 运算器结构运算器结构 401.运算器的基本组成(续)运算器的基本组成(续) 带输入锁存器的运算器带输入锁存器的运算器 运运算算器器的的内内部部总总线线是是一一组组双双向向传传送送的的数数据据线线。为为了了进进行行双双操操作作数数之之间间的的运运算算操操作作,ALU输输入入端端前前设设置置了了一一级级锁锁存存器器,可可 暂暂 存存 操操 作作 数数 。 例例 如如 , 要要 实实 现现(R0)+(R1)R2,可可通通过过内内部部总总线线先先将将R0中中的的数数据据送送入入锁锁存存器器1,再再通通过过内内部部总总线线将将R1中中的的数数据据送送入入锁锁存存器器2,然然后后相相加加,并将结果经总线送入并将结果经总线送入R2。 4.9.1 4.9.1 运算器结构运算器结构 41带输入锁存器的运算器带输入锁存器的运算器图图4-25 带输入锁存器的运算器带输入锁存器的运算器4.9.1 4.9.1 运算器结构运算器结构 422. 运算器的内部总线结构运算器的内部总线结构 单总线结构运算器单总线结构运算器 图图4-25就就是是单单总总线线结结构构运运算算器器。这这种种结结构构的的运运算算器器实实现现一一次次双双操操作作数数的的运运算算需需要分成三步,它的主要缺点是操作速度慢。要分成三步,它的主要缺点是操作速度慢。 4.9.1 4.9.1 运算器结构运算器结构 432. 运算器的内部总线结构(续)运算器的内部总线结构(续) 双总线结构运算器双总线结构运算器 两两个个操操作作数数可可以以分分别别通通过过总总线线1和和总总线线2同同时时送送到到ALU去去进进行行运运算算,并并且且立立即即可可以以得得到到运运算算的的结结果果。但但是是ALU的的输输出出不不能能直直接接送送到到总总线线上上去去,这这是是因因为为此此时时两两条条总总线线都都被被操操作作数数所所占占据据着着,所所以以必必须须在在ALU的的输输出出端端设设置置一一个个缓缓冲冲器器,先先将将运运算算结结果果送送入入缓缓冲冲器器,第第二二步步再再把把结结果果送送至至目目的的寄寄存存器器。显显然然,它它的的执执行行速速度度比比单单总总线要快,每次操作比单总线少一步。线要快,每次操作比单总线少一步。 4.9.1 4.9.1 运算器结构运算器结构 44双总线结构运算器双总线结构运算器图图4-26(a) 双总线结构运算器双总线结构运算器4.9.1 4.9.1 运算器结构运算器结构 452. 运算器的内部总线结构(续)运算器的内部总线结构(续) 三总线结构运算器三总线结构运算器 ALU的的两两个个输输入入端端分分别别由由两两条条总总线线供供给给,输输出出与与第第三三条条总总线线相相连连,这这样样算算逻逻操操作作就就可可以以在在一一步步控控制制之之内内完完成成。如如果果某某一一个个数数不不需需要要运运算算和和修修改改,而而需需要要直直接接由由总总线线2传传到到总总线线3,可可通通过过总总线线旁旁路路器器把把数数据据送送出出,而而不不必必借借助助于于ALU。三三总总线线结结构构的的特特点点是是操操作作速速度度快快,但但控控制制较较前前两两种种复杂。复杂。4.9.1 4.9.1 运算器结构运算器结构 46三总线结构运算器三总线结构运算器图图4-26(b) 三总线结构运算器三总线结构运算器4.9.1 4.9.1 运算器结构运算器结构 474.9.2 4.9.2 ALUALU举例举例 1. ALU电路电路 ALU即即算算术术逻逻辑辑单单元元,它它是是既既能能完完成成算算术术运运算算又又能能完完成成逻逻辑辑运运算算的的部部件件。前前面面已已经经讨讨论论过过,无无论论是是加加、减减、乘乘、除除运运算算,最最终终都都能能归归结结为为加加法法运运算算。因因此此,ALU的的核核心心首首先先应应当当是是一一个个并并行行加加法法器器,同同时时也也能能执执行行像像“与与”、“或或”、“非非”、“异或异或”这样的逻辑运算。这样的逻辑运算。 482. 4位位ALU芯片芯片 以以典典型型的的4位位ALU芯芯片片(74181)为为例例介介绍绍ALU的的结结构构及及应应用用。74181能能执执行行16种算术运算和种算术运算和16种逻辑运算。种逻辑运算。(见表见表4-14) 图图4-27(a) 74181 芯片方框图芯片方框图4.9.2 4.9.2 ALUALU举例举例 493. ALU的应用的应用 74181的的4位位作作为为一一个个小小组组,小小组组间间既既可可以以采采用用串串行行进进位位,也也可可以以采采用用并并行行进进位位。当当采采用用串串行行进进位位时时,只只要要把把低低一一片片的的Cn+4与与高高一一片片的的Cn相相连连即即可可。当当采采用用组组间间并并行行进进位位时时,需需要要增增加加一一片片74182,这这是是一一个个先先行行进进位位部部件件。74182可可以以产产生生3个个进进位位信信号号Cn+x、Cn+y、Cn+z,并并且且还还产产生生大大组进位产生函数和进位传递函数。组进位产生函数和进位传递函数。4.9.2 4.9.2 ALUALU举例举例 5074182芯片方框图芯片方框图 图图4-28 74182芯片方框图芯片方框图 4.9.2 4.9.2 ALUALU举例举例 513. ALU的应用(续)的应用(续) 各各片片74181输输出出的的组组进进位位产产生生函函数数和和组组进进位位传传递递函函数数作作为为74182的的输输入入,而而74182输输出出的的进进位位信信号号Cn+x、Cn+y、Cn+x作作为为74181的的输输入入,74182输输出出的的大大组组进进位位产产生生函函数数和和大大组组进进位位传传递递函函数数可可作作为为更更高高一一级级74182的输入。的输入。 4.9.2 4.9.2 ALUALU举例举例 524.9.3 4.9.3 浮点运算器举例浮点运算器举例 1. 80x87的数据格式的数据格式 80x87可可处处理理7种种不不同同的的数数据据类类型型。对对整整数数来来说说,最最高高位位为为符符号号位位,用用补补码码表表示示,有有16、32和和64位位三三种种格格式式。压压缩缩的的十十进进制制数数串串是是用用特特殊殊形形式式表表示示的的整整数数。十十进进制制数数的的一一位位用用4位位二二进进制制表表示示,80位位的的低低72位位表表示示18位位十十进进制制数数,最最高高位位为为符符号号位位,正正数数和和负负数数都都是是以以原原码码形形式式存存储储的的。浮浮点点数数有有32、64和和80位位三三种种格格式式,阶阶码码的的底底为为2,用移码表示,尾数用原码表示。,用移码表示,尾数用原码表示。532.80x87的内部结构的内部结构 80x87的的内内部部结结构构由由总总线线控控制制逻逻辑辑部部件件、数数据据接接口口与与控控制制部部件件、浮浮点点运运算算部部件件3个主要功能模块组成。个主要功能模块组成。 在在80x87的的浮浮点点运运算算部部件件中中,分分别别设设置置了了阶阶码码(指指数数)运运算算部部件件与与尾尾数数运运算算部部件,并设有加速移位操作的移位器。件,并设有加速移位操作的移位器。 80x87与与主主微微处处理理器器协协同同工工作作,微微处处理理器器执执行行所所有有的的常常规规指指令令,而而80x87只只执执行行专专门门的的算算术术协协处处理理器器指指令令,称称为为换换码码(ESC)指指令令。微微处处理理器器和和协协处处理理器器可可以同时或并行执行各自的指令以同时或并行执行各自的指令。4.9.3 4.9.3 浮点运算器举例浮点运算器举例 54
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号