首页> 中国专利> 组合多项式和自然乘法的乘法器架构

组合多项式和自然乘法的乘法器架构

摘要

集成电路并联乘法电路可提供自然乘法乘积和具有GF(2)上系数的多项式乘积。并联乘法器硬件架构(图3)安排成部分积(Pi,j)的加法,使得它从第一组加法器阶段(23)开始,该阶段执行加法而不接收任何进位项作为输入,并且进位项(ek+1)的加法一直延迟到安排在第一组之后的第二组加法器阶段(29)。将加法器分成两组的有意安排使得多项式乘积(dk)能从第一组加法的结果(sk)中提取,以及使自然乘积(ck)能从第二组加法的结果中提取。

著录项

  • 公开/公告号CN1781076A

    专利类型发明专利

  • 公开/公告日2006-05-31

    原文格式PDF

  • 申请/专利权人 爱特梅尔股份有限公司;

    申请/专利号CN200480009432.3

  • 发明设计人 V·杜帕丘斯;L·帕利斯;

    申请日2004-03-22

  • 分类号G06F7/52(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人李玲

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 17:20:52

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-10

    未缴年费专利权终止 IPC(主分类):G06F7/52 授权公告日:20100120 终止日期:20170322 申请日:20040322

    专利权的终止

  • 2017-05-31

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F7/52 变更前: 变更后: 申请日:20040322

    专利权人的姓名或者名称、地址的变更

  • 2017-05-31

    专利权的转移 IPC(主分类):G06F7/52 登记生效日:20170508 变更前: 变更后: 申请日:20040322

    专利申请权、专利权的转移

  • 2016-09-21

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F7/52 变更前: 变更后: 申请日:20040322

    专利权人的姓名或者名称、地址的变更

  • 2011-10-05

    专利权的转移 IPC(主分类):G06F7/52 变更前: 变更后: 登记生效日:20110824 申请日:20040322

    专利申请权、专利权的转移

  • 2010-01-20

    授权

    授权

  • 2006-07-26

    实质审查的生效

    实质审查的生效

  • 2006-05-31

    公开

    公开

查看全部

说明书

技术领域

本发明涉及半导体集成电路的架构,尤其涉及乘法电路。

背景技术

乘法硬件通常适用于执行自然乘法(在小学学习的普通算术),但是是对二进制数进行运算的。在自然乘法中,两个操作数A和B相乘可产生积C=A·B,其中A、B和C分别可由等于0或1的二进制数字ai、bj和ck表示:

A=(an-1,...,a1,a0)=SUMi(ai·2i)

B=(bn-1,...,b1,b0)=SUMj(bj·2j)

C=(cn-1,...,c1,c0)=SUMk(ci·2k)

在此,指数i、j和k表示特定数字的比特重要性或“权重”。(类似的数表示,诸如二的补码或一的补码,通常可用来表示负整数,以及实数的尾数。使用这些额外的数所表示的乘法也是与适当乘法相类似的。)

在并联乘法器架构中,积通常的形式为叉积的和。两个操作数比特的部分积等同于逻辑AND(与)操作,并通过使用AND门以电路硬件的方式来实现。权重相同的两个部分积比特的和产生相同权重的和项以及下一更高权重的进位项,其中,该和项等同于逻辑XOR(异或)操作,而进位项等同于逻辑AND操作:

x+y=carry,sum=AND(x,y),XOR(x,y)通常,硬件加法器可具有两种主要类型,全加法器可将三个输入比特相加在一起,半加法器可将两个输入比特相加在一起。输入比特可以是部分积比特、来自另一加法器的和项输出、或进位项。不管源自何处的所有输入比特,包括“进位”输入比特,对加法器输出具有完全相同的逻辑贡献,并且通常可示为相对于结果是等同的。(然而,应该注意的是,加法器电路的标准单元实现常常在加法器电路的构建中给予进位输入优先定时,以便最小化整个加法器阵列结构中的传播延迟和过分的切换。)两种类型的加法器都可生成和项和进位项作为输出。

在自然乘法中,进位项可传送并添加到下一更高权重的和项中。因而,自然积C为:

C=SUMi,j(ai·bj·2i+j)

 =SUMk((SUMi+j=k(AND(ai·bj)))·2k)

并联自然乘法器电路有各种各样的架构,主要是在排列部分积加法器阵列的方式上不同。

Wallace的架构(“A Suggestion for a Fat Multiplier”,IEEE Trans.On ElectronicComputers,vol.EC.15,pp14-17,Feb.1964)和Dadda的架构(在法国Grennobled1965年1月的Colloque sur l’Algèbre de Boole上刊登的文章)是相似的。图1显示了由L.Dadda揭示的基本结构。部分积的阵列可示为在A区以竖直列根据其权重排列的点。对两个n比特的操作数而言,给定权重的部分积的数量可在1到n之间变化。累加给定权重的各个部分积可通过二进制计数器来实现,在图中示为对角线。术语“二进制计数器”是由Dadda使用的,且在本文档中其它地方的含义是,对于给定数量的输入行,它产生表示总数量或对那些输入的“计数”的二进制输出。(这与常用的时序计数器不同,时序计数器可随着时间的流逝产生一系列增量输出。)部分积的累加可分成两个主要步骤,其中,第一个步骤(再可分成若干级联阶段)将部分积减少成两个数字的数组,第二个步骤包括一个进位传送加法器步骤。第一个步骤的级联阶段在图中示为B到D区。计数器的大小取决于要计数的给定权重项的总量。例如,在B区中,列为5,要累加(计数)权重为24的5个部分积,它们一起形成了权重分别为26、25、24的3-比特和。因而,会有要传送到下一计数阶段或区的若干个不同权重的进位项。C和D区将同样的原理应用于前一个区的输出上。D区计数器的输出仅由两行组成。这些都在第二个主要步骤(E区)中用快速加法器来处理,以给出自然乘积。其它并联自然乘法器可使用各种类型的全加法器的树结构(或甚至更复杂的加法器电路)以将部分积快速减为最终的乘积。

其它类型的代数都具有它们自己的乘法。一种常用于产生错误校正码并且近来用于椭圆曲线密码系统(参见专利号为6,252,959的美国专利)可在有限(Galois)域内产生乘法乘积。可使用不同的域,但大多数常用的应用都采用质数域GF(p)或二进制域GF(2N)。错误校正码应用,诸如Reed-Solomon代码发生,通常在小尺寸字(例如,8比特)上进行重复操作,因此可在GF(256)上也使用乘法。椭圆曲线应用通常可对具有160比特或大于160比特的字宽度的较大数据块进行操作。常常,在任一种使用多项式表示的应用中,乘积可定义为多项式乘积,随后可由残数除法通过适当的不可约多项式来减小。可以构建专用的硬件结构,以实现有限域乘法。

在GF(2N)上,一个数的各个元素可表示为n-uple(矩阵表示)或表示为具有n个系数的多项式(多项式表示):

A=(an-1,...,a1,a0)=an-1Xn-1+...+a1X1+a0X0

 =SUMi(aiXi)

ai是GF(2)的元,即,可以是0或1。GF(2)上的加法律和乘法律分别是XOR和AND逻辑运算。两个GF(2N)数的加法可定义为多项式加法,即,同次或相同权重的系数的累加:

c=A+B=sumi(XOR(ai,ni)xi)

两个GF(2N)数的乘法可定义为多项式乘法,以特定的不可约多项式P为模:

c=A·B=(A*B)mod P

 =sumk(XORi+j=k(AND(ai,bj))xk)mod P

其中k为从0到N-1。值得注意的是,A*B表示多项式乘积(不是折合模数P),而A·B表示两个GF(2N)数的乘积。A*B是2N-2次的多项式,因此不是GF(2N)的元。A·B是GF(2N)的元。

将具有系数GF(2)的多项式加法和乘法与自然加法和乘法作比较,我们可观察到:akXk(k次的多项式项)和ak2k(其中k的自然数比特)在加法和乘法中起相似作用,但又有些不同。具有有限域GF(2)内系数的多项式加法与自然加法相似,除了相同次数项的和在多项式加法情形中不向相邻项提供任何进位,而相同权重项的自然加法不向下一更高权重提供进位。具有有限域GF(2)内系数的多项式乘法也与自然乘法相似,除了相同次数部分积的和在多项式乘法情形中不产生相邻次的进位,而相同权重项的部分积的自然加法不向下一更高权重提供进位。最后,我们应该指出的是:n比特自然和的最低有效位比特是这些比特的XOR,就像多项式情形中一样。

在专利号为4,918,638的美国专利中,Matsumoto等人描述了一种有限域乘法器,用来获取GF(24)中的乘积以用于产生操作校正码。在执行二进制乘法之后,独立的多项式发生器块用乘法通过发生器多项式g(x)=x4+x+1来减小乘积。该专利的图5和9示出用于执行有限域乘法的二进制乘法器阵列。AND门用来形成部分积,而XOR门用来对相同权重的部分积执行比特加法。乘法器可构建成不执行自然乘法,而仅执行GF(24)有限域乘法。

本发明的一个目的是提供一种并联乘法器的结构,该结构不仅能传送自然乘法乘积,而且能传送具有GF(2)上系数的多项式乘法乘积,从而有助于在GF(2N)(对于任何N≥1的值)中完成有限域乘法。

发明内容

本发明的目标可由并联乘法器硬件架构来达到,该结构安排部分积的加法,使得该加法从执行加法但不接收任何进位项作为输入的第一组加法器阶段开始,从而将进位项的加法延迟到在该第一组之后安排了第二组加法器阶段。将各加法器安排成两个不同组的有意安排使得多项式乘积都能从第一组加法的结果中提取,而自然乘积则从第二组加法的结果中提取。

乘法器包括AND门的阵列,其中输入与操作数比特相连,而输出提供整个部分积的集合。安排为累加相同比特重要性或“权重”的部分积的加法架构分多个阶段构建。值得注意的是,这些阶段的第一组累加所有部分积而不包括任何进位输入,第二组阶段则将从加法架构的较低权重部分获取的进位输入累加到前面阶段的结果上。所有阶段都向加法架构的较高权重部分提供进位输出。

在加法架构包括并联计数器的级联阶段的情形中,其中在相同权重的两个或多个部分积的每一列中都具有至少一个计数器,第一组仅包括具有部分积输入的第一行计数器,而输入来自前面计数器行的计数比特的所有其它计数器行是第二组的一部分。多项式乘法乘积从每个第一行计数器的最低有效位比特中提取,而自然乘法乘积从接收每个权重的最后一对计数比特的进位传送加法器中提取。

在加法架构包括各个权重的全加法器的树结构的情形中,第一组加法器仅接收部分积输入和部分积加法的和项。该树结构将给定权重的奇数个部分积减少为单个和项,该和项表示该权重的二进制乘积比特。该树结构将给定权重的偶数个部分积减少为一对和项。然后具有该对和项作为输入的XOR门输出该权重的二进制乘积比特。第二组加法器取得来自第一组的和项和来自下一更低权重的加法树的进位项,并将它们减少为第二对和项。然后,最后的加法器结构(例如,进位传送、进位保存、4到2简化器等)从这些第二和项中形成自然乘积比特。

在加法架构包括全加法器和半加法器的混合树结构的情形中,给定权重的第一组全和半加法器将乘积项输入减少为单个和项,该和项是该权重的二进制乘积比特。然后,第二组加法器累加进位以获得该权重的自然乘积比特。

通过将进位加法分离到第二组中,多项式乘法乘积可从第一组提取,并且还可获得自然乘法乘积。

附图说明

图1是根据Dadda现有技术的并联自然乘法器架构的平面示图。

图2是图1所示修改版本的平面示意图,其中提供了可从内部计数器中提取二进制乘积比特的比特线,作为除自然乘积之外的单独输出。

图3是根据本发明的通用乘法器架构的示意框图。

图4是适用于任何乘法器电路的部分积发生器的电路部分示意图。

图5是具有八个相同权重的部分积输入的现有技术中的进位保存加法器部分的电路示意框图。

图6是本发明的进位保存加法器部分的一个实施例的电路示意框图,其中具有适用于提取多项式乘积比特的额外的XOR门。

图7是根据本发明的进位保存加法器部分的其它实施例的电路示意框图,其中使用半加法器以及多项式乘积比特的比特线提取。

图8A-8G示出类似于图6所示的电路部分的电路示意框图,它具有一到七个部分积输入,其中具有偶数个部分积输入的每个电路部分都有额外的XOR门。

图9示出还能处理负整数乘法的加法器结构的两个相邻权重k和k+1的电路示意框图。

具体实施方式

参照图2,Dadda结构(图1所示)的变体可看成B区中每个计数器11的最低有效位比特13与第一列和最后一列的单乘积项15一起相对应于具有GF(2)中系数的多项式的多项式乘积比特。这些计数器最低有效位比特13通过比特线17来提取,并提供为多项式乘积输出,与在E区中所获取的自然乘积不同,并添加到该自然乘积上。尽管这些多项式乘积比特可呈现为某些自然乘法电路的内部状态,但就发明人所知,它们并不是单独提取成提供多项式和自然乘积的乘法器。

对GF(2)中乘积的和出现并可用于从自然乘法器架构内提取的认识,显示了乘法器可特殊设计成提供多项式和自然乘积,即通过适当地组合部分积加法架构。这通过重新将自然乘积C安排为两个部分成为可能,这两个部分包括表示持续累加操作的多项式乘积D和其它项E:

C=SUMi,j(ai·bj·2i+j)

 =SUMk((SUMi+j=k(AND(ai·bj)))·2k)

 =SUMk[XORi,j=k-i[ANDi+j=k(ai·bj)]·2k]+SUMk(ek·2k)

 =D+SUMk(ek·2k)

式中:ek是从下一较低权重k-1加法中获取的权重k的所有进位项。这些附加项与多项式乘法乘积D无关,但只是继续自然乘法的累加以获取自然乘积C。将进位加法分离到第二组阶段的任何乘法架构进行管理以完成自然乘法,并且还提供来自第一组加法阶段的多项式乘法结果D,这些加法阶段仅使用部分积且无进位。

图3说明性地示出将加法器分成两个组23和29,并从这两个组中提取不同乘积27和33。特别是,操作数比特ai和bj(其中i和j的范围都是从0到n-1)由AND门(由标记)阵列21接收,以产生整个部分积项pi,j的集,它的每一项都由多项式次数或权重wk来表征,其中k=i+j且其范围是0~2n-2。然后,部分积可由加法结构(由标记)的第一组23来接收,这些加法结构根据每个多项式次数或权重来分开(由实线25标记)。这些加法结构将乘积项pi,j减为一个和项Sk集和一个进位项ek+1集。(对于给定权重k,可有若干进位项线ek+1。)由于第一阶段加法对每个次数或权重分开执行且未输入任一加法操作所导致的任何进位,所以和项sk表示为多项式乘积项,并可沿着比特线27提取以形成多项式乘积系数dk,其中k的范围仍然是从0到2n-2。在该提取过程中,任意对相等多项式次数的项目之和可异或,以便于产生每个次数的单个乘积比特。和项sk和进位项ek+1输入到第二组加法结构29(还是由标记)中。但在此处,任何进位项(由穿过虚线权重边界的对角线31标记)都包括在加法结构的输入中。由进位传送加法器、进位保存加法器、或4到2简化器的阵列可以完成第二阶段加法,以减少表示自然乘积比特ck的一系列输出33,其中因为结合了进位项,现在k的范围是0到2n-1。因而,多项式和自然乘法乘积都可获得并从电路输出。这通常不会比常规的快速自然乘法架构慢太多。实际上,由于某些优化结构因为对进位项加法必须延迟到第二组加法结构的要求而遭排除的事实,而使该架构会与类似结构的其它乘法器一样快。至于尺寸,提取二进制乘积的附加硬件是可忽略的,例如一些额外的比特线或一些额外的XOR门。值得注意的是,尽管所示实施例是两个n-比特操作数相乘,但是本发明在具有不同大小的操作数的非对称情形中也能很好地工作(m×n乘法和乘法-累加,包括1×n+n乘法-累加操作)。

在图4中,可以看到部分积产生电路是由AND门组成的。每个AND门41接收对应于操作数比特ai和bj的两个输入。AND门输出该对操作数比特的部分积Pi,j,并组成相同多项式次数或权重k(=i+j)的部分积。也可使用其它部分乘积产生电路。例如,它们可以是NAND门,只要在其后某个点上能逻辑恢复正确的极性。该恢复步骤可在加法器阵列之后,就当我们具有carryOut(结果),sum=a+b+c,则我们也可具有not(carryOut),not(sum)=not(a)+not(b)+not(c)(not为非操作)。相类似,我们可根据极性的惯例来使用OR门或NOR门;或者在输入或输出处使用相反极性工作的加法器。

参照图5-7,相同次数或权重的部分积项可加入到例如大部分由全加法器所组成的加法器电路。全加法器是众所周知的电路元件,它可累加三个输入以产生和与进位。输入可以是来自该电路部分的其它加法器的相同次数或权重的部分积、或从加法器的下一更低权重部分接收的进位项。所有由加法器所产生的进位项具有下一更高的权重,并提供给相邻的电路部分(用于自然乘法)。图5-7的该加法器电路一共具有八个部分积输入Pi,j,其中i,j范围从0-7且权重为i+j=7。各个电路还具有6个进位输入、6个进位输出、以及2个自然乘积输出项。两个输出项是典型的情形,其中在最后,快速加法器(进位前瞻、进位选择等)将在每一个不同部分中收集两条输出线来计算最后的结果。其它架构可在所考虑权重中产生一条或两条以上输出线。图6和7还提供多项式乘积输出项。不同权重的其它加法器部分可具有不同数量的部分积输入。在图5-7中,进位输入和进位输出对齐,就像各部分都相同一样。这是接近于实际情况的,即使在部分积输入的数量随着权重的增加而增加(或减少)的任何情况下可能会少一个(或多一个)进位输入项。(随着权重增加,部分积输入的数量在乘法的LSB部分增加而在乘法的MSB部分减少。)

在图5中,现有技术的进位保存加法器部分采用全加法器51-53累加尽可能多的部分积,而不接收进位输入(在此为8个部分积输入中的7个)。即使这样,第八个部分积项可加到全加法器54中的进位项输入c7。随后,由全加法器55-57进行的加法来累加各全加法器53和54的和,并累加进位输入c7。下一更高权重的进位项c8可输入到相邻部分中。该加法器部分提供一个和输出,它可在随后的进位传送加法器阶段中添加到任一剩余的进位输入项。该安排可在4个加法器延迟中执行8到2简化。因为图5是仅用于自然乘法器的加法器部分,所以有限域乘法的二进制乘积不可用。

图6的进位保存排列基本上与图5相同,除了多项式乘积比特通过XOR加法来创建。在图6中,加法器的经修改进位保存排列仍具有8个相等权重(i+j=k=7)的部分积输入。其次,其中7个项可由全加法器61-63来累加。最后的和,与第八个部分积输入一起在线67和68上提取,并输入到XOR门69,以获取多项式7次项PMUL7。来自加法器63的和、第八个部分积输入、以及进位输入c7都使用全加法器64-66累加在一起以获得和项,然后与剩下的一个进位输入项一起由进位传送加法器进行随后的加法,以获取相应的自然乘法比特。因此,经修改的电路可执行与图6一样的加法,但使用了额外的XOR门来提取多项式乘积项。加法器延迟与图5电路并无较大不同。

在图7中,对图5进位保存排列的不同修改是引入了半加法器电路。半加法器是众所周知的,仅取两个输入并生成和与进位输出的电路。使用半加法器使得图7所示的所有八个部分积输入得以累加。三个输入由第一全加法器71处理,另三个输入由第二全加法器72处理,而最后的两个输入由半加法器73处理。所有三个加法器71-73的和输出由全加法器74累加以获得多项式乘积项PMUL7。将加法器74的和输出添加到进位输入c7由全加法器75-77处理。其次,对加法器延迟并没有太大影响。图7所示的实施例相对于图5需要一个额外的半加法器、以及一个额外的进位项。(该额外进位项归因于全加法器从来不使用和与进位输出的全部组合的事实。实际上,(进位,和)=(1,1)的情形是不可能的。)

参照图8a-g,扩展了图6所示的实施例,示出具有不同数量部分积输入的多个排列。仅当有偶数个部分积输入时才需要额外的XOR门。对于奇数,加法器在加进位之前就减为单个和项。因此,对于奇数数量的部分积输入,该部分仅需一条额外比特线来提取多项式乘积比特项PMULi。除这两个输入情形外,加法架构的递增侧(次数或权重从0到n-1)具有少一个的进位输入,因此只有一个对随后的进位传送加法器阶段的和输入。对于从n到2n-2的次数或权重,有通过该部分提供给进位传送加法器阶段的和与进位输入。对于较大的乘法器,例如32×32,全加法器和XOR门的序列可继续在乘法的LSB部分扩展,其中偶数个部分积输入需要该部分具有一个XOR门来提供多项式乘积项。类似的过程也在半加法器(需要偶数数量的部分乘法输入)的使用中出现。

图6、7和8A-8G表示根据本发明的优选实施例的示例性实现。然而,本发明的其它实现也是可能的。例如,尽管以上所示实现对具有偶数数量的部分积输入使用了一个XOR或半加法器,其它可能实现可选择具有一个以上XOR或半加法器,或在使用奇数数量的部分积输入的情形中也使用一个XOR或半加法器。尽管根据门的数量这些可选方案未达最优,仍然可因为简便的设置、可映射到FPGA器件或某些其它原因而选择它们。此外,XOR或半加法器在加法器树上的位置可与图中所示有变化。此外,尽管图6和7所示结构具有相等数量的进位输入和进位输出,图8A-8G示出并不需要总是如此。并且,尽管以上实现用全加法器、半加法器或XOR门建立,但是也可使用诸如4到2简化器的其它构件。

乘法-加法C=A·B+z的情形可适用于乘法累加C:=A·B+C或C=A·B+F·G+K·L,并用于计算被乘数的乘积,这些被乘数的一个或两个都比乘法器硬件要宽,例如,使用32比特宽的乘法电路进行160比特宽的乘法。在这些情形中,要累加的数可视为它好像是要累加的另一个部分积集。对于自然乘法-加法的情形,所有进位都被可包括在该结果中。对于具有GF(2)中系数的多项式乘法-加法,所有进位都不跨越多项式次数边界,因此可忽略。

对于自然乘法,较大宽度的处理可简约成一序列乘法和加法的操作。对于L个比特的硬件字宽度和M个字的操作数宽度,即,P=M·L比特,并用自然方式来处理操作数,A=SUMi(Ai·2i),i=0,...,P-1,我们可有选择地通过字来表示操作数,A=SUMj(jA·wj),其中w=2L,作为字jA中的左指数用于字指数,指数j=0,...,M-1,比特jA=Aj·L+i。然后,两个操作数A和B的乘积是:

A·B=SUMk(SUMi+j=k(ijB)·wk)

量SUMi+j=k(ijB)是相同权重的乘积之和,因此宽的乘法可通过一系列乘法(ijB)和加法(SUMk)操作来完成。一般而言,每个乘法操作的结果在2L比特上对乘法编码,再加上另一些对加法编码的比特就完成了。当处理k+1指数时,应随后加入w上的结果,即,具有大于或等于L的权重的结果比特。

对于具有GF(2)中系数的多项式乘法,再次使用以上对自然乘法使用的符号,但是用符号*来表示多项式乘法。A=SUMi(Ai·Xi),i=0,...,P-1。这由L比特硬件处理为A=SUMj(jA·wj),其中jA是L比特多项式,j=0,...,M-1且w=XL。jA多项式被定义为:

jA=SUMi(Aj·L+1·xi)

其中i=0,...,L-1。然后多项式乘积为:

A*B=SUMk(XORi+j=k(iA*jB)·wk)

k=0,...,2M-2,其中量Xk=XORi+j=k (iA*jB)是相同次数的多项式部分积的多项式和,所有系数都具有GF(2)中的值,即,不引用进位。基本多项式乘积就在2L-2比特中编码并且不添加额外的比特,因为多项式加法不会导致次数增大。当处理k+1指数时,应通过多项式的多项式加法(即XOR)随后加入w上的结果,即,具有大于或等于L的权重的结果比特。

更可能的进一步改进是将乘法和加法结合于乘法-加法操作中。大多数人通常将乘法-加法操作C:=A·B+C视为先进行乘法产生之间结果A·B,然后进行加法获得最终结果。然而,这并非是必须的,并可构件乘法加法硬件来结合乘法和加法,其中部分积和累加比特或系数都可加到一起。即,从部分积(Ai·Bj),将它们与适当权重的累加比特Ck加在一起。我们仅需提供可从附加C总线输入比特Ck的加法器阵列。在具有GF(2)中系数的多项式的乘法-加法情形中,我们用不加区分的方式将部分积比特和累加比特输入加法器阵列的输入端,并异或相同权重的所有项而不涉及任何进位比特:

D=A*B+C=SUMk(XORi+j=k(AND(Ai,Bj),Ck)·2k)

对于具有GF(2)中系数的多项式的乘法-加法,我们必须在次数为k的电路部分输入端置入要从C添加的所有必需的部分积,以及次数为k的多项式系数,并建立加法阵列的电路部分,从而这些输入的和可用作该电路部分的多项式输出:

D=A*B+C=SUMk(SUMi+j=k(iA,jB),kC)·wk)

