CN100583023C - 组合多项式和自然乘法的乘法器架构 - Google Patents

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

Info

Publication number
CN100583023C
CN100583023C CN200480009432A CN200480009432A CN100583023C CN 100583023 C CN100583023 C CN 100583023C CN 200480009432 A CN200480009432 A CN 200480009432A CN 200480009432 A CN200480009432 A CN 200480009432A CN 100583023 C CN100583023 C CN 100583023C
Authority
CN
China
Prior art keywords
group
partial product
multiplication
weight
stage
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.)
Expired - Fee Related
Application number
CN200480009432A
Other languages
English (en)
Other versions
CN1781076A (zh
Inventor
V·杜帕丘斯
L·帕利斯
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.)
Walter -IC French Co.
Inside Secure SA
Original Assignee
Atmel Corp
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 Atmel Corp filed Critical Atmel Corp
Publication of CN1781076A publication Critical patent/CN1781076A/zh
Application granted granted Critical
Publication of CN100583023C publication Critical patent/CN100583023C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)

Abstract

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

Description

组合多项式和自然乘法的乘法器架构
技术领域
本发明涉及半导体集成电路的架构,尤其涉及乘法电路。
背景技术
乘法硬件通常适用于执行自然乘法(在小学学习的普通算术),但是是对二进制数进行运算的。在自然乘法中,两个操作数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 1’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,bi)xi)
两个GF(2N)数的乘法可定义为多项式乘法,以特定的不可约多项式P为模:
c=A·B=(A*B)modP
=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。然后,部分积可由加法结构(由
Figure C20048000943200102
标记)的第一组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=XLjA多项式被定义为:
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)
=an·bn·22n-22n+1+2n+1+[an·bn-1·22n-1+…+an·b0·2n]+[bn·an-1·22n-1
+…+bn·a0·2n]+SUM0≤i,j<n(ai·bj·2i+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)仅在已提取多项式结果之后合并阵列加法。

Claims (12)

