dsp优化心得
dsp学习心得体会 学习心得体会

dsp学习心得体会学习心得体会篇一:DSP学习总结DSP学习总结摘要:本总结介绍了数字信号技术(DSP)的基本结构,特点,发展及应用现状。
通过分析与观察,寄予了DSP美好发展前景的希望。
关键字:数字信号处理器,DSP,特点,应用1 DSP介绍数字信号处理简称DSP,是进行数字信号处理的专用芯片,是伴随着微电子学、数字信号处理技术、计算机技术的发展而产生的新器件,是对信号和图像实现实时处理的一类高性能的CPU。
所谓“实时实现”,是指一个实际的系统能在人们听觉、视觉或按要求所允许的时间范围内对输入信号进行处理,并输出处理结果。
数字信号是利用计算机或专用的处理设备,以数值计算的方式对信号进行采集、变换、综合、估计与识别等加工处理,从而达到提取信息和方便应用的目的。
数字信号处理的实现1是以数字信号处理理论和计算技术为基础的。
2 结构32位的C28xDSP整合了DSP和微控制器的最佳特性,能够在一个周期内完成32*32位的乘法累加运算。
所有的C28x芯片都含一个CPU、仿真逻辑以及内存和片内外设备的接口信号(具体结构图见有关书籍)。
CPU的主要组成部分有:程序和数据控制逻辑。
该逻辑用来从程序存储器取回的一串指令。
实时和可视性的仿真逻辑。
地址寄存器算数单元(ARAU)。
ARAU为从数据存储器取回的数据分配地址。
算术逻辑单元(ALU)。
32位的ALU执行二进制的补码布尔运算。
预取对列和指令译码。
为程序和数据而设的地址发生器。
定点MPY/ALU。
乘法器执行32位*32位的二进制补码乘法,并产生64位的计算结果。
中断处理。
3 特点采用哈佛结构。
传统的冯?诺曼结构的数据总线和指令总线是公用的,因此在高运算时在传输通道上会出拥堵现象。
而采用哈佛结构的DSP 芯片片内至少有4 套总线:程序的地址总线与数据总线,数据的地址总线与数据总线。
由于这种结构的数据总线和程序总线分离,从而在一个周期内同能2时获取程序存储器内的指令字和数据存储器内的操作数,提高了执行速度。
关于dsp心得体会

关于dsp心得体会篇一:dsp实验报告心得体会TMS320F2812x DSP原理及应用技术实验心得体会1. 设置环境时分为软件设置和硬件设置,根据实验的需要设置,这次实验只是软件仿真,可以不设置硬件,但是要为日后的实验做准备,还是要学习和熟悉硬件设置的过程。
2. 在设置硬件时,不是按实验书上的型号选择,而是应该按照实验设备上的型号去添加。
3. 不管是硬件还是软件的设置,都应该将之前设置好的删去,重新添加。
设置好的配置中只能有一项。
4. CCS可以工作在纯软件仿真环境中,就是由软件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。
但是一般无法构造DSP中的外设,所以软件仿真通常用于调试纯软件算法和进行效率分析等。
5. 这次实验采用软件仿真,不需要打开电源箱的电源。
6. 在软件仿真工作时,无需连接板卡和仿真器等硬件。
7. 执行write_buffer一行时。
如果按F10执行程序,则程序在mian主函数中运行,如果按F11,则程序进入write_buffe函数内部的程序运行。
8. 把str变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变量,就可以看到结构体变量中的每个元素了。
9. 在实验时,显示图形出现问题,不能显示,后来在Graph Title 把Input的大写改为input,在对volume进行编译执行后,就可以看到显示的正弦波图形了。
10. 在修改了实验2-1的程序后,要重新编译、连接执行程序,并且必须对.OUT文件进行重新加载,因为此时.OUT文件已经改变了。
如果不重新加载,那么修改执行程序后,其结果将不会改变。
11. 再观察结果时,可将data和data1的窗口同时打开,这样可以便于比较,观察结果。
12. 通过这次实验,对TMS320F2812x DSP软件仿真及调试有了初步的了解与认识,因为做实验的时候都是按照实验指导书按部就班的,与真正的理解和掌握还是有些距离的。
dsp实习心得体会

