使用跳跃阵列和变形华莱士树的并行乘法器的制作方法

文档序号:6406204阅读:469来源:国知局
专利名称:使用跳跃阵列和变形华莱士树的并行乘法器的制作方法
技术领域
本发明涉及并行乘法器,更具体地说,涉及使用变形布斯(Booth)算法、跳跃阵列及变形华莱士(Wallace)树的并行二进制乘法器。
并行二进制乘法器被广泛用于各种系统中,例如,高性能计算机的ALU(运算器)、传真电报、数字信号处理系统、矩阵乘法器,也可用于专用芯片中,因此已提出许多方法来减小芯片面积并提高并行二进制乘法器的运算速度,例如,众所周知的,通过使用变形的布斯算法可显著提高并行乘法器的乘法速度,该变形的布斯算法由John Wiley父子公司公开于“Computer Arithmetic”(PP.129-212,1979)及“Nikkei Electronics”(pp.76-89,1978年5月29日)中。
常规并行乘法器基于各种算法及技术。在已提出的许多乘法器中,可将有较高级性能的一般乘法器分为两种,两种在其初始步骤中皆用变形布斯算法产生n/2个部分乘积行,其中n为乘数Y和被乘数X两个输入的位数。这种并行乘法器的最基本部分是多操作数加法电路,该电路将n/2条部分乘积行彼此相加并减少到两行。为实现该加法器电路,要使用全加器阵列和华莱士(Wallace)树。
将使用阵列的并行乘法器排列为由全加器单元构成的二维阵列结构。在这种乘法器中,将当前行单元的输出顺序地输入到下一行单元。这样,这种乘法器的延迟时间复杂度为O(n)并基本为慢的乘法时间。


