汇编语言优化课件_第1页
汇编语言优化课件_第2页
汇编语言优化课件_第3页
汇编语言优化课件_第4页
汇编语言优化课件_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、汇编语言优化汇编语言优化BIT/TI第八讲 汇编语言优化2题目一、优化方法简介二、并行指令三、填充延迟间隙四、展开循环五、字长优化(使用LDW)六、各优化方法小结七、软件流水八、软件流水步骤九、各种优化总结BIT/TI第八讲 汇编语言优化4题目一、优化方法简介BIT/TI第八讲 汇编语言优化3一、优化方法简介使用并行指令用有用的指令(取代NOP)填充延迟间隙循环展开字长优化(使用LDW)软件流水BIT/TI第八讲 汇编语言优化5一、优化方法简介使用并行指BIT/TI第八讲 汇编语言优化4二、使用并行指令BIT/TI第八讲 汇编语言优化6二、使用并行指令BIT/TI第八讲 汇编语言优化5使用并行

2、指令哪些指令可以并行?BIT/TI第八讲 汇编语言优化7使用并行指令BIT/TI第八讲 汇编语言优化6并行指令哪些指令可以并行?两条取指令并行: 放“|”在第二个ldh前 .d1改为.d2,A改为BBIT/TI第八讲 汇编语言优化8并行指令哪些指令可以并行?BIT/TI第八讲 汇编语言优化7并行注意的问题例如:ADD使用原来的A4值如果在循环中: 循环之前清A4 不要忘记最后的累加BIT/TI第八讲 汇编语言优化9并行注意的问题例如:BIT/TI第八讲 汇编语言优化8并行指令小结首先使代码正确执行,然后试图用并行指令。并行代码执行速度快,但必须小心确保代码按所期望执行。在循环代码中,使用软件流

3、水可执行并行指令。BIT/TI第八讲 汇编语言优化10并行指令小结首先使代码正BIT/TI第八讲 汇编语言优化9并行优化结果BIT/TI第八讲 汇编语言优化11并行优化结果BIT/TI第八讲 汇编语言优化10三、填充延迟间隙BIT/TI第八讲 汇编语言优化12三、填充延迟间隙BIT/TI第八讲 汇编语言优化11填充延迟间隙NOP:相当于未优化为了消除NOP,如何调整指令顺序?BIT/TI第八讲 汇编语言优化13填充延迟间隙NOP:相当BIT/TI第八讲 汇编语言优化12填充延迟间隙Sub和b指令移到ldh指令后:LD的nop由4降为2B的nop被消除BIT/TI第八讲 汇编语言优化14填充延迟

4、间隙Sub和b指BIT/TI第八讲 汇编语言优化13填充延迟间隙优化结果BIT/TI第八讲 汇编语言优化15填充延迟间隙优化结果BIT/TI第八讲 汇编语言优化14四、展开循环BIT/TI第八讲 汇编语言优化16四、展开循环BIT/TI第八讲 汇编语言优化15循环代码举例BIT/TI第八讲 汇编语言优化17循环代码举例BIT/TI第八讲 汇编语言优化16例1去掉了第四次循环开销BIT/TI第八讲 汇编语言优化18例1去掉了第四次循环开销BIT/TI第八讲 汇编语言优化17例2循环次数减少一半BIT/TI第八讲 汇编语言优化19例2循环次数减少一半BIT/TI第八讲 汇编语言优化18例3消除了所

