C6000软件优化 概念和汇编优化课件.ppt

C6000软件优化 概念和汇编优化课件.ppt

ID:57055451

大小:1.46 MB

页数:47页

时间:2020-07-30

C6000软件优化  概念和汇编优化课件.ppt_第1页
C6000软件优化  概念和汇编优化课件.ppt_第2页
C6000软件优化  概念和汇编优化课件.ppt_第3页
C6000软件优化  概念和汇编优化课件.ppt_第4页
C6000软件优化  概念和汇编优化课件.ppt_第5页
资源描述:

《C6000软件优化 概念和汇编优化课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章C6000软件优化第1节C6X软件优化的概念 和汇编优化TwomaingoalsofsoftwareoptimisationFasterexecutiontime.SmallcodesizeTradeoffbetweenthetwogoalsBasicknowledgeToimplementefficientsoftware,theprogrammermustbefamiliarwith:Processorarchitecture.Programminglanguage(C,assemblyorline

2、arassembly).Thecodegenerationtools(compiler,assemblerandlinker).CodeOptimisationProcedureOptimiseAlgorithmProgramin'C'andcompilewithoutanyoptimisationCodeFunctioning?Makethenecessarycorrection(s)ProfileCodeResultSatisfactory?UseintrinsicsProfileCodeResultSa

3、tisfactory?Setn=0(-On)Compilecodewith-OnoptionCodeFunctioning?Makethenecessarycorrection(s)ProfileCodeResultSatisfactory?N<3?NNNYNNNNofurtheroptimisationisrequiredYNofurtheroptimisationisrequiredYPasstonextstepofoptimisaion(N=N+1)yNofurtheroptimisationisreq

4、uiredIdentifyCodeFunctionstobefurtheroptimisedfromProfilingResultConvertcodeneedingoptimisationtolinearassemblyCodeFunctioning?Makethenecessarycorrection(s)ResultSatisfactory?NofurtheroptimisationisrequiredWritecodeinhandassemblyYNYNYY1.编写C程序并不经过任何优化编译2.使用-

5、On优化选项3.需要优化的代码转换为线性汇编4.手工汇编并优化一、软件优化要点1个时钟周期内让尽可能多的功能单元在执行指令。 趋近8*主频(MHz)MIPS前提:满足各种资源限制(resourcebound)途径:(1)资源合理分配、充分使用(2)算法映射结构DSP适合对大量数据做相同的运算相同的工作放在一起完成,形成循环,便于软件流水。充分利用指令局部性和数据局部性的特点Cache二、优化的3个层次1.手工汇编优化2.线性汇编优化3.C语言级的优化2&3和编译器交流:Feedbackofloop资源分

6、配情况设置-k编译器选项,保留asm文件compilerassembly目的:软件流水三、C6000手工汇编语言优化1、并行指令2、填充延迟间隙3、展开循环4、存取带宽优化(使用LDW/LDDW)5、软件流水1、使用并行指令哪些指令可以并行?1、使用并行指令哪些指令可以并行?(1)两条取指令并行:放“

7、

8、”在第二个ldh前.d1改为.d2,A改为B2、填充延迟间隙NOP:相当于未优化为了消除NOP,如何调整指令顺序?2、填充延迟间隙Sub和B指令移到ldh指令后:LD的nop由4降为2B的nop被消除2、填

9、充延迟间隙----优化结果3、循环代码展开----举例3、循环展开:减少B的开销,但增加代码尺寸循环次数减少一半4、字长优化(1)使用字访问半字数据(2)使用双字字访问字数据(1)使用LDH的点积(2)使用LDW进行优化(3)使用LDW/MPYH5、软件流水产生高性能循环代码执行并行指令填充延迟间隙功能单元使用最大化由开发工具产生由编译器选项-o2或o3引入汇编优化器/C优化器产生(1)代码举例这个循环执行5次需要多少周期?(不考虑延迟间隙)周期(2)非流水代码(3)流水代码(4)软件流水中的术语1、填充(建

10、立循环)2、循环(单周期循环3次迭代)3、排空(完成最后操作)循环开始循环结束流水代码(5)软件流水步骤.用C语言实现算法并验证.写C6x线性汇编代码.画相关图.分配功能单元和寄存器.建编排表.将编排表转换为C6x汇编代码第一步:用C语言实现算法并验证第二步:写C62xx线性汇编代码线性汇编不需要指出和考虑:功能单元寄存器延迟间隙并行指令简单估计功能单元每周期可使用数目需要数目.D22.M21.S2

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

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

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