第六讲定点运算器及浮点数运算_第1页
第六讲定点运算器及浮点数运算_第2页
第六讲定点运算器及浮点数运算_第3页
第六讲定点运算器及浮点数运算_第4页
第六讲定点运算器及浮点数运算_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成与体系结构计算机组成与体系结构 1 1.1.基本思想基本思想 SiAi Bi Ci 一位全加器一位全加器(FA)(FA)的逻辑表达式为的逻辑表达式为: : 将将A Ai i和和B Bi i先组合成由控制参数先组合成由控制参数S S0 0,S,S1 1,S,S2 2,S,S3 3控制的组合函数控制的组合函数X Xi i和和Y Yi i; (2)(2)然后再将然后再将X Xi i,Y,Yi i和下一位进位数通过全加器进行全加。和下一位进位数通过全加器进行全加。 这样这样, ,不同的控制参数可以得到不同的组合函数不同的控制参数可以得到不同的组合函数, ,因而能够实现多种因而能够实现多种 算

2、术运算和逻辑运算。算术运算和逻辑运算。 解决方案:解决方案: 多功能算术多功能算术/ /逻辑运算单元逻辑运算单元(ALU)(ALU) 将全加器的功能扩展以完成多种算术逻辑运算。将全加器的功能扩展以完成多种算术逻辑运算。 Ci 1= = AiBi (Ci (Ai Bi) = = AiBiBiCiCiAi 计算机组成与体系结构计算机组成与体系结构 2 S0 S1 S2 S3 X0Y0 参数参数S0 ,S1 ,S2 ,S3 分别控制输入分别控制输入Ai 和和Bi , , 产生产生Y和和X的函数。其中:的函数。其中: Yi是受是受S0 ,S1控制的控制的Ai和和Bi的组合函数;的组合函数; Xi是受是

3、受S2 , ,S3控制的控制的Ai和和Bi组合函数。组合函数。 函数关系如表所示。函数关系如表所示。 XiS2S3S2S3( (AiBi ) )S2S3 (AiBi ) )S2S3Ai YiS0S1AiS0S1AiBiS0S1AiBi 核心部分是由两个半加器组成的全加器核心部分是由两个半加器组成的全加器。 由由M控制第二级半加器选择逻辑运算或控制第二级半加器选择逻辑运算或 算术运算(所需的低位进位算术运算(所需的低位进位Cn n )。 一位一位ALU基本逻辑电路基本逻辑电路 计算机组成与体系结构计算机组成与体系结构 3 S0 S1 Yi S2 S3 Xi 00 01 10 11 Ai AiBi

4、 AiBi 0 00 01 10 11 1 AiBi AiBi Ai 进一步化简进一步化简: Xi = S3AiBi + S2AiBi Yi = Ai + S0Bi + S1Bi Ai + S0Bi + S1Bi S3AiBi + S2AiBi XiYi = = Yi FiYi Xi Cn+i Cn i1 YiXiCn i 计算机组成与体系结构计算机组成与体系结构 4 综上所述,综上所述,ALU的的一位逻辑一位逻辑表达式为:表达式为: Xi = S3AiBi + S2AiBi Yi = Ai + S0Bi + S1Bi FiYi Xi Cn+i Cn i1 YiXiCn i 计算机组成与体系结

5、构计算机组成与体系结构 5 4 4位之间采用先行进位(并行进位)公式。位之间采用先行进位(并行进位)公式。 根据根据 Cn i1 YiXiCn i , ,每一位的进位公式可每一位的进位公式可递推递推如下:如下: 第第0 0位向第位向第1 1位的进位公式为位的进位公式为: : Cn 1 Y0X0Cn ( (其中其中C Cn n是向第是向第0 0位(末位)的进位位(末位)的进位) ) 第第1 1位向第位向第2 2位的进位公式为位的进位公式为: : Cn 2 Y1X1Cn 1 Y1Y0X1X0X1Cn 第第2 2位向第位向第3 3位的进位公式为位的进位公式为: : Cn 3 Y2X2Cn 2 Y2Y

6、1X1Y0X1X2X0X1X2Cn 第第3 3位的进位输出(即整个位的进位输出(即整个4 4位运算进位输出)公式为位运算进位输出)公式为: : Cn 4 =Y3+X3Cn3 =Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn 4位位ALU的进位关系及逻辑电路的进位关系及逻辑电路 计算机组成与体系结构计算机组成与体系结构 6 Cn 1 Y0X0Cn Cn 2 Y1X1Cn 1 Y1Y0X1X0X1Cn Cn 3 Y2X2Cn 2 Y2Y1X1Y0X1X2X0X1X2Cn Cn 4 =Y3+X3Cn3 =Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn Cn

7、+4是最后进位输出。是最后进位输出。 逻辑表达式表明逻辑表达式表明, 这是一个先行进位逻辑。换句话说这是一个先行进位逻辑。换句话说, 第第0位位 的进位输入的进位输入Cn可以直接传送到最高位上去可以直接传送到最高位上去,因而可以实现高速因而可以实现高速 运算。运算。 下图为用上述原始推导公式实现的下图为用上述原始推导公式实现的4 4位算术位算术/ /逻辑运算单元逻辑运算单元 (ALU)(ALU) 74181ALU 从进位关系上看从进位关系上看 计算机组成与体系结构计算机组成与体系结构 7 正逻辑表示的正逻辑表示的74181 计算机组成与体系结构计算机组成与体系结构 8 第第3 3位的进位输出(

8、即整个位的进位输出(即整个4 4位运算进位输出)公式为位运算进位输出)公式为: : Cn 4 =Y3+X3Cn3 =Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn 设设 GY3Y2X3Y1X2X3Y0X1X2X3 PX0X1X2X3 则则 Cn 4 GPCn 其中其中G G称为称为进位发生输出进位发生输出, ,P P称为称为进位传送输出进位传送输出。 在电路中多加这两个进位输出的目的在电路中多加这两个进位输出的目的, ,是为了便于实现多片是为了便于实现多片 (组)(组)ALUALU之间的先行进位。之间的先行进位。 P和和G的含义的含义 计算机组成与体系结构计算机组成与体系

9、结构 9 负逻辑表示的负逻辑表示的74181 X0 Y0X1 Y1 X2 Y2 X3 Y3 计算机组成与体系结构计算机组成与体系结构 10 2.2.算术逻辑运算的实现算术逻辑运算的实现 上图中控制端上图中控制端用来控制用来控制ALU进行算术运算还是进行逻辑运算进行算术运算还是进行逻辑运算: 0时:时: 对进位信号没有任何影响。此时对进位信号没有任何影响。此时Fi 不仅与本位的被操作数不仅与本位的被操作数 Yi 和操作数和操作数Xi 有关有关, 而且与向本位的进位值而且与向本位的进位值Cn+i 有关有关, 因此因此 0时时, 进行进行算术操作算术操作。 1时:时: 封锁了各位的进位输出封锁了各位

10、的进位输出, 即即Cn+i 0, 因此各位的运算结果因此各位的运算结果Fi 仅与仅与Yi 和和Xi 有关有关, 故故1时时, 进行进行逻辑操作逻辑操作。 计算机组成与体系结构计算机组成与体系结构 11 下图为工作于负逻辑和正逻辑操作方式的下图为工作于负逻辑和正逻辑操作方式的74181ALU方框图。方框图。 两种操作是等效的。两种操作是等效的。 对正逻辑操作数来说:对正逻辑操作数来说: 算术运算称高电平操作;算术运算称高电平操作; 逻辑运算称正逻辑操作逻辑运算称正逻辑操作 (即高电平为即高电平为“1”,低电平为低电平为 “0”)。 对于负逻辑操作数来说对于负逻辑操作数来说: 正好相反。正好相反。

11、 计算机组成与体系结构计算机组成与体系结构 12 A A+ B A+ B 减1 A加AB (A+B)加AB A减B减1 AB减1 A加AB A加B (A+B)加AB AB减1 A加A* (A+B)加A (A+B)加A A减1 A A+ B A B 逻辑0 A B B A B A B A+ B A B B A B 逻辑1 A+ B A+ B A A减1 AB减1 AB减1 减1 A加(A+B) AB 加(A+B) A减B减1 A+ B A加(A+B) A加B AB加(A+B) A+ B A加A* AB加A AB加A A A A B A+ B 逻辑1 A+ B B A B A+ B A B A B

12、 B A+ B 逻辑0 A B A B A L L L L L L L H L L H L L L H H L H L L L H L H L H H L L H H H H L L L H L L H H L H L H L H H H H L L H H L H H H H L H H H H 算术运算 M=L Cn =H 逻辑M=H算术运算 M=L Cn =L 逻辑M=H 正逻辑输入与输出负逻辑输入与输出工作方式 选择输入 S3 S2 S1 S0 计算机组成与体系结构计算机组成与体系结构 13 (1)(1) H H高电平高电平,L,L低电平;低电平; (2)(2) * *表示每一位均移到

13、下一个更高位表示每一位均移到下一个更高位, ,即即A A* *2A2A。 (3)(3) 算术运算操作是用补码表示法来表示的,其中:算术运算操作是用补码表示法来表示的,其中: “ “加加”是指算术加,运算时要考虑进位;是指算术加,运算时要考虑进位; 符号符号“”是指是指“逻辑加逻辑加”。 (4)(4) 减法是用补码方法进行的,其中数的反码是内部产生的减法是用补码方法进行的,其中数的反码是内部产生的, , 而结果输出而结果输出“A A减减B B减减1”1”,因此做减法时需在最末位产生一个强,因此做减法时需在最末位产生一个强 迫进位迫进位( (加加1), 1), 以便产生以便产生“A A减减B”B”

14、的结果。的结果。 (5)(5) “A “AB”B”输出端可指示两个数是否相等;输出端可指示两个数是否相等; 计算机组成与体系结构计算机组成与体系结构 14 3.3.并行加法器的进位逻辑并行加法器的进位逻辑 74181ALU为为4位并行加法器,位并行加法器, 组成组成16位的并行加法器位的并行加法器怎么办?怎么办? 4片片(组组)74181连接连接 怎样连?怎样连? 组与组之间串行连接组与组之间串行连接 组与组之间并行连接组与组之间并行连接 计算机组成与体系结构计算机组成与体系结构 15 组间串行进位组间串行进位 C4G0P0 C0 C8G1P1 C4 C12G2P2 C8 C16G3P3 C1

15、2 进位关系进位关系 Cn 1 Y0X0Cn Cn 2 Y1X1Cn 1 Y1Y0X1X0X1Cn Cn 3 Y2X2Cn 2 Y2Y1X1Y0X1X2X0X1X2Cn Cn 4 =Y3+X3Cn3 =Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn 组内组内组间组间 X0 Y0X1Y1X2Y 2 X3Y 3 X0 Y0X1Y1X2Y 2 X3Y 3 C4C8 C4 C0 0 0 1 1 GY3Y2X3Y1X2X3Y0X1X2X3 PX0X1X2X3 计算机组成与体系结构计算机组成与体系结构 16 (2)(2)组间并行进位组间并行进位两级先行进位的两级先行进位的ALUALU

16、 由串行进位关系由串行进位关系 C8 = G1P1 C4 = G1 + P1 (G0P0 C0 ) = G1+G0P1+P0P1C0 得:得: C4G0P0 C0 C8G1P1 C4 C12G2P2 C8 C16G3P3 C12 C4 = G0P0 C0 C12= G2P2 C8 = G2 + P2 (G1+G0P1+P0P1Cn) = G2+G1P2+G0P1P2+P0P1P2C0 C16 = G3+P3C12 = G3+G2P3+G1P1P2+G0P1P2P3+P0P1P2P3C0 = G*P*C0 其中其中: P*P0P1P2P3 G*G3G2P3G1P1P2G0P1P2P3 根据上述公

17、式实现逻辑电路根据上述公式实现逻辑电路: 计算机组成与体系结构计算机组成与体系结构 17 X 0 Y 0 X 1 Y 1 X 2 Y 2 X 3 Y 3 C12C8 C4 X 0 Y 0 X 1 Y 1 X 2 Y 2 X 3 Y 3 X 0 Y 0 X 1 Y 1 X 2 Y 2 X 3 Y 3 0 X 0 Y 0 X 1 Y 1 X 2 Y 2 X 3 Y 3 计算机组成与体系结构计算机组成与体系结构 18 4.4.先行进位部件(先行进位部件(CLACLA)7418274182 74182是一个并行进位部件,其内部结构图如下:是一个并行进位部件,其内部结构图如下: 其中其中G*称为称为成组

18、进位发生输出成组进位发生输出,P*称为称为成组进位传送输出成组进位传送输出。 计算机组成与体系结构计算机组成与体系结构 19 Cn+ = G0+P0Cn Cn+ = G1+P1Cn+= G1+G0P1+P0P1Cn Cn+ = G2+P2Cn+= G2+G1P2+G0P1P2+P0P1P2Cn Cn 4 = G3+P3Cn+= G3+G2P3+G1P1P2+G0P1P2P3+P0P1P2P3Cn = G* P*Cn 其中其中: P*P0P1P2P3 G*G3G2P3G1P1P2G0P1P2P3 先行进位部件先行进位部件74182CLA74182CLA所提供的进位逻辑关系如下:所提供的进位逻辑关

19、系如下: 计算机组成与体系结构计算机组成与体系结构 20 74181ALU 74181ALU设置了设置了P P和和G G两个本组先行进位输出端。两个本组先行进位输出端。 如果将四片如果将四片7418174181的的P,GP,G输出端送入到输出端送入到7418274182先行进位部件先行进位部件 (CLACLA), ,又可实现第二级的先行进位又可实现第二级的先行进位, ,即组与组之间的先行进位。即组与组之间的先行进位。 例:例:1616位字长位字长ALUALU的构成的构成 G* P* 计算机组成与体系结构计算机组成与体系结构 21 C3、C7、C11是由是由74182同时形成的;同时形成的; 其

20、不同点是其不同点是74182还提供大组间的进位函数还提供大组间的进位函数G* 和大和大 组传递条件组传递条件P*,以便在位数更长时组成下一级先行进,以便在位数更长时组成下一级先行进 位链。位链。 由图可知:由图可知: 计算机组成与体系结构计算机组成与体系结构 22 用若干个用若干个74181ALU位片位片, 与配套的与配套的74182先行进位部件先行进位部件CLA 在一起在一起, 可构成一个全字长的可构成一个全字长的ALU。 例:全字长的例:全字长的ALUALU的构成的构成 用两个用两个1616位全先行进位部件级联组成的位全先行进位部件级联组成的3232位位ALUALU逻辑方框图。逻辑方框图。

21、 计算机组成与体系结构计算机组成与体系结构 23 十进制加法器十进制加法器 十进制加法器可由十进制加法器可由BCD码码( (二二十进制码十进制码)来设计来设计,它可以在二它可以在二 进制加法器的基础上加上适当的进制加法器的基础上加上适当的“校正校正”逻辑逻辑来实现。来实现。 7 0 1 1 1 + 6 + 0 1 1 0 1 3 1 1 0 1 (= D) + 0 1 1 0 1 0 0 1 1 (= 13) 3 0 0 1 1 + 5 + 0 1 0 1 8 1 0 0 0 (=8) X+Y+C10 调整调整 计算机组成与体系结构计算机组成与体系结构 24 故:故: 1. 1. 和为和为10

22、101515时,加时,加6 6校正;校正; 2. 2. 和数有进位时,加和数有进位时,加6 6校正。校正。 和数和数(4位位) 有进位有进位 调整调整 28 0010 1000 28 0010 1000 + 9 + 9 0000 10010000 1001 37 0011 0001 37 0011 0001 (=31=31) 0000 01100000 0110 0011 0111 (=37) 0011 0111 (=37) 计算机组成与体系结构计算机组成与体系结构 25 1.1.一位一位BCDBCD码行波式进位加法器一般结构:码行波式进位加法器一般结构: 0 11 1010 1011 110

23、0 1101 1110 1111 计算机组成与体系结构计算机组成与体系结构 26 2.n2.n位位BCDBCD码行波式进位加法器一般结构:码行波式进位加法器一般结构: 计算机组成与体系结构计算机组成与体系结构 27 浮点运算方法和浮点运算器浮点运算方法和浮点运算器 浮点加、减法运算浮点加、减法运算 浮点乘、除法运算浮点乘、除法运算 计算机组成与体系结构计算机组成与体系结构 28 尾数尾数:用定点小数表示,给出有效数字的位数,:用定点小数表示,给出有效数字的位数, 决定了浮点数的表示精度;决定了浮点数的表示精度; 阶码阶码:用整数形式表示,指明小数点在数据中的位:用整数形式表示,指明小数点在数据

24、中的位 置,决定了浮点数的表示范围。置,决定了浮点数的表示范围。 机器浮点数格式:机器浮点数格式: 浮点数的表示方法浮点数的表示方法 阶符阶符 阶码阶码 数符数符 尾数尾数 Es E1 E2 Em Ms M1 M2 Mn 计算机组成与体系结构计算机组成与体系结构 29 IEEE 标准:尾数用原码;标准:尾数用原码; 阶码用阶码用“移码移码”;基为;基为2。 浮点数的标准格式浮点数的标准格式 按照按照 IEEE754 的标准,的标准,32位浮点数和位浮点数和64位浮点数位浮点数 的标准格式为的标准格式为 : 31 30 23 22 0 S E M 32位位 S E M 63 62 52 51 0

25、 64位位 为便于软件移植,使用为便于软件移植,使用 IEEE标准标准 计算机组成与体系结构计算机组成与体系结构 30 设有两个浮点数设有两个浮点数和和, 它们分别为它们分别为: 浮点加、减法运算浮点加、减法运算 其中其中 Ex 和和 Ey 分别为数和的阶码,分别为数和的阶码, Mx 和和 My为数和的尾数。为数和的尾数。 两浮点数进行加法和减法的运算规则是两浮点数进行加法和减法的运算规则是: (Mx2Ex Ey My)2Ey Ex 0, ExEy 若若E 0, ExEy 通过尾数的移动来改变通过尾数的移动来改变 Ex或或Ey,使其相等使其相等. 对阶原则对阶原则 阶码小的数向阶码大的数对齐;

26、阶码小的数向阶码大的数对齐; 小阶的尾数右移,每右移一位小阶的尾数右移,每右移一位, ,其阶码加其阶码加1 1( (右右规规) )。 (2) 对阶对阶 (1) 0 操作数检查操作数检查 计算机组成与体系结构计算机组成与体系结构 33 例例: x=2010.1101, y=211(-0.1010), 求求x+y=? 解解:为便于直观了解,两数均以:为便于直观了解,两数均以补码补码表示,阶码、尾数均采用表示,阶码、尾数均采用 双符号位。双符号位。 x补 补=00 01, 00.1101 y补补=00 11, 11.0110 E补 补= Ex补补 Ey补 补= 00 01+11 01 = 11 10

27、 E = - -2, 表示表示Ex比比Ey小小2, 因此将因此将x的尾数右移两位的尾数右移两位. 右移一位右移一位, 得得 x补 补=00 10, 00.0110 再右移一位再右移一位, 得得 x补 补=00 11, 00.0011 至此至此, E=0, 对阶完毕对阶完毕. 计算机组成与体系结构计算机组成与体系结构 34 尾数求和方法与定点加减法运算完全一样。尾数求和方法与定点加减法运算完全一样。 对阶完毕可得对阶完毕可得: : x x补 补=00 11, 00.0011 =00 11, 00.0011 y y补 补=00 11, 11.0110 =00 11, 11.0110 对尾数求和对尾

28、数求和: : 00.0011 00.0011 + 11.0110 + 11.0110 11.1001 11.1001 即得即得: : x+y x+y补 补=00 11, 11.1001 =00 11, 11.1001 (3) 尾数求和运算尾数求和运算 计算机组成与体系结构计算机组成与体系结构 35 (4) 结果规格化结果规格化 求和之后得到的数可能不是规格化了的数求和之后得到的数可能不是规格化了的数, , 为了增加有效数为了增加有效数 字的位数字的位数, , 提高运算精度提高运算精度, ,必须将求和的结果规格化必须将求和的结果规格化. . 规格化的定义规格化的定义: : ( (二进制二进制)

29、) 1 2 1 S 对正数对正数: : S=00.1 S=00.1 对负数对负数: : S=11.0 S=11.0 采用双符号位的补码:采用双符号位的补码: 采用原码:采用原码: 正数正数: : S=0.1 负数:负数: S=1.1 计算机组成与体系结构计算机组成与体系结构 36 若不是规格化的数若不是规格化的数, ,需要尾数需要尾数向左向左移位移位, ,以实现规格化的过程以实现规格化的过程, , 我们称其为我们称其为向左规格化向左规格化。 向左规格化向左规格化 前例中前例中, , 00 11, 11.100100 11, 11.1001不是规格化数不是规格化数, ,因而需要左规因而需要左规,

30、 ,即即左左 移一位移一位, ,阶码减阶码减1 1, ,得得: : x+y x+y补 补=00 10, 11.0010 =00 10, 11.0010 向右规格化向右规格化 浮点加减运算时浮点加减运算时, ,尾数求和的结果也可能得到:尾数求和的结果也可能得到: 01.01. 或或 10.10., , 即两符号位不等,即结果的绝对值大于即两符号位不等,即结果的绝对值大于1 1。向左破坏了规格化向左破坏了规格化。 此时此时, ,将尾数运算的结果右移一位将尾数运算的结果右移一位, ,阶码加阶码加1,1,称为称为向右规格化。向右规格化。 计算机组成与体系结构计算机组成与体系结构 37 例:例:两浮点数

31、两浮点数 x=0.1101 210 , y=(0.1011) 201, 求求x+y。 解解: x补 补=00 10, ,00.1101 y补 补=00 01, ,00.1011 对阶:对阶: E补 补= Ex补补 Ey补 补=00 10+ 11 11= 00 01 y向向x对齐,将对齐,将y的尾数右移一位,阶码加的尾数右移一位,阶码加1。 y补 补=00 10, ,00.0101 求和:求和: 00.1101 + 00.0101 01.0010 x+y补 补=00 10, ,01.0010 右归:右归:运算结果两符号位不同,其绝对值大于运算结果两符号位不同,其绝对值大于1,右归。,右归。 x+

32、y补 补= 00 11, ,00.1001 计算机组成与体系结构计算机组成与体系结构 38 在对阶或向右规格化时在对阶或向右规格化时, 尾数要向右移位尾数要向右移位, 这样这样, 被右移的尾数被右移的尾数 的低位部分会被丢掉的低位部分会被丢掉, 从而造成一定误差从而造成一定误差,因此要进行因此要进行舍入处理舍入处理。 简单的舍入方法有两种简单的舍入方法有两种: “0 “0舍舍1 1入入”法法 即如果右移时被丢掉数位的最高位为即如果右移时被丢掉数位的最高位为0 0则舍去,反之则将尾则舍去,反之则将尾 数的末位加数的末位加“1”1”。 “ “恒置恒置1”1”法法 即只要数位被移掉,就在尾数的末位恒

33、置即只要数位被移掉,就在尾数的末位恒置“1”1”。从概率上。从概率上 来来 说说, ,丢掉的丢掉的0 0和和1 1各为各为1/21/2。 (5) 舍入处理舍入处理 IEEE754 IEEE754标准中,舍入处理提供了四种可选方法:标准中,舍入处理提供了四种可选方法: 计算机组成与体系结构计算机组成与体系结构 39 (6)(6)溢出处理溢出处理 与定点加减法一样,浮点加减运算最后一步也需判溢出。与定点加减法一样,浮点加减运算最后一步也需判溢出。 在浮点规格化中已指出,当尾数之和在浮点规格化中已指出,当尾数之和(差差)出现出现01 或或10时,并不表示溢出,只有将此数时,并不表示溢出,只有将此数右

34、规右规后,再后,再 根据根据阶码阶码来判断浮点运算结果是否溢出。来判断浮点运算结果是否溢出。 计算机组成与体系结构计算机组成与体系结构 40 若机器数为补码,尾数为规格化形式,并假设阶符取若机器数为补码,尾数为规格化形式,并假设阶符取2位,阶位,阶 码取码取7位、数符取位、数符取2位,尾数取位,尾数取n位,则它们能表示的补码在数轴位,则它们能表示的补码在数轴 上的表示范围如图所示。上的表示范围如图所示。 正正负负 计算机组成与体系结构计算机组成与体系结构 41 图中图中A,B,a,b分别对应最小负数、最大正数、最大负分别对应最小负数、最大正数、最大负 数和最小正数。它们所对应的真值分别是:数和

35、最小正数。它们所对应的真值分别是: A最小负数最小负数 2+127 (-1) B最大正数最大正数 2+127 (1-2-n) a最大负数最大负数 2-128 (-2-1-2-n) b最小正数最小正数 2-128 2-1 正正负负 计算机组成与体系结构计算机组成与体系结构 42 图中图中a,b之间的阴影部分,对应阶码小于之间的阴影部分,对应阶码小于128的情况,叫做浮点的情况,叫做浮点 数的下溢。下溢时浮点数值趋于零,故机器不做溢出处理,数的下溢。下溢时浮点数值趋于零,故机器不做溢出处理, 仅把它作为机器零。仅把它作为机器零。 图中的图中的A、B两侧阴影部分,对应阶码大于两侧阴影部分,对应阶码大

36、于127的情况,叫做的情况,叫做 浮点数的上溢。此刻,浮点数真正溢出,机器需停止运算,浮点数的上溢。此刻,浮点数真正溢出,机器需停止运算, 作溢出中断处理。作溢出中断处理。一般说浮点溢出,均是指上溢。一般说浮点溢出,均是指上溢。 可见,浮点机的溢出与否可由阶码的符号决定:可见,浮点机的溢出与否可由阶码的符号决定: 阶码阶码j补 补=01, 为上溢,机器停止运算,做中断处理; 为上溢,机器停止运算,做中断处理; 阶码阶码j补 补=10, 为下溢,按机器零处理。 为下溢,按机器零处理。 计算机组成与体系结构计算机组成与体系结构 43 例:例:若某次加法操作的结果为若某次加法操作的结果为 X+Y补

37、补=11.010, 00.0000110111 则应对其进行向左规格化操作:则应对其进行向左规格化操作: 尾数为:尾数为: 00.1101110000 , 阶码减阶码减4: 11.010 + 11.100 -4补 补 10.110 例:例:若某次加法操作的结果为若某次加法操作的结果为 X+Y补 补=00.111, 10.1011100111 则应对其进行向右规格化操作:则应对其进行向右规格化操作: 尾数为:尾数为: 11.0101110011 , 阶码加阶码加1: 01.000 阶码超出了它所能表示的最大正数(阶码超出了它所能表示的最大正数(+7),表明本次浮),表明本次浮 点运算产生了溢出。

38、点运算产生了溢出。 阶码超出了它所能表示的最小负数(阶码超出了它所能表示的最小负数(-8),表明本次浮点),表明本次浮点 运算产生了溢出。运算产生了溢出。 计算机组成与体系结构计算机组成与体系结构 44 在加、减运算过程中要检查是否产生了溢出:若阶码正常,在加、减运算过程中要检查是否产生了溢出:若阶码正常, 加减运算正常结束;若阶码溢出,则要进行相应的处理。加减运算正常结束;若阶码溢出,则要进行相应的处理。 阶码上溢阶码上溢 超过了阶码可能表示的最大值的正指数值超过了阶码可能表示的最大值的正指数值,一般一般 将其认为是将其认为是和和。 阶码下溢阶码下溢 超过了阶码可能表示的最小值的负指数值超过

39、了阶码可能表示的最小值的负指数值,一般一般 将其认为是将其认为是0。 浮点数的溢出是以其阶码溢出表现出来的浮点数的溢出是以其阶码溢出表现出来的 对尾数的溢出也需要处理对尾数的溢出也需要处理( (上溢上溢右归,下溢右归,下溢舍入)。舍入)。 小结:小结: 计算机组成与体系结构计算机组成与体系结构 45 计算机组成与体系结构计算机组成与体系结构 46 例例 设设=2010 0.11011011, =2100 (- -0.10101100), 求求+。 解:解: 阶码采用双符号位阶码采用双符号位, 尾数采用单符号位尾数采用单符号位, 则它们的浮点表则它们的浮点表 示分别为示分别为 x浮 浮= 00

40、010, 0.11011011 y浮 浮= 00 100, 1.01010100 (1) 求阶差并对阶求阶差并对阶 E = Ex- - Ey= Ex补 补+ - -Ey补补= 00 010 + 11 100 = 11 110 x浮 浮 00 100, 0.00110110(11) 其中其中(11)表示表示M 右移 右移2位后移出的最低两位数。位后移出的最低两位数。 即即E为为- -2, x的阶码小的阶码小, 应使应使 Mx右移两位右移两位, Ex加加2, 计算机组成与体系结构计算机组成与体系结构 47 (2)(2)尾数求和尾数求和 (4) (4) 舍入处理舍入处理 采用采用0舍舍1入法处理入法

41、处理, 则有则有: 1.00010101 1.00010101 + 1 + 1 1.00010110 1.00010110 0.00110110( 0.00110110(1111) ) + 1.01010100 + 1.01010100 1.10001010( 1.10001010(1111) ) (3) (3) 规格化处理规格化处理 尾数运算结果的符号位与最高数值位为同值,应执行左规处尾数运算结果的符号位与最高数值位为同值,应执行左规处 理,结果为理,结果为1.00010101(10)1.00010101(10), 阶码为阶码为00 01100 011。 (5) (5) 判断溢出判断溢出 阶

42、码符号位为阶码符号位为0000,不溢出,故得最终结果为,不溢出,故得最终结果为 x + y = 2011 (-0.11101010) 计算机组成与体系结构计算机组成与体系结构 48 例例 两浮点数两浮点数x = 2010.1101,y = 211(-0.1010)。假。假 设尾数在计算机中以补码表示,可存储设尾数在计算机中以补码表示,可存储4位尾数,位尾数,2位保护位保护 位,阶码以原码表示,求位,阶码以原码表示,求x+y。 解:解:将将x x, ,y y转换成浮点数据格式转换成浮点数据格式 x x 浮 浮 = 00 01, 00.1101 = 00 01, 00.1101 y y 浮 浮 =

43、 00 11, 11.0110 = 00 11, 11.0110 步骤步骤1 1:对阶,阶差为:对阶,阶差为11-01=1011-01=10,即,即2 2,因此将,因此将x x的尾数右移两位,得的尾数右移两位,得 x x 浮 浮 = 00 11, 00.0011 = 00 11, 00.00110101 步骤步骤2 2:对尾数求和,得:对尾数求和,得: : x x+ +y y 浮 浮 = 00 11, 11.1001 = 00 11, 11.10010101 步骤步骤3 3:由于符号位和第一位数相等,不是规格化数,向左规格化,得:由于符号位和第一位数相等,不是规格化数,向左规格化,得 x x+

44、 +y y 浮 浮 = 00 10, 11.0010 = 00 10, 11.00101010 步骤步骤4 4:截去。:截去。 x x+ +y y 浮 浮 = 00 10, 11.0010 = 00 10, 11.0010 步骤步骤5: 5: 数据无溢出,因此结果为数据无溢出,因此结果为 x x+ +y y = 2 = 210 10 (-0.1110)(-0.1110) 计算机组成与体系结构计算机组成与体系结构 49 浮点运算电路 浮点加法器原理框图浮点加法器原理框图 MESMES 小小 ALU 大大 ALU 控制控制 右移右移 左移或右移左移或右移 舍入部件舍入部件 阶码差阶码差 加加 1

45、或减或减 1 MES 11 1 00 0 计算机组成与体系结构计算机组成与体系结构 50 浮点乘、除法运算浮点乘、除法运算 1.1.浮点乘法、除法运算规则浮点乘法、除法运算规则 设有两个浮点数和:设有两个浮点数和: 2ExMx 2EyMy 浮点乘法运算的规则是:浮点乘法运算的规则是: 2(Ex+ Ey) (Mx My) 即:即: 乘积的尾数是相乘两数的尾数之积乘积的尾数是相乘两数的尾数之积; 乘积的阶码是相乘两数的阶码之和。乘积的阶码是相乘两数的阶码之和。 浮点除法运算的规则是浮点除法运算的规则是: 2(Ex Ey) (Mx My) 即:商的尾数是相除两数的尾数之商即:商的尾数是相除两数的尾数

46、之商; 商的阶码是相除两数的阶码之差。商的阶码是相除两数的阶码之差。 计算机组成与体系结构计算机组成与体系结构 51 2. 2. 浮点乘、除法运算步骤浮点乘、除法运算步骤 浮点数的乘除运算大体分为四步:浮点数的乘除运算大体分为四步: (1) 0 操作数检查;操作数检查; (2) 阶码加阶码加/减操作;减操作; (3) 尾数乘尾数乘/除操作;除操作; (4) 结果规格化及舍入处理。结果规格化及舍入处理。 计算机组成与体系结构计算机组成与体系结构 52 (2) 浮点数的阶码运算浮点数的阶码运算 对阶码的运算有对阶码的运算有1、1、两阶码求和、两阶码求差四种、两阶码求和、两阶码求差四种, 运算时还必

47、须检查结果是否溢出。运算时还必须检查结果是否溢出。 在计算机中在计算机中, 阶码通常用补码或移码形式表示。阶码通常用补码或移码形式表示。 移码的运算规则和判定溢出的方法移码的运算规则和判定溢出的方法 移码的定义为移码的定义为 x移 移 = 2n + - 2n x 2n x移 移+ y移移 = 2n + + 2n + = 2n +移 移 按此定义按此定义, 则有则有 = 2n +(2n +(+) +移 移 = - -2n + x移移 + y移移 计算机组成与体系结构计算机组成与体系结构 53 考虑到移码和补码的关系:考虑到移码和补码的关系: 对同一个数值对同一个数值, 其数值位完全相同其数值位完

48、全相同, 而符号位正好完全相反。而符号位正好完全相反。 y补 补的定义为 的定义为 y补 补= 2n+1 + 则求阶码和用如下方式完成:则求阶码和用如下方式完成: = 2n+1 + (2n +(+) x移 移+y补补= 2n + + 2n+1 + 即:即: +移 移= x移移+y补补 (mod 2n+1) 同理:同理: - -移 移= x移移+- -y补补 (mod 2n+1) 混合使用移码和补码混合使用移码和补码 计算机组成与体系结构计算机组成与体系结构 54 使用双符号位的阶码加法器使用双符号位的阶码加法器, 并规定移码的第二个符号位并规定移码的第二个符号位, 即最高符号位恒用即最高符号位

49、恒用 0 参加加减运算参加加减运算, 则溢出条件是结果的最高则溢出条件是结果的最高 符号位为符号位为1: 当低位符号位为当低位符号位为 0时时,(10) 表明结果上溢表明结果上溢, 当低位符号位为当低位符号位为1时时, (11) 表明结果下溢。表明结果下溢。 当最高符号位为当最高符号位为0时时, 表明没有溢出表明没有溢出: 低位符号位为低位符号位为1, (01) 表明结果为正表明结果为正; 为为0, (00) 表明结果为负。表明结果为负。 阶码运算结果溢出处理阶码运算结果溢出处理 计算机组成与体系结构计算机组成与体系结构 55 例:例: = +011,= +110, 求求x+y移 移 和 和

50、x-y移 移, 并判断是否溢出 并判断是否溢出。 解:阶码取解:阶码取3位(不含符号位),其对应的真值范围是位(不含符号位),其对应的真值范围是 -8+7 x移 移= 01 011, y补补= 00 110, -y补补=11 010 x+y移 移= x移移+ y补补= x- -y移 移= x移移+ -y补补= 01 011 + 00 110 10 001 结果上溢。结果上溢。 结果正确结果正确, 为为- -3。 01 011 + 11 010 00 101 计算机组成与体系结构计算机组成与体系结构 56 (3) 尾数处理尾数处理 浮点加减法对结果的规格化及舍入处理也适用于浮点乘除法。浮点加减法

51、对结果的规格化及舍入处理也适用于浮点乘除法。 第一种方法是:第一种方法是: 无条件地丢掉正常尾数最低位之后的全部数值。无条件地丢掉正常尾数最低位之后的全部数值。 这种办法被称为截断处理这种办法被称为截断处理, 好处是处理简单好处是处理简单, 缺点是影响结果缺点是影响结果 的精度。的精度。 第二种办法是:第二种办法是: 运算过程中保留右移中移出的若干高位的值运算过程中保留右移中移出的若干高位的值, 最后再按某种规最后再按某种规 则用这些位上的值修正尾数。则用这些位上的值修正尾数。 这种处理方法被称为这种处理方法被称为舍入处理舍入处理。 计算机组成与体系结构计算机组成与体系结构 57 当尾数用原码表示时当尾数用原码表示时: 最简便的方法是,只要尾数的最低位为最简便的方法是,只要尾数的最低位为1, 或移出或移出 的几位中有为的几位中有为1的数值位的数值位, 就使最低位的值为就使最低位的值为1。 另一种是另一种是0舍舍1入法入法, 即当丢失的最高位的值为即当丢失的最高位的值为1时时, 把这个把这个1加到最低数值位上进行修正加到最低数值位上进行修正, 否则舍去丢失的否则舍去丢失的 的各位的值。这样处理时的各位的值。这样处理时,舍入效果对正数负数相同舍入效果对正数负数相同, 入将使数的绝对值变大入将使数的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论