计算机组成原理_第3章_第1页
计算机组成原理_第3章_第2页
计算机组成原理_第3章_第3页
计算机组成原理_第3章_第4页
计算机组成原理_第3章_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章第三章 计算机中的算术运算计算机中的算术运算 第第1讲:算术逻辑单元讲:算术逻辑单元ALU第第2讲:定点加减运算讲:定点加减运算第第3讲:定点乘除运算讲:定点乘除运算第第4讲:运算器组织、浮点运算、本章复习讲:运算器组织、浮点运算、本章复习3.1 算术逻辑单元算术逻辑单元ALU ALU是运算器的核心组成部分,以逻辑运算为基础。是运算器的核心组成部分,以逻辑运算为基础。ALU的核心部件是加法器。的核心部件是加法器。3.1.1 加法器及其进位结构加法器及其进位结构门电路的几种表示方法门电路的几种表示方法一、半加器一、半加器0001011001010011Ci+1SiBiAi输出输出输入输入图

2、图3-1 半加器框图及真值表半加器框图及真值表 i+1iiiiiiiiiCABSABA BAB图图3-2 半加器逻辑电路图半加器逻辑电路图Ci+1 SiSiCiCi+1AiBiFA00010111 01101001 01010101 00110011 0000111 1 Si Ci Bi Ai 输出输出 输入输入 Ci+1图图3-3 全加器框图及真全加器框图及真值表值表 二、全加器二、全加器Si=Ai Bi Ci Ci+1=AiBi+AiCi+BiCi =AiBi+(Ai+Bi)Ci =AiBi+(Ai Bi)Ci 图图3-4 全加器逻辑电路图全加器逻辑电路图 11&=1=1SiCiA

3、iBiCi+13ty4ty1ty1.5ty1.5tyFull adder constructed from 2 Half Adders !三、三、串行加法器串行加法器ABCPFAIDCIC图图3-5 串行加法器框图串行加法器框图 四、并行加法器四、并行加法器 进位公式分析进位公式分析 Ci+1=AiBi+(Ai Bi)Ci =AiBi+(Ai+Bi)Ci 定义两个辅助函数定义两个辅助函数 Gi=AiBi Pi=Ai Bi Gi (Carry Generate Function) Pi(Carry Propagate Function) Ci+1=Gi+PiCi 串行进位加法器串行进位加法器(R

4、ipple Carry Adder) S3S2S1S0FA3FA2FA1FA0C3C2C1C0A3B3A2B2A1B1A0B0C4图图3-6 四位串行进位加法器框图四位串行进位加法器框图 C1=G0+P0C0 C2=G1+P1C1 C3=G2+P2C2 Cn=Gn-1+Pn-1Cn-1 最长进位延迟时间为最长进位延迟时间为4+2.5(n1)ty,形成最后和的时间是形成最后和的时间是4+2.5(n2)+1.5ty,与与n成正比。成正比。 先行进位加法器先行进位加法器 提高加法器运算速度的关键是消除行波进位中进位逐提高加法器运算速度的关键是消除行波进位中进位逐位串行传播,让各位进位独立同时形成。位

