《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 激光點(diǎn)云解算的軟硬件協(xié)同設(shè)計(jì)與實(shí)現(xiàn)
激光點(diǎn)云解算的軟硬件協(xié)同設(shè)計(jì)與實(shí)現(xiàn)
2019年電子技術(shù)應(yīng)用第3期
何銳斌1,,2,李子揚(yáng)1,,賀文靜1,胡 堅(jiān)1,,李傳榮1
1.中國科學(xué)院光電研究院 中國科學(xué)院定量遙感信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,,北京100094; 2.中國科學(xué)院大學(xué),,北京100049
摘要: 機(jī)載激光雷達(dá)在測繪,、勘探等領(lǐng)域有廣泛的應(yīng)用,其數(shù)據(jù)處理聯(lián)合激光雷達(dá)測距數(shù)據(jù)和姿態(tài)位置信息,,解算獲得掃描目標(biāo)的三維坐標(biāo)并形成三維點(diǎn)云圖,。為了滿足機(jī)載激光雷達(dá)點(diǎn)云解算的實(shí)時(shí)性要求,采用基于軟硬件協(xié)同的設(shè)計(jì)方法,,設(shè)計(jì),、實(shí)現(xiàn)了激光點(diǎn)云解算的SoC。通過使用基于AXI-4的DMA高速傳輸方式,,運(yùn)用流水線優(yōu)化和存儲優(yōu)化方法,,實(shí)現(xiàn)了高性能的硬件加速器。實(shí)驗(yàn)結(jié)果表明,,提出的激光點(diǎn)云解算的SoC能夠滿足機(jī)載平臺的實(shí)時(shí)性處理要求,。
中圖分類號: TP752
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.182355
中文引用格式: 何銳斌,李子揚(yáng),,賀文靜,,等. 激光點(diǎn)云解算的軟硬件協(xié)同設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,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.
Design and implementation of points position cloud calculation based on software-hardware co-design
He Ruibin1,,2,,Li Ziyang1,He Wenjing1,,Hu Jian1,,Li Chuanrong1
1.Key Laboratory of Quantitative Remote Sensing Information Technology,,Academy of Opto-Electronics,, Chinese Academy of Sciences,,Beijing 100094,China,; 2.University of Chinese Academy of Sciences,,Beijing 100049,China
Abstract: Airborne lidar has a wide range of applications in mapping, exploration and so on. Its data processing uses the ranging data of LiDAR and the position and orientation information to obtain high precision surface models. In order to meet the real-time requirements of airborne LiDAR points position cloud calculation, a software-hardware co-design based method is used to design and implement the SoC of points position cloud calculation. A high-performance hardware accelerator is realized by using the AXI-4-based DMA high-speed transmission and using pipeline optimization and storage optimization methods. The experimental results show that the proposed SoC of points position cloud calculation can meet the real-time processing requirements of the airborne platform.
Key words : software-hardware co-design,;FPGA,;hardware accelerator;LiDAR points position calculation

