CN101122850A - 基于二次Booth编码的大数乘法器 - Google Patents

基于二次Booth编码的大数乘法器 Download PDF

Info

Publication number
CN101122850A
CN101122850A CNA2007101220865A CN200710122086A CN101122850A CN 101122850 A CN101122850 A CN 101122850A CN A2007101220865 A CNA2007101220865 A CN A2007101220865A CN 200710122086 A CN200710122086 A CN 200710122086A CN 101122850 A CN101122850 A CN 101122850A
Authority
CN
China
Prior art keywords
booth64
coding
multiplier
partial
partial products
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007101220865A
Other languages
English (en)
Other versions
CN100552620C (zh
Inventor
李树国
颜晓东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CNB2007101220865A priority Critical patent/CN100552620C/zh
Publication of CN101122850A publication Critical patent/CN101122850A/zh
Application granted granted Critical
Publication of CN100552620C publication Critical patent/CN100552620C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

基于二次Booth编码的大数乘法器,属于公开密钥密码体制算法的集成电路设计技术领域。本发明利用线性变换式B=8a+b对部分积产生的Booth 64算法结果进行二次编码,基于二次Booth 64编码的乘法器分为3级流水线结构。第1级结构由一个超前进位加法器预计算3倍的被乘数。在预计算的同时,分别对权为81的aj和权为80的bj进行二次Booth编码;第2级结构由两个相同部分积选择和压缩阵列,分别进aj和bj的的部分积化简。第3级结构将第二级得到的部分积通过加法器进行相加。本发明提高了乘法运算的速度,可用于高性能的RSA、ECC芯片的实现,适用于服务器上大型PKI系统的应用。

Description

基于二次Booth编码的大数乘法器
技术领域
本发明涉及公开密钥密码体制算法的集成电路设计领域,特别是涉及一种适合公开密钥加密算法的大数乘法的硬件实现。
背景技术
迅速发展的电子商务、保密通讯等应用对开放网路上的信息安全提出了更高的要求。RSA、ECC等公开密钥密码体制被广泛用于密钥传递和数字签名。RSA和素数域ECC的核心操作都是模乘运算,而且为了保证一定程度的安全性,RSA模数的位长需要达到1024位以上,ECC模数的位长也需要达到233位以上。应用最广泛的模乘法算法是蒙哥马利算法,它的核心思想是将模乘运算转化为基本的乘法运算。综上RSA、ECC算法实现的关键运算是大数乘法。但是这种规模的大数乘法运算用软件实现效率是很低的,会占用大量的系统资源,因此各种大数乘法器的硬件设计应运而生。
在乘法中,如果乘数是两位或两位以上的数,乘的时候,就要用乘数的每一位去乘被乘数,每次乘得的积,叫做部分积。大数高速乘法器通常采用并行结构,一般分为3个部分:一是产生部分积;二是将产生的部分积进行压缩,得到两个部分积:和(Sum)、进位(Carry);三是通过加法器将两个部分积相加得到结果。
产生部分积简单的方法是由被乘数X和乘数Y中的一位二进制数Yi相与。则N位二进制乘数将产生N个部分积。其具体算法表示为:
Function Mult(X,Y)=X×Y:
For i from 0 to n-1 step by 1
   if Yi equal 1 then
      temp←temp+X
     X←X×2
Return temp
其中n为二进制数X,Y的位数。 Y = Σ i = 0 n - 1 Y i 2 i
改进的Booth 4算法是一种常见的产生部分积方法。其原理是将乘数Y中相邻三位的二进制数Yi-1YiYi+1进行编码,从而使得部分积个数减少近一半。
改进的Booth 4算法数学表达式如下所示
Z = X × Y = X × Σ j = 0 , Y - 1 = 0 n 2 - 1 ( ( - 2 Y 2 j + 1 + Y 2 j + Y 2 j - 1 ) × 2 2 j ) = X × Σ j = 0 n 2 - 1 ( B j × 2 2 j )
其中Bj=-2Y2j+1+Y2j+Y2j-1(Y-1=0),n为二进制有符号数X,Y的位数。
图1以8×8b乘法器为例说明改进的Booth 4算法。改进的Booth 4编码一次考虑三位乘数:本位,相邻高位,相邻低位,由于每三位之间都重叠一位,因此实际每次编码处理了两位乘数,这样,比不编码的部分积数目降低了近1/2。在对乘数进行编码时,乘数需要再最低位第0位后补充一位,即第-1位Y-1,该位恒为0。图1中的部分积选择由改进的Booth 4编码确定,见表1所示,其中X代表被乘数。表1中两倍的被乘数2X可以通过被乘数X左移1位得到,补码表示的被乘数相反数-X可以通过对被乘数取反加一实现。当部分积选择为正数时,补偿位S为0;当部分积选择为负数时,对被乘数取反,补偿位S为1,从而实现取反加一的操作。
表1改进的Booth 4编码
  三位乘数   部分积选择   S   三位乘数   部分积选择   S
  0000010100111   +0+X+X+2X   0000   100101110111   -2X-X-X-0   1111
图2以一个具体实例说明Booth 4算法。乘数为91,二进制表示为01011011;被乘数M为100,二进制表示为01100100。对乘数从低位到高位每三位进行编码,编码规则见表1。例如乘数的第1位,第0位,第~1位为110,根据编码规则,产生部分积为-X。对于-X,由于硬件采用补码表示,可以通过被乘数各位取反然后加一实现。部分积的最高位为符号位,可以直接扩展。又如乘数的第5位,第4位,第3位为011,根据编码规则,产生部分积为2X。在硬件上可以将被乘数左移一位实现。同理产生其他部分积。通过Booth 4编码,产生4个部分积,将这4个部分积相加,即得到乘数91和被乘数100相乘的乘积9100。
改进的Booth 4算法推广到Booth 8算法。Booth 8算法可以将部分积数量减少为原来的1/3。其部分积从{±0X,±1X,±2X,±3X,±4X}中选择。由于3倍的被乘数3X不能通过移位操作得到,需要化成2X+X;其余部分积选择可以通过移位操作得到。改进的Booth 8算法数学表达式如下所示
Z = X × Y = X × ( - Y n - 1 2 n - 1 + Σ j n - 2 Y j 2 j )
= X × Σ j = 0 , Y - 1 = 0 n 3 - 1 ( ( - 4 Y 3 j + 2 + 2 Y 3 j + 1 + Y 3 j + Y 3 j - 1 ) × 2 3 j )
其中Bj=-4Y3j+2+2Y3j+1+Y3j+Y3j-1(Y-1=0),n为二进制有符号数X,Y的位数。
同样,改进的Booth 8算法可以推广到Booth 64算法。它将部分积数量减少为原来的1/6,但需要预先计算3X、5X……、31X,这显然制约该算法在实际中的应用。本发明解决了高阶Booth算法需要预计算大量奇数倍被乘数的问题,提高了大数乘法器的运算速度。
发明内容
本发明的目的在于提出了一种适用于大数乘法器的二次编码Booth 64线性变换式,并给出了基于该线性变换式的大数乘法器电路实现。该方法能满足高速公共密钥算法体制的大数乘法计算速度要求,提高签名认证的次数。
本发明所述的方法的思路在于,采用二次编码Booth64线性变换式对高阶Booth64编码结果进行再次编码,从而使得需要预计算奇数倍被乘数的数量大为减小,减少了乘法器面积,增大了部分积压缩率,提高了大数乘法器的运算速度。本发明所述的二次编码Booth64线性变换式指的是利用线性变换式B=8a+b对部分积产生的Booth 64算法结果进行二次编码这种转换方式,使得部分积不再从有大量奇数倍的被乘数集合{±0,±1,±2,±3,…,±32}中选取,而是转化成从集合{±0,±1,±2,±3,±4}中选取,从而大大地简化了电路的设计。
本发明所述的系统的思路在于,根据本发明所述二次Booth编码方法所处理乘数位宽大小的不同,采用相应的部分积压缩阵列,采用3级流水线结构,缩小了关键路径延迟,提高了硬件工作频率,实现了一个基于硬件的3段流水线完成大数乘法的硬件系统。本发明所述的大数乘法器架构,将在下文的实施例中给出详细说明。
本发明的特征在于利用线性变换式B=8a+b对部分积产生的Booth 64算法结果进行二次编码,基于二次Booth 64编码的乘法器分为3级流水线结构。第1级结构由一个超前进位加法器预计算3倍的被乘数。在预计算的同时,分别对权为81的aj和权为80的bj进行二次Booth编码;第2级结构由两个相同部分积选择和压缩阵列,分别进行权为81的aj和权为80的bj的部分积阵列进行化简。部分积的压缩采用Wallace树结构。部分积阵列采用4-2计数器和免进位加法器进行部分积的化简;第3级结构将第二级得到的部分积通过加法器进行相加。
1.本发明提到的二次编码Booth 64线性变换式详细说明如下:
1.1高阶Booth 64算法
设两个位长为n的补码二进制数X、Y分别表示被乘数和乘数:
X = - X n - 1 2 n - 1 + Σ i n - 2 X i 2 i - - - ( 1 )
Y = - Y n - 1 2 n - 1 + Σ j n - 2 Y j 2 j - - - ( 2 )
其中Xi,Yj∈{0,1}。
设乘法结果为Z,则基本乘法运算为
Z = X × Y = X × ( - Y n - 1 2 n - 1 + Σ j n - 2 Y j 2 j ) . - - - ( 3 )
高阶Booth 64编码一次考虑7位乘数。由于每7位之间都重叠一位,因此实际每次编码处理了6位乘数,其数学表达式如下:
Y = - Y n - 1 2 n - 1 + Σ j n - 2 Y j 2 j = Σ j = 0 , Y - 1 = 0 n / 6 - 1 ( ( - 32 Y 6 j + 5 + 16 Y 6 j + 4 + 8 Y 6 j + 3 + 4 Y 6 j + 2 + 2 Y 6 j + 1 + Y 6 j + Y 6 j - 1 ) × 2 6 j ) . - - - ( 4 )
式(4)假设乘数Y的位宽n为6的倍数,若其位宽不是6的倍数,则在其高位进行符号位补偿,得其位宽补足至6的倍数。
根据式(4),高阶Booth 64算法部分积产生的编码规则为
Bj=-32Y6j+5+16Y6j+4+8Y6j+3+4Y6j+2+2Y6j+1+Y6j+Y6j-1,(5)
则高阶Booth 64算法可以表示为
Z = X × Y = X × Σ j = 0 n / 6 - 1 ( B j × 2 6 j ) . - - - ( 6 )
式(6)表示部分积从集合{±0X,±1X,±2X,±3X,…,±32X}进行选择。在产生部分积前需要预计算被乘数的奇数倍3X,5X,……,31X。部分积个数从n减少为
Figure A20071012208600076
1.2二次Booth 64编码
由于高阶Booth 64算法需要预计算大量奇数倍被乘数,给硬件实现造成了困难。为了克服这个困难,基于Booth编码基础上,再次进行线性变换编码。即用一个线性表达式B=ka+b来表达高阶Booth 64编码结果,其中k为系数,a、b为变量。
本发明提出的二次Booth 64线性变换式为:
B=8a+b.(7)
其中:a∈{0,1,2,3,4},b∈{±0,±1,±2,±3,±4},B={±0,±1,±2,±3,…,±32}.根据式(7)可得到二次Booth 64编码,见表2二次Booth 64编码表。
表2二次Booth 64编码表
  B   a,b   B   a,b   B   a,b   B   a,b
  12345678   0,10,20,30,41,-31,-21,-11,0   910111213141516   1,11,21,31,42,-32,-22,-12,0   1718192021222324   2,12,22,32,43,-33,-23,-13,0   2526272829303132   3,13,23,33,44,-34,-24,-14,0
上表说明高阶Booth 64算法得到的结果{±0,±1,±2,±3,…,±32}完全可以用线性表达式B=8×a+b.来实现。这种转换方式,使得部分积不再从有大量的奇数倍被乘数集合{±0,±1,±2,±3,…,±32}中选取,而是转化成从集合{±0,±1,±2,±3,±4}中选取,从而大大地简化了电路的设计。
现将式(7)代入式(6),进一步化简得
Z = X × Σ j = 0 n / 6 - 1 ( ( 8 a j + b j ) × 2 6 j ) = 8 × [ Σ j = 0 n / 6 - 1 ( a j × 2 6 j × X ) ] + [ Σ j = 0 n / 6 - 1 ( b j × 2 6 j × X ) ] . - - - ( 8 )
式(8)说明二次Booth 64编码将产生两组部分积压缩阵列。每个压缩阵列的部分积数量为
Figure A20071012208600082
。由aj产生的部分积需要乘以8后再与由bj产生的部分积进行相加。乘8的运算可以通过左移得到。
附图说明
本说明书中的附图仅为图示的目的而提供,并不对本发明的内容产生任何限制,其中:
图1示出了经典的8×8改进的Booth 4乘法器的结构框图;
图2示出了一个Booth 4算法的具体乘法计算实例示意图;
图3示出了本发明提出的二次Booth 64乘法器的结构框图;
图4示出了本发明提出的二次Booth 64编码器结构框图;
图5示出了经典的CSA计数器结构框图;
图6示出了经典的4-2压缩器结构框图;
图7示出了经典的4-2压缩器链结构框图;
图8示出了本发明所采用的部分积阵列示意图;
图9示出了本发明所采用的部分积压缩Wallace Tree拓扑结构图。
具体实施方式
本发明的显著特点在于,采用二次编码Booth64线性变换式B=8a+b对高阶Booth64编码结果进行再次编码,从而使得使得部分积不再从有大量的奇数倍被乘数集合{±0,±1,±2,±3,…,±32}中选取,而是转化成从集合{±0,±1,±2,±3,±4}中选取,需要预计算奇数部被乘数的数量大为减小,减少了乘法器面积,增大了部分积压缩率,提高了大数乘法器的运算速度。
本发明的另一特点在于,提出了一种二次编码Booth64编码器结构。Booth编码逻辑包括3部分,分别是高阶Booth编码、二次编码和部分积选择逻辑。利用高阶Booth 64编码结果的相邻位是否相等的信息,根据线性变换式B=8a+b,进行二次编码,简化了二次Booth 64编码器的硬件逻辑复杂度。
本发明的第三个特点在于,采用了三段流水线结构乘法器,该结构符合本发明所提二次编码Booth64线性变化式方法中先编码,后压缩,再合并三步骤要求,合理分配了计算任务,缩短了关键路径延迟。
本发明的第四个特点在于提出了一种数字电路系统,该系统实现了本发明所提出的二次编码的Booth 64线性变换式方法。该系统减小预计算奇数倍被乘数的个数,快速的大数乘法。
下面将根据附图对本发明的具体实施方式进行详细说明。
2.本发明基于二次编码Booth 64线性变换式设计的大数乘法器结构如下:
2.1电路结构
图3给出了基于二次Booth 64编码的乘法器流水线实现结构。
1)在第一级结构中,用一个超前进位加法器预计算3倍的被乘数。加法器的输入分别是被乘数X和被乘数的两倍2X。2X在硬件实现上可以通过左移一位实现。在预计算的同时,分别对权为81的aj和权为80的bj进行二次Booth编码。编码器和部分积选择器逻辑在2.2介绍。
2)在第二级结构中,存在两个相同部分积选择和压缩阵列,分别进行权为81的aj和权为80的bj的部分积化简。部分积从集合{±0X,±1X,±2X,±3X,4X}选择。部分积数目的压缩采用Wallace树结构。部分积阵列采用4-2计数器和免进位加法器(CSA-carry save adder)进行部分积的化简,直至得到两个部分积(Sum与Carry)。那么,两个部分积选择和压缩阵列共产生4个部分积Sum_a、Carry_a、Sum_b、Carry_b。
3)在第三级结构中,将第二级得到的4个部分积相加。依据式(7),权为81的aj产生的2个部分积Sum_a、Carry_a首先需要通过移位产生8_Sum_a、8_Carry_a。这样得到的4个部分积8_Sum_a、8_Carry_a、Sum_b、Carry_b再通过一个4∶2部分积压缩电路得到最终的两个部分积Sum、Carry。
2.2二次Booth编码器设计
如图4所示,Booth编码逻辑包括3部分,分别是高阶Booth编码、二次编码和部分积选择逻辑。
1)高阶Booth编码
高阶Booth 64编码取每7位相邻的乘数Y6Y5Y4Y3Y2Y1Y0为一组作为输入,其编码规则见式(5)。由于 B = - 32 Y 6 + 16 Y 5 + 8 Y 4 + 4 Y 3 + 2 Y 2 + Y 1 + Y 0 , = - [ - 32 ( 1 - Y 6 ) + 16 ( 1 - Y 5 ) + 8 ( 1 - Y 4 ) + 4 ( 1 - Y 3 ) + 2 ( 1 - Y 2 ) + ( 1 - Y 1 ) + ( 1 - Y 0 ) ] , = - [ - 32 Y 6 ‾ + 16 Y 5 ‾ + 8 Y 4 ‾ + 4 Y 3 ‾ + 2 Y 2 ‾ + Y 1 ‾ + Y 0 ‾ ] ,
其中B为乘数Y6Y5Y4Y3Y2Y1Y0的高阶Booth 64编码结果,
Figure A20071012208600102
为Y的反码。因此当Y6Y5Y4Y3Y2Y1Y0的编码结果为B时,将Y6Y5Y4Y3Y2Y1Y0各位取反,则
Figure A20071012208600103
的编码结果为-B。利用该特点,编码器逻辑I通过异或门得到Y6Y5Y4Y3Y2Y1Y0相邻两位是否相等的输出信号E5E4E3E2E1E0,当Yi+1等于Yi时,Ei为0;当Yi+1不等于Yi时,Ei为1;其中i=0,1,2,3,4,5。编码器逻辑II通过E5E4E3E2E1E0和高阶Booth编码规则公式(5)得到输出信号B和polarity。其中信号sel_B位宽为33位,信号B中有且只有一个比特为高电平,其余比特为低电平。信号sel_B中高电平的比特sel_B[j]表示高阶Booth编码结果B的绝对值|B|等于j。信号polarity表示高阶Booth编码结果B的正负极性。
2)二次编码
二次编码逻辑根据表2的二次Booth 64编码表映射生成。其输入为高阶Booth 64编码信号sel_B、polarity。输出信号sel_a、sel_b位宽均为5位。信号sel_a、sel_b中有且只有一个比特为高电平,其余比特为低电平。信号sel_a、sel_b中高电平比特sel_a[i]、sel_a[j]为高电平,表明二次编码线性变换式(7)中的a、b二次编码结果分别为i、j。
3)部分积选择
部分积选择逻辑是多路选择器。根据选择信号sel_a、sel_b产生部分积。当sel_a[i]为高电平时,多路选择器选择被乘数的i倍输出。例如当sel_a[3]为高电平时,多路选择器选择3倍被乘数3X输出。sel_b的多路选择器逻辑和sel_a的相同。在乘法器结构中,由个二次Booth 64编码器生成两组部分积压缩阵列。
2.3部分积压缩阵列设计
部分积位数很大时,进位传播相加相当慢,因为需要很长的线从低位向高位传播进位。最重要提高乘法器速度的方法是运用进位节省加法器(由Wallace发明,又叫全加器或3-2计数器),将三个或更多的数以冗余和形式表示,不用进位相加。
这个方法在图5表示,PP1+PP2+PP3=result2+result1。压缩的延迟为一个加法器的延迟,不受部分积位数的限制。应用最基本的三输入加法器,用递归的方法布局,任何部分积可以相加并且减少到最后2个,而没有使用进位传播加法器。一个单独的进位传播加法器只需要在最后将2个部分积化为最终结果。这个普遍的方法可以应用于树形或者线性以改进性能。
Wallace描述的树形结构的缺点是不规则的互连线以及难以进行版面设计。一个更加规则的树形结构基于二进制树形结构。二进制树形结构由一系列4-2计数器组成。即输入4个数相加得到2位结果。部分积相加所需比例正比于log N。这样的树形结构更加规则。4-2压缩器内部逻辑如图6所示,由4-2压缩器组成4-2压缩器链,如图7所示
令Cin=0,则输入输出关系为I3+I2+I1+I0=2Cout+2C+S。
本发明的大数乘法器,是570*570位大数乘法器。在第一级Booth编码后,在第二级流水线上将通过部分积选择器产生部分积。由于采用二次编码Booth64线性变化式,将产生570/6=95个部分积。其部分积阵列如图8所示。
由于部分积的范围是{±0,±X,±2X,±3X,±4X},因此部分积位数将从570位上升为572位。根据二次编码Booth64线性变化式将乘数每7位一组编码,相邻编组有一位重合,因此相邻的部分积权重相差6。由于部分积有正负极性,因此在每个部分积最低位下会有一个进位信息Carry。因此考虑进位信息后,部分积阵列实际上有96行,其中部分积的进位信息与下一个部分积合并。
采用Wallace Tree结构,结合使用CSA和4∶2压缩器,将96行部分积最终化为2个部分积。其拓扑结构示意图如图9所示。
从Wallace Tree的拓扑结构可以看出,整个部分积相加网络需要5级4∶2压缩器和一级CSA。根据上两节对4∶2压缩器和CSA的延迟分析,可以推断整个部分积相加网络需要的延迟为5*3+2=17个异或门延迟。
本设计用Verilog进行行为级、RTL级编码和功能仿真,验证系统功能的正确性。基于SMIC0.18微米工艺库完成逻辑综合(DC),并提取门延时信息,进行门级仿真验证,确保功能正确性和时序上的准确性。最终,570×570大数乘法器关键路径时延5.8ns,面积约29.5mm2