5、串行传播,让各位进位独立同时形成。 C1=G0+P0C0 C2=G1+P1C1= G1+P1(G0+P0C0) C3=G2+P2C2 = G2+P2(G1+P1(G0+P0C0) C4=G3+P3C3 =G3+P3(G2+P2 (G1+P1(G0+P0C0)展开并整理得到展开并整理得到 C1=G0+P0C0 C2=G1+P1G0+P1P0C0 C3=G2+P2G1+P2P1G0+P2P1P0C0 C4=G3+P3G2+P3P2G1+P3P2P1G0 +P3P2P1P0C0 (图图3-8) 先行进位先行进位CLA(Carry Look Ahead)加法器加法器(图图3-9)。3-83-9 组间行

6、波进位加法器组间行波进位加法器 图图3-11 组间行波进位形成过程组间行波进位形成过程ty10864C16C12C8C4C1C0Ci3-10 两级先行进位加法器两级先行进位加法器 Gi*为第为第i组先行进位加法器的进位产组先行进位加法器的进位产 生函数,生函数, Pi*为第为第i组先行进位加法器的进位传组先行进位加法器的进位传 递函数递函数 Gi*=G4i+3+P4i+3G4i+2+ P4i+3P4i+2G4i+1 +P4i+3P4i+2P4i+1G4i Pi*=P4i+3P4i+2P4i+1P4i ,i=0,1,2,3 小组间产生四个进位小组间产生四个进位 C4=G0*+P0*C0 C8=G

7、1*+P1*G0*+P1*P0*C0 C12=G2*+P2*G1*+P2*P1*G0*+ P2*P1*P0*C0 C16=G3*+P3*G2*+P3*P2*G1* + P3*P2*P1*G0*+P3*P2*P1*P0*C03-123-133-143-15其它的并行加法器其它的并行加法器图图3-16 32 32位进位选择加法器位进位选择加法器10五、一位五、一位8421码十进制加法器码十进制加法器 1、十进制数的、十进制数的8421码加法运算规则码加法运算规则 (1) 和和1001时,不必修正时,不必修正例例x=3,y=4,求求x+y=? 解:十进制数运算解:十进制数运算 3 + 4 7 842

8、1码码 0 0 1 1+) 0 1 0 0 0 1 1 1 (+7) 正确结果正确结果 例例x=8,y=5,求,求x+y=? 解:十进制数运算解:十进制数运算 8 + 5 13 8421码码 1 0 0 0+) 0 1 0 1 1 1 0 1 错误结果错误结果 (2) 和和1010时,需要修正时,需要修正 例例x=9,y=8,求,求x+y=?解:十进制数运算解:十进制数运算 9 + 8 17 8421码码 1 0 0 1+) 1 0 0 0 1 0 0 0 1 错误结果错误结果 1 1 0 1 +) 0 1 1 0 1 0 0 1 1(13) 正确正确 1 0 0 0 1+) 0 1 1 0

9、1 0 1 1 1 ( 17 ) 正确正确 2、8421码十进制加法器的组成码十进制加法器的组成十进制数十进制数未修正的和未修正的和C4 S3S2S1S0 8421码码C4 S3S2S1S0 修正法修正法 0123456789 0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 不修正不修正 表表3-1 8421码加法器修正关系码加法器修正关系十

10、进制数十进制数未修正的和未修正的和C4 S3S2S1S0 8421码码C4 S3S2S1S0 修正法修正法 10111213141516171819 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 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 1 +6修正修正 需要修正的项为:需要修正的项为:C4+S3S2+S3S1=1;图图3-17 8

11、4213-17 8421码十进制加法器码十进制加法器3.1.2 多功能算术逻辑单元多功能算术逻辑单元ALU 一、一、多功能算术逻辑单元多功能算术逻辑单元74181 Fi=Ai Bi Ci= Pi Ci Ci+1=GiM+PiMCi 3-18表表3-2 Xi Yi与与Ai Bi的关系的关系 S3 S200011011Xi1Ai+BiAi+BiAiS1 S00110110YiAiAiBiAiBi00i3ii2iiX =S A B +S A Bi1 i0iiY =S B +S B +A 对于任一对于任一Xi、Yi都满足都满足 Xi+Yi=Xi XiYi=Yi Gi=XiYi Pi=Xi Yi=Xi+

