1 引言
实时图像处理技术在工业、医学、军事和商业等领域有着广泛的应用前景,然而,由于需要处理的数据量非常大,并且一些高层次的图像分析系统常常包含有诸如分割、检测、标记和识别等比较复杂的算法,因此,对图像进行实时处理不可避免地要采用多DSP构成的并行处理系统来完成[1-8]。
应用于高层次的图像分析(尤其是序列图像)其并行处理方式有别于一般如FFT、卷积之类单纯用于科学计算的并行处理,一方面系统执行的图像处理任务往往包含多个子过程,如滤波、直方图均衡、分割、标记、特征提取和识别等,并不仅仅是某一个单纯的科学计算,而每一个图像处理任务在执行时已由算法研究人员确定了该任务包含哪些子过程;另一方面算法研究人员可根据算法的特点在执行该算法前对算法作并行化分析,选择合适并行化处理结构。在一个实际图像处理过程中往往会包括多个步骤才能获得最终结果,不同的步骤会用到不同的算法, 不同的算法采用不同的并行机制才可以获得各自最佳的性能,这就要求并行处理系统能适应不同算法的并行处理结构,或者出现新算法时,整个系统不需要重新设计,因此有必要发展一种拓扑结构可重构的、可扩展的通用高速图像信号处理系统,一方面可以通过灵活的软件编程来适应处理问题的变化和算法的发展;另一方面可以通过简单的硬件扩展来适应处理规模的变化。文献[2,3,6]都不是模块化结构,不支持计算能力扩展,并且还不支持拓扑结构的动态可重构。文献 [5,6]的主DSP和从DSP虽然实现了共享总线通信,但从DSP多了以后,通信效率变低。文献[7]也采用了模块化结构和多总线结构,但使用的DSP 是ADSP21060,工作频率只有40MHz。而本系统采用模块化设计和多总线结构,使用的DSP是TMS320C6400,工作频率达到600MHz (预计达到1.2GHz),是TI公司的主推产品。本系统通过使用FPGA设计了一种LINKs作为专用图像数据通道,其传输速度可达到3.2Gbps。使用DSP的McBSP作为命令传输总线,简单可靠,且传输速度可达到100Mbps。并且每一个DSP通过本地总线挂有SDRAM和FLASH以及双口 RAM,本地总线传输速度也可以达到3.2Gbps。这个系统的数据通信能力完全可以和DSP的高速计算能力相匹配。各通道和总线具有很强的可扩展性能力,可以很方便的增加扩展板以达到所需求的计算能力,并且还具有拓扑结构动态可重构能力,通过软件编程就可使各个DSP之间既可以实现SPMD、又可以实现MPMD和MPID。
2 硬件系统设计
TMS320C6414是TI公司最新的DSP,也是目前速度最快的定点DSP,其最大峰值速度为4800MIPS。一个高性能的可扩展的多DSP系统除了各个DSP具有高速的运算能力,还应该具有优良的数据交换能力,也就是说数据流应该和计算能力相匹配。一般来说全局的和本地的通信能力除以系统的计算能力大于或得等于1。基于共享总线的计算机系统也具有可扩展性,如PCI总线。在PCI总线中,所有的总线通信都划分为4到16个字的分组传输。在每一组之间会插入一些时钟间隙,这些时钟间隙允许其他的总线申请者使用总线,这样就引起了通道竞争问题。如果扩展的CPU多了以后会给PCI总线或VME总线带来很大压力。因此如果只使用一个总线通道,这种通信瓶颈问题不会得到改变,势必会使该系统的通信能力和计算能力不匹配。在PICMG组织推出的面向电信市场的PICMG 3.X规范中已不采用单一共享总线结构,而是采用了“SWITCH FABRICS”结构。在DSP领域中,ADSP21060有6路LINK口,具有出色的并行通信能力,因此我们仿造ADSP21060的结构使用 FPGA芯片构造了LINKs,使所有DSP之间都可以通过LINK口连接,这样既增加了数据传输能力,也可以通过这种点到点的连接方式组成多片DSP各种拓扑结构。
2.1 模块化结构
该系统有三种基本模块组成:主控模块,扩展模块和显示模快。主控模块是用来接收图像,进行非均匀性校正预处理,负责系统监控、接收上位机的命令,和进行图像处理计算。显示模块的任务是在调试时显示处理后的图像。如果主控模块的计算能力不够,可以再添加扩展模块。扩展模块的任务比较单纯,主要用来计算。
系统总体框图如图1所示。在图1中,每个模块之间的连接有两种通道构成:数字图像通道和控制总线。数字图像通道上传输的是数据量很大的数字图像,由 LINK口构成。控制总线上传输的是数据量很小的各DSP之间的握手信号和命令消息,由DSP的串口构成。扩展模块的两个DSP之间的通信通过FIFO实现。图像数据首先输入主控板,通过由FPGA构成的预处理模块进行非均匀性校正预处理,再送到主控DSP进行计算,如果主控DSP能完成计算,那么该系统就只使用主控DSP,如果主控DSP不能在规定的时间内算完一幅图像,那么再添加扩展板。用多个DSP组成SPMD或MPMD或流水线结构进行并行计算。最后由主控DSP把结果传给上位机,同时还通过图像数据通道把处理完的图像传给显示板进行显示。
图1 硬件系统总体框图
2.2 变化拓扑结构的能力
并行算法主要有两种软件并行性:控制并行性和数据并行性。控制并行性是指多个处理机同时完成多个不同的操作,最典型的例子是流水线;而数据并行性是指多个处理机同时对不同数据集实现几乎相同的操作。不同的并行算法要求硬件用不同的拓扑结构来支持,而本系统采用的多DSP并行计算结构则可以动态地改变其逻辑拓扑结构以适应算法的要求。这时如果算法采用数据并行性,主控DSP负责分配运算任务,将图像数据通过LINK口送给其他的DSP,并合理调度各个DSP 协同完成算法。扩展板的运算DSP之间可以采取SPMD(Single Program Stream&Multiple Data Stream)的方式,也可以采取MPMD(Multiple Program Sream&Multiple Data Stream)的方式进行并行计算,这取决于具体应用和具体算法。SPMD有一点类似于SIMD(Single Instruction Stream$Multiple Data Stream),它们都是对不同的数据集执行同一运算,但SPMD的各个处理器由各自的程序计数器控制其程序流程,相互之间不需要严格同步;MPMD则可以对不同的数据集进行不同的处理。这种拓扑结构具有较强的通用性,很多应用问题都具有此类的并行算法。如果算法采用控制并行性,即流水线结构,每一级处理器接收前一级处理器的计算结果,完成算法特定的一部分,并将处理结果送给下一级处理器。级间的数据传输可以采用LINK口或FIFIO实现。
2.3 扩展性
该系统有很强的可扩展性,具体表现在:
(1) 系统可裁减。由于该系统采用模块化结构,每个模块都是独立的,有很好的可裁减性。
(2) Link口可扩展。由于Link使用FPGA实现,从原理上说可以提供任意多个Link口,实际上Link口数目受到FPGA资源的限制。在该系统中,我们使用ALTERA的FPGA实现了6路LINK口。各路Link口可以独立、同时工作。并且这些LINK口的传输采用LVDS信号。由于每对数据线上的传输速率可达到800Mbit/S,而每路Link口有5对线组成:4对数据线和一对时钟线CLK,这样每路LINK口的速度可以达到 3.2Gbit/s。任一对模块之间都可以用LINK口连接。
(3) 控制总线可扩展。控制总线由DSP的同步串行口构成, 6414的串口是多通道缓冲串口,能进行全双工通信,可以和多达128个通道进行收发。用这种通信方式可以组成各种各样的通信模式。每个DSP既可以和任意一个DSP通信,也可以和任意多个DSP通信。还可以通过该总线增加模块实现多个并行计算结构并行工作。
3 系统监控软件的设计
在软件设计上,为了便于开发与维护,把软件划分为系统监控软件和图像处理算法两大部分。监控系统的作用就是与硬件平台一起,为图像处理算法提供一个可靠、高效、方便的工作平台。文献[1-6]都没有涉及到监控系统的设计,文献[8]借助一个自己定义的运行在微机上的协议软件提供给算法研究人员来实现任务的分解,解决了任务分配、进程间的通信与同步等问题,能够适应不同并行结构的要求并支持系统计算能力的扩展。但它没有对应用层提供API函数,使用及维护比较麻烦,同时,也没有提供超时管理机制。目前国内外还有很多公司开发了许多时实时操作系统,如国外的VSPWorks、ecos、psos、国内的“道系统”,但大多只支持微处理器或ARM,不支持DSP。 VSPWorks虽然是基于DSP的实时操作系统,但是它的源码不公开,不能实现任意级别的裁减,而在一些国防应用中,必须使用源码公开的软件,因此自己实现实时监控系统具有很大的意义。本文所实现的监控系统是具有自己的内核的多任务监控系统。它进一步分为主控DSP上的系统监控程序和协处理DSP上的系统监控程序。主控DSP监控需要完成系统初始化、算法任务调度、资源分配和管理、系统的全局状态监控、系统异常处理、与上位机数据交换以及图像数据传输等工作。协处理DSP监控程序完成算法任务调度、资源管理、算法加载、系统局部状态监控、命令响应和数据通信。
为了保证监控系统软件的可裁减性、可移植性、实时性和模块化(以便于调试),也为了保证算法与系统硬件的相对独立性,我们采用实时系统的层次体系思想来设计监控系统,如图2,这样保证了系统软件尽可能不受硬件系统改变和算法改变的影响。
图2 系统的层次结构图
4 结束语
本文使用目前最新最快的DSP芯片TMS320C6414构成通用高速实时图像信号处理系统。使用FPGA芯片为该DSP设计了一种LINK口。从而为模块化的可扩展的多DSP系统的实现打下了坚实的基础。使得该系统的数据通信能力和DSP的运算能力很好的匹配。并辅以多通道串口作为传递命令控制消息,使该系统具有灵活多样的通信方式,能灵活地改变拓扑结构,运算能力强,I/O带宽大,可扩展,通用性强等特点。并以此硬件结构为基础设计相应的系统监控软件,为图像处理算法提供一个可靠、高效、方便的工作平台,简化了系统研制阶段的工作。实验表明,这种并行计算结构的构造简单,效率高,并且工作稳定可靠。
今后,笔者还将作如下改进,研究系统的容错性,以保证在某个节点机或某个信道失效时,系统不至于瘫痪,应该立刻可以将其工作任务分配到其他的节点机上或其它的信道上。
参考文献
[1] Huang Kai, Xu Zhiwei, Scalable Parallel Computers for Real-Time Signal Processing. IEEE Signal Processing Magazine. 1996:50-66
[2] 沈胜宏,韩月秋. 基于多DSP和FPGA的高速并行互相关图像跟踪技术. 北京理工大学学报,2000,(2):98-101
[3] 赵保军,史彩成,韩月秋,毛二可. 利用FPGA和DSP结合实现雷达多目标实时检测电子学报,2001,(8):1145-1147
[4] Mark H Linderman,Richard W Linderman. Real-Time STAP Demonstration on an Embedded High Performance Computer. IEEE Aerospace and Electronic Systems Magazine. 1998,13(3)
[5] 陈虎成,安 琪,陈家琴,王砚方. 高速多DSP数字语音处理卡的研制. 数据采集与处理,2000,(12):508-510
[6] 严胜刚,沈翠羽,李林山,李志舜,高速信号处理系统的体系结构研究,西北工业大学学报,1996,11:554-557
[7] 王岳环,汪国有,张天序. 一种模块化多DSP实时图像处理系统. 2000,(3):63-64
[8] 曹治国,王岳环,左峥嵘等. 多总线多DSP实时图象处理操作系统的设计与实现. 计算机学报,2002,25(7):708-715