伽罗瓦域乘法/乘法一加法乘法累加的制作方法

文档序号:6433783阅读:400来源:国知局
专利名称:伽罗瓦域乘法/乘法一加法乘法累加的制作方法
技术领域
本发明涉及一种在一个周期中能够执行乘法/乘法-加法/乘法累加运算的伽罗瓦域乘法/乘法-加法/乘法累加系统。
相关申请本申请要求以下美国临时申请的优先权Stein等人于2001年11月30日申请的标题为“GF2-ALU”的美国临时申请第60/334,662号(AD-239J);Stein等人于2001年12月18日申请的标题为“使用GF2-ALU的伽罗瓦域乘法加法(MPA)”的美国临时申请第60/341,635号(AD-299J);Stein等人于2001年12月18日申请的标题为“使用GF2-ALU和8路并行逻辑单元表的数据加密标准方法(DES)”的美国临时申请第60/341,711号(AD-297J),以及Stein等人于2001年11月30日申请的标题为“伽罗瓦域乘法器系统”的美国临时申请第60/334,510号(AD-240J)。
背景技术
在很多应用中都要用到伽罗瓦域乘法,乘法-加法及乘法-累加运算。例如,在执行诸如Reed-Solomon的前向差错控制(FEC)编码方案时,必须在伽罗瓦域使用多项式计算十六个校正子(syndrome)。这是通过使用Homer规则递归完成的。例如,1+x+x2+x3+x4也可以递归写成x(x(x(x+1)+1)+1)+1,这需要一系列的乘法-加法运算。在预先加密标准(AES)密码函数中对于MixColumn变换需要进行乘法-累加运算,在此,一个向量乘以一个矩阵。在超长指令字(VLIW)处理器中有许多计算部件例如,乘法器、加法器和移位器。因此任何时候当一个数值在进行乘法运算时,前一个乘法的乘积可以进行加法运算。
这种同时性的运算或者流水线技术使得完全处理一长串的n个数值只需要n+1个周期,而不需要2n个周期。然而在较小的处理器中,一个计算部件必须执行所有的功能,每个数值需要两个周期完成乘法和加法运算,因此处理一组n个数值需要2n个周期。

发明内容
因此本发明的一个目的是提供一种改进的伽罗瓦域乘法/乘法-加法/乘法-累加系统。
本发明的另一个目的是提供一种在一个周期中能够执行乘法/乘法-加法/乘法-累加运算的改进的伽罗瓦域乘法/乘法-加法/乘法-累加系统。
本发明的另一个目的是提供一种能够不需要额外的逻辑电路而提高性能的改进的伽罗瓦域乘法/乘法-加法/乘法-累加系统。
本发明的另一个目的是提供一种改进的伽罗瓦域乘法/乘法-加法/乘法-累加系统,该系统在一个周期中能执行乘法或乘法和加法或乘法和累加运算。
本发明源于一种改进的伽罗瓦域乘法/乘法-加法/乘法-累加系统的实现,这种系统通过使用一种伽罗瓦域加法器电路、在GF(2n)乘二进制多项式的多项式乘法器电路、伽罗瓦域线性变换器电路以及存储电路,只用很少或不用额外的逻辑电路,在一个周期中执行乘法或乘法和加法或乘法和累加运算,用于在单个周期中将来自乘法器的第一和第二多项式的乘积与第三多项式相加。
本发明特征在于一种伽罗瓦域乘法/乘法-加法/乘法-累加系统,包括一个乘法器电路,用于在伽罗瓦域将两个带系数的多项式相乘以获得它们的乘积,以及一个伽罗瓦域线性域变换器电路,其响应乘法器电路,以预测该多项式乘积对一个不可约分多项式的模余数。一个存储电路为伽罗瓦域线性变换器电路提供一组系数以对一个预定的不可约分多项式预测模余数。一个伽罗瓦域加法器电路,将乘法器电路的乘积与带系数的第三多项式在伽罗瓦域相加,以在单个周期中执行乘法和加法运算。
在优选的实施方案中,第三多项式可以是加法恒等多项式,并且加法运算可以为空。乘积可以递归地反馈作为第三多项式并且加法器电路可以执行一个乘法-累加运算。乘积可以传送到第一输出寄存器,而乘法-加法/乘法-累加结果可以传送到第二输出寄存器。伽罗瓦域加法器电路可能包括多个与伽罗瓦域线性变换器电路相关的加法器单元,用于在一个周期中将第三多项式与第一和第二多项式的乘积合并。


