C6000软件优化 概念和汇编优化.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 C6000 软件优化 第1节 C6X软件优化的概念 和汇编优化 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手工汇编语言优化 1、并行指令 2、填充延迟间隙 3、展开循环 4、存取带宽优化(使用LDW/LDDW) 5、软件流水 1、使用并行指令 1、使用并行指令 2、填充延迟间隙 2、填充延迟间隙 4、字长优化 (1)使用字访问半字数据 (2)使用双字字访问字数据 (1)使用LDH的点积 (2)使用LDW进行优化 (3)使用LDW/MPYH 5、软件流水 产生高性能循环代码  执行并行指令  填充延迟间隙  功能单元使用最大化 由开发工具产生  由编译器选项-o2或o3引入  汇编优化器/C优化器产生 (1)代码举例 (2)非流水代码 (3)流水代码 (4)软件流水中的术语 1、填充 (建立循环) 2、循环 (单周期循环 3次迭代) 3、排空 (完成最后操作) 流水代码 (5)软件流水步骤 . 用C语言实现算法并验证 . 写C6x线性汇编代码 . 画相关图 . 分配功能单元和寄存器 . 建编排表 . 将编排表转换为C6x汇编代码 第一步:用C语言实现算法并验证 第二步:写C62xx线性汇编代码 线性汇编不需要指出和考虑: 功能单元 寄存器 延迟间隙 并行指令 简单估计 第三步:画相关图 画相关图步骤: 、画节点(包括:指令、结果、通路) 、在通路旁标出父指令执行周期 、安排功能单元  安排必须的功能单元  节点分配到A、B两侧  对所有节点分配功能单元 例:画点积相关图 例:画点积相关图 例:画点积相关图 例:画点积相关图 例:画点积相关图 例:画点积相关图 例:画点积相关图 第四步:分配功能单元 第四步:分配寄存器 第五步:建编排表(1) 循环填充长度 抽出最长数据通路 填写指令建议 从最长数据通路开始 尽可能早开始(第0周期) 一旦确定指令执行的周期,在这以后的周期内,连续发生各次迭代 倒推跳转和循环计数指令的发生周期 第五步:建编排表(2) 第五步:建编排表(2) 第六步:写汇编代码 代码尺寸的优化 需求:program cache的存在 消除冗余循环 .trip 压平循环填充与循环排空 -mh 功能单元 每周期可 使用数目 需要数目 .D 2 2 .M 2 1 .S 2 1 .L(.D/.S) 2(2-6) 2 指令 LDH , LDH MPY B ADD,SUB 平分.D、.S、.M 最小化交叉通路 平衡功能单元 仲裁 1. 画节点(1) 循环传递通路 1. 画节点(2) sum ADD 1. 画节点(3) count loop SUB B 2. 标出父指令执行周期 5 5 2 1 1 1 6 3. 安排功能单元(1) .D .M .S .D 3. 安排功能单元(2) A side B side 3. 安排功能单元(3) .D1 .D2 .M1x .L1 .L2 .S2 根据功能单元和交叉通路的使用,可在单周期循环内编排这些指令。 编排 周期 0 5 7 计算长度: 5+2+1=8周期 编排表列出0-7周期 填充:第0-6周

文档评论(0)

经管专家 + 关注
实名认证
服务提供商

初级会计持证人

专注于经营管理类文案的拟写、润色等,本人已有10余年相关工作经验,具有扎实的文案功底,尤善于各种框架类PPT文案,并收集有数百万份各层级、各领域规范类文件。欢迎大家咨询!

版权声明书
用户编号:6055234005000000
领域认证 该用户于2023年12月17日上传了初级会计

1亿VIP精品文档

相关文档