吉林快三爱彩乐歡迎您的到來!

網站地圖    收藏本站    設為首頁

上海市柳營路650弄36号302室
銷售熱線:021-56906880 56982876
圖文傳值:021-56982876
企業郵箱:dzyb@vip.sina.com

新聞資訊

當前位置:網站首頁 -> 基于異構多核可編程系統的大點FFT卷積設計與實現

基于異構多核可編程系統的大點FFT卷積設計與實現 [2017/5/4]


 

     在數字信号處理領域,長沖激響應的數據流卷積運算廣泛地應用在(液位計液位變送器電容式液位計電容式液位變送器物位開關料位計物位計雷達物位計)的接收匹配濾波器、數字通信、圖像處理和信号接收帶通濾波器等中。FFT卷積方法将線性卷積轉換到頻域,通過使用有效的FFT處理器,對于數據流處理是有效算法,具有很高數據處理速度,但數據吞吐率很低。為了使用FFT卷積方法處理數據流,FFT處理器必須多路複用,以保持處理速度和吞吐率同步。
    随着半導體技術的高速發展,HMPS已經成為IC主流趨勢,并且在很多應用領域成為最具有發展前景
的硬件處理技術[1,2]。因此,在處理零點填充數據流,大點FFT卷積運算中,HMPS成為這種數據密集型和計算密集型任務的最佳解決方法。為了獲得高吞吐率和處理速度,研究基于NoC[3]互聯的HMPS,充分利用其并行計算處理能力,具有良好的可拓展性和低功耗等。
    大點FFT卷積實現需要大量複雜計算,成為濾波器設計的瓶頸。本文首先介紹并總結大點FFT卷積運
算原理以及推導方法;其次,展示HMPS系統架構和詳細的算法映射方案;最後,給出系統性能參數,包括結果誤差比較、系統任務并行度、硬件資源消耗和針對系統性能的改進目标和方向等[4,5]。
1 重疊相加算法原理
    重疊相加FFT卷積方法是将采樣序列劃分成具有L等長度的數據片段。假設抽頭系數h(n)長度為N,采
樣序列x(n)為無限長,将x(n)序列等分成長為L的數據片段
    那麼,序列h(n)和x(n)的FFT卷積為濾波結果,定義如下:
    當計算大點FFT卷積時,首先,計算分段片段的線性卷積yk(n),然後将分段片段的卷積結果重疊部
分相加,則為最終濾波結果y(n)。
    為了避免混疊效應,對于長度為M的濾波沖激響應,将各個分段序列後追加M-1個0,同時将時域卷
積轉換成頻域相乘,在采樣序列為N的DFT中,其中N≥L+M-1,由式(4)可得頻域濾波結果:
    其中H(k)為濾波器的頻域響應,X(k)和Y(k)分别代表采樣序列和濾波結果的頻域響應。在零點填充
的沖激響應序列和分段序列轉換成頻域相乘之後,将各分段濾波結果求逆FFT運算,最後在時域中,将上一份段的後M-1點與下一分段的前M-1點重疊相加即為最終濾波結果。
2 基于NoC平台的HMPS
    異構多核可編程系統HMPS主要應用在高密度計算中,該系統設計不僅能滿足某些特殊類型操作,而
且還具有一定的通用性。
    基于7×6 2D mesh網絡結構的HMPS系統架構具有22個資源節點,所有的操作數和狀态控制信息等
通過該通信網絡進行傳遞。同時,該多核系統集成的資源節點類型主要有:Flash簇、主控制器簇(Main Controller Cluster)、以太網口簇(Ethernet Port Cluster)、三層網絡、4GB的DDR3簇以及3種浮點運算單元簇。該系統的32 bit浮點運算單元主要有協處理器簇(COP Cluster)、可重構運算單元簇(RCU Cluster)和FFT/IFFT簇,滿足IEEE-754單精度浮點标準。在NoC平台下的每個資源節點分别具有轉發狀态請求包的狀态網絡、下發配置信息的配置網絡和數據傳輸的包電路交換網絡(PCC)

