- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件优化 概念和汇编优化
C6000 软件优化 Two main goals of software optimisation Faster execution time. Small code size Trade off between the two goals Basic knowledge To implement efficient software, the programmer must be familiar with: Processor architecture. Programming language (C, assembly or linear assembly). The code generation tools (compiler, assembler and linker). Code Optimisation Procedure 软件优化要点 1个时钟周期内让尽可能多的功能单元在执行指令。趋近8*主频(MHz) MIPS 前提:满足各种资源限制(resource bound) 途径:(1)资源合理分配、充分使用(2)算法?映射?结构 DSP适合对大量数据做相同的运算 软件优化要点(续) 相同的工作放在一起完成,形成循环,便于软件流水。 充分利用指令局部性和数据局部性的特点?Cache 优化的3个层次 1. 手工汇编优化 2. 线性汇编优化 3. C语言级的优化 23 和编译器交流:Feedback of loop资源分配情况设置-k编译器选项, 保留asm文件compiler?assembly目的: 软件流水 C6000手工汇编语言优化 并行指令 填充延迟间隙 展开循环 存取带宽优化(使用LDW/LDDW) 软件流水 使用并行指令 并行指令 填充延迟间隙 填充延迟间隙 字长优化 使用字访问半字数据 使用双字字访问字数据 使用LDH的点积 使用LDW进行优化 使用LDW/MPYH 软件流水 产生高性能循环代码 执行并行指令 填充延迟间隙 功能单元使用最大化 由开发工具产生 由编译器选项-o2或o3引入 汇编优化器/C优化器产生 代码举例 非流水代码 流水代码 软件流水中的术语 填充 (建立循环) 循环 (单周期循环 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) 第六步:写汇编代码 代码尺寸的优化 需求:program cache的存在 消除冗余循环 .trip 压平循环填充与循环排空 -mh 平分.D、.S、.M 最小化交叉通路 平衡功能单元 仲裁 循环传递通路 根据功能单元和交叉通路的使用,可在单周期循环内编排这些指令。 编排 周期 0 5 7 * 远见品质 * 哪些指令可以并行? 哪些指令可以并行? (1)两条取指令并行: 放“||”在第二个ldh前 .d1改为.d2,A改为B NOP:相当于未优化 为了消除NOP,如何调整指令顺序? Sub和b指令移到ldh指令后: LD的nop由4降为2 B的nop被消除 填充延迟间隙优化结果 循环代码展开举例 循环展开: 减少B的开销, 但增加代码尺寸 循环次数减少一半 这个循环执行5次需要多少周期? (不考虑延迟间隙) 周期 *
您可能关注的文档
- 课匈奴的兴起及与汉朝的合战.ppt
- 课件制作培训挺好值得备份.ppt
- 说服力 工作型PPT该这样做逻辑篇 2011版.pptx
- 读大学 读什么?.ppt
- 课程简介12 9 12.ppt
- 读懂百句话 胜过十年窗上集.ppt
- 课题第三单元 第10课 五四爱国运动和中国共产党的成立.ppt
- 说说面部年轻化.ppt
- 谁的本领大苏教版第四册.ppt
- 课件制作技巧北大的.ppt
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
最近下载
- 《市政排水管道气囊封堵施工规程》.pdf
- TOPRAAD920印刷模切开槽机.pdf VIP
- 单相整流电路建模与仿真.doc VIP
- 缺血性脑血管病临床管理指南解读.pptx VIP
- 工程概算预算审核方案(3篇).docx VIP
- 神经重症气管切开患者气道功能康复与管理专家共识2024.pptx VIP
- 2025年监理工程师之监理概论考试题库及答案(名师系列).docx VIP
- 2025年监理工程师之监理概论押题练习试卷B卷附答案 .pdf VIP
- 2025年监理工程师之监理概论考试题库及完整答案(必刷).docx VIP
- 2025年监理工程师之监理概论押题练习试卷A卷附答案 .pdf VIP
文档评论(0)