專利名稱:一種實(shí)現(xiàn)矢量運(yùn)算的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及芯片設(shè)計(jì)技術(shù),具體涉及一種實(shí)現(xiàn)矢量運(yùn)算的方法和系統(tǒng)。
背景技術(shù):
矢量處理器(vector processor)的最大特點(diǎn)就是能通過(guò)多個(gè)運(yùn)算單元對(duì)多個(gè)數(shù)據(jù)進(jìn)行并行運(yùn)算。這些數(shù)據(jù)可以是實(shí)數(shù),也可以是復(fù)數(shù)。矢量處理器的一個(gè)重要性能指標(biāo)是數(shù)據(jù)吞吐率,因此如何在固定數(shù)量運(yùn)算單元的基礎(chǔ)上提高數(shù)據(jù)運(yùn)算吞吐率,是個(gè)很熱門的研究課題。傳統(tǒng)的矢量運(yùn)算單元一般支持實(shí)數(shù)乘加、復(fù)數(shù)乘加、實(shí)數(shù)乘累加、復(fù)數(shù)乘累加,但是不同時(shí)支持高效率的快速傅里葉(Fast-Fourier Transform, FFT)蝶形運(yùn)算。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種實(shí)現(xiàn)矢量運(yùn)算的方法和系統(tǒng),以便在兼容實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算的同時(shí),還能夠支持FFT蝶形運(yùn)算。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種實(shí)現(xiàn)矢量運(yùn)算的方法,該方法包括通過(guò)三階運(yùn)算器的組合實(shí)現(xiàn)實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算;其中,所述三階運(yùn)算器的第一階段為兩個(gè)乘法器,第二階段為一個(gè)加法器,第三階段為兩個(gè)具有累加功能的加法器;通過(guò)所述三階運(yùn)算器實(shí)現(xiàn)實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算的同時(shí),應(yīng)用所述三階運(yùn)算器實(shí)現(xiàn)FFT蝶形運(yùn)算。所述FFT蝶形運(yùn)算是通過(guò)實(shí)部運(yùn)算與虛部運(yùn)算相結(jié)合實(shí)現(xiàn)的;其中,Xl = C+AB ;(Ia)X2 = C-AB ;(Ib)其中,A、B和C都是復(fù)數(shù)矢量,B是旋轉(zhuǎn)因子。所述實(shí)部運(yùn)算的過(guò)程包括通過(guò)第一階段的兩個(gè)乘法器,計(jì)算出A的實(shí)部Ar與B的實(shí)部Br相乘的結(jié)果ArBr,以及A的虛部Ai與B的虛部Bi相乘的結(jié)果AiBi ;通過(guò)第二階段的加法器計(jì)算得到ArBr-AiBi并送入第三階段的兩個(gè)加法器,用于與C的實(shí)部Cr相加得到蝶形運(yùn)算中一個(gè)分支的實(shí)部Cr+(ArBr-AiBi),還用于相減以得到蝶形運(yùn)算中另一個(gè)分支的實(shí)部Cr- (ArBr-AiBi);所述虛部運(yùn)算的過(guò)程包括通過(guò)第一階段的兩個(gè)乘法器,計(jì)算出A的實(shí)部Ar與B的虛部Bi相乘的結(jié)果ArBi,以及A的虛部Ai與B的實(shí)部Br相乘的結(jié)果AiBr ;通過(guò)第二階段的加法器計(jì)算得到ArBi+AiBr并送入第三階段兩個(gè)加法器,用于與C的虛部Ci相加得到蝶形運(yùn)算中一個(gè)分支的實(shí)部Ci+(ArBi+AiBr),還用于相減以得到蝶形運(yùn)算中另一個(gè)分支的虛部Ci-(ArBi+AiBr)。所述累加,是通過(guò)將第三階段中加法器的輸出以循環(huán)反饋的方式重新輸入該加法器實(shí)現(xiàn)的。該方法進(jìn)一步包括將第二階段加法器輸出端的一個(gè)寄存器分別分置到第三階段兩個(gè)加法器的輸入端;和/或,將第三階段加法器輸出端的兩個(gè)寄存器分別反饋到第三階段兩個(gè)加法器的輸入端。一種實(shí)現(xiàn)矢量運(yùn)算的系統(tǒng),該系統(tǒng)包括三階運(yùn)算器,用于通過(guò)三階運(yùn)算器的組合 實(shí)現(xiàn)實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算;并且,在通過(guò)所述三階運(yùn)算器實(shí)現(xiàn)實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算的同時(shí),應(yīng)用所述三階運(yùn)算器實(shí)現(xiàn)FFT蝶形運(yùn)算;其中,所述三階運(yùn)算器的第一階段為兩個(gè)乘法器,第二階段為一個(gè)加法器,第三階段為兩個(gè)具有累加功能的加法器。所述三階運(yùn)算器,具體用于通過(guò)實(shí)部運(yùn)算與虛部運(yùn)算相結(jié)合實(shí)現(xiàn)所述FFT蝶形運(yùn)算;其中,Xl = C+AB ;(Ia)X2 = C-AB ;(Ib)其中,A、B和C都是復(fù)數(shù)矢量,B是旋轉(zhuǎn)因子。所述三階運(yùn)算器在進(jìn)行實(shí)部運(yùn)算時(shí),具體用于通過(guò)第一階段的兩個(gè)乘法器,計(jì)算出A的實(shí)部Ar與B的實(shí)部Br相乘的結(jié)果ArBr,以及A的虛部Ai與B的虛部Bi相乘的結(jié)果AiBi ;通過(guò)第二階段的加法器計(jì)算得到ArBr-AiBi并送入第三階段的兩個(gè)加法器,用于與C的實(shí)部Cr相加得到蝶形運(yùn)算中一個(gè)分支的實(shí)部Cr+(ArBr-AiBi),還用于相減以得到蝶形運(yùn)算中另一個(gè)分支的實(shí)部Cr- (ArBr-AiBi);所述三階運(yùn)算器在進(jìn)行虛部運(yùn)算時(shí),具體用于通過(guò)第一階段的兩個(gè)乘法器,計(jì)算出A的實(shí)部Ar與B的虛部Bi相乘的結(jié)果ArBi,以及A的虛部Ai與B的實(shí)部Br相乘的結(jié)果AiBr ;通過(guò)第二階段的加法器計(jì)算得到ArBi+AiBr并送入第三階段兩個(gè)加法器,用于與C的虛部Ci相加得到蝶形運(yùn)算中一個(gè)分支的實(shí)部Ci+(ArBi+AiBr),還用于相減以得到蝶形運(yùn)算中另一個(gè)分支的虛部Ci-(ArBi+AiBr)。所述三階運(yùn)算器的第三階段,具體用于將其中加法器的輸出以循環(huán)反饋的方式重新輸入所述加法器,以實(shí)現(xiàn)所述累加。所述第二階段的加法器輸出端的一個(gè)寄存器分別分置到第三階段兩個(gè)加法器的輸入端;和/或,所述第三階段的加法器輸出端的兩個(gè)寄存器分別反饋到第三階段兩個(gè)加法器的輸入端。本發(fā)明實(shí)現(xiàn)矢量運(yùn)算的方法和系統(tǒng),能夠兼容實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算,并同時(shí)支持高效率的FFT蝶形運(yùn)算。
圖I為本發(fā)明一實(shí)施例的矢量運(yùn)算單元原理示意圖;圖2為本發(fā)明實(shí)施例中FFT蝶形運(yùn)算的實(shí)部運(yùn)算原理示意圖;圖3為本發(fā)明實(shí)施例中FFT蝶形運(yùn)算的虛部運(yùn)算原理示意圖;圖4為本發(fā)明又一實(shí)施例的矢量運(yùn)算單元原理示意圖;圖5為本發(fā)明另一實(shí)施例的矢量運(yùn)算單元原理示意圖;圖6為本發(fā)明實(shí)施例實(shí)現(xiàn)矢量運(yùn)算的流程簡(jiǎn)圖。
具體實(shí)施例方式為了使矢量運(yùn)算單元在兼容實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算的同時(shí)還支持高效率的快速傅里葉蝶形運(yùn)算,可以進(jìn)行如圖I所示的設(shè)置。為了簡(jiǎn)化描述,圖中只顯示矢量運(yùn)算單元用了三階來(lái)實(shí)現(xiàn)。在實(shí)際的硬件設(shè)計(jì)與實(shí)現(xiàn)里,矢量運(yùn)算單元可以采用不同的階數(shù)來(lái)實(shí)現(xiàn),其所需要的實(shí)現(xiàn)階數(shù)取決于其最高操作頻率和所采用的工藝。具體而言,矢量運(yùn)算單元的第一階段為兩個(gè)乘法器,第二階段為一個(gè)加法器,第三階段為兩個(gè)具有累加功能的加法器,通過(guò)三階運(yùn)算器不同組合方式,可以兼容實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算,并同時(shí)支持高效率的快速傅里葉蝶形運(yùn)算。在圖I所示的矢量運(yùn)算單元中,第一階段有兩個(gè)乘法器,第二階段有一個(gè)加法器,第三階段有兩個(gè)加法器。該運(yùn)算單元有六個(gè)輸An :X0、Y0、Z0、X1、Y1、Z1,以及兩個(gè)輸出口 out0, OUtlo表I顯示矢量運(yùn)算單元實(shí)現(xiàn)的矢量函數(shù)。在實(shí)部運(yùn)算中,A0、Al為矢量A中的兩個(gè)單元數(shù)據(jù)。B0、BI為矢量B中的兩個(gè)單元數(shù)據(jù)。在復(fù)數(shù)運(yùn)算中,Ar+jAi為矢量A的一個(gè)復(fù)數(shù)單元,Br+jBi為矢量B的一個(gè)復(fù)數(shù)單元,C = Cr+jCi為矢量C的一個(gè)復(fù)數(shù)單元。另外,在進(jìn)行某些復(fù)數(shù)運(yùn)算時(shí)(如乘法,復(fù)數(shù)乘加,復(fù)數(shù)乘累加),圖I顯示的矢量運(yùn)算單元只能進(jìn)行實(shí)部或者虛部運(yùn)算。即在進(jìn)行這些復(fù)數(shù)運(yùn)算時(shí),我們需要兩個(gè)這種運(yùn)算單元來(lái)完成一個(gè)完整復(fù)數(shù)單元運(yùn)算。權(quán)利要求
1.一種實(shí)現(xiàn)矢量運(yùn)算的方法,其特征在于,該方法包括 通過(guò)三階運(yùn)算器的組合實(shí)現(xiàn)實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算;其中,所述三階運(yùn)算器的第一階段為兩個(gè)乘法器,第二階段為一個(gè)加法器,第三階段為兩個(gè)具有累加功能的加法器; 通過(guò)所述三階運(yùn)算器實(shí)現(xiàn)實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算的同時(shí),應(yīng)用所述三階運(yùn)算器實(shí)現(xiàn)FFT蝶形運(yùn)算。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述FFT蝶形運(yùn)算是通過(guò)實(shí)部運(yùn)算與虛部運(yùn)算相結(jié)合實(shí)現(xiàn)的; 其中, Xl = C+AB ;(Ia) X2 = C-AB ;(Ib) 其中,A、B和C都是復(fù)數(shù)矢量,B是旋轉(zhuǎn)因子。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述實(shí)部運(yùn)算的過(guò)程包括 通過(guò)第一階段的兩個(gè)乘法器,計(jì)算出A的實(shí)部Ar與B的實(shí)部Br相乘的結(jié)果ArBr,以及A的虛部Ai與B的虛部Bi相乘的結(jié)果AiBi ;通過(guò)第二階段的加法器計(jì)算得到ArBr-AiBi并送入第三階段的兩個(gè)加法器,用于與C的實(shí)部Cr相加得到蝶形運(yùn)算中一個(gè)分支的實(shí)部Cr+ (ArBr-AiBi),還用于相減以得到蝶形運(yùn)算中另一個(gè)分支的實(shí)部Cr-(ArBr-AiBi); 所述虛部運(yùn)算的過(guò)程包括 通過(guò)第一階段的兩個(gè)乘法器,計(jì)算出A的實(shí)部Ar與B的虛部Bi相乘的結(jié)果ArBi,以及A的虛部Ai與B的實(shí)部Br相乘的結(jié)果AiBr ;通過(guò)第二階段的加法器計(jì)算得到ArBi+AiBr并送入第三階段兩個(gè)加法器,用于與C的虛部Ci相加得到蝶形運(yùn)算中一個(gè)分支的實(shí)部Ci+(ArBi+AiBr),還用于相減以得到蝶形運(yùn)算中另一個(gè)分支的虛部Ci-(ArBi+AiBr)。
4.根據(jù)權(quán)利要求I至3任一項(xiàng)所述的方法,其特征在于,所述累加,是通過(guò)將第三階段中加法器的輸出以循環(huán)反饋的方式重新輸入該加法器實(shí)現(xiàn)的。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法進(jìn)一步包括 將第二階段加法器輸出端的一個(gè)寄存器分別分置到第三階段兩個(gè)加法器的輸入端;和/或, 將第三階段加法器輸出端的兩個(gè)寄存器分別反饋到第三階段兩個(gè)加法器的輸入端。
6.一種實(shí)現(xiàn)矢量運(yùn)算的系統(tǒng),其特征在于,該系統(tǒng)包括三階運(yùn)算器,用于通過(guò)三階運(yùn)算器的組合實(shí)現(xiàn)實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算;并且,在通過(guò)所述三階運(yùn)算器實(shí)現(xiàn)實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算的同時(shí),應(yīng)用所述三階運(yùn)算器實(shí)現(xiàn)FFT蝶形運(yùn)算;其中, 所述三階運(yùn)算器的第一階段為兩個(gè)乘法器,第二階段為一個(gè)加法器,第三階段為兩個(gè)具有累加功能的加法器。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述三階運(yùn)算器,具體用于通過(guò)實(shí)部運(yùn)算與虛部運(yùn)算相結(jié)合實(shí)現(xiàn)所述FFT蝶形運(yùn)算; 其中, Xl = C+AB ;(Ia) X2 = C-AB ;(Ib) 其中,A、B和C都是復(fù)數(shù)矢量,B是旋轉(zhuǎn)因子。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于, 所述三階運(yùn)算器在進(jìn)行實(shí)部運(yùn)算時(shí),具體用于 通過(guò)第一階段的兩個(gè)乘法器,計(jì)算出A的實(shí)部Ar與B的實(shí)部Br相乘的結(jié)果ArBr,以及A的虛部Ai與B的虛 部Bi相乘的結(jié)果AiBi ;通過(guò)第二階段的加法器計(jì)算得到ArBr-AiBi并送入第三階段的兩個(gè)加法器,用于與C的實(shí)部Cr相加得到蝶形運(yùn)算中一個(gè)分支的實(shí)部Cr+(ArBr-AiBi),還用于相減以得到蝶形運(yùn)算中另一個(gè)分支的實(shí)部Cr-(ArBr-AiBi);所述三階運(yùn)算器在進(jìn)行虛部運(yùn)算時(shí),具體用于 通過(guò)第一階段的兩個(gè)乘法器,計(jì)算出A的實(shí)部Ar與B的虛部Bi相乘的結(jié)果ArBi,以及A的虛部Ai與B的實(shí)部Br相乘的結(jié)果AiBr ;通過(guò)第二階段的加法器計(jì)算得到ArBi+AiBr并送入第三階段兩個(gè)加法器,用于與C的虛部Ci相加得到蝶形運(yùn)算中一個(gè)分支的實(shí)部Ci+(ArBi+AiBr),還用于相減以得到蝶形運(yùn)算中另一個(gè)分支的虛部Ci-(ArBi+AiBr)。
9.根據(jù)權(quán)利要求6至8任一項(xiàng)所述的系統(tǒng),其特征在于,所述三階運(yùn)算器的第三階段,具體用于將其中加法器的輸出以循環(huán)反饋的方式重新輸入所述加法器,以實(shí)現(xiàn)所述累加。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于, 所述第二階段的加法器輸出端的一個(gè)寄存器分別分置到第三階段兩個(gè)加法器的輸入端;和/或, 所述第三階段的加法器輸出端的兩個(gè)寄存器分別反饋到第三階段兩個(gè)加法器的輸入端。
全文摘要
本發(fā)明公開了一種實(shí)現(xiàn)矢量運(yùn)算的方法和系統(tǒng),均可通過(guò)三階運(yùn)算器的組合實(shí)現(xiàn)實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算;其中,所述三階運(yùn)算器的第一階段為兩個(gè)乘法器,第二階段為一個(gè)加法器,第三階段為兩個(gè)具有累加功能的加法器;通過(guò)所述三階運(yùn)算器實(shí)現(xiàn)實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算的同時(shí),應(yīng)用所述三階運(yùn)算器實(shí)現(xiàn)FFT蝶形運(yùn)算。本發(fā)明實(shí)現(xiàn)矢量運(yùn)算的技術(shù)能夠兼容實(shí)數(shù)和復(fù)數(shù)矢量運(yùn)算,并同時(shí)支持高效率的快速傅里葉蝶形運(yùn)算。所述實(shí)數(shù)和復(fù)數(shù)運(yùn)算包括復(fù)數(shù)實(shí)數(shù)乘、加、乘加、乘累加等。由于在每個(gè)時(shí)鐘能產(chǎn)生半個(gè)FFT蝶形,因此兩個(gè)這種矢量運(yùn)算單元每個(gè)時(shí)鐘就能產(chǎn)生一個(gè)完整FFT蝶形。
文檔編號(hào)G06F17/14GK102760117SQ201110108880
公開日2012年10月31日 申請(qǐng)日期2011年4月28日 優(yōu)先權(quán)日2011年4月28日
發(fā)明者華力, 林文瓊, 黎立煌 申請(qǐng)人:中興通訊股份有限公司