专利名称:有限域求逆器的制作方法
技术领域:
本发明涉及一种用于计算一有限域GF(2m)中的元素的逆的装置,而且更具体地,涉及一种用于通过使用一标准基计算逆的装置。
有限域GF(2m)是一包含2m个元素的数字系统,m是一正整数。其在实际应用中的魅力源于每一元素能被m个二进制数表示的事实。其在纠错码,例如瑞得-索罗门码中的可实用性使得有限域GF(2m)适于计算的目的,正如表述于例如S.Lin等人的“错误控制编码基础和应用”,Prentice-Hall,1983,15-48页中的。
有几种方法用于执行有限域GF(2m)中的求逆。最一般的方法是利用查询表,用m个ROM(只读存储器)相当于2m。此法可能是最快的,但需要最大数目的最多的电路门。在很多应用中,希望在m个时钟周期顺序地执行m-位符号求逆以减少电路尺寸。众所周知,对于有限域GF(2m)中的任何α,
因此,α的逆可由下式获得α-1=1α=α2m-1α=α2m-2]]>等式(1)因为2m-2能初分解成2+22+23+…+2m-1,则α-1可被表示为α-1=Πk=1m-1α2k]]>等式(2)一种用于根据等式(2)确定α的逆的迭代求逆算法如下步骤1)令B=CS(α)及C=1,k=0(其中CS表示一平方函数)步骤2)令D=B×C及k=k+1
步骤3)若k=m-1,则α-1=D并停止若k<m-1,则令B=CS(B)和C=D并返回步骤2)其中,B、C和D是用于实现该算法的变量,而k是一迭代指数。从第一次到第(M-1)次迭代的B、C和D的内容在表1中给出,其中,它的第一列表示迭代索引,第一次迭代包括上面的步骤1)和2),而其余每一次迭代包括上面步骤3)和2),二者是以该顺序被执行的。
表1
根据上述程序,在(m-1)次迭代中获得α-1。可用于实现以上述方法的一种装置还在Charles C.Wang“用于计算GF(2m)中的乘法和逆的甚大规模集成电路结构”,(IEEE Trans on Computers,709-717页,卷C-34,No.8,1985年8月)中被建议。在此文章中,用一普通基集合{α,α2,
}表示有限域GF(2m)中的元素,而不是用一传统的标准基集合{1,α,α2,α3,…,αm-1}。在Wang的装置中,平方是通过利用该普通基的特征的循环移位操作而实现的。
虽然平方函数能根据普通基方便地被实现,但在设计一纠错码的解码器中更经常地使用标准基。因此,就有必要提供一种能够根据标准基计算有限域GF(2m)中的逆的设备。
因此,本发明的主要目的是提供一种根据标准基确定一有限域元素的逆数的有限域求逆器。
根据本发明,提供了一种用于在m次迭代中确定α的逆的装置以根据α-1=Πk=1m-1α2k]]>提供逆α-1。其中α是在一有限域GF(2m)上的一元素,而m是一正整数,该装置包括一第一多工器,用于选择性地提供α或一第一反馈值;一第一乘法器,用于平方从该第一多工器提供的α或第一反馈值,以由此提供一第一输出值。
一第一寄存器,用于存储该第一乘法值并将该第一乘法值作为第一反馈值提供至该第一多工器;一第二多工器,用于选择性地提供从第一寄存器提供的第一反馈值或“1”;一第二乘法器,用于将从该第二多工器提供的“1”或该第一反馈值乘以一第二反馈值,以由此提供一第二输出值;及一第二寄存器,用于存储该第二输出值并将该第二输出值作为第二反馈值提供给该第二乘法器。
本发明的以上和其它目的和特征从下面对与附图一并给出的优选实施例的描述中将变得明显,其中
图1是根据本发明的一有限域求逆器的第一实施例的电路图;及图2是根据本发明的一有限域求逆器的第二实施例的电路参考图1,显示了根据本发明的一有限域求逆器的第一实施例的电路图,该电路确定了有限域GF(2m)中-元素α的逆。
对于该第一实施例,传统迭代求逆算法被修改如下步骤1A) 令B=α,D=1,k=1步骤2A) 令B=CS(B),C=D步骤3A) 令D=B×C步骤4A) 若k=m-1,则α-1=D并停止。
若k<m-1,则k=k+1并返回步骤2A)图1所示的求逆器10包括4个寄存器,每一个寄存器是一用于存储有限域GF(2m)中的一m位元素的存储设备,该存储设备具有例如m个边沿触发的D触发器,每触发器在一时钟信号的上升沿或下降沿工作。寄存器12、17和16分别相应于在第一实施例的修改后的迭代求逆算法中使用的变量B、C和D,并且将被称作B、C和D寄存器,一寄存器18存储在求逆器10中获得的待用于一纠错码的解码过程的逆α-1。
如图1所示,响应于一外部提供的控制信号D_START将α输入至多工器(“MUX”)11的一输入口1,其中D_START表示α,即待求逆的有限域中的元素的一输入。
在图1中,一标示为“CLK”的其一个周期相应于该第一实施例的修改后的迭代求逆算法的一次迭代的系统时钟被用于该寄存器的操作。具体地,每一个包含在寄存器中的D触发器是响应于该系统时钟的上升或下降沿操作的。
D_ZERO_FLAG是一指示α是否为“0”的控制信号,并在α是“0”的情况下被用于禁止该求逆器10,因为在该有限域中无“0”的逆。在该实施例中,当α等于“0”时,D_ZERO_FLAG被假定为“1”。在那种情况下,D_ZERO_FLAG对三个寄存器12、16和17的禁止是通过禁止系统时钟被送入该寄存器的时钟输入端口实现的。为完成此任务,D_ZERO_FLAG在一反相器2被反相,而被反相后的D_ZERO_FLAG在一与门3和CLK进行与操作。一被修改的时钟信号,指与门3的输出,被送入寄存器12和17的时钟输入口。在D_ZERO_FLAG是“0”,即α不是0的情况下,被修改后的时钟信号等同于CLK。因此,提供至B寄存器12和C寄存器17的d口的输入值能在CLK的一上升沿被计入相应的寄存器。
否则,即若D_ZERO_FLAG是“1”,与门3的输出为0,而与CLK的值无关。因此,B寄存器12和C寄存器17的d口的输入值不能计入此处。
类似地,D寄存器16的时钟口的一输入由一与门4提供,其中与门4的一输出是反相后的D_ZERO_FLAG和反相后的CLK的逻辑与。因此,只要α不是“0”,D寄存器16的d口的输入值在CLK的一下降沿被计入此处。
应注意,B寄存12和C寄存器17的内容在CLK的一上升沿被更新而D寄存器16的内容在CLK的一下降沿被更新。因此,修改后的迭代求逆算法的步骤2A)在CLK的每个上升沿被完成,而其步骤3A)在每下降沿被完成,以便包含于同一迭代中的步骤2A)和3A)可在系统时钟周期中被顺序地执行。
下面将叙述非0元素α的迭代求逆程序。
首先,相应于步骤1A)的一初始化程序响应于D_START被执行。即MUX11向工作在有限域GF(2m)上的乘法器13提供输入元素α;而D寄存器16响应于提供至其PRT(预置)口的D_START而被预置为1。在此时刻,至D寄存器16的d口的一输入值可能是无效的,因为来自B寄存器12的q口的一输出尚未确定,且因而乘法器15的输出并未定义;而至C寄存器17的d口的一输入值是1,因为D寄存器16被预置为1。
因而,α在乘法器13被平方,且将α2送至B寄存器12的d口。然后,在第一时钟周期的上升沿,从该乘法器13提供的α2被计入B寄存器12;由D寄存器16的q口提供的“1”被计入C寄存器17。更新B寄存器12和C寄存器17的这些操作相应于步骤2A)。
从第一时钟周期的上升沿直到一下降沿,由B寄存器12提供的α2被送至乘法器15,以在此与由C寄存器17的q口提供的“1”相乘,而结果,即α2被提供至D寄存器16的d口。在第一时钟周期的下降沿,提供至D寄存器16的d口的α2被计入此处,以由此使C寄存器17的d口的输入值为α2。更新D寄存器16的这些操作相应于步骤3A),完成了第一次造代。
在初始化之后以及紧接在第一时钟周期的上升沿及下降沿之后由三个寄存器的q口提供的这些值被总结入表2。
表2
同时,在第一时钟周期期间,由B寄存器12的q口提供的α2也通过MUX11往回提供给乘法器13。在乘法器13,α2被平方,而结果α4被送入B寄存器12的d口,以在第二时钟周期的一上升沿被计入此处。
以如上述的类似方式,在第2至第(m-1)时钟周期的每一个中更新了三个寄存器。
在第一实施例中,乘法器13、B寄存器12和C寄存器17的功能相当于步骤2A);而乘法器15和D寄存器16的功能相当于步骤3A)。
在初始化之后,以及紧接在第1至第(m-1)时钟周期的上升沿和下降沿之后由三个寄存器的q口提供的输出值总结入表3,其中第一列代表时钟周期,而每一时钟周期的第一和第二行分别表示在上升沿之后和在下降沿之后的输出值。
表3
逆α-1在第(m-1)个时钟周期的下降沿之后从D寄存器16的q口提供。逆α-1被耦合至寄存器18并被计入此处以响应于D_END,D-_END指一个表示求逆过程完成的信号,而其可通过将D_START延迟一段预定时间间隔而获得。由寄存器18的q口提供的逆α-1被提供至该纠错码的一解码器的其它部分。
参考图2,示出了根据本发明的一有限域求逆器的第二实施例的一电路图。
对于第二实施例,迭代求逆算法进一步被修改如下步骤1B)令B=α,C=1,k=1步骤2B)若k=1则C=1×C,若k>1则C=B×C
步骤3B)令B=CS(B)步骤4B)若k=m-1,则α-1=C并停止。
若k<m-1,则k=k+1并返回步骤2B)第二实施例的修改后的迭代算法使用两个变量B和C。因而,图2所示的求逆器20包括三个寄存器,其中寄存器32和36分别对应于变量B和C,此二变量被用于该第二实施例的修改后的迭代求逆算法;而输出寄存器38存储在求逆器20中获得的逆,以被用于纠错码的解码过程。在第二实施例中,乘法器35和C寄存器36的功能相当于步骤2B);而乘法器33和B寄存器32的功能相当于步骤3B)。
图2所示的D_START、D_END和D_ZERO_FLAG相同于图1所示的第一实施例的,而它们的功能也类似于第一实施例的。类似于第一实施例,CLK和反相后的D_ZERO_FLAG的逻辑与被耦合至寄存器32和36(该二寄存器将被分别称作B寄存器和C寄存器)的时钟口。因此,在D-ZERO-FLAG是“0”,即输入元素α不是0的情况下,B寄存器32和C寄存器36起作用。
类似于第一实施例,响应于D_START执行一初始化程序。具体地,当D_START表示求逆程序的开始时,MUX31选择输入元素α并将其提供至乘法器33的两个输入口;MUX34选择由存储器39提供的“1”并将其提供给乘法器35;而C寄存器36被预置为1。
然后,乘法器35将由MUX34提供的“1”与由C寄存器36提供的“1”相乘并将结果即“1”重又提供到C寄存器36的d口。α在乘法器33被平方,而α2被送至寄存器32的d口。
然后,跟着一第一时钟周期。在第一时钟周期的上升沿,由乘法器33提供的α2被计入B寄存器32;而由乘法器35提供的“1”被计入C寄存器36。
在跟随于上升沿之后的第一时钟周期期间,由B寄存器32的q口提供的α2被送至MUX34和MUX31。除了在初始化期间,MUX31和MUX34选择提供至其0口的B寄存器32的输出并将其提供给乘法器35和乘法器33。
在乘法器35,从B寄存器32提供的α2与由C寄存器36的q口提供的“1”相乘,而将所得,即α2送入C寄存36的d口,以在第二时钟周期的上升沿将其存于此。在乘法器33,α2被平方,而将结果,即α4送入B寄存器32的d口以在第二时钟周期的上升沿将其存于此。如上所述,完成了第一时钟周期或第一次迭代。其它时钟周期类似于上述第一时钟周期。
在初始化之后及在每一时钟周期的上升沿之后的B寄存器32和C寄存器36的内容如表4所示。
表4
逆α-1在第m个时钟周期的上升沿后由C寄存器36的q口提供给寄存器38并计入此处以响应于D_END。由寄存器38的q口提供的逆被提供至纠错码的一个解码器的其它部分。
如上所述,通过使用本发明的求逆器可获得表示于标准基上的一有限域中的一元素的逆。
虽然对本发明的描述参考了具体实施例,对本专业的技术人士来说显而易见在不背离如下的权利要求所定义的精神和范围的前提下,可作出各种修改和改变。
权利要求
1.一种用于按下式在(m-1)次迭代中确定α的逆以提供逆α-1的装置α-1=Πk=1m-1α2k]]>其中所述α是一有限域GF(2m)上的一元素,m是一正整数,而k是一从1至(m-1)范围的整数,所述装置包括第一选择装置,用于选择性地提供所述α或一第一反馈值;装置,用于平方由第一选择装置提供的所述α或第一反馈值,以由此提供一第一输出值;第一存储器装置,用于存储该第一输出值并将该第一输出值作为第一反馈值提供给第一选择装置;第二选择装置,用于选择性地提供从第一存储器装置提供的第一反馈值或“1”;装置,用于将从第二选择装置提供的“1”或第一反馈值与一第二反馈值相乘,以由此提供一第二输出值;及第二存储器装置,用于存储第二输出值,并将该第二输出值作为第二反馈值提供给乘法装置。
2.如权利要求1的装置,其中所述α根据有限域GF(2m)的一标准基被表示为一m位数据。
3.如权利要求2的装置,其中第一和第二存储器装置中的每一个包括边缘触发的D触发器。
4.如权利要求3的装置,其中在所述α的值不为0的情况下将提供至第一和第二存储器装置的第一和第二输出值分别存于其内。
5.如权利要求1的装置,还包括第三存储装置,用于存储由乘法装置提供的第二输出值并作为逆提供该第二输出值。
6.如权利要求1的装置,其中该第二存储器装置被用“1”初始化。
7.如权利要求6的装置,其中该第一选择装置在第一次迭代中提供所述α,而在第k1次迭代中提供第一反馈值,k1是从2至(m-1)的整数
8.如权利要求7的装置,其中该第二选择装置在第一次迭代中提供“1”,而在第k1次迭代由提供从第一存储器装置提供的第一反馈值。
9.如权利要求1的装置,其中在第k次迭代中由平方装置提供的第一输出值是
。
10.如权利要求9的装置,其中在第k次迭代中由乘法装置提供的第二输出值是
。
11.一种用于根据下式在m次迭代中确定α的逆,以提供逆α-1的装置α-1=Πk=1m-1α2k]]>其中所述α是一有限域GF(2m)上的元素,m是一正整数,而k是从1至m的一整数,所述装置包括第一选择装置,用于提供所述α或第一反馈值;第一乘法装置,用于平方第一选择装置提供的所述α或第一反馈值,以由此提供第一输出值;第一存储器装置,用于存储由第一乘法装置提供的第一输出值并将该第一输出值作为第一反馈值提供给第一选择装置;第二存储器装置,用于存储第二反馈值并提供该第二反馈值;第二乘法装置,用于将由第一存储器装置提供的第一反馈值与由第二存储器装置提供的第二反馈值相乘,以提供一第二输出值;及第三存储器装置,用于存储由第二乘法装置提供的第二输出值,并将该第二输出值作为第二反馈值提供给第二存储器装置。
12.如权利要求11的装置,其中所述α根据有限域GF(2m)的一标准基被表示为一m位数据。
13.如权利要求12的装置,其中第一、第二和第三存储器中的每一个包括边沿触发的D触发器。
14.如权利要求13的装置,其中响应于系统时钟信号的一上升沿将提供至第一和第二存储器装置的第一输出值和第二反馈值分别被存于此处,而响应于系统时钟信号的一下降沿将提供至第三存储器装置的第二输出值存于此处。
15.如权利要求14的装置,其中在α是一非0值的情况下分别提供至第一、第二和第三存储器装置的第一输出值,第二反馈值和第二输出值被存于此处。
16.如权利要求11的装置,还包括第四存储器装置,用于存储由第三存储器装置提供的第二反馈值并将该第二反馈值作为逆提供。
17.如权利要求11的装置,其中该第二存储器装置用“1”初始化。
18.如权利要求11的装置,其中第一选择装置在第一次迭代中提供所述α而在第k1次迭代中提供第一反馈值,k1是一从2至m的整数。
19.如权利要求11的装置,其中第一乘法装置在第k次迭代中提供的第一值是
。
20.如权利要求11的装置,其中由第二乘法装置在第k次迭代中提供的第二值是
。
全文摘要
一种有限域求逆器,它确定有限域GF(文档编号G06F7/72GK1157960SQ96113919
公开日1997年8月27日 申请日期1996年12月30日 优先权日1995年12月28日
发明者任龙熙 申请人:大宇电子株式会社