12、Yi 则则 Yi = Gi Xi = Pi Ci+1=Gi+PiCi=Yi+XiCi则则 C1=Y0+X0C0 C2=Y1+X1C1=Y1+X1Y0+X1X0C0 C3=Y2+X2C2=Y2+X2Y1+X2X1Y0 +X2X1X0C03-19二、先行进位发生器二、先行进位发生器74182 图中图中G0 G3即即 , 即即 *0G*3G0P3P*0P*3PCn+x=G0*(P0*+Cn)Cn+y=G1*(P1*+G0*(P0*+Cn)Cn+Z=G2*(P2*+G1*(P1*+G0*(P0*+Cn)G(G*)=G3*(P3*+G2*)(P3*+P2*+G1*) (P3*+P2*+P1*+G0*)

13、P (P*)=P3*+P2*+P1*+P0* 3-203-21 SN74181SN74181是是4 4位先行进位位先行进位ALUALU 芯片,中规模集成电路。芯片,中规模集成电路。 SN74182SN74182是是4 4位位BCLA ( (组间先行进位组间先行进位) )芯片。芯片。 多芯片级联构成先行进位多芯片级联构成先行进位ALUALU4 4个个SN74181SN74181芯片串行构成一个芯片串行构成一个1616位单级先行进位位单级先行进位ALUALU4 4个个SN74181SN74181芯片与芯片与1 1个个SN74182SN74182芯片可构成芯片可构成1616位两级先行进位位两级先行进

14、位ALUALU1616个个SN74181SN74181芯片与芯片与5 5个个SN74182SN74182芯片可构成芯片可构成6464位先行进位位先行进位ALUALU 现代主流计算机中现代主流计算机中ALUALU并非通过芯片级联而成并非通过芯片级联而成一个一个CPUCPU芯片中有多个处理器核芯片中有多个处理器核一个核中有多个一个核中有多个3232位位/64/64位位ALU!ALU!多功能算逻单元总结多功能算逻单元总结3.2 定点运算定点运算3.2.1 定点加减运算定点加减运算 一、补码加减法所依据的关系式一、补码加减法所依据的关系式 1、加法、加法 x补补+y补补=x+y补补 (1)x0,y0,

15、则,则x+y0 x补补+y补补=x+y=x+y补补 (2)x0,y0 x补补=x,y补补=2+y 则则 x补补+y补补=2+(x+y) (i) |x|y| 0 x+y1(正数正数) x补补+y补补=2+(x+y) =x+y=x+y补补 0. (ii) |x| |y| -1x+y0(负数负数) x补补+y补补=2+(x+y)=x+y补补 (3) x0 与(与(2)类似)类似 (4) x0,y0 x+y0 x补补=2+x,y补补=2+y, 则则 x补补+y补补=2+x+2+y=2+(2+x+y) x+y0,而且其绝对值又小于而且其绝对值又小于1。 则则12+x+y2 2+(2+x+y)=2+(x+

16、y) x补补+y补补=2+(x+y)=x+y补补 2、减法、减法x y补补=x+(-y)补补 =x补补+-y补补1.(1)0y1(正数正数) y补补=y原原=0.y1y2yn -y原原=1. y1y2yn -y补补=1. y1 y2yn+2 n (2)1y0(负数负数) y补补=1.y1y2yn 因因 y补补=2+y则则 y=y补补 2 = (2 1.y1y2yn) = (1.111+2 n 1.y1y2yn) = (0. y1 y2yn+2 n) y=0. y1 y2yn+2 n( y)为正数为正数 y补补=0. y1 y2yn+2 n 1.1 1 1 1.y1y2yn 例例1 y= 0.0

17、110 y补补=1.1010 y补补=0.0110 例例2 y=0.0111 y补补=0.0111 y补补=1.1001二、运算规则二、运算规则 参加运算的操作数用补码表示。参加运算的操作数用补码表示。 符号位参加运算。符号位参加运算。 对于两数相加减的各种情况,计算对于两数相加减的各种情况,计算机都执行求和操作。当操作码为加运算时机都执行求和操作。当操作码为加运算时,两数直接相加;当操作码为减运算时,两数直接相加;当操作码为减运算时,将减数连同符号位一起求反加将减数连同符号位一起求反加1与被减数相加。与被减数相加。 运算结果以补码表示。运算结果以补码表示。例例1 已知:已知:x=0.1001

18、, y = 0.0110, 求:求:x+y = ?解:解:x补补=0.1001 y补补=1.1010 x补补 0.1001 + y补补 1.1010 x+y补补 1 0.0011 x+y=0.0011 例例2 已知:已知:x= 0.1001, y = 0.0101, 求:求:x+y =?解:解:x补补= 1.0111 y补补= 1.1011 x补补 1.0111 + y补补 1.1011 x+y补补 1 1.0010 x+y= 0.1110 例例3 已知:已知:x=0.1001,y=0.0110, 求:求:x y=?解:解:x补补=0.1001 y补补=0.0110 y补补=1.1010 x补

19、补 0.1001 + y补补 1.1010 x- y补补 1 0.0011 x y =0.0011 例例4 已知:已知:x= 0.1001, y = 0.0110,求:求:x y = ?解:解:x补补= 1.0111 y补补= 1.1010 y补补= 0.0110 x补补 1.0111 + y补补 0.0110 x- y补补 1.1101 x y= 0.0011 三、三、实现补码加减运算的逻辑电路实现补码加减运算的逻辑电路图图3-23图图3-22 四位串行进位补码加减法器四位串行进位补码加减法器四、溢出检测四、溢出检测 1、溢出的概念、溢出的概念 加法器和寄存器由多少个二进制加法器和寄存器由多

20、少个二进制 位组成通常称为定点运算器的字长。位组成通常称为定点运算器的字长。 计算机执行算术运算所产生的结计算机执行算术运算所产生的结 果超出机器数所能表示的数据范围果超出机器数所能表示的数据范围 ,称为溢出。,称为溢出。 例如例如 x=0,110, y=0,011, 则则 x补补 0,110 +y补补 0,011 x+y补补 1,001(溢出)(溢出) x+y = 7 正溢正溢 负溢负溢 (a) 0,110 (+6) +) 1,011 ( 5) 1 0,001(+1) 无溢出无溢出 (b) 1,110 ( 2) +) 1,101( 3) 1 1,011 ( 5) 无溢出无溢出 (c) 0,1

21、10 (+6) +) 0,011 (+3) 1,001 溢出溢出 (d) 1,100 ( 4) +) 1,011 ( 5) 1 0,111 溢出溢出 、2、溢出检测方法、溢出检测方法 (1) 采用一个符号位采用一个符号位 A=an-1an-2a0 B=bn-1bn-2b0 S=sn-1sn-2s0 OVR=an-1bn-1sn-1+an-1bn-1sn-1an-1Sn-1=1 =1 &bn-1OVR图图3-24 溢出检测电路溢出检测电路 (2) 用用cn-1和和cn判断判断 OVR=cn-1 cn (3) 采用双符号位采用双符号位(模模4补码或变形补码补码或变形补码) 模模4补码的定义