0 引言

    近年來,,遙感技術(shù)迅猛發(fā)展,,激光雷達(dá)技術(shù)(Light Detection And Ranging,LiDAR)能夠快速獲取并實(shí)時(shí)處理形成高精度地表多維信息[1],,在車載,、機(jī)載和星載等平臺具有廣泛應(yīng)用[2-4],LiDAR的實(shí)時(shí)性處理問題是目前的研究熱點(diǎn),。LiDAR系統(tǒng)獲取的原始數(shù)據(jù)需要經(jīng)過點(diǎn)云解算才能形成三維數(shù)據(jù),,點(diǎn)云解算是LiDAR系統(tǒng)數(shù)據(jù)處理算法中必不可少的環(huán)節(jié),具有計(jì)算量大,、處理算法復(fù)雜等特點(diǎn),,機(jī)載和星載等高速平臺更是對點(diǎn)云解算實(shí)時(shí)性處理提出了更高的要求[5],同時(shí)也對系統(tǒng)的硬件資源和功耗有著嚴(yán)格限制,。

    隨著超大規(guī)模集成電路技術(shù)的迅速發(fā)展,,片上系統(tǒng)[6](System on a Chip,SoC)被廣泛應(yīng)用于計(jì)算機(jī),、電子通信和軍工等領(lǐng)域,,多核異構(gòu)[7]的運(yùn)算處理模式能夠有效提升系統(tǒng)的運(yùn)算性能,通過ARM處理器完成靈活性較高的軟件實(shí)現(xiàn),,配合FPGA或ASIC對系統(tǒng)進(jìn)行硬件加速,,這種軟硬件協(xié)同的開發(fā)模式能夠充分發(fā)揮異構(gòu)處理核各自的優(yōu)勢,在短周期內(nèi)實(shí)現(xiàn)低功耗,、高性能的實(shí)時(shí)處理系統(tǒng),。

    本文采用基于軟硬件協(xié)同的設(shè)計(jì)方法,充分結(jié)合點(diǎn)云解算的數(shù)據(jù)和運(yùn)算特點(diǎn),,運(yùn)用流水線優(yōu)化和本地存儲優(yōu)化策略,,開發(fā)了基于FPGA的硬件加速器,提升點(diǎn)云解算的運(yùn)算性能,。

1 激光點(diǎn)云解算原理

    激光點(diǎn)云解算是將激光雷達(dá)測距數(shù)據(jù)和定位定向系統(tǒng)(Position and Orientation System,,POS)設(shè)備的位置姿態(tài)信息進(jìn)行聯(lián)合解算,,得到每個(gè)激光點(diǎn)元的三維坐標(biāo)的過程,處理流程圖如圖1所示,。這個(gè)過程涉及激光雷達(dá)距離信息解算,、POS數(shù)據(jù)解算、坐標(biāo)變換和高斯投影等過程,,其中高斯投影涉及大量的乘法和三角運(yùn)算,,是該算法的性能瓶頸。

qrs2-t1.gif

2 軟硬件協(xié)同設(shè)計(jì)與實(shí)現(xiàn) 

2.1 SoC結(jié)構(gòu)設(shè)計(jì)

    本文將激光點(diǎn)云解算分為軟件實(shí)現(xiàn)和硬件加速兩個(gè)部分,,其中一部分是將運(yùn)算簡單,、具有較多判斷語句和指針操作的算法模塊交由PS端軟件實(shí)現(xiàn)。另一部分則是將對算法性能影響較大,,可并向化程度高并且不需要邏輯判斷的部分用PL端的FPGA硬件加速器實(shí)現(xiàn),,以獲得更短的處理時(shí)耗。PL端的硬件邏輯電路通過流水線方法優(yōu)化和本地存儲優(yōu)化,,實(shí)現(xiàn)SoC的性能加速,。

    激光雷達(dá)測距數(shù)據(jù)以及對應(yīng)的POS數(shù)據(jù)存儲在外部存儲單元中,之后讀取到PS端的內(nèi)存中,。PS端負(fù)責(zé)處理激光點(diǎn)元的距離解算,、POS數(shù)據(jù)解算和坐標(biāo)變換三個(gè)模塊的運(yùn)算。高斯投影模塊處理的點(diǎn)云數(shù)據(jù)間的依賴性低,,可并行化程度較高,,由PL端的硬件邏輯電路實(shí)現(xiàn)。最終PS端將處理完成的三維點(diǎn)云坐標(biāo)結(jié)果存儲到外部存儲單元中,。SoC結(jié)構(gòu)設(shè)計(jì)如圖2所示,。

qrs2-t2.gif

