TMS320C64XDSP的程序设计与优化
电子元件,电子元器件深圳市创唯电子有限公司
您现在的位置: 首页 > 电子技术
TMS320C64XDSP的程序设计与优化  2012/3/1
1TMS320C64X的特点采用VelociTI.2体系结构的C64X系列定点DSP芯片,在结构上有许多特点:1)C64X片内有2个数据通道、8个功能单元(.L1,.L2,.S1,.S2,.D1,.D2,.M1和.M2,其中.M1和.M2为两个乘法器)和2个一般目的寄存器文件(A和B)。而8个功能单元和2个寄存器文件又分成了相同的两组,每组占用一个数据通道。两个数据通道之间包含有两个数据交叉通路。2)C64XDSP采用超长指令字(VLIW),即在每个时钟周期最高可提供8条32位指令,总字长为25
  1 TMS320C64X的特点
采用VelociTI.2体系结构的C64X系列定点DSP芯片,在结构上有许多特点:
1) C64X片内有2个数据通道、8个功能单元(.L1,.L2,.S1,.S2,.D1,. D2,.M1和.M2,其中.M1和.M2为两个乘法器)和2个一般目的寄存器文件(A和B)。而8个功能单元和2个寄存器文件又分成了相同的两组,每组占用一个数据通道。两个数据通道之间包含有两个数据交叉通路。
2) C64X DSP采用超长指令字(VLIW),即在每个时钟周期最高可提供8条32位指令,总字长为256位的指令包同时分配到8个并行处理单元。在600MHz的时钟频率下,当片内8个处理单元同时运行时,其最大处理能力可以达到4800MIPS。
3) C64X DSP具有双16bit扩充功能,芯片能在一个周期内完成双16bit的乘法、加减法、比较、移位等操作。

2 TMS320C64X的软件开发
流程。
TMS320C64X内部有8个独立的功能单元,所以在一个周期内最多可以并行执行8条指令。然而指令与功能单元之间特殊的映射关系、每一条指令执行时间的不相同、每一条指令的数据通路的不相同和指令间操作数的相关性等因素,致使一个周期内实际能并行执行的指令数达不到8条,从而降低了DSP的性能,因此,必须采用合理的开发和优化流程,尽可能的对代码进行优化,从而提高指令执行的并行度。
如图1所示,工作流程一般分为三个阶段。
阶段一:直接按照需要用C语言实现功能。在实际的DSP应用中,许多算法都是非常复杂,直接用汇编代码编写,虽然优化效率很高,可是实现的难度却很大,所以一般都采用先用C语言来实现,然后编译运行,利用C64X开发环境的profile clock工具测试程序运行时间,若不能满足要求,则进行第二阶段。
阶段二:C语言级的优化。选择C64X开发环境提供的优化方式以及充分运用其他技巧,优化C代码,若还不能满足效率要求,则进行第三步。
阶段三:汇编级的优化。将上一阶段C程序中优化效率较低的部分提出来,用线性汇编语言编写,利用汇编优化器进行优化。汇编优化器的作用是让开发人员在不考虑C64X流水线结构和分配其内部寄存器的情况下,编写线形汇编语言程序,然后汇编优化器通过分配寄存器和循环优化将汇编语言程序转化为利用流水线方式的高速并行汇编程序。
上述的三个阶段不是都必须经过,当在某一阶段获得了期望的性能,就不必进行下一阶段的优化。

3 C代码的优化方法
对于C64X平台下的C源程序,可以选用的优化方法有:
1) 选用C编译器提供的优化选项
在编译器中提供了分为若干等级和种类的自动优化选项,如下:
● -o:使能软件流水和其他优化方法
● -pm:使能程序级优化
● -mt:使能编译器假设程序中没有数据存储混淆,可进一步优化代码。
● -mg:使能分析(profile)优化代码
● -ms:确保不产生冗余循环,从而减小代码尺寸
● -mh:允许投机执行
● -mx:使能软件流水循环重试,基于循环次数对循环试用多个方案,以便选择最佳方案。

与《TMS320C64XDSP的程序设计与优化》相关列表
电话:400-900-3095
QQ:800152669
库存查询
Copyright(C) 2011-2021 Szcwdz.com 创唯电子 版权所有 备案号:粤ICP备11103613号
专注电子元件代理销售  QQ:800152669  电子邮件:sales@szcwdz.com  电话:400-900-3095