Claims (2)

1.基于二次Booth编码的大数乘法器,其特征在于,该基于二次Booth编码的大数乘法器对高阶Booth64算法结果进行二次编码
1.1高阶Booth 64算法
设两个位长为n的补码二进制数X、Y分别表示被乘数和乘数:
X = - X n - 1 2 n - 1 + Σ i n - 2 X i 2 i Y = - Y n - 1 2 n - 1 + Σ j n - 2 Y j 2 j - - - ( 1 )
其中Xi,Yj∈{0,1};
设乘法结果为Z,则基本乘法运算为
Z = X × Y = X × ( - Y n - 1 2 n - 1 + Σ j n - 2 Y j 2 j ) . - - - ( 2 )
高阶Booth 64编码一次考虑7位乘数,由于每7位之间都重叠一位,因此实际每次编码处理了6位乘数,其数学表达式如下:
Y = - Y n - 1 2 n - 1 + Σ j n - 2 Y j 2 j = Σ j = 0 , Y - 1 = 0 n / 6 - 1 ( ( - 32 Y 6 j + 5 16 Y 6 j + 4 + 8 Y 6 j + 3 + 4 Y 6 j + 2 + 2 Y 6 j + 1 + Y 6 j + Y 6 j - 1 ) × 2 6 j ) . - - - ( 3 )
式(4)假设乘数Y的位宽n为6的倍数,若其位宽不是6的倍数,则在其高位进行符号位补偿,使得其位宽补足至6的倍数;
根据式(3),高阶Booth 64算法部分积产生的编码规则为
Bj=-32Y6j5+16Y6j+4+8Y6j+3+4Y6j+2+2Y6j+1+Y6j+Y6j-1  (4)
则高阶Booth 64算法可以表示为
Z = X × Y = X × Σ j = 0 n / 6 - 1 ( B j × 2 6 j ) . - - - ( 5 )
式(5)表示部分积从集合{±0X,±1X,±2X,±3X,…,±32X}进行选择,在产生部分积前需要预计算3X,5X,……,31X;部分积个数从n减少为
Figure A2007101220860002C6
1.2二次Booth 64编码
由于高阶Booth 64算法需要预计算大量奇数倍被乘数,给硬件实现造成了困难;为了克服这个困难,基于Booth编码基础上,再次进行线性变换编码,即用一个线性表达式B=ka+b来表达高阶Booth 64编码的结果,其中k为系数,a、b为变量;
二次Booth 64线性变换式为:
B=8a+b.    (6)
其中:a,b∈{±0,±1,±2,±3,±4},B={±0,±1,±2,±3,…,±32}.
根据式(6)可得到二次Booth 64编码,见表1,
表1二次Booth 64编码表
  B   a,b   B     a,b   B   a,b   B   a,b   1   0,1   9     1,1   17   2,1   25   3,1   2   0,2   10     1,2   18   2,2   26   3,2   3   0,3   11     1,3   19   2,3   27   3,3   4   0,4   12     1,4   20   2,4   28   3,4 5   1,-3 13     2,-3 21   3,-3 29   4,-3 6   1,-2 14     2,-2 22   3,-2 30   4,-2 7   1,-1 15     2,-1 23   3,-1 31   4,-1   8   1,0   16     2,0   24   3,0   32   4,0