2.2 通信設(shè)計(jì)

    PL端和PS端之間的數(shù)據(jù)通信是實(shí)現(xiàn)軟硬件協(xié)同處理的重要組成部分,主要分為消息通信和數(shù)據(jù)傳輸兩部分,。消息通信主要是實(shí)現(xiàn)PL端的硬件加速器和PS端的處理器之間的狀態(tài)反饋,。數(shù)據(jù)傳輸實(shí)現(xiàn)硬件加速器和處理器之間大量的運(yùn)算數(shù)據(jù)的傳遞,包括硬件加速器運(yùn)算數(shù)據(jù)的輸入傳輸和運(yùn)算結(jié)果數(shù)據(jù)的回寫傳輸,。

    結(jié)合FPGA本地存儲空間小而訪問速度快,、主存儲器空間大而訪問速度較慢以及點(diǎn)云解算具有按掃描行存儲處理數(shù)據(jù)的特點(diǎn),為了獲取PS端和PL端的最大傳輸性能,,本文使用了基于AXI-4協(xié)議[8]的DMA高速傳輸方式,。DMA是一種高效的數(shù)據(jù)傳遞方式,通過DMA控制器實(shí)現(xiàn)硬件加速器和內(nèi)存之間的數(shù)據(jù)傳遞,,無需ARM核CPU的干預(yù),。因此,在PL端的FPGA硬件加速器訪問主存的時(shí)候,,PS端的CPU可以繼續(xù)執(zhí)行程序,。AXI-4協(xié)議具有獨(dú)立的讀和寫數(shù)據(jù)通道,,支持低成本的直接存儲器訪問DMA傳輸。同時(shí),,該協(xié)議是基于開始地址的猝發(fā)式傳輸,,能夠完成整塊數(shù)據(jù)的搬移,并具有廣泛的IP可拓展性,。

    本文在設(shè)計(jì)FPGA硬件加速器時(shí)精簡了控制信號,,只保留數(shù)據(jù)傳輸?shù)钠鹬狗答佇盘?,進(jìn)一步減少了傳輸量和時(shí)延,,將點(diǎn)云解算數(shù)據(jù)轉(zhuǎn)化為流數(shù)據(jù)進(jìn)行傳輸,實(shí)現(xiàn)硬件加速器和ARM處理器之間的高速數(shù)據(jù)通信,。

    DMA傳輸不可避免地會帶來Cache數(shù)據(jù)和內(nèi)存數(shù)據(jù)不一致的問題[9],。如圖3所示,CPU通過DMA控制器來控制PL端的硬件加速器和PS端的內(nèi)存之間的數(shù)據(jù)傳送,。當(dāng)硬件加速器將處理完成的數(shù)據(jù)回寫到內(nèi)存中,,這時(shí)內(nèi)存中變量A已經(jīng)更新,但Cache中變量A的值不變,。在CPU訪問變量A時(shí),,命中Cache獲取了舊值而不是內(nèi)存中已經(jīng)更新的A值,引發(fā)數(shù)據(jù)不一致現(xiàn)象,。

qrs2-t3.gif

    本文通過XSDK開發(fā)環(huán)境中的cacheFlush( )和cacheIncalidate( )函數(shù)在PS端解決了維護(hù)Cache一致性的問題:在通信數(shù)據(jù)通過DMA傳入FPGA硬件加速器之前,,使用cacheFlush( )函數(shù)將Cache中對應(yīng)的緩存數(shù)據(jù)壓入DDR中。在硬件加速器完成數(shù)據(jù)處理并回寫結(jié)果到DDR后,,使用cacheIncalidate( )函數(shù)保持DDR和CPU之間的數(shù)據(jù)同步,。

2.3 加速器設(shè)計(jì)與優(yōu)化

    硬件加速器的設(shè)計(jì)由FPGA實(shí)現(xiàn),包括通信單元、運(yùn)算處理單元和存儲單元,,為了進(jìn)一步提高運(yùn)行性能,,進(jìn)行運(yùn)算處理單元流水線優(yōu)化和存儲單元的優(yōu)化。