根据下面对一个优选的实施方案的描述和参照附图,本领域的技术人员将想到本发明的其它目的、特征及优点,其中图1是一个根据本发明的伽罗瓦域乘法/乘法-加法/乘法-累加系统的简化框图;图2是图1所示的伽罗瓦域乘法/乘法-加法/乘法-累加系统详细框图;图3是图1所示的伽罗瓦域线性变换器单元的示意图,说明为实现预测结果,它的单元和那些相关的存储单元的编程;图4是对于图1所示的乘法器电路在GF(2n)乘二进制多项式的一个多项式乘法器单元的示意图;图5是用于图1所示的存储电路的一个存储装置的示意图;图6是图1所示的伽罗瓦域线性变换器电路的一个单元的示意图;图7是类似于图2,根据本发明的伽罗瓦域乘法/乘法-加法/乘法-累加系统的另一种结构图;图8是类似于图2,根据本发明的伽罗瓦域乘法/乘法-加法/乘法-累加系统的另一种结构图;图9是根据本发明的乘法和累加(MAC)的例子;以及图10是根据本发明的乘法和加法(MPA)的例子。
具体实施例方式
除了下面公开的一个或多个优选实施例,本发明可以有其它的实施例,并且可以以不同的方式应用或实施。因此,应当理解为本发明并不局限于以下说明中陈述或附图中示意的详细结构和部件配置的应用。
图1所示为一个伽罗瓦域乘法/乘法-加法/乘法-累加系统10,其能够选择性地将寄存器14和寄存器16中的数值相乘并将它们的乘积提供给输出寄存器11,或者将寄存器14和寄存器16中的数值相乘,并将它们的乘积与寄存器15中的数值求和,然后将结果提供给输出寄存器11。
在说明图2以及下列等等的本发明的实施方案之前,下面先简要地讨论一下伽罗瓦域乘法和加法的特性和运算。
伽罗瓦域GF(n)是一组元素,在其上能够执行两个二进制运算。加法和乘法必须满足交换律、结合律和分配律。一个具有有限数目元素的域是一个有限域。二元域的一个例子是在模2加法和模2乘法下的集合{0,1},并表示为GF(2)。模2加法和乘法运算由下图所示的表格定义。第一行和第一列表示对伽罗瓦域加法器和乘法器的输入。例如,1+1=0和1*1=1。
模2加法(XOR)

模2乘法(AND)

