- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
BIT/TI 第八讲 汇编语言优化 第八讲 汇编语言优化 学习内容 描述各种优化方法 使用字访问优化点积代码 使用软件流水手工优化汇编循环 题目 一、优化方法简介 二、并行指令 三、填充延迟间隙 四、展开循环 五、字长优化(使用LDW) 六、各优化方法小结 七、软件流水 八、软件流水步骤 九、各种优化总结 一、优化方法简介 使用并行指令 用有用的指令(取代NOP)填充延迟间隙 循环展开 字长优化(使用LDW) 软件流水 二、使用并行指令 使用并行指令 哪些指令可以并行? 并行指令 哪些指令可以并行? 两条取指令并行: 放“||”在第二个ldh前 .d1改为.d2,A改为B 并行注意的问题 例如: ADD使用原来的A4值 如果在循环中: 循环之前清A4 不要忘记最后的累加 并行指令小结 首先使代码正确执行,然后试图用并行指令。 并行代码执行速度快,但必须小心确保代码按所期望执行。 在循环代码中,使用软件流水可执行并行指令。 并行优化结果 三、填充延迟间隙 填充延迟间隙 NOP:相当于未优化 为了消除NOP,如何调整指令顺序? 填充延迟间隙 Sub和b指令移到ldh指令后: LD的nop由4降为2 B的nop被消除 填充延迟间隙优化结果 四、展开循环 循环代码举例 例1 去掉了第四次循环开销 例2 循环次数减少一半 例3 消除了所有循环开销 循环展开举例小结 五、字长优化 使用字访问半字数据 使用LDH的点积 使用LDW进行优化 使用LDW/MPYH 乘法指令小结 操作数可以是有符号的,也可以是无符号的 乘法指令需一个延迟间隙 4种基本乘法指令: 六、各种优化方法小结 七、软件流水 软件流水 产生高性能循环代码 执行并行指令 填充延迟间隙 功能单元使用最大化 由开发工具产生 由编译器选项-o2或o3引入 汇编优化器 输入文件使用.sa扩展名 而不是.asm 产生 为什么学习软件流水? 知道开发工具是如何产生优化代码的 读懂开发工具的输出代码 检查开发工具效率 手工优化汇编代码 了解软件流水的工作情况 代码举例 这个循环执行5次需要多少周期? 不考虑延迟间隙 周期 非流水代码 流水代码 软件流水中的术语 填充 建立循环 循环 单周期循环 3次迭代 排空 完成最后操作 流水代码 八、软件流水步骤 软件流水步骤 . 用C语言实现算法并验证 . 写C6x线性汇编代码 . 画相关图 . 分配功能单元和寄存器 . 建编排表 . 将编排表转换为C6x汇编代码 第一步:用C语言实现算法并验证 第二步:写C62xx线性汇编代码 线性汇编不需要指出和考虑: 功能单元 寄存器 延迟间隙 并行指令 简单估计 第三步:画相关图 相关图中的名词术语 画相关图步骤: 、画节点 包括:指令、结果、通路 、在通路旁标出父指令执行周期 、安排功能单元 安排必须的功能单元 节点分配到A、B两侧 对所有节点分配功能单元 画点积相关图1. 画节点 1 画点积相关图1. 画节点 2 画点积相关图1. 画节点 3 画点积相关图2. 标出父指令执行周期 画点积相关图3. 安排功能单元 1 画点积相关图3. 安排功能单元(2) 画点积相关图3. 安排功能单元(3) 第四步:分配功能单元 根据功能单元和交叉通路的使用,可在单周期循环内编排这些指令。 第四步:分配寄存器 第五步:建编排表(1) 循环填充长度 抽出最长数据通路 计算长度: 5+2+1 8周期 编排表列出0-7周期 填充:第0-6周期 循环:第7周期 填写指令建议 从最长数据通路开始 尽可能早开始(第0周期) 一旦确定指令执行的周期,在这以后的周期内,连续发生各次迭代 倒推跳转和循环计数指令的发生周期 第五步:建编排表(2) 第六步:写C62xx汇编代码 九、各种优化总结 小结 学习了五种优化方: 使用并行指令 填充延迟间隙 展开循环 字长优化 软件流水 手工实现软件流水过程 平分.D、.S、.M 最小化交叉通路 平衡功能单元 仲裁 循环传递通路 编排 周期 0 5 7 * * * * * *
您可能关注的文档
- 《电子测量技术》复习提纲详细解答.doc
- 《工程制图习题集(第三版)》(高等教育出版社,李晓民、马全明、高俊亭主编)6~7、10~21页答案.ppt
- 《课堂新坐标》2014届高考物理一轮复习配套课件:第六章_第3讲_电容器和电容_带电粒子在电场中的运动.ppt
- 《美术鉴赏》期末考试试题及其答案.doc
- 《普通逻辑学》练习题参考答案(2012级).doc
- 《三维设计》2014新课标高考物理一轮总复习课件-第四章第4单元--万有引力和航天.ppt
- 《数据库系统》上机题,实验四:T-SQL查询、存储过程、触发器、完整性.doc
- 《四种命题间的相互关系》参考课件.ppt
- 《条形统计图》教学设计.doc
- 《完全平方公式》同步课堂教学设计.doc
文档评论(0)