2.3.1 流水線優(yōu)化

    為了增加程序的并發(fā)性,,流水線優(yōu)化可以使多次迭代中的相同操作依次執(zhí)行,,在不大幅度增加硬件資源的情況下,最大限度地減小迭代間的時(shí)延,,提升硬件加速器的運(yùn)算效率,。下面對處理函數(shù)的流水線優(yōu)化進(jìn)行說明。

    如圖4所示,,用循環(huán)對每個(gè)激光雷達(dá)點(diǎn)元進(jìn)行處理,,假設(shè)每個(gè)點(diǎn)元的處理周期為T,共有N個(gè)點(diǎn)元,,則流水線優(yōu)化前,,需要的總時(shí)鐘個(gè)數(shù)為N×T個(gè)周期,;流水線優(yōu)化后,假設(shè)循環(huán)迭代間的周期間隔為Ti,,則總時(shí)鐘為N×Ti+T個(gè)周期,,性能提升倍數(shù)為:

    qrs2-gs1.gif

qrs2-t4.gif

    在XHLS開發(fā)環(huán)境中通過PIPELINE優(yōu)化指令可以對硬件加速器運(yùn)算處理的循環(huán)函數(shù)進(jìn)行流水線優(yōu)化,通過迭代間隔(Initiation Interval,,II)約束因子,,可以對流水線的迭代間隔進(jìn)行控制,進(jìn)而影響硬件加速器的流水線的性能和硬件資源消耗,。本文通過流水線優(yōu)化設(shè)計(jì),,在流水線迭代間隔II=5的情況下,能夠?qū)崿F(xiàn)FPGA運(yùn)算性能近35倍的提升,。

2.3.2 存儲優(yōu)化

    在一般的流水線設(shè)計(jì)中,,數(shù)據(jù)的本地存儲是相對獨(dú)立的,即先將DMA數(shù)據(jù)流全部讀取到FPGA本地存儲單元,,再進(jìn)行流水線運(yùn)算處理,,將處理結(jié)果寫入到本地存儲單元,最后通過DMA整體回寫到PS端的內(nèi)存中,,這種處理模式既消耗FPGA的硬件存儲資源又增加了處理時(shí)延,。

    本文結(jié)合點(diǎn)云解算數(shù)據(jù)獨(dú)立性強(qiáng),數(shù)據(jù)間依賴性弱的特點(diǎn),,優(yōu)化FPGA本地存儲,,直接將DMA傳輸?shù)臄?shù)據(jù)通道連接入運(yùn)算流水線上,使每個(gè)點(diǎn)元數(shù)據(jù)的讀寫直接“鑲嵌”到流水線處理中,,進(jìn)一步減少本地存儲和時(shí)延,,硬件加速器的整體運(yùn)算性能在流水線的基礎(chǔ)上再提升2倍。存儲優(yōu)化前后示意圖如圖5所示,。

qrs2-t5.gif

3 實(shí)驗(yàn)結(jié)果分析

    實(shí)驗(yàn)采用Xilinx公司的Zedboard開發(fā)板,,該板以ZYNQ-7000芯片為核心,集成Cortex-A9雙ARM處理核和Artix7 FPGA可編程邏輯陣列,。實(shí)驗(yàn)時(shí),,PS端的ARM處理器主頻設(shè)置為667 MHz,PL端的FPGA時(shí)鐘頻率為100 MHz,。實(shí)驗(yàn)激光點(diǎn)云原始數(shù)據(jù)來自某線陣推掃LiDAR載荷飛行試驗(yàn)獲取的一段數(shù)據(jù),,行數(shù)為666行,每行數(shù)據(jù)量為1 448 B,,每行對應(yīng)的載荷位置POS數(shù)據(jù)量為56 B,,總數(shù)據(jù)量為978 KB。

3.1 硬件資源消耗

    實(shí)驗(yàn)分析了FPGA硬件加速器的流水線設(shè)計(jì)中,,不同迭代間隔II對其硬件資源的占用率的影響,。在數(shù)據(jù)處理量一定的情況下,,流水線的II約束因子分別設(shè)置為2、5,、10,、20、40,,獲取加速器的硬件資源消耗情況和對應(yīng)的處理時(shí)延,,并計(jì)算其相對于流水線優(yōu)化前的性能提升倍數(shù),如表1所示,。

