计算机组成2-3数值的机器运算.ppt

上传人:小飞机 文档编号:6606632 上传时间:2023-11-17 格式:PPT 页数:63 大小:1.01MB
返回 下载 相关 举报
计算机组成2-3数值的机器运算.ppt_第1页
第1页 / 共63页
计算机组成2-3数值的机器运算.ppt_第2页
第2页 / 共63页
计算机组成2-3数值的机器运算.ppt_第3页
第3页 / 共63页
计算机组成2-3数值的机器运算.ppt_第4页
第4页 / 共63页
计算机组成2-3数值的机器运算.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《计算机组成2-3数值的机器运算.ppt》由会员分享,可在线阅读,更多相关《计算机组成2-3数值的机器运算.ppt(63页珍藏版)》请在三一办公上搜索。

1、2023/11/17,1,计算机组成原理计算机学院,计算机组成原理 运算方法和运算器,浙江工业大学计算机学院,2023/11/17,2,计算机组成原理计算机学院,能按步骤进行定点数的加减运算,并掌握溢出检测方法掌握移位运算和常见的舍入操作方法能按步骤进行定点数原码的乘法除法运算掌握浮点数的四则运算理解逻辑运算方法掌握运算器的基本构成,理解其实现方法,本篇的学习目标,2023/11/17,3,计算机组成原理计算机学院,定点数的运算补码加减运算移位操作定点乘法运算定点除法运算算术逻辑部件ALU浮点数的运算逻辑运算,主要内容,2023/11/17,4,计算机组成原理计算机学院,定点数运算(1-1),

2、补码运算补码加法:X+Y补=X补+Y补补码减法:X-Y补=X补+-Y补补码运算的基本规则参加运算的各个操作数均以补码表示,运算结果仍以补码表示符号位和数值位一样参加运算若求和,将两补码直接相加,得两数之和的补码;若求差,则将减数变补(由Y补求-Y补),然后与被减数相加,得两数之差的补码,2023/11/17,5,计算机组成原理计算机学院,定点数运算(1-2),补码运算例题,2)X=3 Y=2,X补=1 1101 Y补=1 1110,1 1011,1)X=3 Y=2,X补=0 0011 Y补=0 0010,0 0101,(+5补码),(-5补码),3)X=4 Y=5,X补=0 0100 Y补=1

3、 1011(-Y)补=0 0101,0 1001,(+9补码),4)X=4 Y=5,X补=1 1100 Y补=0 0101(-Y)补=1 1011,1 0111,(9补码),1,1,X+Y,X-Y,2023/11/17,6,计算机组成原理计算机学院,定点数运算(1-3),补码运算例题,2)X=10 Y=7,X补=1 0110 Y补=1 1001,0 1111,1)X=10 Y=7,X补=0 1010 Y补=0 0111,1 0001,(-15补码),(15补码),1,正溢出:运算结果大于机器所能表示的最大正数;负溢出:运算结果小于机器所能表示的最小负数,正溢出,负溢出,2023/11/17,7

4、,计算机组成原理计算机学院,定点数运算(1-4),溢出判别 根据两个操作数的符号与结果的符号判别OVR=Af Bf Sf+Af Bf Sf 根据两数相加时产生的进位判别OVR=Cf Cn+Cf Cn=Cf Cn采用变形补码运算(两位符号位)X变形补=X 0X1 4+X-1X0 X变形补=X 0X2n 2n+2+X-2nX0,+,2023/11/17,8,计算机组成原理计算机学院,定点数运算(1-5),变形补码运算,(1)3+2:,Sf1 Sf2=00 结果为正,无溢出,00 001100 0010,00 0101,(2)10+7:,00 101000 0111,01 0001,(3)-3+(-

5、2):,11 1011,11 110111 1110,(4)-10+(-7):,10 1111,11 011011 1001,Sf1 Sf2=01 结果为正溢出,Sf1 Sf2=11 结果为负,无溢出,Sf1 Sf2=10 结果为负溢出,2023/11/17,9,计算机组成原理计算机学院,例题1-1,用补码运算方法求X+Y=?(1)X=0.1001,Y=0.1100(2)X=-0.0100,Y=0.1001X补=00.1001(2)X补=11.1100+Y补=00.1100+Y补=00.1001 X+Y补=01.0101 X+Y补=00.0101双符号位为01,正溢 X+Y=+0.0101,2