1.一种提供具有GF(2)上系数的多项式乘法乘积和自然乘法乘积的并联乘法器硬件架构,其特征在于,所述乘法器硬件架构包括:
AND门阵列,其输入与操作数比特相连,而输出提供一个所述操作数比特的部分积的完整集,各个部分积可由“权重”表征;
加法架构,所述加法架构分多个阶段构建,第一组阶段可安排成添加部分积而不从所述加法架构的较低权重部分接收进位输入,第二组阶段可安排成将来自所述加法架构的较低权重部分的进位输入加到来自前面阶段的结果中,两个组中的阶段都向所述加法架构的较高权重部分提供进位输出,且所述加法架构经配置以累加至少一个累加或常数项的相同权重相对应比特的部分积;
连接所述第一组阶段和所述第二组阶段之间的装置,用于提取一第一阶段加法结果作为多项式乘法乘积,所述自然乘法乘积可从所述第二组阶段末端提取;以及
所述加法架构包括并联计数器的级联阶段,其中在每一列相同权重的部分积中有至少一个并联计数器,且其中连接所述第一组阶段和所述第二组阶段之间的用于提取的装置包括与所述并联计数器的最低有效位比特相连的比特线,表示来自所述级联中的每个所述并联计数器的多项式乘积系数。
2.如权利要求1所述的乘法器硬件架构,其特征在于,所述加法架构包括安排成用于累加所述部分积和进位的一系列全加法器,每个全加法器可接收三个相同权重的输入,并提供相同权重的和输出和下一较高权重的进位输出,所述第一组阶段包含一第一组加法器,所述第一组加法器不接收任何进位项作为输入,所述第一组加法器可安排成将给定权重的部分积减为和项,所述连接所述第一组阶段和第二组阶段之间的装置包括与表示多项式乘积系数的所述和项相连的比特线,所述第二组阶段包含一第二组加法器,所述第二组加法器接收给定权重的进位输入与和项,并可安排为将所述进位输入与和项减为自然乘积比特。
3.如权利要求2所述的乘法器硬件架构,其特征在于,所述第一组加法器包括至少一个XOR门,用于将一对项减为一个项。
4.如权利要求2所述的乘法器硬件架构,其特征在于,所述加法架构还包括至少一个与所述第一组加法器相连的半加法器,用于将一对项减为一个项。
5.如权利要求1所述的乘法器硬件架构,其特征在于,所述AND门阵列经安排以接收操作数比特并经安排以提供一个以上乘法的部分积,且所述加法架构经安排以累加相同权重的来自所述一个以上乘法的部分积,以提供形式为SUM[Ai*Bi]的多项式和自然乘法结果,其中Ai和Bi是操作数,且任何Bi操作数是一个字的常数。
6.如权利要求5所述的乘法器硬件架构,其特征在于,所述加法架构经安排以累加至少一个累加或常数项的相同权重相对应比特的部分积,以提供形式为SUM[Ai*Bi]+SUM[Ci]的多项式和自然乘法结果,其中Ci是所述累加或常数项。
7.一种在并联乘法器硬件架构中使两个n比特操作数相乘以获取具有GF(2)系数的多项式乘法乘积和自然乘法乘积的方法,其特征在于,所述方法包括:
用所述硬件架构的门阵列产生一个来自操作数比特的部分积的完整集合,每个部分积可由权重表征,所述权重等于从中产生部分积的操作数比特权重的和;
在所述乘法器硬件架构中的加法架构的多个阶段中累加相同权重的部分积,其中第一组阶段累加具有所述相同权重的所述部分积而不使用来自较低权重加法的任何相同权重的进位结果,每个加法产生下一更高权重的进位,且第二组阶段累加来自所述第一组阶段的和结果与相同权重的进位项,其中累加所述部分积包括累加至少一个累加项的相同权重相对应比特的部分积;
从作为加法架构的第一组阶段的输出而获取的和结果中提取多项式乘积系数,并从作为加法架构的第二组阶段的输出而获取的和结果中提取自然乘法乘积;
所述累加相同权重的部分积包括通过二进制计数器电路计数具有二进制值为1的部分积数量,以提供具有与所计数部分积相同的权重的最低有效位比特的计数值,然后通过所述二进制计数器电路,使用从前面计数器阶段获取的计数值比特来重复计数器阶段级联的所述对具有二进制值为1的部分积的所述数量进行计数的步骤,直到剩下每个权重最大的两个比特,然后用硬件加法器阵列对所述剩余的每个权重最大的两个比特执行与进位的最后加法操作,以获取所述自然乘法乘积;以及
其中,提取所述多项式乘积系数包括提取从第一计数步骤中所获取的最低有效位比特。
8.如权利要求7所述的方法,其特征在于,所述累加相同权重的部分积只需用全加法器电路来实现,所述全加法器电路的每一者都具有三个操作数输入、和输出和进位输出。
9.如权利要求7所述的方法,其特征在于,累加所述部分积包括在所述第一组阶段中使用至少一个半加法器电路。
10.如权利要求7所述的方法,其特征在于,所述提取多项式乘积系数包括在所述第一组阶段中应用与逻辑门的至少一个XOR操作。
11.如权利要求7所述的方法,其特征在于,所述由门阵列从操作数比特中产生部分积可由一个以上乘法操作进行,且其中由所述加法架构累加所述部分积以获取多项式乘积系数和自然乘法乘积的结果也由一个以上乘法操作进行,使得所述结果具有SUM[Ai*Bi]的形式,其中所述Ai和Bi是操作数,而所述Bi操作数中的任一者是一个字的常数。
12.如权利要求11所述的方法,其特征在于,所述由加法架构所执行的在所述加法架构的多个阶段中累加所述相同权重的部分积的所述步骤包括累加至少一个累加或常数项的相同权重所相对应的部分积,以提供形式为SUM[Ai*Bi]+SUM[Ci]的多项式和自然乘法结果,其中Ci是所述累加或常数项。
CN200480009432A 2003-04-04 2004-03-22 组合多项式和自然乘法的乘法器架构 Expired - Fee Related CN100583023C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0304221A FR2853424B1 (fr) 2003-04-04 2003-04-04 Architecture de multiplicateurs polynomial et naturel combines
FR03/04221 2003-04-04

Publications (2)

Publication Number Publication Date
CN1781076A CN1781076A (zh) 2006-05-31
CN100583023C true CN100583023C (zh) 2010-01-20

Family

ID=32982248

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200480009432A Expired - Fee Related CN100583023C (zh) 2003-04-04 2004-03-22 组合多项式和自然乘法的乘法器架构

Country Status (6)

