面向遥感图像高速压缩的多FPGA 处理器设计(二)

时间:2013-05-15

  2 多FPGA 压缩处理器设计

  2. 1 总体解决方案

  针对上述特点,考虑到单个FPGA 处理器难以完成海量遥感图像高速压缩的实际情况,较优的方案是采用多FPGA 并行压缩。 在多FPGA 处理器的连接方式方面,经典的并行结构包括网孔、线形、树形、星形等,每种结构适配于不同种类的压缩算法。 网孔结构( 如图2a 所示) 具有较好的扩展性,任务并行度高,但遥感图像压缩3 个任务模块耦合性弱,特别是图像获取和码流输出2部分很难进行任务划分,只能由单个FPGA 处理,采用此结构会造成任务分配不均衡,出现并行等待现象; 而线形结构( 如图2b 所示) 中,多处理器单元针对性强,模块化高,资源可有效利用,从而达到良好的加速效果,但是难以满足遥感图像压缩处理模块内数据关联性强、通信重叠性高的特点, 若采用此结构会加大芯片级的通信开销,通信路径长,降低压缩处理效率。

  结合网孔结构并行度高和线形结构针对性强的共同特点,设计了一种混合式的多FPGA 处理器结构,如图2c 所示。 共由6 片FPGA 组成,其中图像获取、压缩处理和码流组织3 个处理单元线形连接,适合压缩任务中模块间耦合性弱的特点;并将压缩处理单元设计为网孔结构,采用4 片同构FPGA,每片同构FPGA 执行整个压缩处理算法,使各单元在FPGA 片内直接通信,解决了压缩任务中压缩处理模块内各单元间数据关联性强的问题,4片FPGA 并行实现对海量遥感数据的高速压缩。 为了便于描述,码流获取FPGA 简称为A1,码流组织FPGA 简称为A2,4片处理FPGA 统称为FPGA-P,分别简称为P1,P2,P3,P4 .

  混合式处理器结构的解决方案满足了遥感图像压缩任务模块间耦合性弱及压缩处理模块内关联性强的特点,但是要实现海量数据的高速可靠压缩,仍需在软件层考虑 多处理器的高并行调度机制; 在硬件层考虑结构间的容错性设计; 在通信接口层考虑海量数据的高速通信策略。针对以上3 方面内容,分别逐一介绍。

  2. 2 高并行压缩处理机制

  使用多处理器的目的是为了获取高并行,如何将海量数据压缩任务分配到多处理器并行处理并合理回收是高并行压缩处理机制的设计难点。

  高并行的关键就是让并行处理器达到负载均衡,针对混合式多FPGA 的结构特点,较优的负载均衡策略是让4 片同构FPGA 运行相同的压缩算法,同时处理相同的数据量,所以需要对遥感图像进行平均分配; 为了保证解压后图像拼接的正确性,压缩后码流的输出顺序还必须与压缩前数据拆分顺序一致。 为此给出了高并行压缩处理的两条规则: 数据的均衡分发和码流的规则回收。

  遥感数据均衡分发流程如图3 所示,A1作为数据分发处理器来实现数据的分发调度以及传输功能。 图像数据进入A1之后,存入数据缓存中,数据划分模块按照一定的策略对图像数据进行块大小平均划分,任务调度模块接着对划分后的数据块顺次调度,并通知总 线控制器将数据传送至FPGA-P 进行压缩处理。

  码流的顺序回收由A2完成。 在此过程中,4片FPGA-P 是按照异步方式将码流传入A2,但传入时钟初始时刻并不确定,因此在A2内采用FPGA 内嵌异步软先入先出队列( FIFO,FirstInput First Output) 的机制来进行数据回收,实现4路数据的时钟锁相功能; 另外,对于固定尺寸的图像块而言,遥感压缩算法的处理速度略有不同,高频信息丰富的图像处理速度稍快[5],为了保证并行同步性,任务监听机通过监听 FIFO 内的数据量来判断4 片FPGA-P 的运行情况,并通过反馈信号通知A1中数据调度模块,对数据分发时序进行微调,实现整个过程的闭环; ,路选根据当前任务的完成情况,按照顺序将码流依次输出,这样便形成了基于软FIFO 的闭环回收机制。

  此并行机制针对混合式多FPGA 处理器的结构特点,将数据进行平均分配,发挥同构FPGA 的资源利用率,提高并行效率; 基于异步软FIFO 的回收机制保证了码流回收的同步性和一致性,使整个压缩处理过程具有高效并行性。

  2. 3 结构容错性设计

  在混合式多FPGA 处理器中,具有6 片FPGA,FPGA 间具有多条通信链路,连接相对复杂,在结构容错性设计中,应充分分析其可能故障情况,保证系统可靠性。

  FPGA-P 作为处理器结构中的主处理器,其故障模型有2 种: 一种是处理器故障( 本文只讨论处理器完全失效,且FPGA 重构程序不能恢复正常性能的情况) ,另一种是链路故障。 当处理器出现故障时,需要考虑的是删除故障结点,并保证其它结点正常工作; 当链路出现故障时,应设计冗余链路,保证数据的传输通路。

  根据以上2 点考虑,将4 个FPGA-P 的连接设计为独立链路来解决链路故障问题,并将FPGA-P 间设计为全连通的连接方式,用以链路故障后的桥接通信。 用无向图模型表示多处理器的连接方式,如图4 所示。 设图G = ( V ( G) ,E( G) ) 表示多处理器互连网络,V( G) 表示处理器集,称为结点集,E( G) 表示通信链路集,称为边集。 处理器单元称为结点,而通信链路称为边。

  采用确定性方法[6]通过网络拓扑结构的连通度评价多处理器系统的容错性。 对于一个特定的多处理器互连网络,用G 表示,假定其连通度为k ( G) ,则该多处理器互连网络多可以允许k( G) -1 个处理器发生故障,此时互连网络的连通性仍然可以保证。 如图4 所示,用k( G) 表示图G 的连通度,则k( G) = 4. 由于4 个FPGA-P 结点都与A1,A2结点连通,所以,任意删除某个FPGA-P 结点,仍然可以保持系统连通性,其代价是系统性能降低。 例如删除图4 中的P1,P2和P3三个结点,结点A1,P4,A2依然保持连通,其连通度k( G) = 1,系统处理性能为原有性能的1 /4,可以保证对较慢速率或部分图像数据的压缩处理。另外,由于FPGA-P 结点间两两相连,若删除与A1或A2相连的某条边,其对应结点可以利用其它节点作为通信桥接来保证其连通性,此时FPGA-P结点正常工作,处理性能基本 没有变化。

  结构容错性设计同时解决了处理器故障和链路故障两个问题,使系统在正常工作的同时尽量保证处理性能,提高了系统可靠性。

  2. 4 FPGA 高速通信策略

  在遥感图像高速压缩过程中,FPGA 需要对数据进行频繁的组织、搬运和计算,只靠有限的片内空间无法满足海量数据的处理要求,必需借助片外存储器来实现。 这便引出了FPGA 高速通信的2 个设计难点: FPGA 与外部存储器的高速通信方式以及FPGA 之间的高速通信接口。

  利用片外存储器进行通信的方式有2 种: 共享存储系统和分布式存储系统。 共享存储系统是指多片FPGA 共用一套总线和共用外部存储器,分时使用存储器,系统虽然节约了成本和功耗,但是难以实现多FPGA 与存储器的频繁通信,导致通信等待,造成性能下降; 分布式存储系统是指每个FPGA 具有独立的总线和存储器,存储器服务于指定FPGA,较大程度的发挥了存储性能。 因此,针对遥感图像高速压缩中频繁通信的特点,对6 片FPGA 分别采用独立外部存储芯片DDR2SDRAM 以提高通信效率。

  在FPGA 间的通信方面,必须有灵活高效的通信接口才能满足海量数据的高并行压缩,容错性设计中的链路桥接设计致使每条链路至少达到两或多路的数据通信要求。 目前常用的TTL 电平并行总线技术由于总线间串扰和外部干扰,限制了实际的传输速率和可靠性; 而低电压差分信号( LVDS,Low-Voltage Differential Signaling) 串行总线技术采用3. 5 mA 的恒流源模式驱动信号发送,保证了信号稳定性,具有传输速度快、抗干扰能力强的特点,单路LVDS 信号传输速率可达400 Mbit /s,更适合高速链路通信; 另外,Xilinx公司所推出的RocketIO 技术采用两对差分对来实现Gbit 级的速度传输,在满足通信性能的同时,还保证了PCB 布线规模。 因此,采用LVDS 串行总线和RocketIO 技术共同实现FPGA 间高速数据通信,其连接方式如图5 所示。

  考虑遥感图像压缩任务的处理规模和成本,采用两片Xilinx 公司一般性能的Spartan-3 FPGA分别实现图像获取与码流组织2 个任务,采用4片Xilinx 公司高性能的Virtex-5 FPGA 实现高速压缩任务。 其中,Spartan-3 与Virtex-5 之间采用LVDS 的传输方式,4路总线相互独立,互不影响,每路采用8 对串行差分对总线,按照150 MHz 时钟计算,每路速率可达到1. 2 Gbit /s ( 150 MHz×8 bit) ; 4 片Virtex-5 之间采用全连通的RocketIO连接方式,两两之间具有一组RocketIO 通道,可以进行全双工的串行差分传输,通信速率达到1. 25 Gbit /s.

  各FPGA 独立DDR2 存储器的设计满足了压缩处理器与外存频繁通信的要求,FPGA 间2 种通信接口均可达到1 Gbit /s 以上的通信速率,保证了海量遥感图像压缩中的高速数据通信。

  3 结果与分析

  3. 1 遥感图像压缩效果

  设计专用的遥感图像发送卡,模拟遥感相机的数据格式对以多FPGA 实现的硬件系统进行测试,采用基于小波变换和基于上下文的位平面预测编码并算术编码的压缩算法,压缩倍率16 ∶ 1,图6 是测试图像与解压图像片段的对比结果。

  通过与压缩算法的软件实现进行比较,硬件系统的压缩结果与软件结果完全一致,恢复图像相比原图无视觉失真,不同的测试图像计算平均PSNR( 峰值信噪比) 值在33 dB 以上。

  3. 2 压缩性能测试

  测试压缩处理单元中4 片Virtex-5 FPGA 的并行性能。 使用1 片Virtex-5 对16 Gbit 大小的遥感测试图像进行压缩,记录压缩耗时为37. 24 s,同时使用4 片Virtex-5 对相同的测试数据进行压缩,记录压缩耗时为9. 96 s,根据Amdahl[8]定律得出: 4 个Virtex-5 的并行处理加速比Sp = T1 /Tp =37. 24 /9. 96 = 3. 74 倍,平均每个Virtex-5 的并行效率Eff = Sp /p = 93. 5%.

  对以多FPGA 实现的硬件系统进行整体压缩性能测试。 通过遥感图像发送卡发送不同数据量的遥感图像测试数据,分别记录压缩处理时间,得出整体压缩性能,测试结果如表1 所示。 可见,不同数据量的遥感图像测试用例,其压缩时间与数据量成正比关系,系统的整体压缩性能稳定在1. 6 Gbit /s 以上。

  3. 3 系统容错性

  使用确定性方法在理论上分析多FPGA 处理器结构容错性能,具体见本文2. 3 节,本节通过实验测量的方法评测系统容错性指标。 根据故障模型的不同,设计压缩处理单元中FPGA( FPGA-P)结点失效和链路失效2 种用例,测试遥感压缩系统数据吞吐率,如表2 所示。

  由表2 可见,结点失效后系统可以正常工作,但性能与正常处理器的个数成正比; 根据2. 4 节可知,每条链路的传输速率为1. 2 Gbit /s,所以当失效3 条之后处理性能下降较大,而链路在失效2 条之内时,整体性能较为稳定。 本文所设计的多FPGA 处理器同时支持处理器故障和链路故障的容错,系统可靠性强。

  4 结论

  本文设计了一种适用于海量遥感图像高速压缩的多FPGA 处理器结构,根据遥感图像压缩任务中模块间松耦合和模块内强关联的特点,采用6 片FPGA 芯片,给出数据均衡分发和基于FIFO的闭环回收机制,实现了处理器结构的容错性设计,利用外部存储方式提高了通信效率,并通过LVDS 与RocketIO 两种连接方式保证数据传输吞吐量。 应用测试结果表明: 同构FPGA 的并行效率达93.5%,压缩处理板可达1.6 Gbit /s 以上的处理速率,恢复图像质量好,并具有较高的可靠性。

上一篇:虚拟机CPU 平台的模块的设计与实现
下一篇:面向遥感图像高速压缩的多FPGA 处理器设计(一)

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料