6、023/11/17,10,计算机组成原理计算机学院,例题1-2,用补码运算方法求X-Y=?(1)X=-0.0100,Y=0.1001(2)X=-0.0111,Y=0.1101X补=11.1100(2)X补=11.1001+-Y补=11.0111+-Y补=11.0011 X-Y补=11.0011 X+Y补=10.1100 X-Y=-0.1101 双符号位为10,负溢,2023/11/17,11,计算机组成原理计算机学院,CPU的组成,CPU的组成算术逻辑部件ALU控制器各种寄存器CPU内部总线,2023/11/17,12,计算机组成原理计算机学院,加法器单元电路全加器,ALU(1),Ci+1,S

7、i,Ai,Bi,Ci,Si=Ai Bi Ci+Ai Bi Ci+Ai Bi Ci+Ai Bi CiCi+1=Ai Bi Ci+Ai Bi Ci+Ai Bi Ci+Ai Bi Ci,2023/11/17,13,计算机组成原理计算机学院,ALU(2),全加器电路(FA),+,&,+,Ci,Ai,Bi,Si,Ci+1,Si=Ai Bi CiCi+1=Ai Bi+(Ai Bi)Ci,+,+,+,2023/11/17,14,计算机组成原理计算机学院,FA逻辑电路和框图,FA(全加器)逻辑电路图 FA框图,异或门,与门,或门,2023/11/17,15,计算机组成原理计算机学院,n位行波进位加法器,行波进

8、位的补码加法/减法器,2023/11/17,16,计算机组成原理计算机学院,定点数运算(2-1),移位操作逻辑移位:数码位置变化原码算术移位:数码位置变化,符号位不变,1 0 0 0 1 1 1 1,逻辑右移:,0 0 0 1 1 1 1,1,1 0 0 0 1 1 1 1,循环左移:,1 0 0 0 1 1 1,0,移掉,补 0,1 0 0 1 1 1 1,算术左移:,1 0 1 1 1 1 0,1 0 0 1 1 1 1,算术右移:,1 0 0 0 1 1 1,-15-30,-15-7(有误差),2023/11/17,17,计算机组成原理计算机学院,定点数运算(2-2),移位操作补码算术左

9、移:单符号位:符号位不变;双符号位:第一符号位不变空位补0,1 0 1 1 1,左移:,1 1 1 1 0,0 0 0 1 1 1,左移:,0 0 1 1 1 0,1)单符号位,2)双符号位,1 1 1 0 0,左移:,0 1 1 1 0 0,左移:,错误,2023/11/17,18,计算机组成原理计算机学院,定点数运算(2-3),移位操作补码算术右移:单符号位:符号位不变;双符号位:第一符号位不变移空位置位补与符号位相同的代码,1 1 0 1 0,右移:,1 1 1 0 1,0 1 1 1 0 0,右移:,0 0 1 1 1 0,1)单符号位,2)双符号位,1 1 1 1 0,右移:,0 0