Country Link
US (1) US7266579B2 (zh)
EP (2) EP2138931A1 (zh)
CN (1) CN100583023C (zh)
FR (1) FR2853424B1 (zh)
TW (1) TWI340346B (zh)
WO (1) WO2004095539A2 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277540B1 (en) * 1999-01-20 2007-10-02 Kabushiki Kaisha Toshiba Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography
US7447726B2 (en) * 2004-06-03 2008-11-04 Arm Limited Polynomial and integer multiplication
DE102005028662B4 (de) * 2005-03-04 2022-06-02 Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik Verfahren und Vorrichtung zum Berechnen einer Polynom-Multiplikation, insbesondere für die elliptische Kurven-Kryptographie
FR2885711B1 (fr) * 2005-05-12 2007-07-06 Atmel Corp Procede et materiel modulaire et aleatoire pour la reduction polynomiale
US7849125B2 (en) * 2006-07-07 2010-12-07 Via Telecom Co., Ltd Efficient computation of the modulo operation based on divisor (2n-1)
US8275822B2 (en) * 2007-01-10 2012-09-25 Analog Devices, Inc. Multi-format multiplier unit
US8028015B2 (en) * 2007-08-10 2011-09-27 Inside Contactless S.A. Method and system for large number multiplication
US8478809B2 (en) * 2007-12-15 2013-07-02 Intel Corporation Method and apparatus for multiplying polynomials with a prime number of terms
CN101968732B (zh) * 2010-10-09 2012-12-19 中国人民解放军信息工程大学 检错比特并行脉动阵列移位多项式基乘法器及其构造方法
US10049322B2 (en) 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
US10171105B2 (en) 2016-08-25 2019-01-01 International Business Machines Corporation Carry-less population count
CN106484366B (zh) * 2016-10-17 2018-12-14 东南大学 一种二元域位宽可变模乘运算器
US10884705B1 (en) 2018-04-17 2021-01-05 Ali Tasdighi Far Approximate mixed-mode square-accumulate for small area machine learning
US11416218B1 (en) 2020-07-10 2022-08-16 Ali Tasdighi Far Digital approximate squarer for machine learning
US11467805B1 (en) 2020-07-10 2022-10-11 Ali Tasdighi Far Digital approximate multipliers for machine learning and artificial intelligence applications
US20220121424A1 (en) * 2020-10-21 2022-04-21 PUFsecurity Corporation Device and Method of Handling a Modular Multiplication
RU2752485C1 (ru) * 2020-12-03 2021-07-28 Акционерное общество "ПКК МИЛАНДР" Делитель частоты с переменным коэффициентом деления
CN112732224B (zh) * 2021-01-12 2024-01-05 东南大学 一种面向卷积神经网络的可重构近似张量乘加单元及方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4037093A (en) 1975-12-29 1977-07-19 Honeywell Information Systems, Inc. Matrix multiplier in GF(2m)
US4251875A (en) 1979-02-12 1981-02-17 Sperry Corporation Sequential Galois multiplication in GF(2n) with GF(2m) Galois multiplication gates
US4797848A (en) 1986-04-18 1989-01-10 Hughes Aircraft Company Pipelined bit-serial Galois Field multiplier
US4918638A (en) 1986-10-15 1990-04-17 Matsushita Electric Industrial Co., Ltd. Multiplier in a galois field
US4875211A (en) 1986-12-10 1989-10-17 Matsushita Electric Industrial Co., Ltd. Galois field arithmetic logic unit
US4847801A (en) 1987-10-26 1989-07-11 Cyclotomics, Inc. Compact galois field multiplier
FR2628862B1 (fr) 1988-03-17 1993-03-12 Thomson Csf Multiplieur-additionneur parametrable dans les corps de galois, et son utilisation dans un processeur de traitement de signal numerique
US5414719A (en) 1992-04-24 1995-05-09 Sharp Kabushiki Kaisha Operating circuit for galois field
KR950015182B1 (ko) 1993-11-20 1995-12-23 엘지전자주식회사 갈로아 필드 곱셈회로
US5642367A (en) 1994-02-07 1997-06-24 Mitsubishi Semiconductor America, Inc. Finite field polynomial processing module for error control coding
US5734600A (en) * 1994-03-29 1998-03-31 International Business Machines Corporation Polynomial multiplier apparatus and method
US5602767A (en) 1995-08-29 1997-02-11 Tcsi Corporation Galois field polynomial multiply/divide circuit and a digital signal processor incorporating same
US5812438A (en) 1995-10-12 1998-09-22 Adaptec, Inc. Arithmetic logic unit and method for numerical computations in galois fields
US5768168A (en) 1996-05-30 1998-06-16 Lg Semicon Co., Ltd. Universal galois field multiplier
US5956265A (en) * 1996-06-07 1999-09-21 Lewis; James M. Boolean digital multiplier
US6252959B1 (en) 1997-05-21 2001-06-26 Worcester Polytechnic Institute Method and system for point multiplication in elliptic curve cryptosystem
KR100389902B1 (ko) 1997-06-23 2003-09-22 삼성전자주식회사 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법
DE19733829C2 (de) 1997-08-05 2000-02-24 Micronas Semiconductor Holding Verfahren zum Verschlüsseln bzw. Entschlüsseln einer Datenfolge
JPH1196030A (ja) 1997-09-22 1999-04-09 Toyo Commun Equip Co Ltd 有限体上の乗算方法及び乗算回路
US6134572A (en) 1997-09-30 2000-10-17 Texas Instruments Incorporated Galois Field arithmetic apparatus and method
US6003057A (en) 1997-12-24 1999-12-14 Motorola, Inc. Galois field arithmetic logic unit circuit
US6026420A (en) 1998-01-20 2000-02-15 3Com Corporation High-speed evaluation of polynomials
US5999959A (en) 1998-02-18 1999-12-07 Quantum Corporation Galois field multiplier
US5951677A (en) 1998-05-29 1999-09-14 Texas Instruments Incorporated Efficient hardware implementation of euclidean array processing in reed-solomon decoding
US6282556B1 (en) * 1999-10-08 2001-08-28 Sony Corporation Of Japan High performance pipelined data path for a media processor
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A Combined 16-bit Binary and Dual Galois Field Multiplier. Jesus Garcia and Michael J.Schulte.IEEE. 2002
A Combined 16-bit Binary and Dual Galois Field Multiplier. Jesus Garcia and Michael J.Schulte.IEEE. 2002 *
VLSI Architectures for Multiplication in GF(2/sup m/) forApplication Tailored Digital Signal Processors. Wolfram Drescher.IEEE. 1996
VLSI Architectures for Multiplication in GF(2/sup m/) forApplication Tailored Digital Signal Processors. Wolfram Drescher.IEEE. 1996 *

