您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

采取可高效再配置DSP体系的动态加载技能

发布日期:2011-05-08

  基于DSP(数字信号处理惩罚器)的多成果体系正变得日益广泛,分外在无线通讯方面更是云云。新一代超高性能 DSP 使基站可以承载更多的语音、数据以及视频信息通道,而高级低功耗 DSP 则为手持终端体系提供了 Web 欣赏及其他多媒体成果。与以往的任意 DSP 体系相比,上述体系都可以或许实现更强大的多成果软件机动性,这不但是由于通讯标准具有很高的多样性,并且也由于如今无人知晓浩繁新兴应用中到底哪些会胜出。

  新型移动通讯市场较强的开放性提出了一系列新的 DSP 技能挑衅,这不敷为奇。此中最紧张的是在于怎样加载并配置资源麋集型的多媒体应用,以及如安在如今正投入利用的种种新兴体系上加载,并配置诸多差别的通讯算法。由于我们通常要在体系运行时举行软件再配置,这也使题目进一步巨大化。种种新式应用及运行这些应用的、基于DSP的体系告成与否,取决于是否能开辟出告成应对上述挑衅的软件配置技能。

  如今,开辟职员发明动态加载应用模块是在运行时期再配置体系以变化或扩展其成果的最有效方法。开辟职员不克不及在运行前静态配置很多DSP体系,其缘故起因在于实行操纵的及时请求。但是,动态加载容许体系根据必要举行自身的再配置。举例而言,支持多个调制解调器协议的基站体系可利用动态加载,从而为如今的办事恳求举行得当的自身再配置。我们没干系再举另一个例子,即把基于Web的内容下载到无线手持终端中。我们不克不及链接一个静态的步伐图像,让它支持用户大概选择的全部潜伏Web欣赏路径。但是,我们可以通过动态加载在用户必要时下载某成果所需的支持。这种运行时的机动性使动态加载成为可再配置 DSP 体系的关键技能。

  动态加载在台式机范畴很常见,用户常用它从各自独立的可升级模块来举行应用汇编。但是,开辟职员已往在DSP体系中不怎么利用动态加载技能,由于已往它们通常都是带有及时确定请求的单一应用。

  其他技能的隐蔽

  开辟职员也已实行过采取静态技能举行再配置,但上述技能与动态加载相比较少告成,此中之一便是构建了多个步伐图像,每个图像都带有差别的算法聚集。当开辟职员在运行时可以确定实际的配置时,就可以下载得当的图像。在带宽有限的无线链接环境下,大概必要很长的时间才华下载完备的应用,并且要是开辟职员必须通过重复下载完备的图像才华在运行进程中对体系举行再配置的话,那么就会停止体系的利用。对付开辟职员来说,这种要领请求在构建应用大概必要的全部图像之前须提前举行全面相识。

  在具有多种独立成果差别的体系中,开辟职员必须构建的图像数量也呈组合式增长。随着体系和软件应用变得越发巨大,终极也不大概预先确定全部潜伏请求,因此这种要领也就不再可行了。

  开辟职员还推出了叠加技能,可部分地办理上述题目。根据这种要领,备用代码或数据处于雷同的存储器空间中。当模块在运行时被写入该空间并叠加原先的模块时,就会举行再配置。这种要领淘汰了加载时间,并且举行再配置也不必停止应用。要是开辟职员可限定体系仅从一个系列选择中做出一种选择,那么体系就可相称有效地采取叠加的要领了。但要是体系请求多种选择,那么为每个叠加都预先确定存储器分派就不大大概实际了。这种环境大概会请求构建多个叠加图像,每个图像针对一个大概的存储器举行绑定。这种要领也再次带来了图像数量组合增长的题目。

 
 动态加载的上风

  动态加载将模块与体系物理存储器的绑定耽误到运行时再举行,这就克制了上述题目。因此,代码可运行于差别的体系设置上,从而带来了更高的机动性与可重复利用性。在大多数嵌入式体系中,片上存储器非常宝贵,体系必须对其举行高效利用,但确定体系的哪部分应驻留于片上存储器中大概在开辟进程中具有很强的范围性。动态加载容许开辟职员推迟到运行时再做出决定,这时他们可采取及时条件来确定在给定时间中哪种算法应驻留于存储器。开辟职员可根据必要重复地更换或互换算法,这映射用连续利用的影响也较小。在新型的无线体系中,多通道应用可根据必要互换编解码器算法,而无线个人私家通讯装置可从长途办事器下载 DSP 内容。

  动态加载也使体系的升级变得更为方便。升级时开辟职员通常必须得写整个体系,此中包括宝贵的用户与配置数据。但利用动态加载,他们可将升级限定在体系的一个或更多部分,如某种算法或某个数据表格。别的,动态模块升级还仅取决于底子体系提供的成果API(应用编程接口);而非取决于底子体系的静态地点。这意味着,一个动态模块可支持多个产品版本,只要全部版本提供的API雷同即可。

  表1总结了DSP体系再配置的关键题目。表现了动态加载与叠加及静态加载属性之间的比较。正如该表所示,与静态图像及叠加相比,动态加载在基于DSP体系的再配置方面具有强大的上风。

  我们接下来将根据 TI 的 TMS320 DSP 讨论动态加载的组件及其事变的方法,不过根据实行差别,详细细节也有所差别。

  