22、为补码的定义为 x补补= x补补+y补补=x+y补补x 0 x24+x 2x0 两数相加后结果符号为:两数相加后结果符号为: 00或或11 没有溢出;没有溢出; 01 正溢;正溢; 10 负溢。负溢。 OVR=sf1 sf2例例1 已知已知x=0.010, y=0.011, 求求x+y=?解解 x补补=00.010 y补补=00.011 x补补 00.010 +) y补补 00.011 00.101 无溢出无溢出x+y=0.101 例例2 已知已知x= 0.010, y= 0.011,求,求x+y=?解解 x补补=11.110 y补补=11.101 x补补 11.110 +) y补补 11.1

23、01 11.011 无溢出无溢出x+y= 0.101 例例3 已知已知x=0.110, y=0.011,求求x+y=?解解 x补补=00.110 y补补=00.011 x补补 00.110 +) y补补 00.011 01.001 正溢出正溢出例例4 已知已知x= 0.100,y= 0.101,求,求x+y=?解解 x补补=11.100 y补补=11.011 x补补 11.100 +) y补补 11.011 10.111 负溢出负溢出3.3.2 3.3.2 定点乘法运算定点乘法运算通过多次相加和移位来实现乘除运算。通过多次相加和移位来实现乘除运算。 一、移位操作一、移位操作 1、移位操作的种类

