资源预览内容
第1页 / 共111页
第2页 / 共111页
第3页 / 共111页
第4页 / 共111页
第5页 / 共111页
第6页 / 共111页
第7页 / 共111页
第8页 / 共111页
第9页 / 共111页
第10页 / 共111页
亲,该文档总共111页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2.2 2.2 定点加法、减法运算定点加法、减法运算n2.2.1 补码加法n2.2.2 补码减法n2.2.3 溢出概念与检验方法n2.2.4 基本的二进制加法减法器n2.2.5 十进制加法器2.2.1 补码加法n补码加法的公式是补码加法的公式是 x x 补补+y y 补补= = + + 补补 n在模在模2意义下,任意两数的补码之和等于意义下,任意两数的补码之和等于该两数之和的补码该两数之和的补码n这是这是补码加法的理论基础补码加法的理论基础,其结论也适,其结论也适用于定点整数用于定点整数2.2.1 补码加法( (续续1 1)0,0,则,则0。相加两数都是正数,故其和也一定是正数。相加两数都是正数,故其和也一定是正数。正数的补码和原码是一样的,可得:正数的补码和原码是一样的,可得: x x 补补+ + y y 补补= =+ +=+ + 补补 (mod2)分四种情况来证明分四种情况来证明:2.2.1 补码加法( (续续2 2)0,0,则则0或或0时,时,2+(x+y)2,进位进位2必丢失,又因必丢失,又因(x+y)0,故故 x x 补补yy补补=+ + 补补 (mod 2)当当x+y0时,时,2+(x+y)2,又因又因(x+y)0,故故 x x 补补yy补补2() =+ + 补补 (mod 2)2.2.1 补码加法( (续续3 3)0,则则0或或0。n这种情况和第这种情况和第2种情况一样,把种情况一样,把和和的位置的位置对调即得证。对调即得证。2.2.1 补码加法( (续续4 4)0,0,则则0。 相加两数都是负数,则其和也一定是负数。相加两数都是负数,则其和也一定是负数。 x x 补补2,yy 补补2 x x 补补yy 补补2 2=2(2) (x+y)是负数,其绝对值又小于是负数,其绝对值又小于1,那么,那么(2+(x+y)一一定是小于定是小于2而大于而大于1的数,进位的数,进位”2”必丢失。又因必丢失。又因()0,所以,所以 x x 补补yy 补补2() =+ + 补补 (mod2)在模在模2意义下,任意两数的补码之和等于该两意义下,任意两数的补码之和等于该两数之和的补码。数之和的补码。 这是这是补码加法的理论基础补码加法的理论基础,其结论也适用于,其结论也适用于定点整数。定点整数。2.2.1 补码加法( (续续5 5)例例8:0.1001,0.0101,求,求。解:解:例例9:0.1011,0.0101,求求解:解:由以上两例看到,由以上两例看到,补码加法的特点补码加法的特点:一是一是符号位要作为数的一部分一起参加运算符号位要作为数的一部分一起参加运算二是二是要在模要在模2的意义下相加,即超过的意义下相加,即超过2的进位要丢掉。的进位要丢掉。例8之解 x x 补补0.1001, y y 补补0.0101 x x 补补0.1001 y y 补补0.0101 + + 补补 0.1110所以所以0.1110返返回回例9之解 x x 补补0.1011, y y 补补1.1011 x x 补补0.1011 y y 补补1.1011 + + 补补 10.0110所以所以0.0110返回返回证明:证明:-Y补补=-Y补补(mod2)因为 X+Y补=X补+Y补 (mod 2)所以 Y补=X+Y补-X补又因为 X-Y补=X+(-Y)补= X补+-Y补所以 -Y补=X-Y补-X补则 -Y补+Y补=X-Y补+X+Y补-X补-X补 = X+Y+X-Y补 -X补-X补 =0所以 -Y补=-Y补 (mod 2)证明证明从从y补补求求-y补的法则补的法则是:是:对对补补包括符号位在内包括符号位在内“按位求反且最末位加按位求反且最末位加1”,即可得到,即可得到-补补。写成运算表达式,则为:写成运算表达式,则为:-补补补补(2.21) 表示对表示对补补作作包括符号位在内包括符号位在内的按位求反操作的按位求反操作 表示最末位的表示最末位的1 2.2.2 补码减法(续(续1 1)例例10:已知已知10.1110,20.1101,求:求: x x1 补补 ,-x x1 补补 , x x2 补补 ,-x x2 补补。解:解:例例11:0.1101,0.0110,求求。 解:解:例10之解 x x1 补补1.0010- - x x1 补补 x x1 补补2-40.11010.00010.1110 x x2 补补0.1101- - x x2 补补 x x2 补补2-41.00100.00011.0011 返回返回例11之解 x x 补补0.1101, y y 补补0.0110-y-y补补1.1010 x x 补补 0.1101-y y 补补1.1010 - - 补补 10.0111 所以所以0.0111返回返回2.2.3 溢出概念与检验方法以定点小数为例:以定点小数为例: 在定点小数机器中在定点小数机器中, ,数的表示范围为数的表示范围为| |1. |x 0 4+x = 4-|x| 0x-2(2.22)溢出概念与检测方法或用同余式表示:或用同余式表示:补补4(mod4)下式也同样成立:下式也同样成立: 补补 补补 补补(mod4)计算时计算时: 1.两个符号位都看作数码一样参加运算两个符号位都看作数码一样参加运算2.2.两数进行以两数进行以4位模的加法位模的加法, ,即最高符号位上产生的进即最高符号位上产生的进位要丢掉。位要丢掉。 采用变形补码后,如果两个数相加后,其结果的采用变形补码后,如果两个数相加后,其结果的 符号位出现符号位出现“01”或或“10”两种组合时两种组合时, ,表示发生溢表示发生溢出。这是因为两个绝对值小于出。这是因为两个绝对值小于1的数相加的数相加, ,其结果不其结果不会大于或等于会大于或等于2。所以,最高符号位所表示的是。所以,最高符号位所表示的是结果结果的正确符号的正确符号。溢出概念与检测方法得到两数变形补码之和等于两数之和的变形补码得到两数变形补码之和等于两数之和的变形补码, , 补补 补补 补补(mod4) 例例1414 0.1100.1100, 0, 0.1000,0.1000,求求。溢出概念与检测方法解 :补补00.1100,补补00.1000补补00.1100补补00.100001.0100 两个符号位出现两个符号位出现“0101”, ,表示已溢出表示已溢出, ,即即结果大于结果大于1 1。上溢上溢 又又例例 0.1100.1100, 0, 0.0001,0.0001,求求。溢出概念与检测方法解 :补补00.1100,补补00.0001补补00.1100补补00.000100.1101 两个符号位两个符号位 = =“0000”, ,表示表示无溢出无溢出。 例例1515 0.1100, 0.1100, -0.1000,-0.1000,求求。溢出概念与检测方法解 :补补11.0100,补补11.1000补补11.0100补补11.100010.1100两个符号位出现两个符号位出现“10”, ,表示已溢出表示已溢出, ,即结果小即结果小于于1。下溢下溢 又例又例 0.0100, 0.0100, -0.1000,-0.1000,求求。溢出概念与检测方法解 :补补11.1100,补补11.1000补补11.1100补补11.100011.0100两个符号位出现两个符号位出现“11”, ,表示表示无溢出无溢出。溢出概念与检测方法由此可以得出如下结论由此可以得出如下结论:1.1. 当以模当以模4 4补码运算补码运算, ,运算结果的运算结果的二符号位相异二符号位相异时时, ,表示表示溢出溢出;相同相同时时, ,表示表示未溢出未溢出。故溢出逻辑表故溢出逻辑表达式为达式为 V VS Sf f1 1S Sf f2 2, ,其中其中S Sf f1 1和和S Sf f2 2分别为最高符号分别为最高符号位和第二符号位。此逻辑表达式可用位和第二符号位。此逻辑表达式可用异或门异或门实现。实现。2. 2. 模模4 4补码相加的结果补码相加的结果, ,不论溢出与否不论溢出与否, ,最高符号位最高符号位始终指示正确的符号。始终指示正确的符号。 溢出概念与检测方法第二种溢出检测方法第二种溢出检测方法:采用采用“单符号位法单符号位法”。 从例从例1 1和和例例2 2中看到中看到:(1).:(1).当最高有效位产生进位而当最高有效位产生进位而符号位无进位时符号位无进位时, ,产生产生上溢上溢;(2).(2).当最高有效位无进当最高有效位无进位而符号位有进位时位而符号位有进位时, ,产生产生下溢下溢。 故:故:溢出逻辑表达式为溢出逻辑表达式为: V VC Cr rC Co o其中其中: : C Cf f为符号位产生的进位为符号位产生的进位, ,C Co o为最高有效位产生为最高有效位产生的的进位。(进位。(显然:此逻辑关系可用异或门方便地实现显然:此逻辑关系可用异或门方便地实现)。)。 在定点机中,当运算结果发生溢出时在定点机中,当运算结果发生溢出时, ,机器通过逻机器通过逻辑电路自动检查出溢出故障辑电路自动检查出溢出故障, ,并进行中断处理。并进行中断处理。 2.2.4 基本的二进制加法减法器n两个二进制数字两个二进制数字Ai,Bi和和一个进位输入一个进位输入Ci相加,产生相加,产生一个和输出一个和输出Si,以及一个以及一个进位输出进位输出Ci+1。n表表2.2中列出一位全加器中列出一位全加器进行加法运算的输入输出进行加法运算的输入输出真值表。真值表。2.2.4 基本的二进制加法减法器(续(续1 1)n根据真值表,三个输入端和两个输入端可按如下逻辑根据真值表,三个输入端和两个输入端可按如下逻辑方程进行联系:方程进行联系:SiAi Bi CiCi+1 AiBi+BiCi+CiAi(2.23)n按此表达式组成的一位全加器示图按此表达式组成的一位全加器示图2.2(b)。二进制加法/减法器对一位全加器对一位全加器(FA)来说来说,Si的时间延迟为的时间延迟为6T(每级异或门延迟每级异或门延迟3T),Ci1的时间延迟为的时间延迟为5T,其中其中T被定义为相应于单级逻辑被定义为相应于单级逻辑电路的单位门延迟。电路的单位门延迟。T通常通常采用一个采用一个“与非与非”门或一个门或一个“或非或非”门的时间延迟来门的时间延迟来作为度量单位。作为度量单位。3T+3T3T+T+T一位全加器一位全加器 按式(2.23)组成的一位全加器(FA)示意图2.2(b)nn 个个1位的全加器位的全加器(FA)可级联成一个可级联成一个n 位的行波进位的行波进位加减器。位加减器。nM为方式控制输入线为方式控制输入线,当当M=0时,作加法时,作加法(A+B)运算;运算;当当M=1时,作减法时,作减法(A-B)运算。转化成运算。转化成A补补+-B补补运算,求补过程由运算,求补过程由B+1来实现。来实现。n起始进位连接到功能方式线起始进位连接到功能方式线M上,作减法时上,作减法时M=1,相当于在加法器的最低位上加相当于在加法器的最低位上加1。n图中左边是单符号位法的溢出检测逻辑;当图中左边是单符号位法的溢出检测逻辑;当CnCn1时,运算无溢出;而当时,运算无溢出;而当CnCn1时,运算有溢时,运算有溢出,经异或门产生溢出信号。出,经异或门产生溢出信号。二进制加法/减法器延迟时间延迟时间t ta a为为: : 2T2T延迟时间延迟时间t ta a为为: : 3T3T考虑溢出检测时考虑溢出检测时,延迟时间延迟时间t ta a为为: : t ta an n2 2T T9 9T T (2(2n n9)9)T T当不考虑溢出检测时当不考虑溢出检测时,有:,有: t ta a( (n-1)n-1)2 2T T9 9T T 2.2.4 基本的二进制加法减法器(续(续3 3)n对一位全加器来说,对一位全加器来说,Si的的时间延迟为时间延迟为6T,Ci+1的时的时间延迟为间延迟为5T。T通常采用一个通常采用一个“与非与非”门或一个门或一个“或非或非”门的时间延迟来作为度量单位。门的时间延迟来作为度量单位。n计算一个计算一个n位的行波进位加法器的时间延迟。假如位的行波进位加法器的时间延迟。假如采用图采用图2.2(a)所示的一位全加器并考虑溢出检测,所示的一位全加器并考虑溢出检测,那么那么n位行波进位加法器的延迟时间位行波进位加法器的延迟时间ta为为 tan2T9T(2n9)T (2.22) n9T为最低位上的两极为最低位上的两极“异或异或”门再加上溢出门再加上溢出“异或异或”门的总时间,门的总时间,2T为每级进位链的延迟时间。为每级进位链的延迟时间。 2.2.4 基本的二进制加法减法器(续(续2 2)n当不考虑溢出检测时,有当不考虑溢出检测时,有 ta(n-1) 2T9T(2.23) n ta意味着加法器的输入端输入加数和被加数后,意味着加法器的输入端输入加数和被加数后,在最坏情况下加法器输出端得到稳定的求和输出所在最坏情况下加法器输出端得到稳定的求和输出所需的最长时间。显然这个时间越小越好。需的最长时间。显然这个时间越小越好。n加数、被加数、进位与和数都用电平表示,因此,加数、被加数、进位与和数都用电平表示,因此,所谓稳定的求和输出,就是指稳定的电平输出。所谓稳定的求和输出,就是指稳定的电平输出。十进制加法器例:设例:设Xi=0110=(6)10Yi=0111=(7)10则:则:Si=Xi+Yi=0110+0111=1101=(13)10十位数:十位数:1个位数:个位数:3对对Si(9)进行进行“加加6校正校正”后:后:Si=Si+6=1101+0110=10011 13Si9的情况的情况:Si= 1010,1011,1100,1101,1110,1111.当当Si9时,要求:时,要求:产生向高位的进位信号产生向高位的进位信号Ci+1;对对Si进行进行“+6”校正,得出本位的十进制数值。校正,得出本位的十进制数值。实现:实现:(6)10+(7)10进位进位十进制加法器十进制加法器该位的和该位的和十进制加法的校正十进制加法的校正2.2.5 十进制加法器2.2.5 十进制加法器n十进制加法器可由十进制加法器可由BCD码码来设计,它可以在二来设计,它可以在二进制加法器的基础上加上适当的进制加法器的基础上加上适当的“校正校正”逻辑逻辑来实现,该校正逻辑可将二进制的来实现,该校正逻辑可将二进制的“和和”改变改变成所要求的十进制格式。成所要求的十进制格式。 nn 位位BCD码行波式进位加法器的一般结构如图码行波式进位加法器的一般结构如图2.3(a)所示,它由所示,它由n 级组成,每一级将一对级组成,每一级将一对4位位的的BCD数字相加,并通过一位进位线与其相邻数字相加,并通过一位进位线与其相邻级连接。级连接。G1G2返回返回 和大于和大于9?和有进位和有进位校正:校正:Ci10时:时:+ +0;Ci11时:时:+ +6;Si3Si2Si1Si0101010111011G1=Si3Si1121100131101G2=Si3Si21411101511111610000Ci12.2.5 十进制加法器( (续续1 1)n十进制相加二数之和大于十进制相加二数之和大于9时,产生进位。用时,产生进位。用BCD码码运算的运算的和数大于和数大于9时,必须对和数进行加时,必须对和数进行加6修正修正。n第一次近似求值时,就好像第一次近似求值时,就好像xi和和yi是普通是普通4位二进制位二进制数一样。数一样。n设设Si代表得到的代表得到的4位二进制数和,位二进制数和,Ci+1为输出进位,为输出进位,Si为正确的为正确的BCD和,和,Ci+1为正确的进位为正确的进位当当xiyici10时,时,SiSi当当xiyici10时时,SiSi6n当当1或或10时时,输出进位输出进位11。因此,可利用。因此,可利用的状态来产生所的状态来产生所要求的校正因子要求的校正因子:n1时校正因子为时校正因子为6n0时校正因子为时校正因子为0。n在图在图2.3(b)中,中,4位行波式进位的二进制加位行波式进位的二进制加法器计算出和法器计算出和,然后然后经过第二级二进经过第二级二进制加法器加上制加法器加上0或或6,则产生最终结果,则产生最终结果。2.3 定点乘法运算n2.3.1 原码并行乘法n2.3.2 补码并行乘法2.3.1 原码并行乘法n在定点计算机中,在定点计算机中,两个原码表示的数相乘的运算规则是:两个原码表示的数相乘的运算规则是:乘乘积的符号位由两数的符号位按异或运算得到,而乘积的数值积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。部分则是两个正数相乘之积。n设设n位被乘数和乘数用定点小数表示位被乘数和乘数用定点小数表示(定点整数也同样适用定点整数也同样适用)被乘数被乘数 xx原原 x xf f . x xn-1n-1x x1 1x x0 0 乘数乘数 yy原原y yf f . y yn-1n-1y y1 1y y0 0 n则乘积则乘积zz原原(x xf f y yf f)(0.x xn-1n-1x x1 1x x0 0 )(0.y yn-1n-1y y1 1y y0 0)(2.26)被乘数符被乘数符号号乘数符号乘数符号 1.人工算法与机器算法的同异性人工算法与机器算法的同异性2.3.1 原码并行乘法(续(续1 1)n乘积符号的运算法则是乘积符号的运算法则是:同号相乘为正,异号相:同号相乘为正,异号相乘为负。由于被乘数和乘数和符号组合只有四种乘为负。由于被乘数和乘数和符号组合只有四种情况情况(x xf f y yf f 00,01,10,11),因此积的符号可因此积的符号可按按“异或异或”(按位加按位加)运算得到。运算得到。n数值部分的运算方法与普通的十进制小数乘法类数值部分的运算方法与普通的十进制小数乘法类似,不过对于用二进制表达式的数来说,其乘法似,不过对于用二进制表达式的数来说,其乘法规则更为简单一些。规则更为简单一些。2.3.1 原码并行乘法(续(续2 2)二进制乘法运算:n从乘数从乘数的最低位开始,若这一位为的最低位开始,若这一位为“1”,则将,则将被乘数被乘数写下;若为写下;若为“0”,则写下全,则写下全0。然后在。然后在对乘数的高一位进行乘法运算,规则同上,但对乘数的高一位进行乘法运算,规则同上,但这一位乘数的权与最低位乘数的权不同,这一位乘数的权与最低位乘数的权不同,被乘被乘数数要左移一位。以此类推,直到乘数个位乘完要左移一位。以此类推,直到乘数个位乘完为止,最后将它们加起来,得到最后乘积为止,最后将它们加起来,得到最后乘积。n设设0.1101,0.1011。用习惯方法求其。用习惯方法求其乘积,过程。乘积,过程。0.1101(x)0.1011(y)110111010000+11010.10001111(z)2.3.1 原码并行乘法(续(续3 3)n人们习惯的算法对机器并不完全适用人们习惯的算法对机器并不完全适用原因之一原因之一,机器通常只,机器通常只有有n位长,两个位长,两个n位数相位数相乘,乘积可能为乘,乘积可能为2n位。位。原因之二原因之二,只有两个操,只有两个操作数相加的加法器难以作数相加的加法器难以胜任将胜任将n各位积一次各位积一次相加起来的运算。相加起来的运算。早期计算机中为了简化硬件结构,采用串行的早期计算机中为了简化硬件结构,采用串行的1位乘法方案,即多次执行位乘法方案,即多次执行“加法加法移位移位”操操作来实现。作来实现。这种方法并不需要很多器件。然而串行方法太这种方法并不需要很多器件。然而串行方法太慢,自从大规模集成电路问世以来,出现了各慢,自从大规模集成电路问世以来,出现了各种形式的流水式阵列乘法器,它们属于并行乘种形式的流水式阵列乘法器,它们属于并行乘法器法器。2.3.1 原码并行乘法(续(续4 4)2. 2. 不带符号的阵列乘法器不带符号的阵列乘法器设有两个不带符号的二进制整数:设有两个不带符号的二进制整数:( (见书见书P38P38)A Aa am m1 1aa1 1a a0 0 (m(m位)位) B Bb bn n1 1bb1 1b b0 0 (n n位)位)它们的数值分别为它们的数值分别为a a和和b b, ,即即 m m1 1 n n1 1 A A a ai i 2 2i iB B b bj j 2 2j j i i0 0 j j0 0在二进制乘法中在二进制乘法中, ,被乘数被乘数A A与乘数与乘数B B相乘相乘, ,产生产生(m mn n)位乘积位乘积P P:P Pp pm mn n1 1pp1 1p p0 0 (m+nm+n位)位)乘积乘积P P 的数值为:的数值为:am-1am-2a1a0)bn-1b1b0am-1b0am-2b0a1b0a0b0am-1b1am-2b1a1b1a0b1+)am-1bn-1am-2bn-1a1bn-1a0bn-1pm+n-1pm+n-2pm+n-3pn-1p1p0乘积乘积P P乘数乘数B B被乘数被乘数A A 上述过程给出了在上述过程给出了在m m位乘位乘n n位不带符号整数的阵列乘法位不带符号整数的阵列乘法中中,“,“加法加法移位移位”操作的被加数矩阵。每一个部分乘操作的被加数矩阵。每一个部分乘积项积项( (位积位积) )a ai ib bj j叫做一个被加数。叫做一个被加数。 这这mnmn个被加数个被加数 a ai ib bj j|0|0i im m1 1和和00j jn n11可以用可以用mnmn个个“与与”门门并行地产生。显然并行地产生。显然, ,设计设计高速并行乘法器高速并行乘法器的基本问题的基本问题, ,就就在于在于缩短缩短被加数矩阵中每列所需的加法时间。被加数矩阵中每列所需的加法时间。5位位5位阵列乘法器的逻辑电路图演示位阵列乘法器的逻辑电路图演示原码乘法运算若乘法器为若乘法器为n位位n位时位时,需要需要n(n1)个个“全加器全加器”和和n2个个“与与”门。门。由由“与门与门”形成形成该值该值加法器加法器原码乘法运算3T+3T2T3T+2T(n-2).6T(3T+Tf)(n-2).Tf3TTa令令T Ta a为为“与门与门”的传输延迟时间,的传输延迟时间,T Tf f为全加器为全加器(FA)(FA)的进位传输延迟时间,假定用的进位传输延迟时间,假定用2 2级级“与非与非”逻辑来实逻辑来实现现FAFA的进位链功能和的进位链功能和“与门与门”逻辑,那么就有:逻辑,那么就有:Ta Tf2T由上面的分析可以得出:最坏情况下的延迟途径,由上面的分析可以得出:最坏情况下的延迟途径,既是沿着矩阵既是沿着矩阵p p4 4垂直线和最下面的一行。因而得:垂直线和最下面的一行。因而得: n n位位nn位不带符号的阵列乘法器总的乘法时间为:位不带符号的阵列乘法器总的乘法时间为: tmTa+(n1)6T(n1)Tf 2T(n1)6T(n1)2T(8n6) T(2.27)原码乘法运算例例16已知两个不带符号的二进制整数已知两个不带符号的二进制整数 A11011,B10101,求每一部分乘积求每一部分乘积项项aibj的值与的值与p9p8p0的值。的值。解解:原码乘法运算11011=A(2710) 10101=B(2110)11011000001101100000+110111000110111=P(56710)a4b0=1a3b0=1a2b0=0a1b0=1a0b0=1a4b1=0a3b1=0a2b1=0a1b1=0a0b1=0a4b2=1a3b2=1a2b2=0a1b2=1a0b2=1a4b3=0a3b3=0a2b3=0a1b3=0a0b3=0a4b4=1a3b4=1a2b4=0a1b4=1a0b4=15位位5位位阵阵列列乘乘法法器器的的逻逻辑辑电电路路图图演演示示2.3.1 原码并行乘法(续(续5 5)上述过程说明了在上述过程说明了在m位乘位乘n位不带符号整数的阵列位不带符号整数的阵列乘法中,乘法中,“加法加法移位移位”操作的被加数矩阵。每操作的被加数矩阵。每一个部分乘积项一个部分乘积项(位积位积) aibj叫做一个被加数。叫做一个被加数。这这mn个被加数个被加数aibj|0im1和和0jn1可以用可以用mn个个“与与”门并行地产生。设计高速并门并行地产生。设计高速并行乘法器的基本问题在于缩短被加数矩阵中每列行乘法器的基本问题在于缩短被加数矩阵中每列所包含的所包含的1的加法时间。的加法时间。2.3.1 原码并行乘法(续(续8 8)3.带符号的阵列乘法器带符号的阵列乘法器一个负数的常规求补过程:一个负数的常规求补过程: 例:例: X=-1110X=-1110, 则:则:XX补补=1 =1 00001010; Y=-0100Y=-0100, 则:则:YY补补=1 1=1 1100100算法特点算法特点:从数据的最右边开始向左边逐位从数据的最右边开始向左边逐位看数,找到第一个看数,找到第一个“1”1”为止。该为止。该“1”1”的左边各的左边各位全部取反(不包括符号位);该位全部取反(不包括符号位);该“1”1”的右边的右边各位(包括该各位(包括该“1”1”)保持不变。)保持不变。带符号的阵列乘法器演示对演示对2求补电路的求补电路的工作过程工作过程3 2T3T+2T最长的信号最长的信号 延迟通路延迟通路所需的总时间延迟为:所需的总时间延迟为: tTC3 2T5T2.3.1 原码并行乘法(续(续1010)用这种对用这种对2求补器来转换一个求补器来转换一个(n1)为带符号为带符号的数,所需的总时间延迟为:的数,所需的总时间延迟为: t TCn2T5T(2n5)T(2.28)其中每个扫描级需其中每个扫描级需2T延迟,而延迟,而5T则是由于则是由于“与与”门和门和“异或异或”门引起的。门引起的。一个具有使能控制的二进制对一个具有使能控制的二进制对2求补器的逻辑表达式:求补器的逻辑表达式: C10, CiaiCi1 ai*aiECi1,0in2.3.1 原码并行乘法(续(续1111) 带符号的阵列乘法器带符号的阵列乘法器 n把包括这些求补级的乘法器又称为把包括这些求补级的乘法器又称为符号求补的阵符号求补的阵列乘法器列乘法器。n在这种逻辑结构中,共使用在这种逻辑结构中,共使用三个求补器三个求补器。n其中其中两个算前求补器的作用是:两个算前求补器的作用是:将两个操作数将两个操作数A和和B在被不带符号的乘法阵列在被不带符号的乘法阵列(核心部件核心部件)相乘以前,相乘以前,先变成正整数。先变成正整数。n算后求补器的作用是算后求补器的作用是:当两个输入操作数的符号:当两个输入操作数的符号不一致时,把运算结果变成带符号的数。不一致时,把运算结果变成带符号的数。(2)带符号的阵列乘法器带符号的阵列乘法器方法:方法:两个补码相乘,符号位单独处理,两个补码相乘,符号位单独处理,绝对值使用不带符号的阵列乘法器求乘积绝对值使用不带符号的阵列乘法器求乘积的绝对值,然后根据乘积的符号位对乘积的绝对值,然后根据乘积的符号位对乘积的绝对值求补,得出乘积的补码。的绝对值求补,得出乘积的补码。(n1)(n1)位带求补器的阵列乘位带求补器的阵列乘法器逻辑法器逻辑方框图方框图。补码补码绝对值绝对值绝对值绝对值补码补码用用符号位符号位做控制求做控制求补信号补信号E2.3.1 原码并行乘法(续(续1212)n设设A=anan-1a1a0和和B bnbn-1b1b0均为用定点表示的均为用定点表示的(n1)位带符号整数。在必要的求补操作以后位带符号整数。在必要的求补操作以后,A和和B的码值输的码值输送给送给nn位不带符号的阵列乘法器位不带符号的阵列乘法器,并由此产生并由此产生2n位真值乘位真值乘积积: ABPp2n-1p1p0 p2nan bn其中其中p2n 为符号位。为符号位。所示的带求补级的阵列乘法器既适用于原码乘法,所示的带求补级的阵列乘法器既适用于原码乘法,也适用于间接的补码乘法。也适用于间接的补码乘法。 在原码乘法中,算前求补和算后求补都不需在原码乘法中,算前求补和算后求补都不需要,因为输入数据都是立即可用的。要,因为输入数据都是立即可用的。 间接的补码阵列乘法所需要增加的硬件较多。间接的补码阵列乘法所需要增加的硬件较多。为了完成所必需的求补与乘法操作,时间大约比为了完成所必需的求补与乘法操作,时间大约比原码阵列乘法增加原码阵列乘法增加1倍。倍。2.3.1 原码并行乘法(续(续1313)例例17:17:设设15,13,用带求补器的,用带求补器的原码阵列乘法器求出乘积原码阵列乘法器求出乘积? 解:解:x=+15=(+1111)2,y=-13=(-1101)2,最高位为符号位,其决定是否启动求补器。最高位为符号位,其决定是否启动求补器。解解:输入数据为原码,则算前、算后求补都不需要,输入数据为原码,则算前、算后求补都不需要,直接计算结果。直接计算结果。原原01111原原11101符号位单独考虑,算前无需求补级,直接取数值位:符号位单独考虑,算前无需求补级,直接取数值位:|1111,|1101经由经由无符号阵列乘法器:无符号阵列乘法器:(算式演示算式演示)算后也无需求补,直接输出并加上乘积符号位算后也无需求补,直接输出并加上乘积符号位1,则有:则有:x y原原=111000011。换算成二进制数真值是换算成二进制数真值是:(11000011)2=(-195)10十进制数验证:十进制数验证:y=15(13)=-195相等。相等。1111(x=1510) 1101(y=1310)111100001111+111111000011(z=19510)例例18:18:设设+15,-13,用带求补器的补,用带求补器的补码阵列乘法器求出乘积码阵列乘法器求出乘积? 解:解:x=+15=(+1111)2,y=-13=(-1101)2,最高位为符号位,其决定是否启动求补器。最高位为符号位,其决定是否启动求补器。输入数据为补码,则算前、算后求补都可能需要,输入数据为补码,则算前、算后求补都可能需要,由符号位决定是否启动求补器。由符号位决定是否启动求补器。x补补=01111;(符号位为符号位为0,算前无需求补,算前无需求补)y补补=10011;(符号位为符号位为1,算前需求补,使,算前需求补,使y的的数值变为正数数值变为正数)几点注释几点注释对对y补补=10011的数值部分的数值部分(0011)再求补一次,得:再求补一次,得:|y|=1101无符号阵列乘法器输出的结果仍然为:无符号阵列乘法器输出的结果仍然为:11000011。x和和y的符号不一致,的符号不一致,结果的符号位为结果的符号位为“1”,需,需启动算后求补器,对结果求补,最后得出:启动算后求补器,对结果求补,最后得出:xy补补=100111101(真值真值=-195)可见,求补的目的是:可见,求补的目的是:数据送入无符号阵列乘法器之前,将参与运算的数据送入无符号阵列乘法器之前,将参与运算的补码数据先转换为数据的绝对值(补码数据先转换为数据的绝对值(由算前求补器由算前求补器完成完成);乘积的符号位单独形成(通过异或门);乘积的符号位单独形成(通过异或门);完成乘法运算后,根据乘积的符号位将两数绝对完成乘法运算后,根据乘积的符号位将两数绝对值的乘积再转换回补码的形式,得出乘积的补码值的乘积再转换回补码的形式,得出乘积的补码(由算后求补器完成由算后求补器完成)。)。由此可知:由此可知:这种这种带求补器的阵列乘法器所完成带求补器的阵列乘法器所完成的补码乘法,实质上属于的补码乘法,实质上属于间接的补码乘法间接的补码乘法。2.3.2 补码并行乘法间接补码乘法不属于真正的补码乘法,运算效率受到影响。间接补码乘法不属于真正的补码乘法,运算效率受到影响。n如果补码的符号位也直接参与到乘法运算中如果补码的符号位也直接参与到乘法运算中, ,则则可以完成补码的可以完成补码的“直接直接”乘法。乘法。这种方法排除了这种方法排除了较慢的对较慢的对2求补操作,求补操作,大大加速了乘法过程。大大加速了乘法过程。n与直接的补码乘法相联系数学特征。与直接的补码乘法相联系数学特征。对于计算补对于计算补码数的数值来说,较好的表示方法是使补码的位码数的数值来说,较好的表示方法是使补码的位置数有一个带负权的符号和带正权的系数。置数有一个带负权的符号和带正权的系数。1.补码与真值的转换公式补码与真值的转换公式 2.3.2 补码并行乘法( (续续1 1)例:例:定点整数的补码定点整数的补码N补补=an-1an-2a1a0=an-1是符号位。根据是符号位。根据N补补的符号,的符号,补码数补码数N补补和和真值真值N 的关系可以表示成:的关系可以表示成:ai2iN=当当an10时时(N为正数为正数)1(1ai)2in-2i=0当当an11时时(N为为负数负数)n-2i=00n-2位数值位位数值位逐位求反逐位求反末位加末位加1真值的绝对值真值的绝对值n-1i=0ai2i根据补码的性质根据补码的性质4,整数,整数N的补码的形式:的补码的形式:N补补=2nan-1+Nan-1为符号,为符号,N为正时,为正时,an-1=0;N为负时,为负时,an-1=1。或者或者N也可以用也可以用N补补表示为:表示为:N=-2nan-1+N补补=-2nan-1 = = -2nan-1+2n-1an-1 = = -2n-1an-1+ a ai i2 2i i (2.292.29)n-2i=0+n-1i=0 ai2i+n-2i=0 ai 2i因为当因为当N补补表示为表示为an1an2a1a0时,无论时,无论N为正还是为负,则都有式子为正还是为负,则都有式子2.29成立,即:成立,即:n-2i=0N= -N= -a an n1 12 2n n1 1 a ai i2 2i i-N补补an1an2a1a0+1式中式中ai=1-ai(对对0in-1)。)。无论无论N为正还是为负,为正还是为负,N补补的机器负数的机器负数-N补补为:为:表达式表达式(2.29)和和(2.30)是等效的。是等效的。n-2i=0 N(1an1)2n1(1ai)2i+1(2.30)依式子依式子2.29此类推得式子此类推得式子2.30:n-2i=0 Nan12n1ai 2i+12.3.2 补码并行乘法( (续续2 2)例例19已知已知:N补补01101,N补补10011,求求N补补,N补补具有的数值。具有的数值。解解:N补补01101具有的数值为:具有的数值为:N=-024+123+122+021+120=(+13)10N补补10011具有的数值为:具有的数值为:-N=-124+023+022+121+120=(-13)10按照式子按照式子2.30,求得:,求得:-N=-(1-0)24+(1-1)23+(1-1)22+(1-0)21+(1-1)20+1=(-13)10又例,又例,已知已知:A补补10110,B补补01011,求,求A和和B的值的值。解解:A补补10110具有的数值为:具有的数值为:A124023122121020(10)10B补补01011具有的数值为:具有的数值为:B024123022121120(11)102.3.2 补码并行乘法( (续续3 3) 常规的一位全加器可假定它的常规的一位全加器可假定它的3 3个输入和个输入和2 2个输出都是正权。实际上,这种加法器既个输出都是正权。实际上,这种加法器既可以把正权加到输入可以把正权加到输入/ /输出端、也可以把负输出端、也可以把负权加到输入权加到输入/ /输出端上。所以,可以归纳出输出端上。所以,可以归纳出四类加法单元。如四类加法单元。如(表(表2.32.3),0 0类全加器没类全加器没有负权输入;有负权输入;1 1类全加器有类全加器有1 1个负权输入和个负权输入和2 2个正权输入;依次类推。几种加法器的输入个正权输入;依次类推。几种加法器的输入输出真值表:输出真值表:2.一般化的全加器形式一般化的全加器形式 0类加法器:类加法器:输入、输出都没有负权。输入、输出都没有负权。直接补码并行乘法运算S=XYZ+XYZ+XYZ+XYZ=XYZC=XYZ+XYZ+XYZ+XYZ=XY+YZ+ZX1类加法器:类加法器:输入有一个负权输入有一个负权、输出输出和和为负权。为负权。直接补码并行乘法运算S=XYZ+XYZ+XYZ+XYZ=XYZC=XYZ+XYZ+XYZ+XYZ=XY+XZ+YZ2类加法器:类加法器:输入有两个负权,输出输入有两个负权,输出进位进位为负权。为负权。直接补码并行乘法运算S=XYZ+XYZ+XYZ+XYZ=XYZC=XYZ+XYZ+XYZ+XYZ=XY+XZ+YZ3类加法器:类加法器:三个输入都为负权,输出三个输入都为负权,输出进位进位、和和都为负权。都为负权。直接补码并行乘法运算S=XYZ+XYZ+XYZ+XYZ=XYZC=XYZ+XYZ+XYZ+XYZ=XY+YZ+ZX总结总结:0类类全加器就是普通的一位全加器,而全加器就是普通的一位全加器,而3类类全加器可以用全加器可以用0类类全加器的逻辑方程来表征,它全加器的逻辑方程来表征,它和和(0类类)是一致的。这是因为是一致的。这是因为3类全加器可以简单地类全加器可以简单地把把0类全加器的所有输入输出值全部反向来得到,类全加器的所有输入输出值全部反向来得到,反之亦然。反之亦然。1类类和和2类类全加器之间也能建立类似的关系。全加器之间也能建立类似的关系。(由于逻辑表达式具有两级(由于逻辑表达式具有两级“与或与或”形式,可以用形式,可以用“与或非与或非”门来实现,延迟时间为门来实现,延迟时间为2T。)。)直接补码并行乘法运算2.3.2 补码并行乘法( (续续5 5)n利用混合型的全加器就可以构成直接补码数阵列利用混合型的全加器就可以构成直接补码数阵列乘法器。设被乘数乘法器。设被乘数A和乘数和乘数B是两个是两个5位的二进制位的二进制补码数补码数,即即 A ( a4)a3a2a1a0 B(b4)b3b2b1b0n它们具有带负权的符号位它们具有带负权的符号位a4和和b4并用括号标注。并用括号标注。n如果我们用括号来标注负的被加项,例如如果我们用括号来标注负的被加项,例如(aibj),那么那么A和和B相乘过程中所包含的操作步骤如下面矩相乘过程中所包含的操作步骤如下面矩阵所示:阵所示:3.直接补码阵列乘法器直接补码阵列乘法器 2.3.2 补码并行乘法( (续续6 6)(a4)a3a2a1a0A)(b4)b3 b2b1b0B(a4b0)a3b0a1b0a1b0a0b0(a4b1)a3b1a2b1a1b1a0b1(a4b2)a3b2a2b2a1b2a0b2(a4b3)a3b3a2b3 a1b3a0b3)a4b4(a3b4)(a2b4)(a1b4)(a0b4)p9p8 p7p6p5p4p3p2p1p0P5位乘位乘5位的直接补码阵列乘法器逻辑原理示于图位的直接补码阵列乘法器逻辑原理示于图2.8,其中使用不同的逻辑符号来代表其中使用不同的逻辑符号来代表0类、类、1类、类、2类、类、3类类全加器。全加器。2类和类和1类全加器具有同样的结构类全加器具有同样的结构,但是使用不但是使用不同的逻辑符号可使乘法阵列的线路图容易理解。同的逻辑符号可使乘法阵列的线路图容易理解。直接补码并行乘法运算a4b0a4b1a4b2a4b3a4b4a3b0a2b0a1b0a0b0a3b1a3b2a3b3a3b4a2b4a1b4a0b4a2b1a1b1a0b1a2b2a1b2a0b2a2b3a1b3a0b300000aibjaibj0i40j42.4 定点除法运算n2.4.1 原码除法运算原理n2.4.2 并行除法器 2.4.1 原码除法运算原理n两个原码数相除时,商的符号由两数的符号按位相两个原码数相除时,商的符号由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得。加求得,商的数值部分由两数的数值部分相除求得。设有设有n位定点小数位定点小数(定点整数也同样适用定点整数也同样适用):被除数被除数,其原码为,其原码为xx原原 x xf f . x xn-1n-1x x1 1x x0 0 除数除数,其原码为,其原码为yy原原y yf f . y yn-1n-1y y1 1y y0 0则有商则有商q/,其原码为,其原码为 qq原原(x xf f y yf f)(0.x xn-1n-1x x1 1x x0 0 / 0.y yn-1n-1y y1 1y y0 0)2.4.1 原码除法运算原理( (续续1 1)n商的数值部分运算商的数值部分运算实质上是两个正数求商的运算。实质上是两个正数求商的运算。n设被除数设被除数0.1001,除数,除数0.1011,模仿,模仿十进制除法运算,以手算方法求十进制除法运算,以手算方法求的过程。的过程。n得得的商的商q0.1101,余数为余数为r0.00000001。0.1101(商(商q)0.1011 0.10010(r0)被除数小于除数,商被除数小于除数,商00.0101121除数右移除数右移1位位,减除数,商减除数,商10.001110r1得余数得余数r10.00101122除数右移除数右移1位位,减除数,商减除数,商10.0000110r2得余数得余数r20.000101123除数右移除数右移1位位,不减除数,商不减除数,商00.00001100r3得余数得余数r30.0000101124除数右移除数右移1位位,减除数,商减除数,商10.00000001r4得余数得余数r4得得的商的商q0.1101,余数为余数为r0.00000001。该步不作该步不作2.4.1 原码除法运算原理( (续续2 2)n笔算过程:笔算过程:1.2-1,够减,小数点后第一位商,够减,小数点后第一位商1”,作,作r02-1,得余数,得余数r1。3.比较比较r1和和2-2,因,因r12-2,够减,小数点后第二位商,够减,小数点后第二位商1”,作,作r ,2-2,得余数,得余数r2。4.比较比较r2和和2-3,因,因r22-4,够减,小数点后第四,够减,小数点后第四2位商位商“1”,作,作r32-4,得余数,得余数r4,共求四位商,除法完毕。共求四位商,除法完毕。2.4.1 原码除法运算原理( (续续3 3)n在计算机中,小数点是固定的,不能简单地采在计算机中,小数点是固定的,不能简单地采用手算的办法。为便于机器操作,使用手算的办法。为便于机器操作,使“除数右移除数右移”和和“右移上商右移上商”的操作统一起来。的操作统一起来。n机器不会心算,必须先作减法,若余数为正,才机器不会心算,必须先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。知道够减;若余数为负,才知道不够减。计算机计算需考虑的几点:计算机计算需考虑的几点:2.4.1 原码除法运算原理( (续续4 4)n恢复余数法。恢复余数法。不够减时必须恢复原来的余数,不够减时必须恢复原来的余数,以便再继续往下运算。恢复原来的余数,只以便再继续往下运算。恢复原来的余数,只要当前的余数加上除数即可。但由于要恢复要当前的余数加上除数即可。但由于要恢复余数,使除法进行过程的步数不固定,因此余数,使除法进行过程的步数不固定,因此控制比较复杂。控制比较复杂。例例0.101001,0.111,求求。解解:x*=|x|=0.101001,y*=|y|=0.111,先求先求|x|/|y|,符号位单独处理,符号位单独处理,由于需要做减法运算,所以需求由于需要做减法运算,所以需求-y*补补1.001被除数被除数0.101001+补补(减减) 1.001余数为负余数为负1.1100010q0=0加加0.111(恢复余数恢复余数)0.101001余数左移余数左移1.010010减减1.001余数为正余数为正0.011010q1=1余数左移余数左移0.1101减减1.001余数为负余数为负1.11110q2=0加加0.111(恢复余数恢复余数)0.1101余数左移余数左移1.101减减1.001余数为正余数为正0.1100q3=1故得故得商商q=q0.q1q2q3=0.101余数余数r=(0.00r3r4r5r6)=0.000110定点除法运算=(r+y*) 2-y*=2r+y*=1.110001 2+0.111=1.10001+0.111=0.01101余数为负余数为负1.1100010q00余数左移余数左移1.100012r加加0.111+y*余数为正余数为正0.011010q11n加减交替法加减交替法。实际中常用不恢复余数法。其特点是。实际中常用不恢复余数法。其特点是运算过程中如出现不够减。则不必恢复余数。根据运算过程中如出现不够减。则不必恢复余数。根据余数符号。可以继续往下运算。因此步数固定。控余数符号。可以继续往下运算。因此步数固定。控制简单。制简单。加减交替法加减交替法又称又称不恢复余数法:不恢复余数法:“不恢复余数法不恢复余数法”除法规则:除法规则:x/y首先对被除数首先对被除数x做减除数做减除数y运算,即:运算,即:+-y补补;判判断断余余数数符符号号,若若余余数数为为正正(够够减减),则则:商商上上“1”;余数左移一位,然后做减除数余数左移一位,然后做减除数(+-y补补)运算;)运算;若余数为负(若余数为负(不够减不够减),则:商上),则:商上“0”;余数左移一位,然后做加除数(余数左移一位,然后做加除数(+y补补)运算。)运算。注意注意:在定点小数的原码除法运算中在定点小数的原码除法运算中x0,y0,数值均取正的小数;(符号位单独考虑)数值均取正的小数;(符号位单独考虑)xy,保证:保证:商商q=x/y也是小数。也是小数。定点除法运算加减交替法:加减交替法:例例0.101001,0.111,求求。(书书P49)解解:补补1.001被除数被除数0.101001+补补(减减) 1.001余数为负余数为负1.1100010q00余数左移余数左移1.10001加加0.111余数为正余数为正0.011010q11余数左移余数左移0.1101减减1.001余数为负余数为负1.11110q20余数左移余数左移1.111加加0.111余数为正余数为正0.1100q31故得故得商商qq0.q1q2q30.101余数余数r(0.00r3r4r5r6)0.000110定点除法运算加减交替法的特点加减交替法的特点:运运算算过过程程中中,无无论论够够减减或或是是不不够够减减,可可以以根根据据余余数数符符号号, ,直直接接决决定定下下一一步步的的运运算算,不不必必考考虑虑余余数数的的恢恢复复问问题题。因因此此,这这种种算算法法步步数数固固定定,控制简单,被广泛使用。控制简单,被广泛使用。2.4.1 原码除法运算原理( (续续5 5)n早期计算机为了简化结构,硬件除法器的设计采用早期计算机为了简化结构,硬件除法器的设计采用串行的串行的1位除法方案。即多次执行位除法方案。即多次执行“减法减法-移位移位”操作来实现,并使用计数器来控制移位次数。由于操作来实现,并使用计数器来控制移位次数。由于串行除法器速度太慢,已被淘汰。串行除法器速度太慢,已被淘汰。目前计算机中目前计算机中的除法器主要采用集成阵列除法器来实现。的除法器主要采用集成阵列除法器来实现。2.4.2 并行除法器n和阵列乘法器非常相似,阵列式除法器也是一种和阵列乘法器非常相似,阵列式除法器也是一种并行运算部件,采用大规模集成电路制造并行运算部件,采用大规模集成电路制造.n与早期的串行除法器相比,阵列除法器不仅所需与早期的串行除法器相比,阵列除法器不仅所需的控制线路少,而且能提供令人满意的高速运算的控制线路少,而且能提供令人满意的高速运算速度。速度。n阵列除法器有多种多样形式,如不恢复余数阵列阵列除法器有多种多样形式,如不恢复余数阵列除法器,补码阵列除法器等等。除法器,补码阵列除法器等等。1.可控加法可控加法/减法减法(CAS)单元单元 2.4.2 并行除法器( (续续1 1)n可控加法可控加法/减法减法(CAS)单元将用于并行除法流水逻辑单元将用于并行除法流水逻辑阵列中,它有四个输出端和四个输入端。当输入线阵列中,它有四个输出端和四个输入端。当输入线P0时,时,CAS作加法运算;当作加法运算;当P1时,时,CAS作减作减法运算。法运算。nCAS单元的输入与输出的关系可用如下一组逻辑方单元的输入与输出的关系可用如下一组逻辑方程来表示:程来表示: SiAi (Bi p ) CiCi+1 (Ai+ Ci)( Bi p ) +AiCi(2.32)CAS逻辑结构图逻辑结构图P0时,时,CAS作加法运算;作加法运算;P1时,时,CAS作减法运算作减法运算2.4.2 并行除法器( (续续2 2)n当当P0时,即得一位全加器时,即得一位全加器(FA)的公式:的公式:SiAi Bi CiCi+1 AiBi+BiCi+AiCin当当P1时,则得求差公式:时,则得求差公式:SiAiBiCiCi1AiBiBiCiAiCi(2.33)其中其中BiBi1做减法时,做减法时,C Ci i称为借位输入,称为借位输入,C Ci i1 1称为借位输出。称为借位输出。 为说明为说明CASCAS单元的实际内部电路实现单元的实际内部电路实现, ,将方程式将方程式(2.32)(2.32)加以变换加以变换, ,可得如下形式:可得如下形式: S Si iA Ai i(B(Bi iP)P)C Ci i A Ai iB Bi iC Ci iP PA Ai iB Bi iC Ci iP PA Ai iB Bi iC Ci iP PA Ai iB Bi iC Ci iP PA Ai iB Bi iC Ci iP P A Ai iB Bi iC Ci iP PA Ai iB Bi iC Ci iP PA Ai iB Bi iC Ci iP PC Ci i1 1(A(Ai iC Ci i)(B)(Bi iP P) )A Ai iC Ci iA Ai iB Bi iP PA Ai iB Bi iP PB Bi iC Ci iP PB Bi iC Ci iP PA Ai iC Ci i 在这两个表达式中在这两个表达式中, ,每一个都能用一个三级组合逻辑每一个都能用一个三级组合逻辑电路电路( (包括反向器包括反向器) )来实现。因此每一个基本的来实现。因此每一个基本的CASCAS单元的单元的延迟时间为延迟时间为3T3T单元。单元。=A Ai iB Bi iP PA Ai iB Bi iP PB Bi iC Ci iP PB Bi iC Ci iP PA Ai iC Ci i=A Ai iB Bi iP P A Ai iB Bi iP P B Bi iC Ci iP P B Bi iC Ci iP P A Ai iC Ci i2.4.2 并行除法器( (续续4 4)n假定所有被处理的数都是正小数。假定所有被处理的数都是正小数。n在不恢复余数的除法阵列中,每一行所执行的操作在不恢复余数的除法阵列中,每一行所执行的操作究竟是加法还是减法,取决于前一行输出的符号与究竟是加法还是减法,取决于前一行输出的符号与被除数的符号是否一致。当出现不够减时,部分余被除数的符号是否一致。当出现不够减时,部分余数相对于被除数来说要改变符号。这时应该产生一数相对于被除数来说要改变符号。这时应该产生一个商位个商位“0”,除数首先沿对角线右移,然后加到下,除数首先沿对角线右移,然后加到下一行的部分余数上。当部分余数不改变它的符号时,一行的部分余数上。当部分余数不改变它的符号时,即产生商位即产生商位“1”,下一行的操作应该是减法。,下一行的操作应该是减法。2.不恢复余数(不恢复余数(加减交替法加减交替法)的阵列除法器)的阵列除法器 加减交替法:加减交替法:例例0.101001,0.111,求求。(书书P49)解解:补补1.001被除数被除数0.101001+补补(减减) 1.001余数为负余数为负1.1100010q00余数左移余数左移1.10001加加0.111余数为正余数为正0.011010q11余数左移余数左移0.1101减减1.001余数为负余数为负1.11110q20余数左移余数左移1.111加加0.111余数为正余数为正0.1100q31故得故得商商qq0.q1q2q30.101余数余数r(0.00r3r4r5r6)0.000110定点除法运算(6(6位位3 3位位) )的不恢复余数阵列除法器的逻辑原理图的不恢复余数阵列除法器的逻辑原理图被除数被除数0.123456 (双倍长双倍长)除数除数0.123商数商数0.q1q2q3余数余数0.00r3r4r5r6字长字长n141商商=q1q2q3余数余数=0.00r3r4r5r6商商q是是0,下一行做加法;,下一行做加法;商商q是是1,下一行做减法。,下一行做减法。Q可用作下一行的可用作下一行的p。做减法时,反馈到下一做减法时,反馈到下一行做末位行做末位+1最高进位决最高进位决定商定商q的值的值2.4.2 并行除法器( (续续5 5)n该阵列除法器是用一个该阵列除法器是用一个(CAS)单元所组成的流水阵单元所组成的流水阵列来实现的。一个列来实现的。一个(n1)位除位除(n1)位的加减交位的加减交替除法阵列由替除法阵列由(n1)2个个CAS单元组成,其中两个单元组成,其中两个操作数操作数(被除数与除数被除数与除数)都是正的。单元之间的互连都是正的。单元之间的互连是用是用n3(n+1)=4的阵列来表示的。的阵列来表示的。n被除数被除数是一个是一个6位的小数位的小数(双倍长度值双倍长度值): 0.x1x2x3x4x5x6n它是由顶部一行和最右边的对角线上的垂直输它是由顶部一行和最右边的对角线上的垂直输入线来提供的。入线来提供的。2.4.2 并行除法器( (续续6 6)n除数除数是一个是一个3位的小数:位的小数:0.y1y2y3n它沿对角线方向进入这个阵列。它沿对角线方向进入这个阵列。n这是因为这是因为除法中的部分余数的左移,等效的操作除法中的部分余数的左移,等效的操作是余数保持固定,而将除数沿对角线右移。是余数保持固定,而将除数沿对角线右移。n商商q是一个是一个3位的小数:位的小数:=0.q1q2q3n它在阵列的左边产生。它在阵列的左边产生。n余数余数r是一个是一个6位的小数:位的小数:0.00r3r4r5r6n它在阵列的最下一行产生。它在阵列的最下一行产生。2.4.2 并行除法器( (续续7 7)n最上面一行所执行的初始操作经常是减法。因此最最上面一行所执行的初始操作经常是减法。因此最上面一行的上面一行的控制线控制线P固定置成固定置成“1”。n减法是用减法是用+-y+-y补补运算来实现的,这时右端各运算来实现的,这时右端各CAS单单元上的反馈线用作初始的进位输入。元上的反馈线用作初始的进位输入。n每一行最左边的单元的进位输出决定着商的数值每一行最左边的单元的进位输出决定着商的数值。将当前的商反馈到下一行,我们就能确定下一行的将当前的商反馈到下一行,我们就能确定下一行的操作。进位输出信号指示出当前的部分余数的符号,操作。进位输出信号指示出当前的部分余数的符号,它将决定下一行的操作将进行加法还是减法。它将决定下一行的操作将进行加法还是减法。2.4.2 并行除法器( (续续8 8) 对不恢复余数阵列除法器来说对不恢复余数阵列除法器来说, ,在进行运算在进行运算时时, ,沿着每一行都有进位沿着每一行都有进位( (或借位或借位) )传播传播, ,同时所有同时所有行在它们的进位链上都是串行连接。而每个行在它们的进位链上都是串行连接。而每个CASCAS单单元的延迟时间为元的延迟时间为3T3T单元单元, ,因此因此, ,对一个对一个2n2n位除以位除以n n位位的不恢复余数阵列除法器来说的不恢复余数阵列除法器来说, ,单元的数量为单元的数量为(n(n1)1)2 2, ,考虑最大情况下的信号延迟考虑最大情况下的信号延迟, ,其除法执行时间其除法执行时间为:为:t td d(n(n1)1)2 23T3T(2.34) (2.34) 其中其中n n为尾数位数。为尾数位数。1
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号