本文主要是介绍DSP芯片上算法加速技巧总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#1 将多层或者双层循环改为单层循环。
让循环只形成一个pipeline,充分利用dsp的流水线,
#2 使用const关键字限定目标。
C6000编译器如果确定两条指令是不相关的,则安排它们并行执行。 关键字const可以指定一个变量或者一个变量的存储单元保持不变。
这有助于帮助编译器确定指令的不相关性。
#3 使用内联指令_add2()
将16位整数改为32位,调用_add2()一次完成两组16位整数的加法,效率可提高一倍。
#4 用内联指令_add2、_mpyhl、_mpylh完成两组16位数的加法和乘法,效率比单纯16位数的加法和乘法提高一倍。
#5 尽可能地用逻辑判断语句替代if...else...语句,减少跳转语句。
#6 实现16位的除法,要求被除数var1和除数var2都是整数,且var1<=var2。利用C6XX特有的指令subc,实现除法的循环移位相减操作。
把被除数和除数都转换成32位数来操作,返回时取低16位数。
#7 内联机制可以消除函数调用和返回带来的开销。充分利用dsp内联指令进行加速。
这篇关于DSP芯片上算法加速技巧总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!