一种基于多fpga平台的ncs算法并行化的方法

文档序号:6534939阅读:288来源:国知局
一种基于多fpga平台的ncs算法并行化的方法
【专利摘要】本发明涉及一种基于多FPGA平台的NCS算法并行化的方法,包括子孔径处理与合成孔径处理,所述子孔径处理与合成孔径处理通过两级流水线并行处理;所述子孔径处理中采用流水并行处理方式;所述子孔径处理与合成孔径处理中相互独立的若干数据处理任务分配在若干个芯片中并行执行。有益效果为:利用了多核硬件架构,将将运算任务划分为多个子任务分配到不同芯片的处理单元中分别处理,从而实现任务处理的并行化,有效的提高了片上软件的效率。
【专利说明】—种基于多FPGA平台的NCS算法并行化的方法
【技术领域】
[0001]本发明涉及NCS算法的并行化方法,尤其涉及一种基于多FPGA平台的NCS算法并行化的方法。
【背景技术】
[0002]合成孔径雷达(SAR)成像已经广泛运用在国民经济和军事各个领域。常规的SAR成像算法有RD算法以及CS算法等,但是RD算法难以满足对分辨率要求高的大场景、大斜视的雷达成像要求,而CS算法在大斜视角的情况下将引起很大的散焦,因此NCS算法在此基础上应运而生。传统的串行算法效率比较低,很难达到实时成像的要求。引入子孔径结构的NCS算法,可以更好的适应更大的斜视角,并能更容易的进行任务并行化,提高效率。但是现有的NCS算法片上软件的运算效率低下,对存储器的读取速度以及处理器性能要求较闻。

【发明内容】

[0003]本发明目的在于克服以上现有技术之不足,提供一种基于多FPGA平台的NCS算法并行化的方法,具体有以下技术方案实现:
所述基于多FPGA平台的NCS算法并行化的方法,包括子孔径处理与合成孔径处理,
所述子孔径处理与合成孔径处理通过两级流水线并行处理;
所述子孔径处理中采用流水并行处理方式;
所述子孔径处理与合成孔径处理中相互独立的若干数据处理任务分配在若干个芯片中并行执行。
[0004]所述基于多FPGA平台的NCS算法并行化的方法的进一步设计在于,所述芯片为FPGA芯片。
[0005]所述基于多FPGA平台的NCS算法并行化的方法的进一步设计在于,所述FPGA芯片为四片。
[0006]所述基于多FPGA平台的NCS算法并行化的方法的进一步设计在于,采用两片FPGA芯片做子孔径处理,另外两片做合成孔径,形成两级流水.所述基于多FPGA平台的NCS算法并行化的方法的进一步设计在于,每片FPGA芯片内部集成4个运算簇单元,所述子孔径处理与合成孔径处理中的数据处理平均分配至各运算簇单元处理。
[0007]所述基于多FPGA平台的NCS算法并行化的方法的进一步设计在于,处理孔径部分的两片FPGA芯片,每片芯片处理半幅图的源数据,每次子孔径完成4M Byte的数据处理。
[0008]所述基于多FPGA平台的NCS算法并行化的方法的进一步设计在于,处理孔径部分的两片FPGA芯片分别处理奇数次的子孔径运算与偶数次的子孔径运算。
[0009]本发明的优点如下:
本发明提供的基于多FPGA平台的NCS算法并行化的方法充分利用了多核硬件架构,将将运算任务划分为多个子任务分配到不同芯片的处理单元中分别处理,从而实现任务处理的并行化,有效的提高了片上软件的效率。
【专利附图】