自加载 DSP 应用

  在典范的自加载 DSP 应用中,单独的 DSP 运行于主控制步伐中,该步伐包括动态加载器库(图 1)。这种要领生存了一些动态图像所用的 DSP 存储器。当应用请求动态模块或动态模块组时,该控制步伐将调用动态加载器,指定待加载的模块图像。模块图像可位于闪存或二级存储配置中,体系也可从某些配置中读取图像。加载器为每个模块分派存储器,为所选的存储器调解图像位置,创建到主步伐的任意引用,并将调解后的图像复制到动态存储器中。当加载完成后,动态模块则与应用无缝集成,就象它从初始化之后即存在于体系中一样。

  自加载的典范利用为具备 DSP 成果的支持多种媒体格局的媒体播放器配置。它将每种大概的输入源头、媒体格局、音频结果及输出进程表现为动态模块。当用户选择媒体时,体系将加载得当的模块并开始播放。

                     图1 DSP 的动态自加载

  
MCU 控制的加载

  在典范的 MCU 控制的 DSP 应用中,微控制器办理一个或更多 DSP 处理惩罚器(图 2)。微控制器选择在每个 DSP 上的哪个 DSP 模块或模块集运行,并利用动态加载器加载得当的模块。这种利用在几个紧张方面差别于自加载应用。其一,动态加载器运行于微处理惩罚器上,而不是运行于正在加载的处理惩罚器上。别的, 微处理惩罚器通常代表 DSP 办理动态存储器,由于 DSP 请求非直接存储器分派算法。再者,在微谋略机控制的加载中,动态图像的加载大概请求通过接口外设举行输出,由于微控制器大概不克不及直接访问 DSP 存储器的地点。

  主从应用产生于基站、中间局及无线终端中。在基站和中间局中,单一的微控制器办理多个 DSP,每个 DSP 处理惩罚多个通道。TI 的 OMAP1610平台是一个典范的无线终端。该配置重要面向手持多媒体应用,此中,体系主机为ARM MCU,其包括 DSP 桥接成果,可控制 TMS320C55x的加载、初始化及代码实行。



                   图2 MCU 控制的动态加载

  
现场测试应用

  在典范的现场实行应用中,办事技能职员给出一系列表现为动态加载模块的测试应用。通常说来,厂商随着时间的生长会增长并改进本测试。用于测试模块的备用存储器参加担当维修办事的产品,并启用实现动态加载。测试配置包括测试模块以及动态加载器和测试控制应用(这里的加载器大概位于测试控制应用中,也大概内置于参加的产品中)。测试配置还包括内置于产品中的参加点定义(这些标记定义可内置于产品中,抑或测试集可将其作为标记模块承载)。诊断测试通过加载各独立测试举行。每个测试都动态连接到其请求的产品软件办事中,如配置驱动步伐和状态变量。

  在利用实际测试时,动态加载相对付叠加要领的重要上风在于开辟职员不消本身构建测试,以立室于被测试体系的版本。叠加要领请求与同产品版本号数量以及测试次数雷同的测试图像库,而动态加载的要领只请求测试数量加上每个产品版本的标记即可。

  测试集实现线性巨大性而不是平方巨大性,其上风是巨大的。如产品带有内置标记信息,则其可消除末了一项。低落配置巨大性是动态加载在利用实际测试时的最大上风。

  
