您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于DSP的Max-Log-MAP算法实现与优化 正文
基于DSP的Max-Log-MAP算法实现与优化

基于DSP的Max-Log-MAP算法实现与优化

点击数:7972 次   录入时间:03-04 11:41:52   整理:http://www.55dianzi.com   DSP/FPGA技术


www.55dianzi.com

我们引入3组临时变量FSM_tempj,FSMj_old和FSMj_new(j=0,1,…,7)用来存储FSM的计算结果,这样在下次递推时CPU可以直接从内部的寄存器读取数据,避免了从数据存储器的load操作。优化后的代码结构如下:

        与先前只采用两个临时变量sum1和sum2相比,优化后的代码采用更多的变量,这样可以保持数据的独立性,避免造成CPU寄存器的关联,使代码更易于流水线操作。

       4.2.3 LLRU模块

        对于LLRU算法模块的代码优化主要从减少加减操作指令入手,这涉及到对算法的改进。前文提到每一时刻的转移路径有16条,如果采用3.3节的程序结构,对分支度量要进行16次加减操作。考虑到分支度量只有4种取值,结合RSC(13,15)网格图的映射关系,按照分支度量的取值将转移路径分为4组,这4组分别对于分支度量的加减操作先不予处理,即先选最大后再进行相应的分支度量加减操作,这样每一次循环可以将分支度量的加减操作由原来的16次减少至4次,故可以大大降低CPU资源的消耗。相应的优化代码结构如下:

          4.3 代码优化前后消耗的指令周期对比

         我们使用合众达公司的SEED—C6416仿真开发板,采用C6416-T系列DSP芯片在CCS 3.1编译环境下对各个算法模块及整个Max-Log-MAP算法进行了编译与硬件仿真,Turbo码的信息帧长选为144 b,代码的数据类型定义为int型,编译选项设置为-03-mt-pm。使用CCS附带的定时器(Timer)功能,对优化前后代码消耗的指令周期进行了 测试 ,结果如表1所示。

         可见,优化后的代码大大降低了CPU指令周期的消耗,提高了DSP的工作效率。值得提出的是,在代码优化时主要针对算法本身的指令操作与数据存储等方面进行了改进,事实上,在具体的开发过程中还可以根据实际的数据宽度采用内联函数(intrinsICs),数据封装处理(PACkeddata processing)等措施对代码进行进一步优化,以获得更高效的性能。

        5 结 语

        本文研究了基于标准C语言的Turbo码Max-Log-MAP译码算法的软件编程与实现方法,并结合TMS320C6000系列DSP芯片的结构与特点深入探讨了代码的优化设计,通过循环展开、数据存取优化、



www.55dianzi.com

算法的改进等措施提高代码的效率, 测试 结果表明,经过优化的代码可以大大降低CPU的指令周期消耗,从而获得了比较高效的处理性能。



上一页  [1] [2] 


本文关键字:暂无联系方式DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术