优化是一个值得讨论的话题,要最大程度利用缓存,并且合理使用线性汇编,若你有信心比编译器优化的
好,也可以尝试汇编。
有些人可能一直搞不清楚,自己的算法究竟要优化到何种程度才算完结。要用什么样的方式去优化。当你
的优化取得一定成绩时,你一定非常开心,但是,问题来了,是否应该继续。。。,我曾经也为这些问题困扰着。
我觉得,要达到这样一个能力:能够结合项目需求为优化工作制定一个方案,并且知道下一步该做什么优
化。要达到这样的境界,必须对CPU指令的执行情况、待访问数据的分布位置、有哪些汇编指令可以在项目中
使用、如何在程序的可读性与优化的适用性之间达到平衡这四个方面有着清晰的认识。在你遇到困难时,你
不能说:大概就这样吧,这样就可以了。这样的想法,只会扼杀你的学习欲望。
我分几个方面阐述要学习的知识点。基本包括:DSP不同的指令类型的执行规律,让待访问数据处于合适
的位置,(通过汇编或线性汇编)让DSP满流水线工作,等等。
首先从寄存器谈起,因为cpu所有的运算都在和寄存器打交道,理想情况下,如果cpu所需要的数据都在寄存器中,
那么速度无疑是最佳的。DSP有AB两组寄存器,每组32个。请看下图
图1-1 :两组寄存器示意图
DSP包含了4种类型的指令。每种类型的指令执行的时间是不一样的,具体请看下图&#x