在DSP处理器上并行实现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。
(凹丫丫范文网fanwen.oyaya.net收集整理)
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代码段加以改进,通常是循环代码段影响软件程序总体性能。
③数据的定标
由于TMS320C62x是定点系列芯片,不支持浮点操作。在程序编写过程中,应当尽量采用定点的数据结构。而实际处理的数据通常都是浮点的,所以需要把浮点数据通过定标转化为整型数据处理,提高程序的处理速度。数据的定标是十分关键的步骤,既要使数据
《在DSP处理器上并行实现ATR算法(第2页)》