图1示意性地示出使用阵列的常规并行乘法器总的结构。图1中,将16位被乘数X提供给8个被乘数加法器单元CL1、CL2、CL3、...CL8,将16位乘数Y提供给变形布斯编码器MBE。然后,变形布斯编码器MBE根据变形布斯算法对16位乘数Y编码,并将编码输出提供给8个加法器单元CL1、CL2、CL3...CL8,其中每个编码输出为3位的信号。
第1到第8行加法器单元CL1-CL8分别将被乘数X加到变形布斯编码器MBE的编码输出,而第一行加法器单元CL1将其输出提供给第二行加法器单元CL2。然后,第一行加法器单元CL1的输出值再次加到第二行加法器单元CL2的输出值上,此外又顺序地加上第二行加法器单元CL2的乘积值,最后提供给快速加法器FAD。对补码乘法,将两个最低位及其补码的4位从每个加法器单元提供给快速加法器FAD。这样,快速加法器FAD的结果最终为2n位的数值。在并行乘法器中,如上所述,将每一行输出顺序提供给下面每一行。
因此,两个输入的乘法时间与输入位数成比例地减慢。尽管这种类型乘法器容易地应用于位数少,低速和小芯片面积中,但不适用于高速乘法。
另一方面,使用华莱士树的并行乘法器具有O(logn)的较快运算时间,但需要不规则结构的大的芯片面积。这样,该华莱士树不适用于小芯片面积和低成本。而且,如图6所示,在一个门延迟后提供一个进位输出,在两个门延迟后提供和输出,因为在一般的CMOS或NMOS电路中是用形成和之前处于备用状态的进位输出来获得和的,因此,不是直接加上前面形成的进位输出。图2示意性地示出使用华莱士树的常规乘法器的总结构而图5示出该华莱士树的示意结构。
在使用阵列或华莱士树的两种乘法器中,最后步骤是将两最后行相加。这种常规乘法器在乘法速度和芯片面积方面仍存在问题。这样就一直存在对能够提高乘法速度和芯片面积的更有效乘法器的需求。
本发明的目的是提供使用变形布斯算法、跳跃阵列和变形华莱士树的并行乘法器,该乘法器使芯片面积最小并提高了乘法速度。按照本发明,通过使用跳跃阵列、变形华莱士树结构和运算时间复杂度为O(logn)混合前缀加法器来提高两个输入的乘法速度。
本发明另一目的是提供通过改进结构规则性使芯片面积最小以及通过使用跳跃阵列和混合前缀加法器使设计简单的并行乘法器。
本发明的这些和其它目的、特点、优点通过结合附图的最佳实施例的以下说明会变得更清楚,附图中图1为说明使用常规布斯算法的阵列型并行乘法器的图;
图2说明使用常规布斯算法和华莱士树的并行乘法器;
图3说明按照本发明的并行乘法器;
图4说明按照本发明的跳跃阵列的结构;
图5说明华莱士树的各个结构,其中,图5(A)为常规华莱士树而图5(B)为按照本发明的变形华莱士树;
图6为说明按照本发明的CMOS全加器单元的电路图,其中图6(A)为正输入-负输出逻辑,图6(B)为负输入-正输出逻辑;
图7为说明混合前缀加法器的图。
参考附图更详细地描述本发明。
图3示出按照本发明的并行乘法器的总的原理结构。图3中,本发明包括用于按变形布斯算法对乘数Y的值偏码的变形布斯编码器MBE,连接到变形布斯编码器MBE用以由编码数值产生被乘数X的部分积的行以及用以在跳过预定跳跃间隔后将部分乘积行相加的跳跃阵列SAP,连接到跳跃阵列SAP以迅速加上由跳跃阵列SAP提供的二进制数的变形华莱士树MWT,以及连接到变形华莱士树MWT用于加上由变形华莱士树提供的两行的数值的混合前缀加法器HPA。
首先,使用变形布斯算法产生两个n位信号X和Y的并行乘法的n/2部分乘积行,其中n(=16)指出输入信号的位数。接着,变形布斯编码器MBE由乘数Y产生3*(n/2)编码输出提供给跳跃阵列SAP。然后跳跃阵列SAP通过被乘数X和变形布斯编码器MBE的编码输出产生部分积行并提供给变形华莱士树MWT。
产生部分乘积行的方法和图1所述的相同。具体地说,跳跃阵列SAP将部分乘积从n/2行减小到n/log(n/2)行。该跳跃阵列SAP也改进了乘法时间复杂度为O(logn)的乘法器结构的规则性并用简单设计使芯片面积最小。
其次,使用变形华莱士树MWT通过反复相加将跳跃阵列SAP的结果减小到两行。变形华莱士树MWT由于进位输出设有备用状态而具有比常规华莱士树更短的乘法时间。为改善乘法时间和芯片面积,跳跃阵列SAP和变形华莱士树MWT的每个单元依次由正输入-负输出和负输入-正输出单元加以排列构成。
最后,芯片面积小、速度高的混合前缀加法器HPA用于将最后两行相加。从使用常规阵列的并行乘法器来看,本发明尽管增加了芯片面积,但将乘法时间从O(n)降低到O(logn)。
再,按照本发明,带有跳跃阵列SAP和变形华莱士树MWT的并行乘法器将复杂度从O(2n2logn)降到O(n2logn+2n2)从而使芯片面积最小,而乘法时间尽管和常规场合等价地为O(logn)但在低于128位范围内乘法速度更快。
按照该电路,由于2个n位数相加由变形布斯编码器MBE、跳跃阵列SAP、变形华莱士树MWT和混合前缀加法器HBA的组合实现,所以输出变成2n位并使用按变形布斯算法的变形布斯编码器MBE从乘数Y产生(n/2)*3个编码输出行。所以,第i行的三个编码输出如下ONEi= Y2i+ Y2i - 1TWOi=(Y2i+ 1)′Y2i·Y2i - 1+ Y2i+ 1(Y2i)′·(Y2i-1)′NECi= Y2i + 1(Y2i′+(Y2i-1)′其中(0≤i≤n/2-1和Y-1=0),符号“′”指“-”、指逻辑“非”。
由于部分积行从三种编码输出行产生,所以可通过将变形布斯编码器MBE的输出行和n位被乘数加到各加法器单元来产生n/2条部分积行。第i部分行积的第j位如下Pi,j=(ONEi·Xj+TWOi·Xj-1)
NEGi(0≤i≤n/2-1,0≤j≤n,X-1=0和Xn=Xn-1)当下标i递增1时,该部分积Pi,j左移两位,使表示列的下标j增加2。
用跳跃阵列SAP将部分积行的数目从n/2减至n/log(n/2)。图4示出跳跃阵列SAP的结构。跳跃阵列SAP包括一行加法器单元CL11,第二行加法器单元CL12,...,和第八行加法器单元CL18。第一行加法器单元CL1通过跳跃3行而与第四行加法器单元CL4运算,同时第二行加法器单元CL12与第五行加法器单元运算。所以,每一行加法器单元跳跃3行后运算。
为使运算时间正比于log(n/2),确定跳跃间隔为n/(2log(n/2))。然而,n/2部分积行每组n/(2log(n/2))行的log(n/2)组构成,其中,前三组由全加器单元同时相加以致于跳跃间隔为log(n/2)-3而该跳跃阵列SAP操作时间变为log(n/2)-2。当前组每个单元的进位与和输出提供给下一组的相应行,具体地将该进位输出提供给权重高1的单元。
第i行第j列全加器单元的进位输出Ci,j与和输出Si,j分别表示如下Ci,j=fc(Pi,j,Si-n/2log(n/2),j,Ci-n/2log(n/2),j-1)Si,j=fs(Pi,j,Si-n/2log(n/2),j,Ci-n/2log(n/2),j-1)而fc和fs分别表示获得进位与和输出的函数,三个自变最的每一个分别表示加数,被加数和进位并满足变换律。另外,i范围为n/log(n/2)到n/2-1,而j的范围是2i到2i+n。
另一方面,在Ci,j为0,Si,j等于Pi,j并且0≤i≤n/log(n/2)-1的情形下,那么在i和j的预定范围内,Pi,j,Si,j和Ci,j被认为是0。将n/log(n/2)位行提供给变形华莱士树MWT以最后减到两行。由于各单元去掉了进位输出的备用状态,该变形华莱士树MWT有快的运算速度。然而,在常规华莱士树中,因为该进位输出处于备用状态直至形成和输出,在一个门延迟以后产生CMOS全加器单元的进位输出,而使用进位输出另一门延迟后产生和输出以使该和输出需要如图6所示的两个门的延迟。为了通过消去该进位输出的备用状态来减少运算时间,该变形华莱士树MWT直接产生下一单元的进位输出而没有备用状态,而各全加器单元如下文所述依次用正输入-负输出和负输入-正输出进行布局,作为一实例,图5(B)所示变形华莱士树MWT其芯片面积和常规华莱士树尺寸几乎相同,但乘法速度快。
图5(A)示出常规华莱士树的布局。跳跃阵列SAP的乘法输出值P0-P8提供给全加器11、21和31。全加器11、21和31的进位输出及和输出反复提供给其下一全加器,以最终从两全加器43和44产生2位输出。
图2示出使用变形布斯算法和变形华莱士树的常规并行乘法器,而变形华莱士树具有图5(A)的类似结构,但其全加器仅由正输入-负输出单元构成。全加器44的最终的进位及和输出提供给快速加法器FAD以输出乘法值。在全加器中,FApn表示正输入-负输出单元,而FAnp表示负输入-正输出单元。
图5(B)示出按照本发明的变形华莱士树MWT的结构。该变形华莱士树MWT包含用于接收跳跃阵列SAP的乘法输出的全加器61、71和81,用于将全加器61、71和81的进位输出相加的全加器91,用于将全加器61、71和81的和输出相加的全加器92,用于将全加器91和输出及全加器91、92的进位输出相加的全加器93,以及,用于将全加器93的进位输出和全加器92和93的和输出相加的全加器94。在该电路中,只用于进位输出的全加器与仅用于和输出的全加器相分离,以致于不出现备用状态。跳跃阵列SAP和变形华莱士树MWT的每个单元基本为全加器构成。
在该并行乘法器中,由于依次布置有正输入-负输出单元和负输入-正输出单元可同时减少单元延迟及芯片面积。这样,便可从单元输出级撤除反相器并只经单门延迟产生各单元的输出,并减少了门个数。全加器单元的正输入-负输出的逻辑等式如下Cout'=(cin(a+b)+a·b)'Sum'=(Cout'(a+b+cin)+a·b·cin)'图6(A)示出实现这些等式的CMOS全加器,相反,负输入-正输出的全加器单元的逻辑等式如下Cout=((cin'+a'·b')·(a'+b'))'Sum=((Cout+a'·b'·cin')·(a'+b'+cin'))'图6(B)示出用于实现该等式的CMOS全加器,其中a,b,Cin分别为输入信号,而Cin特指从权重高1的位提供的进位输入。混合前缀加法器HPA用于该并行乘法器最后一级以有效执行加法。该混合前缀加法器HPA足有较小面积较快运算速度的高级加法器,以便当该混合前缀加法器HPA用于乘法器时,提高总的性能。每个单元的逻辑函数如下ⅰ)pg单元(pi,l)'=(ai+bi)'(gi,l)'=(ai·bi)'
ⅱ)bp单元(pj,2k+1)'=(pi,2k·pj,2k)'(gj,2k+1)'=(pj,2k·gi,2k+gj,2k)'ⅲ)bn单元pj,2k=((pi,2k-1)'+(pj,2k-1)')'gj,2k=((pj,2k-1)'+(gi,2k-1)'(gj,2k-1)')'Iⅴ)白单元pi,k=(pi,k-1)'gi,k=(gi,k-1)'ⅴ)和单元si=((ci+(pi,l)'·(ci-l)')((gi,l)'+(ci-l)'))'图7示出将两个16位数(a16,a15,...a1)和(b16,b15,...b1)相加以得到结果(S17,S16,...S1)的混合前缀加法器HPA的结构。图7中,两个下标P或g分别指出行和列,而ai,bi,ci和Si分别指出第i个加数,第j个被加数,第i个进位和第i个和。上述每个单元包含NMOS和PMOS晶体管。该混合前缀加法器HPA已由本发明人在IEEE计算机设计国际会谇上以“高速小面积加法电路的VLSI设计”为题的文章中公开。在本发明中,通过使用混合前缀加法器HPA(参考上述IEEE会议论文)能获得很快的操作速度。本发明的并行乘法器对使用阵列的乘法器来说有较大芯片面积,但可取的是将乘法时间从O(n)降至O(logn)。
与使用已知为最快的并行乘法算法的常规华莱士树的乘法器相比较,使用跳跃阵列SAP和变形华莱士树MWT的乘法器的芯片面积从O(2n2logn)减小到O(n2logn+2n2),尽管常规华莱士树和该变形华莱士树MWT的运算时间都是O(logn)但在小于128位的范围内,变形华莱士树MWT的乘法速度快于常规华莱士树,从而具有以下效果。
1)实现O(logn)的快速乘法,并提高规则性,使芯片面积最小、设计简化从而降低制造成本;
2)通过使用跳跃阵列SAP,改进规则性从而使芯片面积最小并使设计简化,维持O(logn)的运算时间;
3)通过使用变形华莱士树MWT,去掉了进位输出的备用状态802而减少运算时间;
4)通过使用混合前缀加法器HPA,减小运算时间而改进规则性,从而使芯片面积最小;
5)通过依次排列正输入-负输出单元和负输入-正输出单元,减少了延迟时间,也减少了门个数;
6)与使用阵列的并行乘法器相比,虽然其芯片面积大,但运算时间从O(n)降低为O(logn)。进一步与只使用常规华莱士树的并行乘法器相比较,按照本发明的使用跳跃阵列SAP和变形华莱士树MWT的乘法器具有从O(2n2logn)到O(n2logn+2n2)的最小芯片面积而其运算时间在小于128位范围内较快,尽管运算时间复杂度为O(logn)。
7)因此开发出高级的并行乘法器和具有高性能的加法器,以及8)由于将本发明的并行乘法器用于ALU,传真电报、数字信号处理系统、矩阵乘法器和专用芯片可改进其性能。
本发明并没局限于前述实施例中,所公开实施例的各种变形及本发明其它实施例,对本领域人员参考本发明的说明,是显而易见的,所以期望所附权利要求书覆盖本发明真实范围内的任何这种修改或实施例。
权利要求
1.一种使用跳跃阵列和变形华莱士树的并行乘法器,包含有变形布斯编码器,用以按变形布斯算法对乘数编码并产生编码输出,跳跃阵列,用于对来自被乘数的部分积和所述变形布斯编码器的所述编码输出在跳过预定间隔后相加,变形华莱士树,用以高速地将由所述跳跃阵列提供的二进制位相加,以及混合前缀加法器,用于对由所述变形华莱士树提供的两个最后行相加。
2.如权利要求1所述的并行乘法器,其特征在于所述跳跃阵列由第一到第八行加法器单元构成,以便将部分积行数从n/2减小到n/log(n/2),跳跃n/(21og(n/2))后所述加法器单元分别与下一地址单元相乘。
3.如权利要求1所述的并行乘法器,其特征在于所述变形华莱士树包含三个第一全加器,用于接收所述跳跃阵列的乘法输出;第二全加器,用于对所述三个第一加法器的进位输出相加,第三全加器,用于对所述三个第一加法器的和输出相加,第四全加器,用于对所述第二和第三全加器的所述和及进位输出相加,以及第五全加器,用于对所述第四全加器的进位输出与所述第三及第四全加器的和输出相加。
4.如权利要求1所述的并行乘法器,其特征在于,所述混合前缀加法器由pg单元,bp单元,bn单元,白单元及和单元构成,这些单元满足以下等式ⅰ)单元(pi.1)'=(ai+bi)'(gi.1)'=(ai·bi)'ⅱ)bp单元(pj.2k+1)'=(pi,2k·pj.2k)'(gj.2k+1)'=(pj,2k·gi,2k+gj.2k)'ⅲ)bn单元pj.2k=((pi.2k-1)'+(pj.2k-1)')'gj.2k=((pj.2k-1)'+(gi.2k-1)'(gj.2k-1)')'ⅳ)白单元pi.k=(pi.k-1)'gi.k=(gi.k-1)'ⅴ)和单元si=((ci+(pi,1)'·(ci-1)')((gi.1)'+(ci-1)'))'
5.如权利要求1所述的并行乘法器,其特征在于所述跳跃阵列的所述跳跃间隔为n/(2log(n/2)),所述部分积行用n/(2log(n/2)构成一组,跳跃次数为log(n/2)-3,而跳跃的操作时间复杂度为log(n/2)-2。
6.如权利要求3所述的并行乘法器,其特征在于,所述变形华莱士树包含三个第一全加器,用于将所述跳跃阵列的乘法值相加,第二全加器,用于将进位输出相加;第三全加器,用于将和输出相加,以及用于最后步骤的第四和第五全加器,所述三个第一和第四全加器包括正输入-负输出单元,而所述第二、第三和第五全加器包括负输入-正输出单元。
7.如权利要求6所述的并行乘法器,其特征在于所述正输入-负输出单元包括CMOS晶体管,满足以下等式Cout'=(cin(a+b)+a·b)'Sum'=(Cout'(a+b+Cin)+a·b·cin)'
8.如权利要求6所述的并行乘法器,其特征在于所述负输入-正输出单元包括CMOS晶体管,满足以下等式Cout=((cin'+a'·b')·(a'+b'))'Sum=((Cout+a'·b'·cin')·(a'+b'+cin'))'
9.一种使用跳跃阵列和变形华莱士树的并行乘法器,它包含用于对乘数编码并按照变形布斯算法产生编码输出的变形布斯编码器,用于产生由被乘数与所述编码输出的乘法操作产生的部分积并在跳过预定跳跃间隔后将所述部分积相加的跳跃阵列,用于将所述跳跃阵列产生的二进制位相加的变形华莱士树,以及用于将所述变形华莱士树产生的最终两行相加的混合前缀加法器。
10.如权利要求9所述的并行乘法器,其特征在于所述混合前缀加法器将跳跃阵列和变形华莱士树用作一般快速加法器。
全文摘要
使用跳跃阵列和变形华莱士树的并行乘法器包含用于按变形布斯算法编码乘数的变形布斯编码器,用于部分积的跳跃阵列,用于将二进制位相加的变形华莱士树以及将最终两行相加的混合前缀加法器,其中连续执行O(logn)的快速乘法而没有进位输出的等待状态,并改进了该并行乘法器布局规则性从而降低了其芯片面积及制造成本。
文档编号G06F7/533GK1056939SQ9110037
公开日1991年12月11日 申请日期1991年1月15日 优先权日1990年5月31日
发明者韩铎敦, 牟相晚 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1