使用汇编优化器

上传人:仙*** 文档编号:244747466 上传时间:2024-10-05 格式:PPT 页数:36 大小:996.50KB
返回 下载 相关 举报
使用汇编优化器_第1页
第1页 / 共36页
使用汇编优化器_第2页
第2页 / 共36页
使用汇编优化器_第3页
第3页 / 共36页
点击查看更多>>
资源描述
单击以编辑母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,BIT/TI,第九讲 使用汇编优化器,*,第九讲 使用汇编优化器,BIT/TI,1,第九讲 使用汇编优化器,学习内容,写线性汇编代码,使用汇编优化器,多周期循环的软件流水,BIT/TI,2,第九讲 使用汇编优化器,题目,一、写线性汇编代码,二、写线性汇编代码举例点积,三、调用汇编优化器,四、多周期循环的软件流水,五、加权矢量和(WVS)循环展开,BIT/TI,3,第九讲 使用汇编优化器,一、写线性汇编代码,BIT/TI,4,第九讲 使用汇编优化器,软件工具流程,BIT/TI,5,第九讲 使用汇编优化器,线性汇编文件基本考虑事项,线性汇编文件使用“.sa”扩展名,仅对指定的代码段进行优化,指定代码段外的代码被拷贝为输出“.asm”文件,线性汇编过程可以:,传递参数,返回结果,使用符号变量,不考虑流水线问题,BIT/TI,6,第九讲 使用汇编优化器,二、写线性汇编代码举例点积,BIT/TI,7,第九讲 使用汇编优化器,点积线性汇编,线性汇编不需要指出和考虑:,功能单元,寄存器,延迟间隙,BIT/TI,8,第九讲 使用汇编优化器,确定优化代码段,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,9,第九讲 使用汇编优化器,使用符号变量,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/64,bit,时,变量使用,寄存器对格式:如,ahi:alo,BIT/TI,10,第九讲 使用汇编优化器,参数传递,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,11,第九讲 使用汇编优化器,保护寄存器,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,12,第九讲 使用汇编优化器,流水代码的最小循环次数,具有填充和排空,5次运算迭代,循环计数设置为3,如果循环计数设置为0,得到3次加,最小循环次数:3,循环测试,BIT/TI,13,第九讲 使用汇编优化器,计算最小循环次数,最小循环次数=循环和排空的周期数,这个点积代码,最小循环次数=?,BIT/TI,14,第九讲 使用汇编优化器,冗余循环,非流水代码,执行较慢,运算迭代次数,=,最小循环次数,流水代码,执行较快,BIT/TI,15,第九讲 使用汇编优化器,消除冗余循环,关闭软件流水(-mu),减小代码尺寸,但也减小吞吐量,指出运算迭代次数(.trip),如果.trip,最小循环次数,仅产生流水循环,如果.trip,最小循环次数,产生两种循环,不产生冗余循环(-ms),如果没给出.trip,仅产生不流水循环,如果给出.trip,且.trip,最小循环次数,仅产生流水循环,BIT/TI,16,第九讲 使用汇编优化器,指出运算迭代次数,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,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,第九讲 使用汇编优化器,三、调用汇编优化器,调用汇编优化器和汇编器,仅调用汇编器,BIT/TI,19,第九讲 使用汇编优化器,四、多周期循环的软件流水,BIT/TI,20,第九讲 使用汇编优化器,软件流水过程,.用C语言实现算法并验证,.写C6x线性汇编代码,.画相关图,.分配功能单元和寄存器,.建编排表,.将编排表转换为C6x汇编代码,BIT/TI,21,第九讲 使用汇编优化器,加权矢量和软件流水第一步:C代码,BIT/TI,22,第九讲 使用汇编优化器,第二步:线性汇编代码,BIT/TI,23,第九讲 使用汇编优化器,第三步:相关图,BIT/TI,24,第九讲 使用汇编优化器,第四步:分配功能单元,BIT/TI,25,第九讲 使用汇编优化器,2周期循环,2个周期/每次循环迭代,迭代间隔:每次循环迭代,占用的周期数,BIT/TI,26,第九讲 使用汇编优化器,多周期循环迭代,BIT/TI,27,第九讲 使用汇编优化器,多周期循环,BIT/TI,28,第九讲 使用汇编优化器,第五步:建迭代间隔编排表(1),BIT/TI,29,第九讲 使用汇编优化器,第五步:建迭代间隔编排表(2),BIT/TI,30,第九讲 使用汇编优化器,第五步:建迭代间隔编排表(3),BIT/TI,31,第九讲 使用汇编优化器,第五步:建迭代间隔编排表(4),BIT/TI,32,第九讲 使用汇编优化器,第五步:建迭代间隔编排表(5),BIT/TI,33,第九讲 使用汇编优化器,第五步:建迭代间隔编排表(6),BIT/TI,34,第九讲 使用汇编优化器,展开加权矢量和代码,展开加权矢量和:2个结果/每3个周期,BIT/TI,35,第九讲 使用汇编优化器,小结,编写线性汇编代码,使用汇编优化器,多周期循环的软件流水,BIT/TI,36,第九讲 使用汇编优化器,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!