專利名稱:基于并行處理的fft裝置及其方法
技術(shù)領(lǐng)域:
本發(fā)明公開了一種應(yīng)用DSP實(shí)現(xiàn)高速FFT處理的裝置與方法,它涉及到數(shù)字信號(hào)的并行處理。
背景技術(shù):
FFT(Fast Fourier ^Transformation),即為快速傅氏變換,是離散傅氏變換的快速算法。在數(shù)字信號(hào)處理的發(fā)展中,許多算法都可以化為離散傅里葉變化來實(shí)現(xiàn),因此DFT 及其快速算法FFT是數(shù)字信號(hào)處理領(lǐng)域的核心組成部分,F(xiàn)FT算法多種多樣,按數(shù)據(jù)抽取方式不同又可以分為基2、基4等。FFT算法可以使用通用的DSP實(shí)現(xiàn)也可以通過FPGA來實(shí)現(xiàn)。兩者相對(duì)來講,DSP 開發(fā)相對(duì)簡(jiǎn)單,技術(shù)成熟,但通用的DSP速率較慢?;诖饲闆r,本發(fā)明在DSP的基礎(chǔ)上添加支持FFT算法的指令,提高FFT裝置的運(yùn)算速度?;? FFT的基本原理及算法結(jié)構(gòu)FFT算法可以分為二類時(shí)域抽取法,頻域抽取法。1.算法原理設(shè)序列點(diǎn)數(shù)N = 2S L為整數(shù)。若不滿足,則補(bǔ)零。N為2的整數(shù)冪的FFT算法。 稱基-2FFT算法將序列χ (η)按η的奇偶分成兩組
權(quán)利要求
1.一種基于并行處理的FFT裝置,其特征在于包括 指令存儲(chǔ)單元,用來存儲(chǔ)將要執(zhí)行的指令代碼;數(shù)據(jù)存儲(chǔ)單元,用來存儲(chǔ)指令代碼執(zhí)行所需要的數(shù)據(jù);指令讀取和分發(fā)單元,該單元將指令代碼從指令存儲(chǔ)單元中讀取并發(fā)送給所有的執(zhí)行單元;矢量數(shù)據(jù)處理單元,該單元用來執(zhí)行指令代碼當(dāng)中的矢量處理指令; 標(biāo)量數(shù)據(jù)處理單元,該單元用來執(zhí)行指令代碼當(dāng)中的標(biāo)量處理指令; 矢量寄存器組,包含矢量寄存器VRO,VRl, ...,Vfoi,用來存放來自數(shù)據(jù)存儲(chǔ)單元的數(shù)據(jù),其運(yùn)算單元?jiǎng)t從矢量寄存器組中讀寫數(shù)據(jù);標(biāo)量寄存器組,包含標(biāo)量寄存器R0,Rl,. . .,1 ,用來存放來自數(shù)據(jù)存儲(chǔ)單元的數(shù)據(jù),其運(yùn)算單元?jiǎng)t從標(biāo)量寄存器組中讀寫數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的基于并行處理的FFT裝置,其中,所述的矢量數(shù)據(jù)處理單元的矢量操作指令包括矢量加載寄存器的內(nèi)容為地址,把此地址的數(shù)據(jù)送到矢量目的寄存器中; 矢量存儲(chǔ)目的寄存器的內(nèi)容為地址,把源目的寄存器的數(shù)據(jù)送到以目的寄存器的內(nèi)容為地址的數(shù)據(jù)存儲(chǔ)單元中;矢量乘法源寄存器Srcl,Src2的數(shù)據(jù)相乘,放入目的寄存器中; 矢量重排源寄存器Srcl,Src2的內(nèi)容互換重排;矢量加法源寄存器Srcl,Src2的內(nèi)容相加,相加的結(jié)果存入目的寄存器中。
3.根據(jù)權(quán)利要求2所述的基于并行處理的FFT裝置,其中,以矢量寄存器為256位為例,把矢量寄存器分為16個(gè)16位的,以16位數(shù)據(jù)為操作單位,所述的矢量數(shù)據(jù)處理單元的矢量操作指令包括矢量加載寄存器的內(nèi)容為地址,把此地址的數(shù)據(jù)送到矢量目的寄存器中;把矢量寄存器分為16個(gè)16位的,以16位數(shù)據(jù)為操作單位;矢量存儲(chǔ)目的寄存器的內(nèi)容為地址,把源目的寄存器的數(shù)據(jù)送到以目的寄存器的內(nèi)容為地址的數(shù)據(jù)存儲(chǔ)單元中;把矢量寄存器分為16個(gè)16位的,以16位數(shù)據(jù)為操作單位; 矢量乘法源寄存器Srcl,Src2的數(shù)據(jù)相乘,放入目的寄存器中;把矢量寄存器分為16 個(gè)16位的,以16位數(shù)據(jù)為操作單位;矢量重排源寄存器Srcl,Src2的內(nèi)容互換重排;把矢量寄存器分為16個(gè)16位的,以 16位數(shù)據(jù)為操作單位;矢量加法源寄存器Srcl,Src2的內(nèi)容相加,相加的結(jié)果存入目的寄存器中;把矢量寄存器分為16個(gè)16位的,以16位數(shù)據(jù)為操作單位。
4.一種基于并行處理的FFT方法,其特征在于包含以下步驟 步驟一、加載矢量Xl放入VRl中指令讀取和分發(fā)單元從所述指令存儲(chǔ)單元中讀取矢量加載指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元,所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令執(zhí)行矢量加載操作;即所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令將待加載數(shù)據(jù)隊(duì)列從所述數(shù)據(jù)存儲(chǔ)單元加載到所述矢量寄存器組源寄存器中,所述源寄存器的指定是由所述矢量加載存儲(chǔ)指令決定的; 步驟二、加載系數(shù)矢量W放入VR2,具體的實(shí)施同步驟一;步驟三、做矢量復(fù)數(shù)乘法VR1*VR2,結(jié)果放入VR3指令讀取和分發(fā)單元從所述指令存儲(chǔ)單元中讀取矢量乘法指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元;所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量乘法指令將矢量寄存器組源寄存器的內(nèi)容相乘,結(jié)果存入目的寄存器中,所述源寄存器的指定是由所述矢量加載指令中的目的寄存器決定的;步驟四、對(duì)VRl進(jìn)行重排操作,結(jié)果存入VR4中指令讀取和分發(fā)單元從所述指令存儲(chǔ)單元中讀取矢量重排指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元;所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量重排指令將矢量寄存器組源寄存器的內(nèi)容重排,結(jié)果存入目的寄存器中,所述源寄存器的指定是由所述矢量加載指令中的目的寄存器決定的;步驟五、完成矢量寄存器的乘法操作;VR2*VR4結(jié)果存放與VR5中,具體的實(shí)施同步驟---,步驟六、對(duì)VR5、VR3進(jìn)行重排操作,結(jié)果依然存放在VR3、VR5中; 步驟七、完成矢量寄存器的加法操作;VR3+VR5,結(jié)果存放在VR6 指令讀取和分發(fā)單元從所述指令存儲(chǔ)單元中讀取矢量加法指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元;所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加法指令將矢量寄存器組源寄存器的內(nèi)容相加,結(jié)果存入目的寄存器中;步驟八、做矢量加減法VR1+VR6,VR1-VR6操作指令讀取和分發(fā)單元從所述指令存儲(chǔ)單元中讀取矢量加法或減法指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元;所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加或減指令將矢量寄存器組源寄存器的內(nèi)容相加減,結(jié)果存入目的寄存器中。
5.根據(jù)權(quán)利要求4所述的基于并行處理的FFT方法,其中所述的步驟三和步驟四合并為一步為乘法重排操作。
6.根據(jù)權(quán)利要求5所述的基于并行處理的FFT方法,其中所述的FFT方法包含以下步驟步驟一、加載矢量Xl放入VRl中指令讀取和分發(fā)單元從所述指令存儲(chǔ)單元中讀取矢量加載指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元,所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令執(zhí)行矢量加載操作;即所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令將待加載數(shù)據(jù)隊(duì)列從所述數(shù)據(jù)存儲(chǔ)單元加載到所述矢量寄存器組源寄存器中,所述源寄存器的指定是由所述矢量加載存儲(chǔ)指令決定的; 步驟二、加載系數(shù)矢量W放入VR2,具體的實(shí)施同步驟一; 步驟三、做矢量復(fù)數(shù)乘法VR1*VR2,結(jié)果放入VR3指令讀取和分發(fā)單元從所述指令存儲(chǔ)單元中讀取矢量乘法指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元;所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量乘法指令將矢量寄存器組源寄存器的內(nèi)容相乘,結(jié)果存入目的寄存器中,所述源寄存器的指定是由所述矢量加載指令中的目的寄存器決定的;步驟四、做矢量乘法重排操作,結(jié)果放入VR5中;步驟五、對(duì)VR5、VR3進(jìn)行重排操作,結(jié)果依然存放在VR3、VR5中,重排的根據(jù)圖5所示; 步驟六、完成矢量寄存器的加法操作;VR3+VR5,結(jié)果存放在VR6指令讀取和分發(fā)單元從所述指令存儲(chǔ)單元中讀取矢量加法指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元;所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加法指令將矢量寄存器組源寄存器的內(nèi)容相加,結(jié)果存入目的寄存器中;步驟七、做矢量加減法VR1+VR6,VR1-VR6操作指令讀取和分發(fā)單元從所述指令存儲(chǔ)單元中讀取矢量加法或減法指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元;所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加或減指令將矢量寄存器組源寄存器的內(nèi)容相加減,結(jié)果存入目的寄存器中。
全文摘要
本發(fā)明提供一種基于并行處理的FFT裝置及其方法,其包括指令存儲(chǔ)單元、數(shù)據(jù)存儲(chǔ)單元、指令讀取和分發(fā)單元、矢量數(shù)據(jù)處理單元、標(biāo)量數(shù)據(jù)處理單元、矢量寄存器組、標(biāo)量寄存器組;通過充分利用數(shù)據(jù)信號(hào)的并行處理,添加有效指令,以較快的速度較少的指令來完成復(fù)數(shù)乘法操作,從而提高FFT裝置的處理能力。
文檔編號(hào)G06F17/14GK102200964SQ201110163600
公開日2011年9月28日 申請(qǐng)日期2011年6月17日 優(yōu)先權(quán)日2011年6月17日
發(fā)明者孫瑞琛 申請(qǐng)人:孫瑞琛