- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
DSP原理及应用
;第5章TMS320DM643的C语言程序设计与优化;5.1TMS320C64x系列DSP的C/C++语言的特点;5.1TMS320C64x系列DSP的C/C++语言的特点;5.1TMS320C64x系列DSP的C/C++语言的特点;5.2TMS320C64x系列DSP的C/C++语言程序设计基础;5.2TMS320C64x系列DSP的C/C++语言程序设计基础;5.2TMS320C64x系列DSP的C/C++语言程序设计基础;5.2TMS320C64x系列DSP的C/C++语言程序设计基础;5.2TMS320C64x系列DSP的C/C++语言程序设计基础;5.2TMS320C64x系列DSP的C/C++语言程序设计基础;5.3运行时环境;5.3运行时环境;5.3运行时环境;5.3运行时环境;5.4DSP的C/C++代码优化;5.4DSP的C/C++代码优化;5.4.3.选用C编译器提供的优化选项优化
-o:使能软件流水和其他优化方法。
-pm:使能程序级优化。
-mt:使能编译器假设程序中没有数据存储混淆,可进一步优化代码。
-mg:使能分析(profile)优化代码。
-ms:确保不产生冗余循环,从而减小代码尺寸。
-mh:允许投机执行。
-mx:使能软件流水循环重试,基于循环次数对循环试用多个方案,以便选择最佳方案。;5.4.4软件流水
在编译代码时,可以选择编译器的-o2或-o3选项,编译器将根据程序尽可能地安排软件流水线。使用软件流水线还有下面几点限制:
(1)循环结构不能包含代码调用,但可以包含内联函数;
(2)循环计数器应该是递减的;
(3)循环结构不能包含break,if语句不能嵌套,条件代码应当尽量简单;
(4)循环结构中不能包含改变循环计数器的代码;
(5)循环体代码不能过长,因为寄存器(32个)的数量有限,应该分解为多个循环;
(6)在软件流水线的运用上,尽量使复杂的循环分解成简单的小循环,以避免寄存器的数量不够;对于过于简单的循环,应该适当展开,以增加代码数量,增加流水线中的迭代指令。;
5.4.5使用内联函数(Intrinsics)
内联函数是C64x编译器提供的专门函数,它们与嵌入式的汇编指令一一对应,C编译器以内联函数的形式支持所有C语言代码不易表达的指令,其目的是快速优化C源程序。在C源程序中调用内联函数,与调用一般的函数相同,只不过内联函数名称前有下划线作特殊标识。当汇编指令功能不易采用C语言表达时,可采用内联函数表示。
Intrinsics是直接与C6000汇编指令映射的在线函数,不易用C/C++语言实现其功能的汇编指令都有对应的intrinsics函数,使用方法与调用函数一样,也可使用C/C++变量。
如以下程序:
;5.4DSP的C/C++代码优化;5.4.6调整数据类型
C64xDSP内部数据总线和寄存器宽度是32位的。一般遵守的规则如下:
(1)在使用过程中,注意int和long两种类型的宽度不一致,long型数据为40位,会产生额外的指令和占用更多的功能单元。
(2)在使用loopcounts时应尽量使其为int型或unsignedint型数据,以避免不必要的符号位扩展。
(3)尽量使用short类型进行乘法运算,因为这种数据类型适应C6000中的16位乘法器。如进行一次short*short运算只需1个时钟周期,而进行一次int*int运算则需5个时钟周期。
;(4)循环计数器应使用int或无符号int类型,不用short。
(5)short型数据的int处理,C64xDSP具有双16bit扩充功能,芯片能在一个周期内完成双16bit的乘法、加减法、比较和移位等操作。在设计时,当对连续的short型数据流操作时,应该转化成对int型数据流的操作,这样一次可以把两个16位的数据读入一个32位的寄存器,然后用内部函数来对它们处理(如_sub2等)。充分运用双16bit扩充功能,一次可以进行两个16bit数据的运算,速度将提升一倍。;5.4.7基于Cache的程序优化
C64x系列采用了两级Cache的存储器结构用于对程序和数据的缓存,Cache的使用较好地解决了低速片外数据存储和高速CPU间的矛盾。对Cache进行优化主要是从提高Cache命中率的角度来进行的,如果Cache中的数据能多次被重复利用,即DSP运算单元可直接从高速Cache中访问数据,而不需要访问慢速的存储器,就避免了DSP的数据访问等待时间。在实际编码时,一般把L2配置为Cache和SRAM混合使用模式。程序使用的一些关键数据段和代码段放入片内内存中,在片内和
您可能关注的文档
- DSP原理及应用——TMS320DM6437 课件 第八章:TMS320DM6437主机接口与多通道缓冲串口.pptx
- DSP原理及应用——TMS320DM6437 课件 第二章:TMS320DM6437的硬件结构.pptx
- DSP原理及应用——TMS320DM6437 课件 第九章:TMS320DM6437通用输入输出接口与定时器.pptx
- DSP原理及应用——TMS320DM6437 课件 第六章:TMS320DM6437流水线与中断.pptx
- DSP原理及应用——TMS320DM6437 课件 第七章:TMS320DM6437增强的直接存储器访问(EDMA3).pptx
- DSP原理及应用——TMS320DM6437 课件 第三章:ICETEK-DM6437-A综合实验系统.pptx
- DSP原理及应用——TMS320DM6437 课件 第十章:《DSP原理及应用》课程思政教育的方法与教学建议.pptx
- DSP原理及应用——TMS320DM6437 课件 第四章:DSP集成开发环境.pptx
- DSP原理及应用——TMS320DM6437 课件 第一章:DSP概述.pptx
- 世界银行-公共投资对私人投资的“挤入”效应再探(英).pdf
- 2024年Jackson+Hole会议点评:时机已至,美联储料于9月降息-240824-方正证券-10页.pdf
- 2024年7月工业企业利润点评:“弱补库”延续,上游份额继续扩张-240828-华创证券-12页.pdf
- A股市场周观察:市场情绪低位回升,两融余额持续下滑-240826-西部证券-26页.pdf
- 2024年7月金融债月报:银行息差止跌企稳,宽信用利好金融债发行-240815-东方金诚-11页.pdf
- A股策略专题报告:三类宏观配置策略跑赢市场-240825-财通证券-11页.pdf
- 传媒行业净利润基本符合预期持续看好新媒体20133前瞻.pdf
- PitchBook-2024年二季度美国公共PE和GP交易综述(英).pdf
- 世界银行-建立证据以提高难民和收容社区的福利——来自肯尼亚难民和收容群体纵向社会经济研究的见解(英).pdf
- 风险出清边际加快 违约及展期主体数量环比增加 ——2024年7月债券市场违约及信用风险事件概况.pdf
- 亚开行-统法协会数字资产和私法原则的关键方面(英).pdf
最近下载
- 招标代理服务服务方案.doc
- 山东省曹县第一中学2024-2025学年高三上学期开学摸底考试历史试题.docx VIP
- 医院出入院病人登记表.docx VIP
- 华能太仓发电有限责任公司二期(2×600MW)工程主要施工方案.doc
- 2020健康管理师精炼总结-技能第4章健康危险因素干预.pdf VIP
- 人教版三年级数学上册第一单元时、分、秒同步奥数(附答案).docx
- 2024天津市西青经济开发总公司招聘16人公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版.docx
- 2018年全国统一施工机械台班费用定额.pdf VIP
- 《船舶维护手册》.pdf
- skoda数控镗床附件头分度程序浅析.doc.docx VIP
文档评论(0)