- UID
- 13993
- 性别
- 男
|
作者:Steve Blonstein,技术主任--软件开发系统
随着数字信号处理器 (DSP) 的应用范围不断扩大,对面向组件的软件模块的需求不断增长。第三方提供的现成算法在基本层面上能够响应上述需求。第三方算法使系统开放商不必再费力重新设 计主要的软件功能,从而能够更快、更廉价地将系统与更多功能集成。因此,第三方算法在 DSP 系统开发中发挥着非常重要的作用。
为了使组件软件方法顺利工作,必须具备保证组件代码互用性、一致性和便携性的标准。DSP厂商认识到了上述需求,建立了管理不同算法与 应用之间接口的算法标准。上述标准不是为了保证高效实施。针对代码大小、特性及性能而选择最佳算法的工作是由系统集成商进行的。而标准所作的,则是提供确 保算法之间相互协作的一套规则,使他们更轻松地进行评估,然后在系统环境中进行集成。
算法标准的起源
20世纪90年代中期,算法标嫉男枨笾鸾ハ韵殖隼矗耸备看蟮?DSP 出现了,其可支持一个算法的多通道,或者同一 DSP 上的多个算法。尽管早期的 DSP 可能仅用作语音编码器等,但像来自 TI TMS320C5000 平台中 DSP 则能够处理蜂窝电话所需的整个数字处理链,包括声码、音频校正、回波消除等。诸如来自 TMS320C6000平台的其他 DSP,则能够开发 DSL 线卡、视频服务器及其他在单个设备上要求具有极高多通道性能的系统。
利用现有更高层次的性能,许多新兴信号处理标准不断涌现,包括 JPEG、MPEG、电视会议、无线电话以及调制解调器与传真改进等。开发商开始创建交互改变任务的动态系统,而不是一般基于 DSP 的具有固定功能的静态系统。而且系统代码规模也开始剧增,常常为了适应新型多功能系统的复杂性而大幅度增加。
DSP 系统开发商始终缺少经验丰富且掌握深入信号处理知识的 DSP 程序员。目前,这些开发商们开始集成更为复杂的系统,一些刚刚进入 DSP 领域的其他开发商则已开始进行最初的 DSP 设计。不断增长的业界系统集成商寻找各种方法来将日益复杂化的设备整合起来,而不必从头设计所有软件。幸运的是,一些具备业经验证软件技术的开发商认识到 新的市场商机,并开始作为第三方出售其知识产权,包括算法。系统集成商将从第三方购买"黑盒子"目标代码,并将其加载至系统中,以节省宝贵的开发时间。至 少这就是假设的工作流程了。
然而,在实践中事情并非如此直接。第三方开发商常常假定DSP用法,以便使其算法尽可能精简,并获得最佳性能效果。因此,一个算法可能 需要占用所有内存,在很长的时间中禁用出现中断,并完全控制核心。此外,系统集成商可能无法了解开发商的事先假定是什么,因为不存在统一的方法指定算法的 资源要求与性能效果。
显然,如果有了上述假定的话,那么两种或多种算法就不能在多功能系统中和平共处。这样的问题在利用源代码进行再设计时可能相当困难,但 力图集成目标代码的系统开发商对改变算法无能为力。而且,如果算法来自不同的第三方(事实常常如此),集成商将面临不兼容性难题以及不可避免的相互指摘。
到20世纪90年代末为止,很明显如果不就算法建立行为规则,那么 DSP 开发将停滞不前。因此,DSP 厂商开始发布这种规则,将其编写为第三方软件开发商必须遵循的标准代码,以便保证算法的兼容性。尽管这些标准是具有所有权的,但它们都具有相同的目标,并 且许多规则都是一样的。由于某些规则反映了硬件实施,并且仅针对某些个体厂商,因此对所有权而不是业界标准进行保留。此外,当标准出现时,厂商为了跟上 DSP 的开发步伐被迫响应当时的需求,而不是将问题交给漫长的业界标准化进程来解决。
示范标准
最初建立的标准之一是 TI 的 TMS320 DSP Algorithm Standard™,也称作XDAIS。TI 推出了该标准作为其 eXpressDSP™ 软件战略的基本元素,并同时推出了实施内核、集成开发环境 (IDE) 及第三方网络,这表明算法标准化将在 DSP 软件开发中发挥关键性作用。TMS320 Algorithm Standard 是各种 DSP 算法标准的一个示范,事实上它成了随后推出的某些标准的一个模型。
XDAIS 是在 TMS320 DSP 底层软件架构基础之上建立起来的。图1显示了 DSP 系统的组织方式,这样简单数据传感器算法从 I/O 功能以及底层核心运行时环境中分离出来。图2显示了 XpressDSP 环境中算法正常运行的必备系列事件。
XDAIS 算法规则
XDAIS 规则分外四组,具备基本的校验机制以保证符合标准。
常识性编程规则。本组规则的作用在于加强算法的便携性、可预测性及易用性。由于大多数 DSP 系统运行于 C 环境中,因此顶层的算法必须能在C中调用。算法不得干扰应用程序的运行时状态,并且代码必须在抢占式环境中进行重入以支持多个通道。必须对多实例共享的存 储器与全局变量进行保护。所有代码引用必须完全可再定位,不得采用硬编码存储器寻址,否则将干扰其他代码。由于资源可能因系统而异,因此算法不得直接访问 外设。
取消任意选择。如果需要以单一强制方法进行某项工作的话,该标准指定了应在各种不同方法中采用何种方法(就好像交通法规 指定了在路上应左行还是右行)。为避免命名冲突,信号命名必须遵循 DSP/BIOS™ 规则,这是 TMS320 DSP 采用的实时内核。为避免将代码移植到不同操作系统环境中时发生冲突,算法必须封装到遵循统一命名规则的档案文件中。必须使外部引用符合来源,如C运行支持 库函数或其他符合 eXpressDSP 的模块。算法实例必须根据指定的程序调用并删除,并且它们必须能够独立地进行再定位。对 C6000™ 平台而言,算法必须至少支持由小到大的字节顺序,或最好两个都支持,以便为系统开发商提供选择。
资源管理。由于算法一般比较贪婪,并且必须使其可以共享,因此本组位于该标准的核心。现在每个算法都有了强制的存储器管 理界面,而且所有算法都必须在设计时一次协调或在运行时交互协调使用存储器。本规则适用于外部及内部存储器,以及 DMA 通道等外设。本应用同控制框架一样收集所有存储器请求,随后向算法分配存储器。算法可能不能获得其全部请求,但应用框架能够在竞争请求间进行很好的判断, 并优化地划分系统资源。
统一规范。本组规则有助于系统集成商衡量算法并评估其在系统中的兼容性。所有的兼容性算法必须表现最坏情况的中断传输时 间、典型与最坏情况的执行,以及程序、堆阵、静态和堆栈存储器要求等方面的特点。例如,算法供应商可能不再隐瞒会让算法独占内核几秒钟的中断传输时间。现 在,必须根据已确定的方式在算法技术描述中指定并包含传输时间要求。
校验与 eXpressDSP 一致性。算法开发商不能简单地说它满足了 TMS320 Algorithm Standard 的要求。开发商必须通过 TI 的 XDAIS 一致性测试工具加以证明,该工具可校验代码是否符合规则。此外,第三方必须书面同意在开发算法时遵循了标准规定。当满足了这些要求时,第三方可以声明其算 法符合 eXpressDSP,并在广告宣传中使用图3所示的标志。一致性工具可适用于第三方及 DSP 客户,以便使他们在开发自身软件时对这些软件进行检查。系统集成商还可以利用该工具保证他们购买的代码在获得eXpressDSP一致性称号后没有经过修 改。
|
|