24、、移位操作的种类 逻辑移位逻辑移位 循环移位循环移位 算术移位算术移位 2、逻辑移位(图、逻辑移位(图3-25) 左移低位补左移低位补0,右移高位补,右移高位补0 如如 10110101 01101010 01011010 3、循环移位(图、循环移位(图3-25 ) 10011001 00110011 11001100 4、算术移位、算术移位 算术移位则数的符号不变而数算术移位则数的符号不变而数 量发生变化。左移一位将使数值扩量发生变化。左移一位将使数值扩 大一倍大一倍(乘以乘以2)(在不产生溢出的情在不产生溢出的情 况下况下),右移一位则使数值缩小一,右移一位则使数值缩小一 倍倍(乘以乘以1

25、/2)(如果不考虑舍入的情如果不考虑舍入的情 况况)。 (1) 正数正数 移位后的空位均补移位后的空位均补0(符号不变)(符号不变) 例例 0.0110 0.1100 0.0011例:某变量初值:例:某变量初值:0111 1111 (= 127) 左移左移1位后为:位后为:1111 1110 (= -126 254,溢出,错误,溢出,错误)(2) 负数负数 负数的原码移位后的空位补负数的原码移位后的空位补0 负数的补码左移后的空位补负数的补码左移后的空位补0 ,右移右移后的空位补后的空位补1。 负数的反码移位后的空位补负数的反码移位后的空位补1图图3-253-25移位操作移位操作二、二、原码一

26、位乘法原码一位乘法 设设 x原原=xs.x1x2xn y原原=ys.y1y2yn 则则 x原原y原原 =xs ys.( 0.x1x2xn)(0.y1y2yn) 1、运算方法运算方法 例例 x=0.1101 y=0.1011 0. 1 1 0 1 ) 0. 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0. 1 0 0 0 1 1 1 1乘数寄存器乘数寄存器 =2-1 x + 2-1 0 x + 2-1( x + 2-1( x + 0 ) P1 P2 P3 P4xy=x(0.1011) =0.1x+0.00 x+0.001x+0.0001x =0.1x+0.10

27、 x+0.1(x+0.1x) 对于一般情况对于一般情况 设设 x=0. x1x2xn, y=0. y1y2yn 则则 xy=2 1(y1x+2 1(y2x+ 2 1( +2 1(yn-1x+2 1(ynx+0) )其递推公式为:其递推公式为: P0=0 P1=2 1(ynx+P0) P2=2 1 (yn-1x+P1) Pi=2 1 (yn-i+1x+Pi-1) Pn=2 1 (y1x+Pn-1) xy=(xs ys)Pn 举例:举例:x=0.1101 y=0.1011, xy原原=( xs ys)Pn=0.10001111 xy=0.10001111 流程图流程图2 2、原理框图、原理框图3-

28、28三、补码一位乘法三、补码一位乘法 1、补码与真值之间的关系、补码与真值之间的关系 设设 x补补=xs.x1x2xn 则则 x=-xs+0.x1x2xn2、补码乘法算法的推导、补码乘法算法的推导 设被乘数设被乘数x补补=xs.x1x2xn, 乘数乘数y补补=ys.y1y2yn 则则 xy补补=x补补y 3、补码乘法比较法、补码乘法比较法布斯布斯(Booth)乘法乘法 (1) 运算规则运算规则 xy补补=x补补 ys+y12 1+y22 2+yn2 n =x补补 ys+(y1 y12 1) +(y22 1 y22 2)+(yn2 (n- 1) yn2 n) =x补补(y1 ys)+(y2 y1

29、)2 1+ +(yn yn-1)2 (n 1)+(0 yn)2 n =x补补(y1ys)+2 -1(x补补(y2 y1)+2 -1(x补补(y3 y2)+ +2 -1(x补补(yn yn-1)+2 -1(0+x补补(yn+1 yn) )(yn+1=0) 其递推公式为:其递推公式为:P0补补0P1补补2-1(P0补补+(yn+1-yn)x补)补)P2补补2-1(P1补补+(yn-yn-1)x补)补)Pi补补2-1(Pi-1补补+(yn-i+2-yn-i+1)x补)补)Pn补补=2-1(Pn-1补补+(y2-y1)x补)补)Pn+1补补= Pn补补+(y1-ys)x补补= x.y补补 ysy1y2

30、y3y40 yi+1 yi0 0 yi+1 yi1 x补补 yi+1 yi1 -x补补Booth算法描述如下算法描述如下 参加运算的数用补码表示参加运算的数用补码表示 符号位参加运算符号位参加运算 乘数最低位后面增加一位附加乘数最低位后面增加一位附加位位yn+1(初值为初值为0),以后逐次比较相邻,以后逐次比较相邻两位并按下列规则运算两位并按下列规则运算部分积加部分积加0,右移一位,右移一位部分积加部分积加x补补,右移一位,右移一位部分积加部分积加 x补补,右移位,右移位部分积加部分积加0,右移一位,右移一位 0 00 11 01 1 操作操作 ynyn+1 按上述算法进行按上述算法进行n+1

31、步步(n是不包括符号位在内的字长是不包括符号位在内的字长),但但n+1步不移位步不移位 移位要按补码的移位规则进行移位要按补码的移位规则进行 例例 已知:已知:x=0.0101,y=-0.1101,求求xy=? 解解 x补补=0.0101, y补补=1.0011 x补补=1.1011 xy补补=1.10111111 xy= 0.01000001流程图流程图(2 2) 原理框图原理框图3-30四、快速乘法四、快速乘法1. Booth两位乘法两位乘法 根据补码一位乘法的规则,将比较根据补码一位乘法的规则,将比较ynyn+1的状态与的状态与比较比较yn-1yn的状态所执行的操作合并成一步的状态所执行

32、的操作合并成一步 。部分积部分积+0,右移两位,右移两位部分积部分积+x补,右移两位补,右移两位部分积部分积+x补,右移两位补,右移两位部分积部分积+2x补,右移两位补,右移两位 部分积部分积+2-x补,右移两位补,右移两位部分积部分积+-x补,右移两位补,右移两位 部分积部分积+x补,右移两位补,右移两位部分积部分积+0,右移两位,右移两位0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1操作操作yn-1ynyn+12. 被加数进位保留乘法被加数进位保留乘法阵列乘法器:串行进位阵列乘法器:串行进位 进位保留阵列乘法器进位保留阵列乘法器例:两个无符号整数(四位二进

33、制表示)相乘,被乘数例:两个无符号整数(四位二进制表示)相乘,被乘数X=1111,乘数,乘数1101。假设乘积过程中产生的四个被加数分别用。假设乘积过程中产生的四个被加数分别用A-D表示。则按照表示。则按照被加数进位保留乘法的计算,可把被加数的相加分为三次来完成。被加数进位保留乘法的计算,可把被加数的相加分为三次来完成。 (a) 四位二进制数乘法四位二进制数乘法 (b)采用被加数进位保存加法分解采用被加数进位保存加法分解10图图3-34 被加数进位保存乘法计算过程被加数进位保存乘法计算过程10对六位数乘法:对六位数乘法:Mx QP+ M5 M4 M3 M2 M1 M0 Q5 Q4 Q3 Q2

34、Q1 Q0 A5 A4 A3 A2 A1 A0 B6 B5 B4 B3 B2 B1 C7 C6 C5 C4 C3 C2 D8 D7 D6 D5 D4 D3 E9 E8 E7 E6 E5 E4 F10 F9 F8 F7 F6 F5P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0 F E D C B AC2 S2C1 S1C3 S3C4 S4P3.2.3定点除法运算定点除法运算 一、原码除法一、原码除法 设设x原原=xs.x1x2xn, y原原=ys.y1y2yn, 则则q原原=(xs ys).(x1x2xn/y1y2yn) 1、恢复余数法、恢复余数法 例例 x=0.10

35、11,y=0.1101,求求x/y=? 0.1 1 0 1 0 .1101 0. 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1计算机实现除法计算机实现除法 直接作减法试探,根据所得余数的符号来判断被除直接作减法试探,根据所得余数的符号来判断被除数数(余数余数)与除数的大小。与除数的大小。 用左移被除数用左移被除数(余数余数)实现实现 把求得的每一位商上到商值寄存器的最低一位把求得的每一位商上到商值寄存器的最低一位 被除数被除数(余数余数)减除数的操作用加减除数的操作用加 |y|补补实现。实现。2、不恢复余数法(加减交

36、替法)、不恢复余数法(加减交替法) (1)运算方法运算方法 ri=2ri-1 y ri0,商,商“1”,ri+1=2ri |y| 。 ri0, 商商“0”, ri+1=2(ri+|y|) |y| =2ri+|y| 余数为正,商余数为正,商“1”,2ri |y| 余数为负,商余数为负,商“0”,2ri+|y| 例例 x=0.1011 y= 0.1101 求求x/y原原=? 解:解: |x|=0.1011 |y|=0.1101 |y|补补=1.0011 4x0.0111 2= 0.1101 y0.1101 图图3-35 3-35 流程图流程图3-363.4浮点运算浮点运算 非规格化浮点运算非规格化

37、浮点运算 规格化浮点运算规格化浮点运算3.4.1 浮点加减运算浮点加减运算 设有两个浮点数设有两个浮点数x和和yXExx=2M yEyy=2M 1、对阶、对阶 对阶的第一步是求阶差对阶的第一步是求阶差 xyE=E E 对阶的规则是小阶向大阶看齐对阶的规则是小阶向大阶看齐 例例 两浮点数为两浮点数为 x=0.1101201 y= (0.1010)211 求求 x+y=?解:解:x、y在计算机中以补码表示为在计算机中以补码表示为 x补补=00,01;00.1101Ex Mx y补补=00,11;11.0110Ey My E=00,01+11,01=11,10( 2) x补补=00,11;00.00

38、11012、求和求和/差差 x补补=00,11;00.001101 y补补=00,11;11.0110则则 Mx+My补补为为 0 0. 0 0 1 1 01 +) 1 1. 0 1 1 0 1 1. 1 0 0 1 01即即 x+y补补=00,11;11.100101 3、规格化规格化 (1) 左规左规 x+y补补=00,11;11.1001 01 x+y补补=00,10;11.0010 1 x+y= 0.1110210 (2) 右规右规 例例 x=0.1101210,y=0.1011201 求求 x+y=? x+y补补=00,10;01.0010 x+y补补=00,11;00.1001 则

39、则 x+y=0.10012114、舍入舍入 (1) 0舍舍1入入 01.0100210 00.1010211 01.1011201 00.1110210 1.01101000 1.0110 (2) 恒置恒置1法法 00. 1011211 00.11012105、浮点数的溢出判断、浮点数的溢出判断 阶码有阶码有m位位(包括一位符号位包括一位符号位),采用补码或移码表示,采用补码或移码表示,则表数范围为则表数范围为 2m 1 E 2m 1 1。 流程图流程图3-413.4.2 浮点乘除运算浮点乘除运算 设设 两个浮点数分别为两个浮点数分别为 xExx=2M yEyy=2M xy(E +E )xyx

40、 y=2(MM )xy(E E )xyx/y=2(M /M )则则图图3-43 浮点数乘法运算流程图(浮点数乘法运算流程图(Z=X*Y)3.4.3 浮点运算所需要的硬件浮点运算所需要的硬件 1. 阶码运算部件(定点整数运算)阶码运算部件(定点整数运算) 阶码大小的比较、阶码加法运阶码大小的比较、阶码加法运 算、阶码调整时的增量与减量算、阶码调整时的增量与减量 2. 尾数运算部件(定点小数运算)尾数运算部件(定点小数运算) 左移、右移、尾数加法运算、左移、右移、尾数加法运算、 尾数乘除运算。尾数乘除运算。关于运算器的补充内容关于运算器的补充内容1. CPU之外的浮点运算器之外的浮点运算器8087

41、是美国是美国Intel公司为处理浮点数等数据的算术运算和多种函数计算而设计生产的专用公司为处理浮点数等数据的算术运算和多种函数计算而设计生产的专用算术运算处理器。由于其算术运算是配合算术运算处理器。由于其算术运算是配合8086 CPU进行的,所以进行的,所以8087又称为又称为协处理器协处理器(Co-processor)。)。以下说明以下说明8087浮点运算器的特点和内部结构。浮点运算器的特点和内部结构。(1)以异步方式与)以异步方式与8086并行工作。并行工作。8087相当于相当于8086的一个的一个I/O部件,本身有它自己的指部件,本身有它自己的指令,但不能单独使用,它只能作为令,但不能单独使用,它只能作为8086主主CPU的协处理器才能运算。如果的协处理器才能运算。如果8086从主存读从主存读取的指令是取的指令是8087的浮点运算指令,则它们以输出的方式把该指令送到的浮点运算指令,则它们以输出的方式把该指令送到8087,8087接受指接受指令后进行译码并执行浮点运算。令后进行译码并执行浮点运算。8087进行运算期间,进行运算期间,8086可取下一条其他指令予以执行,可取下一条其他指令予以执行,因而实现了

温馨提示

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

评论

0/150

提交评论