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内联指令进行加速。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值