亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種支持fft加速的simd向量處理器的制作方法

文檔序號:6439873閱讀:380來源:國知局
專利名稱:一種支持fft加速的simd向量處理器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種支持FFT加速的SIMD向量處理器及其設(shè)計方法,具體地說是一種支持可變點數(shù),對FFT/IFFT運算加速效率較高而整體硬件開銷較低的SIMD向量處理器及其設(shè)計方法。
背景技術(shù)
快速傅里葉變換(Fast Fourier Transformation, FFT)運算一般都通過專用硬件加速器(稱為FFT處理器)或DSP處理器完成。專用硬件加速器能獲得較高的加速效率,但是會占用較多額外資源,包括片上存儲資源和片上計算邏輯資源,特別是當變換的長度極大時,專用硬件加速器所占用的額外資源將無法承受。用DSP處理器軟件編程的方式完成 FFT運算雖然不會占用額外的硬件資源且具有很大的靈活性,但是其處理速度相對較慢,滿足不了某些應用的實時性要求。
在一些數(shù)字信號處理算法,如距離-多普勒算法中,涉及大量各種長度的向量處理,最長可達到16K甚至更長。對這些向量的處理既包括規(guī)則的向量運算(向量加減法、向量乘法等)也包括FFT/IFFT運算。SIMD向量處理器可用來加速規(guī)則的向量運算,但是尚未出現(xiàn)同時能夠直接加速FFT運算(加速效率和專用加速器相當)的SIMD向量處理器,在這種情況下,還需要另外使用FFT硬件加速器來加速各種點數(shù)的FFT/IFFT運算,額外的片上資源將會被占用。發(fā)明內(nèi)容
為了加速大點數(shù)FFT的運算效率,同時避免使用專門硬件加速器所帶來的額外硬件開銷,本發(fā)明的目的是提供一種支持FFT加速的SIMD向量處理器。該SIMD向量處理器能夠直接加速FFT運算,還可提供和專用硬件加速器加速效率相當?shù)腇FT運算加速,在保證性能的同時避免額外的硬件開銷。
本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的一種支持FFT加速的SIMD向量處理器,其特征在于該處理器包括控制單元、計算單元、存儲器子系統(tǒng)、存儲交織單元和地址產(chǎn)生單元;所述計算單元支持各種向量運算的快速處理,所述存儲器子系統(tǒng)包括存放操作數(shù)的存儲器組A、存放系數(shù)的存儲器組B和存放運算結(jié)果的存儲器組C,且存儲器組A、存儲器組B和存儲器組C內(nèi)的單個存儲體的位寬為一個復數(shù)字,支持4路數(shù)據(jù)并行的復數(shù)向量運算和8路數(shù)據(jù)并行的實數(shù)向量運算;計算單元、地址產(chǎn)生單元和存儲交織單元均與控制單元連接;地址產(chǎn)生單元根據(jù)運算類型、運算的數(shù)據(jù)并行度及向量的長度產(chǎn)生所需的操作數(shù)地址序列、系數(shù)地址序列、結(jié)果地址序列;存儲交織單元與地址產(chǎn)生單元和計算單元連接,并實現(xiàn)存儲體的地址映射。
本發(fā)明中,存儲器組A、存儲器組B和存儲器組C均為4個存儲體。存儲交織單元實現(xiàn)存儲器組A、存儲器組B和存儲器組C內(nèi)部4個存儲體的地址映射,使同時讀取的4個操作數(shù)位于4個不同的存儲體,且同時寫入的4個運算結(jié)果位于4個不同的存儲體;通過可編程地址映射方法,支持各種長度向量的規(guī)則向量運算和FFT/IFFT運算。
所述可編程地址映射方法是可通過軟件編程方式設(shè)置向量長度,對于不同的向量長度,地址映射方法也相應變化,且在各向量長度下,均能保證規(guī)則向量運算和FFT/IFFT 運算無沖突讀寫。
計算單元包括2個復數(shù)乘法器和4個復數(shù)加法器,支持2路數(shù)據(jù)并行的復數(shù)乘法、 卷積運算,4路數(shù)據(jù)并行的復數(shù)加減法、累加運算,4路數(shù)據(jù)并行的復數(shù)模方運算,4路數(shù)據(jù)并行的FFT/IFFT運算,以及8路數(shù)據(jù)并行的實數(shù)乘法、卷積、加減法、累加運算。對于上述的η路數(shù)據(jù)并行的向量運算,平均每個時鐘周期處理η個向量單元(不考慮處理每個向量前的流水線填充時間)。其加速效率與專用硬件加速器相當,且支持可變點數(shù),因此在保障系統(tǒng)計算效率的同時,節(jié)省了在設(shè)計中因使用FFT專用硬件加速單元而帶來的巨額片上存儲資源與邏輯資源開銷。
本發(fā)明中的存儲子系統(tǒng)包括三個存儲器組,分別存放操作數(shù)、系數(shù)和運算結(jié)果,每組存儲器分為4個存儲體,存儲體的位寬為一個復數(shù)字,以支持4路數(shù)據(jù)并行的復數(shù)向量運算和8路數(shù)據(jù)并行的實數(shù)向量運算。地址產(chǎn)生單元,能夠根據(jù)運算類型(規(guī)則運算、FFT/ IFFT運算)、運算的數(shù)據(jù)并行度(2、4、8)、向量的長度等產(chǎn)生所需的操作數(shù)地址序列、系數(shù)地址序列(對某些運算不需要,如累加運算和復數(shù)模方運算)、結(jié)果地址序列。
本發(fā)明能夠直接加速FFT運算的SIMD向量處理器,除了能夠加速規(guī)則向量運算之外,還可提供和專用硬件加速器加速效率相當?shù)腇FT運算加速,在保證性能的同時避免額外的硬件開銷。
本發(fā)明的有益效果是通過向SIMD向量處理器添加FFT加速指令的方式,取得了和專用硬件加速器相當?shù)募铀傩?,而避免了使用專用硬件加速所帶來的額外硬件開銷。 本發(fā)明可以有效地應用于具有大量超長向量運算(包括規(guī)則向量運算與FFT/IFFT)的實時信號處理系統(tǒng)。