10、 0 1 1 1,右移:,误 差,2023/11/17,19,计算机组成原理计算机学院,定点数运算(2-4),舍入操作,2.恒舍,0 00100原,1 00101原,1 11011补,4.查表舍入法,0 00100原,1 11011补,1 00101原,0 0010原,1 0011原,1 1110补,0 0011原,1 0011原,1 1101补,例.保留4位尾数:,例.保留4位尾数:,1.0舍1入法,3.末位恒置1,2023/11/17,20,计算机组成原理计算机学院,定点原码乘法运算x原=xf.xn-1x1x0 y原=yf.yn-1y1y0 x.y原=(xf yf)+(0.xn-1x1x0

11、).(0.yn-1y1y0)尾数乘法如下:设0.1101,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(),定点数运算(3-1),2023/11/17,21,计算机组成原理计算机学院,定点原码乘法原理,n位乘n位积可能为2n位.乘积的最后是所有部分积之和,有n个数相加,而加法器只有两个输入端需要改造方法一:硬件实现方法(串行的“加法和移位”),硬件结构简单,速度太慢(时间延迟太长)。方法二:不带符号位的阵列乘法器,2023/11/17,22,计算机组成原理计算机学院,定点数运算(3-

12、2),定点乘法运算(加法-移位)原码一位乘法:,1),Y4=1,+X,+1101,1101,0110,1101,2),Y3=1,+1101,0011,1001,1110,3),Y2=0,+0000,1001,0100,1111,4),Y1=1,+1101,0001,1000,1111,X原 Y原=1.10001111,+X,+0,+X,0,1,0,0,0,0,1,0,X原=0.1101 Y原=1.1011,2023/11/17,23,计算机组成原理计算机学院,定点数运算(3-3),定点乘法运算原码一位乘法算法:1.乘积的符号单独按两数符号模2相加(异或操作)得到;2.以乘数最低位作为乘法判别位

13、,若判别位为1,则在前次部分积上加被乘数,然后连同乘数一起右移一位;若判别位为0,则在前次部分积上加0,然后连同乘数一起右移一位;3.重复第2步,直到n次为止,2023/11/17,24,计算机组成原理计算机学院,定点数运算(3-4),定点乘法运算原码一位乘法原理框图:寄存器A:存放部分积,初始值为0;寄存器B:存放被乘数;寄存器C:存放乘数,加法器,A,C C0,控制逻辑,右移一位,Cf,B,加B/不加,Af,Xf,Yf,2023/11/17,25,计算机组成原理计算机学院,例题(1-3),用原码一位乘法计算X*Y=?写出规范的运算过程。1)X=1001,Y=11012)X=1010,Y=-

14、10011)X*Y=11101012)X*Y=-1011010,2023/11/17,26,计算机组成原理计算机学院,不带符号位的阵列乘法器,不带符号阵列乘法器逻辑图,定点数运算(3-5),2023/11/17,27,计算机组成原理计算机学院,不带符号位的阵列乘法器,斜线部分为进位输出,竖线部分为和输出。,2023/11/17,28,计算机组成原理计算机学院,带符号位的阵列乘法器,求补电路原理:算前求补乘法器算后求补,见下图,2023/11/17,29,计算机组成原理计算机学院,求补电路小结,E=0时,输入和输出相等E=1时,则从数最右端往左边扫描,直到第一个1的时候,该位和右边各位保持不变0

15、A=A,左边各数值位按位取反1A=乛A可以用符号位作为E的输入(即正数时E=0,负数时E=1,求补)原:1.11110 补:1.00010,不变,左边数值位取反,2023/11/17,30,计算机组成原理计算机学院,3、带符号的阵列乘法器(间接法),原码补码,将两个操作数转换为正整数,将运算结果转换为补码,2023/11/17,31,计算机组成原理计算机学院,举例(P36),例20用带求补器原码乘法器(输入/出:为原码)Y=(+15)*(-13)例21用带求补器补码乘法器(输入/出:为补码)Y=(-15)*(-13),0.1 1 0 1 商q0.1 0 1 1 0.1 0 0 1 0(r0)被

16、除数 0.0 1 0 1 1 21除数右移1位,减除数 0.0 0 1 1 1 0r1得余数r1 0.0 0 1 0 1 1 22除数右移1位,减除数 0.0 0 0 0 1 1 0r2得余数r2 0.0 0 0 1 0 1 123除数右移1位,不减除数 0.0 0 0 0 1 1 0 0r3得余数r3 0.0 0 0 0 1 0 1 124除数右移1位,减除数 0.0 0 0 0 0 0 0 1r4得余数r4,商0还是商1人可以比较后确定,计算机如何确定?余数末位补0后,减去除数右移后的值,导致加法器尾数逐渐增多,最后要求加法器的位数必须为被除数的两倍,定点原码一位除法实现方案(手工)0.1