这种转换方式,使得部分积不再从有大量的奇数倍被乘数集合{±0,±1,±2,±3,…,±32}中选取,而是转化成从集合{±0,±1,±2,±3,±4}中选取,从而大大地简化了电路的设计。
2.基于二次Booth编码的大数乘法器,其特征在于,在一块数字集成电路芯片内采用下述三级流水线的并行结构实现:
1)在第一级结构中,用一个超前进位加法器预计算3倍的被乘数,在预计算的同时,分别对权为81的aj和权为80的bj进行二次Booth编码;
2)在第二级结构中,存在两个相同部分积选择和压缩阵列,分别进行权为81的aj和权为80的bj的部分积化简,部分积从集合{±0X,±1X,±2X,±3X,4X}选择,部分积数目的压缩采用Wallace树结构,部分积阵列采用4-2计数器和免进位加法器(CSA-carry save adder)进行部分积的化简,直至得到两个部分积(Sum与Carry),那么,两个部分积选择和压缩阵列共产生4个部分积;
3)在第三级结构中,将第二级得到的4个部分积相加;依据式(6),权为81的aj产生的2个部分积Sum、Carry首先需要通过移位产生8_Sum、8_Carry;这样得到的4个部分积再通过一个4∶2部分积压缩电路得到最终的两个部分积Sum、Carry。
CNB2007101220865A 2007-09-21 2007-09-21 基于二次Booth编码的大数乘法器 Expired - Fee Related CN100552620C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007101220865A CN100552620C (zh) 2007-09-21 2007-09-21 基于二次Booth编码的大数乘法器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007101220865A CN100552620C (zh) 2007-09-21 2007-09-21 基于二次Booth编码的大数乘法器

