2 在分布式多处理器并行系统上实现ATR算法
在分布式多处理器并行系统中,多处理器有各自独立的存储器,多个处理器通过通信口相连构成分布式多处理器并行系统。分布式多处理器并行系统的加速比和处理器的数目呈线性关系,所以只要增加处理器的数目,分布式多处理器并行系统的处理能力就能够成比例地增加。分布式多处理器比较适合于构成大规模并行系统。
目前,计算量过大仍然是制约许多有效的ATR算法实时实现的个主要因素。ATR算法在分布式多处理器并行系统上实时实现是一个很有潜力的研究领域,特别在地基和天基雷达信号处理系统中有广阔的应用前景。分布式多处理器并行系统的连接方式有线形、树形、星形、网孔和超立方体结构等。树形和星形网络的优点是网络管理容易、数据通信进寻径简单;缺点是树形网络的根节点处理器和星形网络的中央节点处理器的输入/输出吞吐量大,易造成通信瓶颈。所以树形和星形网络不适合ATR算法各个任务数据通信量较大的应用场合。
在分布式多处理器并行系统中并行实现ATR算法目前还处于研究的初始阶段,在编写并行算法程序应当重点考虑两个方面:
(1)各处理器任务的均衡分配
在分布式多处理器并行系统中处理器的数目通常较多,只有合理地对众多的处理器均衡地分配任务,才能最大地发挥并行系统的总体性能,提高并行系统的加速比。
(2)处理器节点间的高效通信
在分布式多处理器并行系统中数据通信都是点对点通信。即两个相邻的处理器之间通过通信口通信。因此需要合理安排各个处理器节点在网络结构中的位置,尽可能地缩短处理器节点间的通信路径长度,从而实现处理器节点间的高效数据通信。
3 在指令级并行DSP处理器上实现ATR算法
在单片DSP处理器内通过多个功能单元的指令级并行(ILP)实现ATR算法的并行化处理,目前适合ATR算法实时处理的指令级并行芯片是TI公司的TMS320C6x系列DSP。TMS320C6x系列DSP处理器是第一个使用超长指令字(VLIW)体系结构的数字信号处理芯片。下面以TMS320C62x定点系列DSP为例说明指令级并行的原理和ATR并行算法软件开发方法。
3.1 VLIW体系结构
TMS320C62x的内核结构如图1所示。内核中的8个功能单元可以完全并行运行,功能单元执行逻辑、位移、乘法、加法和数据寻址等操作。内核采用VLIW体系结构,单指令字长32位,取指令、指令分配和指令译码单元每周期可以从程序存储器传递8条指令到功能单元。这8条指令组成一个指令包,总字长为256位。芯片内部设置了专门的指令分配模块,可以将每个256位的指令分配到8个功能单元中,并由8个功能单元并行运行。TMS320C62x芯片的最高时钟频率可以达到200MHz。当8个功能单元同时运行时,该芯片的处理能力高达1600MIPS。
3.2 基于TMS320C62x的并行算法软件开发方法
基于TMS320C62x的并行编译系统支持C语言和汇编语言开发并行程序代码。通常,开发ATR并行算法按照代码开发流程的三个阶段进行并行程序设计:第一阶段是开发C代码;第二阶段是优化C代码;第三阶段是编写线性汇编代码。以上三个阶段不是必须的,如果在某一阶段已经实现了ATR算法的功能和性能要求,就不必进入下一阶段。
(1)开发C代码
开发C代码需要考虑的要点包括:
①数据结构
TMS320C62x编译器定义了各种数据结构的长度:字符型(char)为8位,短整型(short)为16位,整型(int)为32位,长整形(long)为40位,浮点型(float)为32位,双精度浮点型(double)为64位。在编写C代码时应当遵循的规则是:避免在代码中将int和long型作为同样长度处理;对于定点乘法,应当尽可能使用short型数据;对循环计数器使用int或者无符号int类型,避免不必要的符号扩展。
②提高C代码性能
应用调试器的Profile工具可以得到一个关于C代码中各特定代码段执行情况的统计表,也可以得到特定代码段招待所用的CPU时钟周期数。因此可以找出影响软件程序总体性能的C代码段加以改进,通常是循环代码段影响软件程序总体性能。