qrs2-b1.gif

    從表1可知,,隨著流水線的迭代間隔(II)減小,硬件加速器的4種類型的硬件資源消耗在不斷增加,。當(dāng)約束因子II向1個(gè)時(shí)鐘周期壓縮的時(shí)候,,DSP和LUT資源消耗急劇增加,。本文結(jié)合開發(fā)板硬件資源可使用量,,選擇II=5作為最終硬件加速器流水線的迭代間隔。

3.2 運(yùn)行性能分析

    為了比較本文設(shè)計(jì)的硬件加速器的加速效果,,分別測出了在ARM處理器軟件實(shí)現(xiàn)算法的處理時(shí)延周期,,以及硬件加速器在各個(gè)優(yōu)化設(shè)計(jì)階段的處理時(shí)延周期,并計(jì)算其相對于軟件實(shí)現(xiàn)的加速比,。表2給出了處理一行LiDAR點(diǎn)元數(shù)據(jù)的實(shí)驗(yàn)結(jié)果,。

qrs2-b2.gif

    各種實(shí)現(xiàn)方式的處理周期和加速比如圖6所示,結(jié)合表2和圖6可以看出,,本文設(shè)計(jì)的硬件加速器的性能相比于單純的軟件實(shí)現(xiàn)具有大幅度的提升,。

qrs2-t6.gif

    實(shí)驗(yàn)表明,本文提出的設(shè)計(jì)處理單行激光點(diǎn)云數(shù)據(jù)耗時(shí)6.5 ms,,能夠滿足激光雷達(dá)在150 Hz掃描頻率下每行360點(diǎn)元數(shù)據(jù)的實(shí)時(shí)處理要求,。

4 結(jié)論

    本文采用基于軟硬件協(xié)同的設(shè)計(jì)方法,設(shè)計(jì)并實(shí)現(xiàn)了激光點(diǎn)云解算的SoC,。在Xilinx公司的Zedboard開發(fā)板上,,采用流水線優(yōu)化和FPGA存儲優(yōu)化的方法,開發(fā)了具有高效運(yùn)行性能的硬件加速器,。實(shí)驗(yàn)結(jié)果表明,,本文的激光點(diǎn)云解算SoC能夠滿足機(jī)載平臺的實(shí)時(shí)性處理要求,使三維點(diǎn)云解算在飛行器,、衛(wèi)星等高速平臺進(jìn)行低功耗,、實(shí)時(shí)性處理成為可能,為遙感三維影像生成技術(shù)的片上系統(tǒng)實(shí)現(xiàn)奠定了堅(jiān)實(shí)的基礎(chǔ),。

參考文獻(xiàn)

[1] 黎荊梅,,周梅,,李傳榮.陣列推掃式機(jī)載激光雷達(dá)三維點(diǎn)云解算方法研究[J].遙感技術(shù)與應(yīng)用,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] 郭商勇,,胡雄,閆召愛,,等.國外星載激光雷達(dá)研究進(jìn)展[J].激光技術(shù),,2016(5):772-778.

[5] 李然,王成,,蘇國中,,等.星載激光雷達(dá)的發(fā)展與應(yīng)用[J].科技導(dǎo)報(bào),2007(14):58-63.

[6] MARTIN G.Overview of the MPSoC design challenge,,2006[C].Design Automation Conference.ACM/IEEE,,2006:274-279.

[7] 陳芳園,張冬松,,王志英.異構(gòu)多核處理器體系結(jié)構(gòu)設(shè)計(jì)研究[J].計(jì)算機(jī)工程與科學(xué),,2011(12):27-36.

[8] 馬飛,劉琦,,包斌.基于FPGA的AXI4總線時(shí)序設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2015,41(6):13-15,,19.

[9] 曹彥榮,,張銳.DMA傳輸與Cache一致性分析[J].硅谷,2014,,7(8):39-40.



作者信息:

何銳斌1,,2,李子揚(yáng)1,,賀文靜1,,胡  堅(jiān)1,李傳榮1

(1.中國科學(xué)院光電研究院 中國科學(xué)院定量遙感信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京100094,;

2.中國科學(xué)院大學(xué),,北京100049)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。