DSP系统的动态加载技术

  动态加载在台式机领域很常见,用户常用它从各自独立的可升级模块来进行应用汇编。但是,开发人员过去在DSP系统中不怎么使用动态加载技术,因为过去它们通常都是带有实时确定要求的单一应用。
    其他技术的沉没
    开发人员也已尝试过采用静态技术进行再配置,但上述技术与动态加载相比较少成功,其中之一就是构建了多个程序图像,每个图像都带有不同的算法集合。当开发人员在运行时可以确定实际的配置时,就可以下载适当的图像。在带宽有限的无线链接情况下,可能需要很长的时间才能下载完整的应用,而且如果开发人员必须通过重复下载完整的图像才能在运行过程中对系统进行再配置的话,那么就会中断系统的使用。对于开发人员来说,这种方法要求在构建应用可能需要的所有图像之前须提前进行全面了解。
    在具有多种独立功能差异的系统中,开发人员必须构建的图像数量也呈组合式增长。随着系统和软件应用变得越发复杂,最终也不可能预先确定所有潜在要求,因此这种方法也就不再可行了。
    开发人员还推出了叠加技术,可部分地解决上述问题。根据这种方法,备用代码或数据处于相同的存储器空间中。当模块在运行时被写入该空间并叠加原先的模块时,就会进行再配置。这种方法减少了加载时间,并且进行再配置也不必中断应用。如果开发人员可限制系统仅从一个系列选择中做出一种选择,那么系统就可相当有效地采用叠加的方法了。但如果系统要求多种选择,那么为每个叠加都预先确定存储器分配就不大可能现实了。这种情况可能会要求构建多个叠加图像,每个图像针对一个可能的存储器进行绑定。这种方法也再次带来了图像数量组合增长的问题。
    动态加载的优势
    动态加载将模块与系统物理存储器的绑定延迟到运行时再进行,这就避免了上述问题。因此,代码可运行于不同的系统设置上,从而带来了更高的灵活性与可重复使用性。在大多数嵌入式系统中,片上存储器非常珍贵,系统必须对其进行高效利用,但确定系统的哪部分应驻留于片上存储器中可能在开发过程中具有很强的局限性。动态加载允许开发人员推迟到运行时再做出决定,这时他们可采用实时条件来确定在给定时间中哪种算法应驻留于存储器。开发人员可根据需要重复地替代或交换算法,这对应用持续使用的影响也较小。在新型的无线系统中,多通道应用可根据需要交换编解码器算法,而无线个人通信装置可从远程服务器下载 DSP 内容。
    动态加载也使系统的升级变得更为方便。升级时开发人员通常必须得写整个系统,其中包括宝贵的用户与配置数据。但利用动态加载,他们可将升级限制在系统的一个或更多部分,如某种算法或某个数据表格。此外,动态模块升级还仅取决于基础系统提供的功能API(应用编程接口);而非取决于基础系统的静态地址。这意味着,一个动态模块可支持多个产品版本,只要所有版本提供的API相同即可。
    表1总结了DSP系统再配置的关键问题。显示了动态加载与叠加及静态加载属性之间的比较。正如该表所示,与静态图像及叠加相比,动态加载在基于DSP系统的再配置方面具有强大的优势。
    我们接下来将根据 TI 的 TMS320 DSP 讨论动态加载的组件及其工作的方式,不过根据实施不同,具体细节也有所不同。
    自加载 DSP 应用
    在典型的自加载 DSP 应用中,单独的 DSP 运行于主控制程序中,pcb抄板该程序包括动态加载器库。这种方法保存了一些动态图像所用的 DSP 存储器。当应用要求动态模块或动态模块组时,该控制程序将调用动态加载器,指定待加载的模块图像。模块图像可位于闪存或二级存储设备中,系统也可从某些设备中读取图像。加载器为每个模块分配存储器,为所选的存储器调整图像位置,建立到主程序的任何引用,并将调整后的图像复制到动态存储器中。当加载完成后,动态模块则与应用无缝集成,就象它从初始化之后即存在于系统中一样。
    自加载的典型使用为具备 DSP 功能的支持多种媒体格式的媒体播放器设备。它将每种可能的输入来源、媒体格式、音频效果及输出进程表示为动态模块。当用户选择媒体时,系统将加载适当的模块并开始播放。
    MCU 控制的加载
    在典型的 MCU 控制的 DSP 应用中,微控制器管理 一个或更多 DSP 处理器。电路板克隆微控制器选择在每个 DSP 上的哪个 DSP 模块或模块集运行,并使用动态加载器加载适当的模块。这种使用在几个重要方面不同于自加载应用。其一,动态加载器运行于微处理器上,而不是运行于正在加载的处理器上。此外,微处理器通常代表 DSP 管理动态存储器,因为 DSP 要求非直接存储器分配算法。再者,在微计算机控制的加载中,动态图像的加载可能要求通过接口外设进行输出,因为微控制器可能不能直接访问 DSP 存储器的地址。
    主从应用发生于基站、中心局及无线终端中。在基站和中心局中,单一的微控制器管理多个 DSP,每个 DSP 处理多个通道。TI 的 OMAP1610平台是一个典型的无线终端。该设备主要面向手持多媒体应用,其中,系统主机为ARM MCU,其包括 DSP 桥接功能,可控制 TMS320C55x的加载、初始化及代码执行。

相关