采用可高效再配置DSP 系统的动态加载技术
扫描二维码
随时随地手机看文章
基于 dsp(数字信号处理器)的多功能系统正变得日益普遍,特别在无线通信方面更是如此。新一代超高性能 dsp 使基站可以承载更多的语音、数据以及视频信息通道,而高级低功耗 dsp 则为手持终端系统提供了 web 浏览及其他多媒体功能。与以往的任何 dsp 系统相比,上述系统都能够实现更强大的多功能软件灵活性,这不仅是因为通信标准具有很高的多样性,而且也由于目前无人知晓众多新兴应用中到底哪些会胜出。
新型移动通信市场较强的开放性提出了一系列新的 dsp 技术挑战,这不足为奇。其中最重要的是在于如何加载并配置资源密集型的多媒体应用,以及如何在目前正投入使用的各种新兴系统上加载,并配置诸多不同的通信算法。由于我们常常要在系统运行时进行软件再配置,这也使问题进一步复杂化。各种新式应用及运行这些应用的、基于dsp的系统成功与否,取决于是否能开发出成功应对上述挑战的软件配置技术。
目前,开发人员发现动态加载应用模块是在运行期间再配置系统以改变或扩展其功能的最有效方式。开发人员不能在运行前静态配置许多 dsp 系统,其原因在于执行操作的实时要求。但是,动态加载允许系统根据需要进行自身的再配置。举例而言,支持多个调制解调器协议的基站系统可使用动态加载,从而为目前的服务请求进行适当的自身再配置。我们不妨再举另一个例子,即把基于web的内容下载到无线手持终端中。我们不能链接一个静态的程序图像,让它支持用户可能选择的所有潜在web浏览路径。但是,我们可以通过动态加载在用户需要时下载某功能所需的支持。这种运行时的灵活性使动态加载成为可再配置 dsp 系统的关键技术。
动态加载在台式机领域很常见,用户常用它从各自独立的可升级模块来进行应用汇编。但是,开发人员过去在dsp系统中不怎么使用动态加载技术,因为过去它们通常都是带有实时确定要求的单一应用。
其他技术的沉没 开发人员也已尝试过采用静态技术进行再配置,但上述技术与动态加载相比较少成功,其中之一就是构建了多个程序图像,每个图像都带有不同的算法集合。当开发人员在运行时可以确定实际的配置时,就可以下载适当的图像。在带宽有限的无线链接情况下,可能需要很长的时间才能下载完整的应用,而且如果开发人员必须通过重复下载完整的图像才能在运行过程中对系统进行再配置的话,那么就会中断系统的使用。对于开发人员来说,这种方法要求在构建应用可能需要的所有图像之前须提前进行全面了解。
在具有多种独立功能差异的系统中,开发人员必须构建的图像数量也呈组合式增长。随着系统和软件应用变得越发复杂,最终也不可能预先确定所有潜在要求,因此这种方法也就不再可行了。
开发人员还推出了叠加技术,可部分地解决上述问题。根据这种方法,备用代码或数据处于相同的存储器空间中。当模块在运行时被写入该空间并叠加原先的模块时,就会进行再配置。这种方法减少了加载时间,并且进行再配置也不必中断应用。如果开发人员可限制系统仅从一个系列选择中做出一种选择,那么系统就可相当有效地采用叠加的方法了。但如果系统要求多种选择,那么为每个叠加都预先确定存储器分配就不大可能现实了。这种情况可能会要求构建多个叠加图像,每个图像针对一个可能的存储器进行绑定。这种方法也再次带来了图像数量组合增长的问题。
动态加载的优势 动态加载将模块与系统物理存储器的绑定延迟到运行时再进行,这就避免了上述问题。因此,代码可运行于不同的系统设置上,从而带来了更高的灵活性与可重复使用性。在大多数嵌入式系统中,片上存储器非常珍贵,系统必须对其进行高效利用,但确定系统的哪部分应驻留于片上存储器中可能在开发过程中具有很强的局限性。动态加载允许开发人员推迟到运行时再做出决定,这时他们可采用实时条件来确定在给定时间中哪种算法应驻留于存储器。开发人员可根据需要重复地替代或交换算法,这对应用持续使用的影响也较小。在新型的无线系统中,多通道应用可根据需要交换编解码器算法,而无线个人通信装置可从远程服务器下载 dsp 内容。
动态加载也使系统的升级变得更为方便。升级时开发人员通常必须得写整个系统,其中包括宝贵的用户与配置数据。但利用动态加载,他们可将升级限制在系统的一个或更多部分,如某种算法或某个数据表格。此外,动态模块升级还仅取决于基础系统提供的功能api(应用编程接口);而非取决于基础系统的静态地址。这意味着,一个动态模块可支持多个产品版本,只要所有版本提供的api相同即可。