7_2 C6000软件优化 线性汇编.pptVIP

  • 4
  • 0
  • 约5.56千字
  • 约 44页
  • 2017-12-26 发布于河北
  • 举报
7_2 C6000软件优化 线性汇编

BIT/TI 第九讲 使用汇编优化器 线性汇编和汇编优化器 学习内容 写线性汇编代码 使用汇编优化器 多周期循环的软件流水 汇编优化器选项和伪指令 题目 一、写线性汇编代码 二、写线性汇编代码举例—点积 三、调用汇编优化器 四、多周期循环的软件流水 五、加权矢量和(WVS)循环展开 一、写线性汇编代码 软件工具流程 线性汇编文件基本考虑事项 线性汇编文件使用“.sa”扩展名 仅对指定的代码段进行优化,指定代码段外的代码被拷贝为输出“.asm”文件 线性汇编过程可以: 传递参数 返回结果 使用符号变量 不考虑流水线问题 二、写线性汇编代码举例—点积 点积线性汇编 线性汇编不需要指出和考虑: 功能单元 寄存器 延迟间隙 确定优化代码段 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 使用符号变量 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 参数传递 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 保护寄存器 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 流水代码的最小循环次数 具有填充和排空 5次运算迭代,循环计数设置为3 最小循环次数:3 计算最小循环次数 冗余循环 消除冗余循环 关闭软件流水(-mu) 减小代码尺寸,但也减小吞吐量 指出运算迭代次数(.trip) 如果.trip≧最小循环次数,仅产生流水循环 如果.trip最小循环次数,产生两种循环 不产生冗余循环(-ms) 如果没给出.trip,仅产生不流水循环 如果给出.trip,且.trip≧最小循环次数,仅产生流水

文档评论(0)

1亿VIP精品文档

相关文档