新闻中心

EEPW首页>嵌入式系统>设计应用> 用定制DSP设计MPEG-4无线视频产品

用定制DSP设计MPEG-4无线视频产品

作者: 时间:2009-10-14 来源:网络 收藏

用户应用引擎的一种专用解决方案

  下面来讨论一个现实生活中的解决方案,该方案采用了三级不同的可定制性来构造专门的用户应用引擎。

  第一级可定制性在处理器的标准资源处提供,这些标准资源包括算术逻辑单元(ALU)以及乘法器和累加器(MAC)等。对某些应用而言MAC 用得较多,如基于快速傅立叶变换(FFT)的算法;还有一些则倾向于更多地采用ALU。这就提出了一个要求,对于不同的应用,处理器应有不同的资源组合,而不是将所有的应用都分配到同样的一组固定的资源中去。

  例如,可以将一个MAC密集的算法分配到一个包含4 MAC、2 ALU、1 SHIFT的处理器中去,而将一个ALU密集的应用分配给一个包含3 ALU、1 MAC、1 SHIFT的引擎。这种处理器资源分配的可定制性对许多普通应用而言已经绰绰有余,但对大多数与视频相关的应用来说还远远不够,它们的要求更高,并且需要更多的运算单元来加快运行速度。

  第二级可定制性允许向处理器添加。设计者先要对所需完成的应用有一个大致的认识,接着对该应用进行分析,将其中的一些专用函数分离出来,然后在硬件上专门针对这些函数进行加速处理,即添加DDCU。此外,设计者还可以分析一下,采用工具组添加DDCU来加快运行速度会对处理器的性能造成怎样的潜在影响,以及在诸如此类的一些其他假设下会出现什么情况。

DDCU是一种适用于专用算法的计算单元。一旦设计者确认了哪个算法需要用DDCU进行硬件加速之后,就可以写出实现该DDCU的RTL 代码,并将其加入用户应用引擎。例如,在通用DSP中加入滤波DDCU,那么若用该DSP实现一个需要滤波的应用,其表现出来的性能就会有所增强。

  除此以外,设计者还要在增加并行性所带来的性能优化和该并行性对指令的影响之间寻找最佳平衡。为解决这一问题,可以在VLIW指令中定义分段的数目(从而定义最大并行度),并为每一段分别分配CU和DDCU(见图1)。

  最后一级可定制性表现在处理器资源的选择上。设计者可以自己决定需要多大的数据存储器,以及需要多少个数据寄存器和地址寄存器。而且,根据具体应用所提出的数据要求,设计者还可以增加存储器接口,以便提供并行数据访问。这些共享的存储器接口又可以用来连接多个处理器引擎,这就为处理器资源提供了一定的可伸缩性。

  采用DSP引擎的一个关键的好处是可以加快产品投入市场的时间。但要达到这个目的,还要先定义一系列与DSP引擎协作的。在设计引擎的时候,首先要对其各个方面进行全面分析,确定需要采用哪些DDCU。然后用这些DDCU构建起一个大致引擎,分析其性能瓶颈,并针对性能瓶颈再定义一些DDCU加入引擎中,从而提高该引擎的性能,冲破其瓶颈。为了更方便地完成以上工作,人们开发出一个专门用于MPEG -4应用的DDCU库。以下讨论了该库中的某些专用DDCU。

1. 比特流/可变长度解码DDCU

  在视频编码中常常会遇到可变长度解码。比特流/可变长度解码DDCU 可以加快从输入比特流中取出可变长度字段的速度,这是一种基本操作。如果用软件来实现这种比特流管理,会消耗大量的时钟周期来处理指针的移位、屏蔽和管理,而采用比特流/可变长度解码DDCU则可以在一个简单的硬件单元里快速完成同样的功能。

  在比特流/可变长度解码DDCU中,由用户设计的指令组集中完成普通比特的提取和插入操作。这种DDCU不但能加快处理速度,提高整个视频引擎的性能,还可以解放处理器中的其他资源,使之得以用于周围的其他处理过程。因此,采用这种DDCU不但可以减小指令长度,同时还增强了系统性能。实际上,在DSP中加入这种计算单元会使可变长度解码的速度增快23.2%。



评论


相关推荐

技术专区

关闭