独立于硬件技术的XC166单片机的DSP程序优化方法.pdfVIP

独立于硬件技术的XC166单片机的DSP程序优化方法.pdf

  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文档。上传文档
查看更多
独立于硬件技术的XC166单片机的DSP程序优化方法.pdf

独立于硬件技术的 XC166 单片机的 DSP 程序优化方法 XC166 单片机的指令流水线存在着不可避免的阻塞现象,MAC 单元指令也一样。 尽管在硬件设计时已经采用了专用模块来减少阻塞,但有些阻塞是不可避免的,从程序优 化的角度来说,可以充分利用指令流水线阻塞现象,通过重排指令流水线上的指令,消除 阻塞,以使得程序的运行时间缩短,从而达到优化的目的。 通常 DSP 优化方法可以分为两类:一类是与芯片相关的,另一类是与芯片无关 的。与芯片无关的优化方法独立于单片机硬件,适用于所有单片机及 DSP 处理器,下面根 据使用 XC166 单片机的经验总结一些优化 DSP 程序的方法。 1 通用优化方法 1.1 数据组处理 数据组处理的基本思想是通过成组的处理数据,以节约每次调用处理子程序所需 的附加指令。数据组处理可以在 C 语言或汇编语言程序中实现。一般而言,对于开发 DSP 程序,最常用的程序语言为 C 和汇编。下面分别介绍如何在 C 和汇编程序中使用数据组处 理优化方法。 (1)C 程序 在 C 环境中开发 DSP 程序,通常算法本身由汇编编写,以便优化实现。C 主程 序通过调用汇编实现的核心处理子程序来完成对数据的处理。核心处理子程序有两种实现 方法,一种是数组处理,另一种是单值处理,假设单值处理子程序的核心部分与数组处理 子程序的核心部分所需机器周期相同,并且调用子程序的前期处理需 M 个机器周期,后期 处理需要 N 个机器周期,如果子程序被调用 K 次,那么理想情况下,数据组处理可以节约 (K-1)(M+N)个机器周期,如图 1 所示。 (2)汇编程序 在汇编程序中实现数据组处理有多种方法,比如数组操作,数组读入/写出等。 1、数组操作。数组操作是将多个不同的短操作数装入一个长位数的寄存器,然 后进行运算操作。比如,1 个 16 位的寄存器可以装入 2 个 8 位的来自 A/D 转换器的数据。 下面举例说明数据组处理在汇编程序中的应用。 2、数组读入写出。这种方法是将多个短操作数合并为一个长操作数后进行读入/ 写出操作,如上面例子中的输入/输出部分。 1.2 数据存储器交织 数据存储器交织的目的是通过重新排列数据在存储器中的位置,以使得程序读写 数据的时间最短,比如有 2 个 8 位的复数 x 和 y ,一般情况下,复数将按下列顺序存入内 存:real(x) ,image(x) ,real(y) ,image(y) 。但如果想使得读取复数的实部更容易,可以 把数据重新排列如下:real(x) ,real(y),image(x) ,image(y) ,如图 2 所示。 1.3 循环展开 循环展开是一种非常传统的程序优化方法,可以用于所有程序优化中,循环展开 的目的是通过重复循环中的程序,减少循环次数,从而减少循环判断指令的执行次数,以 此来降低程序执行所需的机器周期,下面举一个例子来说明循环展开在 XC164CS 单片机 中的应用。

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档