夏际金,崔留争
(1.中国电子科技集团公司第三十八研究所,安徽合肥230088;2.数字阵列技术重点实验室,安徽合肥230088;3.智能情报处理重点实验室,安徽合肥230088)
合成孔径雷达(Synthetic Aperture Radar,SAR)是一种高分辨率的成像雷达,通过雷达在飞行载体上的运动形成虚拟等效长天线,获得高方位分辨率的雷达图像。距离多普勒成像,通过对接收的二维信号在距离和方位分别进行线性调频信号的匹配滤波,就可实现对场景的二维成像。该算法通常应用于快速实现成像功能,是一种经典的SAR处理方法。
为了提高信号处理的能力,成像软件采用DSP处理器实现。随着信号处理需求的不断发展,信号处理器也逐步由单核向多处理器、多核方向发展。典型的处理如TigerSharc系列采用紧耦合并行处理的能力,TI推出的Keystone架构的多核DSP片内集成多个处理内核[1],国产BW100处理器采用多片并行处理架构[2]。
对于SAR处理需要很强的处理性能,同时对于处理器存储容量、存储器读写带宽、外部接口带宽等要求较高。通过多核与多线程设计、任务并行设计、计算传输平衡等的设计可以提高SAR处理的综合性能。
TMS320C6678处理器采用Keystone架构,具有8个TMS320C66x内核。每个核内部有32 KB的L1程序缓存、32 KB的L1数据缓存和512 KB的L2缓存。处理器内部有4 MB多核共享存储器(Multicore Shared Memory,MSM),处理器外部可挂DDR3直接访问空间2 GB。外部存储器访问可以采用直接核访问的方式和EDMA的方式传输。内核工作主频为1.25 GHz时理论上具有160 GFLOP和320 GMAC的处理性能。
距离多普勒算法是比较成熟的合成孔径算法,采用频域矫正距离走动的距离多普勒算法是实现快速成像的有效方法。其算法原理[3]如式(1)所示:
采用多核DSP实现的流程如图1所示。接收回波后进行距离向FFT,和距离向匹配函数相乘后执行距离向IFFT实现距离脉压;距离脉压后,截取有效长度后,将一维距离像数据转到频域。在完成一个方位场景的收数后,估计出场景的FDC并在距离频域完成距离走动补偿,之后进行距离IFFT得到一维距离像。采用最大对比度的方法进行多普勒参数估计,得到较为精确的方位匹配函数,从而实现方位脉压。两维脉压后已经得到了幅度图像,通过量化就得到了场景图像。
图1 距离多普勒算法流程图
对于并行任务分配,典型的是数据并行和任务并行[4]。数据并行是指多个线程对不同的数据执行相同的操作。可以通过主从方式实现数据并行,非常适合应用于很多相互无关的小线程处理。
任务并行是指各线程对相同的数据执行不同的操作。采用流水方式实现,最大的挑战是将复杂任务分解到每个核,以及需要非常大的数据通信带宽以满足核间的数据传输。
对于距离多普勒成像方法是分别按照距离线和方位线进行处理,任务组织形式为Nr×Na的复数矩阵。处理距离线时,需要处理Na条Nr点的运算;处理方位线时,需要处理Nr条Na点的运算。每个基本处理运算为一条线,任务分解适合采用数据并行的方式。
距离多普勒算法在多核中设计如图2所示,通过并行计算、同步等方式实现任务到多核的设计实现。其中典型的两个过程距离脉压和方位脉压,距离脉压采用8核虚拟成一个处理节点共同处理;方位脉压采用每个核独立完成子任务的方式实现。
由于合成孔径成像采用的是脉冲式收发数据。在每个收发数据的重复周期内完成收数据,收完数据后空闲的时间较长。可以利用收数空闲的时间完成距离脉压,实现收数同时脉压。采用收数的同时进行脉压处理,提高了处理效率。对于16K点以下的处理可以通过8核流水的方式实现多DSP并行,也可以采用8核共同计算大点数FFT的方式实现并行计算。通常脉压的点数较大,采用8核共同计算大点数FFT的方式适合收数同时脉压。
图2 距离多普勒算法多核设计实现
脉压的运算核心算法就是FFT、匹配函数相乘及IFFT三步操作。
IFFT可以通过算法转换为FFT运算和共轭。因而8核同时脉压的核心算法就可以转换为FFT和复数相乘。
对大点数N,N可以分解为N=N1∗N2通过时域采样,DFT可以被公式化[5]为
通过算法分解,将大点数FFT分成N1∗N2的二维小点数运算。第一步计算N2个N1点的FFT,第二步乘上交叉旋转因子,第三步计算N1个N2点的FFT,这样就实现大点数FFT分解成小点数计算。
点数为N的复数相乘运算通过将长度分成8段就可以将任务分解到8核处理,每个核处理N/8长度的复乘,合在一起就完成了一条距离线的复乘。需要注意的是,对于多核原始数据放在MSM中的话,直接运算需要使每段的长度向上以CACHE LINE为单位对齐,避免多核更新同一条CACHE LINE而导致数据一致性错误。
对于小点数运算如方位脉压(点数<16 384)运算各个处理过程粒度较小、相对独立,可以直接分配到每个核处理。这样可以采用流水的方式将任务分割成每个核能直接处理的力度完成多核心任务的分配。
对于小粒度的运算如方位脉压,待处理的任务数据放在DDR3中。如图3所示,第一层次任务分解粒度较大,可以根据核号分解为任务0到任务7。该级任务分解实现了任务对每个核的分解。
图3 方位脉压任务分配图
为了减少8核对多核共享存储器访问的冲突、提升处理的速度,以及实现处理和计算并行,将放在多核共享存储器中的任务进一步分解。第二级任务分解将任务i分解为任务i0,i1到任务i m,每个子任务能够放在L2缓存计算。其中m的范围为0,1,…,NumOf Task PerCore-1,NumOf Task-PerCore为每个核的任务数。
对于方位脉压计算第一级任务分配为每个核处理Nr/8条方位线的脉压,Num OfTask PerCore=Nr/8。第二级任务分解的粒度为每次处理一条方位线的方位线脉压。
在距离多普勒成像中,典型的运算为脉压运算。在收数脉压阶段采用大点数FFT实现脉压,在方位处理时采用小点数运算,表1给出了大点数脉压测试情况。测试平台为TMDSEVM6678LE平台,该平台性能指标为:处理器主频1 GHz、DDR3主频为1 333 MHz。
表1 8核大点数脉压性能
表1中描述了8核协同处理不同点数的脉压时间,脉压包含FFT计算、复乘运算和IFFT运算。大点数FFT的运算按照式(2)的分解方法分配到8核协同计算。
大点数IFFT运算转化为FFT运算过程中,输入数据共轭、FFT之后数据共轭再除以N在每个核的运算中完成、不必整条线处理完FFT前后对整条线处理,提高了运算性能。
文献[6]基于TS201对大点数FFT进行了Cache优化,在主频600 MHz的情况下得到了优于其他方法的大点数FFT性能。表2为文献[6]基于TS201优化后大点数FFT和C6678大点数FFT处理性能对比。
表2 TS201和C6678大点数FFT对比
通过对比发现,作大点数FFT时采用C6678比TS201处理性能有很大的提高。随着处理时点数越大,C6678相对TS201的性能就越高。在点数较少时每个核计算的时间相对较短,多核对共享数据的访问冲突几率增加,数据通信对处理性能影响较大;随着点数增加,每个核计算时间增加,对共享数据的访问可以在计算同时启动DMA从而使处理性能提升。为了提高效率,在作小于16 384点FFT时建议采用直接将小点数FFT运算分配到多个核分别计算的方法而不是多核计算一个FFT。
图4为采用多核设计距离多普勒成像得到的成像结果。通过多种并行设计方式使多核计算均衡,处理器的计算和传输达到平衡,从而使距离多普勒算法在多核处理器中达到更高的处理性能。
图4 距离多普勒成像结果
距离多普勒算法是合成孔径雷达的一种经典处理方法。本文介绍了频域矫正距离走动的距离多普勒算法在多核处理器C6678上的实现,采用数据并行的方式设计并行框架。采用收数同时处理脉压、8核共同处理大点数,以及小任务8核单独并行运算等多种并行设计方式,提高了处理效率。
针对成像运算量较大的距离脉压和方位脉压,分别采用大点数FFT和小点数FFT的方式实现。就大点数FFT的处理性能问题进行了对比分析,对基于TS201进行Cache优化的方法和采用C6678多核DSP并行处理的方法进行比较,在处理65 536点时后者处理性能为前者的7.401倍。
[1]郝朋朋,周煦林,唐艺菁,等.基于TMS320C6678多核处理器体系结构的研究[J].微电子学与计算机,2012,29(12):171-175.
[2]史鸿声,穆文争,刘丽.基于“魂芯一号”的雷达信号处理机设计[J].雷达科学与技术,2012,10(2):161-164.SHI Hongsheng,MU Wenzheng,LIU Li.Design of Radar Signal Processor Based on Hun Xin-1 Chip[J].Radar Science and Technology,2012,10(2):161-164.(in Chinese)
[3]保铮,邢孟道,王彤.雷达成像技术[M].北京:电子工业出版社,2005:76-79.
[4]GOVE D.多核应用编程实战[M].郭晴霞,译.北京:人民邮电出版社,2013:3-23.
[5]夏际金,丁泉,王蓉.多级并行的多核DSP软件设计[J].雷达科学与技术,2014,12(4):368-372.XIA Jijin,DING Quan,WANG Rong.Multilevel Parallel Software Design Based on Multicore DSP[J].Radar Science and Technology,2014,12(4):368-372.(in Chinese)
[6]马潇,高立宁,刘腾飞,等.基于Cache优化的大点数FFT在TS201上的实现[J].电子与信息学报,2013,35(7):1774-1778.MA Xiao,GAO Lining,LIU Tengfei,et al.Cache-Optimized Implementation of Long Sequences FFT on TS201[J].Journal of Electronics&Information Technology,2013,35(7):1774-1778.(in Chinese)