- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ZSP500的高效程序优化设计_计算机论文.doc
基于ZSP500的高效程序优化设计_计算机论文
基于ZSP500的高效程序优化设计_计算机论文
摘 要 DSP芯片具有强大的数据运算功能,充分利用芯片的硬件资源需要对基于硬件的软件进行优化。本文基于ZSP 500数字信号处理器,介绍了C语言级、汇编级代码优化的过程,详细介绍了汇编代码过程中的循环优化。代码优化前后,程序执行效率提高显著。
关键词 ZSP500;时钟周期;循环优化;软流水
1 引言
DSP芯片自20世纪80年代诞生以来,在短短的二十多年取得了飞速的发展,随着DSP芯片性价比和应用范围的不断扩大,DSP处理器的品种越来越多,LSI Logic公司生产的具有开放式结构的数字信号处理器ZSP系列在许多领域都有广泛的应用,其中ZSP400在全球的无线、IP电话、消费类音频的具有广泛的接受度,ZSP500是针对3G无线和多媒体应用而设计的,ZSP600是基站和网络设备的理想选择[1]。
每一次序号的提升,都表示硬件性能的快速提高,硬件性能的提高可以减轻软件设计的压力,但是硬件性能的不断提高,产品的成本也在不断的提高,过度、过快的硬件升级换代对应用也有害处,而基于一定的硬件资源,进行优化软件,提高硬件资源的利用率,实现目标要求就变得比较重要,这样会减少产品成本,达到较高的性价比。本文是在与中兴公司合作开发新一代语音编解码器基础上的经验总结,论文基于ZSP500的硬件资源,介绍了基本的优化方法,充分挖掘硬件的潜力,取得了良好的效果。
2 ZSP500芯片硬件资源介绍
ZSP500是针对3G和多媒体应用而设计的,在内存、功耗、性能方面有着优秀的表现,它是基于RISC的超标量架构,其硬件规划可以根据分组原则确定每个时钟周期要执行的指令条数,并且ZSP500具有静态分支预测功能,可以减少分支跳转惩罚,ZSP500的指令集简单、易懂,条件执行可以执行多达8条相邻指令,可以减少分支,加速数据依赖算法的实现等等。ZSP500的内核是一个四通道超标量、双MAC的数字信号处理器,时钟频率250MHz,拥有16个16位通用寄存器,相邻的两个16位寄存器可以合并为32位寄存器,与8个相应的8位引导寄存器可构成40位通用寄存器,8个32位基址寄存器,一个时钟周期最大可以执行64位数据的读取,双MAC可以达到每秒500M的MAC操作,同时具有双算术逻辑单元(ALU0,ALU1),双地址生成单元(AGU0,AGU1)[2][3][4]。
ZSP500指令执行的8级流水线线分别为取指/译码(F/D)、指令分组(GR)、读书据(RD)、地址生成(AG)、内存连接0(M0)、内存连接1(M1)、执行(EX)、数据写回(WB)[3],如图1所示。熟悉指令各个流水线阶段数据和寄存器内容变化的时序,可以规避各种数据和资源的冲突,保持流水线长时充满,硬件资源充分利用,程序高效、稳健。图1 ZSP500 八级流水线3 程序优化策略
程序优化总体原则:基于ZSP500的硬件资源,根据指令分组原则[3]编写简洁、高效的汇编指令,能够长时保证流水线的充满,充分发挥利用ZSP500强大的运算功能。
评价标准:硬件资源的利用率和每时钟周期实际指令执行条数。
优化流程:基于ZSP IDE集成开发环境,测试纯C语言工程的执行效率,开发环境的设置上我们可以开起开发环境的自动优化选项-03级优化,这样开发环境可以对C语言程序自动进行三级速度优化[2],在这种设置下,根据开发环境提供的工具,测试寻找程序耗时较高的程序段或子函数,进行C语言级的优化,优化完毕后,测试优化结果,如果满足目标要求,则优化任务完成。如果不满足要求要求,则要进行汇编级程序优化,这时我们要将耗时较高的函数或程序段进行手工汇编并进行优化,直至满足优化要求。通常情况下,汇编程序的优化效果比较明显,也是优化要求能否达到的关键,整个流程如图2所示。
3.1 C语言的优化
C语言的优化主要方法是(1)根据ZSP IDE编译原理编写合适的C语言源程序,使得开发环境能够自动将C语言转换成为高效的汇编程序;(2)合理的拆分C语言程序,良好的、易懂的C语言结构不代表高效的C语言执行效率;(3)利用内联函数,减少函数调用所造成的时间损耗,特别是被频繁调用的子函数,充分利用DSP库函数替代原有的具有相同功能的C函数,DSP库函数是针对DSP硬件资源编写的高效功能模块函数,能大大提高C语言程序的执行效率[5][6]。
图2程序优化流程图
3.2 高效汇编程序的编写与优化
将优化后的C语言程序,在ZSP IDE环境下测试C语言的执行效率,具体根据程序执行所耗费的总时钟数(cycle),耗费的总cycle数目中1 group cycles,2 group cycles,3group cycles1,4 group cycle
您可能关注的文档
- 基于JDBC的数据库连接池技术的研究与设计_计算机论文.doc
- 基于JMS的气象数据汇集系统的研究与实现_计算机论文.doc
- 基于JSF技术的WEB应用开发研究_计算机论文.doc
- 基于JXTA和P2P的资源发布系统研究_计算机论文.doc
- 基于LabVIEW的虚拟模电实验的构建——调制解调器_电子机械论文.doc
- 基于MapX的多字段专题饼图的设计_计算机论文.doc
- 基于MasterCAM的后处理应用_计算机论文.doc
- 基于MAS的虚拟企业框架结构设计 _计算机论文.doc
- 基于MATLAB信号处理工具箱的数字滤波器设计与仿真_电子机械论文.doc
- 基于Matlab和VC联合编程的数据处理系统_计算机论文.doc
- 江苏省苏州工业园区2024-2025学年八年级下学期期末调研英语试卷(含答案,无听力原文及音频).pdf
- 江苏省常州高级中学2024-2025学年高一下学期6月期末考试信息技术试卷(含答案).pdf
- 天津市西青区当城中学2024-2025学年高二下学期6月月考英语试题(含答案).pdf
- 湖南省岳阳市湘阴县长仑四校2024-2025学年八年级下学期6月期末道德与法治试题(含答案).pdf
- 江西省新余市实验中学2024-2025学年高三下学期5月冲刺模拟历史试题(含答案) (1).pdf
- 浙江省嘉兴市2024-2025学年高二下学期期末检测历史试题(含答案).pdf
- 暑假备战高考英语全国猜题卷五.pdf
- 江苏省淮安市涟水县 2024-2025学年七年级下学期期末道德与法治试卷(含答案).pdf
- 江苏省宿迁市泗阳县2024-2025学年高二下学期期末考试政治试卷(含答案).pdf
- 江西省新余市实验中学2024-2025学年高三下学期5月冲刺模拟历史试题(含答案).pdf
文档评论(0)