其中指数在此是指N比特多项式系数的权重。

乘法-加法操作的结合还可进一步推广为包括,例如A1*B1+A2*B2+C,其中A1*B1是当前要执行的乘法,A2*B2是用于模块式提取的Montgomery(或Barrett)的恒定算法,且C允许累加或扩展为宽的数。此外,尽管以上描述主要用于有限域操作的多项式乘法部分,但是有限域中的多项式简化操作也可在乘法之后进行,甚至结合到组合的有限域乘法-简化操作。乘法器电路可执行的可能操作包括M=1情形中的N×M-字乘法操作。例如,可执行乘以一字常数b然后可能有累加步骤的乘法(A*b或A*b+C),以扩展为多倍较大尺寸。类似地,上述两次乘法和加法情形可应用于自然或多项式乘法中的单字被乘数b1和b2(A1*b1+A2*b2+C),并在后一乘法中可有或没有随后的模块化简化(Barrett、Montgomery或其它类型)。可提供两个或多个并联乘法器单元来完成多个一般操作,其中根据本发明这些单元的至少之一可选择用于自然或多项式乘积输出。

这样,我们已经描述了能够处理多项式或正整数的乘法器。本发明也可适用于处理负整数。例如,2的补码符号可用来表示正数和负数:

A=-an·2n+an-1·2n-1+...+a0·20

