九章节使用汇编优化器

上传人:cl****1 文档编号:570501403 上传时间:2024-08-04 格式:PPT 页数:36 大小:1MB
返回 下载 相关 举报
九章节使用汇编优化器_第1页
第1页 / 共36页
九章节使用汇编优化器_第2页
第2页 / 共36页
九章节使用汇编优化器_第3页
第3页 / 共36页
九章节使用汇编优化器_第4页
第4页 / 共36页
九章节使用汇编优化器_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《九章节使用汇编优化器》由会员分享,可在线阅读,更多相关《九章节使用汇编优化器(36页珍藏版)》请在金锄头文库上搜索。

1、九章节使用汇编优化器Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望学习内容写线性汇编代码使用汇编优化器多周期循环的软件流水BIT/TI2第九讲 使用汇编优化器题目一、写线性汇编代码二、写线性汇编代码举例点积三、调用汇编优化器四、多周期循环的软件流水五、加权矢量和(WVS)循环展开BIT/TI3第九讲 使用汇编优化器一、写线性汇编代码BIT/TI4第九讲 使用汇编优化器软件工具流程BIT/TI5第九讲 使用汇编优化器线性汇编文件基本考虑事项线性汇编文件使用“.sa”扩展名仅对指定的代

2、码段进行优化,指定代码段外的代码被拷贝为输出“.asm”文件线性汇编过程可以:传递参数返回结果使用符号变量不考虑流水线问题BIT/TI6第九讲 使用汇编优化器二、写线性汇编代码举例点积BIT/TI7第九讲 使用汇编优化器点积线性汇编线性汇编不需要指出和考虑:功能单元寄存器延迟间隙BIT/TI8第九讲 使用汇编优化器确定优化代码段 Dotp:.Dotp:.cproccproczerosumzerosumloop:ldh*p_m+,loop:ldh*p_m+,m mldhldh*p_n+,n*p_n+,nmpym,n,mpym,n,prodprodaddaddprod,sum,sumprod,su

3、m,sumcountsubcount,1,countsubcount,1,countcountcountbloopcountbloop.endproc.endproc. .cproc/.endproccproc/.endproc:确定要优化的代码段必须成对使用可作为C调用的函数 在汇编代码中使用.proc/.endprocproc/.endproc确定要优化的代码段,它们也必须成对使用BIT/TI9第九讲 使用汇编优化器使用符号变量Dotp:.cprocDotp:.cproc.reg.regp_m,m,p_n,n,p_m,m,p_n,n,prod,sum,countprod,sum,count

4、zerosumzerosumloop:ldh*p_m+,mloop:ldh*p_m+,mldh*p_n+,nldh*p_n+,nmpym,n,prodmpym,n,prodaddprod,sum,sumaddprod,sum,sumcountsubcount,1,countcountsubcount,1,countcountbloopcountbloop.endproc.endproc.reg.reg伪指令:伪指令:声明符号变量,变量由优化器 选择与功能单元一致的寄存器.reg仅在.cproc/.endproc内有效当变量为40/64bit时,变量使用 寄存器对格式:如ahi:aloBIT/T

5、I10第九讲 使用汇编优化器参数传递Dotp:.cprocDotp:.cprocp_m,p_n,countp_m,p_n,count.regp_m,m,p_n,n,.regp_m,m,p_n,n,prod,sum,countprod,sum,countzerosumzerosumloop:ldh*p_m+,mloop:ldh*p_m+,mldh*p_n+,nldh*p_n+,nmpym,n,prodmpym,n,prodaddprod,sum,sumaddprod,sum,sumcountsubcount,1,countcountsubcount,1,countcountbloopcountb

6、loop.returnsum.returnsum.endproc.endproc.cproc.cprocvariable1,variable2,: 给出输入参数.return.return:给出返回结果.return.return仅在.cproc/.endproc内有效. .procprocregister1,register2,; 给出输入参数.reg.regp_m,mvregister1,p_m;建立输入寄存器:;与变量关系mvsum,register1.endproc.endprocregister1,register2,;给出返回结果BIT/TI11第九讲 使用汇编优化器保护寄存器Do

7、tp:.cprocp_m,p_n,countDotp:.cprocp_m,p_n,count.regp_m,m,p_n,n,.regp_m,m,p_n,n,prod,sum,countprod,sum,count.reservea3.reservea3zerosumzerosumloop:ldh*p_m+,mloop:ldh*p_m+,mldh*p_n+,nldh*p_n+,nmpym,n,prodmpym,n,prodaddprod,sum,sumaddprod,sum,sumcountsubcount,1,countcountsubcount,1,countcountbloopcountb

