一种面向实时图像处理应用的基于非共享存储的多DSP系统设计
2009-06-08
作者:余 跃1,2,孟庆东1,2,李
摘 要: 为了满足图像处理系统对图像处理能力和图像数据通信能力的实时要求,在分析多DSP系统的架构以及多DSP核之间通信机制的基础上,提出了一种基于非共享存储的同构多DSP系统设计。在硬件系统设计的基础上,根据实时系统的层次体系思想,实现了基于实时微内核的实时分布式操作系统DSP/BIOS。
关键词: 图像处理;多DSP系统;系统架构;通信机制
随着计算机产品应用领域的日趋广泛,数字信号处理器(DSP)得到了迅猛发展,采用现有的单核DSP系统已经无法满足对信号处理速度和运算量越来越高的需求。采用同构或异构多DSP系统是解决信号处理瓶颈问题的主要途径,即在功耗增长不大的前提下可大幅度提高性能,具备强大的实时多任务处理能力[1]。目前,多DSP系统的应用广泛,其中包括医学、图像处理、军事、工业控制、电信等许多领域。
实时图像处理系统要求必须具有大数据量的处理能力,以保证系统的实时性;对系统的体积、功耗等也有较严格的要求。一个典型的数字图像处理系统主要包括图像预处理、图像分割、特征计算、模板匹配、识别和归类、运动分析、目标跟踪等基本功能。在硬件上采用高速的DSP可以在实时条件下实现目标的检测、提取、识别、跟踪技术。为了进一步提高准确性和实时性,采用多DSP完成数字图像处理已经成为一个主要技术途径[2-5]。本文在分析多DSP系统架构的基础上,提出了一种可以提高图像处理能力的非共享存储多核DSP系统的设计。其中每一个DSP均有各自独立的存储器、I/O接口。此外,本文还分析了多DSP核之间的通信机制。在硬件系统设计的基础上,基于实时系统的层次体系思想,分析实现了基于实时微内核的实时分布式操作系统DSP/BIOS。
1 多DSP系统架构的分析
1.1 多DSP系统架构
为了满足实时图像处理、任务调度的需要,本文设计了主从结构的多DSP系统架构,如图1所示。设图像匹配处理算法P可以分离为m个子任务,则系统由主控制器(PowerPC)、m个DSP处理器和FPGA组成。主控制器负责系统的加载、系统任务的分配、调度、管理、多DSP之间的同步以及状态的检测等。DSP0~DSPm的主要任务是响应主控CPU的命令,完成相关算法计算。FPGA主要完成图像数据的接收、主控CPU和DSP之间的数据传输以及控制逻辑等。
为了防止共享数据冲突,主控CPU和每一个DSP子系统分别配置独立的存储系统,包括SDRAM内存和FLASH存储器。每个处理器只能访问自己的存储空间,不能对其他处理器的存储空间进行访问。这种非共享方式存储结构完全保证了数据的可靠性和数据的一致性,并具有良好的系统扩展性。
本文设计的主控CPU选用飞思卡尔公司的高性能PowerPC MPC8260处理器,DSP选用TI公司的TMS320C6414处理器,FPGA选用XILINX公司的Virtex4系列FPGA。
1.2 系统结构性能分析
在评估一个多处理器并行系统的性能时,最常用的性能指标是加速比和系统效率。系统加速比其中:p为处理器的个数,ts为用单处理器完成算法运算的时间,tp为 p个处理器完成算法运算的时间。系统效率
本架构中,在算法的计算量随数据量的增加呈线性增加的前提下,设数据在单DSP上需要的处理时间ts近似为单DSP处理1/m块该数据需要的耗时ts/m;并假设数据传输需要耗时tc,主控CPU分配任务和综合结果耗时ta,从而得到m个DSP完成算法所需时间:
tm=(ts/m)+tc+ta
则系统的数据加速比为:
如果主控DSP分配任务和综合结果的时间可以忽略不计,即(ta/ts)<<1,则可以得到系统效率
从上面的式子可以看到,通信计算比tc/ts是影响性能的主要因素, 特别是在图像处理应用中,通常数据传输量很大, 这会使得整个多DSP系统的效率非常低。因此提高处理器与DSP之间、DSP与DSP之间的传输效率、减少传输时间是提高系统性能的有效途径。
1.3 DSP间数据通信设计与分析
DSP之间的通信控制及数据交换是DSP 并行处理系统的核心,也是任务调度分配及数据共享的关键。一般DSP 并行处理系统可有以下5种结构形式:共享总线式、基于Link接口式、基于同步串口接口式、基于主机接口式和基于数据交换式。本设计为了充分发挥多DSP的并行性、提高图像处理速度,采用了基于同步串口式、主机接口式以及基于数据交换式结合的方案。
(1)基于同步串口
随着DSP 器件技术的发展,多通道串口(McBSP)作为标准外设出现在各种型号的DSP 中。由于McBSP口强大的标准化功能、灵活的使用性以及互联的简单性,使其在DSP与DSP之间的数据流通信中占有重要的地位。每个同步串行通信口一般有6根信号线,可以同时进行双向数据发送和接收。多通道模式使同步串口以时分复用(TDM)方式进行多通道通信,允许最多32通道时分多址数据收发。对每个通道, 串口可以将其设置为:发送数据、接收数据、同时发送和接收数据、不作操作。在多通道模式下,收发双方应有同一个时间基准RFS和串行时钟。
在本设计中,各DSP以主从方式工作在多通道模式下,所有通信进程由主CPU控制, 各从DSP以TDM方式挂接在总线上,各自有唯一的通道号。主CPU可任意选择某一指定通道建立双向数据通信, 亦可用“广播写”的方式同时向各从DSP发送数据,主要完成任务调度中的命令交互,其最高传输速率可达16 Mb/s。
(2)基于主机接口
主机接口(HPI)是DSP的一个16/32 bit宽的对外接口。外部主机可通过HPI访问DSP所有地址空间,复位时向DSP加载程序,对DSP进行控制。外部主机是HPI的主方,DSP是HPI的从方。一旦主机获得了总线控制权,DSP使自身的外部数据/ 地址总线均处于高阻状态,主机就可对DSP内部寄存器直接读写,利用相关的寄存器来控制DSP或者建立DMA传输。主机可通过HPI访问DSP,但DSP不能通过HPI向外部发起访问。
主处理器通过译码控制产生HPI接口访问控制信号线, 以获得外部总线控制权的方式管理各个DSP,实现主从DSP之间的并行任务分配、访问控制、程序的加载以及数据、状态信息的高速交换。
(3)基于数据交换
DSP的处理速度越来越快,TMS320C6214的峰值处理能力可达6 800 MI/s。然而在通过McBSP和HPI连接的多DSP系统中,由于McBSP最高速度仅为16 MHz,且HPI为异步接口,数据传输速率有限,各个传输速率之和≤50 MB/s,因此数据传输有时会成为系统处理能力提高的瓶颈,使得CPU或图像处理产生的大量数据流无法及时送到多个DSP。在多DSP分布式处理系统中,DSP相互之间需进行大量的数据传输,然而TI的DSP没有高速的片间无缝传输机制,使得相关的任务因等待数据而被延迟,造成系统整体效率降低。
本文提出了一种基于环形双向FIFO的方案。各个DSP与主机之间通过一个环形双向FIFO和一个专用互联模块来实现高速互联,如图1所示。互联模块提供了一个按照包路由协议进行寻址交换的机制,提供多个异步读写FIFO接口,完成到外部器件的连接和数据包的路由转发功能。当DSP通过EMIF总线或主机通过主机相应的总线访问对应端口的环形双向FIFO时,互联模块根据地址信息选择目的FIFO,建立两两通路,进行数据传输。当有多个处理器产生请求时,互联模块根据产生请求的时间,组成请求队列,依次链接传输。由此数据可传输到指定的DSP,同时也可传输到主机中。环形双向FIFO为两个处理器之间状态信息交换和海量数据传输提供了一个高速缓冲区。
本方案中互联模块由FPGA实现,每个端口上的环形双口FIFO也由FPGA内部逻辑实现。
2 多DSP系统软件分析
系统有1个主控CPU和m个DSP处理器,故需要为m+1个处理器分别编写程序,以最大限度地保证系统并行性,满足实时数据的处理。具体分工如下:
(1)主控CPU主要完成系统的总体控制,包括上电启动、程序加载、任务分配调度、任务管理、资源管理、目标跟踪分析控制、DSP间信息同步、输入输出交互等。
(2)DSP0~DSPm按照主控CPU的任务分配完成图像的相关处理运算,包括图像分割、特征计算、图像匹配运算、响应主控CPU发出的相应命令控制等。同时DSP0还负责系统的结果综合和图像压缩等任务。
2.1 系统BootLoader
为了防止程序和数据冲突,防止误操作,系统程序加载方式采用顺序加载的方式,即所有的程序代码,包括主控CPU和DSP的程序代码均存入主控CPU的FLASH中。当系统上电或复位后,主控CPU首先从FLASH中读取程序并启动,完成自身的初始化之后,利用主机接口HPI对m个DSP按照从0到m的顺序进行程序装载,并在装载完成之后,启动所有DSP的运行。由于HPI接口和主控CPU的接口控制电路并不兼容,需要FPGA进行逻辑转换,故FPGA的配置插入在DSP配置之前。系统Bootloader的流程如图2所示。
2.2 DSP 操作系统
DSP/BIOS是一个简易的针对DSP的嵌入式操作系统,主要为需要实时线程调度、同步以及主机与目标系统通信以及实时监测的应用而设计的。DSP/BIOS集成在CCS中,不需要额外费用,但不提供源码。它是TI公司倡导的eXpressDSP技术的重要组成部分。DSP/BIOS本身占用资源很少,而且可裁剪,它只把直接或间接调用的模块和API连接到目标文件中。它提供底层的应用程序接口,支持系统实时分析、线程管理、调用软件中断、周期函数与后台运行函数以及外部硬件中断与多种外设的管理。利用DSP/BIOS编写代码,借助CCS提供的多种分析与评估工具,如代码执行时间统计、显示输出、各线程占用CPU的时间统计等,可以直观地了解各部分代码的运行开销,高效地调试实时应用程序、缩短软件开发时间,而且DSP/BIOS是构建于已被证实为有效的技术之上的,创建的应用程序稳定性好、软件标准化程度高、可重复使用,这也减少了软件的维护费用。
DSP/BIOS组件由以下三部分组成:
(1)DSP/BIOS API:用户在PC机上使用C、C++或汇编语言编写调用DSP/BIOS API函数的应用程序。
(2)DSP/BIOS 配置:用户创建一个DSP/BIOS配置,定义了程序中要使用的静态对象。该配置会生成相应的代码文件,和应用程序一起进行编译链接。
(3)DSP/BIOS分析工具:CCS中的分析工具使用户可以测试和分析目标DSP上应用程序的运行,包括对CPU负荷、日志、线程执行情况的监测等。
为了更好地处理多任务调度,接受主控CPU控制和进行图像运算,在每个DSP中均设计实现了DSP/BIOS。其抽象结构如图3所示。硬件抽象层实现对系统中各种外部设备的驱动,从而向上层提供各种逻辑设备。通过加入硬件抽象层,一方面保证了设备驱动模块是整个系统中唯一的直接读写某个具体设备的控制状态寄存器的软件;另一方面使得硬件平台相对系统内核是透明的,系统内核只需要进行逻辑操作而不需要知道硬件的实现过程。通过对硬件抽象层和系统核心层的设计,实际上也实现了向上层用户层程序提供应用编程接口的功能。用户程序(如每个DSP分配的算法程序、数据通信程序)可以通过调用系统所提供的API函数来创建任务、访问下层硬件设备。由于系统的API 函数屏蔽了下层的硬件环境,因而可以较好地保证上层用户程序的硬件独立性和可移植性,使得上层的程序可以在其他计算机平台上开发。
2.3 图像匹配算法调度
相关匹配是实时图像处理的关键。归一化去均值互相关匹配算法是一种用于图像匹配的经典算法[3],设参考图为Gr,其大小为Mr×Nr,实时图为Gs,其大小为Ms×Ns,且应使Mr>Ms,Nr>Ns。Ms×Ns的子图Gr(u,v) 与实时图Gs间的相关度ρ(u,v)定义为:
式中Gr(u,v)和Gs分别为Gr(u,v)和Gs的灰度均值。之后,再从计算出的匹配相关面数据ρ(u,v)中选取极值点得到匹配定位点,故互相关匹配算法的运算量主要集中在相关面数据ρ(u,v)的计算上。
从式中可以看出,实时图Gs的均值Gs只需计算一次, 参考图子图Gr(u,v)的均值Gr(u,v)和标准差可以预先计算并载入各DSP独立的FLASH存储器中,这样相关匹配算法运算量主要集中在即参考图子图Gr(u,v)与实时图Gs的点积计算。
计算点积的运算量很大,远远超过了其他参数的计算时间,且实验证明单帧图像的匹配处理时间很长,不能满足实时系统的需要,故不适合将单帧图像放在一个DSP中处理,而需要一个降低单帧图像处理时间的方法。
点积计算实际上是图像上各个点和参考图相关点的乘加运算,故可以根据点积计算公式采用空间并行的方法,将采集的实时图分割成m个区域,即为m个子块,每个DSP的FLASH存储器均存入参考图,每个DSP完成一个子块的点积运算。主控CPU在所有子块计算完毕后,将数据整合发送给DSP0,并由DSP0计算求取相关面, 并求匹配定位点位置。
本文介绍了基于多核DSP的实时图像匹配处理系统。通过合理的软硬件划分和并行处理,系统在充分发挥多核DSP的快速处理能力的同时,使得多核DSP 间的数据传输能力得到扩展,从而保证了系统的处理能力和通信能力。在硬件系统的基础上,还专门开发了应用于DSP系统的分布式实时操作系统DSP/BIOS,使得硬件系统对于算法设计者而言是透明的。测试结果表明,该系统能够满足实时匹配图像处理的要求。
参考文献
[1] HUANG Kai,XU Zhi Wei.Scalable parallel computers for real time signal processing. IEEE Signal Processing Magazine,1996,13(4):50-66.
[2] LIU Peng,YAO Qing Dong.Design and implementation of real-time image processing parallel operating system microkernel[J].Acta Electronica Sinica,1999,27(7):42-46.
[3] 沈胜宏,韩月秋.基于多DSP 和FPGA的高速并行互相关图像跟踪技术.北京理工大学学报,2000,20(1):98-101.
[4] 王岳环,汪国有,张天序.一种模块化多DSP 实时图像处理系统.华中科技大学学报,2000,28(3):63-64.
[5] 曹治国,王岳环,左峥嵘,等.多总线多DSP 实时图像处理操作系统的设计与实现.计算机学报,2002,25(7):708-715.
[6] TMS320C6414、TMS320C6415、TMS320C6416 Fixed-point Digital Signal Processors[Z].Texas Instruments Inc.,2003.