其中an是“符号比特”。如果an=1,则A是负的;如果an=0,则A是正的或等于0。具有(n+1)个比特,a的值的范围可从-2n直到2n-1。对于2的补码,自然乘法为:

A·B=an·bn·22n-an(bn-1·22n-1+…+b0·2n)-bn(an-2·22n-1+…+a0·2n)+SUM0≤i,j<n(ai·bj·2i+j)

>>=>>a>b>>·>>b>n>>·>>2>>2>n>>>->>2>>2>n>+>1>>>+>>2>>n>+>1>>>+>[ver>>>>a>n>>>>·>b>>>n>->1>>>>‾>>>>·>2>>>2>n>->1>>>+>·>·>·>+ver>>>>a>n>>>>·>b>>0>>>‾>>>>·>2>>n>>]>+>[ver>>>>b>n>>>>·>a>>>n>->1>>>>‾>>>>·>2>>>2>n>->1>>>>>

>>+>·>·>·>+ver>>>>b>n>>>>·>a>>0>>>‾>>>>·>2>>n>>]>+>>SUM>>0>≤>i>,>j><>n>>>>(>>a>i>>>>·>b>>j>>>>·>2>>>i>+>j>>>)>>>>

最后一项SUM0≤i,j<n(ai·bj·2i+j)等于n*n比特的正乘法。在该部分,我们可简便地提取多项式乘法,正如本文档前面所述,只要我们组织该乘法器架构使得在计算中剩余各项中不存在干扰即可。