8、loop.returnsum.returnsum.endproc.endproc.reserve.reserve指出需要保护的寄存器当.cproc/.endproc.cproc/.endproc内的代码明显 使用了要保护的寄存器,优化器 也可能使用该寄存器,如:BIT/TI12第九讲 使用汇编优化器流水代码的最小循环次数具有填充和排空5次运算迭代,循环计数设置为3如果循环计数设置为0,得到3次加最小循环次数:3循环测试BIT/TI13第九讲 使用汇编优化器计算最小循环次数最小循环次数=循环和排空的周期数这个点积代码最小循环次数=?BIT/TI14第九讲 使用汇编优化器冗余循环非流水代码执行较慢

9、运算迭代次数=最小循环次数流水代码执行较快BIT/TI15第九讲 使用汇编优化器消除冗余循环关闭软件流水(-mu) 减小代码尺寸,但也减小吞吐量指出运算迭代次数(.trip) 如果.trip最小循环次数,仅产生流水循环 如果.trip最小循环次数,产生两种循环不产生冗余循环(-ms) 如果没给出.trip,仅产生不流水循环 如果给出.trip,且.trip最小循环次数,仅产生流水循环BIT/TI16第九讲 使用汇编优化器指出运算迭代次数Dotp:.cprocp_m,p_n,countDotp:.cprocp_m,p_n,count.regp_m,m,p_n,n,.regp_m,m,p_n,n,

10、prod,sum,countprod,sum,countzerosumzerosumloop:loop:.trip40.trip40ldh*p_m+,mldh*p_m+,mldh*p_n+,nldh*p_n+,nmpym,n,prodmpym,n,prodaddprod,sum,sumaddprod,sum,sumcountsubcount,1,countcountsubcount,1,countcountbloopcountbloop.returnsum.returnsum.endproc.endproc指出运算迭代次数BIT/TI17第九讲 使用汇编优化器点积的完整线性汇编Dotp:.cp

11、rocp_m,p_n,countDotp:.cprocp_m,p_n,count.regp_m,m,p_n,n,.regp_m,m,p_n,n,prod,sum,countprod,sum,countzerosumzerosumloop:.trip40loop:.trip40ldh*p_m+,mldh*p_m+,mldh*p_n+,nldh*p_n+,nmpym,n,prodmpym,n,prodaddprod,sum,sumaddprod,sum,sumcountsubcount,1,countcountsubcount,1,countcountbloopcountbloop.returns

12、um.returnsum.endproc.endprocBIT/TI18第九讲 使用汇编优化器三、调用汇编优化器调用汇编优化器和汇编器仅调用汇编器BIT/TI19第九讲 使用汇编优化器四、多周期循环的软件流水BIT/TI20第九讲 使用汇编优化器软件流水过程1. 用C语言实现算法并验证2. 写C6x线性汇编代码3. 画相关图4. 分配功能单元和寄存器5. 建编排表6. 将编排表转换为C6x汇编代码BIT/TI21第九讲 使用汇编优化器加权矢量和软件流水第一步:C代码BIT/TI22第九讲 使用汇编优化器第二步:线性汇编代码BIT/TI23第九讲 使用汇编优化器第三步:相关图BIT/TI24第九

13、讲 使用汇编优化器第四步:分配功能单元BIT/TI25第九讲 使用汇编优化器2周期循环2个周期/每次循环迭代迭代间隔:每次循环迭代 占用的周期数BIT/TI26第九讲 使用汇编优化器多周期循环迭代BIT/TI27第九讲 使用汇编优化器多周期循环BIT/TI28第九讲 使用汇编优化器第五步:建迭代间隔编排表(1)BIT/TI29第九讲 使用汇编优化器第五步:建迭代间隔编排表(2)BIT/TI30第九讲 使用汇编优化器第五步:建迭代间隔编排表(3)BIT/TI31第九讲 使用汇编优化器第五步:建迭代间隔编排表(4)BIT/TI32第九讲 使用汇编优化器第五步:建迭代间隔编排表(5)BIT/TI33第九讲 使用汇编优化器第五步:建迭代间隔编排表(6)BIT/TI34第九讲 使用汇编优化器展开加权矢量和代码展开加权矢量和:2个结果/每3个周期BIT/TI35第九讲 使用汇编优化器小结编写线性汇编代码使用汇编优化器多周期循环的软件流水BIT/TI36第九讲 使用汇编优化器

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号