构建高性能的DSP代码框架.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
构建高性能的DSP代码框架

构建高性能的 DSP 代码框架 bg7jns 整理 关键字: 高速缓存 DMA 软件架构 Cache 应用开发通常开始于在个人电脑或工作站编写的 C 原型代码,然后将代码移植到嵌入式处 理器中,并加以优化。本系列文章则将这种层面的优化在系统级扩展到包括以下三方面的技 术:内存管理,DMA 管理,系统中断管理。这些优化措施与程序代码优化同样重要。 在大多数系统中,有很多的数据需要传输,并需要很高的数据传输速率。因此,你最终会混 合使用处理器中的所有存储器,如内部存储器和外部存储器。 1. 软件架构选择 在开始设计之前,我们必须确定使用什么类型的软件“架构”,所谓架构是在嵌入式系统中搬 移程序代码和数据的软件底层结构。由于架构定义了使用多少存储和其他系统资源,因此, 架构也影响系统的性能。设计的架构也能反映某些性能特性、是否易于使用,以及其他应用 要求。软件架构划分为以下几类:高速实时处理;易编程要求优于对性能的要求;以性能为 第一考虑。 第一类高速实时处理架构,对于安全性至关重要的应用程序或没有外部存储器的系统是很理 想的。在这种情况下,要么是无法忍受缓冲数据所需的时间,或者是没有相应的系统资源, 由于没有外部存储器,故所有工作都需在片内完成。在这种情况下,需要先读取并处理数据, 再进行判决,然后删除数据。然而,这里必须保证的是,在当前帧的所有处理完成前正在使 用的缓冲数据帧不会被覆盖。 例如,车道偏离系统就是一个安全性至关重要的应用。在这个系统中,通常不能在做出判断 前等待 33 毫秒的全帧数据,更好的做法是处理帧的一部分。例如,您可以从帧末尾处开始 检测车道,因此只需读入数据帧末尾部分的数据。 第二种架构通常用在是否易于编程是最重要的考虑因素的情况。这种架构对于需要快速面市 的应用,以及需要迅速开发样机和易于编程超过对性能的要求等应用都是十分理想的,它也 同样降低了开发难度。 当需要达到系统的最优性能时,第三类架构就是合适的选择。由于重点是性能,所以需要对 某些因素,诸如处理器、数据流、带宽效率和优化技术等的选择,做仔细的考虑。然而,这 种架构的不足之处在于可复用性和可升级性方面有所降低。 在开发周期中,事先规划好指令和数据流是十分重要的,这也包括对是否需要外部存储器或 者缓存做出重要决定。这样,开发人员就可以集中精力利用处理器的结构特点,并调整性能, 而不需要重新审视初始设计。 2. 高速缓存概述 高速缓存能够以很快的存取时间(通常是单个周期)将指令和数据存储在处理器片内存储器 中。高速缓存的实现是因为减少了系统对单周期访问的存储器资源数量的需求。基于高速缓 存的处理器结构,开始时将数据放置在低成本的低速外部存储器中,需要时,高速缓存可自 动地将其中的指令和数据传输到处理器的片内存储器。 指令和数据高速缓存为 Blackfin 处理器核提供了最高带宽的传输路径,但高速缓存存在的问 题是它不能预测程序接下来需要的究竟是哪些数据和指令,因此,高速缓存提供了一些功能, 使用户可以控制高速缓存的操作。在 Blackfin 处理器中一些关键的指令段就可以锁定到高速 指令缓存中,这样在需要的时候可以直接使用。 值得注意的是,当高速缓存决定需要保留哪些指令时,它会自动保留最近使用最多的指令段。 由于DSP 软件花费大部分的时间在循环上,这样 DSP 程序往往会重复访问相同的指令。 因此,在不需要任何用户干预情况下,指令高速缓存可以大大提高系统性能。 此外,除了高速指令缓存的功能外,高速数据缓存还提供了“直写”和“回写”模式。在“直写” 模式中,在高速缓存中对数据的修改要传送到外部存储器中。总之,编程最好开始采用“回 写”模式,可以提高 10-15%的效率,在大多数算法中,比“直写”模式更加有效率。如果数据 在多种资源中需要共享,由于要维护数据的一致性,因此采用“直写”模式也是有用的。比如, 在 ADSP-BF561 处理器中,要实现两个处理器核数据的共享,则“直写”模式就十分有用。 在单核处理器中,如果 DMA 控制器和高速缓存访问同样的数据,这种模式也是有益的。 3. 利用 DMA 提升性能 DMA 是提高系统性能的另一个有效工具。因为 DMA 的访问独立于处理器核,处理器核可 以专注于处理数据。在理想的配置中,处理器核只需要设置 DMA 控制器,并在数据传输完 毕时响应中断即可。 通常,高速外设和其他大多数外设都具有 DMA 传输能力。某些 DMA 控制器也允许外部存 储器与内部存储器,以及存储器空间内

文档评论(0)

zijingling + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档