CCS软件优化学习.pptx
《CCS软件优化学习.pptx》由会员分享,可在线阅读,更多相关《CCS软件优化学习.pptx(84页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、主要内容优化方法软件流水多周期循环流水线设计理解软件优化结果的反馈信息第1页/共84页优化方法优化和优化过程概述(复习)利用代码生成工具对C代码进行优化(复习)汇编代码的优化第2页/共84页概述程序优化:对软件代码进行处理以获得以下两个主要目标:更快的运行时间更大的代码大小Note:一般在更快的执行速度和更小的代码大小之间需要进行一个折中(trade off)第3页/共84页概述1个时钟周期内让尽可能多的功能单元在执行指令。趋近8*主频(MHz)MIPS前提:满足各种资源限制(resource bound)途径:(1)资源合理分配、充分使用(2)算法映射结构 DSP适合对大量数据做相同的运算第
2、4页/共84页概述为实现高效代码,编程者必须熟练掌握以下几个方面的知识:处理器结构 编程语言:C、汇编、线性汇编 代码生成工具:编译器、汇编器、连接器第5页/共84页代码优化的三个层次1、C语言级的优化2、线性汇编优化3、手工汇编优化第6页/共84页C语言级的优化编译器选项C优化编译器使用ANSI C代码语言,可达到手工汇编代码效率的80%。如选择-o2,-o3等整个优化过程包括不同阶段、不同层次的优化。必须掌握每个阶段、层次的优化知识。第7页/共84页C语言级优化 C语言程序优化通过下述方法改进C语言程序,可以提供编译出代码的性能:1、使用intrinsics内联函数替代复杂的C语言程序。2
3、、对短字长的数据使用宽长度的存储器访问数据打包处理(Packed Data Processing)3、改进C语言循环程序,使之更有利于用软件流水技术优化。第8页/共84页线性汇编语言简介线性汇编语句的基本结构线性汇编中的伪指令线性汇编资源安排C代码转换为线性汇编第9页/共84页线性汇编语句的基本结构基本格式与汇编语言相同,必须是ASCII码文件,扩展名必须是”.sa”,用作汇编优化器的输入文件Label:|register mnemonic unit specifier operand list;commend第10页/共84页线性汇编中的伪指令1、调用一个函数.call ret_reg=fu
4、nc_name(arg1,arg2)(仅在过程procedure)内有效2、定义一个可被汇编优化器优化,而且可被C/C+当做函数调用的线性汇编代码段的伪指令。label .cproc vari1,vari2,起始 .endproc 结束3、定义一个可被汇编优化器优化的线性汇编代码段的伪指令。label .proc vari1,vari2,起始 .endproc 结束第11页/共84页线性汇编中的伪指令4、表明存储器地址相关与不相关的伪指令 .mdepsymbol1,symbol2 1,2相关 .no_mdep 其后定义的函数段内存储器地址不相关5、定义变量,或者说描述存入寄存器的数值变量的伪指
5、令:.reg variable1,variable2,6、过程的返回值 .return argument7、指出循环迭代次数的伪指令 label .trip minimum value第12页/共84页线性汇编资源安排读取指令(LDH)必须使用.D单元乘法指令(MPY)必须使用.M单元加法指令(ADD)必须使用.L单元减法指令(SUB)必须使用.S单元跳转指令(B)必须使用.S单元第13页/共84页线性汇编线性汇编文件使用“.sa”扩展名线性汇编过程可以:传递参数返回结果使用符号变量不考虑流水线问题第14页/共84页写线性汇编代码举例点积写线性汇编代码举例FIR滤波器简写为第15页/共84页C
6、代码转换为线性汇编short DP(short*m,short*n,short count)short i;short product;short sum=0;for(i=0;i 1;for(i=0;icount;i+)pro_l=_mpy(data_ai,data_xi);pro_h=_mpyh(data_ai,data_xi);sum_l+=pro_l;sum_h+=pro_h;sum=sum_l+sum_h;return(sum);第24页/共84页 .def _DP _DP .cproc cptr0,cptr1,vptr .reg addr_a,addr_x .reg product0
7、,product1,sum0,sum1 .reg m,n MV cptr0,addr_a MV cptr1,addr_x ZERO sum0 ZERO sum1 SHR vptr,1,vptr loop:LDW *addr_a+,m LDW *addr_x+,n MPY m,n,product0 MPYH m,n,product1 ADD sum0,product0,sum0 ADD sum1,product1,sum1 SUB vptr,1,vptr vptr B loop ADD sum0,sum1,sum0 .return sum0 .endproc 第25页/共84页保护寄存器Dotp
8、:.cproc p_m,p_n,count .reg p_m,m,p_n,n,prod,sum,count .reserve a3 zero sumloop:ldh *p_m+,m ldh *p_n+,n mpy m,n,prod add prod,sum,sum count sub count,1,count count b loop .return sum .endproc.reserve指出需要保护的寄存器当.cproc/.endproc内的代码明显使用了要保护的寄存器,优化器也可能使用该寄存器,如:第26页/共84页指出运算迭代次数Dotp:.cproc p_m,p_n,count .
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CCS 软件 优化 学习
限制150内