第八讲汇编语言优化.ppt

上传人:sccc 文档编号:5088893 上传时间:2023-06-03 格式:PPT 页数:57 大小:1.51MB
返回 下载 相关 举报
第八讲汇编语言优化.ppt_第1页
第1页 / 共57页
第八讲汇编语言优化.ppt_第2页
第2页 / 共57页
第八讲汇编语言优化.ppt_第3页
第3页 / 共57页
第八讲汇编语言优化.ppt_第4页
第4页 / 共57页
第八讲汇编语言优化.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《第八讲汇编语言优化.ppt》由会员分享,可在线阅读,更多相关《第八讲汇编语言优化.ppt(57页珍藏版)》请在三一办公上搜索。

1、BIT/TI,第八讲 汇编语言优化,1,第八讲 汇编语言优化,BIT/TI,第八讲 汇编语言优化,2,学习内容,描述各种优化方法使用字访问优化点积代码使用软件流水手工优化汇编循环,BIT/TI,第八讲 汇编语言优化,3,题目,一、优化方法简介二、并行指令三、填充延迟间隙四、展开循环五、字长优化(使用LDW)六、各优化方法小结七、软件流水八、软件流水步骤九、各种优化总结,BIT/TI,第八讲 汇编语言优化,4,一、优化方法简介,使用并行指令用有用的指令(取代NOP)填充延迟间隙循环展开字长优化(使用LDW)软件流水,BIT/TI,第八讲 汇编语言优化,5,二、使用并行指令,BIT/TI,第八讲

2、汇编语言优化,6,使用并行指令,哪些指令可以并行?,BIT/TI,第八讲 汇编语言优化,7,并行指令,哪些指令可以并行?两条取指令并行:放“|”在第二个ldh前.d1改为.d2,A改为B,BIT/TI,第八讲 汇编语言优化,8,并行注意的问题,例如:ADD使用原来的A4值如果在循环中:循环之前清A4 不要忘记最后的累加,BIT/TI,第八讲 汇编语言优化,9,并行指令小结,首先使代码正确执行,然后试图用并行指令。并行代码执行速度快,但必须小心确保代码按所期望执行。在循环代码中,使用软件流水可执行并行指令。,BIT/TI,第八讲 汇编语言优化,10,并行优化结果,BIT/TI,第八讲 汇编语言优

3、化,11,三、填充延迟间隙,BIT/TI,第八讲 汇编语言优化,12,填充延迟间隙,NOP:相当于未优化为了消除NOP,如何调整指令顺序?,BIT/TI,第八讲 汇编语言优化,13,填充延迟间隙,Sub和b指令移到ldh指令后:LD的nop由4降为2B的nop被消除,BIT/TI,第八讲 汇编语言优化,14,填充延迟间隙优化结果,BIT/TI,第八讲 汇编语言优化,15,四、展开循环,BIT/TI,第八讲 汇编语言优化,16,循环代码举例,BIT/TI,第八讲 汇编语言优化,17,例1,去掉了第四次循环开销,BIT/TI,第八讲 汇编语言优化,18,例2,循环次数减少一半,BIT/TI,第八讲

4、 汇编语言优化,19,例3,消除了所有循环开销,BIT/TI,第八讲 汇编语言优化,20,循环展开举例小结,BIT/TI,第八讲 汇编语言优化,21,五、字长优化(使用字访问半字数据),BIT/TI,第八讲 汇编语言优化,22,使用LDH的点积,BIT/TI,第八讲 汇编语言优化,23,使用LDW进行优化,BIT/TI,第八讲 汇编语言优化,24,使用LDW/MPYH,BIT/TI,第八讲 汇编语言优化,25,乘法指令小结,操作数可以是有符号的,也可以是无符号的乘法指令需一个延迟间隙4种基本乘法指令:,BIT/TI,第八讲 汇编语言优化,26,六、各种优化方法小结,BIT/TI,第八讲 汇编语