。在任務運行時,所有的資源節點必須滿足片上網絡通信機制和主控制器任務調度管理來協同處理,發揮系統高性能優勢。
2.1 Flash簇
    系統進行上電複位之後,由Flash簇中固化的配置引導信息完成HMPS系統任務初始化工作。
2.2 主控制器簇
    通過向DDR請求配置信息,對參與任務的簇配置,轉發數據請求/應答信息,接收DDR發出的任務切
換信息,進行任務切換, 完成系統任務調度。
2.3 以太網口簇
    實現上位機軟件與FPGA芯片之間的數據交換,下發系統任務運算的配置信息和原數據以及回傳運算
結果數據,網口簇是HMPS調試的必要手段。
2.4 三層網絡
    由PCC網絡、配置網絡和狀态網絡組成7×6 2D mesh網絡結構,完成系統中的數據以及控制信息傳
輸。數據傳輸網由PCC路由節點連接而成的PCC網絡,是數據傳輸的唯一路徑。配置網絡是下發配置信息和轉發數據請求的唯一路徑。狀态網絡是上傳數據請求/應答信息的唯一路徑。
2.5 DDR3簇
    DDR3控制器能夠同時處理資源節點的讀寫控制請求,并且将參與系統任務的相關配置信息、原始數
據、中間立即數和結果數據等存儲在4 GB DDR3中。
2.6 FFT/IFFT簇
    32 bit浮點運算能力的FFT/IFFT簇能夠支持16K點FFT和逆FFT,具有兩個蝶形運算器的特殊架構設計
能夠同時運算,因此,16K點FFT和逆FFT僅需要56.3K系統時鐘周期。
2.7 RCU簇
    32 bit浮點運算能力的RCU簇主要處理複數和實數的規整運算,主要包括複、實數間的批量乘法、加
法和減法等[6]。該處理單元由兩個乘法器和兩個加法器構成,具有可重構特性,因此能夠處理大批量的

數據運算。同時,能夠支持兩種數據運算模式:存儲模式和流模式。
2.8 COP簇
    滿足IEEE-754單精度浮點運算标準的COP簇主要通過軟件編程來控制無規律的浮點複、實數操作運
算,主要包括複、實數間的加法、減法、乘法、除法、開方運算等[7]。基于SIMD架構的協處理器采用Micro blaze作為控制單元,通過FSL總線控制硬件浮點協處理器IP。參與系統任務的COP簇主要通過SDK軟件編程來控制數據接收、相關運算以及傳送結果到相應的處理單元中。
3 大點FFT卷積算法映射
    本文采用抽頭系數1K+1點的h(n)和采樣點數為16K點的x(n)為例來驗證零點填充和重疊相加方法。通過零點填充和流水重疊相加方法,将16K采樣點劃分成16組1K等長的分段,為了避免混疊效應,
将所有的分段片段和抽頭系數分别追加1K和1K-1點的零序列,轉換成具有2K統一長度,由系統資源節點來完成各個分段片段的FFT卷積運算。為了提高處理速度和充分利用HMPS高性能優勢,将所有的采樣點通過時域到頻域再到時域的轉換,使得系統所有運算簇能夠參與流水并行運算,提高系統任務并行

度。
    16K采樣點FFT卷積算法映射成4個子任務(Task0、Task1、Task2和Task3)。系統的18個浮點運算單
元參與任務執行。
    特殊任務Task0通過FFT0、FFT1和FFT2簇來計算抽頭系數的頻率響應,并存儲在COP0、COP1和

COP2簇的片上存儲單元中。在接下來的任務中,分别發送給RCU0、RCU1和RCU2簇,與零點添加分

段片段序列在頻域上做批量乘法運算。
    Task1主要計算前2K采樣點,得到前2K點濾波結果,COP3簇的片上存儲單元存儲來自COP5簇的中
間1K濾波結果來進行接下來流水重疊相加運算。
    Task2采用了4次并行循環運算流水架構,所有的資源節點均參與任務執行,達到理論上最大值。