17、0010/0.1011,定点数运算(4-1),定点原码除法的流程图,R0 0?,循环次数最大值?,3a.,商,1,3b.R0+R2,R0,商,0,4.R0,R1,左移,1.R0,R1,左移,商,0,2.R0,-,R2,R0,5.R0,右移,Y,N,N,Y,R0:被除数R2:除数R1:余数,计算机必须先做减法,若余数为正,够减,商1;若余数为负,不够减,商0,且须恢复原来的余数。,2023/11/17,34,计算机组成原理计算机学院,定点数运算(4-2),定点除法运算原码恢复余数法,-Y),+11.0011,11.1110,+00.1101,0.000,00.1011,01.0110,+11.0

18、011,00.1001,+Y),0,1,例:X=-0.1011,Y=+0.1101;求X/Y=?解:|X|原=00.1011,|Y|原=00.1101,-|Y|变补=11.0011,00.1011 0.000,0,:商数不溢出,0.000,-Y),:余数为正,上商为1,01.0010,0.001,+11.0011,-Y),00.0101,00.1010,+11.0011,0.011,-Y),1,11.1101,+00.1101,+Y),0,00.1010,01.0100,0.110,+11.0011,-Y),00.0111,0.110,1,2023/11/17,35,计算机组成原理计算机学院,

19、定点除法运算原码恢复余数法算法1.判溢出,要求|被除数|除数|;2.符号位单独按两数符号的模2相加求得;3.被除数减去除数;4.若所得余数为正,相应位上商为1,余数左移一位,减去除数;若余数为负,相应位上商为0,余数加上除数(恢复余数),再左移一位减去除数;5.重复第4步,直到求得所要求的商的各位为止,定点数运算(4-3),2023/11/17,36,计算机组成原理计算机学院,定点除法运算原码不恢复余数法算法1.判溢出,要求|被除数|除数|;2.符号位单独按两数符号的模2相加求得;3.被除数减去除数;4.若所得余数为正,相应位上商为1,余数左移一位,减去除数;若余数为负,相应位上商为0,余数左

20、移一位,加上除数;5.重复第4步,直到求得所要求的商的各位为止*.若最后一次所得余数为负,则需恢复余数,定点数运算(4-4),2023/11/17,37,计算机组成原理计算机学院,定点数运算(4-5),定点除法运算原码不恢复余数法,-Y),+11.0011,11.1110,+00.1101,00.1001,11.1100,+11.0011,00.0101,+Y),0,1,例:X=-0.1011,Y=+0.1101;求X/Y=?解:|X|原=00.1011,|Y|原=00.1101,-|Y|变补=11.0011,00.1011 0.000,0,:商数不溢出,0.000,-Y),:余数为正,上商为

21、1,00.1010,0.011,+11.0011,-Y),11.1101,11.1010,0.110,0,+00.1101,+Y),00.0111,0.110,1,01.0010,0.001,1,2023/11/17,38,计算机组成原理计算机学院,定点数运算(4-6),定点除法运算原码不恢复余数法原理框图,2023/11/17,39,计算机组成原理计算机学院,例题(1-4),用原码加减交替法(不恢复余数法)计算X/Y=?写出规范的运算过程。X=0.1000,Y=-0.1010 X/Y=-(0.1100+0.1000*2-4),0.1010,2023/11/17,40,计算机组成原理计算机学院

22、,可控加法/减法(CAS)单元,P=0,做加法运算P=1,做减法运算,2023/11/17,41,计算机组成原理计算机学院,阵列除法器,第一行,P=1做减法,商0后面每行由商来控制做减法还是加法商q=0.q3q2q1余数r=0.00r6r5r4r3,2023/11/17,42,计算机组成原理计算机学院,逻辑运算(1),逻辑非假设:X=X0X1Xn,Z=Z0Z1Zn则:Zi=Xi(i=0,1n)逻辑乘(逻辑与)假设:X=X0X1Xn,Y=Y0Y1Yn,Z=Z0Z1Zn则:Zi=Xi Yi(i=0,1n)逻辑加(逻辑或)假设:X=X0X1Xn,Y=Y0Y1Yn,Z=Z0Z1Zn则:Zi=Xi Yi

