使用汇编优化器ppt课件_第1页
使用汇编优化器ppt课件_第2页
使用汇编优化器ppt课件_第3页
使用汇编优化器ppt课件_第4页
使用汇编优化器ppt课件_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第九讲 运用汇编优化器学习内容 写线性汇编代码 运用汇编优化器 多周期循环的软件流水标题一、写线性汇编代码二、写线性汇编代码举例点积三、调用汇编优化器四、多周期循环的软件流水五、加权矢量和WVS循环展开一、写线性汇编代码软件工具流程线性汇编文件根本思索事项线性汇编文件运用“.sa扩展名仅对指定的代码段进展优化,指定代码段外的代码被拷贝为输出“.asm文件线性汇编过程可以:传送参数前往结果运用符号变量不思索流水线问题二、写线性汇编代码举例点积点积线性汇编线性汇编不需求指出和思索:功能单元存放器延迟间隙确定优化代码段 Dotp: .cproc zero sumloop: ldh *p_m+, m

2、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确定要优化的代码段,它们也必需成对运用运用符号变量Dotp: .cproc .reg p_m, m, p_n, n, prod,sum,count zero sumloop: ldh *p_m+, m ldh *p_n+, n mpy

3、m, n, prod add prod, sum, sum count sub count, 1, count count b loop .endproc.reg伪指令:伪指令:声明符号变量,变量由优化器声明符号变量,变量由优化器选择与功能单元一致的存放器选择与功能单元一致的存放器.reg仅在仅在.cproc/ .endproc内有效内有效当变量为当变量为40/64bit时时,变量运用变量运用存放器对格式:如存放器对格式:如ahi:alo参数传送Dotp: .cproc p_m, p_n, count .reg p_m, m, p_n, n, prod,sum,count zero sumlo

4、op: 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 ;建立输入存放器;建立输入

5、存放器 : ;与变量关系;与变量关系mv sum, register1.endproc register1,register2, ;给出前往结果给出前往结果维护存放器Dotp: .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 .reser

6、ve指出需求维护的存放指出需求维护的存放器器当当.cproc/ .endproc内的代码内的代码明显明显运用了要维护的存放器,优化运用了要维护的存放器,优化器器也能够运用该存放器,如:也能够运用该存放器,如:流水代码的最小循环次数 具有填充和排空 5次运算迭代,循环计数设置为3 假设循环计数设置为0,得到3次加 最小循环次数:3循环测试计算最小循环次数最小循环次数=循环和排空的周期数这个点积代码最小循环次数=?冗余循环非流水代码执行较慢运算迭代次数=最小循环次数流水代码执行较快消除冗余循环 封锁软件流水-mu 减小代码尺寸,但也减小吞吐量 指出运算迭代次数.trip 假设.trip最小循环次数

7、,仅产生流水循环 假设.trip最小循环次数,产生两种循环 不产生冗余循环-ms 假设没给出.trip,仅产生不流水循环 假设给出.trip,且.trip最小循环次数,仅产生流水循环指出运算迭代次数Dotp: .cproc p_m, p_n, count .reg p_m, m, p_n, n, prod,sum,count zero sumloop: .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 .e

8、ndproc指出运算迭代次数点积的完好线性汇编Dotp: .cproc p_m, p_n, count .reg p_m, m, p_n, n, prod,sum,count zero sumloop: .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三、调用汇编优化器调用汇编优化器和汇编器仅调用汇编器四、多周期循环的软件流水软件流水过程1 . 用C言语实现算法并验证1 . 写C6x线性汇编代码1 . 画相关图1 . 分配功能单元和存放器1 . 建编排表1 . 将编排表转换为C6x汇编代码加权矢量和软件流水第一步:C代码第二步:线性汇编代码第三步:相关图第四步:分配功能单元2周期循环2个周期/每次循环迭代迭代间隔:每次循环迭代 占用的周期数多周期循环迭代第五步:建迭代间隔编排表1第五步:建迭代间隔编排表2第五

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论