Also Published As

Publication number Publication date
EP1614148A4 (en) 2006-06-21
EP2138931A1 (en) 2009-12-30
US7266579B2 (en) 2007-09-04
TW200504583A (en) 2005-02-01
TWI340346B (en) 2011-04-11
FR2853424A1 (fr) 2004-10-08
CN1781076A (zh) 2006-05-31
WO2004095539A3 (en) 2005-12-08
US20040199560A1 (en) 2004-10-07
WO2004095539A2 (en) 2004-11-04
EP1614148A2 (en) 2006-01-11
FR2853424B1 (fr) 2005-10-21

Similar Documents

Publication Publication Date Title
CN100583023C (zh) 组合多项式和自然乘法的乘法器架构
US5956265A (en) Boolean digital multiplier
CN101122850A (zh) 基于二次Booth编码的大数乘法器
EP0613082B1 (en) 4:2 adder and multiplier circuit employing the same
Gokhale et al. Design of Vedic-multiplier using area-efficient Carry Select Adder
US5161119A (en) Weighted-delay column adder and method of organizing same
Sharma et al. Modified booth multiplier using wallace structure and efficient carry select adder
CN101295237A (zh) 求商和余数的高速除法器
Raju et al. Design and implementation of low power and high performance Vedic multiplier
Goyal et al. VHDL implementation of fast multiplier based on Vedic mathematic using modified square root carry select adder
Ercegovac et al. Digit-recurrence algorithms for division and square root with limited precision primitives
Mekhallalati et al. New high radix maximally-redundant signed digit adder
WO2022115108A1 (en) An architecture for small and efficient modular multiplication using carry-save adders
Kim et al. Digit-serial modular multiplication using skew-tolerant domino CMOS
Anuhya et al. ASIC implementation of efficient floating point multiplier
Teja et al. Implementation of vedic multiplier using modified architecture by routing rearrangement for high-optimization
Ranjan et al. A New VLSI Architecture of Parallel Multiplier Based on Radix-4 Modified Booth Algorithm using VHDL
Moayedi et al. Design and evaluation of novel effective Montgomery modular multiplication architecture
RU2751802C1 (ru) Умножитель по модулю
Iyer et al. Generalised Algorithm for Multiplying Binary Numbers Via Vedic Mathematics
Nibouche et al. New iterative algorithms and architectures of modular multiplication for cryptography
RatnaMala et al. Design and Verification of Area Efficient High-Speed Carry Select Adder
Wang et al. A high-speed pipeline architecture of squarer-accumulator (SQAC)
Latha et al. An efficient residue-to-binary converter for the moduli set {2 n− 1− 1, 2 n+ k, 2 n− 1}
Patronik et al. Design of an RNS reverse converter for a new five-moduli special set

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
ASS Succession or assignment of patent right

Owner name: YINSAI KANGTAI LAISI CO.

Effective date: 20110824

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20110824

Address after: Aix-en-Provence

Patentee after: Inzai Contailes

Address before: California, USA

Patentee before: Atmel Corp.

C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: French Meileyi

Patentee after: INSIDE SECURE

Address before: Aix-en-Provence

Patentee before: Inzai Contailes

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: France Meyer

Patentee after: INSIDE SECURE

Address before: France Meyer

Patentee before: Walter -IC French Co.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170508

Address after: France Meyer

Patentee after: Walter -IC French Co.

Address before: French Meileyi

Patentee before: Inside Secure

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100120

Termination date: 20170322