《运算方法和运算器计算机组成原理.pptx》由会员分享,可在线阅读,更多相关《运算方法和运算器计算机组成原理.pptx(117页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、可以证明:X+YX+Y补=X=X补+Y+Y补X-YX-Y补=X=X补+-Y+-Y补-Y-Y补的求法:将YY补连同符号位求反加1 1。例例11:X+1001Y+0101,求,求X+Y?解解:X补=01001 Y补=00101 X+Y补=X补+Y补=01001+00101 =01110所以所以X+Y=+1110第1页/共117页定点运算器定点加减法例例12:X+0.1011Y-0.0101,求求X+Y?解解:X补=0.1 0 1 1Y补=1.1 0 1 1+011010.丢失1 X补+Y补=0.0110X+Y=0.0110第2页/共117页定点运算器定点加减法例例(补充补充):X-11001,Y-
2、00011,求,求X+Y?解解:X补=1 0 0 1 1 1Y补=1 1 1 1 0 1+00101 1丢失1 X补+Y补=100100X+Y=-111000由以上两例看到,补码加法的特点:一是符号位要作为数的一部分一起参加运算。二是要在模2或2n+1的意义下相加,即超过2或2n+1的进位要丢掉!第3页/共117页定点运算器定点加减法2、补码减法:XX补-Y-Y补=X+=X+(-Y-Y)补=X=X补+-Y+-Y补 (-Y-Y)的补码称为YY补的机器负数,由YY补求-Y-Y补的过程称为将YY补“变补”或对YY补求补,由YY补求-Y-Y补的方法是,不管Y Y的真值为正或为负,都是将YY补的各位连同
3、符号位在内全变反后,最低位加1 1。第4页/共117页定点运算器定点加减法例例:X-0.1011Y-0.0110,求,求XY?解解:X补=1.0 1 0 1-Y补=0.0 1 1 0+1101 1.XY补1.1011XY=-0.0101第5页/共117页3 3、溢出及其判别方法:在计算机中,由于机器码的尾数通常是给定的(如1616位字长,3232位字长),因此,在计算机中数的表示范围是有限的,若两数进行加减运算的结果超出了给定的取值范围,就称为溢出。一旦出现溢出,必须及时处理,否则会出现错误。第6页/共117页(1)、溢出例15:X=1011 Y=1001 求 X+Y解:X补=0 1 0 1
4、1+Y补=0 1 0 0 1 1 0 1 0 0例2:X=-1010 Y=-1011 求 X+Y解:X补=1 0 1 1 0+Y补=1 0 1 0 1 0 1 0 1 1较大正数相加产生进位,影响符号位较大的负数对应较小的正数补码相加无进位,符号位自己相加第7页/共117页(2)(2)溢出原因:溢出原因:之所以发生错误之所以发生错误,是因为运算结果产生了溢出。两个正数相加是因为运算结果产生了溢出。两个正数相加,结果结果大于机器所能表示的最大正数大于机器所能表示的最大正数,称为称为上溢上溢。而两个负数相加。而两个负数相加,结果小于机结果小于机器所能表示的最小负数器所能表示的最小负数,称为称为下溢
5、下溢。v 两异号数相加或两同号数相减是否两异号数相加或两同号数相减是否 会产生溢出?会产生溢出?v 仅当两同号数相加或两异号数相减仅当两同号数相加或两异号数相减 时才有可能产生溢出?时才有可能产生溢出?问题:决不会产生溢出正确第8页/共117页 为了判断“溢出”是否发生,可采用两种检测的方法。第一种方法是采用双符号位法,这称为“变形补码”或“模4 4补码”。从而可使模2 2补码所能表示的数的范围扩大一倍。第9页/共117页定点运算器定点加减法1)采用双符号位的判断方法 每个操作数的补码符号用两个二进制数表示,称为变形补码,用“0000”表示正数,“1111”表示负数,左边第一位叫第一符号位,右
6、边第一位称为第二符号位,两个符号位同时参加运算,如果运算结果两符号位相同,则没有溢出发生。如果运算结果两符号位不同,则表明产生了溢出。“1010”表示负溢出(下溢出),说明运算结果为负数,“0101”表示正溢出(上溢出),说明运算结果为正数。第10页/共117页定点运算器定点加减法采用双符号位的判断方法 高符号位高符号位低符号位低符号位结果结果00正正01上溢上溢10下溢下溢11负负第11页/共117页例17:X+0.1100Y+0.1000,求X+Y?解:X补=00.1100Y补=00.1000+01.0100正数太大了,向前有进位,而符号位向前无进位;两个符号位:0101,表示正溢出第12
7、页/共117页n例:X-0.1100 Y-0.1000,求 X+Y?解:X补=11.0100Y补=11.1000+10.1100 负数绝对值太大了对应的补码小,向前无进位,而符号位向前有进位;两个符号位:1010,表示负溢出溢出逻辑表达式为:V=Sf1 Sf2 (其中Sf1为最高符号位,Sf2为第二符号位)第13页/共117页由此可以得出如下结论:1.1.当以模4 4补码运算,运算结果的二符号位相异时,表示溢出;相同时,表示未溢出。2.2.模4 4补码相加的结果,不论溢出与否,最高符号位始终指示正确的符号。第14页/共117页例例:X-0.100Y-0.101,求,求X+Y?解解:X补=1.1
8、 0 0Y补=1.0 1 1+11110.丢失1 两负数相加,结果应为负数,但运算结果为正数,表两负数相加,结果应为负数,但运算结果为正数,表明有溢出发生明有溢出发生。数据向前无进位,符号位向前有进位数据向前无进位,符号位向前有进位2)采用单符号位的判断方法第15页/共117页例例:X100,Y-110,求,求X-Y?解:X补=0 1 0 0-Y补=0 1 1 0+01 1一个正数减去一个负数,结果为正数,但计算结果为负数,表一个正数减去一个负数,结果为正数,但计算结果为负数,表明有溢出发生,出错明有溢出发生,出错数据向前有进位,符号位向前无进位数据向前有进位,符号位向前无进位0溢出逻辑表达式
9、为:V=Cf C0 (其中Cf为符号位产生的进位,C0为最高有效位产生的进位)第16页/共117页4、基本的二进制加法/减法器1、一位全加器FAAiBiCiCi+1Si向高位进位本位输出结果输入输出AiBiCiSiCi+10000000110010100110110010101011100111111表2.2 一位全加器真值表两个输出端的逻辑表达式:SiAiBiCiCi1AiBiBiCiCiAi第17页/共117页SiAiBiCiCi1AiBiBiCiCiAi按此表达式组成的一位全加器示图:Ci+1=(Ai Bi)Ci AiBi1位全加器Si时间延迟为6T,Ci1延迟为5T(书本错误,图2.3
10、(a)错误)第18页/共117页n个1位的全加器(FA)可级联成一个n位的行波进位加减器。M为方式控制输入线,当M0时,作加法(AB)运算;当M1时,作减法(AB)运算,在后一种情况下,AB运算转化成A补B补运算,求补过程由B1来实现。时间延迟tan2T9T动画演示第19页/共117页定点运算器定点乘法1、原码并行乘法设被乘数XX原=X=Xf fX Xn-1n-1X Xn-2n-2X X1 1X X0 0 乘 数YY原=Y=Yf fY Yn-1n-1Y Yn-2n-2Y Y1 1Y Y0 0 乘 积XX原=Z=Zf fZ Z2n-12n-1Z Z2n-22n-2Z Z1 1Z Z0 0 运算原
11、则:同号相乘为正,异号相乘为负,符号可按:异或运算得到,数值部分的运算方法与普通的十进制乘数相类似。第21页/共117页定点运算器定点乘法手工算法0.1 1 0 10.1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1+1 0 0 0 1 1 1 1 0.l两个n位数相乘,其积为2n位,则需要2n位长的加法器,这不适用于定点机的形式。l机器一次只能进行两个数的相加,不能进行多个数据的加法。l手工计算中,乘数的每一位是0还是1都可直接看见,而在计算机中,采用放乘数的寄存器的每一位直接决定本次相加数是被乘数还是0是很不方便的,若采用该寄存器的最低一位来执行这种判断就简便
12、了。第22页/共117页定点运算器定点乘法运算法则:计算机中执行乘法时,积的符号位由被乘数和乘数的符号位计算机中执行乘法时,积的符号位由被乘数和乘数的符号位通过一个半加器实现。通过一个半加器实现。数值部分的运算规则是:从最低位数值部分的运算规则是:从最低位Y Y0 0开始,当乘数开始,当乘数Y Yi i为为1 1时,时,将上次部分积加上被乘数的绝对值,然后右移一位,得到新的部将上次部分积加上被乘数的绝对值,然后右移一位,得到新的部分积;当分积;当Y Yi i为为0 0时,则写下全时,则写下全0 0。然后再对乘数。然后再对乘数Y Y的高一位进行类似的高一位进行类似乘法运算。重复乘法运算。重复“加
13、加右移右移”操作操作N N次,可得到最后的乘积。次,可得到最后的乘积。第23页/共117页定点运算器定点乘法例:X=0.1101,Y=0.1011,求X*Y=?解:|X|=00.1101|Y|=00.1011部分积乘数说明0 0.0 0 0 00 0.1 1 0 1+Yf 1 0 1 10 0.1 1 0 10 0.0 1 1 0 0 0.1 1 0 1+0 1.0 0 1 10 0.1 0 0 10 0.0 0 0 0+0 0.1 0 0 10 0.0 1 0 00 0.1 1 0 10 1.0 0 0 10 0.1 0 0 0+1 Yf 1 0 11 1 Yf 1 01 1 1 Yf 11
14、 1 1 1 YfY0=1,+XY1=1,+XY2=0,+0Y3=1,+X右移,得Z1=1右移,得Z2=1右移,得Z3=1右移,得Z4=1第24页/共117页定点运算器定点乘法结果:X*Y=0.10001111X*Y=1.01001110计算:X=-0.1101Y=0.0110,求X*Y?第25页/共117页原码并行乘法不带符号的阵列乘法器手工操作如下:第27页/共117页图2.4mn位不带符号得阵列乘法器逻辑框图第28页/共117页演示动画第29页/共117页原码并行乘法带符号的阵列乘法器首先来看算术运算部件设计中常常用到的求补电路第30页/共117页演示动画E=1时启动对2求补操作第31页
15、/共117页用这种对2求补器来转换一个(n+1)位带符号的数,所需的总时间延迟为tTC =n2T+5T =(2n+5)T 第32页/共117页图2.7(n+1)位(n+1)位带求补器的阵列乘法器逻辑方框图第33页/共117页图2.7所示的带求补级的阵列乘法器既适用于原码乘法,也适用于间接的补码乘法。不过在原码乘法中,算前求补和算后求补都不需要,因为输入数据都是立即可用的。而间接的补码阵列乘法却需要使三个求补器。为了完成所必须的求补与乘法操作,时间大约比原码阵列乘法增加1倍例20例21第34页/共117页直接补码并行乘法(不做要求)补码与真值的转换公式公式2.292.30P42N补anan1a1
16、a0其中an为符号位,则补码数N补和真值N的关系可以表示成:n1ai2i当an0(N补为正)时i0n11(1ai)2i当an1(N补为负)时i0可化为:n1Nan2nai2ii=0(2n可以看成12n-1+2n-2+20)N(2.29)第35页/共117页补码与真值的转换公式又-N补anan-1a1a0+1,其中:ai=1-ai所以-N补可以表示为:n1N(1-an)2n(1-ai)2i+1i0(2.30)例19 已知:N补01101,N补10011,求N补,N补具有的数值。第36页/共117页表2.3 四类一般化全加器的名称和逻辑符号第37页/共117页对0类、3类全加器而言有:对1类、2类
17、全加器,则有第38页/共117页直接补码阵列乘法器利用混合型的全加器就可以构成直接补码数阵列乘法器。设被乘数A和乘数B是两个5位的二进制补码数,即其A(a4)a3a2a1a0B(b4)a3a2a1a0它们具有带负权的符号位a4和b4,并用括号标注。第39页/共117页直接补码阵列乘法器(a4)a3a2a1a0A)(b4)b3b2b1b0B(a4b0)a3b0a1b0a1b0a0b0(a4b1)a3b1a2b1a1b1a0b1(a4b2)a3b2a2b2a1b2a0b2(a4b3)a3b3a2b3a1b3a0b3)a4b4(a3b4)(a2b4)(a1b4)(a0b4)p9p8p7p6p5p4p
18、3p2p1p0P第40页/共117页也可以如动画演示所示第41页/共117页定点运算器定点除法定点原码除法在在定定点点计计算算机机中中,完完成成两两个个原原码码表表示示的的数数相相除除时时,商商的的符符号号由由两两数数的的符符号号位位和和原原码码乘乘法法运运算算方方法法一一样样,用用模模2求求和和得得到到,而而商商的的数数值值部部分分则则是是两两个正数相除得到。个正数相除得到。设有有设有有n位定点小数位定点小数(定点整数也同样适用定点整数也同样适用):被除数被除数X原原=f.n110除除数数Y原原=f.n110则则商商Q原原=(ff f)+)+(0.n 110/0.n110))第42页/共11
19、7页定点运算器定点除法 计算机中执行除法时,商的符号位由被除数计算机中执行除法时,商的符号位由被除数和除数的符号位通过一个半加器实现;和除数的符号位通过一个半加器实现;对于数值部分,由于定点小数的绝对值小于对于数值部分,由于定点小数的绝对值小于1 1,如果被除数大于或等于除数,则商就大于或,如果被除数大于或等于除数,则商就大于或等于等于1 1,因而会产生溢出,这是不允许的。,因而会产生溢出,这是不允许的。因此在执行除法以前,先要判别是否溢出,因此在执行除法以前,先要判别是否溢出,不溢出时才执行除法运算。判别溢出的方法是被不溢出时才执行除法运算。判别溢出的方法是被除数减去除数,若差为正,就表示溢
20、出。除数减去除数,若差为正,就表示溢出。第43页/共117页定点运算器定点除法手工计算除法的方法:设被除数为X=0.1001,Y=0.1011,求X/Y=?第44页/共117页定点运算器定点除法X/Y=0.1101余数=0.0111*2-4第45页/共117页恢复余数法恢复余数法的运算规则:计计算算机机中中进进行行除除法法时时,是是模模仿仿十十进进制制除除法法笔笔算算的的过过程程,但但又又不能完全照搬。不能完全照搬。在在机机器器中中判判断断是是否否够够减减,必必须须先先做做减减法法,若若余余数数为为正正,表表示示够够减减;若若余余数数为为负负,表表示示不不够够减减,不不够够减减时时,必必须须恢
21、恢复复原原来来的的余数,以便再继续往下运算,这种方法称为余数,以便再继续往下运算,这种方法称为恢复余数法。恢复余数法。要恢复原来的余数,只要当前的余数加上除数即可。要恢复原来的余数,只要当前的余数加上除数即可。第46页/共117页定点运算器定点除法例:X=0.1001,Y=0.1011,用恢复余数法求X/Y=?解:X原=X补=0.1001Y补=0.1011-Y补=1.0101第47页/共117页解:被除数/余数商数q说明商0移入q,r0 左移商1移入q,r1 左移商1移入q,r2左移商0移入q,r3 左移0 0.1 0 0 11 1.0 1 0 11 1.1 1 1 00 0.1 0 1 10
22、 0.1 0 0 10 0.0 1 1 10 1.0 0 1 01 1.0 1 0 10 0.1 1 1 01 1.0 1 0 10 0.0 0 1 10 0.0 1 1 01 1.0 1 0 11 1.1 0 1 10 0.1 0 1 10 0.0 1 1 00 0.1 1 0 01 1.0 1 0 1 0 0.0 0 0 10 0.0 0 0 1+-Y补+Y补+-Y补+-Y补+-Y补+Y补+-Y补00.10.110.1100.1101X减Y余数r00,商“1”减Y余数r40,商“1”减Y余数r3k时,Ckk第113页/共117页时空图第114页/共117页例32:假设有一个4级流水浮点加法
23、器每个过程段所需的时间为:0操作数检查170ns,对阶260ns,相加390ns,规格化480ns,缓冲寄存器L的延时为tl10ns,(1)求4级流水线加法器的加速比为多少?(2)如果每个过程段的时间相同,即都为75ns,(包括缓冲寄存器时间),加速比是多少?(3)画出时空图。第115页/共117页解:(1)加法器的流水线时钟周期至少为maxi=90ns10ns100ns如果采用同样的逻辑电路,但不是流水线方式,则浮点加法所需的时间为1234300ns因此,4级流水线加法器的加速比为CkTL/Tk300/1003(n4)(2)当每个过程段的时间都是75ns时,加速比为Ck300/754第116页/共117页感谢您的观看!第117页/共117页