5、有循环开销BIT/TI第八讲 汇编语言优化20例3消除了所有循环开销BIT/TI第八讲 汇编语言优化19循环展开举例小结BIT/TI第八讲 汇编语言优化21循环展开举例小结BIT/TI第八讲 汇编语言优化20五、字长优化(使用字访问半字数据)BIT/TI第八讲 汇编语言优化22五、字长优化(使用字访问BIT/TI第八讲 汇编语言优化21使用LDH的点积BIT/TI第八讲 汇编语言优化23使用LDH的点积BIT/TI第八讲 汇编语言优化22使用LDW进行优化BIT/TI第八讲 汇编语言优化24使用LDW进行优化BIT/TI第八讲 汇编语言优化23使用LDW/MPYHBIT/TI第八讲 汇编语言优

6、化25使用LDW/MPYHBIT/TI第八讲 汇编语言优化24乘法指令小结操作数可以是有符号的,也可以是无符号的乘法指令需一个延迟间隙4种基本乘法指令:BIT/TI第八讲 汇编语言优化26乘法指令小结操作数可以是BIT/TI第八讲 汇编语言优化25六、各种优化方法小结BIT/TI第八讲 汇编语言优化27六、各种优化方法小结BIT/TI第八讲 汇编语言优化26七、软件流水BIT/TI第八讲 汇编语言优化28七、软件流水BIT/TI第八讲 汇编语言优化27软件流水产生高性能循环代码 执行并行指令 填充延迟间隙 功能单元使用最大化由开发工具产生 由编译器选项-o2或o3引入 汇编优化器(输入文件使用

7、.sa扩展名 而不是.asm)产生BIT/TI第八讲 汇编语言优化29软件流水产生高性能循环代BIT/TI第八讲 汇编语言优化28为什么学习软件流水?知道开发工具是如何产生优化代码的 读懂开发工具的输出代码 检查开发工具效率手工优化汇编代码了解软件流水的工作情况BIT/TI第八讲 汇编语言优化30为什么学习软件流水?知道BIT/TI第八讲 汇编语言优化29代码举例这个循环执行5次需要多少周期?(不考虑延迟间隙) 周期BIT/TI第八讲 汇编语言优化31代码举例这个循环执行5次BIT/TI第八讲 汇编语言优化30非流水代码BIT/TI第八讲 汇编语言优化32非流水代码BIT/TI第八讲 汇编语言

8、优化31流水代码BIT/TI第八讲 汇编语言优化33流水代码BIT/TI第八讲 汇编语言优化32软件流水中的术语填充(建立循环)循环(单周期循环3次迭代)排空(完成最后操作)BIT/TI第八讲 汇编语言优化34软件流水中的术语填充BIT/TI第八讲 汇编语言优化33流水代码BIT/TI第八讲 汇编语言优化35流水代码BIT/TI第八讲 汇编语言优化34八、软件流水步骤BIT/TI第八讲 汇编语言优化36八、软件流水步骤BIT/TI第八讲 汇编语言优化35软件流水步骤. 用C语言实现算法并验证. 写C6x线性汇编代码. 画相关图. 分配功能单元和寄存器. 建编排表. 将编排表转换为C6x汇编代码

9、BIT/TI第八讲 汇编语言优化37软件流水步骤. 用C语言BIT/TI第八讲 汇编语言优化36第一步:用C语言实现算法并验证BIT/TI第八讲 汇编语言优化38第一步:用C语言实现算法BIT/TI第八讲 汇编语言优化37第二步:写C62xx线性汇编代码线性汇编不需要指出和考虑:功能单元寄存器延迟间隙并行指令BIT/TI第八讲 汇编语言优化39第二步:写C62xx线性BIT/TI第八讲 汇编语言优化38简单估计BIT/TI第八讲 汇编语言优化40简单估计BIT/TI第八讲 汇编语言优化39第三步:画相关图相关图中的名词术语BIT/TI第八讲 汇编语言优化41第三步:画相关图相关图中BIT/TI

10、第八讲 汇编语言优化40画相关图步骤:、画节点(包括:指令、结果、通路)、在通路旁标出父指令执行周期、安排功能单元 安排必须的功能单元 节点分配到A、B两侧 对所有节点分配功能单元平分.D、.S、.M最小化交叉通路平衡功能单元仲裁BIT/TI第八讲 汇编语言优化42画相关图步骤:、画节点(BIT/TI第八讲 汇编语言优化41画点积相关图1. 画节点(1)BIT/TI第八讲 汇编语言优化43画点积相关图1. 画节BIT/TI第八讲 汇编语言优化42画点积相关图1. 画节点(2)循环传递通路BIT/TI第八讲 汇编语言优化44画点积相关图1. 画节BIT/TI第八讲 汇编语言优化43画点积相关图1

11、. 画节点(3)BIT/TI第八讲 汇编语言优化45画点积相关图1. 画节BIT/TI第八讲 汇编语言优化44画点积相关图2. 标出父指令执行周期BIT/TI第八讲 汇编语言优化46画点积相关图2. 标出BIT/TI第八讲 汇编语言优化45画点积相关图3. 安排功能单元(1)BIT/TI第八讲 汇编语言优化47画点积相关图3. 安排BIT/TI第八讲 汇编语言优化46画点积相关图3. 安排功能单元(2)BIT/TI第八讲 汇编语言优化48画点积相关图3. 安排BIT/TI第八讲 汇编语言优化47画点积相关图3. 安排功能单元(3)BIT/TI第八讲 汇编语言优化49画点积相关图3. 安排BIT

12、/TI第八讲 汇编语言优化48第四步:分配功能单元根据功能单元和交叉通路的使用,可在单周期循环内编排这些指令。BIT/TI第八讲 汇编语言优化50第四步:分配功能单元根据BIT/TI第八讲 汇编语言优化49第四步:分配寄存器BIT/TI第八讲 汇编语言优化51第四步:分配寄存器BIT/TI第八讲 汇编语言优化50第五步:建编排表(1)BIT/TI第八讲 汇编语言优化52第五步:建编排表(1)BIT/TI第八讲 汇编语言优化51循环填充长度抽出最长数据通路计算长度:5+2+1=8周期编排表列出0-7周期填充:第0-6周期循环:第7周期编排周期057BIT/TI第八讲 汇编语言优化53循环填充长度抽出最长数据BIT/TI第八讲 汇编语言优化52填写指令建议从最长数据通路开始尽可能早开始(第0周期)一旦确定指令执行的周期,在这以后的周期内,连续发生各次迭代倒推跳转和循环计数指令的发生周期BIT/TI第八讲 汇编语言优化54填写指令建议从最长数据通BIT/TI第八讲 汇编语言优化53第五步:建编排表(2)BIT/TI第八讲 汇编语言优化55第五步:建编排表(2)BIT/TI第八讲 汇编语言优化54第六步:写C62x

温馨提示

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

最新文档

评论

0/150

提交评论