圖1是本發(fā)明的整體架構(gòu)示意圖;圖2是傳統(tǒng)的radix-2 DIT FFT運算數(shù)據(jù)流圖; 圖3是本發(fā)明的radix-2 DIT FFT運算數(shù)據(jù)流圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明支持FFT加速的SIMD向量處理器進行詳細的說明。
一種支持FFT加速的SIMD向量處理器,見圖1,該處理器包括控制單元、計算單元、 存儲器子系統(tǒng)、存儲交織單元和地址產(chǎn)生單元。
計算單元支持各種向量運算的快速處理,計算單元包括2個復數(shù)乘法器和4個復數(shù)加法器,支持2路數(shù)據(jù)并行的復數(shù)乘法、卷積運算,4路數(shù)據(jù)并行的復數(shù)加減法、累加運算,4路數(shù)據(jù)并行的復數(shù)模方運算,4路數(shù)據(jù)并行的FFT/IFFT運算,以及8路數(shù)據(jù)并行的實數(shù)乘法、卷積、加減法、累加運算。對于上述的η路數(shù)據(jù)并行的向量運算,平均每個時鐘周期處理η個向量單元(不考慮處理每個向量前的流水線填充時間)。其加速效率與專用硬件加速器相當,且支持可變點數(shù),因此在保障系統(tǒng)計算效率的同時,節(jié)省了在設(shè)計中因使用FFT專用硬件加速單元而帶來的巨額片上存儲資源與邏輯資源開銷。
存儲器子系統(tǒng)包括三個存儲器組,分別為存放操作數(shù)的存儲器組A、存放系數(shù)的存儲器組B和存放運算結(jié)果的存儲器組C,且每個存儲器組內(nèi)均為4個存儲體。單個存儲體的位寬為一個復數(shù)字,支持4路數(shù)據(jù)并行的復數(shù)向量運算和8路數(shù)據(jù)并行的實數(shù)向量運算, 使同時讀取的4個操作數(shù)位于4個不同的存儲體,且同時寫入的4個運算結(jié)果位于4個不同的存儲體;通過可編程地址映射方法,支持各種長度向量的規(guī)則向量運算和FFT/IFFT運算。計算單元、地址產(chǎn)生單元和存儲交織單元均與控制單元連接。
地址產(chǎn)生單元根據(jù)運算類型、運算的數(shù)據(jù)并行度及向量的長度產(chǎn)生所需的操作數(shù)地址序列、系數(shù)地址序列、結(jié)果地址序列;存儲交織單元與地址產(chǎn)生單元和計算單元連接, 并實現(xiàn)存儲體的地址映射。存儲交織單元與三個存儲器組相適配,也包括存儲交織單元A、 存儲交織單元BT和存儲交織單元C三個部分。
可編程地址映射方法是可通過軟件編程方式設(shè)置向量長度,對于不同的向量長度,地址映射方法也相應變化,且在各向量長度下,均能保證規(guī)則向量運算和FFT/IFFT運算無沖突讀寫。
如前所述,使支持規(guī)則向量運算的SIMD處理器支持FFT直接加速的最大障礙在于地址沖突。在FFT專用硬件加速器設(shè)計中同樣會面臨這個問題,并已經(jīng)有很成熟的解決方法,一般可以通過靈活的設(shè)計存儲系統(tǒng)和地址映射來避免。但是,在這里問題就更復雜了, 因為需要在添加FFT加速指令之后仍能支持其他規(guī)則向量運算的加速。
本發(fā)明應用新的radix-2 DIT FFT運算數(shù)據(jù)流圖,并提出了一種地址映射方法同時支持規(guī)則向量運算與FFT/IFFT的無沖突存儲器存取,而且其可編程性支持各種長度向量的運算。
圖2是傳統(tǒng)的radix-2 DIT FFT運算數(shù)據(jù)流圖(輸入數(shù)據(jù)已經(jīng)進行過地址的比特位反轉(zhuǎn))?;谠摂?shù)據(jù)流圖進行計算時,操作數(shù)的地址序列與結(jié)果的地址序列是相同的,但對于每一級運算地址序列都是不同的,見表1。
表1每個操作數(shù)/結(jié)果數(shù)據(jù)通道的地址序列(對于長度為8的FFT)
權(quán)利要求
1.一種支持FFT加速的SIMD向量處理器,其特征在于該處理器包括控制單元、計算單元、存儲器子系統(tǒng)、存儲交織單元和地址產(chǎn)生單元;所述計算單元支持各種向量運算的快速處理,所述存儲器子系統(tǒng)包括存放操作數(shù)的存儲器組A、存放系數(shù)的存儲器組B和存放運算結(jié)果的存儲器組C,且存儲器組A、存儲器組B和存儲器組C內(nèi)的單個存儲體的位寬為一個復數(shù)字,支持4路數(shù)據(jù)并行的復數(shù)向量運算和8路數(shù)據(jù)并行的實數(shù)向量運算;計算單元、 地址產(chǎn)生單元和存儲交織單元均與控制單元連接;地址產(chǎn)生單元根據(jù)運算類型、運算的數(shù)據(jù)并行度及向量的長度產(chǎn)生所需的操作數(shù)地址序列、系數(shù)地址序列、結(jié)果地址序列;存儲交織單元與地址產(chǎn)生單元和計算單元連接,并實現(xiàn)存儲體的地址映射。
2.根據(jù)權(quán)利要求1所述的支持FFT加速的SIMD向量處理器,其特征在于存儲器組A、 存儲器組B和存儲器組C均為4個存儲體。
3.根據(jù)權(quán)利要求2所述的支持FFT加速的SIMD向量處理器,其特征在于存儲交織單元實現(xiàn)存儲器組A、存儲器組B和存儲器組C內(nèi)部4個存儲體的地址映射,使同時讀取的4 個操作數(shù)位于4個不同的存儲體,且同時寫入的4個運算結(jié)果位于4個不同的存儲體;通過可編程地址映射方法,支持各種長度向量的規(guī)則向量運算和FFT/IFFT運算。
4.根據(jù)權(quán)利要求3所述的支持FFT加速的SIMD向量處理器,其特征在于所述可編程地址映射方法是可通過軟件編程方式設(shè)置向量長度,對于不同的向量長度,地址映射方法也相應變化,且在各向量長度下,均能保證規(guī)則向量運算和FFT/IFFT運算無沖突讀寫。
5.根據(jù)權(quán)利要求1所述的支持FFT加速的SIMD向量處理器,其特征在于計算單元包括2個復數(shù)乘法器和4個復數(shù)加法器,支持2路數(shù)據(jù)并行的復數(shù)乘法、卷積運算,4路數(shù)據(jù)并行的復數(shù)加減法、累加運算,4路數(shù)據(jù)并行的復數(shù)模方運算,4路數(shù)據(jù)并行的FFT/IFFT運算, 以及8路數(shù)據(jù)并行的實數(shù)乘法、卷積、加減法、累加運算。
全文摘要
本發(fā)明公開了一種支持FFT加速的SIMD向量處理器。包括控制單元、計算單元、存儲子系統(tǒng)、存儲交織單元和地址產(chǎn)生單元計算單元支持各種向量運算的快速處理;存儲器子系統(tǒng)包括三個存儲器組,每個存儲器組包括四個存儲體且存儲器組內(nèi)的單個存儲體的位寬為一個復數(shù)字,支持4路數(shù)據(jù)并行的復數(shù)向量運算和8路數(shù)據(jù)并行的實數(shù)向量運算;計算單元、地址產(chǎn)生單元和存儲交織單元均與控制單元連接;地址產(chǎn)生單元產(chǎn)生所需的操作數(shù)地址序列、系數(shù)地址序列、結(jié)果地址序列;存儲交織單元與地址產(chǎn)生單元和計算單元連接,并實現(xiàn)存儲體的地址映射。本發(fā)明對FFT/IFFT運算的加速效率和專用硬件加速器相當,卻避免了使用專用硬件加速器所帶來的巨大的額外開銷,適用于具有大量長向量運算的實時信號處理系統(tǒng)中。
文檔編號G06F9/34GK102495721SQ20111039371
公開日2012年6月13日 申請日期2011年12月2日 優(yōu)先權(quán)日2011年12月2日
發(fā)明者孫敏敏, 李麗, 李偉, 沙金, 潘紅兵, 王佳文, 鄭維山 申請人:南京大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1