一種可重構dbf算法硬件加速器及控制方法
【專利摘要】本發明涉及可重構DBF算法硬件加速器及控制方法,所述加速器包括重構控制模塊,接收上位機發出的DBF算法信息數據,并根據DBF算法信息決定是否發出重構控制信號;數據存儲模塊,用于完成對DBF算法信息數據的寫入,存儲和讀出;DBF運算模塊,從數據存儲模塊讀取數據,完成DBF算法的運算并輸出相應結果。有益效果為:解決了專用DBF處理器通用性差和通用處理器計算DBF速度慢的矛盾,可重構架構可以提升算法的靈活性,并且實現了源數據的全流水輸出,提高了算法的運算效率和實時性。
【專利說明】
-種可重構DBF算法硬件加速器及控制方法
技術領域
[0001] 本發明設及基于固定資源的DBF算法處理單元及其硬件實現,尤其設及一種可重 構的DBF算法的硬件架構。
【背景技術】
[0002] 數字信號處理技術不僅廣泛應用于多媒體、數據通信、雷達成像、地質探測、航空 航天等工程技術領域,近年來又成為人工智能、模式識別、神經網絡等新興學科的理論基礎 之一,設及范圍非常廣泛。而隨著隨著半導體工藝技術不斷提高、DSP器件的飛速發展,為大 批量數據的實時處理提供了可能。而對于實時性要求很高的雷達成像等諸多領域,采用普 遍的解決方案一一即用DSP進行信號運算,會大大受限于吞吐率,遠遠達不到快速處理的實 時性要求。而單純依靠提升處理部件的主頻和存儲部件的通信帶寬,解決不了核屯、問題,設 計架構才是瓶頸所在。
[0003] 此外,由于專用集成電路的成本隨著工藝尺寸的縮小越來越高,追求快速處理速 度和高性能的同時,成本因素也被考慮的越來越多。所W,可重構架構的研究逐漸熱口,該 方法試圖在高性能和通用性之間尋找一個平衡點,來滿足均衡的需求。
【發明內容】
[0004] 本發明目的在于基于可重構的思想,提供一種可重構的DBF算法處理單元及其硬 件架構,具體有W下技術方案實現: 所述可重構DBF算法硬件加速器,與上位機通信連接,包括: 重構控制模塊,接收上位機發出的DBF算法信息數據,并根據DBF算法信息決定是否發 出重構控制信號; 數據存儲模塊,用于完成對DBF算法信息數據的寫入,存儲和讀出; DBF運算模塊,從數據存儲模塊讀取數據,完成DBF算法的運算并輸出相應結果。
[0005] 所述可重構DBF算法硬件加速器的進一步設計在于,所述數據存儲模塊包括: 片上RAM存儲單元,用于存儲寫地址,并根據讀地址將DBF運算模塊需要的數據從存儲 器中讀出; 寫地址產生模塊,用于根據DBF運算模塊產生的中間結果產生寫地址,將數據存入存儲 器; 讀地址產生模塊,用于產生讀地址。
[0006] 所述可重構DBF算法硬件加速器的進一步設計在于,包括重構控制模塊,所述重構 控制模塊包括: 重構狀態機,輸出重構控制信號; 存儲資源復選模塊,用于重構數據存儲模塊中片上存儲器RAM的排列; 運算資源復選模塊,用于重構多路并行流水計算資源。
[0007] 所述可重構DBF算法硬件加速器的進一步設計在于,所述多路并行流水計算資源 為八路至十六路并行流水線。
[000引所述可重構DBF算法硬件加速器的進一步設計在于,所述重構控制模塊通過GMAC 接口與上位機通信連接。
[0009] 所述可重構DBF算法硬件加速器的進一步設計在于,所述DBF運算模塊包括: 矩陣運算單元,包括矩陣點乘單元、矩陣求平均單元W及求絕對值單元,用于分別對應 地實現輸入數據與系數矩陣的點乘運算、求平均運算W及求絕對值運算,用于找出矩陣中 最大值及其位置; 數據存取控制單元,用于實現中間結果和最終結果的存取控制; 數據比較單元,對矩陣運算單元的輸出結果的進行比較;并從數據存儲模塊讀出所述 比較的結果,用于找出矩陣中次大值及次大值對應的位置。
[0010] 基于上述的可重構DBF算法硬件加速器的可重構DBF算法硬件加速器的控制方法, 包括如下步驟: 1) 重構控制模塊解析上位機發出的配置信息,完成對數據存儲模塊的配置和對DBF運 算路數的配置; 2) DBF運算模塊接收配置信息中的運算數據,與數據存儲模塊根據配置信息讀取的數 據進行運算; 3) DBF運算模塊將運算的中間結果存入數據存儲模塊,在一帖數據運算完成后,根據數 據比較單元的比較結果,得到當前帖數據對應的最大值及該最大值的位置,再在數據存儲 模塊中讀取該最大值對應存儲位置的一組數據,將該組數據再次送入數據比較單元,比較 出該組數據次大值及對應的位置,根據最大值的位置和次大值的位置進行運算,得到最終 的輸出結果。
[0011]本發明的優點 本發明提供的一種可重構DBF算法硬件加速器,基于GMAC與上位機通信,基于AXI協議 進行內部模塊通信。將設計出的GMAC接口掛接在重構控制模塊上,通過重構控制模塊的狀 態機將重構的運算參數和數據分發到片上的兩組RAM中進行DBF運算前數據的存儲,存儲完 成后,數據存儲模塊給出信號,告知運算數據可W輸入。
[0012] 運算數據輸入過后,進入多路并行的DBF運算模塊,然后通過適當的控制將需要的 中間結果和最終輸出結果寫入存儲器中,數據存儲模塊支持兵鳥操作W使流水不會中斷。 完成整個運算過后發出結束信號,并且清空相關的寄存器和存儲器,等待下一次的重構和 運算。由于運個多路并行的流水架構使得外圍控制電路可W在運算期間處理其他任務,在 運算結束過后讀取運算結果即可,大大增加了整個系統的處理效率。
【附圖說明】
[0013] 圖1是DBF算法加速器與上位機連接整體架構圖。
[0014] 圖2是重構控制模塊內部架構示意圖。
[0015] 圖3是數據存儲模塊兵鳥操作示意圖。
[0016] 圖4是DBF運算模塊內部架構示意圖。
[0017] 圖5是重構控制模塊工作流程圖。
[001引圖6是工作流程圖。
【具體實施方式】
[0019] 下面結合附圖對本發明方案進行詳細說明,本實施例WXilinx VC707 FPGA開發 板為實施平臺。
[0020] 如圖1,本實施例的可重構DBF算法硬件加速器包括GMAC接口、重構控制模塊、數據 存儲模塊W及DBF運算模塊。其中,GMAC接口用于實現DBF算法加速器中重構控制模塊與上 位機之間的數據傳遞。重構控制模塊與GMAC接口、數據存儲模塊和DBF運算模塊相連接,用 于重構DBF算法的參數,并行路數和存儲結構。數據存儲模塊,與DBF運算模塊相連,用于完 成對數據的寫入、存儲和讀取。DBF運算模塊,與數據存儲模塊相連,根據需要從數據存儲模 塊讀取數據,完成DBF算法的運算并輸出相應結果。
[0021] 如圖2,本實施例提供的重構控制模塊包括=個部分,分別為:重構狀態機、存儲資 源復選模塊和運算資源復選模塊。整個重構流程在重構狀態機的控制下完成,存儲資源復 選模塊和運算資源的重構主要是通過MUX,即多路復用器完成的,根據輸入參數的變化選通 不同的存儲資源和運算資源,并且可W達到資源復用的效果。重構完成后給出重構結束信 號。重構的流程如圖5所示。
[0022] 如圖3,本實施例提供的數據存儲模塊采用隨機存儲器(RAM)。該存儲器包括寫地 址產生單元、讀地址產生單元和片上RAM存儲單元。FPGA忍片的硬件設計實現了 RAM的雙端 口使用,使其可W同時進行讀寫。在寫數據階段,將符合RAM要求的地址和需要寫入的數據 寫入選擇的RAM中;在讀數據階段,將地址寫入RAM,并接受RAM輸出的數據,并將該數據輸出 至化BF運算模塊。W下W8路并行計算,緩存深度為16為例說明。
[0023] 寫數據時,用計數器對輸入的8路數據進行計數。第1個8路并行的矩陣計算結果的 數據分別存在RAMO到RAM7運8個RAM的0地址;第2個8路數據存在RAMO到RAM7的1地址,W此 類推,到第64個8路數據,同樣存放在RAMO到RAM7的63地址,運樣就完成了 64*8的中間矩陣1 的存放。
[0024] 接下來存放中間矩陣2,即第65到第128運64個8路輸入數據,順次存放在RAM8到 RAM15運8個RAM中的0到63地址。中間矩陣3、中間矩陣4,直到中間矩陣16順次存回RAMO~ RAM7 中。
[0025] 中間矩陣17時再存入RAMO~RAM7的0~63地址空間中,和前16個矩陣一樣,中間矩陣 18存入RAM8~RAMl 5的0~63地址,中間矩陣19~中間矩陣32存回RAMO~RAM7的64~960地址,W 此類推。
[0026] 上述做法的目的是將被操作的存儲器與正在寫數據的存儲器分開,W避免同時對 同一個存儲器的同一地址空間既讀又寫,產生競爭。既做到數據讀寫的流水,又避免讀寫沖 夭。
[0027] 寫地址要實現按照上述存放方式每次給出8個輸入數據的地址。每一個64*8的中 間矩陣為一帖數據,則帖數相對應的存放RAM及地址如表1所示。
[002引表1帖數相對應的存放RAM及地址
讀數據時將輸入的最大值的index值(即為最大值對應的位置)變換成相應的RAM編號 及RAM地址,讀取該地址的數據。
[0029] 如圖4,本實施例提供的DBF運算模塊由S部分組成: 第一部分:即矩陣運算單元,將輸入數據構成的輸入矩陣和從數據存儲模塊讀出的數 據構成的系數矩陣進行點乘,然后再按行求平均和求絕對值,形成中間矩陣。
[0030] 第二部分:即數據比較單元,用于完成中間矩陣最大值及其index值的比較和根據 該index值抽取的所有緩存矩陣中相同index值構成的向量中次大值及次大值index的比較 結果。
[0031] 第=部分:即數據存取控制單元,用于把中間矩陣按照一定的規則寫入數據存儲 模塊中,并且根據最大值的index值計算出讀地址,根據該地址抽取出所需的向量。
[0032] 本實例提供的DBF運算模塊中的矩陣運算單元分為兩個部分,分別是矩陣點乘模 塊,矩陣求平均和求絕對值模塊。
[0033] 本實例提供的DBF運算模塊中的數據比較單元分為兩個部分,分別是比較存儲陣 列最大值模塊和比較次大值模塊。
[0034] 如圖6,如上述的一種可重構DBF算法硬件加速器的可重構DBF算法硬件加速方法, 包括如下步驟: DGMAC接口接收到上位機發送的配置信息和數據信息,重構控制模塊解析上位機發出 的配置信息,完成對數據存儲模塊的配置和對DBF運算路數的配置; 2) DBF運算模塊接收配置信息中的運算數據,與數據存儲模塊根據配置信息讀取的數 據進行運算; 3) DBF運算模塊將運算的中間結果存入數據存儲模塊,在一帖數據運算完成后,根據數 據比較單元的比較結果,得到當前帖數據對應的最大值及該最大值的位置,再在數據存儲 模塊中讀取該最大值對應存儲位置的一組數據,將該組數據再次送入數據比較單元,比較 出運組數據次大值及對應的位置,根據最大值的位置和次大值的位置進行運算,得到最終 的輸出結果。
[0035] 系統測試 首先用Modelsim完成各模塊的功能仿真測試。
[0036] 然后通過Xilinx Vivado 2015.3的時序分析功能分析時序再調整時序,使得整個 系統的時序Slcak為正。
[0037] 再由Xilinx Vivado 2015.3完成系統的綜合、實現,將生成的二進制文件下載到 Xilinx VC707 FPGA開發板中,并通過插入ILA核檢測響應信號完成板級驗證。
[0〇3引最后將Xilinx VC707 FPGA開發板與上位機相連,上位機發送配置信息和數據,然 后將運算結果通過GMAC回傳給上位機,與上位機的軟件運算結果進行對比驗證,并計算出 f目噪比,最終完成系統的驗證。
【主權項】
1. 一種可重構DBF算法硬件加速器,與上位機通信連接,其特征在于包括: 重構控制模塊,接收上位機發出的DBF算法信息數據,并根據DBF算法信息決定是否發 出重構控制信號; 數據存儲模塊,用于完成對DBF算法信息數據的寫入,存儲和讀出; DBF運算模塊,從數據存儲模塊讀取數據,完成DBF算法的運算并輸出相應結果。2. 根據權利要求1所述的可重構DBF算法硬件加速器,其特征在于所述數據存儲模塊包 括: 片上RAM存儲單元,用于存儲寫地址,并根據讀地址將DBF運算模塊需要的數據從存儲 器中讀出; 寫地址產生模塊,用于根據DBF運算模塊產生的中間結果產生寫地址,將數據存入存儲 器; 讀地址產生模塊,用于產生讀地址。3. 根據權利要求2所述的可重構DBF算法硬件加速器,其特征在于包括重構控制模塊, 所述重構控制模塊包括: 重構狀態機,輸出重構控制信號; 存儲資源復選模塊,用于重構數據存儲模塊中片上存儲器RAM的排列; 運算資源復選模塊,用于重構多路并行流水計算資源。4. 根據權利要求2所述的可重構DBF算法硬件加速器,其特征在于所述多路并行流水計 算資源為八路至十六路并行流水線。5. 根據權利要求1所述的可重構DBF算法硬件加速器,其特征在于所述重構控制模塊通 過GMAC接口與上位機通信連接。6. 根據權利要求1所述的可重構DBF算法硬件加速器,其特征在于所述DBF運算模塊包 括: 矩陣運算單元,包括矩陣點乘單元、矩陣求平均單元以及求絕對值單元,用于分別對應 地實現輸入數據與系數矩陣的點乘運算、求平均運算以及求絕對值運算,用于找出矩陣中 最大值及其位置; 數據存取控制單元,用于實現中間結果和最終結果的存取控制; 數據比較單元,對矩陣運算單元的輸出結果的進行比較;并從數據存儲模塊讀出所述 比較的結果,用于找出矩陣中次大值及次大值對應的位置。7. 基于如權利要求1-6任一項所述的一種可重構DBF算法硬件加速器的可重構DBF算法 硬件加速器的控制方法,其特征在于包括如下步驟: 1) 重構控制模塊解析上位機發出的配置信息,完成對數據存儲模塊的配置和對DBF運 算路數的配置; 2. DBF運算模塊接收配置信息中的運算數據,與數據存儲模塊根據配置信息讀取的數 據進行運算; 3. DBF運算模塊將運算的中間結果存入數據存儲模塊,在一幀數據運算完成后,根據數 據比較單元的比較結果,得到當前幀數據對應的最大值及該最大值的位置,再在數據存儲 模塊中讀取該最大值對應存儲位置的一組數據,將該組數據再次送入數據比較單元,比較 出該組數據次大值及對應的位置,根據最大值的位置和次大值的位置進行運算,得到最終 的輸出結果。
【文檔編號】G06F13/40GK105955896SQ201610272042
【公開日】2016年9月21日
【申請日】2016年4月27日
【發明人】潘紅兵, 李晨杰, 呂飛, 秦子迪, 陳金銳, 李麗, 李偉
【申請人】南京大學