周峰 李健
摘 要: 合成孔徑雷達(SAR)數(shù)據(jù)處理中的一個重要操作是分別訪問存儲器中的距離向和方位向數(shù)據(jù),當(dāng)前在Keystone多核DSP平臺上主要使用單個核或EDMA訪問SAR數(shù)據(jù),但很多情形下無法充分利用存儲器的帶寬。針對該問題,結(jié)合EDMA,DDR存儲器等外設(shè)的硬件特性,提出一種適用于多核DSP的SAR數(shù)據(jù)分塊映射存儲方法及行切換開銷最優(yōu)的并行訪問技術(shù),并給出應(yīng)用并行訪問模式的一個充分條件。測試結(jié)果表明,分塊映射存儲方法能均衡距離向和方位向數(shù)據(jù)的訪問速度,且更能充分地利用存儲器帶寬,提高數(shù)據(jù)的訪問效率。
關(guān)鍵詞: 多核DSP; 并行訪問; 信號處理; 矩陣轉(zhuǎn)置; 合成孔徑雷達; 分塊映射
中圖分類號: TN957.52?34 文獻標(biāo)識碼: A 文章編號: 1004?373X(2018)15?0026?05
Research on multi?core DSP based parallel access for SAR data
ZHOU Feng, LI Jian
(The 32th Research Institute of China Electronics Technology Group Corporation, Shanghai 201808, China)
Abstract: One of the important operations during SAR (synthetic aperture radar) data processing is to access the range direction and azimuth data stored in the memory. The method of single core or EDMA is mainly used to access the SAR data on Keystone multi?core DSP platform, but the memory bandwidth couldn′t be taken full advantage in many cases. For the above problem, the hardware features of EDMA, DDR and other peripherals are combined to propose a SAR data block mapping storage method suitable for multi?core DSP, and a parallel access technology for optimal row switch overhead. A sufficient condition for parallel access mode is given. The test results show that the block mapping storage method can balance the access speed of range direction and azimuth data, utilize the memory bandwidth more effectively, and improve the data access efficiency.
Keywords: multi?core DSP; parallel access; signal processing; matrix transpose; SAR; block mapping
合成孔徑雷達(SAR)是一種應(yīng)用比較廣泛的成像雷達,具有二維分辨能力,抗干擾能力強,能全天候、全天時工作,并且能夠穿透云層和掩蓋物。在國防和國民經(jīng)濟等眾多領(lǐng)域中扮演著重要角色。目前,多核DSP的數(shù)據(jù)處理平臺在SAR信號處理領(lǐng)域仍有著廣泛的應(yīng)用[1?3]。SAR采集到的原始數(shù)據(jù)為一個二維矩陣,二維矩陣中每一行的數(shù)據(jù)是對發(fā)射的線性調(diào)頻脈沖進行采樣的值,每一列的數(shù)據(jù)是雷達在不同空間位置處對接收到的線性調(diào)頻脈沖進行采樣的值。因此,二維矩陣的行方向就為距離向,列方向就為方位向。
當(dāng)前SAR數(shù)據(jù)存儲器主要以DDR SDRAM為主。對DDR存儲器的連續(xù)地址訪問時,速率可達到10 GB/s,如果矩陣按照順序存儲,則距離向數(shù)據(jù)的訪問速率較高。方位向數(shù)據(jù)由于被分開存儲到DDR的多個頁中,故需要頻繁地進行關(guān)閉頁、預(yù)充電、打開頁等操作,導(dǎo)致其訪問速率降得很低,大約只能達到150 MB/s。因此,需要研究一種能提高方位向數(shù)據(jù)訪問速率的方法。文獻[4?6]分別研究了兩頁式、三頁式矩陣轉(zhuǎn)置方法,文獻[2,7?8]研究了快速轉(zhuǎn)置和原位轉(zhuǎn)置方法。這些方法適合于只需要單次轉(zhuǎn)置的SAR成像算法,例如距離多普勒算法。文獻[9?10]研究了矩陣線性映射方法,將矩陣分塊映射到DDR的頁面內(nèi),能在一定程度上均衡距離向和方位向數(shù)據(jù)的訪問速度。但文獻[9]的映射方法會造成DDR不同行內(nèi)的方位向數(shù)據(jù)的間隔過大,無法發(fā)揮Keystone上EDMA的性能。文獻[10]需要設(shè)計專用的地址計算硬件單元,無法直接在DSP上使用。文獻[3]提出一種交織存儲方式,解交織時僅使用單路EDMA傳輸,沒有充分利用DSP的傳輸帶寬,而且通過使用CPU解交織得到距離向和方位向數(shù)據(jù),不僅占用計算資源,而且訪問速度也慢。
本文根據(jù)EDMA和DDR的硬件特性,提出一種適合于Keystone多核DSP的分塊映射存儲方式,并研究SAR數(shù)據(jù)的并行訪問模式,給出應(yīng)用該模式的充分條件。該方法能提高數(shù)據(jù)的實際傳輸帶寬,加快數(shù)據(jù)的訪問速度。本文提出的矩陣分塊映射方法和文獻[2,9]使用的方法相比更適合在DSP上使用,和文獻[10]相比,更能充分發(fā)揮多核DSP的并行處理性能。
矩陣分塊映射的主要方法就是將矩陣分為多個子矩陣,再分別將每個子矩陣存儲到DDR的一個物理頁面中。這樣DDR的一個頁面中既有距離向數(shù)據(jù),也有方位向數(shù)據(jù),因此可在一定程度上均衡距離向和方位向數(shù)據(jù)的訪問。
設(shè)SAR所處理的數(shù)據(jù)矩陣是個二維矩陣,記為[Ai, j],[0≤i≤NA-1],[0≤j≤NR-1],其中,[NA]表示方位向采樣點數(shù),[NR]表示距離向采樣點數(shù),[i]表示邏輯行號,[j]表示邏輯列號,這里的[i, j]稱為數(shù)據(jù)的邏輯坐標(biāo)。
DDR在尋址時是按照bank、行、列的順序進行,因此是個三維空間,記為[Bb, r, c],其中,[b]表示bank號,[r]表示行號,[c]表示列號。這里的[b, r, c]稱為數(shù)據(jù)的物理坐標(biāo)。
映射過程就是將數(shù)據(jù)的二維邏輯坐標(biāo)映射到三維物理坐標(biāo)的過程,具體方法如下:
將二維矩陣[A]分成[W×L]個等大小的子矩陣,其中,[W]表示方位向上子矩陣的個數(shù),[L]表示距離向上子矩陣的個數(shù)。子矩陣的大小為[Na×Nr],每個子矩陣用[Am,n]表示,其中,[Na=NAW],[Nr=NRL],[m∈0, W],[n∈0, L]。分塊后的矩陣如下式所示:
將每個子矩陣映射到DDR的一個頁面,子矩陣的大小是2 KB,包含256個復(fù)數(shù)點。子矩陣可以采用方陣形式([16×16])或其他形式([8×32],[4×64]等),為使方位向和距離向的行切換次數(shù)保持平衡,子矩陣采用方陣的形式[7]。
根據(jù)映射方法建立從二維邏輯坐標(biāo)[i, j]到三維物理坐標(biāo)[b, r, c]的映射關(guān)系:
式中:[floorx]表示對變量[x]向下取整;[modxy]表示對[xy]取余。
在上面的兩種映射關(guān)系中,子矩陣內(nèi)的數(shù)據(jù)在每個DDR頁面里的排列順序如圖1所示。
在圖1的存儲方式中,每[Na]個距離向數(shù)據(jù)是連續(xù)存儲的,方位向數(shù)據(jù)是離散存儲的。
映射后的bank分布圖如圖2所示,圖中的每個小方格表示一個子矩陣,小方格里的數(shù)字表示bank號,根據(jù)前面的映射關(guān)系,每個子矩陣行[Ai,0,Ai,1,…,Ai,L]存放在同一個bank中,接著下一個子矩陣行存放在下一個bank中。
由文獻[11]可知,對于64位1 333 MB的DDR,其最大訪問帶寬是10 666 MB/s,而EDMA僅CC0的一個傳輸控制器的最大帶寬就能達到16 000 MB/s,因此,DDR沒有足夠的帶寬支持多個EDMA傳輸控制器對DDR進行并發(fā)訪問,優(yōu)先級相同的情況下,它們將瓜分DDR的帶寬。本文之所以還使用多個EDMA同時對DDR進行訪問是因為單個EDMA傳輸控制器實際使用帶寬遠遠達不到其理論最大帶寬。EDMA的實際傳輸帶寬與ACNT的取值呈正相關(guān)的關(guān)系[11],ACNT的取值越大,其實際傳輸帶寬就越大。在根據(jù)1.1節(jié)的存儲方式訪問距離向或方位向數(shù)據(jù)時,ACNT取值最大就是[8Nr]或[8Na],對于[16×16]的方型子矩陣,即128,對應(yīng)的實際傳輸帶寬約600 MB/s,這就給并行訪問提供了改善實際傳輸帶寬的空間。
注1:若單個EDMA訪問存儲器時帶寬得到充分利用,使用多個EDMA反而會因為總線競爭等因素降低總的帶寬利用率。因此,并行訪問模式適用于單個EDMA沒有充分利用存儲器帶寬的情形。
在使用多個EDMA并行訪問數(shù)據(jù)時,會引入附加的行切換開銷,例如,同時訪問DDR中同一個bank中不同的頁面。在訪問距離向和方位向數(shù)據(jù)時需要采用一定的方式來避免并行訪問帶來的附加行切換開銷。在使用多個EDMA訪問數(shù)據(jù)前,需要合理地為每個EDMA安排待訪問的DDR區(qū)域,下面針對距離向和方位向數(shù)據(jù)分別討論。
在訪問距離向數(shù)據(jù)時,可使用下面的方式:
每個EDMA訪問一個bank中的數(shù)據(jù),如圖3所示,圖中的細箭頭表示各個EDMA的訪問起始位置,首先訪問G0組中的數(shù)據(jù),訪問完全部數(shù)據(jù)后,再跳轉(zhuǎn)到G1組繼續(xù)訪問,直到訪問完最后一組。這種訪問方式的好處是在任意時刻多個EDMA訪問的均是不同bank中的頁面,因此這是訪問距離向數(shù)據(jù)時行切換開銷最優(yōu)的方式。
由于距離向數(shù)據(jù)在每個頁面內(nèi)是連續(xù)存儲的,可使用EDMA的AB同步傳輸模式進行訪問,每次訪問可讀完一行距離向數(shù)據(jù)。
在訪問方位向數(shù)據(jù)時,可使用下面的方式:
所有EDMA跨bank訪問一個頁面中的數(shù)據(jù),如圖3所示,圖中的粗箭頭表示各個EDMA的訪問起始位置,首先訪問[G0]組中第一列子矩陣的數(shù)據(jù),接著跳轉(zhuǎn)到[G1]組繼續(xù)訪問第一列子矩陣的數(shù)據(jù),直到訪問完最后一組。然后再訪問[G0]中第二列的子矩陣,以此類推。這種訪問方式的好處是多個EDMA要么在訪問不同bank中的頁面,要么在訪問同一個bank中的相同頁面,因此這是訪問方位向數(shù)據(jù)時行切換開銷最優(yōu)的方式。
由于方位向數(shù)據(jù)在每個頁面內(nèi)是離散存儲的,可使用EDMA的鏈?zhǔn)絺鬏斈J竭M行訪問。每次訪問可讀完一列方位向數(shù)據(jù)。
注2:Keystone多核DSP上獨立的傳輸控制器多于10個,由于其支持的DDR bank的數(shù)量最多為8個,使用全部的EDMA將導(dǎo)致在任意時刻都產(chǎn)生行切換開銷,因此,在實際中同時使用的EDMA傳輸控制器的數(shù)量最好不超過8個。
1.2節(jié)討論了并行訪問時如何避免引入附加的行切換開銷。但除了行切換,并行訪問時的競爭也會導(dǎo)致各個EDMA的訪問帶寬降低,當(dāng)競爭過于激烈時甚至可能導(dǎo)致并行模式下總的訪問帶寬小于單個EDMA,此時并行訪問將變得沒有意義。這一小節(jié)討論應(yīng)用并行訪問時的一個充分條件。
在多個EDMA同時訪問DDR時,設(shè)第[i]個EDMA在訪問存儲器時的等待時間是[τi],其中,[i∈0,Nh],[Nh]表示EDMA的總數(shù)。Keystone上的DDR控制器有一個特點是當(dāng)最早的訪問請求超過預(yù)設(shè)時間后,會臨時提高該請求的優(yōu)先級至最高[12]。這意味著:
式中[γ]表示預(yù)設(shè)時間值,是16個DDR3CLKOUT的倍數(shù),可通過DDR3控制器中的VBUSM寄存器進行設(shè)置。
在使用單個EDMA時,即沒有競爭產(chǎn)生,假設(shè)對DDR進行訪問的帶寬是[Bs],則:
式中:[Nburst]表示DDR一次突發(fā)傳輸?shù)淖止?jié)數(shù);[t]表示相應(yīng)的傳輸時間。
在使用多個EDMA時,此時會產(chǎn)生競爭,假設(shè)第i個EDMA對DDR進行訪問時的帶寬是[Bim],則:
為讓并行訪問下總的訪問帶寬大于單個EDMA下的訪問帶寬,令:
不等式(6)成立的一個充分條件是:
即并行訪問時每個EDMA的等待時間均是[γ],這是并行模式下訪問帶寬最差的情形。
由式(4),式(7)可得:
[γ 因此,在配置VBUSM寄存器時,可根據(jù)式(8)進行計算來確保并行模式下總的訪問帶寬大于單個EDMA的帶寬。 當(dāng)單個EDMA的實際傳輸帶寬[B]已知時,還可根據(jù)式(3)~式(5)估算并行訪問在最差情形下的實際傳輸帶寬[Bworst]: [Bworst=defBim=NburstNburstBs+τi≥NburstNburstBs+γ] (9) 式(3)給出了一個EDMA訪問等待時間[τi]的上界,還可根據(jù)實驗的方法確定其下界。 由式(4),式(5)可得: [τi=NburstBs-BimBsBim] (10) 當(dāng)多個EDMA在A同步傳輸模式下對DDR存儲器進行高速并發(fā)訪問時,此時的等待時間[τi]最小,記為[Γ],根據(jù)文獻[11]的測試結(jié)果可得: [Γ=16 B10 383 MBs-1 312 MBs10 383×1 312 MB2s2=7 DDR3CLKOUT] (11) 因此,當(dāng)單個EDMA的實際傳輸帶寬[B]已知時,可根據(jù)式(11)估算并行訪問在最好情形下的實際傳輸帶寬[Bbest]: [Bbest=defNburstNburstBs+Γ] (12) 2 測試結(jié)果 當(dāng)前已經(jīng)根據(jù)本文所設(shè)計的方法開發(fā)了SAR數(shù)據(jù)存儲庫。采用德州儀器發(fā)行的TMDSEVM6678L開發(fā)板作為測試硬件平臺。通過開發(fā)板上的DSP完成對片外DDR3 SDRAM的訪問,并對矩陣分塊映射方法和并行訪問帶寬進行測試。 將一個4k×8k的二維復(fù)數(shù)矩陣按照分塊映射的方法存儲到DDR中,然后8個核分別使用1個EDMA傳輸控制器,再以距離向或方位向的方式同時將數(shù)據(jù)從DDR讀取到各自的LL2中,直到遍歷完全部的數(shù)據(jù),記錄總時間并計算實際訪問帶寬。 在測試時用到的傳輸控制器為:CC0的TC0,TC1;CC1的TC0,TC1,TC2,TC3和CC2的TC0,TC1。首先通過核0分別使用這8個傳輸控制器讀取DDR中的距離向或方位向數(shù)據(jù),記錄并計算實際的傳輸帶寬,如圖4中的斜線柱狀圖所示。接著再通過8個核同時使用8個傳輸控制器讀取DDR中的數(shù)據(jù),實際的傳輸帶寬如圖4中的圓點柱狀圖所示。 通過圖4中的測試結(jié)果可以看出,在使用單個EDMA時,每個EDMA傳輸控制器的實際訪問帶寬大約是500 MB/s,在并行訪問時,每個EDMA傳輸控制器的實際訪問帶寬大約是320 MB/s,與單個EDMA相比均有所下降,這是DDR存儲總線的競爭引起。但并行模式下總的訪問帶寬大約是2 560 MB/s,與單個EDMA相比提高了大約5倍。 可根據(jù)式(9)估算并行訪問時各個EDMA的最差訪問帶寬[Bworst]。根據(jù)文獻[12]可知,DDR控制器一次突發(fā)傳輸?shù)淖止?jié)數(shù)是16,DDR3CLKOUT設(shè)置為666.5 MHz,則: [Bworst=NburstNburstBs+?=16 B16 B500 MBs+16666.5 MHz=286 MBs] 再根據(jù)式(12)計算并行訪問時各個EDMA的最優(yōu)訪問帶寬:
[Bbest=NburstNburstBs+Γ=16 B16 B500 MBs+7666.5 MHz=376 MBs]
實際每個EDMA的并行訪問帶寬是320 MB/s,正好位于區(qū)間[Bworst,Bbest]中,這與實測結(jié)果是吻合的。對方位向數(shù)據(jù)的訪問測試結(jié)果和距離向的類似,不再贅述。
通過對Keystone上EDMA和DDR控制器的特性進行分析,提出一種適用于多核DSP的SAR數(shù)據(jù)分塊映射存儲方法,將二維矩陣分塊存儲到DDR的物理頁面中。EDMA可直接從DDR存儲器中訪問一行距離向和方位向數(shù)據(jù),并能以附加行切換開銷最小的方式實現(xiàn)并行訪問,并給出應(yīng)用并行訪問模式的充分條件。測試結(jié)果表明,該方法不僅能均衡距離向和方位向數(shù)據(jù)的訪問速度,還能同時提高兩個維度上數(shù)據(jù)的實際訪問帶寬。
參考文獻
[1] 張強,馮仰松,郭朋.基于多核DSP互聯(lián)架構(gòu)的SAR處理研究與設(shè)計[J].電子技術(shù)應(yīng)用,2016,42(1):37?39.
ZHANG Qiang, FENG Yangsong, GUO Peng. Research and design of SAR imaging based on multi?core DSP interconnection architecture [J]. Application of electronic technique, 2016, 42(1): 37?39.
[2] 張?zhí)m,秦斯奇,唐瑞.SAR成像系統(tǒng)快速矩陣轉(zhuǎn)置算法的設(shè)計[J].科學(xué)技術(shù)與工程,2016,16(21):266?271.
ZHANG Lan, QIN Siqi, TANG Rui. Design of fast matrix transposition algorithm for SAR image systems [J]. Science technology and engineering, 2016, 16(21): 266?271.
[3] 張維陶,孫英欽,姚迪.用于合成孔徑雷達實時成像的高性能虛擬單節(jié)點設(shè)計[J].信號處理,2013,29(10):1376?1382.
ZHANG Weitao, SUN Yingqin, YAO Di. High?performance virtual single?node design for synthetic aperture radar real?time imaging [J]. Journal of signal processing, 2013, 29(10): 1376?1382.
[4] 盧世祥,韓松,王巖飛.合成孔徑雷達實時成像轉(zhuǎn)置存儲器的兩頁式結(jié)構(gòu)與實現(xiàn)[J].電子與信息學(xué)報,2005,27(8):1226?1228.
LU Shixiang, HAN Song, WANG Yanfei. The structure and implementation of the two?frame corner turn memory (CTM) in real time imaging of SAR [J]. Journal of electronics & information technology, 2005, 27(8): 1226?1228.
[5] 謝應(yīng)科,張濤,韓承德.實時SAR成像系統(tǒng)中矩陣轉(zhuǎn)置的設(shè)計和實現(xiàn)[J].計算機研究與發(fā)展,2003,40(1):6?11.
XIE Yingke, ZHANG Tao, HAN Chengde. Design and implementation of matrix transposition unit for real?time SAR image systems [J]. Journal of computer research and development, 2003, 40(1): 6?11.
[6] 李早社,禹衛(wèi)東,汪亮,等.基于SDRAM的星載SAR星上實時成像轉(zhuǎn)置存儲器[J].信號處理,2007,23(3):433?436.
LI Zaoshe, YU Weidong, WANG Liang, et al. Corner turning memory based on SDRAM for spaceborne SAR on?board real?time imaging [J]. Journal of signal processing, 2007, 23(3): 433?436.
[7] 林桐,謝宜壯,劉偉.實時SAR成像系統(tǒng)矩陣原位轉(zhuǎn)置的實現(xiàn)[J].計算機工程,2013,39(6):319.
LIN Tong, XIE Yizhuang, LIU Wei. Implementation of matrix in?place transpose for real?time SAR imaging system [J]. Computer engineering, 2013, 39(6): 319.
[8] 鮑勝榮,周海斌.SAR實時成像高效矩陣轉(zhuǎn)置研究和實現(xiàn)[J].現(xiàn)代雷達,2013,35(3):24?27.
BAO Shengrong, ZHOU Haibin. Study and implementation of high efficient matrix transpose for SAR real?time imaging system [J]. Modern radar, 2013, 35(3): 24?27.
[9] 邊明明,畢福昆,汪精華.實時SAR成像系統(tǒng)矩陣轉(zhuǎn)置方法研究與實現(xiàn)[J].計算機工程與應(yīng)用,2011, 47(22):117?119.
BIAN Mingming, BI Fukun, WANG Jinghua. Research and implementation of matrix transpose for real?time SAR imaging system [J]. Computer engineering and applications, 2011, 47(22): 117?119.
[10] 劉小寧,謝宜壯,趙博雅,等.一種二維訪問效率均衡的SAR數(shù)據(jù)矩陣轉(zhuǎn)置方法[J].電子學(xué)報,2016,44(1):33?38.
LIU Xiaoning, XIE Yizhuang, ZHAO Boya, et al. A SAR data matrix transpose method of efficiency balanced two dimensional access [J]. Acta electronica sinica, 2016, 44(1): 33?38.
[11] Texas Instruments Incorporated. TMS320C6678 memory access performance [EB/OL]. [2011?03?14]. http;//www.ti.com.cn/cn/lit/er/sprz334h/sprz334h.pdf.
[12] Texas Instruments Incorporated. Keystone architecture DDR3 memory controller [EB/OL]. [2015?10?12]. http;//www.ti.com.cn/product/cn/tms320c6678.
[13] Texas Instruments Incorporated. Keystone architecture enhanced direct memory access (EDMA3) controller [EB/OL]. [2015?11?03]. http;//www.ti.com.cn/product/cn/66AK2H14/datasheet/2?ZHCSBT2G#SPRS864C_002a.