【附图说明】
[0010]图1是多FPGA平台全互联示意图。
[0011]图2是NCS算法整体流程图。
[0012]图3是子孔径和合成孔径的流水图。
[0013]图4是子孔径流水图。
[0014]图5是子孔径并行化后的流程图。
[0015]图6是合成孔径并行化后的流程图。
【具体实施方式】
[0016]下面结合附图对本发明方案进行详细说明。
[0017]本实施例基于由4片Xilinx XC6VLX550T FPGA芯片构成的多FPGA平台,如图1所示,每片FPGA芯片内设计有基于4*4 2D mesh架构的异构多核原型芯片,数据位宽64位,通过FPGA间的高速通道将4*4 2D mesh架构扩展成16*16 2D mesh架构。每片FPGA芯片内集成4个运算簇单元和I个转置簇单元,完成NCS算法中的大量计算和转置。NCS算法的整体软件流程如图2所示。下面结合NCS算法,以数据量为32M Byte的图像规模为例,具体说明流水方法以及任务并行化方法。
[0018]本实施例提供的基于多FPGA平台的NCS算法并行化的方法,包括子孔径处理与合成孔径处理。其中,子孔径处理与合成孔径处理通过两级流水线并行处理;子孔径处理中采用流水并行处理方式;子孔径处理与合成孔径处理中相互独立的若干数据处理任务分配在若干个芯片中并行执行。
[0019]根据子孔径和合成孔径各自处理的数据量的大小,结合多FPGA平台现有硬件资源,采用两片FPGA做子孔径,另外两片做合成孔径,形成两级流水,流水方式见图3,实际成图时间将大大缩短。
[0020]另外子孔径部分由两片FPGA芯片完成,也是流水操作,每片芯片处理半幅图的源数据,每次子孔径完成4M Byte的数据处理。第一片FPGA芯片完成一幅图的第1,3,5,7次子孔径运算,第二片FPGA芯片完成一幅图的第2,4,6,8次子孔径运算,大大提高了处理数据的效率,子孔径流水方式如图4所示。
[0021]算法中涉及的大量运算由FPGA芯片内的运算簇单元完成,每片FPGA内有4个同构的运算簇单元,所以在任务划分时,综合考虑负载平衡以及通信调度等方面的问题,可以将运算任务平均划分到4个运算簇内,子孔径任务划分如图5,合成孔径任务划分如图6所
/Jn ο
[0022]本实施例提供的基于多FPGA平台的NCS算法并行化的方法充分利用了多核硬件架构,将将运算任务划分为多个子任务分配到不同芯片的处理单元中分别处理,从而实现任务处理的并行化,有效的提高了片上软件的效率。
【权利要求】
1.一种基于多FPGA平台的NCS算法并行化的方法,特征在于包括子孔径处理与合成孔径处理, 所述子孔径处理与合成孔径处理通过两级流水线并行处理; 所述子孔径处理中采用流水并行处理方式; 所述子孔径处理与合成孔径处理中相互独立的若干数据处理任务分配在若干个芯片中并行执行。
2.根据权利要求1所述的基于多FPGA平台的NCS算法并行化的方法,其特征在于所述芯片为FPGA芯片。
3.根据权利要求1所述的基于多FPGA平台的NCS算法并行化的方法,其特征在于所述FPGA芯片为四片。
4.根据权利要求3所述的基于多FPGA平台的NCS算法并行化的方法,其特征在于采用两片FPGA芯片做子孔径处理,另外两片做合成孔径,形成两级流水。
5.根据权利要求4所述的基于多FPGA平台的NCS算法并行化的方法,其特征在于每片FPGA芯片内部集成4个运算簇单元,所述子孔径处理与合成孔径处理中的数据处理平均分配至各运算簇单元处理。
6.根据权利要求4所述的基于多FPGA平台的NCS算法并行化的方法,其特征在于对于处理孔径部分的两片FPGA芯片,每片芯片处理半幅图的源数据,每次子孔径完成4M Byte的数据处理。
7.根据权利要求6所述的基于多FPGA平台的NCS算法并行化的方法,其特征在于处理孔径部分的两片FPGA芯片分别处理奇数次的子孔径运算与偶数次的子孔径运算。
【文档编号】G06F15/16GK103810137SQ201410004881
【公开日】2014年5月21日 申请日期:2014年1月7日 优先权日:2014年1月7日
【发明者】潘红兵, 钱禹, 李丽, 郑昱, 李磊, 余慧, 徐峰, 黄炎 申请人:南京大学, 中国电子科技集团公司第十四研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1