dsp c语言编程,DSP c语言编程优化技巧

来源: cces-BlackfinCompiler-library-manual

1.  循环缓冲区:重复取某些数,编译器直接创建缓冲区,不必每次去内存某个地址读数——计算地址取数访问总线浪费时间。

2.  分支预测:告诉编译器那种情况更可能发生内核流水线可以更大概率取到需要的判断分支,整体上运行更快。

3.  循环边界预测:告诉编译器loop_count大于4,编译器就不必考虑它等于零的问题,变量边界已知可以减轻编译器思考的复杂度。

4.  内联函数比宏定义更可靠,一样节省调用时入栈出栈操作。

5.  一个指令,在内存的两个BANK中同时取数,数据在同一个bank影响速度。

6.  不要在循环内放太多中间变量。

7.  循环依赖一个任意变化的变量,不如依赖一个自增的i,每次自增1最佳。

8.  内循环要多于外循环。

9.  循环之内别放判断,宁可重复写循环,先判断再循环。

10.  多维数组应该优先改变低维下标。

11.  控制循环次数的变量,应为unsigned int,且不要是全局变量。

12.  乘加统统单独出来,移位会打乱编译,不如直接乘2。

13  指令流水线:某个数增加后存取,应该转化为先存取后增加,尤其是循环中。芯片会同时执行存储和运算。

14.  内核有2个乘加单元,矢量化后可以一个两个乘加,编译器自动判断是否矢量化,也可手动强制矢量化,注意数组内存对齐。

15.  充分利用官方库函数。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值