【精品】dsp优化心得

【精品】dsp优化心得

ID:44588065

大小:140.00 KB

页数:10页

时间:2019-10-23

【精品】dsp优化心得_第1页
【精品】dsp优化心得_第2页
【精品】dsp优化心得_第3页
【精品】dsp优化心得_第4页
【精品】dsp优化心得_第5页
资源描述:

《【精品】dsp优化心得》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、iPone的一句犬家都耳熟能详的广告词:“一直被模仿,从未被超越”。笔者认为主要是因为他们掌握着核心的算法和机器的优化策略。因为一般的硬件我们都买的回来,但是能否将该破件发挥到极致,就会公司之间的差别,因为同样的硕件,如果软件执行的速度不同,那结果就会有很大的差别,所以说:真正的技术是买不来的。所以,我们进行嵌入式开发的时候,一旦选定了DSP6000系列的芯片,就不能把它当成单片机来用,必须发挥dsp与众不同,独一无二的性能。也就是说如何调整c语言才能够适应这么强悍的便件就是我们考虑的重点内容,即我们应该按照哪种既定的

2、原则去编写C代码才能够让dsp真正作为dsp在工作,发挥到dsp的优势。dsp的优势在于:速度!所以,dsp的优化成为一门专业。所以,我们一定要使自己在dsp上编写的c代码高效运行。因为制约运行速度的因素是硬件和软件。因为dsp-旦选定,硬件也就确定了。所以,我们首先要注意如何提升软件的效率。对于软件来说,一般情况下有3个优化等级。第一:算法上优化。第二:程序结构上的优化。第三:汇编级的优化。我们需耍的是研究前两个等级的优化。所以,在这篇文章中,我们需耍研究的重点有两个:dsp的硬件结构和在dsp上如何优化c代码。1.

3、1dsp的硬件结构关于dsp®件结构的特色有几个:哈佛结构,流水线结构,带宽和运算方式的高效等。1.1.1哈佛结构哈佛结构的本质属性是数据存储器(RAM:存储数据的存储器)和程序存储器(存储指令)分开。Cpu可以一边取指令,一边取数据。这样会极大的提高处理的速度,因为以前是冯诺依曼结构,总线是分时复用的,这样会降低处理的速度。而且,dsp6000系列是基于VL1W结构的,具体来讲就说CPU可以提取通过程序从程序存储器中一次提取256bit的指令,即CPU可以一次取8条指令放在处理屮。加上和8级流水线的配合,相当于8个传

4、统的CPU—起工作。1.1.2流水线结构流水线结构涉及的CPU单元包括取指令单元(fetch),分配指令单元(dispatch)和执行指令单元(executive)o这3个单元都是和程序存储器相关的,是处理指令的儿个单元。首先,程序总线可以一次从ROM中取到8条32位的指令,通俗点说,就说一次取了8条汇编语句。然后经过取指令单元(4个步骤,不详述),分配指令单元(2个步骤),第一个为分配单元,作用是根据指令之间的相关性将这8条指令再次分成不同大小的执行包,如果两条指令是没有相关的,就可以同时执行,不分先后顺序。第二个为

5、译码单元,即翻译成可以被执行单元处理的码。执行指令单元(根据不同的指令分为5个步骤)。但8条指令通过不是一次这4+2+5个步骤,而是在这9个步骤中都有指令在同时工作。例如第1个取值包在第1个步骤,第2个取值包就在第2个步骤,第3个取值包就在第3个步骤,等等。剩下要讨论的就说最关键的部分:执行指令单元。执行指令单元有两个处理指令的通路,每个通路都有4个运算单元:L,S,D,Mo所以指令运算单元就有8个。我们所说的8级流水线作业也就是因为执行单元有8个运算单元。以上就是软件流水线的駛件结构。这就是最基础最最本质的换件结构。

6、我们之后要做的所有的软件优化工作都将作用在这些硬件结构上。但对于我们做优化来讲,我们不需要对硬件了解太深,但一定要了解软件流水线工作的硬件是如何工作的。1.1.3带宽优势和运算方式优势1.1.3.1带宽优势DSP6000系列能够极大突破速度瓶颈的一个原因就是带宽和运算方式。所谓带宽就是cpu一次可以访问的数据量。我们前而提过,指令就是操作码,和指令相关的单元就说取指令单元,分配指令单元和执行指令单元。即这些单元就说和程序存储器ROM打交道的单元。我们在上面介绍了执行单元的8个执行指令的运算单元。但还有32数据通路,即在

7、一个时钟周期内可以从数据存储器RAM屮读取32bit的数据。还有32个通用寄存器(也可以是16个寄存器对)用来暂时存储操作数。这些寄存器就是和数据存储器RAM间接打交道的硬件结构。这里所说的带宽就是我们在从RAM中读取数据的时候,要尽量利用数据通路的宽度,即我们在编写c代码的时候,一定要“想办法”使CPU—次可以读取32位数据到通用寄存器里而(c64-次可以读取64位数据到通用寄存器对里而),因为我们一般情况下处理的原始数据都不是很大,尤其是在图像处理的时候,我们一般情况下使用的是0-255(灰度图像)或(二值图像)。

8、即使对这些数据做加减乘除运算,得到的结果也不会超过2勺所以,我们一般情况下可以用LDW从数据存储器RAM屮读取两个16位的数据(即用sho打声明的数据)。所以,一般情况下,我们用short声明一个数组,然后用LDW来一次读取32位的数据到寄存器屮。这样,我们就可以尽量利用数据通路的宽度,这就是所谓的带宽优势。1.1.3.2运算方式

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。