文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.182355
中文引用格式: 何銳斌,李子揚,賀文靜,等. 激光點云解算的軟硬件協同設計與實現[J].電子技術應用,2019,45(3):100-103.
英文引用格式: He Ruibin,Li Ziyang,He Wenjing,et al. Design and implementation of points position cloud calculation based on software-hardware co-design[J]. Application of Electronic Technique,2019,45(3):100-103.
0 引言
近年來,遙感技術迅猛發(fā)展,激光雷達技術(Light Detection And Ranging,LiDAR)能夠快速獲取并實時處理形成高精度地表多維信息[1],在車載、機載和星載等平臺具有廣泛應用[2-4],LiDAR的實時性處理問題是目前的研究熱點。LiDAR系統(tǒng)獲取的原始數據需要經過點云解算才能形成三維數據,點云解算是LiDAR系統(tǒng)數據處理算法中必不可少的環(huán)節(jié),具有計算量大、處理算法復雜等特點,機載和星載等高速平臺更是對點云解算實時性處理提出了更高的要求[5],同時也對系統(tǒng)的硬件資源和功耗有著嚴格限制。
隨著超大規(guī)模集成電路技術的迅速發(fā)展,片上系統(tǒng)[6](System on a Chip,SoC)被廣泛應用于計算機、電子通信和軍工等領域,多核異構[7]的運算處理模式能夠有效提升系統(tǒng)的運算性能,通過ARM處理器完成靈活性較高的軟件實現,配合FPGA或ASIC對系統(tǒng)進行硬件加速,這種軟硬件協同的開發(fā)模式能夠充分發(fā)揮異構處理核各自的優(yōu)勢,在短周期內實現低功耗、高性能的實時處理系統(tǒng)。
本文采用基于軟硬件協同的設計方法,充分結合點云解算的數據和運算特點,運用流水線優(yōu)化和本地存儲優(yōu)化策略,開發(fā)了基于FPGA的硬件加速器,提升點云解算的運算性能。
1 激光點云解算原理
激光點云解算是將激光雷達測距數據和定位定向系統(tǒng)(Position and Orientation System,POS)設備的位置姿態(tài)信息進行聯合解算,得到每個激光點元的三維坐標的過程,處理流程圖如圖1所示。這個過程涉及激光雷達距離信息解算、POS數據解算、坐標變換和高斯投影等過程,其中高斯投影涉及大量的乘法和三角運算,是該算法的性能瓶頸。
2 軟硬件協同設計與實現
2.1 SoC結構設計
本文將激光點云解算分為軟件實現和硬件加速兩個部分,其中一部分是將運算簡單、具有較多判斷語句和指針操作的算法模塊交由PS端軟件實現。另一部分則是將對算法性能影響較大,可并向化程度高并且不需要邏輯判斷的部分用PL端的FPGA硬件加速器實現,以獲得更短的處理時耗。PL端的硬件邏輯電路通過流水線方法優(yōu)化和本地存儲優(yōu)化,實現SoC的性能加速。
激光雷達測距數據以及對應的POS數據存儲在外部存儲單元中,之后讀取到PS端的內存中。PS端負責處理激光點元的距離解算、POS數據解算和坐標變換三個模塊的運算。高斯投影模塊處理的點云數據間的依賴性低,可并行化程度較高,由PL端的硬件邏輯電路實現。最終PS端將處理完成的三維點云坐標結果存儲到外部存儲單元中。SoC結構設計如圖2所示。
2.2 通信設計
PL端和PS端之間的數據通信是實現軟硬件協同處理的重要組成部分,主要分為消息通信和數據傳輸兩部分。消息通信主要是實現PL端的硬件加速器和PS端的處理器之間的狀態(tài)反饋。數據傳輸實現硬件加速器和處理器之間大量的運算數據的傳遞,包括硬件加速器運算數據的輸入傳輸和運算結果數據的回寫傳輸。
結合FPGA本地存儲空間小而訪問速度快、主存儲器空間大而訪問速度較慢以及點云解算具有按掃描行存儲處理數據的特點,為了獲取PS端和PL端的最大傳輸性能,本文使用了基于AXI-4協議[8]的DMA高速傳輸方式。DMA是一種高效的數據傳遞方式,通過DMA控制器實現硬件加速器和內存之間的數據傳遞,無需ARM核CPU的干預。因此,在PL端的FPGA硬件加速器訪問主存的時候,PS端的CPU可以繼續(xù)執(zhí)行程序。AXI-4協議具有獨立的讀和寫數據通道,支持低成本的直接存儲器訪問DMA傳輸。同時,該協議是基于開始地址的猝發(fā)式傳輸,能夠完成整塊數據的搬移,并具有廣泛的IP可拓展性。
本文在設計FPGA硬件加速器時精簡了控制信號,只保留數據傳輸的起止反饋信號,進一步減少了傳輸量和時延,將點云解算數據轉化為流數據進行傳輸,實現硬件加速器和ARM處理器之間的高速數據通信。
DMA傳輸不可避免地會帶來Cache數據和內存數據不一致的問題[9]。如圖3所示,CPU通過DMA控制器來控制PL端的硬件加速器和PS端的內存之間的數據傳送。當硬件加速器將處理完成的數據回寫到內存中,這時內存中變量A已經更新,但Cache中變量A的值不變。在CPU訪問變量A時,命中Cache獲取了舊值而不是內存中已經更新的A值,引發(fā)數據不一致現象。
本文通過XSDK開發(fā)環(huán)境中的cacheFlush( )和cacheIncalidate( )函數在PS端解決了維護Cache一致性的問題:在通信數據通過DMA傳入FPGA硬件加速器之前,使用cacheFlush( )函數將Cache中對應的緩存數據壓入DDR中。在硬件加速器完成數據處理并回寫結果到DDR后,使用cacheIncalidate( )函數保持DDR和CPU之間的數據同步。
2.3 加速器設計與優(yōu)化
硬件加速器的設計由FPGA實現,包括通信單元、運算處理單元和存儲單元,為了進一步提高運行性能,進行運算處理單元流水線優(yōu)化和存儲單元的優(yōu)化。
2.3.1 流水線優(yōu)化
為了增加程序的并發(fā)性,流水線優(yōu)化可以使多次迭代中的相同操作依次執(zhí)行,在不大幅度增加硬件資源的情況下,最大限度地減小迭代間的時延,提升硬件加速器的運算效率。下面對處理函數的流水線優(yōu)化進行說明。
如圖4所示,用循環(huán)對每個激光雷達點元進行處理,假設每個點元的處理周期為T,共有N個點元,則流水線優(yōu)化前,需要的總時鐘個數為N×T個周期;流水線優(yōu)化后,假設循環(huán)迭代間的周期間隔為Ti,則總時鐘為N×Ti+T個周期,性能提升倍數為:
在XHLS開發(fā)環(huán)境中通過PIPELINE優(yōu)化指令可以對硬件加速器運算處理的循環(huán)函數進行流水線優(yōu)化,通過迭代間隔(Initiation Interval,II)約束因子,可以對流水線的迭代間隔進行控制,進而影響硬件加速器的流水線的性能和硬件資源消耗。本文通過流水線優(yōu)化設計,在流水線迭代間隔II=5的情況下,能夠實現FPGA運算性能近35倍的提升。
2.3.2 存儲優(yōu)化
在一般的流水線設計中,數據的本地存儲是相對獨立的,即先將DMA數據流全部讀取到FPGA本地存儲單元,再進行流水線運算處理,將處理結果寫入到本地存儲單元,最后通過DMA整體回寫到PS端的內存中,這種處理模式既消耗FPGA的硬件存儲資源又增加了處理時延。
本文結合點云解算數據獨立性強,數據間依賴性弱的特點,優(yōu)化FPGA本地存儲,直接將DMA傳輸的數據通道連接入運算流水線上,使每個點元數據的讀寫直接“鑲嵌”到流水線處理中,進一步減少本地存儲和時延,硬件加速器的整體運算性能在流水線的基礎上再提升2倍。存儲優(yōu)化前后示意圖如圖5所示。
3 實驗結果分析
實驗采用Xilinx公司的Zedboard開發(fā)板,該板以ZYNQ-7000芯片為核心,集成Cortex-A9雙ARM處理核和Artix7 FPGA可編程邏輯陣列。實驗時,PS端的ARM處理器主頻設置為667 MHz,PL端的FPGA時鐘頻率為100 MHz。實驗激光點云原始數據來自某線陣推掃LiDAR載荷飛行試驗獲取的一段數據,行數為666行,每行數據量為1 448 B,每行對應的載荷位置POS數據量為56 B,總數據量為978 KB。
3.1 硬件資源消耗
實驗分析了FPGA硬件加速器的流水線設計中,不同迭代間隔II對其硬件資源的占用率的影響。在數據處理量一定的情況下,流水線的II約束因子分別設置為2、5、10、20、40,獲取加速器的硬件資源消耗情況和對應的處理時延,并計算其相對于流水線優(yōu)化前的性能提升倍數,如表1所示。
從表1可知,隨著流水線的迭代間隔(II)減小,硬件加速器的4種類型的硬件資源消耗在不斷增加。當約束因子II向1個時鐘周期壓縮的時候,DSP和LUT資源消耗急劇增加。本文結合開發(fā)板硬件資源可使用量,選擇II=5作為最終硬件加速器流水線的迭代間隔。
3.2 運行性能分析
為了比較本文設計的硬件加速器的加速效果,分別測出了在ARM處理器軟件實現算法的處理時延周期,以及硬件加速器在各個優(yōu)化設計階段的處理時延周期,并計算其相對于軟件實現的加速比。表2給出了處理一行LiDAR點元數據的實驗結果。
各種實現方式的處理周期和加速比如圖6所示,結合表2和圖6可以看出,本文設計的硬件加速器的性能相比于單純的軟件實現具有大幅度的提升。
實驗表明,本文提出的設計處理單行激光點云數據耗時6.5 ms,能夠滿足激光雷達在150 Hz掃描頻率下每行360點元數據的實時處理要求。
4 結論
本文采用基于軟硬件協同的設計方法,設計并實現了激光點云解算的SoC。在Xilinx公司的Zedboard開發(fā)板上,采用流水線優(yōu)化和FPGA存儲優(yōu)化的方法,開發(fā)了具有高效運行性能的硬件加速器。實驗結果表明,本文的激光點云解算SoC能夠滿足機載平臺的實時性處理要求,使三維點云解算在飛行器、衛(wèi)星等高速平臺進行低功耗、實時性處理成為可能,為遙感三維影像生成技術的片上系統(tǒng)實現奠定了堅實的基礎。
參考文獻
[1] 黎荊梅,周梅,李傳榮.陣列推掃式機載激光雷達三維點云解算方法研究[J].遙感技術與應用,2013,28(6):1033-1038.
[2] DABNEY P,HARDING D,ABSHIRE J,et al.The slope imaging multi-polarization photon-counting lidar: development and performance results,2010[C].IEEE International Geoscience and Remote Sensing Symposium,2010:653-656.
[3] YU A,KRAINAK M,HARDING D,et al.Development effort of the airborne lidar simulator for the lidar surface topography(LIST)Mission[C].Proceedings of SPIE.The International Society for Optical Engineering,2011.
[4] 郭商勇,胡雄,閆召愛,等.國外星載激光雷達研究進展[J].激光技術,2016(5):772-778.
[5] 李然,王成,蘇國中,等.星載激光雷達的發(fā)展與應用[J].科技導報,2007(14):58-63.
[6] MARTIN G.Overview of the MPSoC design challenge,2006[C].Design Automation Conference.ACM/IEEE,2006:274-279.
[7] 陳芳園,張冬松,王志英.異構多核處理器體系結構設計研究[J].計算機工程與科學,2011(12):27-36.
[8] 馬飛,劉琦,包斌.基于FPGA的AXI4總線時序設計與實現[J].電子技術應用,2015,41(6):13-15,19.
[9] 曹彥榮,張銳.DMA傳輸與Cache一致性分析[J].硅谷,2014,7(8):39-40.
作者信息:
何銳斌1,2,李子揚1,賀文靜1,胡 堅1,李傳榮1
(1.中國科學院光電研究院 中國科學院定量遙感信息技術重點實驗室,北京100094;
2.中國科學院大學,北京100049)