基于ZSP500的高效程序优化设计_第1页
基于ZSP500的高效程序优化设计_第2页
基于ZSP500的高效程序优化设计_第3页
基于ZSP500的高效程序优化设计_第4页
基于ZSP500的高效程序优化设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于ZSP500的高效步伐优化方案摘要DSP芯片具有强盛的数据运算成效,充实利用芯片的硬件资源必要对基于硬件的软件举行优化。本文基于ZSP500数字信号处置惩罚器,先容了语言级、汇编级代码优化的历程,详细先容了汇编代码历程中的循环优化。代码优化前后,步伐实行服从进步明显。关键词ZSP500;时钟周期;循环优化;软流水DSP芯片自20世纪80年代诞生以来,在短短的二十多年获得了飞速的生长,随着DSP芯片性价比和应用范畴的不竭扩大,DSP处置惩罚器的品种越来越多,LSILgi公司消费的具有开放式布局的数字信号处置惩罚器ZSP系列在很多范畴都有普及的应用,此中ZSP400在环球的无线、IP 、消耗类

2、音频的具有普及的担当度,ZSP500是针对3G无线和多媒体应用而方案的,ZSP600是基站和网络装备的抱负选择1。每一序次号的提拔,都表现硬件性能的快速进步,硬件性能的进步可以减轻软件方案的压力,但是硬件性能的不竭进步,产物的本钱也在不竭的进步,过分、过快的硬件晋级换代对应用也有害处,而基于必然的硬件资源,举行优化软件,进步硬件资源的利用率,实现目的要求就变得比力紧张,如许会淘汰产物本钱,到达较高的性价比。本文是在与复兴公司互助开拓新一代语音编解码器底子上的履历总结,论文基于ZSP500的硬件资源,先容了根本的优化要领,充实开掘硬件的潜力,获得了精良的结果。ZSP500是针对3G和多媒体应用而

3、方案的,在内存、功耗、性能方面有着良好的表现,它是基于RIS的超标量架构,其硬件方案可以按照分组原那么确定每个时钟周期要实行的指令条数,而且ZSP500具有静态分支猜测成效,可以淘汰分支跳转处分,ZSP500的指令集简朴、易懂,条件实行可以实行多达8条相邻指令,可以淘汰分支,加快数据依靠算法的实现等等。ZSP500的内核是一个四通道超标量、双A的数字信号处置惩罚器,时钟频率250Hz,拥有16个16位通用存放器,相邻的两个16位存放器可以归并为32位存放器,与8个相应的8位引导存放器可组成40位通用存放器,8个32位基址存放器,一个时钟周期最大可以实行64位数据的读取,双A可以到达每秒500的

4、A操纵,同时具有双算术逻辑单位ALU0,ALU1,双地点天生单位AGU0,AGU1234。ZSP500指令实行的8级流水线线别离为取指/译码F/D、指令分组GR、念书据RD、地点天生AG、内存毗连00、内存毗连11、实行EX、数据写回B3,如图1所示。认识指令各个流水线阶段数据和存放器内容变革的时序,可以躲避种种数据和资源的辩论,保持流水线长时布满,硬件资源充实利用,步伐高效、稳剑图1ZSP500八级流水线步伐优化总体原那么:基于ZSP500的硬件资源,按照指令分组原那么3编写简便、高效的汇编指令,可以或许长时包管流水线的布满,充实发挥利用ZSP500强盛的运算成效。评价尺度:硬件资源的利用率

5、和每时钟周期现实指令实行条数。优化流程:基于ZSPIDE集成开拓环境,测试纯语言工程的实行服从,开拓环境的设置上我们可以开起开拓环境的主动优化选项03级优化,如许开拓环境可以对语言步伐主动举行三级速率优化2,在这种设置下,按照开拓环境提供的东西,测试探求步伐耗时较高的步伐段或子函数,举行语言级的优化,优化完毕后,测试优化结果,假设满意目的要求,那么优化使命完成。假设不满意要求要求,那么要举行汇编级步伐优化,这时我们要将耗时较高的函数或步伐段举行手工汇编并举行优化,直至满意优化要求。通常环境下,汇编步伐的优化结果比力显着,也是优化要求可否到达的关键,整个流程如图2所示。3.1语言的优化语言的优化

6、重要要领是1按照ZSPIDE编译原理编写符合的语言源步伐,使得开拓环境可以或许主动将语言转换成为高效的汇编步伐;2公正的拆分语言步伐,精良的、易懂的语言布局不代表高效的语言实行服从;3利用内联函数,淘汰函数调用所造成的时间消耗,特别是被频仍调用的子函数,充实利用DSP库函数交换原有的具有雷同成效的函数,DSP库函数是针对DSP硬件资源编写的高效成效模块函数,能大大进步语言步伐的实行服从56。图2步伐优化流程图3.2高效汇编步伐的编写与优化将优化后的语言步伐,在ZSPIDE环境下测试语言的实行服从,详细按照步伐实行所泯灭的总时钟数yle,泯灭的总yle数量中1grupyles,2grupyles

