




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章运算方法与运算器,一、定点加减法运算方法及实现在计算机中定点加减法运算基本上都是采用补码。因此这里只讨论补码的加减法运算。1、补码加减法运算方法对于补码加减法运算需要证明如下公式:X+Y补=X补+Y补X-Y补=X补+-Y补证明分四种情况,采用定义来证明。,第三章运算方法与运算器,例1:已知:X=-0.0625,Y=-0.75。求:X+Y,X-Y解:X=-0.0001Y=-0.1100X原=1.0001Y原=1.1100X补=1.1111Y补=1.0100-Y补=0.1100X补=1.1111X补=1.1111+Y补=1.0100+-Y补=0.1100-X+Y补=1.0011X-Y补=0.1011X+Y原=1.1101X-Y原=0.1011X+Y=-0.1101X-Y=+0.1011=-0.8125=+0.6875,第三章运算方法与运算器,例2:已知:X=-20,Y=+9。求:X+Y,X-Y解:X=10100Y=01001X原=110100Y原=001001X补=101100Y补=001001-Y补=110111X补=101100X补=101100+Y补=001001+-Y补=110111-X+Y补=110101X-Y补=100011X+Y原=101011X-Y原=111101X+Y=-01011X-Y=-11101=-11=-29,第三章运算方法与运算器,结论:补码运算能将减法变为加法,是的运算器中只需一个加法器;补码加减法运算时,符号位与数码位一样参加运算,能自然得到结果的正确符号;补码小数的加减法运算以“2”为模,补码整数运算以“2n+1”为模,即符号位向更高位的进位自然丢失,不影响运算结果的正确性。2、定点加减法运算中的溢出问题“运算溢出”是指运算结果大于机器所能表示的最大正数或小于所能表示的最小负数。“运算溢出”只对带符号数的运算有效。,第三章运算方法与运算器,下面举例说明什么情况下会产生溢出。X补=0.1010X补=1.0001+Y补=0.1001+Y补=1.0111-X+Y补=1.0011X+Y补=0.1000从上述例子可以看出,两个正数相加,结果为负数;而两个负数相加,结果为正数,显然是错误的,其原因是由于运算产生了溢出;除此之外,正数减负数或负数减正数,也可能产生运算溢出。溢出是一种错误,计算机在运算过程中必须能发现这种错误,并进行必要的处理,否则将产生严重的后果。常用的判溢出的方法有以下两种:采用变形补码判溢出;利用符号位进位信号判溢出。,第三章运算方法与运算器,采用变形补码判溢出“变形补码”是采用2个符号位的补码,记作X补。上面的两个例子,若采用变形补码运算,结果为:例1:X补=00.1010例2:X补=11.0001+Y补=00.1001+Y补=11.0111-X+Y补=01.0011X+Y补=10.1000例1中,运算结果的两位符号位为“01”,表示产生了正溢出。例2中,运算结果的两位符号位为“10”,表示产生了负溢出。不溢出时,两个符号位应相同,为“00”或“11”。,第三章运算方法与运算器,结论:采用变形补码进行加减运算时,运算结果的两位符号位应相同;若两个符号位为“00”,表示结果是一个正数,反之,若为“11”,表示结果是负数;若两个符号位不同,则表示运算产生了溢出,且左边一位表示结果的正确符号,即若结果的两位符号位为“01”,表示结果的正确符号应为正,即产生了正溢出。否则若结果的两位符号位为“10”,表示结果的正确符号应为负,即产生了负溢出;这种方法简单,容易实现,只要在两个符号位上增设一个半加器即可,但运算器要增加一位字长,或要降低一位运算精度。,第三章运算方法与运算器,利用符号位的进位信号判溢出对于带符号数,最高位是符号位,若将最高数码位向符号位的进位叫做“进位入”,记作Cn-1,而将符号位向向更高位的进位叫做“进位出”,记作Cn,则对上面的例子,有如下情形:例1:X补=0.1010例2:X补=1.0001+Y补=0.1001+Y补=1.0111-.-.-X+Y补=1.0011X+Y补=0.1000,例1中,Cn=0,Cn-1=1,表示产生了正溢出;例2中,Cn=1,Cn-1=0,表示产生了负溢出。只有当Cn=Cn-1=0或Cn=Cn-1=1时,才表示无溢出。,Cn=0,Cn-1=1,Cn-1=0,Cn=1,第三章运算方法与运算器,结论:可以由CnCn-1来判断运算产生了溢出;这种方法不降低运算精度简单,只要增设一个半加器即可。即OF(溢出标志)=CnCn-1机器无法知道参加运算的操作数是否是带符号数,因此总是按带符号数处理,并判定是否产生溢出。因此,对无符号数的加减运算,即使OF=1,也不表示产生了溢出。应由程序员自己判定。,第三章运算方法与运算器,3、补码加减法运算的实现采用补码进行加减法运算只需一个加法器,采用串行进位方式的n位并行加法器的逻辑结构如图所示。,Bn-1An-1Bn-2An-2B1A1B0A0,Sn-1Sn-2S1S0,溢出,C1,方式控制M,M=0加M=1减,Bn-1,Cn-1,Cn-2,Bn-2,B1,C1,C0,B0,并行加法器的逻辑结构,第三章运算方法与运算器,并行加法器的要点:n位并行加法器的主体是n位全加器FA,其进位信号由低位向高位逐位传送。两个n位的操作数A和B连同进位信号一起同时送到全加器的输入端,经过一定的运算时间,得到n位的运算结果S。最高的进位信号Cn-1和Cn-2的半加和用来判溢出。M是方式控制信号,M=0表示作加法运算(A+B),M=1表示作减法运算(A-B),这种情况下应将A补与-B补相加;由于-B补=B补+1,电路中用各位用一个半加器实现对B补取反,在向末位+1(C-1=1)。全加器的结构加法器的运算速度(P32-33),第三章运算方法与运算器,二、定点乘法运算及实现定点乘法运算与加减法运算不同,可采用原码,也可采用补码。原码乘法又有原码一位乘法和原码两位乘法;补码乘法也有补码一位乘法和补码两位乘法。1、原码一位乘法符号位单独运算,将两个操作数的绝对值相乘,最后给乘积冠以正确的符号的方法,称为“原码乘法”。每次取一位乘数与被乘数相乘,最后累加结果,称作“原码一位乘法”。,第三章运算方法与运算器,原码一位乘法的操作过程与十进制乘法运算类似。例:已知X=+0.1101,Y=-0.1011,求Z=X*YX原=0.1101Y原=1.1011Zf=Xf异或Yf=1然后将两个绝对值相乘,操作过程如下:0.11010.1011-01101第1次部分积01101第2次部分积00000第3次部分积+01101第4次部分积-0.10001111,第三章运算方法与运算器,上述过程是手算,若在计算机中实现,则存在两个问题:一是n位数相乘,需2n位加法器,不合适;二是n次部分积一次累加,实现有困难。计算机的做法是:每得到一次部分积,立刻与上次部分积相加,然后将结果右移一位,待n次“相加右移”操作结束后,乘法运算完成,第三章运算方法与运算器,同样以上述例子为例:部分积乘数0.000001011+X0.1101-01101010110.011010101+X01101-10011101010100111010+000000-01001110100010011101+X01101-10001111010.100011110结束,第三章运算方法与运算器(16),可以看出,上例经过4次相加、右移操作,最后得到结果,再冠以正确的符号“1”,得到Z原=1.10001111Z=-0.10001111结论:两个n位带符号的数相乘,需要一个n+1位的加法器,两个n+1位的寄存器,操作前分别存放部分积和乘数Y,操作后分别存放最后乘积的高位和低位,并要求这两个寄存器能连接起来一起进行右移操作。实现原码一位乘法的操作过程流程图及实现方法图见P35。,第三章运算方法与运算器(17),2、原码两位乘法采用原码两位乘法,可作为提高乘法运算速度的措施之一。如果从乘数的最低位开始每次取两位乘数与被乘数相乘得到一次部分积,那么两个n位数相乘只需要进行n/2次“相加右移”操作,这就是“原码两位乘法”的基本思想,即不需要增加任何硬件可使乘法运算速度提高一倍。原码两位乘法部分积的形成原码一位乘法中,由于每次只取一位乘数,因此部分积的值很简单,即若Y0=0,则部分积为0;若Y0=1,则部分积为被乘数X。而原码两位乘法中每次要取两位乘数,因此部分积的值应有四种情况:Y1Y0新的部分积及其操作000,与上次部分积相加后,右移两位01X,与上次部分积相加后,右移两位102X,与上次部分积相加后,右移两位113X,与上次部分积相加后,右移两位,第三章运算方法与运算器(18),上表中,前三种情况都容易实现,关键是如何得到3X的部分积。考虑到3X=4X-X,具体做法是:当两位乘数为“11”时,将“-X”与上次部分积相加,然后右移两位。“4X”的操作待进行高端的两位乘数相乘时再进行,先将高两位乘数加1,再确定本次部分积的内容,以完成“4X”的操作,与上次“X”操作合起来,等效于“3X”操作。这种情况下,需要设置一个标志Cj,以确定参加本次运算的两位乘数是否要加1,于是形成了下面8种不同操作:,第三章运算方法与运算器(19),Y1Y0Cj操作过程000上次部分积0后,右移两位,Cj保持为0010上次部分积X后,右移两位,Cj保持为0100上次部分积2X后,右移两位,Cj保持为0110上次部分积X后,右移两位,Cj1001上次部分积X,右移两位,Cj0011上次部分积2X后,右移两位,Cj0101上次部分积X后,右移两位,Cj保持为1111上次部分积0后,右移两位,Cj保持为1,第三章运算方法与运算器(20),原码两位乘法的操作过程例:已知X=+0.11111101,Y=-0.01110001,求X*Y解:Zf=Xf异或Yf=0异或11|X|原=00.11111101|Y|原=00.01110001|X|补=00.11111101|2X|补=01.11111010-|X|补=11.00000011|Y|补=00.01110001,第三章运算方法与运算器(21),部分积YfYfY7Y6Y5Y4Y3Y2Y1Y0Cj000.0000000000.011100010+|X|00011111101-0001111110100011100010000011111101000111000+000000000000-0000011111101000111000000000111111010001110-|X|11100000011-1110001001011010001111111100010010110100011+|2X|00111111010-001101111101011010001000.0110111110101101000,第三章运算方法与运算器(22),|X|*|Y|补=00.0110111110101101|X|*|Y|原=00.0110111110101101最后给结果冠以正确的符号,得:X*Y=-0.0110111110101101说明:两个八位数相乘只需作4次“相加右移”操作操作直到Y1Y0Cj=000为止,若最后一次运算后Cj仍为1,则需要再进行一次“X”操作,但不需再右移;由于“2X”操作,部分积有可能大于2,因此部分积要用三位符号位,其中最高位代表部分积的正确符号;由于运算过程中有“X”操作,因此整个操作过程应采用补码进行部分积,右移时按补码右移的规则,即保持符号位不变;若乘数Y的数码位的位数n为奇数,则可在被乘数和乘数的后边均附加一个“0”,使n仍保持为偶数,进行n/2次相加右移操作,运算结果的最后两位“0”无效。,第三章运算方法与运算器(23),补码一位乘法原码乘法存在两个明显的缺点:一是符号位需要单独运算,最后需给运算结果冠以正确的符号,这给运算带来麻烦;二是对于采用补码存储的机器,从存储器或寄存器中取得的是操作数的补码,需要先变成原码,再取其绝对值后才能进行原码乘法运算。将两个操作数的符号位和数码位一起参加乘法运算,能自然得到乘积的正确符号的乘法称作“补码乘法”。补码乘法也分为补码一位乘法和补码两位乘法。补码一位乘法有两种不同的实现方案:校正法和比较法。校正法的基本思想:X*Y补=X补*Y补+校正项其中校正项随X和Y的正负不同而有不同的取值,给操作带来不便。,第三章运算方法与运算器(24),实际中较常采用的“补码一位乘法”,是由Booth夫妇提出来的“比较法”,因此又称作Booth法。Booth法的操作过程:补码与真值的关系根据补码定义:对于正数:Y补=Y=0.Y1Y2.Yn(Y0=0)对于负数:Y补=2Y=1.Y1Y2.Yn(Y0=1)Y=1.Y1Y2.Yn-2=1+0.Y1Y2.Yn-2=-1+0.Y1Y2.Yn=-Y0+0.Y1Y2.Yn于是Y=-Y0+Y1*2-1+Y2*2-2+Yn*2-n=-Y0+(Y1*20+Y1*2-1)+(Y2*2-1+Y2*2-2)+(Yn*2-(n-1)-Yn*2-n)=(Y1-Y0)20+(Y2-Y1)2-1+(Yn+1-Yn)2-n=(Yi+1-Yi)2-i(i=1.n),第三章运算方法与运算器(25),(2)证明公式X*Y补=X补.*Y,证明从略。X*Y补=X补.*Y=X补.*(Y1-Y0)20+(Y2-Y1)2-1+(Yn+1-Yn)2-n=X补.*(Yi+1-Yi)2-i(i=1.n)上式中,(Yi+1-Yi)只有四种状态,即:0-0=0;0-1=-1;1-0=1;1-1=0。按上述方法实现乘法运算,只需要在Y补的低端附加一位Yn+1=0,并不影响运算结果。具体做法:从最低位起,每次取两位乘数(Yi+1和Yi),根据“Yi+1-Yi”的状态,确定本次部分积的值与上次部分积相加后右移一位,一共进行n1次“相加右移”操作,最后一次不移位,便可得到乘积的补码。,第三章运算方法与运算器(26),“补码一位乘法”的运算规则:在乘数Y的最后附加一位Yn+1=0;从最低位Yn+1开始倒序每次取两位乘数(Yi=0和Yi+1),操作过程如下:YiYi+1操作过程00上次部分积0后右移一位01上次部分积X补后右移一位10上次部分积X补后右移一位11上次部分积0后右移一位上述“相加右移”操作进行n+1次,最后一次不移位,便可得到X*Y补。,第三章运算方法与运算器(27),Y0Y1Y2Y3Y4Y5000000101010+-X补110011-110011101010111001110101+X补001101-000110110101000011011010+-X补110011-110110011010111011001101+X补001101-001000001101000100000110+-X补110011-110111000110X*Y补=1101110001X*Y原=1110001111X*Y=10001111143,例1:已知X=+13,Y=-11,求X*Y解:X补=X原=01101X补=10011Y原=11011Y补=10101,第三章运算方法与运算器(28),Y0Y1Y2Y3Y4Y5Y600000001001100+00000000-0000000100110000000000100110+-X补0010101-0010101010011000010101010011+00000000-0001010101001100001010101001+X补1101011-1110000010100111110000010100+00000000-1111000001010011111000001010+-X补0010101-00100010001010,例2:已知X=-0.10101,Y=-0.11010,求X*Y解:X原=1.10101X补=1.01011-X补=0.10101Y原=1.11010Y补=1.00110,X*Y补=00.1000100010X*Y原=00.1000100010X*Y=+0.1000100010,第三章运算方法与运算器(28+),采用比较法实现补码一位乘法的乘法器逻辑结构,见41页图。补码两位乘法为了加快乘法的运算速度,仿照补码一位乘法的思路,同样可扩展为补码两位乘法,从乘数的最低位开始倒序每次取两位乘数与被乘数相乘,便成为补码两位乘法。补码两位乘法部分积的形成补码两位乘法同样采用比较法,需要在乘数末尾附加一位Yn+1,其初始值为“0”,每次参加比较的数为3位,即Yn+1、Yn、Yn1,这样做实际上是将补码一位乘法中的两次比较合为一次来确定本次的部分积于是会产生8种不同的形成部分积的方式,相应的操作如下表:,第三章运算方法与运算器(29),Yi-1YiYi+1操作过程000上次部分积0后右移2位001上次部分积X补后右移2位010上次部分积X补后右移2位011上次部分积2X补后右移2位100上次部分积2X补后右移2位101上次部分积X补后右移2位110上次部分积X补后右移2位111上次部分积0后右移2位,第三章运算方法与运算器(30),补码两位乘法的操作过程例:已知X0.11111101,Y0.01110001,求X*Y=?,解:X补00.111111012X补01.11111010-X补11.00000011-2X补10.00000110Y原11.01110001Y补11.10001111,部分积乘数(Y)Y9(附加位)000.0000000011.100011110111.00000011-X补111.000000111110001111011111000000111110001110000000000001111110000011111000111111111100000011111000100011111101X补0001110110100111110001000000111110100111110011100000110-2X补110010000010100111110011110010000010100111110000000000001111001000001010011111,X*Y补11.1001000001010011X*Y原11.0110111110101101X*Y补-0.0110111110101101,第三章运算方法与运算器(31),说明:两个8位数相乘,只需作5次“相加右移”操作,最后一次不移位;由于有2X操作,因此部分积需设置3个符号位,最高位代表部分积的正确符号,部分积右移时应保持符号位不变;若乘数Y的数码位为奇数位,则可在被乘数和乘数的末端均附加一位“0”,使之成为偶数位后再进行乘法运算,乘积的最后2位“00”无效;为进一步提高乘法的运算速度可采用阵列乘法器。其思想是大幅度增加全加器的数量。,第三章运算方法与运算器(32),三、定点除法运算及实现定点除法运算有原码除法和补码除法两种。1、原码除法运算符号位单独运算,将两个操作数的绝对值相除,最后给乘积冠以正确的符号的方法,称为“原码除法”。一般来说,n位原码除法是指被除数、除数和商数的数码位均为n位。在实际运算中,被除数被扩展成2n位,因此业允许参加运算的被除数是2n位。原码除法有恢复余数法和加减交替法之分。,第三章运算方法与运算器(33),恢复余数法例:若X=+0.1001,Y=-0.1101,求X/Y=?解:符号位单独处理Qf=Xf异或Yf=1二进制除法手算过程:0.10110.11010.10010000-1101010100-110101110-11010001因此:商Q0.1011余数R=+0.00000001,第三章运算方法与运算器(34),说明:n位除法为了保证商数的数码位为n位,必须要求被除数的高端n位小于除数,否则可能出现n+1位的商数,即“除法运算溢出”。每次上商总是比较余数与除数的大小,若余数大于或等于除数则商“1”,且将余数减去除数后左移一位得新余数;若余数小于除数,则商“0”,且不做余数减除数操作,只将原余数左移一位得新余数,商数过程进行n次,共上n位商数,完成n位除法过程。上述过程的计算机实现为判断本次除法是否产生溢出,首先需要将被除数的高n位减去除数,若其余数大于0,则判定本次运算溢出,立即中止除法运算;若余数小于0,则应将除数加回去恢复被除数,继续以下除法过程。每次上商之前,总要作一次余数减除数操作。若该余数大于或等于0,则表示够减商“1”后将该余数左移一位得新余数;若该余数小于0,表示不够减,商“0”,本次减法运算不该作,应将除数加回去,恢复原来的余数后将其左移一位得新余数,恢复余数法因此而得名。,第三章运算方法与运算器(35),例:若X=+0.1001,Y=-0.1101,求X/Y=?解:符号位单独处理:Qf=Xf异或Yf=1|X|原=0.1001|Y|原=0.1101|Y|补=0.1101|Y|补=1.0011,0.10010.000+-|Y|补100111110000000+|Y|补011010100100000100100000+-|Y|补100110010100001010100001+-|Y|补100111110100010+|Y|补011010101000010101000010+-|Y|补100110011100101011100101+-|Y|补100110.00010.1011,结果:商数Q-0.1011余数R+0.00012-4若最后余数为负,要纠余。,第三章运算方法与运算器(36),恢复余数法的缺点:商0时需恢复余数,降低了除法运算速度;操作步骤不规则,商0时需作5步操作,商1时需作3步操作。加减交替法加减交替法又称作“不恢复余数法”,由“恢复余数法”改进而来。先分析恢复余数法的操作过程:第i次操作是将上此操作的余数Ri左移一位减去除数Y得新的余数Ri1,即Ri1=2Ri-Y,若Ri10,则商为1,进入第i+1次操作,进行2Ri1-Y;若Ri10,则商0,并且恢复余数Ri1+Y=2Ri,然后进入第i+1次操作,进行4Ri-Y。若当第i次操作商0后,不恢复余数,而是直接进入第i+1次操作,将小于0的余数Ri1左移一位后加Y,即进行2Ri1Y=2(2Ri-Y)+Y=4Ri-2Y+Y=4Ri-Y,这样作的效果与恢复余数后的第i+1次操作完全相同,这说明恢复余数的操作并不是必须的。若余数为正则商1,下一步将余数左移一位后减去除数Y;若余数为负则商0,下一步将余数左移一位后加上除数Y。加减交替法由此而来。,第三章运算方法与运算器(37),加减交替法的运算规则:若Ri0,则商为1,下次作2RiY操作;若Ri0,商1结果:Q=-0.1011R=+0.00012-4,第三章运算方法与运算器(39),说明:商的第一位应为0,仅表示结果未溢出,若为1,则溢出,中止操作;若最后余数为负,要纠余,即增加一次|Y|操作;加减交替法克服了恢复余数法的两个问题,在现代计算机中原码除法均采用加减交替法;最后给商数和余数冠以正确符号(余数与被除数符号同)。2、补码除法运算符号位同样参与运算,加减交替法。,第三章运算方法与运算器(40),四、浮点数的算术运算方法及实现1、浮点数的加减运算对阶尾数运算结果规格化m补=00.1XXX.Xm补=11.0XX.Xm补=11.100.0向右规格化m补=01.XXX.Xm补=10.XX.X向左规格化去掉小数点后的前导0去掉小数点后的前导1,但11.100.0除外,第三章运算方法与运算器(40+),2、浮点除法运算五、计算机中的逻辑运算及实现1、逻辑非按位取反2、逻辑与常用来分离字段3、逻辑或常用来合并字段4、逻辑异或常用来比较两数是否相等5、左移1位X-2X6、右移1位X-X/2,练习题,某机字长32位,浮点表示时,阶码占8位,尾数占24位,各包含一个符号位。问:(1)带符号定点小数的最大表示范围是多少?(2)带符号定点整数的最大表示范围是多少?(3)浮点表示时,最大的正数是多少?(4)浮点表示时,最大的负数是多少?(5)浮点表示时,最小的规格化正数是多少?,答案,答案:(1)-1+(1-2-31)(2)-2+31+(2+31-1)(3)(1-2-23)*2+127(4)-2-23*2-128(5)+2-1*2-128,习题,一、已知X=-0.10001012-111Y=+0.00010102-100(1)用补码运算求XY?,并判断是否有溢出。(2)用补码运算求XY?,并判断是否有溢出。解:(1)对阶X=-0.00010002-100(2)运算X补=11100,11.1111000X补=11100,11.1111000+Y补=11100,00.0001010+-Y补=11100,11.1110110-X+Y补=11100,00.0000010X-Y补=11100,11.1101110(3)结果规格化X+Y补=11100,00.0000010=10111,00.1000000溢出X-Y补=11100,11.1101110=11010,11.0111000X-Y=-0.10010002-110,习题,二、已知X=-7.25Y=+28.5625(1)将X和Y分别转换成二进制浮点数(阶码4位,尾数10位,各包含一个符号位;(2)用变形补码求XY?,答案,解:X=-111.01=-0.111012+011Y=+11100.1001=+0.1110010012101X原=00011,11.111010000Y原=00101,00.111001001X补=00011,11.000110000Y补=00101,00.111001001-Y补=00101,11.000110111(1)对阶X补=00101,11.110001100-Y补=00101,11.000110111(2)尾数运算11.110001100+11.000110111-110.111000011(3)结果规格化X-Y补=00110,11.0111000011X-Y原=00110,11.1000111101X-Y=-0.10001111012+110,习题,三、已知X=-0.111100002-010Y=-0.000000012010请用变形补码求XY,XY解:(1)对阶X=-0.000011112010X补=00010,11.11110001Y补=00010,11.11111111-Y补=00010,00.00000001(2)尾数运算、结果规格化11.1111000111.11110001+11.11111111+00.00000001-X+Y补=11.11110000X-Y补=11.11110010X+Y补=00010,11.11110000=11111,11.100000000X+Y=-0.100000002001X-Y补=00010,11.11110010=11110,11.00100000X-Y=-0.111000002-010,第三章运算方法与运算器(41),六、运算器的组成与分析运算器是计算机的重要组成部分之一,用来完成各种算术和逻辑运算,因此常称作算术逻辑单元(ALU)。运算器的核心是加法器。若机器字长n位,则应由n个全加器构成n位并行加法器。利用串行进位方式的加法器,结构简单,但加法速度慢,原因就在于进位信号的串行传送。因此提高加法器运算速度的关键在于缩短进位信号的传送时间。1、并行进位方式的实现采用串行进位方式的16位并行加法器如下图:,第三章运算方法与运算器(42),上图中,第i位进位信号的逻辑表达式如下:Ci=Ai.Bi+(AiBi).Ci-1(代表“异或”)若用Gi代替(Ai.Bi),用Pi代替(AiBi),则上式可简化为:Ci=Gi+Pi.Ci-1上式由两项构成:第一项是Gi,因此只有当Ai=Bi=1时,Gi才可能为1,此时的Ci=1,即本位向高位有进位,称为“本位进位”。第二项是Pi.Ci-1,其中Ci-1是低位向本位的进位信号。只有当AiBi时,Pi才可能等于1。只有Pi=1时,才能将低位向本位的进位传送到高位去,因此称Pi为“传送进位”。显然任何情况下,Pi和Gi不可能同时为“1”。C0=G0+P0C-1C1=G1+P1C0=G1+P1(G0+P0C-1)=G1+P1G0+P1P0C-1C2=G2+P2C1=G2+P2(G1+P1C0+P1P0C-1)=G2+P2G1+P2P1G0+P2P1P0C-1C15=G15+P15G14+P15P14G13+P15P14P13G12+P15P14.P2P1P0C-1,第三章运算方法与运算器(43),上述表达式表明,16位加法器中各位向高位的进位信号Ci并非必须依赖于低位向本位的进位信号Ci-1,而是有可能在向最低位的进位信号C1输入后的一定时间内并行产生。尽管如此,要实现16位进位信号的同时产生仍然存在困难,原因是形成进位信号所需的门和输入端数太多。可以设想将加法器分成n个小组,小组内实现并行进位是完全可能的。例如:将16位加法器分成4个小组,每组包含4位,组内实现并行进位的逻辑表达式为:C0=G0+P0C-1C1=G1+P1G0+P1P0C-1C2=G2+P2G1+P2P1G0+P2P1P0C-1C3=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C-1于是最低一组(第0组)的组内并行进位逻辑即可实现。P60同样的进位逻辑可用到其它三个小组,并将四个小组串联起来,如下图:,上图称作单级分组的“并串行逻辑”,即将整个加法器分成几个小组,各小组内部采用并行进位方式,各小组间采用串行进位方式,可有效缩短进位信号的传送时间。假定每级门的延迟时间为ty,则各小组内进位信号的传送时间为2ty,整个加法器的进位信号产生时序如下图:,第三章运算方法与运算器(44),显然,单级分组“并串”行进位方式的16位并行加法器,与采用串行进位方式的16位加法器相比,加法速度明显提高。将各个小组内并行进位逻辑,加上它们的Pi,Gi形成电路及4位求全加和的电路集成在一起,构成一个芯片,即SN74283。,第三章运算方法与运算器(45),第三章运算方法与运算器(46),2、两级分组“并并”行进位方式的实现若将上述单级分组16位并行加法器中的4个小组构成一个大组,并在大组内也采用并行进位方式,就构成了两级分组(小组和大组)“并并”行进位方式,可进一步
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年县以低碳发展驱动产业绿色变革调研报告
- 2025年文化创意产业发展与IP保护试题及答案
- 2025年网络营销专家职业技能认证考试试题及答案
- 2025年ZRO2陶瓷磨介项目发展计划
- 青岛城阳区中考数学试卷
- 历界温州市中考数学试卷
- 七年级青岛数学试卷
- 南京盐城二模的数学试卷
- 喷涂线效率提升分析报告
- 闵行九年级期末数学试卷
- GA/T 718-2007枪支致伤力的法庭科学鉴定判据
- 千年菩提路解说词
- 高一英语必修一试卷(含答案)(适合测试)
- 护理人员档案管理模板
- 机械设备日常点检表
- 中医病症诊断疗效标准
- 危大工程巡视检查记录
- JJG 741-2022 标准钢卷尺检定规程-(高清最新版)
- 中国人民银行反洗钱调查审批表
- DB37T 536-2019 文书档案目录数据采集规范
- 红岗学校A栋宿舍工程施工组织设计编制说明书【可提供完整设计图纸】
评论
0/150
提交评论