Publications (2)

Publication Number Publication Date
CN101122850A true CN101122850A (zh) 2008-02-13
CN100552620C CN100552620C (zh) 2009-10-21

Family

ID=39085195

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101220865A Expired - Fee Related CN100552620C (zh) 2007-09-21 2007-09-21 基于二次Booth编码的大数乘法器

Country Status (1)

Country Link
CN (1) CN100552620C (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184086A (zh) * 2011-05-11 2011-09-14 电子科技大学 一种Booth编码器及乘法器
CN102270110A (zh) * 2011-06-30 2011-12-07 西安电子科技大学 一种改进的基16Booth编码器
CN102999311A (zh) * 2012-12-10 2013-03-27 张友能 基于Booth算法的48x30位乘法器
CN103645883A (zh) * 2013-12-18 2014-03-19 四川卫士通信息安全平台技术有限公司 基于fpga的高基模乘器
CN103684763A (zh) * 2012-09-19 2014-03-26 北京握奇数据系统有限公司 基于rsa算法的数据加密方法、装置及智能卡
TWI489375B (zh) * 2010-12-03 2015-06-21 Via Tech Inc 無進位乘法裝置及其處理方法
CN106775577A (zh) * 2017-01-03 2017-05-31 南京航空航天大学 一种高性能非精确冗余二进制乘法器及其设计方法
CN110196709A (zh) * 2019-06-04 2019-09-03 浙江大学 一种基于RRAM的非易失性8位Booth乘法器
CN110428247A (zh) * 2019-07-02 2019-11-08 常州市常河电子技术开发有限公司 非对称加密计算中大数乘除法的变权值快速实现方法
CN110955403A (zh) * 2019-11-29 2020-04-03 电子科技大学 近似基-8布斯编码器及混合布斯编码的近似二进制乘法器
CN111008003A (zh) * 2019-09-24 2020-04-14 上海寒武纪信息科技有限公司 数据处理器、方法、芯片及电子设备
CN111025133A (zh) * 2019-10-24 2020-04-17 北京时代民芯科技有限公司 一种二阶Booth编码Wallace树乘法器电路的测试方法
CN111488133A (zh) * 2020-04-15 2020-08-04 电子科技大学 高基数近似布斯编码方法和混合基数布斯编码近似乘法器
CN112068800A (zh) * 2020-08-10 2020-12-11 清华大学 阵列压缩器及具有其的大数乘法器
CN112988112A (zh) * 2021-04-27 2021-06-18 北京壁仞科技开发有限公司 点积计算装置
CN116991359A (zh) * 2023-09-26 2023-11-03 上海为旌科技有限公司 Booth乘法器、混合Booth乘法器及运算方法

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI489375B (zh) * 2010-12-03 2015-06-21 Via Tech Inc 無進位乘法裝置及其處理方法
CN102184086B (zh) * 2011-05-11 2012-11-07 电子科技大学 一种Booth编码器及乘法器
CN102184086A (zh) * 2011-05-11 2011-09-14 电子科技大学 一种Booth编码器及乘法器
CN102270110A (zh) * 2011-06-30 2011-12-07 西安电子科技大学 一种改进的基16Booth编码器
CN102270110B (zh) * 2011-06-30 2013-06-12 西安电子科技大学 一种改进的基16Booth编码器
CN103684763A (zh) * 2012-09-19 2014-03-26 北京握奇数据系统有限公司 基于rsa算法的数据加密方法、装置及智能卡
CN102999311A (zh) * 2012-12-10 2013-03-27 张友能 基于Booth算法的48x30位乘法器
CN103645883A (zh) * 2013-12-18 2014-03-19 四川卫士通信息安全平台技术有限公司 基于fpga的高基模乘器
CN106775577A (zh) * 2017-01-03 2017-05-31 南京航空航天大学 一种高性能非精确冗余二进制乘法器及其设计方法
CN106775577B (zh) * 2017-01-03 2019-05-14 南京航空航天大学 一种高性能非精确冗余二进制乘法器的设计方法
CN110196709A (zh) * 2019-06-04 2019-09-03 浙江大学 一种基于RRAM的非易失性8位Booth乘法器
CN110428247A (zh) * 2019-07-02 2019-11-08 常州市常河电子技术开发有限公司 非对称加密计算中大数乘除法的变权值快速实现方法
CN111008003B (zh) * 2019-09-24 2023-10-13 上海寒武纪信息科技有限公司 数据处理器、方法、芯片及电子设备
CN111008003A (zh) * 2019-09-24 2020-04-14 上海寒武纪信息科技有限公司 数据处理器、方法、芯片及电子设备
CN111025133B (zh) * 2019-10-24 2022-02-22 北京时代民芯科技有限公司 一种二阶Booth编码Wallace树乘法器电路的测试方法
CN111025133A (zh) * 2019-10-24 2020-04-17 北京时代民芯科技有限公司 一种二阶Booth编码Wallace树乘法器电路的测试方法
CN110955403A (zh) * 2019-11-29 2020-04-03 电子科技大学 近似基-8布斯编码器及混合布斯编码的近似二进制乘法器
CN111488133A (zh) * 2020-04-15 2020-08-04 电子科技大学 高基数近似布斯编码方法和混合基数布斯编码近似乘法器
CN111488133B (zh) * 2020-04-15 2023-03-28 电子科技大学 高基数近似布斯编码方法和混合基数布斯编码近似乘法器
CN112068800A (zh) * 2020-08-10 2020-12-11 清华大学 阵列压缩器及具有其的大数乘法器
CN112068800B (zh) * 2020-08-10 2022-10-25 北京草木芯科技有限公司 阵列压缩器及具有其的大数乘法器
CN112988112A (zh) * 2021-04-27 2021-06-18 北京壁仞科技开发有限公司 点积计算装置
CN116991359A (zh) * 2023-09-26 2023-11-03 上海为旌科技有限公司 Booth乘法器、混合Booth乘法器及运算方法
CN116991359B (zh) * 2023-09-26 2023-12-22 上海为旌科技有限公司 Booth乘法器、混合Booth乘法器及运算方法

Also Published As

Publication number Publication date
CN100552620C (zh) 2009-10-21

Similar Documents

Publication Publication Date Title
CN101122850A (zh) 基于二次Booth编码的大数乘法器
CN100583023C (zh) 组合多项式和自然乘法的乘法器架构
Timarchi et al. Arithmetic circuits of redundant SUT-RNS
Surendran et al. Implementation of fast multiplier using modified Radix-4 booth algorithm with redundant binary adder for low energy applications
Molahosseini et al. A new residue to binary converter based on mixed-radix conversion
Mahitha et al. A low power signed redundant binary vedic multiplier
Haritha et al. Design of an enhanced array based approximate arithmetic computing model for multipliers and squarers
US20020103840A1 (en) Apparatus and method for digital multiplication using redundant binary arithmetic
Dakhole et al. Multi-digit quaternary adder on programmable device: Design & verification
Molahosseini et al. Efficient MRC-based residue to binary converters for the new moduli sets {2 2n, 2 n-1, 2 n+ 1-1} and {2 2n, 2 n-1, 2 n-1-1}
Noorimehr et al. Efficient Reverse Converters for 4-Moduli Sets {2$$^{2n-1}-1$$, 2$$^{n} $$, 2$$^{n}+ 1$$, 2$$^{n}-1$$} and {2$$^{2n-1} $$, 2$$^{2n-1}-1$$, 2$$^{n}+ 1$$, 2$$^{n}-1$$} Based on CRTs Algorithm.
Bhusare et al. Fixed-width multiplier with simple compensation bias
Moayedi et al. Design and evaluation of novel effective Montgomery modular multiplication architecture
RU2751802C1 (ru) Умножитель по модулю
Setia et al. Novel Architecture of High Speed Parallel MAC using Carry Select Adder
Hallikhed et al. VLSI Implementation of Fast Addition Using Quaternary Signed Digit Number System
Sahoo et al. A high speed FIR filter architecture based on novel higher radix algorithm
Reddy et al. A high speed, high Radix 32-bit Redundant parallel multiplier
Mousavi et al. Pipelined Residue Logarithmic Numbers System for general modules set {2 n-1, 2 n, 2 n+ 1}
Ongwattanakul et al. Quaternary Arithmetic Logic Unit on a Programmable Logic Device.
KR100805272B1 (ko) 부호화를 이용하는 곱셈 장치 및 그 방법
Rajkumar et al. VLSI Implementation of Signed Multiplier using Quaternary Signed Digit Number System
Alaie et al. Efficient modulo 2n+ 1 multiplier
PRIYANKA et al. Pre Encoded Multiplier Design using Enhanced Higher Radix Booth Encoding
Chandrika et al. Design and Comparison of Wallace Multiplier Based on Symmetric Stacking and High speed counters

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091021

Termination date: 20100921