保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

基于DSP的信道译码算法优化


考虑尽量减少对数据数组的操作。在上面程序的改进中,先从数组中取出要进行循环处理的累计度量值,再使用accumXX及addX作为各次迭代的中间变量,在循环后将最后的结果放入数据。这样就大大减少了对数组的操作,从而使优化进一步提高。

*编译器优化选项的选择。C6000 C/C++编译器提供了大量的编译选项,供用户在编译时选择使用。这些选项中的部分会直接影响或控制编译器优化过程,因而会影响编译输出的代码优化性能。选择适合的选项,能极大地提高优化性能。在这里使用的优化选项有:

-03——表示可得到最高程度的优化,编译器将执行各种优化循环的方法,如软件流水、循环展开等等。

-pm——在使用-o3选项进行优化时尽量联合使用-pm选项,-pm是程序级优化,使优化器访问整个程序,了解循环次数。

-op1——使用了外部变量,但未使用外部函数调用。

-g——使能符号调试和汇编源语句调试。

另外,还有不少考虑因素和优化调试方法,如消除存储器相关性、对短字长的数据使用宽离长度的存储器访问等。由于篇幅所限不能在这里一一列出,详细资料可参考TMS320C6000 Code Composer Studio Manuals中的TMS320C6000 Optimizing C Compiler User's Guide。

测试结果:在经过上述优化后运行耗时(时钟周期)已降为406个,代码的性能大为提高,已经满足系统要求。

③由上述可知,在程序中影响性能的主要代码通常是循环。优化一个循环较好的方法是抽出这个循环,使之成为一个单独文件,对其进行重新编写、重新编译和单独运行。为了提高代码性能,对影响速度的关键C代码段可以用线性汇编重新编写,使用汇编优化器进行优化后效率是非常高的。若代码性能仍未满足要求,则可进行第三阶段,将其抽出,全部用线性汇编来编写,在代码中以函数的形式将改写的部分调用。将循环代码段改写为线性汇编调用函数的格式如下:

.global_KernelLoop ;函数名定义前加_

_KernelLoop:.cproc channel_data,branch_metric_array,depunc ;定义入口形参变量

.reg c,q0,q1,y1,y2,x1,x2,cc,temp,temp0,temp1,temp2,temp3

.reg counter,valuel,value2,value3定义中间变量

no_mdep ;表明存储器地址不相关

zer0 c ;初始化变量

zero cc

loop: .trip 24 ;声明循环24次

·

·

·

运行语句

·

·

·

[counter]sub counter,23,counter;循环计数

[counter]b loop ;循环跳转

.return ;完成返回

.endproc ;结束

编写线性汇编的工作量大,开发周期长且不能像C语言程序一样移植到其它类型DSP上,所以尽量在第一、二阶段完成工作。若仍满足不了性能要求,则再对关键代码段进行线性汇编的改写。

结语

《基于DSP的信道译码算法优化(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/152133.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。