通常,如果p是任何一个素数,则GF(p)是一个具有p个元素的有限域,并且GF(pm)是一个具有pm个元素的扩展域。另外,该域的各个元素可以通过一个域元素α自乘到不同幂次生成一个域元素α的各个幂次。例如GF(256)有256个元素,这256个元素都可以通过基本元素α自乘到256个不同幂次生成。
另外,系数是二进制的多项式属于GF(2)。如果一个多项式不能被GF(2)上次数大于零小于m的任何多项式整除,则说GF(2)上的m次多项式是不可约分的。多项式F(X)=X2+X+1是一个不可约分的多项式,因为它不能被X或X+1整除。一个整除X2m-1+1的m次不可约分多项式被称为一个基本多项式。对于给定的m,可以有一个以上基本多项式。经常用于大多数通信标准的一个m=8的基本多项式的例子为F(X)=x8+x4+x3+x2+x+1。
由于伽罗瓦域加法与模加运算一样,因此容易用软件实现。例如,如果29和16是GF(28)上的两个元素,则它们的加法运算可以简单地通过下面的XOR运算完成29(11101)16(10000)=13(01101)。
另一方面,伽罗瓦域乘法要稍微复杂一些,如下面的例子所示,其通过基本元素α的重复乘法来计算GF(24)的所有元素。为了生成GF(24)的域元素,如下选择一个次数m=4的基本多项式G(X)G(X)=X4+X+1。为了使乘法为求模运算,使得该乘法的结果仍然是域中的元素,任何具有第五位组(bit set)的元素通过使用如下的恒等式F(α)=α4+α+1=0生成一个4位结果。通过设置α4=1+α,重复使用本恒等式生成域中不同的元素。因此,域中的元素可以列举如下{0,1,α,α2,α3,1+α,α+α2,α2+α3,1+α+α3,...1+α3}由于α是GF(24)的基本元素,其可设置为2,以生成GF(24)的域元素为{0,1,2,4,8,3,6,12,11...9}。
可以看出伽罗瓦域多项式乘法能够由两个基本步骤实现。第一个步骤是计算代数展开的多项式乘积c(x)=a(x)*b(x),而且收集类似的幂(加法相当于相应项之间的XOR运算)以给出c(x)。
例如c(x)=(a3x3+a2x2+a1x1+a0)*(b3x3+b2x2+b1x1+b0)
c(x)=c6x6+c5x5+c4x4+c3x3+c2x2+c1x1+c0其中表Ic0=a0*b0c1=a1*b0a0*b1c2=a2*b0a1*b1a0*b2c3=a3*b0a2*b1a1*b2a0*b3c4=a3*b1a2*b2a1*b3c5=a3*b2a2*b3c6=a3*b3第二个步骤是计算d(x)=c(x)mod p(x),其中p(x)是一个不可约分的多项式。
举例说明,通过多项式乘法对一个不可约分多项式求模来实现乘法运算。例如(如果p(x)=x8+x4+x3+x+1){57}*{83}={c1}因为每个{*}字节都是其单个位值(0或1)按顺序{b7,b6,b5,b4,b3,b2,b1,b0}的连接,并使用多项式表示解释为有限元素b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x1+b0x0=∑bixi第一步(x6+x4+x2+x+1)(x7+x+1)=x13x11x9x8x7x7x5x3x2xx6x4x2xx=x13x11x9x8x6x5x4x31第二步x13+x11+x9+x8+x6+x5+x4+x3+1mod(x8+x4+x3+x+1)=x7+x6+1根据本发明如图2所示的一种改进的伽罗瓦域乘法器系统10,包括一个二进制多项式乘法器电路12,用来将寄存器14中的两个二进制多项式和寄存器16中的多项式相乘以得到它们的乘积,由表II定义的16项多项式c(x)给出。乘法器电路12实际上包括多个乘法器单元12a,12b,12c...12n。
表IIc14=a7*b7c13=a7*b6□a6*b7c12=a7*b5□a6*b6□a5*b7c11=a7*b4□a6*b5□a5*b6□a4*b7c10=a7*b3□a6*b4□a5*b5□a4*b6□a3*b7c9=a7*b2□a6*b3□a5*b4□a4*b5□a3*b6□a2*b7c8=a7*b1□a6*b2□a5*b3□a4*b4□a3*b5□a2*b6□a1*b7c7=a7*b0□a6*b1□a5*b2□a4*b3□a3*b4□a2*b5□a1*b6□a0*b7c6=a6*b0□a5*b1□a4*b2□a3*b3□a2*b4□a1*b5□a0*b6c5=a5*b0□a4*b1□a3*b2□a2*b3□a1*b4□a0*b5c4=a4*b0□a3*b1□a2*b2□a1*b3□a0*b4c3=a3*b0□a2*b1□a1*b2□a0*b3c2=a2*b0□a1*b1□a0*b2c1=a1*b0□a0*b1c0=a0*b0每一项包括一个由*表示的AND函数,每一对项通过由表示的逻辑异或XOR合并。本乘积递交给伽罗瓦域线性变换器电路18,其包括许多伽罗瓦域线性变换器部件18a,18b,18c...18n,每个部件由16*8个单元35组成,响应乘法器电路12产生的乘积,以在一个周期中预测该多项式乘积对一个预定的不可约分多项式的模余数。乘法运算在部件18a,18b,18c...18n中执行。本伽罗瓦域线性变换器电路及其每个变换器部件以及它的乘法器功能的结构和运算,在由stein等人于2002年1月18日申请的标题为“伽罗瓦域线性变换器”的美国临时申请第10/051,533号(AD-239J)和由stein等人于2001年11月30日申请的标题为“伽罗瓦域乘法器系统”的美国临时申请第60/334,510号(AD-240J)中进行了详细的说明,它们的全部内容在此引入作为参考。每个伽罗瓦域线性变换器部件在一个周期中通过用多项式乘积除以一个不可约分多项式来预测模余数。这个不可约分多项式可以是,例如,下表III所示的任何一个多项式。
表IIIGF(21)0x3(x+1)GF(22)0x7(x2+x+1)GF(23)0xB(x3+x+1)0xD(x3+x2+1)GF(24)0x13(x4+x+1)0x19(x4+x3+1)GF(25)0x25(x5+x2+1)0x29(x5+x3+1)0x2F(x5+x3+x2+x+1)0x37(x5+x4+x2+x+1)0x3B(x5+x4+x3+x+1)0x3D(x5+x4+x3+x2+1)
GF(26)0x43(x6+x+1)0x5B(x6+x4+x3+x+1)0x61(x6+x5+1)0x67(x6+x5+x2+x+1)0x6D(x6+x5+x3+x2+1)0x73(x6+x5+x4+x+1)GF(27)0x83(x7+x+1)0x89(x7+x3+1)0x8F(x7+x3+x2+x+1)0x91(x7+x4+1)0x9D(x7+x4+x3+x2+1)0XA7(x7+x5+x2+x+1)0xAB(x7+x5+x3+x1+1)0XB9(x7+x5+x4+x3+1)0xBF(x7+x5+x4+x3+x2+x+1)0XC1(x7+x6+1)0xCB(x7+x6+x3+x+1)0XD3(x7+x6+x4+x+1)0XE5(x7+x6+x5+x2+1)0XF1(x7+x6+x5+x4+1)0XF7(x7+x6+x5+x4+x2+x+1)0xFD(x7+x6+x5+x4+x3+x2+1)GF(28)0x11D(x8+x4+x3+x2+1)
0x12B(x8u+x5+x3+x+1)0x12D(x8+x5+x3+x2+1)0x14D(x8+x6+x3+x2+1)0x15F(x8+x6+x4+x3+x2+x+1)0x163(x8+x6+x5+x+1)0x165(x8+x6+x5+x2+1)0x169(x8+x6+x5+x3+1)0x171(x8+x6+x5+x4+1)0x187(x8+x7+x2+x+1)0x18D(x8+x7+x3+x2+1)0x1A9(x8+x7+x5+x3+1)0x1C3(x8+x7+x6+x+1)0x1CF(x8+x7+x5+x3+x2+x+1)0x1E7(x8+x7+xu+x5+x2+x+1)0x1F5(x8+x7+x5+x4+x2+1)表III示出了本伽罗瓦域乘法器在GF(28)能够执行所有等于和低于28的幂。对于低次多项式,高于所选幂次的系数为0,例如,如果实现GF(25),则GF(25)和GF(28)之间的系数为0,因此该幂次之上不要预测。
对于本特例,已经选择了组合GF(28)中的不可约分或者基本多项式0x11D。带有存储单元26的存储电路20提供给伽罗瓦域线性变换器电路一组系数,用于为该特殊的基本或不可约分多项式预测模余数。对于具有基本多项式0x11D的伽罗瓦域GF(28),存储电路20生成如图3所示的矩阵初始值,其中每个线交叉,例如,22表示线性变换器部件18a,18b,...18n的一个单元35。每个放大的圆点24表示当存储电路20中的相关存储单元26中出现一个1时被激活的一个单元。编程电路20的存储单元26以提供1的适当模式以在不可约分多项式模运算的一个周期中进行预测如列28所示。图3所示的矩阵是一个有16个输入和8个输出的阵列。
根据本发明的GF乘法的一个例子如下GF( )乘法之前 GF8( )乘法之后多项式0x11d 多项式0x11d 根据本发明,图2中的第三寄存器15中包括一个在伽罗瓦域带系数的第三多项式。典型的是,每一个寄存器14,16和15都可以包括四个8位字节部分,因此每个寄存器总共可容纳4个字节或32位。寄存器15的输出传送给伽罗瓦域加法器电路19,本实施例中加法器电路19包括总线17和许多异或门19’,每个异或门对应总线17的每一位。在伽罗瓦域线性变换器电路18中获得的乘积在总线21上传送,这样在输出寄存器电路11的Mpy寄存器23可以获得简单乘积,而在总线21上的乘积与第三多项式的合并在包括异或电路19’的加法器电路19中合并,以在输出寄存器电路11的Mpa寄存器25中提供乘法和加法或乘法和累加的结果。例如,图9中,如果将伽罗瓦域乘法器系统10的输出循环反馈到输入寄存器电路15,同时两个新值传送到输入寄存器电路14和16,则执行乘法和累加(MAC)运算。另一方面,图10中,如果将伽罗瓦域乘法器系统10的输出循环反馈到输入寄存器电路14,同时两个新值传送到输入寄存器电路15和16,则执行乘法和加法(MPA)运算。通过这种方式,寄存器14和16中多项式的所有乘法以及它们与寄存器15中的多项式的加法都是在一个运算周期中完成的。
图2中,多项式乘法器电路12中的每个单元29包括许多图4所示的AND门30,一个AND门30对应多项式乘积中的每一项,一个异或门32对应多项式乘积中的每一对项。当异或XOR门32进行累加运算时,AND门30执行乘法运算。图2中,伽罗瓦域线性变换器电路18中的每个单元35从前一单元接收输入并提供输出给下一个单元。第一单元的输入如图3所示在31接地。图5中,存储电路20中的每个单元33包括一个触发器34,触发器34含有一个数据(D)输入;一个时钟(Wr)输入;以及一个(Q)允许输出。伽罗瓦域线性变换器电路中的每个单元35以及伽罗瓦域线性变换器电路的一个或多个部件中,每个都包括一个图4所示的单元35,每个单元35具有一个图6所示的AND门36和一个异或XOR门38,上述内容也由stein等人于2002年1月18日申请的标题为“伽罗瓦域线性变换器”的美国临时申请第10/051,533号(AD-239J)进行了详细的说明,其全部内容在此引入作为参考。每个单元29,33和35中,所示的具体实施方案并不是对本发明的限制。例如存储装置33不必通过触发器实现,任何其它的存储装置都可以使用。在图2和4中,单元29和35分别需要AND功能和XOR功能,但是这些功能可以通过很多种不同的方式来实现,不需要特殊的XOR门或AND门,只要它们是在布尔意义上类似于XOR门和AND门的逻辑电路即可。例如,实现AND功能可以不需要使用2:1输入多路变换器来执行AND功能的特殊AND门。
尽管在图2,所示的实施方案使用了包括一个实际的逻辑电路,即XOR电路19’,的加法器电路19,但这不是对本发明的必要限制。本发明可以如图7所示更加简单地实现,其中寄存器15中的多项式值在线17a上直接发送到伽罗瓦域线性变换器电路18的第一单元35中。
在此情况下,去掉了图3中的接地连接31,取而代之的是在19a与线17a上的输入连接,因此加法器电路只包括线17a和连接19a,以在一个周期执行全部的乘法和加法或乘法和累加运算。然而,如果要做不带加法的纯乘法,则输入寄存器电路15应对加“0”保持加法的恒等特性,而且该加法运算为空。在稍微不那么简单的如图8所示的实现中,加法器电路19b除了包括输入线17b外,还包括许多门19b’,从线17b接收输入并且每一个都连接到伽罗瓦域线性变换器电路18的第一单元35的不同输入。线50上的信号调节每个门传递或不传递来自存储在寄存器15中的多项式中的值。如果要做不带加法的纯乘法,则能使所有的门19b’都无效。当门有效时,寄存器15中的多项式将与寄存器14和16中多项式的乘积相加。伽罗瓦域线性变换器电路18中的第一单元35的使用方法在由stein等人于2002年6月12日申请的“可编程的数据加密引擎”进行了详细的说明,在此引入作为参考。
尽管本发明的详细特征在一些附图中示出而没有在其它附图中示出,这仅仅是为了方便,因为根据本发明每个特征都可以与任何或所有其它特征相结合。在此使用的词“包括”、“包含”、“具有”以及“带有”应取广义而不应局限到任何物理互连。此外,本申请中公开的任何实施方案并不认为是唯一可能的实施方案。
本领域的技术人员将想到其它的实施方案,它们包含在以下的权利要求书中。
权利要求
1.一种伽罗瓦域乘法/乘法-加法/乘法-累加系统,包括一个乘法器电路,用于在伽罗瓦域将两个带系数的多项式相乘以得到它们的乘积;一个伽罗瓦域线性变换器电路,响应所述乘法器电路,用于预测该多项式乘积对一个不可约分多项式的模余数;一个存储电路,用于为所述伽罗瓦域线性变换器电路提供一组系数,以对一个预定的不可约分多项式预测模余数;以及一个伽罗瓦域加法器电路,用于将所述乘法器电路的所述乘积与一个带系数的第三多项式在伽罗瓦域相加,以在单个周期内执行乘法和加法运算。
2.根据权利要求1的伽罗瓦域乘法/乘法-加法/乘法-累加系统,其中所述第三多项式是加法恒等多项式,且所述加法运算为空。
3.根据权利要求1的伽罗瓦域乘法/乘法-加法/乘法-累加系统,其中所述乘法器电路的乘积被循环反馈作为所述第三多项式,且所述加法器电路执行一个乘法-累加运算。
4.根据权利要求1的伽罗瓦域乘法/乘法-加法/乘法-累加系统,其中将所述乘积传送到一个第一输出寄存器,并将乘法-加法/乘法-累加的结果传送到一个第二输出寄存器。
5.根据权利要求1的伽罗瓦域乘法/乘法-加法/乘法-累加系统,其中所述伽罗瓦域加法器电路包括多个与所述伽罗瓦域线性变换器电路相关的加法器单元,用于在一个周期中将所述第三多项式与第一和第二多项式的乘积合并。
6.根据权利要求5的伽罗瓦域乘法/乘法-加法/乘法-累加系统,其中所述伽罗瓦域加法器电路包括一个与每个所述加法器单元相关的门,用来制止所述第三多项式与所述第一和第二多项式的乘积相加,以使加法运算无效。
全文摘要
一种伽罗瓦域乘法/乘法-加法/乘法-累加系统(10),包括一个将伽罗瓦域上的两个带系数的多项式相乘以获得乘积的乘法器电路;一个响应乘法器电路,预测该多项式乘积对一个不可约分多项式的模余数的伽罗瓦域线性变换电路;用来为伽罗瓦域线性变换器电路提供一组系数以对一个预定的不可约分多项式预测模余数的存储电路;以及一个伽罗瓦域加法器电路,在伽罗瓦域将乘法器电路的乘积与带系数的第三多项式相加,以在单个周期中执行乘法和加法运算。
文档编号G06F7/60GK1608244SQ02826084
公开日2005年4月20日 申请日期2002年12月2日 优先权日2001年11月30日
发明者约瑟夫·斯坦, 海姆·普里姆, 亚尼维·萨皮尔 申请人:阿纳洛格装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1