FFT0、FFT1和FFT2簇分别計算每次流水各2K點的頻域響應,RCU0、RCU1和RCU2簇分别實現抽頭系數和各采樣點在頻域上的批量乘運算,FFT3、FFT4和FFT5簇通過逆FFT運算将頻域濾波結果轉換成時域,分别發送給COP3、COP4和COP5簇,最後通過RCU3、RCU4和RCU5簇實現前後兩個分段片段濾波結果的1K點重疊相加,得到最終濾波結果,并且存儲在DDR3簇中。
    在最後一個任務Task3中,主要實現最後2K采樣點濾波,将3K濾波結果寫入DDR3簇中去
。至此,通過4個任務在HMPS中實現了16K點的FFT卷積運算。在以上的算法映射方案中,通過DDR3簇來存儲了參與任務執行的配置信息、原始采樣數據和濾波結果,節點FFT和RCU簇參與過程計算,利用COP0、COP1和COP2簇的片上存儲單元存儲濾波系數的頻域響應,利用COP3、COP4和COP5簇來接收和發送中間結果數據到相應的RCU3、RCU4和RCU5簇實現重疊相加。由DFG可以看出,參與任務執行的COP簇僅僅用來實現中間數據的接收和發送,并不參與實際任務運算,而所有的FFT和RCU簇參與整個任務的相關運算,因此,系統理論上最大的任務并行度為12。
根據片上網絡的通信機制和HMPS中的高效浮點運算簇,該系統的大點FFT卷積映射方案比傳統的設計
架構更加方便,靈活而且運算效率更高。
4 實驗結果和系統性能分析
    在Xilinx XC7V2000T FPGA開發闆上,将系統時鐘頻率設置為100 MHz,進行測試驗證,并且通過
網口簇和上位機軟件将結果數據傳回至本地PC。通過将MATLAB軟件的計算結果與HMPS處理結果進行誤差比較可知,由于大點FFT卷積的累加運算,相對誤差趨近于0,因此,給出系統的絕對誤差方法。
    采樣點為64 K和1 M時,相應的系統時鐘消耗和系統平均任務并行度,其中,Aerr_imagmax和

Aerr_realmax分别代表虛部和實部的絕對誤差最大值。clusters表示并行度,Tclusters表示在并行度,clusters下的時鐘消耗,T表示整個任務的時鐘消耗。
    在以上的映射方案中,64K和1M采樣點僅需要改變Task2的循環次數,其他保持不變。零點填充和
重疊相加的16K點 FFT卷積平均需要5次流水循環運算,而64K和1M采用點分别需要21次和341次流水循環運算。
    從實驗結果可以推導出,參與系統運算的采樣點越大,系統平均任務并行度就越高,而且最大絕
對誤差接近10-4,相較于文獻[8]中的異構多核處理單元的10-3相對誤差,本系統具有更高的計算精度。與文獻[9]中的異構多核SoC相比(其ATP最大達到3.88),本設計能達到5.33,因而具有更高的處理速度和系統平均任務并行度,采樣點數越大,效果越明顯。
5 結論
    在很多應用領域,大點FFT卷積實現是一個需要突破的技術瓶頸,減少運算時間,提高運算效率和濾
波結果正确性等具有重要意義。本文實現了基于HMPS的大點FFT卷積高效映射方案,對于2M、4M,甚至更大的采樣點都可以很容易地通過以上映射方法增加流水循環次數進行實現,而且不需要增加額外

的硬件資源消耗。
    另外需要注意的是,系統性能和任務并行度的提高需要同一時刻所有運算簇參與任務計算。本文實
現了抽頭系數為1K+1點,也可以采用其他合适長度的抽頭系數。作為通用目的處理器系統,HMPS主要運用在高密度計算領域,也可以實現其它複雜計算。
    通過實驗分析可知,系統性能有很大的提升空間,為了獲得更高的數據吞吐率、處理速度和任務并
行度,可以通過改善片上網絡來減少通信時間和增加DDR的有效帶寬來提高數據吞吐量等,具有十分重要的意義。