所有这些其它项,即高权重、已求反的部分积、和2n+1常数,必须累加以获取自然乘法结果。然而,由于加法是相互关联并可互换的,如果加法是在该流程的后来执行,结果不会改变。为了以最优速度和成本来执行这些项的累加,最好在一完成多项式提取时就加入这些要累加的项。

图9示出乘法器架构的部分框图,其中,加法器结构适用于实现前述2的补码乘法。在图9中,可看到两个相邻权重的加法器阶段91k和91k+1分别包括第一加法阶段95k和95k+1,其中,添加特定权重(k或k+1)的正的部分积93k和93k+1不使用任何进位项,以便在异或输出的加法器阶段97k和97k+1上获取相同权重的多项式乘积比特。这些多项式比特可像前面实施例一样地提取以产生多项式乘积。进一步的加法步骤99k和99k+1接收多项式比特97k和97k+1,以及从下一较低权重的第一加法阶段输出的进位项101k和101k+1。为了处理正整数和负整数,2的补码形式的eiuuggtr0.g.、已求反的部分积、和2n+1常数(以及上述等式中的其它项),在相应权重的比特线103k和103k+1上输入到下一加法阶段99k和99k+1(即2n+1仅向权重n+1的加法器阶段99n+1提供)。进一步的加法步骤99k和99k+1输出自然乘积比特105k和105k+1

这种乘法器能够支持:

(1)n*n正乘法,通过使符号位为零;

(2)(n+1)*(n+1)的2的补码乘法;

(3)n*n的2补码乘法,通过符号扩展到(n+1)比特;以及

(4)n*n多项式乘法,通过多项式乘积比特提取,如上所述。

同样的方法也可应用于m*n乘法或乘法-加法,通过

(a)符号扩展以便仅具有多项式乘法(-加法)的输入线的正表示;(b)分开处理与多项式乘法(加法)相关的各条线,即部分积、通过加法器异或、半加法器、或简单异或;(c)提取多项式结果;以及(d)仅在已提取多项式结果之后合并阵列加法。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号