【转载】不断演变的数字信号处理技术

来源:互联网 发布:e盾网络验证 死马 编辑:程序博客网 时间:2024/04/30 03:18

    独立式DSP正在消亡吗?它也许并非在消亡之中,但不像从前那样处于前沿和中心地位了。2006年,EDN把它每年发布一次的《DSP目录》改名为《数字信号处理目录》(参考文献1)。这个微妙的变化反映了数字处理在商业上已经超越了软件可编程处理器件与核心,把可编程交换结构、IP模块、混合处理SoC等其它选项包含了进来。这些选项彼此间既补充又竞争,这是因为每一类都面临不同的约束(参考文献2)。信号处理涉及数学运算,以便利用滤波、傅里叶变换、压缩、解压、合成、识别、增强、编码、解码和其它方法来转换一组数据或一个信号流。微处理器不断进步,而需要该技术的开发者越来越多,二者正在引发弃用独立式DSP的趋势。

  FPGA与DSP之争在过去几年已经平静下来。两个阵营都认识到:它们最好是用来解决不同类型的问题,并且FPGA和处理器在同一项设计中并排工作是很常见的事情。FPGA能随意利用宽泛的信号处理算法,后者充当硬件加速块。当信号处理算法足够宽泛,能高效率地使用DSP中的可用处理单元和其它部件时,上述能力使FPGA具有了相对于DSP的优势。但是,与FPGA一起工作是一件更加复杂的事情,部分程度上是由于它们的硬件设计流程。例如,Xilinx公司DSP解决方案资深营销经理Tom Hill表示,该公司正在着重使FPGA变得更易使用。Xilinx公司把设计流程的复杂性抽象化,其中包括使C语言设计流程和C语言合成工具适应硬件与软件分区,由此完成了这一任务。

  微处理器不断受益于摩尔定律,它们能包含乘法器和特殊电路,其中包括特殊总线体系结构和存储器层次,来提高计算性能。目前的一些微处理器具有良好的计算性能、低成本和高能效。如果这些参数足够好,那么这些微处理器就能使设计者在设计方案中添加和容纳信号处理,放在单一芯片内。这些处理器未必提供同类最佳的处理性能、成本和能效,但它们提供了其它系统级优势,其中包括节省材料成本或是具有熟悉的设计流程,并因此成为比独立式DSP更好的选择。

  名字的含义

  随着信号处理进入更多应用领域,易用性成为了关键问题,尽管在历史上,设计者们经常把“DSP”这一术语与复杂性关联起来。与早期DSP有关的体系结构的侧重点并不是把数学算法轻松转换成芯片和软件实现,而是获得最高处理性能。这些处理器逐渐演变,每一代新产品都能使用更多晶体管,因此能更好地以各种方式顺应转换。例如,那些允许用C语言编程的处理器就有助于这种转换。

  不妨想想Texas Instruments公司是如何为它的TMS320C2000平台确定名字的。该公司一度把这些器件称作具有控制器能力的DSP。但在几年前,这些处理器又被称作DSC。该公司最近把C2000从《2009年EDN DSP目录 》中取消了,现在把它称作实时微控制器,尽管底层体系结构未变。但是,明确的重点已经变为使外围的开发支持环境对于微控制器开发者而言更加舒适。

  你也许会认为:采取该策略的制造商不够坦率,但请记住:许多处理器侧重于目标应用,并且只是暗示了自己的信号处理能力。这样的例子包括Analog Devices Blackfin音频视频与通信处理器,带有Neon或加速型多媒体IP的arm处理器,带有Altivec扩展的Freescale Power Architecture,Infineon TriCore汽车与工业处理器,带有SSE的Intel Pentium处理器,Microchip DSPic电机控制与电源转换DSC,NXP CoolFlux处理器,Tensilica Xtensa音频与视频引擎,Texas Instruments DaVinci和OMAP处理器。

  上述每种处理器均包含信号处理体系结构特性,它们使其目标应用受益。其中许多器件配备了专用算法或信号处理库,不仅是为了加快产品上市时间,还是为了使开发者能向其设计方案添加功能,而不必成为新功能的专家。处理器厂商正在捆绑芯片和软件,来简化音频与视频处理和其它应用。

  帮助临时用户采用信号处理技术

  根据目标应用来确定处理器,这反映了芯片供应商提供专用产品或已实现基准设计(它们不仅包含硬件,还包含与这些硬件配合的适当软件组件)的趋势。开发者可以购买预想的实施成果,或是获取它们的许可证,来实现日益增多的信号处理功能,比如压缩、音频、视频编解码等等。这些开发者的侧重点正在从如何构建核心功能转向确定某种实施成果是否满足性能、价格、能效、上市时间和集成目标。如果算法与系统供应商能在处理性能、能效、算法灵活性的交付与耐用的系统集成之间建立平衡,那么在这个竞争日益激烈的领域,他们应会享有突出的地位。

  捆绑在这些产品中的软件的信号处理性质有时不太明显。例如,触摸传感是如此流行的一种功能,许多处理器厂商今年都推广或更新了对各自器件的触摸传感支持。这些套装产品包括了处理器目标及软件与演示工具包,来使那些尝试运用该技术的开发者的学习过程变得容易。开发者以某个API为目标,无须面对触摸传感器使用过程的许多复杂情况。触摸传感器输入管理与解释工作通常需要执行大量信号处理,特别是对于多触摸产品,以便对传感器做滤波和校准,来交付一致而可靠的输入源。处理器厂商正在构建自己内部的触摸传感专业知识,并开展复杂性的抽象化,使最终开发者无须面对复杂性。这一举措使开发者能侧重于更高级别的触摸输入解释,比如命令动作的识别。

  上述行业趋势正在把数字信号处理转向某种深度嵌入式技术级别,越来越多的开发者此时不再关注“商品化”信号处理的实现细节。该趋势使芯片供应商能接触到更多的开发者(他们不是信号处理专家),并且使开发者无须从头学习如何实现这些算法。它还使最优信号处理实现结果的秘密(软件经常是手工优化的汇编或C语言代码,大量使用编译器内置函数,以便从底层硬件“榨取”最佳性能)变得无关紧要。开发者能继续为系统的增值部分使用熟悉的C语言代码设计流程,而不必担心如何实现一些“困难任务”的编码,这些任务获得了许可证,并且时序很关键。在芯片供应商继续构建各自的核心部门专业知识时,该趋势还为算法实现的认证奠定了基础。

  这个新的抽象层有助于支持那些正在采用信号处理的临时用户数量的爆炸式增长。但是对于芯片供应商的开发支持工作,它代表着另一个复杂层次,这是因为这些处理器的能力和中级用户仍需要直达金属的可见性,来支持他们的创新探索。Atmel公司应用开发人员Piergiovanni Bazzana描述了该公司的两位客户,他们想为相同类型的最终产品采用相同的Atmel双核微控制器和DSP处理器。较小的公司想用单一的图形编程工具来开发微控制器核心和DSP核心,这是因为该公司专用于该项目的资源较少,并且有兴趣实施常规的标准算法。较大的公司想为每一种目标处理器采用单独的开发工具,这是因为它不仅拥有更多的开发资源,而且还计划把一些创新成果融入到它的算法实施工作中,这项工作需要该公司的设计人员能深入观察目标系统。

  以标准信号处理算法为目标的设计方案适合于某种基于库的方法。开发者需要阅读和理解标准文档或基准代码,以便了解常规问题。对于设计者而言,上述努力然后会变成一种优化方式,以便依照目标体系结构来优化各自的设计方案。对于特定的处理选项,芯片供应商可以把它在信号处理及其体系结构方面的专业知识作为一种套装产品,在几家客户之间分销。相比之下,那些正在实施算法创新成果的设计者们不但必须依照目标来优化实施方式,而且还须优化物理现象,以便在算法完善过程中提供深入观察能力。在本例中,一种基于C语言的方法(必要时配备编译器内置函数)更加合适,这是因为它提供了基于库的方法不具备的灵活性。

  必要技巧

  信号处理系统的构建需要探索和完善算法,在目标处理器上实施算法,并规定和验证系统级时序。这些技巧可由单个人员或团队拥有。The MathWorks公司信号处理应用方面的资深战略策划师Ken Karnofsky表示,具有上述任何技巧的人在彼此交流时,会遇到解释方面的难题,这是因为他们各自具有不同的天然工作成果、数据和工作流程。算法探索是数学密集型的,并需要人们了解自己正在建模的物理现象。目标处理器上的算法实现不需要对数学或物理现象有同样程度的了解。确切地说,开发者的专业知识侧重于如何组织和调度各种处理资源,来可靠提供足够好的性能和能效。系统级时序的验证工作需要确定最终系统为实现耐久工作而必须支持的各种工作条件。

  The MathWorks公司的Matlab和Simulink以及National Instruments公司的LabView等等开发工具可帮助算法开发人员用各种抽象级别和高级数学模拟来探索算法(图1)。在界定相关问题和探索设计方案的可能情况时,在较高抽象级别工作一般是有用的。在LabView例子中,Express虚拟仪器(VI)提供了基于配置的交互式用户界面来合成相关测试信号,查看应用某个窗口之后的结果,或检查频谱。抽象级别较低的工具(比如来自阵列/逐点库的工具)更加灵活,可编程性更高,来促成定制算法的开发与实施。

       图1,堆叠的各个块表示功能类别,这是基于它们的编程接口的抽象级别以及被封装功能的数量(National Instruments提供)。

  图1,堆叠的各个块表示功能类别,这是基于它们的编程接口的抽象级别以及被封装功能的数量(National Instruments提供)。

  这些工具还支持自动生成的代码(它们在目标处理板上执行),由此在帮助化解算法开发与实施之间的一些过渡难题。对于低批量或高利润率应用,自动生成的代码也许足以促成快速原型制作或是快速上市时间方面的探索。在目标板上使用自动生成的代码,就能使算法开发人员更直接地了解实施开发人员面临的难题。

  在目标体系结构上实现和优化算法,需要使用芯片供应商为了目标系统而支持的开发工具。自动生成的代码能帮助在以下二者之间做比较:各种目标体系结构之间的折中;日益广泛运用的编译时间替换技术(它允许使用替代目标)。对于那些需要特殊资源来获取处理性能约束的算法,开发者也许必须使用编译器内置函数或手工优化的汇编语言代码。标准的ANSI C代码不向编译器提供对存储器动态使用情况的可见性,因此编译器必须做若干假设来生成良好代码。编译器的强项是对寄存器和内部存储器访问执行调度,这是因为它们能直接管理那些资源,而它们的弱项是对DMA的调度,这是因为它们不能完全控制自己在访问的资源。编译器内置函数使开发者能更直接地规定相关假设和资源分配。

  由于系统利用共享资源来执行更多任务,因此系统级时序技巧变得更加重要。早期DSP的侧重点是以中断支持能力为代价,实现低开销的循环。目前的处理器支持许多中断源,特别是对于连接功能。信号处理算法日益复杂,其中包括对逐个数据点执行处理,这可能使系统时序分析变复杂。制造商们正在越来越多地对成功的信号处理算法开展商品化,并把它们嵌入到嵌入式设计方案的处理部件中,不论是作为与目标芯片捆绑在一起的软件,还是可颁发许可证的软件实现成果。随着上述情况的演变,开发者们将花费更多时间来规定和验证系统级性能,然后开发和实现相关算法。

  系统质量取决于算法在实时系统级最大负荷或最坏情形等待时间方面的保证。质量最高的系统是把最坏情形路径或等待时间的影响作为设计方案的基础,并且在所有情形下都满足实时阈值。至于质量中等的系统,在它定义的阈值中,经历某个错误并丢失实时阈值,但仍能恢复,这是可接受的;这类系统足够耐用,能处理间断。

  Texas Instruments公司首席技术院士Gene Frantz表示:许多DSP用户的经验不如前辈。这一事实应该会影响大学的信号处理课程教学方式。随着更多的信号处理算法有待于商品化实现,多数设计者将会发现:如果侧重点不是从头开始研制所有构件,而是如何以创新方式来组合这些构件,那就会更有价值。

原创粉丝点击