dsp实习心得体会
作为一名实习生,在经历了一段时间的实习,我对DSP工作有了更深入的了解,并积累了一些心得体会。
首先,学习是实习中最重要的一部分。
在实习过程中,我主动向导师和同事请教问题,学习他们的经验和技巧。
同时,我也会主动在工作之余积极学习相关的书籍和资料,
不断提升自己的专业水平。
其次,沟通和合作能力至关重要。
在实习过程中,我意识到与同事和团队合作的重要性。
良好的沟通能力可以帮助我更好地理解任务需求,并与团队成员共同解决问题。
合作能力也是实现团队目标的关键,通过与团队成员的紧密合作,我们可以更高效地
完成任务。
另外,实习对于培养解决问题的能力也起到了重要的作用。
在实习过程中,我们经常
面临各种挑战和问题。
我逐渐养成了主动思考和分析问题的习惯,学会了寻找解决问
题的办法。
通过克服困难,我不仅增加了自信心,而且也锻炼了自己的解决问题的能力。
最后,实习也是一个提升自己综合素质的机会。
除了专业知识和技能外,我还懂得了
工作中的细节管理、时间管理,以及处理压力的能力。
通过实习,我不仅在专业方面
得到了提升,还全面提升了自己作为一名职业人士所必备的综合素质。
总之,通过这段实习经历,我深刻认识到了专业能力、沟通能力、问题解决能力以及
综合素质的重要性。
我将会继续学习和提升自己,不断成长,为将来的工作打下坚实
的基础。
dsp心得体会范文

