欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    九章节使用汇编优化器.ppt

    • 资源ID:2552178       资源大小:1,000.51KB        全文页数:36页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    九章节使用汇编优化器.ppt

    BIT/TI,第九讲 使用汇编优化器,1,第九讲 使用汇编优化器,BIT/TI,第九讲 使用汇编优化器,2,学习内容,写线性汇编代码 使用汇编优化器 多周期循环的软件流水,BIT/TI,第九讲 使用汇编优化器,3,题目,一、写线性汇编代码 二、写线性汇编代码举例点积 三、调用汇编优化器 四、多周期循环的软件流水 五、加权矢量和(WVS)循环展开,BIT/TI,第九讲 使用汇编优化器,4,一、写线性汇编代码,BIT/TI,第九讲 使用汇编优化器,5,软件工具流程,BIT/TI,第九讲 使用汇编优化器,6,线性汇编文件基本考虑事项,线性汇编文件使用“.sa”扩展名 仅对指定的代码段进行优化,指定代码段外的代码被拷贝为输出“.asm”文件 线性汇编过程可以: 传递参数 返回结果 使用符号变量 不考虑流水线问题,BIT/TI,第九讲 使用汇编优化器,7,二、写线性汇编代码举例点积,BIT/TI,第九讲 使用汇编优化器,8,点积线性汇编,线性汇编不需要指出和考虑: 功能单元 寄存器 延迟间隙,BIT/TI,第九讲 使用汇编优化器,9,确定优化代码段,Dotp: .cproc zero sum loop: ldh *p_m+, m ldh *p_n+, n mpy m, n, prod add prod, sum, sum count sub count, 1, count count b loop .endproc,.cproc/ .endproc: 确定要优化的代码段 必须成对使用 可作为C调用的函数,在汇编代码中使用 .proc/ .endproc 确定要优化的代码段, 它们也必须成对使用,BIT/TI,第九讲 使用汇编优化器,10,使用符号变量,Dotp: .cproc .reg p_m, m, p_n, n, prod,sum,count zero sum loop: ldh *p_m+, m ldh *p_n+, n mpy m, n, prod add prod, sum, sum count sub count, 1, count count b loop .endproc,.reg伪指令: 声明符号变量,变量由优化器 选择与功能单元一致的寄存器 .reg仅在.cproc/ .endproc内有效 当变量为40/64bit时,变量使用 寄存器对格式:如ahi:alo,BIT/TI,第九讲 使用汇编优化器,11,参数传递,Dotp: .cproc p_m, p_n, count .reg p_m, m, p_n, n, prod,sum,count zero sum loop: 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,.cproc variable1,variable2,: 给出输入参数 .return:给出返回结果 .return仅在.cproc/ .endproc内有效,.proc register1,register2, ; 给出输入参数 .reg p_m, mv register1, p_m ;建立输入寄存器 : ;与变量关系 mv sum, register1 .endproc register1,register2, ;给出返回结果,BIT/TI,第九讲 使用汇编优化器,12,保护寄存器,Dotp: .cproc p_m, p_n, count .reg p_m, m, p_n, n, prod,sum,count .reserve a3 zero sum loop: 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内的代码明显 使用了要保护的寄存器,优化器 也可能使用该寄存器,如:,BIT/TI,第九讲 使用汇编优化器,13,流水代码的最小循环次数,具有填充和排空 5次运算迭代,循环计数设置为3 如果循环计数设置为0,得到3次加 最小循环次数:3,循环测试,BIT/TI,第九讲 使用汇编优化器,14,计算最小循环次数,最小循环次数=循环和排空的周期数,这个点积代码 最小循环次数=?,BIT/TI,第九讲 使用汇编优化器,15,冗余循环,非流水代码 执行较慢,BIT/TI,第九讲 使用汇编优化器,16,消除冗余循环,关闭软件流水(-mu) 减小代码尺寸,但也减小吞吐量 指出运算迭代次数(.trip) 如果.trip最小循环次数,仅产生流水循环 如果.trip最小循环次数,产生两种循环 不产生冗余循环(-ms) 如果没给出.trip,仅产生不流水循环 如果给出.trip,且.trip最小循环次数,仅产生流水循环,BIT/TI,第九讲 使用汇编优化器,17,指出运算迭代次数,Dotp: .cproc p_m, p_n, count .reg p_m, m, p_n, n, prod,sum,count zero sum loop: .trip 40 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,指出运算迭代次数,BIT/TI,第九讲 使用汇编优化器,18,点积的完整线性汇编,Dotp: .cproc p_m, p_n, count .reg p_m, m, p_n, n, prod,sum,count zero sum loop: .trip 40 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,BIT/TI,第九讲 使用汇编优化器,19,三、调用汇编优化器,调用汇编优化器和汇编器,仅调用汇编器,BIT/TI,第九讲 使用汇编优化器,20,四、多周期循环的软件流水,BIT/TI,第九讲 使用汇编优化器,21,软件流水过程,. 用C语言实现算法并验证 . 写C6x线性汇编代码 . 画相关图 . 分配功能单元和寄存器 . 建编排表 . 将编排表转换为C6x汇编代码,BIT/TI,第九讲 使用汇编优化器,22,加权矢量和软件流水 第一步:C代码,BIT/TI,第九讲 使用汇编优化器,23,第二步:线性汇编代码,BIT/TI,第九讲 使用汇编优化器,24,第三步:相关图,BIT/TI,第九讲 使用汇编优化器,25,第四步:分配功能单元,BIT/TI,第九讲 使用汇编优化器,26,2周期循环,2个周期/每次循环迭代,迭代间隔:每次循环迭代 占用的周期数,BIT/TI,第九讲 使用汇编优化器,27,多周期循环迭代,BIT/TI,第九讲 使用汇编优化器,28,多周期循环,BIT/TI,第九讲 使用汇编优化器,29,第五步:建迭代间隔编排表(1),BIT/TI,第九讲 使用汇编优化器,30,第五步:建迭代间隔编排表(2),BIT/TI,第九讲 使用汇编优化器,31,第五步:建迭代间隔编排表(3),BIT/TI,第九讲 使用汇编优化器,32,第五步:建迭代间隔编排表(4),BIT/TI,第九讲 使用汇编优化器,33,第五步:建迭代间隔编排表(5),BIT/TI,第九讲 使用汇编优化器,34,第五步:建迭代间隔编排表(6),BIT/TI,第九讲 使用汇编优化器,35,展开加权矢量和代码,展开加权矢量和:2个结果/每3个周期,BIT/TI,第九讲 使用汇编优化器,36,小结,编写线性汇编代码 使用汇编优化器 多周期循环的软件流水,

    注意事项

    本文(九章节使用汇编优化器.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开