7、,3grupyles1,4grupyles的各自数量,以上四种环境别离表现每个yle实行的汇编语句IP,假设4grupyle的数量最多,那么指令充实应用了提供的硬件资源,步伐的实行服从较高2。编写出高服从的汇编步伐,团体上可以从以下几点思量:1最大限度的保持长时流水线布满,只管制止在一连的大盘算量步伐中利用断定语句,或改变操纵存放器的汇编语句,如许会导致预取指令半途被冲,无指令实行的状态IP0。2制止频仍的ZSP核与外界存储子体系举行信息的交互,对同一物理地点的内存存储和读取要隔断符合的时间,防范出现STALL征象3。同时数据的存储和读取最好应用字装载或双字装载指令,既可以制止频仍与存储体系的

8、交互,又可以提早取出必要的数据,淘汰运算等候时间。3明白种种指令利用的硬件资源,特别是有的指令可以利用多种硬件资源,而有的指令只能利用特有的硬件资源,明白各个时钟周期是否有相应的硬件资源可用,不然会出现资源辩论,引起时钟等候。4主调步伐和被调步伐的空间摆设要只管摆设较近,防范远跳带来的时钟消耗,假设频仍调用最好可以或许将子步伐直接嵌入。利用ZSP开拓环境的主动优化成效,编写线性汇编指令,线性汇编指令的编写,要思量数据运算的相干性,如许主动优化的结果才气到达最高。手动优化要按照指令分组原那么3和ZSP500的硬件资源和硬件资源的利用优先级,明白各个时钟周期指令的硬件资源需求,编写和调解汇编指令的

9、挨次,到达同一时钟周期汇编指令实行的最大化和硬件资源利用率的最大化。硬件资源利用挨次为3:1ALU02ALU13ALU0和ALU14AU以下为一个指令例如,比方:周期1:add.er0,r2利用ALU0和ALU1shrar3,1利用AU周期2:addr7,r15利用ALU0由于周期1的第一条指令同时利用了两个ALU,导致第二条指令必需利用AU,如许就白费了AU的处置惩罚本领。通过调解,以上指令可以调解为:addr7,r15利用ALU0add.er0,r2利用AUshrar3,1利用ALU1如许三条指令在同一个周期中完成,而且切合指令的分组原那么,速率进步100%,同时存放器之间不存在数据的相干

10、性,不但节流了步伐实行的时间,而且运算单位满负载。对付运算量占用极大的循环步伐,循环嵌套的睁开,循环的睁开,软件流水线的应用可以大大进步汇编语句实行的服从,循环次数的统计要应用硬件资源,制止出现断定语句存在于循环体,循环代码的优化是汇编代码优化的重点38。以一段代码的优化历程为例:原始代码如下:fr(n=0,i=0;nN;n=n+2,i+)i=An*An+An+1*An+1;手工汇编代码为:v%lp0,N-1ldaa0,!取数组n的首地点ldaa1,A!取数组An的首地点_Alp:周期1:lddur0,a1,2!周期1,取数An周期2:ul2r4,r0,r0!周期2,n的盘算周期3stur4,

11、a0,1!周期3,n的存储agn0_Alp!循环次数减1以上循环汇编步伐的编写,每个周期硬件资源没有得到充实的利用,指令实行的条数较少,IP1.33instrutinperyle一个循环必要3个时钟周期。可以从循环的睁开、预取数、对数据举行双字操纵标的目的举行优化。优化后的循环为:v%lp0,(N/2)-1ldqur0,a1,4!循环外预取数,对数据举行双字操纵_Alp:周期1:ul2r4,r0,r0!n的盘算周期2:ul2r6,r2,r2!n+1的盘算ldqur0,a1,4!第二次循环的预取数周期3:stur5,a0,2!n的存储stur7,a2,2!n+1的存储agn0_Alp!循环次数减

12、1窜改后的一次循环仍旧泯灭3个时钟周期,但是循环次数淘汰了一半,IP2,服从进步了100。ZSP500最高IP4,优化后的步伐实行结果仍旧不是很抱负。为此继承举行优化,接纳软流水的要领对汇编步伐继承优化,软流水就是从一个循环盘算环动身,组成多重并行实行的迭代运算,也就是在1次主迭代运算完成前,启动一次新的循环迭代运算。步伐如下:v%lp0,(N/2)-2ldqur0,a1,4!循环外预取数,对数据举行双字操纵ul2r4,r0,r0ul2r6,r2,r2ldqur0,a1,4_Alp:周期1:stur5,a0,2!n的存储1次迭代的完成stur7,a2,2!n+1的存储1次迭代的完成ul2r4,