dsp心得体会范文dsp心得体会篇一:DSP原理及应用的学习体会这个学期通过《对DSP芯片的原理与开发应用》课程的学习,对DSP芯片的概念、基本结构、开发工具、常用芯片的运用有了一定的了解和认识,下面分别谈谈自己的体会。
一,DSP芯片的概念数字信号处理(DigitalSignalProcessing)是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、增强、滤波、估值、压缩、识别等处理,以得到符合人们需要的信号形式。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
在通信、等诸多领域得到极为广泛的应用。
DSP(DigitalSignalProcess)芯片,即数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器,其应用主要是实时快速的实现各种数字信号处理算法。
该芯片一般具有以下主要特点:(1)在一个指令周期内可完成一次乘法和一次加法;(2)程序与数据空间分开,可以同时访问指令和数据;(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或无开销循环及跳转的硬件支持;(5)快速的中断处理和硬件支持;(6)具有在单周期内操作的多个硬件地址产生器;(7)可以并行执行多个操作;(8)支持流水线操作,使取值、译码和执行等操作可以同时进行。
世界上第一个单片DSP芯片应当是1978年AMI公司发布的S2811,1979年美国INTEL公司发布的商用可编程器件2920是DSP芯片的一个主要里程碑。
这两种芯片内部都没有现代DSP芯片所必须有的单周期乘法器。
1980年,日本NEC公司推出的uPD7720是第一个具有乘法器的商用DSP芯片。
当前,美国德州公司(TI),Motorola公司,模拟器件公司(AD),NEC公司,AT&T公司是DSP芯片主要生产商。
选择合适的DSP芯片,是设计DSP应用系统的一个非常重要的环节。
dsp实验心得体会范文3篇_dsp实习心得体会(2)

dsp实验心得体会范文3篇_dsp实习心得体会(2)dsp实习心得体会篇1如果说前几年DSP作为一个器件,一个处理器或一个事物是相对比较新的东西,那么现在DSP已经在我们电子设计开发中非常常见了。
首先我们从定义上简单理解一下DSP。
我们涉及到的DSP主要是只这里特指数字信号处理器芯片,这里我把我的一些学习经验和大家分享。
希望对大家有帮助了解DSP我个人认为学习一个东西首先是了解它,比如DSP到底是什么?用在什么地方?怎么用?和这里我们传统的单片机特点有那些相同与不同?开发需要注意什么?怎么样完成一个最小系统等。
我想了解清楚这些问题我们自然就清楚比较清楚的认识DSP了。
下面我们就来对上面的问题我们在很多地方都可以找到答案,我把其中比较重要的简单的回答一下。
DSP大家注意和传统的概念区分一下,传统我们经常说的DSP(Digital Signal Processing(数字信号处理))的缩写也就是说是一些功能算法,这里的DSP是指(Digital Signal Process(数字信号处理器))的缩写,也就是说他是一个集成一些外设的一个芯片,类似我们的单片机。
我们通过程序实现一些特定的功能。
和传统单片机比较的区别?DSP功能比普通单片机高出很多,当然价格也比较高。
所以直接用DSP和单片机比较是不合适的。
我们这里比较不是从他的应用领域来比较,我们是从开发的角度来比较,为了是使那些熟练使用单片机的朋友可以很快上手。
当然我的主要目的的大家可以比较学习,达到熟悉一种CPU其他就可以很快上手。
下面从几个方面比较一下1,硬件上比较从硬件上比较DSP和传统的单片机主要有几个方面不一样,很多DSP电源系统比传统的复杂,但是这个并不影响我们因为如TI的DSP 都提供相关的测试电路。
开始的时候大家可以完全按照他来设计。
调试方式上有很大不同,DSP一般通过JTAG来进行仿真和烧写的,而单片机是通过直接仿真器来仿真的(这里讲的单片机是比较早的,现在的单片机也有很多采用JTAG调试方式)。
dsp实验心得体会范文3篇_dsp实习心得体会

dsp实验心得体会范文3篇_dsp实习心得体会digital signal processor简称DSP,中文意思是数字信号处理,DSP就是用数值计算的方式对信号进行加工的理论和技术,现结合自身,谈谈一些心得体会。
本文是dsp实验的心得体会范文,仅供参考。
dsp实验心得体会范文篇一1. 设置环境时分为软件设置和硬件设置,根据实验的需要设置,这次实验只是软件仿真,可以不设置硬件,但是要为日后的实验做准备,还是要学习和熟悉硬件设置的过程。
2. 在设置硬件时,不是按实验书上的型号选择,而是应该按照实验设备上的型号去添加。
3. 不管是硬件还是软件的设置,都应该将之前设置好的删去,重新添加。
设置好的配置中只能有一项。
4. CCS可以工作在纯软件仿真环境中,就是由软件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。
但是一般无法构造DSP中的外设,所以软件仿真通常用于调试纯软件算法和进行效率分析等。
5. 这次实验采用软件仿真,不需要打开电源箱的电源。
6. 在软件仿真工作时,无需连接板卡和仿真器等硬件。
7. 执行write_buffer一行时。
如果按F10执行程序,则程序在mian主函数中运行,如果按F11,则程序进入write_buffe函数内部的程序运行。
8. 把str变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变量,就可以看到结构体变量中的每个元素了。
9. 在实验时,显示图形出现问题,不能显示,后来在Graph Title 把Input的大写改为input,在对volume进行编译执行后,就可以看到显示的正弦波图形了。
10. 在修改了实验2-1的程序后,要重新编译、连接执行程序,并且必须对.OUT文件进行重新加载,因为此时.OUT文件已经改变了。
如果不重新加载,那么修改执行程序后,其结果将不会改变。
11. 再观察结果时,可将data和data1的窗口同时打开,这样可以便于比较,观察结果。
dsp实习心得体会7篇

dsp实习心得体会7篇dsp实习心得体会 (1) 很荣幸今年暑期能够通过赣州市青年英才“展翅计划”加入到南康区行政审批局进行为期一个月的暑期实习。
通过这一个月的实习,我了解到了南康区市民服务中心的工作运作情况和区行政审批局的单位文化,在实际的工作中提升了自己的职业技能,积累了一定的工作经验,收获颇丰。
在实习过程中,我了解到了市民服务中心为方便群众办理业务而设立的种种举措,双向开放服务中心努力为南康优化产业布局,做大做强南康家具产业集群提供强大助力。
在实际工作中,除了完成领导交代的任务外,引导群众到相应的窗口办理业务,解答群众的疑惑成为了我的主要工作。
刚开始虽然也会遇到不懂的问题,但是通过耐心地沟通解释最终也能够得以解决。
在这一个月中,国内疫情防控形式变得异常严峻,疫情防控措施逐渐加强。
按照上级要求,及时排查市民服务中心工作人员疫苗接种情况,详细询问未接种原因。
在市民服务中心一楼大厅入口值班,为来访的群众测量体温、查验赣通码、行程码,询问是否接种新冠疫苗成为了常态。
对于一些未正确佩戴口罩的人员,在我们的温馨提醒下,都能够自觉佩戴好口罩,为自己和他人的健康负责。
在经过这为期一个月的实习工作后,我感受到了单位工作人员的不易,帮助到了办事群众,也提升了自我,而我也将继续努力,在未来的学习、工作中积极参加各类社会实践活动,为社会奉献出自己的一份力量。
dsp实习心得体会 (2) 我的为期六个周的实习在昨天彻底的结束了,原以为我会很轻松很潇洒的离开,但是没有想到当我跟我们班的那些同学告别,收拾行李踏上返校的汽车的时候,心情竟然是如此的复杂。
有对我们班那些学生的不舍,刚开始的时候我觉得很难融入那个班集体,常常会觉得很失落,可是当我刚刚开始慢慢融入到那个集体,发现了那群学生的活泼可爱的时候,实习却要结束了。
发现现实真的是很残酷的,它总是能抓住人性的弱点,然后再给我们狠狠一击。
所以在这里我也衷心的祝愿我的那班学生们能够健康快乐的成长,虽然他们现在的学习不是很让人省心,但是我坚信他们最后都能找到适合自己的一条路,开创属于自己的一片天,因为他们都是聪明善良的孩子!也衷心的祝愿我的实习指导老师张老师能够健康快乐,生活幸福美满!也感谢她在这段时间给与我的帮助。
2024年dsp实习心得体会

2024年dsp实习心得体会(____字)一、实习前的准备作为一名计算机科学专业的学生,我对数字信号处理(DSP)有着浓厚的兴趣。
在大四年级,我有幸获得了一份DSP实习岗位,并且是在一家知名的科技公司进行实习。
为了充分准备实习,我提前学习了相关的基础知识,如信号处理理论、数字滤波器、频域分析等。
此外,我还系统地学习了Matlab和C语言的使用,以便更好地进行实习工作。
二、实习期间的学习和工作在实习的第一天,我被分配到一个DSP团队,该团队主要负责音频信号处理的相关项目。
在实习的初期,我主要进行了一些基础的工作,如编写测试脚本、调试硬件设备等。
这些工作虽然不是很有挑战性,但是对于我来说是一个很好的入门机会,让我熟悉了公司的工作流程和团队合作方式。
随着实习的深入,我逐渐接触到了一些更具挑战性的任务。
例如,我被要求设计一个实时音频滤波器,用于消除特定频率的噪音。
这个任务需要我运用已学的信号处理理论知识,并且结合Matlab和C语言进行算法设计和实现。
在完成任务的过程中,我遇到了一些困难和挫折,但是通过仔细研究文献资料和与导师的讨论,我最终成功地完成了这个任务。
通过这个项目,我不仅巩固了信号处理和编程的基础知识,也锻炼了我的问题解决能力和团队合作能力。
三、与团队的沟通和合作在实习期间,我与团队的沟通和合作起到了至关重要的作用。
首先,我与团队成员进行了充分的交流,让我更好地了解公司的工作流程和项目进展。
同时,我也与导师定期开展讨论,与他们分享我的想法和实习中遇到的问题。
在他们的指导下,我能够更好地理解项目的需求,并且提供相应的解决方案。
此外,我还积极参与团队的讨论和协作,与其他实习生和工程师们一起合作完成一些团队项目。
通过与团队的合作,我学会了如何与他人协作,如何有效地分配任务和管理时间。
团队的合作给我提供了很大的启发和帮助,让我更好地了解了工作中的团队协作和沟通的重要性。
四、个人成长和收获通过这次DSP实习经历,我在多个方面都得到了很大的成长和收获。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
iPone 的一句大家都耳熟能详的广告词:“一直被模仿,从未被超越” 。
笔者认为主要是因为他们掌握着核心的算法和机器的优化策略。
因为一般的硬件我们都买的回来,但是能否将该硬件发挥到极致,就会公司之间的差别,因为同样的硬件,如果软件执行的速度不同,那结果就会有很大的差别,所以说:真正的技术是买不来的。
所以,我们进行嵌入式开发的时候,一旦选定了DSP6000系列的芯片,就不能把它当成单片机来用,必须发挥dsp 与众不同,独一无二的性能。
也就是说如何调整c 语言才能够适应这么强悍的硬件就是我们考虑的重点内容,即我们应该按照哪种既定的原则去编写C 代码才能够让dsp 真正作为dsp 在工作,发挥到dsp 的优势。
dsp 的优势在于:速度!所以,dsp 的优化成为一门专业。
所以,我们一定要使自己在dsp 上编写的c 代码高效运行。
因为制约运行速度的因素是硬件和软件。
因为dsp 一旦选定,硬件也就确定了。
所以,我们首先要注意如何提升软件的效率。
对于软件来说,一般情况下有3 个优化等级。
第一:算法上优化。
第二:程序结构上的优化。
第三:汇编级的优化。
我们需要的是研究前两个等级的优化。
所以,在这篇文章中,我们需要研究的重点有两个:dsp 的硬件结构和在dsp 上如何优化c 代码。
dsp 的硬件结构关于dsp 硬件结构的特色有几个:哈佛结构,流水线结构,带宽和运算方式的高效等。
1.1.1 哈佛结构哈佛结构的本质属性是数据存储器(RAM存储数据的存储器)和程序存储器(存储指令)分开。
Cpu可以一边取指令,一边取数据。
这样会极大的提高处理的速度,因为以前是冯诺依曼结构,总线是分时复用的,这样会降低处理的速度。
而且,dsp6000系列是基于VLIW结构的,具体来讲就说CPU可以提取通过程序从程序存储器中一次提取256bit的指令,即CPU可以一次取8条指令放在处理中。
加上和8级流水线的配合,相当于8个传统的CPU一起工作。
1.1.2 流水线结构流水线结构涉及的CPU 单元包括取指令单元(fetch ),分配指令单元(dispatch )和执行指令单元(executive )。
这3 个单元都是和程序存储器相关的,是处理指令的几个单元。
首先,程序总线可以一次从ROM中取到8条32位的指令,通俗点说,就说一次取了8条汇编语句。
然后经过取指令单元(4 个步骤,不详述),分配指令单元(2 个步骤),第一个为分配单元,作用是根据指令之间的相关性将这8 条指令再次分成不同大小的执行包,如果两条指令是没有相关的,就可以同时执行,不分先后顺序。
第二个为译码单元,即翻译成可以被执行单元处理的码。
执行指令单元(根据不同的指令分为5 个步骤)。
但8 条指令通过不是一次这4+2+5个步骤,而是在这9 个步骤中都有指令在同时工作。
例如第1个取值包在第1 个步骤,第2 个取值包就在第2 个步骤,第3 个取值包就在第3 个步骤,等等。
剩下要讨论的就说最关键的部分:执行指令单元。
执行指令单元有两个处理指令的通路,每个通路都有4个运算单元:L,S,D,M。
所以指令运算单元就有8个。
我们所说的8级流水线作业也就是因为执行单元有8 个运算单元。
以上就是软件流水线的硬件结构。
这就是最基础最最本质的硬件结构。
我们之后要做的所有的软件优化工作都将作用在这些硬件结构上。
但对于我们做优化来讲,我们不需要对硬件了解太深,但一定要了解软件流水线工作的硬件是如何工作的。
1.1.3 带宽优势和运算方式优势1.1.3.1 带宽优势DSP6000系列能够极大突破速度瓶颈的一个原因就是带宽和运算方式。
所谓带宽就是cpu 一次可以访问的数据量。
我们前面提过,指令就是操作码,和指令相关的单元就说取指令单元,分配指令单元和执行指令单元。
即这些单元就说和程序存储器ROM丁交道的单元。
我们在上面介绍了执行单元的8 个执行指令的运算单元。
但还有32数据通路,即在一个时钟周期内可以从数据存储器RAM中读取32bit的数据。
还有32个通用寄存器(也可以是16 个寄存器对)用来暂时存储操作数。
这些寄存器就是和数据存储器RAM 可接打交道的硬件结构。
这里所说的带宽就是我们在从RAM中读取数据的时候,要尽量利用数据通路的宽度,即我们在编写c代码的时候,一定要“想办法”使CPU^次可以读取32位数据到通用寄存器里面(c64 一次可以读取64 位数据到通用寄存器对里面),因为我们一般情况下处理的原始数据都不是很大,尤其是在图像处理的时候,我们一般情况下使用的是0-255(灰度图像)或0-1(二值图像)。
即使对这些数据做加减乘除运算,得到的结果也不会超过216。
所以,我们一般情况下可以用LDW从数据存储器RAM中读取两个16位的数据(即用short声明的数据)。
所以,一般情况下,我们用short来声明一个数组,然后用LDW来一次读取32位的数据到寄存器中。
这样,我们就可以尽量利用数据通路的宽度,这就是所谓的带宽优势。
1.1.3.2 运算方式优势所谓的运算就说8 个单元可以进行的操作码。
再说具体些就是:加法,减法,乘法,除法,移位,跳转,读取,存储等等。
一般情况下,我们在发挥DSP600C芯片带宽优势的同时要注意运算上的优势。
例如,我们一次可以读取两个16 位的数据放在一个32 位的通用寄存器里。
然后可以用一个双16*16 运算来处理这两个16 位的数据,即我们可以仅仅通过做一次运算就可以进行两个通用寄存器相乘(每个寄存器中的高16 位和低16 位存放的是独立的16 位数据,即两个通用寄存器中有4 个16 位数据),得到的结果就放在一个寄存器对里面。
(如A0:A1 组成的寄存器对,总长64 位,即第1 个结果放在A0里面,第2个结果放在A1里面)。
由于我们是在c 语言层次来讨论dsp 的优化,所以我们要在发挥带宽优势的时候使用内联函数。
因为我们一旦使用了字存取方式来处理数据,就必然会用到相关的内联函数,这两者是联系起来的。
这就是运算方式上的优势。
我们用数据相加来说明运算方式。
传统计算方式上,我们可以一次提取一个16 位数据(放在一个32 位的通用寄存器里),两次就提取两个16 位数据,然后使用一个加法运算,使两个寄存器相加,结果放在放在一个通用寄存器里。
这样一次运算可以使两个16 位的数相加。
如果我们在传统计算方式上进行优化的话,我们可以这样进行,首先使两个数组进行字对齐。
然后使用一个字读取的内联函数读取数据,这样可以一次读取两个16 位的数据放在一个寄存器里,两次就可以读取4 个16 位的数据,之后再使用一个可以进行双16 位数据加16 位数据的内联函数来处理这两个通用寄存器。
这样的话,我们就可以一次处理两个16 位数据和16 位数据的相加。
下面用汇编指令来说明,MPY酣以一次执行双16bit*16bit 的运算。
The following code:MPY A0, A1, A2MPYH A0, A1, A3may be replaced by:MPY2 A0, A1, A3:A2这就是所谓的运算方式上的优势。
一定要记得:带宽优势和运算方式优势是同时发挥的。
dsp 上如何优化 c 代码在C代码基础上进行优化的主要目的就是提高代码执行的速度。
主要策略就是向dsp6000系列的编译器传递一些优化的信息。
这些优化的信息被优化器理解后,就会使编译器将c 代码编译成这些优化信息对应的高效汇编指令,如使用LDW,MYPY等字读取,双16位*16位指令,字对齐,使指令并行执行等。
我们在实际工程应用中,主要针对的就说循环的优化,因为循环是影响执行指令速度的最关键因素。
我们只要优化了循环,就完成了dsp 的优化。
优化循环最大的效果就是使循环的每次迭代参加到流水线中。
下面我们来讨论优化循环的因素。
1.2.1 最重要的因素:循环次数对于一个循环而言,循环次数是最重要的因素,如果能在保证循环功能的情况下减少循环的话(如将16 位读取,16 位相加改称双16 位读取,双16 位相加),那么将极大的优化代码。
减少循环次数将最大限度的减少该循环的指令。
因为从本质上来说,循环次数越多,跳转的次数越多,这样的话CPI处理这些跳转指令的次数越多,负担肯定越大。
循环的汇编指令必须有下面两个指令(红色标记):LOOP:…循环体SUB BO,1,BOfor (i = 0: i < 40; i++){for (j = 0; j < 16;j++)sum += coefs[|] * inputfi + 15 - j];out[i] = (sum » 15);1.2.2}for (i = 0; i < 40; i+中){sum = coefsfO] * input[i -+ 1 5]; sum += coefs[1 ] * input[i + 14]; sum+= coefs[2] * input[i + 13]; sum += coefs[3] * inputfi + 12]; sum +=coefs[4] * input[i +11]; sum += coefs[5] * inputfi + 10];sum += coefs[6] * inpuifl + 9]:sum += coefs[7] “ input[i + 8];sum += coefs[8] * input[i + 7];sum += coefs[9] * inputfi + 6]; sum += ccets[10] * input[i + 5J; sum +=coefs[11 ] * input[i + 4]; sum += coefs[12] * inputfi + 3];sum += coefs[13] * i nput[i + 2];sum += coefs[14] * inputfi + 1];sum 十二coefs[1 5] * input[i + 0];out[i] = (sum >> 15); }units 00・*.S units2* 1・*.D units2* 2*・*.M units2* 2*・*.X cross paths11・*.T address paths2*2*・*Long read paths11・*Long write paths00・*Logical ops (.LS)11(.L or .S unit)・*Additi on ops (.LSD)01(丄 or .S or .Dunit)・*Bound(.L .S 丄S)2*1・*Bound(.L .S .D .LS LSD)2*2*以上是一个循环的资源分配表。
从上面可以看出:一个循环内D单元和M单元都用了两次,平衡了资源的分配。