5、言优化,27,七、软件流水,BIT/TI,第八讲 汇编语言优化,28,软件流水,产生高性能循环代码 执行并行指令 填充延迟间隙 功能单元使用最大化由开发工具产生 由编译器选项-o2或o3引入 汇编优化器(输入文件使用.sa扩展名 而不是.asm)产生,BIT/TI,第八讲 汇编语言优化,29,为什么学习软件流水?,知道开发工具是如何产生优化代码的 读懂开发工具的输出代码 检查开发工具效率手工优化汇编代码了解软件流水的工作情况,BIT/TI,第八讲 汇编语言优化,30,代码举例,这个循环执行5次需要多少周期?(不考虑延迟间隙)周期,BIT/TI,第八讲 汇编语言优化,31,非流水代码,BIT/T

6、I,第八讲 汇编语言优化,32,流水代码,BIT/TI,第八讲 汇编语言优化,33,软件流水中的术语,填充(建立循环)循环(单周期循环3次迭代)排空(完成最后操作),BIT/TI,第八讲 汇编语言优化,34,流水代码,BIT/TI,第八讲 汇编语言优化,35,八、软件流水步骤,BIT/TI,第八讲 汇编语言优化,36,软件流水步骤,.用C语言实现算法并验证.写C6x线性汇编代码.画相关图.分配功能单元和寄存器.建编排表.将编排表转换为C6x汇编代码,BIT/TI,第八讲 汇编语言优化,37,第一步:用C语言实现算法并验证,BIT/TI,第八讲 汇编语言优化,38,第二步:写C62xx线性汇编代

7、码,线性汇编不需要指出和考虑:功能单元寄存器延迟间隙并行指令,BIT/TI,第八讲 汇编语言优化,39,简单估计,BIT/TI,第八讲 汇编语言优化,40,第三步:画相关图,相关图中的名词术语,BIT/TI,第八讲 汇编语言优化,41,画相关图步骤:,、画节点(包括:指令、结果、通路)、在通路旁标出父指令执行周期、安排功能单元 安排必须的功能单元 节点分配到A、B两侧 对所有节点分配功能单元,平分.D、.S、.M最小化交叉通路平衡功能单元仲裁,BIT/TI,第八讲 汇编语言优化,42,画点积相关图1.画节点(1),BIT/TI,第八讲 汇编语言优化,43,画点积相关图1.画节点(2),循环传递

8、通路,BIT/TI,第八讲 汇编语言优化,44,画点积相关图1.画节点(3),BIT/TI,第八讲 汇编语言优化,45,画点积相关图2.标出父指令执行周期,BIT/TI,第八讲 汇编语言优化,46,画点积相关图3.安排功能单元(1),BIT/TI,第八讲 汇编语言优化,47,画点积相关图3.安排功能单元(2),BIT/TI,第八讲 汇编语言优化,48,画点积相关图3.安排功能单元(3),BIT/TI,第八讲 汇编语言优化,49,第四步:分配功能单元,根据功能单元和交叉通路的使用,可在单周期循环内编排这些指令。,BIT/TI,第八讲 汇编语言优化,50,第四步:分配寄存器,BIT/TI,第八讲

9、汇编语言优化,51,第五步:建编排表(1),BIT/TI,第八讲 汇编语言优化,52,循环填充长度,抽出最长数据通路计算长度:5+2+1=8周期编排表列出0-7周期填充:第0-6周期循环:第7周期,编排周期057,BIT/TI,第八讲 汇编语言优化,53,填写指令建议,从最长数据通路开始尽可能早开始(第0周期)一旦确定指令执行的周期,在这以后的周期内,连续发生各次迭代倒推跳转和循环计数指令的发生周期,BIT/TI,第八讲 汇编语言优化,54,第五步:建编排表(2),BIT/TI,第八讲 汇编语言优化,55,第六步:写C62xx汇编代码,执行40次,BIT/TI,第八讲 汇编语言优化,56,九、各种优化总结,BIT/TI,第八讲 汇编语言优化,57,小结,学习了五种优化方:使用并行指令填充延迟间隙展开循环字长优化软件流水手工实现软件流水过程,使用并行指令填充延迟间隙,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号