專利名稱:有限域求逆器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于計算一有限域GF(2m)中的元素的逆的裝置,而且更具體地,涉及一種用于通過使用一標(biāo)準(zhǔn)基計算逆的裝置。
有限域GF(2m)是一包含2m個元素的數(shù)字系統(tǒng),m是一正整數(shù)。其在實際應(yīng)用中的魅力源于每一元素能被m個二進制數(shù)表示的事實。其在糾錯碼,例如瑞得-索羅門碼中的可實用性使得有限域GF(2m)適于計算的目的,正如表述于例如S.Lin等人的“錯誤控制編碼基礎(chǔ)和應(yīng)用”,Prentice-Hall,1983,15-48頁中的。
有幾種方法用于執(zhí)行有限域GF(2m)中的求逆。最一般的方法是利用查詢表,用m個ROM(只讀存儲器)相當(dāng)于2m。此法可能是最快的,但需要最大數(shù)目的最多的電路門。在很多應(yīng)用中,希望在m個時鐘周期順序地執(zhí)行m-位符號求逆以減少電路尺寸。眾所周知,對于有限域GF(2m)中的任何α,
因此,α的逆可由下式獲得α-1=1α=α2m-1α=α2m-2]]>等式(1)因為2m-2能初分解成2+22+23+…+2m-1,則α-1可被表示為α-1=Πk=1m-1α2k]]>等式(2)一種用于根據(jù)等式(2)確定α的逆的迭代求逆算法如下步驟1)令B=CS(α)及C=1,k=0(其中CS表示一平方函數(shù))步驟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是用于實現(xiàn)該算法的變量,而k是一迭代指數(shù)。從第一次到第(M-1)次迭代的B、C和D的內(nèi)容在表1中給出,其中,它的第一列表示迭代索引,第一次迭代包括上面的步驟1)和2),而其余每一次迭代包括上面步驟3)和2),二者是以該順序被執(zhí)行的。
表1
根據(jù)上述程序,在(m-1)次迭代中獲得α-1。可用于實現(xiàn)以上述方法的一種裝置還在Charles C.Wang“用于計算GF(2m)中的乘法和逆的甚大規(guī)模集成電路結(jié)構(gòu)”,(IEEE Trans on Computers,709-717頁,卷C-34,No.8,1985年8月)中被建議。在此文章中,用一普通基集合{α,α2,
}表示有限域GF(2m)中的元素,而不是用一傳統(tǒng)的標(biāo)準(zhǔn)基集合{1,α,α2,α3,…,αm-1}。在Wang的裝置中,平方是通過利用該普通基的特征的循環(huán)移位操作而實現(xiàn)的。
雖然平方函數(shù)能根據(jù)普通基方便地被實現(xiàn),但在設(shè)計一糾錯碼的解碼器中更經(jīng)常地使用標(biāo)準(zhǔn)基。因此,就有必要提供一種能夠根據(jù)標(biāo)準(zhǔn)基計算有限域GF(2m)中的逆的設(shè)備。
因此,本發(fā)明的主要目的是提供一種根據(jù)標(biāo)準(zhǔn)基確定一有限域元素的逆數(shù)的有限域求逆器。
根據(jù)本發(fā)明,提供了一種用于在m次迭代中確定α的逆的裝置以根據(jù)α-1=Πk=1m-1α2k]]>提供逆α-1。其中α是在一有限域GF(2m)上的一元素,而m是一正整數(shù),該裝置包括一第一多工器,用于選擇性地提供α或一第一反饋值;一第一乘法器,用于平方從該第一多工器提供的α或第一反饋值,以由此提供一第一輸出值。
一第一寄存器,用于存儲該第一乘法值并將該第一乘法值作為第一反饋值提供至該第一多工器;一第二多工器,用于選擇性地提供從第一寄存器提供的第一反饋值或“1”;一第二乘法器,用于將從該第二多工器提供的“1”或該第一反饋值乘以一第二反饋值,以由此提供一第二輸出值;及一第二寄存器,用于存儲該第二輸出值并將該第二輸出值作為第二反饋值提供給該第二乘法器。
本發(fā)明的以上和其它目的和特征從下面對與附圖一并給出的優(yōu)選實施例的描述中將變得明顯,其中
圖1是根據(jù)本發(fā)明的一有限域求逆器的第一實施例的電路圖;及圖2是根據(jù)本發(fā)明的一有限域求逆器的第二實施例的電路參考圖1,顯示了根據(jù)本發(fā)明的一有限域求逆器的第一實施例的電路圖,該電路確定了有限域GF(2m)中-元素α的逆。
對于該第一實施例,傳統(tǒng)迭代求逆算法被修改如下步驟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位元素的存儲設(shè)備,該存儲設(shè)備具有例如m個邊沿觸發(fā)的D觸發(fā)器,每觸發(fā)器在一時鐘信號的上升沿或下降沿工作。寄存器12、17和16分別相應(yīng)于在第一實施例的修改后的迭代求逆算法中使用的變量B、C和D,并且將被稱作B、C和D寄存器,一寄存器18存儲在求逆器10中獲得的待用于一糾錯碼的解碼過程的逆α-1。
如圖1所示,響應(yīng)于一外部提供的控制信號D_START將α輸入至多工器(“MUX”)11的一輸入口1,其中D_START表示α,即待求逆的有限域中的元素的一輸入。
在圖1中,一標(biāo)示為“CLK”的其一個周期相應(yīng)于該第一實施例的修改后的迭代求逆算法的一次迭代的系統(tǒng)時鐘被用于該寄存器的操作。具體地,每一個包含在寄存器中的D觸發(fā)器是響應(yīng)于該系統(tǒng)時鐘的上升或下降沿操作的。
D_ZERO_FLAG是一指示α是否為“0”的控制信號,并在α是“0”的情況下被用于禁止該求逆器10,因為在該有限域中無“0”的逆。在該實施例中,當(dāng)α等于“0”時,D_ZERO_FLAG被假定為“1”。在那種情況下,D_ZERO_FLAG對三個寄存器12、16和17的禁止是通過禁止系統(tǒng)時鐘被送入該寄存器的時鐘輸入端口實現(xiàn)的。為完成此任務(wù),D_ZERO_FLAG在一反相器2被反相,而被反相后的D_ZERO_FLAG在一與門3和CLK進行與操作。一被修改的時鐘信號,指與門3的輸出,被送入寄存器12和17的時鐘輸入口。在D_ZERO_FLAG是“0”,即α不是0的情況下,被修改后的時鐘信號等同于CLK。因此,提供至B寄存器12和C寄存器17的d口的輸入值能在CLK的一上升沿被計入相應(yīng)的寄存器。
否則,即若D_ZERO_FLAG是“1”,與門3的輸出為0,而與CLK的值無關(guān)。因此,B寄存器12和C寄存器17的d口的輸入值不能計入此處。
類似地,D寄存器16的時鐘口的一輸入由一與門4提供,其中與門4的一輸出是反相后的D_ZERO_FLAG和反相后的CLK的邏輯與。因此,只要α不是“0”,D寄存器16的d口的輸入值在CLK的一下降沿被計入此處。
應(yīng)注意,B寄存12和C寄存器17的內(nèi)容在CLK的一上升沿被更新而D寄存器16的內(nèi)容在CLK的一下降沿被更新。因此,修改后的迭代求逆算法的步驟2A)在CLK的每個上升沿被完成,而其步驟3A)在每下降沿被完成,以便包含于同一迭代中的步驟2A)和3A)可在系統(tǒng)時鐘周期中被順序地執(zhí)行。
下面將敘述非0元素α的迭代求逆程序。
首先,相應(yīng)于步驟1A)的一初始化程序響應(yīng)于D_START被執(zhí)行。即MUX11向工作在有限域GF(2m)上的乘法器13提供輸入元素α;而D寄存器16響應(yīng)于提供至其PRT(預(yù)置)口的D_START而被預(yù)置為1。在此時刻,至D寄存器16的d口的一輸入值可能是無效的,因為來自B寄存器12的q口的一輸出尚未確定,且因而乘法器15的輸出并未定義;而至C寄存器17的d口的一輸入值是1,因為D寄存器16被預(yù)置為1。
因而,α在乘法器13被平方,且將α2送至B寄存器12的d口。然后,在第一時鐘周期的上升沿,從該乘法器13提供的α2被計入B寄存器12;由D寄存器16的q口提供的“1”被計入C寄存器17。更新B寄存器12和C寄存器17的這些操作相應(yīng)于步驟2A)。
從第一時鐘周期的上升沿直到一下降沿,由B寄存器12提供的α2被送至乘法器15,以在此與由C寄存器17的q口提供的“1”相乘,而結(jié)果,即α2被提供至D寄存器16的d口。在第一時鐘周期的下降沿,提供至D寄存器16的d口的α2被計入此處,以由此使C寄存器17的d口的輸入值為α2。更新D寄存器16的這些操作相應(yīng)于步驟3A),完成了第一次造代。
在初始化之后以及緊接在第一時鐘周期的上升沿及下降沿之后由三個寄存器的q口提供的這些值被總結(jié)入表2。
表2
同時,在第一時鐘周期期間,由B寄存器12的q口提供的α2也通過MUX11往回提供給乘法器13。在乘法器13,α2被平方,而結(jié)果α4被送入B寄存器12的d口,以在第二時鐘周期的一上升沿被計入此處。
以如上述的類似方式,在第2至第(m-1)時鐘周期的每一個中更新了三個寄存器。
在第一實施例中,乘法器13、B寄存器12和C寄存器17的功能相當(dāng)于步驟2A);而乘法器15和D寄存器16的功能相當(dāng)于步驟3A)。
在初始化之后,以及緊接在第1至第(m-1)時鐘周期的上升沿和下降沿之后由三個寄存器的q口提供的輸出值總結(jié)入表3,其中第一列代表時鐘周期,而每一時鐘周期的第一和第二行分別表示在上升沿之后和在下降沿之后的輸出值。
表3
逆α-1在第(m-1)個時鐘周期的下降沿之后從D寄存器16的q口提供。逆α-1被耦合至寄存器18并被計入此處以響應(yīng)于D_END,D-_END指一個表示求逆過程完成的信號,而其可通過將D_START延遲一段預(yù)定時間間隔而獲得。由寄存器18的q口提供的逆α-1被提供至該糾錯碼的一解碼器的其它部分。
參考圖2,示出了根據(jù)本發(fā)明的一有限域求逆器的第二實施例的一電路圖。
對于第二實施例,迭代求逆算法進一步被修改如下步驟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分別對應(yīng)于變量B和C,此二變量被用于該第二實施例的修改后的迭代求逆算法;而輸出寄存器38存儲在求逆器20中獲得的逆,以被用于糾錯碼的解碼過程。在第二實施例中,乘法器35和C寄存器36的功能相當(dāng)于步驟2B);而乘法器33和B寄存器32的功能相當(dāng)于步驟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起作用。
類似于第一實施例,響應(yīng)于D_START執(zhí)行一初始化程序。具體地,當(dāng)D_START表示求逆程序的開始時,MUX31選擇輸入元素α并將其提供至乘法器33的兩個輸入口;MUX34選擇由存儲器39提供的“1”并將其提供給乘法器35;而C寄存器36被預(yù)置為1。
然后,乘法器35將由MUX34提供的“1”與由C寄存器36提供的“1”相乘并將結(jié)果即“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被平方,而將結(jié)果,即α4送入B寄存器32的d口以在第二時鐘周期的上升沿將其存于此。如上所述,完成了第一時鐘周期或第一次迭代。其它時鐘周期類似于上述第一時鐘周期。
在初始化之后及在每一時鐘周期的上升沿之后的B寄存器32和C寄存器36的內(nèi)容如表4所示。
表4
逆α-1在第m個時鐘周期的上升沿后由C寄存器36的q口提供給寄存器38并計入此處以響應(yīng)于D_END。由寄存器38的q口提供的逆被提供至糾錯碼的一個解碼器的其它部分。
如上所述,通過使用本發(fā)明的求逆器可獲得表示于標(biāo)準(zhǔn)基上的一有限域中的一元素的逆。
雖然對本發(fā)明的描述參考了具體實施例,對本專業(yè)的技術(shù)人士來說顯而易見在不背離如下的權(quán)利要求所定義的精神和范圍的前提下,可作出各種修改和改變。
權(quán)利要求
1.一種用于按下式在(m-1)次迭代中確定α的逆以提供逆α-1的裝置α-1=Πk=1m-1α2k]]>其中所述α是一有限域GF(2m)上的一元素,m是一正整數(shù),而k是一從1至(m-1)范圍的整數(shù),所述裝置包括第一選擇裝置,用于選擇性地提供所述α或一第一反饋值;裝置,用于平方由第一選擇裝置提供的所述α或第一反饋值,以由此提供一第一輸出值;第一存儲器裝置,用于存儲該第一輸出值并將該第一輸出值作為第一反饋值提供給第一選擇裝置;第二選擇裝置,用于選擇性地提供從第一存儲器裝置提供的第一反饋值或“1”;裝置,用于將從第二選擇裝置提供的“1”或第一反饋值與一第二反饋值相乘,以由此提供一第二輸出值;及第二存儲器裝置,用于存儲第二輸出值,并將該第二輸出值作為第二反饋值提供給乘法裝置。
2.如權(quán)利要求1的裝置,其中所述α根據(jù)有限域GF(2m)的一標(biāo)準(zhǔn)基被表示為一m位數(shù)據(jù)。
3.如權(quán)利要求2的裝置,其中第一和第二存儲器裝置中的每一個包括邊緣觸發(fā)的D觸發(fā)器。
4.如權(quán)利要求3的裝置,其中在所述α的值不為0的情況下將提供至第一和第二存儲器裝置的第一和第二輸出值分別存于其內(nèi)。
5.如權(quán)利要求1的裝置,還包括第三存儲裝置,用于存儲由乘法裝置提供的第二輸出值并作為逆提供該第二輸出值。
6.如權(quán)利要求1的裝置,其中該第二存儲器裝置被用“1”初始化。
7.如權(quán)利要求6的裝置,其中該第一選擇裝置在第一次迭代中提供所述α,而在第k1次迭代中提供第一反饋值,k1是從2至(m-1)的整數(shù)
8.如權(quán)利要求7的裝置,其中該第二選擇裝置在第一次迭代中提供“1”,而在第k1次迭代由提供從第一存儲器裝置提供的第一反饋值。
9.如權(quán)利要求1的裝置,其中在第k次迭代中由平方裝置提供的第一輸出值是
。
10.如權(quán)利要求9的裝置,其中在第k次迭代中由乘法裝置提供的第二輸出值是
。
11.一種用于根據(jù)下式在m次迭代中確定α的逆,以提供逆α-1的裝置α-1=Πk=1m-1α2k]]>其中所述α是一有限域GF(2m)上的元素,m是一正整數(shù),而k是從1至m的一整數(shù),所述裝置包括第一選擇裝置,用于提供所述α或第一反饋值;第一乘法裝置,用于平方第一選擇裝置提供的所述α或第一反饋值,以由此提供第一輸出值;第一存儲器裝置,用于存儲由第一乘法裝置提供的第一輸出值并將該第一輸出值作為第一反饋值提供給第一選擇裝置;第二存儲器裝置,用于存儲第二反饋值并提供該第二反饋值;第二乘法裝置,用于將由第一存儲器裝置提供的第一反饋值與由第二存儲器裝置提供的第二反饋值相乘,以提供一第二輸出值;及第三存儲器裝置,用于存儲由第二乘法裝置提供的第二輸出值,并將該第二輸出值作為第二反饋值提供給第二存儲器裝置。
12.如權(quán)利要求11的裝置,其中所述α根據(jù)有限域GF(2m)的一標(biāo)準(zhǔn)基被表示為一m位數(shù)據(jù)。
13.如權(quán)利要求12的裝置,其中第一、第二和第三存儲器中的每一個包括邊沿觸發(fā)的D觸發(fā)器。
14.如權(quán)利要求13的裝置,其中響應(yīng)于系統(tǒng)時鐘信號的一上升沿將提供至第一和第二存儲器裝置的第一輸出值和第二反饋值分別被存于此處,而響應(yīng)于系統(tǒng)時鐘信號的一下降沿將提供至第三存儲器裝置的第二輸出值存于此處。
15.如權(quán)利要求14的裝置,其中在α是一非0值的情況下分別提供至第一、第二和第三存儲器裝置的第一輸出值,第二反饋值和第二輸出值被存于此處。
16.如權(quán)利要求11的裝置,還包括第四存儲器裝置,用于存儲由第三存儲器裝置提供的第二反饋值并將該第二反饋值作為逆提供。
17.如權(quán)利要求11的裝置,其中該第二存儲器裝置用“1”初始化。
18.如權(quán)利要求11的裝置,其中第一選擇裝置在第一次迭代中提供所述α而在第k1次迭代中提供第一反饋值,k1是一從2至m的整數(shù)。
19.如權(quán)利要求11的裝置,其中第一乘法裝置在第k次迭代中提供的第一值是
。
20.如權(quán)利要求11的裝置,其中由第二乘法裝置在第k次迭代中提供的第二值是
。
全文摘要
一種有限域求逆器,它確定有限域GF(文檔編號G06F7/72GK1157960SQ96113919
公開日1997年8月27日 申請日期1996年12月30日 優(yōu)先權(quán)日1995年12月28日
發(fā)明者任龍熙 申請人:大宇電子株式會社