專利名稱:用于遞歸運算數(shù)據(jù)的電路的制作方法
技術(shù)領域:
本發(fā)明涉及一個電路,該電路基于第一數(shù)據(jù)集運算第二數(shù)據(jù)集,由至少一個運算設備運算得到第一數(shù)據(jù)集,該運算設備能夠在預先定義的時鐘周期內(nèi)運算一個數(shù)據(jù),上述運算設備有一個輸入和一個輸出。
本發(fā)明還涉及一個系統(tǒng),用于運算一個交錯器(interleaver)的列內(nèi)置換元素,一個包含該系統(tǒng)的解碼電路,一個包含該解碼電路的電子設備和一個通信網(wǎng)絡。
本發(fā)明生成一個應用,例如,在一個衛(wèi)星通信系統(tǒng)或者一個采用UMTS(UMTS=通用移動電信系統(tǒng))標準的系統(tǒng),諸如一個第三代移動電話。
背景技術(shù):
某些數(shù)據(jù)處理系統(tǒng)執(zhí)行一個數(shù)據(jù)的遞歸運算,其運算一個數(shù)據(jù)集需要基于另外一個數(shù)據(jù)集。例如可以執(zhí)行一個數(shù)據(jù)bj[i]的運算,其中i和j為系數(shù),i從0變化到n,j從0變化到m,m和n為非零整數(shù)。這在冪矩陣的運算中是典型的運算。
圖1為這樣一個處理系統(tǒng)要運算的數(shù)據(jù)的一個例子。在本例子中,整數(shù)m為9,整數(shù)n為4。要運算5個數(shù)據(jù)集,b0
到b9
,b0[1]到b9[1],b0[2]到b9[2],b0[3]到b9[3],b0[4]到b9[4]。處理系統(tǒng)分別運算b0
到b9
,然后是b0[1]到b9[1],依此類推。一個數(shù)據(jù)集是基于在前的數(shù)據(jù)集。例如,b0[1]是關(guān)于b0
的一個函數(shù)fb0[1]=f(b0
)類似地,b1[1]=f(b1
),b2[1]=f(b2
),依此類推。一般地bi[i+1]=f(bj[i])圖2示出了執(zhí)行上述運算的一個電路。該電路包括一個存儲器21,一個控制器22和一個運算設備23。以下例子敘述了基于第一數(shù)據(jù)集b0[1]到b9[1]運算第二數(shù)據(jù)集b0[2]到b9[2]。在本例子中,采用運算設備23運算一個數(shù)據(jù)需要一個時鐘周期。第一數(shù)據(jù)集b0[1]到b9[1]的數(shù)據(jù)存儲在存儲器21中。在一個時鐘周期中,將b0[1]發(fā)送到運算設備23,該設備則運算b0[2]。然后將該數(shù)據(jù)存儲在存儲器21中。在下一個時鐘周期,將b1[1]發(fā)送到運算設備23,該設備則運算b1[2]。然后將該數(shù)據(jù)存儲在存儲器21中。電路類似地處理從b2[2]到b9[2]的運算。
控制器22控制將第一數(shù)據(jù)集的數(shù)據(jù)發(fā)送到運算設備23用于運算第二數(shù)據(jù)集的數(shù)據(jù)。為了實現(xiàn)該控制,控制器22從存儲器21中生成保存上述第一數(shù)據(jù)集數(shù)據(jù)的一個地址。存儲器21是一個RAM存儲器(RAM=隨機存取存儲器)。當存儲器21從控制器22收到一個地址時,就將存儲在該地址中的數(shù)據(jù)發(fā)送到運算設備23。
因此該電路需要一個隨機存取存儲器和一個控制器。該存儲器和該控制器占據(jù)大量硅表面并且采用大量電流。這是它的一個缺點,特別是在諸如移動電話等的便攜式電子設備中。事實上,在便攜式電子設備中,有效的硅表面是有限的。而且,此類設備是用電池供電的,為了避免頻繁的對電池充電,低電流消耗是必要的。
發(fā)明內(nèi)容
本發(fā)明的一個目的是提供一種基于第一數(shù)據(jù)集運算第二數(shù)據(jù)集的電路,上述電路占用較少的硅平面,并且有較低的電流消耗。
根據(jù)本發(fā)明和在開始段中所敘述的電路有如下特征,它包括在若干個時鐘周期內(nèi),將第一數(shù)據(jù)集從上述運算設備的輸出端傳輸?shù)捷斎攵说膫鬏斣O備,該時鐘周期數(shù)量依賴于第一數(shù)據(jù)集的數(shù)據(jù)數(shù)量和預先定義的運算一個數(shù)據(jù)所必須的周期數(shù)量,在每個時鐘周期,有一個數(shù)據(jù)通過上述傳輸設備進行傳輸。
當運算設備運算第一數(shù)據(jù)集的一個數(shù)據(jù)并且?guī)讉€時鐘周期后利用該數(shù)據(jù)進行運算第二數(shù)據(jù)集的數(shù)據(jù)時,該第一數(shù)據(jù)集的數(shù)據(jù)通過傳輸設備傳輸?shù)竭\算設備的輸入端,該操作僅由上述時鐘控制。傳輸裝置是在運算設備要用到該第一數(shù)據(jù)集的數(shù)據(jù)時,該數(shù)據(jù)到達上述運算設備的輸入端。因此,電路不需要隨機存取存儲器和控制器,這樣就降低了這種電路的功耗和所占用的硅表面。
有利的是,傳輸裝置包括用于調(diào)節(jié)將一個數(shù)據(jù)從上述運算設備的輸出端傳輸?shù)捷斎攵怂仨毜闹芷跀?shù)的調(diào)節(jié)裝置。因此該電路有很大的靈活性。事實上,該電路所處理的數(shù)據(jù)集中的數(shù)據(jù)量是變化的。將一個數(shù)據(jù)從運算設備的輸出端傳輸?shù)捷斎攵怂仨毜闹芷跀?shù)還依賴于數(shù)據(jù)集的數(shù)據(jù)量。由于此調(diào)節(jié)裝置,就可以按照要處理的數(shù)據(jù)集的數(shù)據(jù)量的一個函數(shù),調(diào)節(jié)將一個數(shù)據(jù)從運算設備的輸出端傳輸?shù)捷斎攵怂仨毜闹芷跀?shù)。因此,該電路可以用于處理具有不同數(shù)據(jù)數(shù)量的數(shù)據(jù)集。
在一個優(yōu)選的實施例中,傳輸裝置包括至少一個時鐘觸發(fā)寄存器,上述寄存器能夠每一時鐘周期存儲一個新數(shù)據(jù)。根據(jù)本實施例,傳輸裝置僅僅包括能夠存儲一個數(shù)據(jù)的寄存器。這種寄存器占用的硅表面少并且電流消耗小。該電路還容易設計,該類寄存器的數(shù)量對應于將一個數(shù)據(jù)從上述運算設備的輸出端傳輸?shù)捷斎攵怂仨毜闹芷跀?shù)。
參考以下實施例,通過沒有局限性的例子,可以清晰的說明本發(fā)明的這些方面和其他方面。
在圖中圖1示出了要運算的數(shù)據(jù)的一個例子;圖2是一個方框圖,示出了運算圖1的數(shù)據(jù)的現(xiàn)有技術(shù)的電路;圖3是一個方框圖,示出了根據(jù)本發(fā)明的一個電路;圖4是一個方框圖,示出了根據(jù)本發(fā)明的一個優(yōu)選實施例的電路;圖5示出了根據(jù)本發(fā)明的用于相乘累加的一個電路;圖6示出了包含根據(jù)本發(fā)明的電路的一個通信網(wǎng)絡;圖7示出了交錯矩陣的和一個交錯塊的運算;圖8示出了根據(jù)本發(fā)明的一個電路,該電路用于運算一個交錯器的列間置換元素。
具體實施例方式
圖3示出了根據(jù)本發(fā)明的一個電路。該電路包括一個具有一個輸入端311和一個輸出端312的運算設備31,和一個傳輸裝置32。在該例子中,傳輸裝置包括9個寄存器321-329。運算設備31還接收附加數(shù)據(jù)34,例如系數(shù)。
以下所述的例子示出了通過圖3中電路的設備是如何基于第一數(shù)據(jù)集運算第二數(shù)據(jù)集的。該例子應用于圖1中的第二數(shù)據(jù)集b0[2]到b9[2]和第一數(shù)據(jù)集b0[1]到b9[1]。
首先,基于對應于圖1中的數(shù)據(jù)集b0
到b9
的初始數(shù)據(jù)運算第一數(shù)據(jù)集的數(shù)據(jù)。這些數(shù)據(jù)以附加數(shù)據(jù)34的形式發(fā)送到運算設備31。在第一個時鐘周期內(nèi),發(fā)送數(shù)據(jù)b0
到運算設備31。然后運算設備31運算數(shù)據(jù)b0[1],并將其存儲到寄存器321中。應該注意的是,數(shù)據(jù)b0[1]可以并行存儲在一個存儲設備中,其在圖1中沒有示出。在第二個時鐘周期內(nèi),發(fā)送數(shù)據(jù)b1
到運算設備31。然后運算設備31運算數(shù)據(jù)b1[1],并將其代替b0[1]存儲到寄存器321中,將b0[1]發(fā)送到寄存器322中。事實上,寄存器321到329是由時鐘觸發(fā)的,這就是說,在每個時鐘周期,在一個寄存器中的數(shù)據(jù)離開該寄存器。
數(shù)據(jù)b2[1]到b9[1]的運算采用了同樣的操作。在第十個時鐘周期,存儲在寄存器329中的數(shù)據(jù)b1
被發(fā)送到運算設備31的輸入端311,然而數(shù)據(jù)b9[1]被運算設備31運算并且被發(fā)送到寄存器321中。
在第十一個時鐘周期,運算設備31基于數(shù)據(jù)b0[1]運算第二數(shù)據(jù)集的數(shù)據(jù)b0[2]。然后將該數(shù)據(jù)b0[2]存儲在寄存器321中。在第十一個時鐘周期,將存儲在寄存器329中的數(shù)據(jù)b1[1]發(fā)送到運算設備31的輸入端311。在第十二個時鐘周期,運算設備31運算數(shù)據(jù)b1[2]并將其存儲在寄存器321中。執(zhí)行相同的操作用于運算數(shù)據(jù)b2[2]到b9[2]。
在該例子中,假定運算設備31運算一個數(shù)據(jù)需要一個時鐘周期。對于該運算也可以需要多個時鐘周期。例如,假設該運算需要三個時鐘周期。
在第一個時鐘周期,將數(shù)據(jù)b0
發(fā)送到運算設備31。在第二個時鐘周期,將數(shù)據(jù)b1
發(fā)送到運算設備31。在第三個時鐘周期,將數(shù)據(jù)b2
發(fā)送到運算設備31。由于一個數(shù)據(jù)的運算需要三個時鐘周期,因此在該第三個時鐘周期運算數(shù)據(jù)b0[1]。然后將該數(shù)據(jù)存儲到寄存器321中。在第十個時鐘周期,將數(shù)據(jù)b9
發(fā)送到運算設備31。然后,數(shù)據(jù)b0[1]是位于寄存器327中,并且被發(fā)送到運算設備31,從而初始化第二數(shù)據(jù)集的數(shù)據(jù)b0[2]的運算。因此,傳輸裝置32僅僅需要七個寄存器321到327。
因此,將一個數(shù)據(jù)從運算設備31的輸出端傳輸?shù)捷斎攵怂枰臅r鐘周期數(shù)依賴于數(shù)據(jù)集的數(shù)據(jù)數(shù)量和運算一個數(shù)據(jù)所必須的時鐘周期數(shù)量。通常,如果數(shù)據(jù)集包括k個數(shù)據(jù)并且如果運算一個數(shù)據(jù)所必須的時鐘周期數(shù)為1,則將一個數(shù)據(jù)從運算設備31的輸出端傳輸?shù)捷斎攵怂枰臅r鐘周期數(shù)為(k-1)。在圖3的例子中,這就意味著傳輸裝置需要(k-1)個由時鐘觸發(fā)的寄存器。
在上述例子中,還假設了運算為流水線型的,也就是說,在每個時鐘周期,發(fā)送一個數(shù)據(jù)到運算設備31。顯然,根據(jù)本發(fā)明的電路包括了各種運算設備,也可能并不是每個時鐘周期都發(fā)送一個數(shù)據(jù)到運算設備31。如果在這種情況下,將一個數(shù)據(jù)從一個運算設備的輸出端傳輸?shù)捷斎攵怂枰臅r鐘周期數(shù)還是依賴于數(shù)據(jù)集的數(shù)據(jù)數(shù)量和運算一個數(shù)據(jù)所必須的時鐘周期數(shù)量,如圖5所詳細敘述的。
圖4示出了根據(jù)本發(fā)明的一個優(yōu)選實施例的一個電路。除了圖3所述的元件外,該電路還包括調(diào)節(jié)裝置,用于以多路復用器35的形式調(diào)節(jié)將一個數(shù)據(jù)從上述運算設備的輸出端傳輸?shù)捷斎攵怂仨毜闹芷跀?shù)。多路復用器35被圖4中沒有示出的一個控制電路控制,可以將存儲在寄存器323或者寄存器327或者寄存器329中的數(shù)據(jù)發(fā)送到運算設備31的輸入端311。因此,可以調(diào)節(jié)將一個數(shù)據(jù)從運算設備31的輸出端傳輸?shù)捷斎攵怂枰闹芷跀?shù)。事實上,如果存儲在寄存器323中的數(shù)據(jù)被選擇發(fā)送到運算設備31的輸入端,則將一個數(shù)據(jù)從運算設備31的輸出端傳輸?shù)捷斎攵怂枰闹芷跀?shù)為3。如果存儲在寄存器327中的數(shù)據(jù)被選擇發(fā)送到運算設備31的輸入端,則將一個數(shù)據(jù)從運算設備31的輸出端傳輸?shù)捷斎攵怂枰闹芷跀?shù)為7。
因此,該電路可以用于處理具有數(shù)據(jù)量變化的數(shù)據(jù)集。例如,在假定運算為流水線型并且運算設備31處理一個數(shù)據(jù)要求一個時鐘周期時,要處理包含四個數(shù)據(jù)的數(shù)據(jù)集,則存儲在寄存器323中的數(shù)據(jù)被選擇發(fā)送到運算設備31的輸入端311。要處理包含九個數(shù)據(jù)的數(shù)據(jù)集,則選擇存儲在寄存器327中的數(shù)據(jù)。要處理包含十個數(shù)據(jù)的數(shù)據(jù)集,則選擇存儲在寄存器329中的數(shù)據(jù)。
顯然,調(diào)節(jié)裝置被設計為可以從寄存器321到329的每一個存儲器中選擇數(shù)據(jù)。因此,在運算設備31處理一個數(shù)據(jù)要求一個時鐘周期時,可以處理包括數(shù)量為2到10之間的數(shù)據(jù)的數(shù)據(jù)集。
圖5示出了根據(jù)本發(fā)明用于乘積累加運算的一個電路。該電路包含四個運算設備41到44。這些運算設備都是加法器。四個運算設備41到44中的每一個都分別與一個乘法器410到440連接。每個運算設備都分別與三個寄存器連接,分別為411到413,421到423,431到433,和441到443。
圖5中的電路基于十六個數(shù)據(jù)d1到d16和十六個系數(shù)c1到c16,計算相乘累加MAC1到MAC4的四個結(jié)果。
MAC1=c1*d1+c5*d5+c9*d9+c13*d13MAC2=c2*d2+c6*d6+c10*d10+c14*d14MAC3=c3*d3+c7*d7+c11*d11+c15*d15MAC4=c4*d4+c8*d8+c12*d12+c16*d16
在例如解碼濾波器中使用該電路用于以MP3格式傳輸數(shù)據(jù)。以數(shù)據(jù)帶的形式傳輸數(shù)據(jù),每個帶分成多個子帶。圖5中的電路由時鐘控制。在每個時鐘周期有一個數(shù)據(jù)到達電路并被發(fā)送到乘法器410到440中的一個。數(shù)據(jù)d1發(fā)送到乘法器410,數(shù)據(jù)d2發(fā)送到乘法器420,數(shù)據(jù)d3發(fā)送到乘法器430,數(shù)據(jù)d4發(fā)送到乘法器440,數(shù)據(jù)d5發(fā)送到乘法器410,依此類推。
在第一個時鐘周期,系數(shù)c1發(fā)送到乘法器410,計算數(shù)據(jù)c1*d1,然后由運算設備41對其加上一個數(shù)值零。然后將數(shù)據(jù)c1*d1發(fā)送到寄存器411。在第二個時鐘周期,系數(shù)c2發(fā)送到乘法器420,計算數(shù)據(jù)c2*d2,然后由運算設備42對其加上一個數(shù)值零。然后將數(shù)據(jù)c2*d2發(fā)送到寄存器421。執(zhí)行類似的操作來計算c3*d3和c4*d4的值,并分別將其發(fā)送到寄存器431和441。數(shù)據(jù)c1*d1,c2*d2,c3*d3和c4*d4形成第一數(shù)據(jù)集。
在第五個時鐘周期,系數(shù)c5發(fā)送到乘法器410,計算數(shù)據(jù)c5*d5,然后由運算設備41對其加上數(shù)據(jù)c1*d1。事實上,數(shù)據(jù)c1*d1在第二,三,四個時鐘周期經(jīng)過了寄存器411,412和413,然后在第四個時鐘周期,該數(shù)據(jù)被發(fā)送到運算設備41。然后,將運算設備41計算得到的數(shù)據(jù)c1*d1+c5*d5發(fā)送到寄存器411。在第六、七和八個時鐘周期執(zhí)行類似的操作,以便計算數(shù)據(jù)c2*d2+c6*d6,c3*d3+c7*d7和c4*d4+c8*d8。數(shù)據(jù)c1*d1+c5*d5,c2*d2+c6*d6,c3*d3+c7*d7和c4*d4+c8*d8是基于第一數(shù)據(jù)集計算得到的第二數(shù)據(jù)集。
圖6示出了包括根據(jù)本發(fā)明的電路的一個通信網(wǎng)絡。該網(wǎng)絡包括一個編碼設備ENC,一個傳輸信道CHAN和一個解碼電路DEC。在編碼設備ENC端,第一個系統(tǒng)遞歸編碼器61對要傳輸?shù)臄?shù)據(jù)矢量S1進行編碼,從而生成第一個奇偶矢量P1。與之并行,第一個交錯器62對數(shù)據(jù)矢量S1的數(shù)據(jù)進行交錯,第二個系統(tǒng)遞歸編碼器63對交錯后得到的矢量進行編碼,生成第二個奇偶矢量P2。一個矢量數(shù)據(jù)的交錯包括用一個預先定義的次序改變矢量中元素的順序,從而獲得另外一個矢量。以下,為了簡化描述,將會簡單敘述一個矢量中的數(shù)據(jù)的交錯或者說是矢量交錯。
隨后,將數(shù)據(jù)矢量S1、第一個奇偶矢量P1和第二個奇偶矢量P2通過傳輸信道CHAN發(fā)送到一個接收器(未在圖6中示出)。這是由發(fā)射器(未在圖6中示出)進行的。然后將數(shù)據(jù)矢量S11、第一個奇偶矢量P1和第二個奇偶矢量P2發(fā)送到解碼電路DEC。
解碼電路DEC包括第一個解碼器64,第二個解碼器66,第二個交錯器65,第三個交錯器67和解交錯器(de-interleaver)68。在圖1的例子中,解碼器64和66為軟輸入-軟輸出解碼器(SISO)。
該解碼電路DEC以迭代方式運行。在一次迭代中,第一個解碼器64基于所接收的數(shù)據(jù)矢量S1、所接收的第一個奇偶矢量P1和一個來自第二個解碼器66的外部數(shù)據(jù)矢量,計算第一個外部輸出數(shù)據(jù)矢量。如果還沒有來自第二個解碼器66的外部數(shù)據(jù)矢量,就用一個預先定義的矢量代替它,例如用一個單位矢量。在解碼的第一次迭代時這是可能的。
由第二個交錯器65對第一個外部輸出數(shù)據(jù)矢量進行交錯,從中得到的矢量被發(fā)送到第二個解碼器66。然后,第二個解碼器66基于第二個奇偶矢量P2、來自第三個交錯器67的一個矢量S2和來自第二個交錯器65的矢量,計算第二個外部輸出數(shù)據(jù)矢量,該第三個交錯器67對于其輸入端具有數(shù)據(jù)矢量S1。然后解交錯器68對第二個外部輸出數(shù)據(jù)矢量進行解交錯,從中得到的矢量被發(fā)送到第一個解碼器64。然后可以執(zhí)行一個新的迭代。
該解碼電路可以用在一個電子設備中,例如一個第三代移動電話。
數(shù)據(jù)的交錯需求計算列內(nèi)置換元素,如參考圖7進行的描述。由一個包含根據(jù)本發(fā)明的電路的一個系統(tǒng)執(zhí)行該列內(nèi)置換元素的計算,如參考圖8進行的描述。
圖7示出了交錯矩陣的和一個交錯塊的運算,該運算由圖6所示的通信網(wǎng)絡的一個交錯器執(zhí)行。以下所述的例子用于符合“3GGP TS 25.212V3.9.0(2002-03)”標準的一個交錯器。
該交錯器的一個目的是改變包含在一個有K個比特的數(shù)據(jù)矢量中的數(shù)據(jù)的次序,K是40到5114之間的一個整數(shù)。交錯器根據(jù)一個由一個R行和C列的交錯矩陣預先定義的交錯方案,將數(shù)據(jù)矢量變換為一個交錯數(shù)據(jù)矢量。
圖7中的例子示出了該交錯矩陣是如何定義的和如何對一個數(shù)據(jù)矢量的位進行交錯。在該例子中,對一個包含25個比特的數(shù)據(jù)矢量B進行交錯,得到交錯數(shù)據(jù)矢量B’。應該注意的是,該例子的目的是,以一種簡單的方式說明如何獲得交錯數(shù)據(jù)矢量B’。更具體的說,該例子并不符合“3GGP TS 25.212 V3.9.0(2002-03)”標準,在該標準中,數(shù)據(jù)矢量的長度K在40到5114之間。
在該例子中,數(shù)據(jù)矢量B的每一位都由0到24之間的一個標識符進行標識。標識符逐行寫入第一個矩陣M1中。然后,根據(jù)一個列內(nèi)置換方案,在矩陣M1中執(zhí)行列內(nèi)置換,得到一個矩陣M2。然后,根據(jù)一個列間置換方案,在矩陣M2中執(zhí)行列間置換,得到一個矩陣M3。矩陣M3為一個交錯矩陣。
然后,可以通過逐列讀取該交錯矩陣的標識符,獲得交錯數(shù)據(jù)矢量B’的位的標識符。在該例子中,在數(shù)據(jù)矢量B中的第一個位置找到的由標識符《0》標識的位,其在交錯數(shù)據(jù)矢量B’中位于第二十四位置。在數(shù)據(jù)矢量B中由標識符《5》標識的位,其在交錯數(shù)據(jù)矢量B’中位于第二位置,依次類推。
對于K的每個值,都定義一個交錯方案。為了實現(xiàn)該目的,定義了一個列內(nèi)置換方案和一個列間置換方案。上述標準規(guī)定了四個列間置換方案,如表格1定義的。例如,數(shù)字1標識的列間置換方案代替矩陣M2的第一行,該行標識為《0》,矩陣M2的第二十行標識為《19》,第二行對應第十行,依次類推。
表1列間置換方案交錯矩陣的行數(shù)和列間置換方案依賴于數(shù)據(jù)矢量的長度K,如表格2所示。該表格存儲在存儲器中,和已知長度K,交錯器確定要采用的交錯矩陣的行數(shù)R和列間置換方案。因此,由于預先確定了這些參數(shù),對一個給定長度K的數(shù)據(jù)矢量進行交錯,交錯器不需要計算交錯矩陣的行數(shù)也不需要列間置換方案。
相反地,對每一個可能的列數(shù)C不可能存儲列間置換方案。事實上,列數(shù)C可以取2到256之間的任意整數(shù)值。因此,對每一個可能的列數(shù)C存儲列間置換方案需要特大量的存儲能力。因此,在每次對有一個新的長度K的數(shù)據(jù)矢量進行交錯時,計算列內(nèi)置換方案。
表2列內(nèi)置換方案和關(guān)于K的函數(shù)R為了計算給定長度K的列間置換方案,要確定下述的參數(shù)。
在第一個位置,確定一個素數(shù)p。數(shù)字p為使(p-1)-K/R≥0的最小素數(shù)。
然后,確定行數(shù)C。行數(shù)C為在整數(shù)集{(p-1),p,(p+1)}中使K≤R*C的最小整數(shù)。
然后,確定本原根v(primitive root),它是關(guān)于素數(shù)p的一個函數(shù),如表3所示。
表2本原根v為關(guān)于素數(shù)p的一個函數(shù)接著,計算最小素數(shù)的一個序列q。該序列由R的值組成,按如下被構(gòu)成q
=1對于j>0,q[j]為滿足下列條件的最小素數(shù)q[j]和(p-1)之間的最大公約數(shù)為1q[j]>6q[j]>q[j-1]然后,使用列間置換方案Tr[T[j]]=q[j],計算一個最小素數(shù)置換序列r。
然后,計算基本序列s。該序列包括p-1個值,按如下被構(gòu)成s
=1s[i]=(v*s[i-1])mod p,這里“mod p”指執(zhí)行模p乘法。
最后,為每列j計算一個列內(nèi)置換方案。對于一個給定的列j,對應下面的計算模型,在C=p時,計算C列內(nèi)置換元素UjUj[i]=s[(i*r[j])mod(p-1)]i=0,1,.......,p-2Uj[p-1]=0可以證明表達式Uj[i]=s[(i*r[j])mod(p-1)]等于Uj[i+1]=(v’[j]*Uj[i])mod p,這里v’[j]是一個等于vr[j]的一個新的本原根。事實上表達式s[i]=(v*s[i-1])mod p等于以下表達式s[i]=(vi*s
)mod p=vimod p.
接著,表達式Uj[i]=s[(i*r[j])mod(p-1)]等于表達式Uj[i]=v(I*r[j])mode(p-1)mod p.
如果,有a=v并且i*r[j]=babmod p=[an(p-1)][abmod(p-1)]mod p,這里n為b=n(p-1)+bmod(p-1).
因此abmod p=[an(p-1)mod p][abmod(p-1)]mod p=[(a(p-1))nmod p][abmod(p-1)]mod p
=[a(p-1)mod p]n[abmod(p-1)]mod p如果p為一個素數(shù),并且如果a和p之間的最大公約數(shù)為1,則a(p-1)mod p=1。在該例子中,a=v并且v從不等于p,這意味著a和p之間的最大公約數(shù)為1。因此[a(p-1)mod p]n=1。從而,abmod p=abmod(p-1)mod p如果,在該表達式中用v代替a,用i*r[j]代替b,得到vi*r[j]mod p=v(i*r[j])mod(p-1)mod p=Uj[i]該表達式等于表達式Uj[i]=(v’[j])imod p,這里v’[j]=vr[j]用一個遞歸方式使用該表達式,得到Uj[i+1]=(v’[j]*Uj[i])mod p圖8示出了包括根據(jù)本發(fā)明的一個電路的系統(tǒng),該電路用于運算上述的列間置換元素。
該系統(tǒng)包括一個運算設備800和一個傳輸裝置801。運算設備包括十五個寄存器R1-R15,七個模p移位單元SMP1-SMP7,八個乘法器MUX1-MUX8,七個模p加法器AMP2-AMP8。傳輸裝置801包括十二個寄存器R16-R27。系統(tǒng)還包括為一個乘法器MUX9的形式的調(diào)節(jié)裝置。
運算設備800能夠執(zhí)行在小于p的兩個數(shù)據(jù)x和y之間的模p乘法。假設x和y用八比特的二進制表示,從最低有效位到最高有效位寫出x=x(0)x(1)x(2)x(3)x(4)x(5)x(6)x(7)y=y(tǒng)(0)y(1)y(2)y(3)y(4)y(5)y(6)y(7)在級81,將數(shù)據(jù)x發(fā)送到模p移位單元SMP1。由于有乘法器MUX1,如果位y(0)的值為1,則將值x拷貝到寄存器R8。如果位y(0)的值為0,將值0拷貝到寄存器R8。
模p移位單元將數(shù)據(jù)x左移并且將得到的數(shù)據(jù)與p進行比較。得到的數(shù)據(jù)為x(1)x(2)x(3)x(4)x(5)x(6)x(7)0如果該得到的數(shù)據(jù)大于p,則對該得到的數(shù)據(jù)進行模p運算,并將運算的結(jié)果寫入寄存器R1。如果該得到的數(shù)據(jù)小于p,則將其拷貝到寄存器1。
在級82,將存儲在寄存器R1中的數(shù)據(jù)發(fā)送到模p移位單元SMP2和乘法器MUX2。每一步都需要一個用于觸發(fā)寄存器的時鐘周期。如果第二位y(1)的值為1,則將存儲在寄存器R1中的數(shù)據(jù)發(fā)送到模p加法器AMP2。如果第二位y(1)的值為0,則將值0發(fā)送到模p加法器AMP2。存儲在寄存器R8中的數(shù)據(jù)也發(fā)送到模p加法器AMP2。模p加法器AMP2對兩個輸入值執(zhí)行模p加法并將結(jié)果發(fā)送到寄存器R9。
在級83到88期間執(zhí)行類似操作,在模p加法器AMP8的輸出端得到在x和y之間的模p乘法的結(jié)果。
在后面敘述由圖8中的電路對列內(nèi)置換元素進行運算。
如果交錯矩陣的行數(shù)R的值為10或者20,則新的本原根v’[j]和列內(nèi)置換元素被寫入八個比特,如果R的值為5,則被寫入五個比特。
假定新的本原根v’[j]和列內(nèi)置換元素被寫入八個比特。在該情況下,在一個新的本原根v’[j]和一個列內(nèi)置換元素之間的模p乘法需要8個時鐘周期。
在級81,將列內(nèi)置換元素U0
發(fā)送到模p移位單元SMP1和乘法器MUX1,以計算列內(nèi)置換元素U0[1]。在第一個時鐘周期之后,在第二個時鐘周期執(zhí)行級82。在第二個時鐘周期,將列內(nèi)置換元素U1
發(fā)送到模p移位單元SMP1和乘法器MUX1,以執(zhí)行在v’[1]和U1
之間的第一模p乘法級,否則,執(zhí)行在v’
和U0
之間的模p乘法的第二級。
圖8示出了在第八個時鐘周期執(zhí)行的運算。執(zhí)行在v’
和U0
之間的模p乘法的第八級,其中乘法器MUX8確認新的本原根v’
的第八位v’
(7)的值是否為1。執(zhí)行在v’[1]和U1
之間的模p乘法的第七級,其中乘法器MUX7確認新的本原根v’[1]的第七位v’[1](6)的值是否為1,依次類推。執(zhí)行在v’[7]和U7
之間的模p乘法的第一級,其中乘法器MUX1確認新的本原根v’[7]的第一位v’[7](0)的值是否為1。
在第八個時鐘周期的末端,計算列內(nèi)置換元素U0[1]并將其存儲在寄存器R15中。假設交錯矩陣有20行。對于每一列,都要計算二十個列內(nèi)置換元素。因此計算列內(nèi)置換元素U0[1]到U19[1],然后基于U0[1]計算U0[2],基于U1[1]計算U1[2],依次類推。其后,在已經(jīng)計算完之后的十二個時鐘周期,運算設備800再次使用由其計算得到的每個列內(nèi)置換元素。傳輸裝置801包含十二個寄存器R16到R27,它在十二個時鐘周期內(nèi)將一個數(shù)據(jù)從運算設備800的輸出端傳輸?shù)捷斎攵恕?br>
假設交錯矩陣有10行。對于每一列j,都要計算十個列內(nèi)置換元素。其后,在已經(jīng)計算完之后的兩個時鐘周期,運算設備800再次使用由其計算得到的每個列內(nèi)置換元素。由于乘法器MUX9,可以在寄存器R17的輸出端選擇數(shù)據(jù),從而在兩個時鐘周期內(nèi)將該數(shù)據(jù)從運算設備800的輸出端傳輸?shù)捷斎攵恕?br>
動詞“包含”和它的變化詞可以從廣義方式進行解釋,也就是說,不排除在所述動詞后所列舉的元件之外存在其它元件,還包括該動詞后已經(jīng)涉及的眾多元件和由單詞“一個”所修飾的元件。
權(quán)利要求
1.一種電路,該電路基于由至少一個運算設備(31)運算得到的第一數(shù)據(jù)集運算第二數(shù)據(jù)集,該運算設備能夠在預先定義的多個時鐘周期內(nèi)運算一個數(shù)據(jù),所述運算設備具有一個輸入端(311)和一個輸出端(312),所述電路的特征在于,它包括傳輸裝置(32),用于在多個時鐘周期內(nèi)將第一數(shù)據(jù)集的一個數(shù)據(jù)從所述運算設備的輸出端傳輸?shù)捷斎攵?,該時鐘周期數(shù)量取決于第一數(shù)據(jù)集的數(shù)據(jù)數(shù)量和預先定義的運算一個數(shù)據(jù)所必須的時鐘周期數(shù)量,在每個時鐘周期有一個數(shù)據(jù)通過所述傳輸裝置進行傳輸。
2.權(quán)利要求1所述的電路,其特征在于傳輸裝置包括調(diào)節(jié)裝置(35),用于調(diào)節(jié)將一個數(shù)據(jù)從所述運算設備的輸出端傳輸?shù)捷斎攵怂仨毜闹芷跀?shù)量。
3.權(quán)利要求1或2所述的電路,其特征在于傳輸裝置包括至少一個時鐘觸發(fā)寄存器(321),該寄存器能夠在每個時鐘周期存儲一個新的數(shù)據(jù)。
4.一種用于計算一個交錯器的列內(nèi)置換元素的系統(tǒng),該系統(tǒng)包括一個權(quán)利要求1所述的電路。
5.一種包括一個權(quán)利要求4所述系統(tǒng)的解碼電路。
6.一種包括一個權(quán)利要求5所述解碼電路的電子設備。
7.一個通信網(wǎng)絡,包括能夠發(fā)送信號的至少一個發(fā)射器,一個傳輸信道,一個能夠接收所述信號的接收器和一個權(quán)利要求5所述的解碼電路。
全文摘要
本發(fā)明涉及一個電路,該電路基于由至少一個運算設備(31)運算得到的第一數(shù)據(jù)集運算第二數(shù)據(jù)集,該運算設備能夠在預先定義的多個時鐘周期內(nèi)運算一個數(shù)據(jù)。該運算設備具有一個輸入端(311)和一個輸出端(312)。該電路包括傳輸裝置(32),用于在多個時鐘周期內(nèi)將第一數(shù)據(jù)集的一個數(shù)據(jù)從所述運算設備的輸出端傳輸?shù)捷斎攵?,該時鐘周期數(shù)量取決于第一數(shù)據(jù)集的數(shù)據(jù)數(shù)量和預先定義的運算一個數(shù)據(jù)所必須的時鐘周期數(shù)量。在每個時鐘周期有一個數(shù)據(jù)通過所述傳輸裝置進行傳輸。
文檔編號H03M13/27GK1685620SQ03822737
公開日2005年10月19日 申請日期2003年9月10日 優(yōu)先權(quán)日2002年9月25日
發(fā)明者S·查潘蒂爾, Y·塔巴科夫 申請人:皇家飛利浦電子股份有限公司