动态加载器的成果与请求

  动态加载器是一个可配置的库或 API,用户可用 C 语言调用,实现方便的接口。除了将步伐图像写入 DSP 存储器之外,动态加载器还可以举行必须的链接,使得模块、主应用及其他加载的模块可实现相操纵。为了到达此目标,动态加载器不但引用模块外的标记,并且也可记录模块中的任意全局定义,便于外部利用。当加载器卸载模块时,动态加载器举行存储器规复,如许体系就象从未有过动态模块一样。

  动态加载器请求一组四个支持类(Class)。应用传输实行上述类并配置动态加载器为加载恳求中起首四个参数的东西。第一个类为图像源,容许体系集成器定义以流的情势担当输入的机制。源可为外部存储器、外部配置或外设,乃至也但是应用中的嵌入布局。第二个类为标记处理惩罚步伐,包括映射标记到地点、举行存储器办理以及有关标记的错误报告等成果。动态加载器利用第三个类(DSP 存储器分派步伐)来为动态模块恳求存储器。一旦动态加载器确定了存储器的内容,动态存储器就会利用第四个类(DSP 存储器初始化步伐)来恳求体系更新 DSP 存储器分派器返回的存储器地点。

  由于动态加载器链接至用户的应用,因此实行它的代码必须敏捷、小巧并具备较强的健硕性。步伐员以专为速率举行过优化的算法编写 C 库的代码。主机图像再格局化器是动态重载的另一组件,它可举行不在线状态下完成的任意谋略。为了高效利用 DSP 的存储器,动态加载器必要最小的存储空间。末了,贩卖商对动态加载器举行了彻底的测试,由于该代码在运行时出现错误是不可担当的。



                    图3 动态加载的应用开辟流程

  
开辟动态模块

  动态模块的代码开辟险些与标准开辟一样。图 3 表现了创建动态模块并举行妨碍调试的有代表性的开辟流程。三个动态加载组件(动态加载器、图像再格局化器以及妨碍调试器插件)以阴影表现。最初,主应用步伐链接至动态加载器库并为动态模块分派存储器。随后,它以正常方法构建模块的可实行步伐,不过图像寻址是可通过利用动态加载器实行进程中办理的标记举行再分派的,而不是静态的。

  体系将可再分派的图像作为输入提提供图像再格局化器,图像再格局化器对其举行优化,以备下载。再格局化器去除加载进程中非必须的东西代码部分以减小图像大小。别的,再格局化器针对 I/O 流式加载重新摆设图像次序,格局化图像,使其包括在应用中,为确定输入有效性添加校验和,并为控制模块导出的标记提供接口。

  当体系必要模块时,体系将其流式提提供动态加载器,动态加载器则对其举行处理惩罚,并将其写入保存的动态模块存储器中。由于调试器也必须可以或许链接至模块,因此调试器插件会检测动态模块是否存在,并确定映射于动态模块的原始东西文件的位置。插件随后会用全部必须的信息更新开辟环境,从而启动全面妨碍调试。

 
 限定标记导出的紧张性

  图像再格局化东西为控制模块导出的标记提供了一个接口。该特性为开辟职员隐蔽某些标记而让另一些标记可视以便于其他模块引用提供了一种途径。体系利用该成果来控制访问,并使加载时间及存储器面积到达最小。每个可视的标记都请求正在运举措态加载器的处理惩罚器给出几字节的存储空间。要是全部链接时标记都可视,那么存储器利用将成为小型嵌入式体系的一个题目。要是再格局化器限定标记导出,那么标记存储器利用通常就不构成题目。

  限定标记导出的另一长处便是实现更快的加载。根据 OMAP1610 平台测试举行的性能阐发给出了以下加载时间的统计模型:4250+373×标记 +273×再定位 +6.5×图像_字节。

  上述阐发表现,模块中导出标记的数量是开辟职员在改进下载速率时可以或许控制的最重要因素。比较而言,总模块大小的紧张性则较小,减小标记数量所起的作用不到 2%。只管根据 DSP 及体系配置的差别,上述因素与其他非开辟职员可控制因素的确切作用比重会有所差别,但最小化外部标记这条重要规矩保持稳固。

  
开放的大概性

  动态加载能为 DSP 体系带来新的应用成果——这正是即将到来的下一代无线技能所必要的生长趋势。高性能 DSP 可加载新型通讯算法,而基于 DSP 的手持体系毋需克制体系即可随意下载 Web 内容及多媒体应用模块。动态加载作为 DSP 体系的无缝模块再配置的一种技能,其应用要比多静态步伐图像或叠加更为机动和高效。只管动态加载还是 DSP 范畴中的复活儿,但其将很快成为驱动多种新型多成果 DSP 应用生长的因素 。信托随着很多其他 DSP 创新的出现,开辟职员会问:已往没有这种技能,我们都是怎么过来的?