專利名稱:一種乘法器及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種乘法器及其控制方法。
背景技術(shù):
正規(guī)基表示是二元域上元素最重要的表示形式之一,優(yōu)化正規(guī)基是一類特殊的正規(guī)基,具有最低的計(jì)算復(fù)雜度,而因?yàn)镮I型優(yōu)化正規(guī)基表示的乘法運(yùn)算效率最高,所以是優(yōu)化正規(guī)基中應(yīng)用最廣泛的一種,被廣泛應(yīng)用于加密通信領(lǐng)域?,F(xiàn)有的II型優(yōu)化正規(guī)基乘法器都是根據(jù)乘法矩陣的元素?cái)?shù)量設(shè)計(jì)的,電路結(jié)構(gòu)固定,也就是一類II型優(yōu)化正規(guī)基乘法器只能支持具有固定元素?cái)?shù)量的乘法矩陣進(jìn)行計(jì)算,當(dāng)乘法矩陣的元素?cái)?shù)量發(fā)生改變時(shí),就需要重新設(shè)計(jì)乘法器電路進(jìn)行計(jì)算。所以現(xiàn)有的 II型優(yōu)化正規(guī)基乘法器都只能支持一種數(shù)據(jù)長度的乘法運(yùn)算,不具備靈活性。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種乘法器及其控制方法,用以解決現(xiàn)有的II型優(yōu)化正規(guī)基乘法器都只能支持一種數(shù)據(jù)長度的乘法運(yùn)算,不具備靈活性的問題。一種乘法器控制方法,所述乘法器具有左對齊倒序存儲第一矩陣中元素的第一移位寄存器;左對齊倒序存儲第二矩陣中元素的第二移位寄存器;包括相連的第三移位寄存器和第四移位寄存器的級聯(lián)移位寄存器,所述第三移位寄存器和第四移位寄存器分別右對齊正序存儲所述第二相乘矩陣中的元素,其余的位置存儲0值;所述方法包括在外部開始信號觸發(fā)下,依據(jù)所述第一矩陣的長度生成的移位控制信號指示所述第一、二移位寄存器將存儲的矩陣元素右對齊,并且,按照預(yù)設(shè)的第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位;在每個(gè)時(shí)鐘周期內(nèi),控制所述第一、二移位寄存器中的元素右移一位,且根據(jù)所述第一規(guī)則將所述級聯(lián)移位寄存器中的元素右移一位,并按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與所述第一移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算;當(dāng)所述時(shí)鐘周期的個(gè)數(shù)等于所述第一矩陣的長度值時(shí),控制運(yùn)算停止,得到結(jié)果矩陣中的元素值。優(yōu)選地,所述按照預(yù)設(shè)的第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位的過程具體為將依據(jù)所述第一矩陣的長度生成的數(shù)據(jù)路徑控制信號與所述第二移位寄存器的最右一位中的元素進(jìn)行邏輯與運(yùn)算;將所述第四移位寄存器中除最右一位外的每個(gè)位置中的元素分別與所述邏輯與運(yùn)算的結(jié)果進(jìn)行邏輯異或運(yùn)算,得到移位結(jié)果,將所述移位結(jié)果分別存儲到當(dāng)前對應(yīng)位置的后一位。優(yōu)選地,所述按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與所述第一移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算的具體過程為分別將所述第三移位寄存器和第四移位寄存器中從第二位開始相同位置中的元素分別進(jìn)行邏輯異或運(yùn)算;將所述邏輯異或運(yùn)算的結(jié)果分別與所述第一移位寄存器中最右一位中的元素進(jìn)行邏輯與運(yùn)算;將所述邏輯與運(yùn)算的結(jié)果與已存儲的初始值為0的結(jié)果矩陣中的元素進(jìn)行邏輯異或運(yùn)算,并將運(yùn)算結(jié)果替代原來結(jié)果矩陣中的元素。一種乘法器控制方法,所述乘法器具有左對齊倒序存儲第一矩陣中元素的第一移位寄存器;左對齊倒序存儲第二矩陣中元素的第二移位寄存器;包括相連的第三移位寄存器和第四移位寄存器的級聯(lián)移位寄存器,所述第三移位寄存器和第四移位寄存器分別右對齊正序存儲所述第二相乘矩陣中的元素,其余的位置存儲0值;所述方法包括計(jì)算出II型優(yōu)化正規(guī)基表示的矩陣中的元素與預(yù)設(shè)的基表示的矩陣中的元素間對應(yīng)的位置信息,并依據(jù)所述位置信息,將待變換矩陣中的元素選擇到相應(yīng)的位置,以完成所述第一矩陣和第二矩陣分別由II型優(yōu)化正規(guī)基的表達(dá)形式變換到以預(yù)設(shè)的基表達(dá)的形式;在外部開始信號觸發(fā)下,依據(jù)所述第一矩陣的長度生成移位控制信號指示所述第一、二移位寄存器將存儲的矩陣元素右對齊,并且,按照預(yù)設(shè)的第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位;在每個(gè)時(shí)鐘周期內(nèi),控制所述第一、二移位寄存器中的元素右移一位,且根據(jù)所述第一規(guī)則將所述級聯(lián)移位寄存器中的元素右移一位,并按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與所述第一移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算;當(dāng)所述時(shí)鐘周期的個(gè)數(shù)等于所述第一矩陣的長度值時(shí),控制運(yùn)算停止,得到結(jié)果矩陣中的元素值;將所述結(jié)果矩陣中的元素值變換到以II型優(yōu)化正規(guī)基表達(dá)的形式。一種乘法器,包括左對齊倒序存儲第一矩陣中元素的第一移位寄存器;左對齊倒序存儲第二矩陣中元素的第二移位寄存器;包括相連的第三移位寄存器和第四移位寄存器的級聯(lián)移位寄存器,所述第三移位寄存器和第四移位寄存器分別右對齊正序存儲所述第二相乘矩陣中的元素,其余的位置存儲0值;在外部開始信號觸發(fā)下,依據(jù)所述第一矩陣的長度生成移位控制信號指示第一、 二移位寄存器將存儲的矩陣元素右對齊,并且,按照預(yù)設(shè)第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位;以及,在每個(gè)時(shí)鐘周期內(nèi),控制所述第一、二移位寄存器右移一位元素,且根據(jù)所述第一規(guī)則將所述級聯(lián)移位寄存器中的元素右移一位,并按照預(yù)設(shè)的第二規(guī)貝U,將移位后的級聯(lián)移位寄存器中的元素與所述第一桶形移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算;當(dāng)所述時(shí)鐘周期的個(gè)數(shù)等于所述長度信號的值時(shí),控制運(yùn)算停止,以得到結(jié)果矩陣中的元素值的控制單元。優(yōu)選地,還包括
6
與所述第四移位寄存器中的除最右一位外一一對應(yīng)的移位運(yùn)算模塊,所述移位運(yùn)算模塊包括將依據(jù)所述第一矩陣的長度生成的數(shù)據(jù)路徑控制信號與所述第二移位寄存器的最右一位中的元素進(jìn)行邏輯與運(yùn)算的邏輯與運(yùn)算單元;將所述第四移位寄存器對應(yīng)位置中的元素與所述邏輯與運(yùn)算的結(jié)果進(jìn)行邏輯異或運(yùn)算,得到移位結(jié)果,將所述移位結(jié)果存儲到對應(yīng)位置的后一位的邏輯異或運(yùn)算單元。優(yōu)選地,還包括與所述第三移位寄存器中從第二位開始一一對應(yīng)的模乘運(yùn)算模塊,包括,將所述第三移位寄存器和第四移位寄存器中相同位置中的元素分別進(jìn)行邏輯異或運(yùn)算的第一邏輯異或運(yùn)算單元;將所述邏輯異或運(yùn)算的結(jié)果與所述第一移位寄存器中最右一位中的元素進(jìn)行邏輯與運(yùn)算的邏輯與運(yùn)算單元;將所述邏輯與運(yùn)算的結(jié)果與已存儲的初始值為0的結(jié)果矩陣中的元素進(jìn)行邏輯異或運(yùn)算,并將運(yùn)算結(jié)果替代原來結(jié)果矩陣中的元素的第二邏輯異或運(yùn)算單元。一種乘法器,包括基變換電路,用于計(jì)算出II型優(yōu)化正規(guī)基表示的矩陣中的元素與預(yù)設(shè)的基表示的矩陣中的元素間對應(yīng)的位置信息,并依據(jù)所述位置信息,將待變換矩陣中的元素選擇到相應(yīng)的位置,以完成所述待變換矩陣在II型優(yōu)化正規(guī)基與預(yù)設(shè)的基之間的變換;如前所述的乘法器,用于完成所述預(yù)設(shè)的基表示的第一矩陣和第二矩陣間的乘法運(yùn)算。優(yōu)選地,所述基變換電路包括計(jì)算出II型優(yōu)化正規(guī)基表示的矩陣中的元素與預(yù)設(shè)的基表示的矩陣中的元素間對應(yīng)的位置信息的微處理器;用于依據(jù)所述位置信息,將待變換矩陣中的元素選擇到相應(yīng)的位置,以完成所述待變換矩陣在II型優(yōu)化正規(guī)基與預(yù)設(shè)的基之間變換的變換電路。優(yōu)選地,所述變換電路包括存儲待變換的矩陣中的元素的存儲寄存器;接收所述計(jì)算出的II型優(yōu)化正規(guī)基表示的矩陣中的元素與預(yù)設(shè)的基表示的矩陣中的元素間對應(yīng)的位置信息的配置寄存器;依據(jù)所述位置信息,將待變換矩陣中的元素選擇到相應(yīng)的位置,以完成所述待變換矩陣在II型優(yōu)化正規(guī)基與預(yù)設(shè)的基之間的變換的多路選擇器。本發(fā)明實(shí)施例公開的乘法器及其控制方法,將不同數(shù)據(jù)長度的乘法運(yùn)算都設(shè)計(jì)在一個(gè)電路中實(shí)現(xiàn),克服了現(xiàn)有的乘法器都只能支持一種數(shù)據(jù)長度的乘法運(yùn)算的缺點(diǎn),實(shí)現(xiàn)了乘法器的可配置性,有效地提升了乘法器的靈活性。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例公開的一種乘法器控制方法流程圖;圖2為本發(fā)明實(shí)施例公開的又一種乘法器控制方法流程圖;圖3為本發(fā)明實(shí)施例公開的一種乘法器結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例公開的又一種乘法器中基變換電路的結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例公開的又一種乘法器中基變換電路中變換電路的結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明公開的乘法器,設(shè)置于多個(gè)移位寄存器及與所述移位寄存器相對應(yīng)的運(yùn)算網(wǎng)絡(luò),目的在于為對不同矩陣長度乘法運(yùn)算提供硬件支持,而公開的乘法器控制方法,通過控制乘法器中的移位寄存器循環(huán)移位及矩陣元素的并行算法,實(shí)現(xiàn)了使所述乘法器進(jìn)行不同長度的乘法運(yùn)算的目的。下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明公開的一種乘法器控制方法,所述乘法器具有左對齊倒序存儲第一矩陣中元素的第一移位寄存器,左對齊倒序存儲第二矩陣中元素的第二移位寄存器,包括相連的第三移位寄存器和第四移位寄存器的級聯(lián)移位寄存器,所述第三移位寄存器和第四移位寄存器都分別右對齊正序存儲所述第二相乘矩陣中的元素,其余的位置存儲0值;其中,所述第一矩陣和第二矩陣的長度小于或等于第一、第二寄存器的長度,且小于第三、第四移位寄存器的長度。例如,第一、第二移位寄存器的長度為384比特,第三、第四移位寄存器的長度為385比特,當(dāng)?shù)谝?、第二矩陣的長度為384比特時(shí),與現(xiàn)有的固定長度的乘法器的運(yùn)算原理相同,而當(dāng)?shù)谝弧⒌诙仃嚨拈L度為300比特時(shí),使用所述乘法器仍然能夠進(jìn)行乘法運(yùn)算,如圖1所示,所述方法包括步驟SlOl 在外部開始信號觸發(fā)下,依據(jù)所述第一矩陣的長度生成的移位控制信號分別指示所述第一、二移位寄存器將存儲的矩陣元素右對齊,并且,按照預(yù)設(shè)的第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位;其中移位控制信號包含的移位長度值具體為第一或第二移位寄存器的長度減去第一或第二矩陣的長度后的數(shù)值。這里的一位就是1比特,是寄存器的最小存儲單元。此步驟可以看作是乘法器的初始化過程,也是所述乘法器能夠計(jì)算小于寄存器長度的矩陣間的乘法計(jì)算的不可缺少的步驟,當(dāng)所述第一、第二矩陣的長度小于第一、第二移位寄存器的長度時(shí),通過初始化過程中的移位,使第一、第二矩陣的有效元素與其所在的寄存器右對齊,使得有效元素參與計(jì)算。S102:在每個(gè)時(shí)鐘周期內(nèi),控制所述第一、二移位寄存器中的元素右移一位,且根據(jù)所述第一規(guī)則將所述級聯(lián)移位寄存器中的元素右移一位,并按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與所述第一移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算;此步驟為每個(gè)時(shí)鐘周期內(nèi)的移位過程,也是本發(fā)明構(gòu)思下不可或缺的步驟,此步驟中的移位過程,保證了乘法計(jì)算的準(zhǔn)確性。S103:當(dāng)所述時(shí)鐘周期的個(gè)數(shù)等于所述第一矩陣的長度值時(shí),停止運(yùn)算,得到結(jié)果矩陣中的元素值。本實(shí)施例公開的方法,通過對乘法器中多個(gè)移位寄存器的控制,實(shí)現(xiàn)了使用一種長度的乘法器來計(jì)算不同長度的矩陣乘法。進(jìn)一步地,本實(shí)施例中,所述按照預(yù)設(shè)的第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位的過程具體為將依據(jù)所述第一矩陣的長度生成的數(shù)據(jù)路徑控制信號與所述第二移位寄存器的最右一位中的元素進(jìn)行邏輯與運(yùn)算;數(shù)據(jù)路徑控制信號與第一矩陣的長度之間的關(guān)系為
Datapath _ctl = J 000---00,1,0—001其中Datapath_Ctl為數(shù)據(jù)路徑控制信號,length為第一矩陣的長度。將所述第四移位寄存器中除最右一位外的每個(gè)位置中的元素分別與所述邏輯與運(yùn)算的結(jié)果進(jìn)行邏輯異或運(yùn)算,得到移位結(jié)果,將所述移位結(jié)果分別存儲到當(dāng)前對應(yīng)位置的后一位。其中,將依據(jù)所述第一矩陣的長度生成的數(shù)據(jù)路徑控制信號與所述第二移位寄存器的最右一位中的元素進(jìn)行邏輯與運(yùn)算,將所述第四移位寄存器中除最右一位外的每個(gè)位置中的元素分別與所述邏輯與運(yùn)算的結(jié)果進(jìn)行邏輯異或運(yùn)算,得到移位結(jié)果,可以用表達(dá)式表示為
b,=b,.i 十( & Datapath—ctl[/-l])I3i為移位結(jié)果,Iv1為所述第四移位寄存器中除最右一位外的每個(gè)位置中的元素, bj為所述第二移位寄存器的最右一位中的元素,Datapath_Ctl為依據(jù)所述第一矩陣的長度生成的數(shù)據(jù)路徑控制信號。因?yàn)榈谒囊莆患拇嫫髋c第三移位寄存器是級聯(lián)的,所以當(dāng)?shù)谒囊莆患拇嫫髦械脑剡M(jìn)行移位的同時(shí),第三移位寄存器中的元素也要隨之相應(yīng)地移位,但是第三移位寄存器的移位只是簡單的連動(dòng)反應(yīng),并不涉及特定的規(guī)則。按上述過程進(jìn)行的級聯(lián)移位,為保證不同長度的乘法的正確運(yùn)算奠定了基礎(chǔ)。進(jìn)一步地,本實(shí)施例中,所述按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與所述第一移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算的具體過程為將所述第三移位寄存器和第四移位寄存器中從第二位開始相同位置中的元素分別進(jìn)行邏輯異或運(yùn)算;具體過程為從第二位開始,第三移位寄存器中的第二位對應(yīng)第四移位寄存器中的第二位,依次類推建立相同位置中元素間的對應(yīng)關(guān)系,再分別將兩個(gè)對應(yīng)位置中存儲的元素進(jìn)行邏輯異或運(yùn)算。將所述邏輯異或運(yùn)算的結(jié)果分別與所述第一移位寄存器中最右一位中的元素進(jìn)行邏輯與運(yùn)算;
9
將所述邏輯與運(yùn)算的結(jié)果與已存儲的初始值為0的結(jié)果矩陣中的元素進(jìn)行邏輯異或運(yùn)算,并將運(yùn)算結(jié)果替代原來結(jié)果矩陣中的元素。這種模乘運(yùn)算方法,采用了并行計(jì)算的模式,有效地減小了算法復(fù)雜度,同時(shí)降低了硬件實(shí)現(xiàn)的難度。在本實(shí)施例中,在基本步驟的基礎(chǔ)上,可以分別單獨(dú)采用上述限定的按照預(yù)設(shè)的第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位的方法或按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與所述第一移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算的方法,也可以兩者都采用。矩陣間的乘法運(yùn)算與矩陣的表達(dá)形式有著一定的關(guān)系,對于表達(dá)形式簡單的矩陣的運(yùn)算也更簡單,因此在上述實(shí)施例的基礎(chǔ)上,在進(jìn)行乘法前,可以將矩陣變換到一種簡單而又規(guī)律的表達(dá)形式,計(jì)算完后再變回原來的形式。本發(fā)明公開的又一種乘法器控制方法,所述乘法器具有左對齊倒序存儲第一矩陣中元素的第一移位寄存器;左對齊倒序存儲第二矩陣中元素的第二移位寄存器;包括相連的第三移位寄存器和第四移位寄存器的級聯(lián)移位寄存器,所述第三移位寄存器和第四移位寄存器分別右對齊正序存儲所述第二相乘矩陣中的元素,其余的位置存儲0值;如圖2所示,所述方法包括以下步驟S201 計(jì)算出II型優(yōu)化正規(guī)基表示的矩陣中的元素與預(yù)設(shè)的基表示的矩陣中的元素間對應(yīng)的位置信息,并依據(jù)所述位置信息,將待變換矩陣中的元素選擇到相應(yīng)的位置, 以完成所述第一矩陣和第二矩陣分別由II型優(yōu)化正規(guī)基的表達(dá)形式變換到以預(yù)設(shè)的基表達(dá)的形式;其中,預(yù)設(shè)的基可以優(yōu)選但并不限于標(biāo)準(zhǔn)基的移位形式M'。S202 在外部開始信號觸發(fā)下,依據(jù)所述第一矩陣的長度生成移位控制信號指示所述第一、二移位寄存器將存儲的矩陣元素右對齊,并且,按照預(yù)設(shè)的第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位;在每個(gè)時(shí)鐘周期內(nèi),控制所述第一、二移位寄存器中的元素右移一位,且根據(jù)所述第一規(guī)則將所述級聯(lián)移位寄存器中的元素右移一位,并按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與所述第一移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算;當(dāng)所述時(shí)鐘周期的個(gè)數(shù)等于所述第一矩陣的長度值時(shí),控制運(yùn)算停止,得到結(jié)果矩陣中的元素值;S203 將所述結(jié)果矩陣中的元素值變換到以II型優(yōu)化正規(guī)基表達(dá)的形式。本實(shí)施例公開的方法,具體到針對以II型優(yōu)化正規(guī)基表達(dá)的不同長度矩陣的乘法運(yùn)算,與上述實(shí)施例相比,增加了矩陣基變換的過程,將由II型優(yōu)化正規(guī)基表達(dá)的矩陣轉(zhuǎn)換到預(yù)設(shè)的基表達(dá)的形式,使得變換后的矩陣具有規(guī)律的表達(dá)形式,以便于后續(xù)的乘法運(yùn)算。與上述乘法器控制方法相對應(yīng)的乘法器也可以有兩種形式本發(fā)明公開的一種乘法器,包括左對齊倒序存儲第一矩陣中元素的第一移位寄存器;左對齊倒序存儲第二矩陣中元素的第二移位寄存器;包括相連的第三移位寄存器和第四移位寄存器的級聯(lián)移位寄存器,所述第三移位寄存器和第四移位寄存器分別右對齊正序存儲所述第二相乘矩陣中的元素,其余的位置存儲0值;在外部開始信號觸發(fā)下,依據(jù)所述第一矩陣的長度生成移位控制信號指示第一、 二移位寄存器將存儲的矩陣元素右對齊,并且,根按照預(yù)設(shè)第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位;以及,在每個(gè)時(shí)鐘周期內(nèi),控制所述第一、二移位寄存器右移一位元素,且根據(jù)所述第一規(guī)則將所述級聯(lián)移位寄存器中的元素右移一位,并按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與所述第一桶形移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算;當(dāng)所述時(shí)鐘周期的個(gè)數(shù)等于所述長度信號的值時(shí),控制運(yùn)算停止,以得到結(jié)果矩陣中的元素值的控制單元。進(jìn)一步地,本實(shí)施例中的乘法器還包括與所述第四移位寄存器中的除最右一位外一一對應(yīng)的移位運(yùn)算模塊,所述移位運(yùn)算模塊包括將依據(jù)所述第一矩陣的長度生成的數(shù)據(jù)路徑控制信號與所述第二移位寄存器的最右一位中的元素進(jìn)行邏輯與運(yùn)算的邏輯與運(yùn)算單元;將所述第四移位寄存器對應(yīng)位置中的元素與所述邏輯與運(yùn)算的結(jié)果進(jìn)行邏輯異或運(yùn)算,得到移位結(jié)果,將所述移位結(jié)果存儲到對應(yīng)位置的后一位的邏輯異或運(yùn)算單元。所述移位運(yùn)算模塊在控制單元的控制下,完成級聯(lián)移位的過程,為不同長度的乘法運(yùn)算提供了硬件的支持。進(jìn)一步地,本實(shí)施例中的乘法器還包括與所述第三移位寄存器中從第二位開始一一對應(yīng)的模乘運(yùn)算模塊,包括,將所述第三移位寄存器和第四移位寄存器中相同位置中的元素分別進(jìn)行邏輯異或運(yùn)算的第一邏輯異或運(yùn)算單元;將所述邏輯異或運(yùn)算的結(jié)果與所述第一移位寄存器中最右一位中的元素進(jìn)行邏輯與運(yùn)算的邏輯與運(yùn)算單元;將所述邏輯與運(yùn)算的結(jié)果與已存儲的初始值為0的結(jié)果矩陣中的元素進(jìn)行邏輯異或運(yùn)算,并將運(yùn)算結(jié)果替代原來結(jié)果矩陣中的元素的第二邏輯異或運(yùn)算單元。所述模乘運(yùn)算模塊與第三移位寄存器中的元素一一對應(yīng),可實(shí)現(xiàn)并行算法。上述限定的移位運(yùn)算模塊和模乘運(yùn)算模塊均為實(shí)現(xiàn)乘法器功能的優(yōu)選方式,本實(shí)施例中,可以分別單獨(dú)選用其一,也可以同時(shí)選用。兩者同時(shí)選用為本發(fā)明最優(yōu)的實(shí)施方式,如圖3所示,乘法器包括第一移位寄存器301、第二移位寄存器302、第三移位寄存器 303、第四移位寄存器304、控制單元305、移位運(yùn)算模塊306和模乘運(yùn)算模塊307。在上述實(shí)施例的基礎(chǔ)上,乘法器還可包括用于進(jìn)行基變換的電路。本發(fā)明公開的又一種乘法器,包括基變換電路,用于計(jì)算出II型優(yōu)化正規(guī)基表示的矩陣中的元素與預(yù)設(shè)的基表示的矩陣中的元素間對應(yīng)的位置信息,并依據(jù)所述位置信息,將待變換矩陣中的元素選擇到相應(yīng)的位置,以完成所述待變換矩陣在II型優(yōu)化正規(guī)基與預(yù)設(shè)的基之間的變換;如上述實(shí)施例所述的乘法器,用于完成所述預(yù)設(shè)的基表示的第一矩陣和第二矩陣間的乘法運(yùn)算。本實(shí)施例與上述實(shí)施例相比,增加了用于實(shí)現(xiàn)基變換的電路,使乘法運(yùn)算更簡便, 乘法器的結(jié)構(gòu)更簡單。進(jìn)一步地,本實(shí)施例所述的乘法器中,如圖4所示,所述基變換電路包括計(jì)算出II型優(yōu)化正規(guī)基表示的矩陣中的元素與預(yù)設(shè)的基表示的矩陣中的元素間對應(yīng)的位置信息的微處理器401 ;用于依據(jù)所述位置信息,將待變換矩陣中的元素選擇到相應(yīng)的位置,以完成所述待變換矩陣在II型優(yōu)化正規(guī)基與預(yù)設(shè)的基之間變換的變換電路402。其中,所述變換電路如圖5所示,包括存儲待變換的矩陣中的元素的存儲寄存器501 ;接收所述計(jì)算出的II型優(yōu)化正規(guī)基表示的矩陣中的元素與預(yù)設(shè)的基表示的矩陣中的元素間對應(yīng)的位置信息的配置寄存器502 ;依據(jù)所述位置信息,將待變換矩陣中的元素選擇到相應(yīng)的位置,以完成所述待變換矩陣在II型優(yōu)化正規(guī)基與預(yù)設(shè)的基之間的變換的多路選擇器503。這里將基變換電路的硬件結(jié)構(gòu)細(xì)致劃分,實(shí)現(xiàn)了電路結(jié)構(gòu)的模塊化,更易于應(yīng)用和實(shí)現(xiàn)。本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同或相似部分互相參見即可。對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
權(quán)利要求
1.一種乘法器控制方法,其特征在于,所述乘法器具有左對齊倒序存儲第一矩陣中元素的第一移位寄存器;左對齊倒序存儲第二矩陣中元素的第二移位寄存器;包括相連的第三移位寄存器和第四移位寄存器的級聯(lián)移位寄存器,所述第三移位寄存器和第四移位寄存器分別右對齊正序存儲所述第二相乘矩陣中的元素,其余的位置存儲0值;所述方法包括在外部開始信號觸發(fā)下,依據(jù)所述第一矩陣的長度生成的移位控制信號指示所述第一、二移位寄存器將存儲的矩陣元素右對齊,并且,按照預(yù)設(shè)的第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位;在每個(gè)時(shí)鐘周期內(nèi),控制所述第一、二移位寄存器中的元素右移一位,且根據(jù)所述第一規(guī)則將所述級聯(lián)移位寄存器中的元素右移一位,并按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與所述第一移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算;當(dāng)所述時(shí)鐘周期的個(gè)數(shù)等于所述第一矩陣的長度值時(shí),控制運(yùn)算停止,得到結(jié)果矩陣中的元素值。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按照預(yù)設(shè)的第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位的過程具體為將依據(jù)所述第一矩陣的長度生成的數(shù)據(jù)路徑控制信號與所述第二移位寄存器的最右一位中的元素進(jìn)行邏輯與運(yùn)算;將所述第四移位寄存器中除最右一位外的每個(gè)位置中的元素分別與所述邏輯與運(yùn)算的結(jié)果進(jìn)行邏輯異或運(yùn)算,得到移位結(jié)果,將所述移位結(jié)果分別存儲到當(dāng)前對應(yīng)位置的后一位。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與所述第一移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算的具體過程為分別將所述第三移位寄存器和第四移位寄存器中從第二位開始相同位置中的元素分別進(jìn)行邏輯異或運(yùn)算;將所述邏輯異或運(yùn)算的結(jié)果分別與所述第一移位寄存器中最右一位中的元素進(jìn)行邏輯與運(yùn)算;將所述邏輯與運(yùn)算的結(jié)果與已存儲的初始值為0的結(jié)果矩陣中的元素進(jìn)行邏輯異或運(yùn)算,并將運(yùn)算結(jié)果替代原來結(jié)果矩陣中的元素。
4.一種乘法器控制方法,其特征在于,所述乘法器具有左對齊倒序存儲第一矩陣中元素的第一移位寄存器;左對齊倒序存儲第二矩陣中元素的第二移位寄存器;包括相連的第三移位寄存器和第四移位寄存器的級聯(lián)移位寄存器,所述第三移位寄存器和第四移位寄存器分別右對齊正序存儲所述第二相乘矩陣中的元素,其余的位置存儲0值;所述方法包括計(jì)算出II型優(yōu)化正規(guī)基表示的矩陣中的元素與預(yù)設(shè)的基表示的矩陣中的元素間對應(yīng)的位置信息,并依據(jù)所述位置信息,將待變換矩陣中的元素選擇到相應(yīng)的位置,以完成所述第一矩陣和第二矩陣分別由II型優(yōu)化正規(guī)基的表達(dá)形式變換到以預(yù)設(shè)的基表達(dá)的形式;在外部開始信號觸發(fā)下,依據(jù)所述第一矩陣的長度生成移位控制信號指示所述第一、 二移位寄存器將存儲的矩陣元素右對齊,并且,按照預(yù)設(shè)的第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位;在每個(gè)時(shí)鐘周期內(nèi),控制所述第一、二移位寄存器中的元素右移一位,且根據(jù)所述第一規(guī)則將所述級聯(lián)移位寄存器中的元素右移一位,并按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與所述第一移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算;當(dāng)所述時(shí)鐘周期的個(gè)數(shù)等于所述第一矩陣的長度值時(shí),控制運(yùn)算停止,得到結(jié)果矩陣中的元素值;將所述結(jié)果矩陣中的元素值變換到以II型優(yōu)化正規(guī)基表達(dá)的形式。
5.一種乘法器,其特征在于,包括左對齊倒序存儲第一矩陣中元素的第一移位寄存器;左對齊倒序存儲第二矩陣中元素的第二移位寄存器;包括相連的第三移位寄存器和第四移位寄存器的級聯(lián)移位寄存器,所述第三移位寄存器和第四移位寄存器分別右對齊正序存儲所述第二相乘矩陣中的元素,其余的位置存儲0 值;在外部開始信號觸發(fā)下,依據(jù)所述第一矩陣的長度生成移位控制信號指示第一、二移位寄存器將存儲的矩陣元素右對齊,并且,按照預(yù)設(shè)第一規(guī)則控制所述級聯(lián)移位寄存器中的元素右移一位;以及,在每個(gè)時(shí)鐘周期內(nèi),控制所述第一、二移位寄存器右移一位元素,且根據(jù)所述第一規(guī)則將所述級聯(lián)移位寄存器中的元素右移一位,并按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與所述第一桶形移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算;當(dāng)所述時(shí)鐘周期的個(gè)數(shù)等于所述長度信號的值時(shí),控制運(yùn)算停止,以得到結(jié)果矩陣中的元素值的控制單元。
6.根據(jù)權(quán)利要求5所述的乘法器,其特征在于,還包括與所述第四移位寄存器中的除最右一位外一一對應(yīng)的移位運(yùn)算模塊,所述移位運(yùn)算模塊包括將依據(jù)所述第一矩陣的長度生成的數(shù)據(jù)路徑控制信號與所述第二移位寄存器的最右一位中的元素進(jìn)行邏輯與運(yùn)算的邏輯與運(yùn)算單元;將所述第四移位寄存器對應(yīng)位置中的元素與所述邏輯與運(yùn)算的結(jié)果進(jìn)行邏輯異或運(yùn)算,得到移位結(jié)果,將所述移位結(jié)果存儲到對應(yīng)位置的后一位的邏輯異或運(yùn)算單元。
7.根據(jù)權(quán)利要求5所述的乘法器,其特征在于,還包括與所述第三移位寄存器中從第二位開始一一對應(yīng)的模乘運(yùn)算模塊,包括將所述第三移位寄存器和第四移位寄存器中相同位置中的元素分別進(jìn)行邏輯異或運(yùn)算的第一邏輯異或運(yùn)算單元;將所述邏輯異或運(yùn)算的結(jié)果與所述第一移位寄存器中最右一位中的元素進(jìn)行邏輯與運(yùn)算的邏輯與運(yùn)算單元;將所述邏輯與運(yùn)算的結(jié)果與已存儲的初始值為0的結(jié)果矩陣中的元素進(jìn)行邏輯異或運(yùn)算,并將運(yùn)算結(jié)果替代原來結(jié)果矩陣中的元素的第二邏輯異或運(yùn)算單元。
8.—種乘法器,其特征在于,包括基變換電路,用于計(jì)算出II型優(yōu)化正規(guī)基表示的矩陣中的元素與預(yù)設(shè)的基表示的矩陣中的元素間對應(yīng)的位置信息,并依據(jù)所述位置信息,將待變換矩陣中的元素選擇到相應(yīng)的位置,以完成所述待變換矩陣在II型優(yōu)化正規(guī)基與預(yù)設(shè)的基之間的變換;如權(quán)利要求5所述的乘法器,用于完成所述預(yù)設(shè)的基表示的第一矩陣和第二矩陣間的乘法運(yùn)算。
9.根據(jù)權(quán)利要求8所述的乘法器,其特征在于,所述基變換電路包括,計(jì)算出II型優(yōu)化正規(guī)基表示的矩陣中的元素與預(yù)設(shè)的基表示的矩陣中的元素間對應(yīng)的位置信息的微處理器;用于依據(jù)所述位置信息,將待變換矩陣中的元素選擇到相應(yīng)的位置,以完成所述待變換矩陣在II型優(yōu)化正規(guī)基與預(yù)設(shè)的基之間變換的變換電路。
10.根據(jù)權(quán)利要求9所述的乘法器,其特征在于,所述變換電路包括 存儲待變換的矩陣中的元素的存儲寄存器;接收所述計(jì)算出的II型優(yōu)化正規(guī)基表示的矩陣中的元素與預(yù)設(shè)的基表示的矩陣中的元素間對應(yīng)的位置信息的配置寄存器;依據(jù)所述位置信息,將待變換矩陣中的元素選擇到相應(yīng)的位置,以完成所述待變換矩陣在II型優(yōu)化正規(guī)基與預(yù)設(shè)的基之間的變換的多路選擇器。
全文摘要
本發(fā)明公開了一種乘法器及其控制方法,所述乘法器具有第一移位寄存器、第二移位寄存器、和級聯(lián)移位寄存器;在外部開始信號觸發(fā)下,依據(jù)相乘矩陣的長度生成的移位控制信號指示第一、二移位寄存器將存儲的元素右對齊,按照預(yù)設(shè)的第一規(guī)則控制級聯(lián)移位寄存器中的元素右移一位;在每個(gè)時(shí)鐘周期內(nèi),控制第一、二移位寄存器中的元素右移一位,且根據(jù)第一規(guī)則將級聯(lián)移位寄存器中的元素右移一位,并按照預(yù)設(shè)的第二規(guī)則,將移位后的級聯(lián)移位寄存器中的元素與第一移位寄存器中最右端的元素進(jìn)行模乘運(yùn)算;當(dāng)所述時(shí)鐘周期的個(gè)數(shù)等于相乘矩陣的長度值時(shí),控制運(yùn)算停止,得到結(jié)果矩陣中的元素值。該方法控制的乘法器實(shí)現(xiàn)了不同長度的矩陣的乘法運(yùn)算。
文檔編號H04L9/00GK102510329SQ201110304520
公開日2012年6月20日 申請日期2011年9月29日 優(yōu)先權(quán)日2011年9月29日
發(fā)明者劉建國, 徐金甫, 戴紫彬, 李淼, 楊同杰, 楊曉輝, 陳琳, 陳韜 申請人:中國人民解放軍信息工程大學(xué)