13、r0,r0!n的盘算2次迭代的开始周期2:ul2r6,r2,r2!n+1的盘算2次迭代的开始ldqur0,a1,4!第二次循环的预取数agn0_Alp!循环次数减1接纳软流水优化后的步伐,循环次数为原始的一半,同时单循环泯灭时钟周期为2,IP3。循环接纳优化要领后,结果如表1循环优化结果所示,团体优化结果明显。表1循环优化结果指标优化要领单循环指令数循环次数单循环泯灭时钟数IP每时钟周期实行指令数与源汇编步伐比力服从进步百分比源汇编步伐4N31.330预取数、循环睁开优化6N/232100软流水优化6N/223200ZSP500中有种种操纵存放器,操纵存放器的改变,会导致流水线的等候或空转,以

14、是操纵存放器的设置要制止存在于被频仍调用的步伐块中,要只管在步伐的开端设置好,在步伐的竣事扫除报酬的设置,防范报酬设置对别的步伐影响7。图3bzbnz指令猜测标的目的图跳转指令会导致流水线的停顿等候状态,ZSP核不知要到哪个分支取指令,为此ZSP500中的跳转指令设置了跳转猜测成效3,如bzlable指令有向前预取指令的成效,假设lable标签存于bz指令下方,那么步伐将预取以lable标签开始的汇编指令,假设lable标签存于bz指令上方,那么步伐预取紧跟bz指令的汇编指令,而bnz指令那么向后预取指令,详细如图3bzbnz指令猜测标的目的图所示8,其他如bge、ble、br等指令猜测标的目

15、的皆不雷同,满意编写步伐的必要。有此猜测成效,编写汇编步伐时就要将产生几率最大的步伐块放在跳转指令猜测标的目的,淘汰由于跳转猜测错误而引起流水线被冲,重新取指而带来的ZSP核的等候。ZSP500可以通过操纵存放器的设置开启四个数据缓冲区,此四个数据缓冲区接纳比特反转寻址,而且当指向缓冲区底部时,会主动回转到缓冲区顶部,这种性能在应用ZSP500举行FFT算法实现时可以到达很好的结果。在软件方案上很难到达的速率优化结果,应用硬件特别的物理器件成效,就变得非常轻易实现了。同时ZSP500还提供特别的汇编指令资源,如复合指令ai、uli,成效指令ax、in等,此中ax可以实现取两个数据的较大者,in

16、指令可以实现取两个数据的较小者,特别指令的应用,可以制止跳转指令、比力指令的利用,淘汰跳转指令猜测错误造成的时钟白费8。如:ifvar2-32)var2=-32;elseifvar232var2=32;对应的汇编指令:vr0,-32vr1,32!r2=var2axr2,r0!取比-32大的数inr2,r1!取比32小的数以上汇编步伐没有跳转指令的应用。以上详细阐发了种种汇编优化计谋,在详细的工程工程中要充实的应用以到达优化结果的最大化,步伐种种优化要领的利用要结合硬件资源,在硬件资源充足的环境下公正的利用。以一段完备的步伐优化为例:代码如下:if(var1=var2)/利用跳转猜测的要领优化f

17、r(i=0,n=0;n80;n=i+2,i+)i=an*an+an+1*an+1;/利用软流水的要领优化if(var2-32)var2=-32;/利用ZSP500提供的特别指令优化elseif(var232)var2=32;41=var2;elsefr(i=0;i41;i+)i=0;/利用循环优化综合利用以上提供的优化计谋和代码,团体举行汇编语言的编写和调解,步伐实行的服从可由ZSPIDE中的统计东西ZSISRTATISTIS统计得出,由图4可以看出源步伐接纳三级主动优化后泯灭时钟206lk,服从1.40IP,每时钟周期实行两条指令居多59.22,由图5可得接纳手工汇编并优化后团体泯灭时钟48

18、lk,服从2.85IP,单时钟实行三条指令居多达79.17,大大进步了步伐的实行服从,优化后团体没有流水线庇护、停顿状态0grupyle0,优化后步伐实行速率进步了3倍。图4源步伐举行主动三级优化服从统计图5手工汇编并优化实行服从统计本文基于ZSP500的硬件资源和硬件特性,先容了软件方面的种种优化要领,这些要领以硬件资源为底子,以测试结果为参照,不竭地修改,为大范围庞大运算的实现提供了时间保障,满意了及时性要求,种种DSP只管布局和指令集差异,但是优化计谋完全可以彼此鉴戒,因此本文要领对其他DSP步伐的优化,具有参考作用。硬件的生长是飞速的,基于硬件的软件优化要领要按照硬件特性的提拔不竭革新,如许才气充实利用硬件资源。速率的提拔偶然是以代码长度的增长得到的,代码长度的增长会给本已稀疏的硬件存储单位带来宏大的压力,因此代码空间优化也是DSP优化的紧张内容,偶然不得以要捐躯速率来减轻空间优化的压力,在速率和空间上到达最优是DSP优化的终极

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论