23、(i=0,1n)逻辑异或假设:X=X0X1Xn,Y=Y0Y1Yn,Z=Z0Z1Zn则:Zi=Xi Yi(i=0,1n),+,2023/11/17,43,计算机组成原理计算机学院,逻辑运算(2),逻辑非X=01001011X=10110100逻辑乘X=10111001,Y=11110011XY=10110001逻辑加 X=10111001,Y=11110011X+Y=11111011逻辑异或 X=10111001,Y=11110011X Y=01001010,+,2023/11/17,44,计算机组成原理计算机学院,加法器单元电路全加器,ALU(全加器),Ci,i,Ai,Bi,Ci-1,2023

24、/11/17,45,计算机组成原理计算机学院,ALU(1-1),并行加法器与进位链结构串形进位,Ci,i,Ai,Bi,Ci-1,C2,2,A2,B2,C1,C1,1,A1,B1,C0,C16,16,A16,B16,C15,2023/11/17,46,计算机组成原理计算机学院,n位行波进位加法器,行波进位的补码加法/减法器,2023/11/17,47,计算机组成原理计算机学院,ALU(1-2),并行加法器与进位链结构并行进位,Ci=Ai Bi+(Ai Bi)Ci-1Gi=Ai Bi(进位发生函数);Pi=Ai Bi(进位传送函数)Ci=Gi+Pi Ci-1,+,+,C1=G1+P1 C0C2=G

25、2+P2 C1C3=G3+P3 C2C16=G16+P16C15,=G1+P1 C0=G2+P2 G1+P2 P1 C0=G3+P3 G2+P3 P2 G1+P3 P2 P1 C0=G16+P16G15+P16P15G14+P16P15 P2P1C0,2023/11/17,48,计算机组成原理计算机学院,ALU(1-3),并行加法器与进位链结构组内并行,组间串行,第四组,第三组,第二组,第一组,C0,A1,B1,A2,B2,A3,B3,A4,B4,A5,B5,A6,B6,A7,B7,A8,B8,A9,B9,A10,B10,A11,B11,A12,B12,A13,B13,A14,B14,A15,

26、B15,A16,B16,1,2,3,C4,C4,4,5,6,7,C8,C8,8,9,10,11,C12,C12,12,13,14,15,C16,16,2023/11/17,49,计算机组成原理计算机学院,ALU(1-4),并行加法器与进位链结构组内并行,组间并行 C4=G4+P4 G3+P4 P3 G2+P4 P3 P2 G1+P4 P3 P2 P1 C0 C8=G8+P8 G7+P8 P7 G6+P8 P7 P6 G5+P8 P7 P6 P5 C4 C12=G12+P12G11+P12P11G10+P12P11P10G9+P12P11P10P9C8 C16=G16+P16G15+P16P15

27、G14+P16P15P14G13+P16P15P14P13C12,GI=G4+P4 G3+P4 P3 G2+P4 P3 P2 G1;PI=P4 P3 P2 P1 GII=G8+P8 G7+P8 P7 G6+P8 P7 P6 G5;PII=P8 P7 P6 P5 GIII=G12+P12 G11+P12 P11 G10+P12 P11 P10 G9;PIII=P12 P11 P10 P9 GIV=G16+P16G15+P16P15G14+P16P15P14G13;PIV=P16P15P14P13,2023/11/17,50,计算机组成原理计算机学院,ALU(1-5),并行加法器与进位链结构组内并

