自动目标识别(ATR)算法通常包括自动地对目标进行检测、跟踪、识别和选择攻击点等算法。战场环境的复杂性和目标类型的不断增长使ATR算法的运算量越来越大,因此ATR算法对微处理器的处理能力提出了更高的要求。由于通用数字信号处理芯片能够通过编程实现各种复杂的运算,处理精度高,具有较大的灵活性,而且尺寸小、功耗低、速度快,所以一般选择DSP芯片作为微处理器来实现ATR算法的工程化和实用化。
为了保证在DSP处理器上实时地实现ATR算法,用算法并行化技术。算法并行化处理的三要素是:①并行体系结构;②并行软件系统;③并行算法。并行体系结构是算法并行化的硬件基础,并行算法都是针对特定的并行体系结构开发的并行程序。根据DSP处理器的数目,ATR算法的并行实现可以分为处理器间并行和处理器内并行。处理器间并行是指多个DSP处理器以某种方式连接起来的多处理器并行系统,ATR算法在多个处理器上并行招待。根据处理器使用存储器的情况,多处理器并行系统又可分为共享存储器多处理器并行系统和分布式多处理器并行系统。处理器内并行是指在单个DSP处理器内通过多个功能单元的指令级并行(ILP)来实现ATR算法的并行化。本文分别对在共享存储器多处理器并行系统、分布式多处理器并行系统和指令级并行DSP处理器上并行实现ATR算法进行了探讨。
1 在共享存储器多处理并行系统上实现ATR算法
在共享存储器多处理器并行系统中,各个处理器通过共享总线对所有的存储器进行操作,实现各个处理器之间的数据通信。而在任一时刻,只允许一个处理器对共享总线进行操作。所以处理器对存储器进行读/写操作时就必须先获得对共享总线的控制权,这通过总线仲裁电路实现。然而,由于所有的处理器只能通过一条共享总线对存储器进行访问,这在处理器数目比较多或者处理器之间频繁交换数据的情况下容易引起总线冲突和等待而降低整个并行系统的运行速度。共享存储器多处理器并行系统的优点是结构简单,当处理器的数目较少时,可以达到较高的加速比。
ADSP2106x处理器支持最为常用的共享存储器多处理器并行系统,组成多处理器系统的每一片ADSP2106x的片内存储器统一编址,任一ADSP2106x可以访问其它任何一片ADSP2106x的片内存储器。由于片内SRAM为双口存储器,因而这种访问并不中断被访问处理器的正常工作。每个处理器片内SRAM既是该处理器的局部存储器,又是共享存储器的部分。在不增加辅助电容的情况下,通过外部总线接口直接相连的处理器数量最多为6个。由于每个处理器的工作程序放在其片内的双口SRAM中,因此各个处理器可以实现并行处理,这是ADSP2106x的存储器结构所决定的。
ATR算法在共享存储器多处理器并行系统中实现时,在编写并行算法程序方面应当重点考虑的问题包括:
(1)均衡地把任务分配给各个处理器
ATR算法在共享存储器多处理器并行系统中实现任务级并行,因此必须把ATR算法划分为计算量均衡的多个任务,把各个任务分配给多个处理器,才能发挥多处理器并行系统的最大并行效率。
(2)尽量减少多处理器之间数据通信
由于多处理器只能通过一条共享总线对存储器进行访问,这在多处理器之间频繁交换数据的情况下容易引起总线竞争而降低整个并行系统的运行速度。
(3)利用单个处理器的并行编程特性
充分应用单个处理器的并行编程特性,有利于缩短各个处理器上任务的运行时间。例如,ADSP2106x的32位浮点运算单元包含一个乘法器、一个加法器和移位逻辑电路,它们并行工作;比特倒转寻址在傅立叶变换运算时非常有用;循环寻址在作卷积、数字滤波运算时经常用到等。
|