28、行,组间并行,C4=GI+PI C0C8=GII+PII C4C12=GIII+PIII C8C16=GIV+PIVC12,=GI+PI C0=GII+PIIGI+PIIPIC0=GIII+PIIIGII+PIIIPIIGI+PIIIPIIPIC0=GIV+PIVGIII+PIVPIIIGII+PIVPIIIPIIGI+PIVPIIIPIIPIC0,2023/11/17,51,计算机组成原理计算机学院,ALU(1-6),并行加法器与进位链结构组内并行,组间并行,第四组,第三组,第二组,第一组,C0,A1,B1,A2,B2,A3,B3,A4,B4,A5,B5,A6,B6,A7,B7,A8,B8,

29、A9,B9,A10,B10,A11,B11,A12,B12,A13,B13,A14,B14,A15,B15,A16,B16,1,2,3,C4,4,5,6,7,C8,8,9,10,11,C12,12,13,14,15,C16,16,组间进位电路,GIV,PIV,GIII,PIII,GII,PII,PI,GI,C12,C8,C4,2023/11/17,52,计算机组成原理计算机学院,ALU(2-1),ALU举例SN74181芯片,B,S0S1S2S3控制产生16种不同逻辑函数M控制选择算术运算或逻辑运算组内进位电路(成组先行进位电路),2023/11/17,53,计算机组成原理计算机学院,ALU(

30、2-2),ALU举例SN74182芯片组间进位电路(先行进位电路),74182,Vcc P2 G2 Cn Cn+4 Cn+8 G Cn+12,G1 P1 G0 P0 G3 P3 P GND,1 2 3 4 5 6 7 8,16 15 14 13 12 11 10 9,2023/11/17,54,计算机组成原理计算机学院,32位ALU的构成,组间并行,组内并行,2023/11/17,55,计算机组成原理计算机学院,例题(1-5),用74181和74182芯片构成一个64位的ALU,采用多级分组并行进位链,要求速度尽可能快。三级ALU,16个74181芯片,5个74182芯片,两级ALU(64位)

31、,2023/11/17,57,计算机组成原理计算机学院,浮点数运算(1),浮点加减运算0操作数检查:判断两个操作数是否为0对阶:小阶向大阶看齐,尾数右移,阶码增加尾数的加减运算结果规格化左规:尾数需要左移才能满足规格化条件;右规:尾数需要右移才能满足规格化条件舍入操作0舍1入法末位恒置1法,2023/11/17,58,计算机组成原理计算机学院,浮点数运算(1-1),尾数结果规格化 若尾数用双符号位补码表示,则规格化的数形式为:00.1xxxx 11.0 xxxx 其余形式均要进行规格化溢出判断 由阶码的符号决定是否溢出。,2023/11/17,59,计算机组成原理计算机学院,浮点数运算(1-2

32、),例28 设x20100.11011011,y=2100(-0.10101100)求x+yx浮=00 010,00.11011011y浮=00 100,11.01010100对阶:E=E-E=00 010-00 100=11 110 Mx右移两位,Ex加2 x=00100,00.00110110(11)(恒舍)尾数相加 00.00110110+11.01010100=11.10001010 结果规格化:左规一位,11.00010100;阶码-1为00 011 溢出判断阶码符号位为00,不溢出x+y=2011(-0.11101100),2023/11/17,60,计算机组成原理计算机学院,例题

33、(1-6),有浮点数为A=0.101110*2-01,B=(-0.101011)*2-10假设两数的格式为:阶码4位,用移码(偏置值为23)表示;尾数8位,用补码表示,含一位符号位。求A-B(采用0舍1入法)A浮=0111;0.1011100 B浮=0110;1.0101010A-B=0.10001*20=0.10001,2023/11/17,61,计算机组成原理计算机学院,浮点数运算(2),浮点乘法运算阶码相加并判溢出(EA+EB)尾数相乘结果规格化,2023/11/17,62,计算机组成原理计算机学院,浮点数运算(3),浮点除法运算预置尾数调整,使得|被除数|除数|求阶差(EA-EB)尾数相除,2023/11/17,63,计算机组成原理计算机学院,作业,P64 5,6,7(1)P64 9(1),10补充1.用原码一位乘法计算X*Y(X=0.11011,Y=-0.11111)2.用原码不恢复余数法计算XY(X=-0.10101,Y=0.11011),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号