在移动电话中增加视频功能的趋势已经是不争的事实,采用传统的方法需要增加数字信号处理芯片或ASIC以及外围电路,具有极大的设计难度。采用自适应计算技术实现移动MPEG-4视频功能,可以简化设计难度、降低设计周期并减小芯片面积和功耗。
3G技术已经开始得到应用,但是移动电话制造商仍然不明确最终用户的服务需求,而MPEG-4视频协议的无线视频应用将是一种必然趋势。在无线产品中实现MPEG-4视频数据流功能并不简单,设计工程师将面临新的设计挑战。
如何解决这种挑战呢?一种方案是利用现有移动终端上的数字信号处理器(DSP)和微处理器核,但是,这些元器件在处理类似3G基带这样的任务后已无余力。另外一种解决方案是加入专门处理MPEG-4功能的ASIC芯片,但是这需要增加一个处理器硅片,而且可能需要增加更多的辅助芯片。因此,需要一种全新的替代方案来实现无线设备的视频功能,而自适应计算技术就是这样的一种替代方案。
自适应计算技术
为什么说自适应计算技术是一种很好的无线视频解决方案呢?答案在于其对系统资源进行分配的能力。
在自适应计算技术结构下处理特定任务时,系统硬件总是实时动态地适配任务要求。在无线视频应用中,如果释放出一个MPEG-4数据流,系统会轮询其所有资源,然后基于轮询结果来分配适合处理MPEG-4任务的可能资源。因此,设计工程师可以最优化资源的利用。
市场上也有许多其它的技术可以实现移动电话资源的调整和分配。不同于DSP、ASIC、微处理器和FPGA等常规的集成电路芯片,对于或长或短的时间周期,自适应计算技术会准确地生成软件算法所需求的硬件。
支持自适应计算的IC结构在功耗极低的情况下能够实现每秒几十万次的适配,因而自适应计算芯片可以实现空间和时间的分割。自适应计算结构的自适应电路矩阵在不同的时间段(时间上),以及不同的位置(空间上)动态适配硬件资源,达到快速执行算法的不同部分,这个过程就是时间和空间分割。
不同方法的比较
比较一下ASIC和自适应计算MPEG-4的实现方式。ASIC的实现方法会用到多个IP内核,包括专门的运动估计(ME)、形状编码(shape coding)、运动补偿(MC)、离散余弦变换(DCT)、反向离散余弦变换(IDCT)以及量化等。
根据要求使每一个MEPG-4功能的计算来适应其结构,这样的优点是消除了固定功能 的ASIC硅模块。这种硅模块即使不用时也占一定的空间,并且当设计规范发生变化时需要重新设计芯片。
相反地,自适应计算技术采用单一的自适应电路矩阵来执行每个算法内核,这些算法内核被称为压缩二进制代码。例如,当MPEG-4应用在调用ME时,这部分的特定压缩二进制代码下载到一个矩阵中,然后该内核进行解压缩,产生相应的硬件配置以实现特定功能。
在MPEG-4的应用中,ME是计算最密集的部分,大约会占到MPEG-4总计算量的60-70%。然而,在电路矩阵中以压缩二进制方式实现ME,而不是固定功能的芯片加速器,自适应计算可以实现硅片的多种功能复用。这种方式有别于在RISC处理器上完全采用软件实现ME的算法,由于自适应计算技术实现的ME计算比纯软件方式运行更快,所以这种技术降低了功耗。同纯粹的硬件实现相比,自适应计算技术更可以适应技术的发展,在设计后期以及在产品应用中可以方便地随设计规范的变化进行改变,以及解决设计存在的问题和产品升级。
在自适应计算技术中,一定百分比的矩阵空间为ME算法所占用,但也有一部分空间可以运行其它计算密集型的算法内核。只要MPEG-4仍然要求硬件驻留在矩阵中,硬件功能就会一直运行,然后切换到停止状态。在此期间,所有其它的MPEG-4内核都同时执行。
同时存在于矩阵中的内核是空间分割的实例,而任何短暂存在的内核则是时间分割的实例。图1为一个完整的空间和时域分割实例。ME计算的粒度(间隔尺寸)比任何其它内核要大6倍。因此,处理同样大小的数据时ME每运行一次,其它的内核必须运行6次。
图1a表示MPEG-4的所有算法内核可以以空间模式布置在自适应计算矩阵中。同时,图1b表示它们也可以实现时域分割。所以采用自适应计算技术,设计工程师可以将ME导入到矩阵中,并且实现快速运行。然后,在一段时间内进行运动补偿,然后是DCT、量化处理,等等。
在这一点上,完整的MPEG-4算法内核序列循环往复地运行。或者如图1c所示那样,设计工程师也可以轻微地改变这种组合。ME会在矩阵中驻留较长的一段时间,然后是MC、DCT和量化部分快速循环进入矩阵,并且这三个算法内核可以反复循环下去。
时域编程
除空间上的编程以外,自适应计算方法同时也支持时域编程。为实现时域编程,自适应计算技术将每个特定的应用在矩阵上运行一定的时间,然后对该矩阵进行适配,以实现另一个时间段上另一个应用的运行,矩阵可以适合前一个应用或任何其它应用。
图2表示的是基于QCELP语音压缩算法中,八个计算最密集的内部编码循环所组成的一个时域编程实例。这八个内部编码循环包括代码本搜索(codebook search)、间距搜索(pitch search)、线谱对(LSP)计算、递归卷积以及四个滤波器。
正如图中所示,虚拟硬件执行一系列顺序下载到自适应计算电路矩阵中的不同应用二进制代码。图中还显示了下载到距阵中搜索内部代码循环的代码本,并创建专门的硬件来执行该二进制代码。
图2所示为一段代码本搜索代码的算法描述。这一特定的算法段实现一个36位的整数除法,执行一个16位×36位的整数乘法,然后同上一次计算的37位延时时间相减(进行比较)。在算法描述与基本的硬件之间建立一个有效的映射,对于实现这种描述的紧密匹配至关重要。
随后,将间距搜索代码循环下载到矩阵中,创建关联的硬件并导出代码本搜索。接下来,LSP计算被下载到电路矩阵中并在递归卷积加载到电路矩阵中时将LSP导出…。这些二进制的改变每秒会发生400次,即每20毫秒变化8次。
空间域和时域协同工作
在空间域方式下,算法或者压缩二进制可以从片上缓存装载到自适应计算矩阵中。任意数量不同的特征、功能以及支持算法都可以通过时域映射来实现。
设计工程师可以在矩阵空间上运行多个任务,也可以进行时域或跨越自适应计算结构硅片矩阵的空间编程。设计工程师也可以实现以空间置换时间或以时间置换空间。例如,如果设计工程师只是设计一个主要任务而不需要硬件的匹配,可以将上面讨论的暂态单元放在图2中,所有这些单元将同时存在于矩阵空间中。
然而,如果一个设计调用到大量同时发生的任务时,设计工程师就可以考虑用空间和时间置换,这样设计工程师就可以在硅片矩阵上同时运行多个任务。此外,在这种空间、时间的取舍会产生一些不足之处。以在该矩阵中一个时钟周期内完成的一个简单三输入加法器作为例子,这一完整的算法可以在空间上进行布置,如图3左边所示。如果空间不能满足这样的设计要求,可以按照如图3右边所示的解决办法,将该算法分成两个暂态单元:在时间0里将A和B相加,在时间1里将A、B相加的结果与C再加。
简化设计流程
自适应计算技术另一个优点是能实现整个系统设计流程的简化。由于整个系统的芯片数量并没有增加,因而设计工程师无需增加额外的设计流程,系统的设计得到很大的简化。
在常规的IC设计中,设计工程师需要面对三种不同的设计流程,分别支持微处理器、DSP和ASIC,设计工程师和程序员都需要应用不同的语言和工具集来对每一个IC编程:汇编语言或者C用于DSP,C或者C++用于微处理器,而VHDL或者Verilog用于ASIC设计。工程师使用不同语言产生差别很大的设计效率,根据每天编程的行数来衡量,汇编语言编程比C/C++大约要慢一个数量级,VHDL/Verilog语言编程比汇编语言大约要慢一个数量级。而根据每天得到的电路门数来衡量,原理图输入设计同VHDL/Verilog相比,大约要慢一个数量级。
所以,通常总是同时使用三到四种语言(具有明显不同的效率)和多种不同的工具集。而在设计后端,设计工程师必须确保各部分同步运行。因此采用传统方案整合无线和MPEG-4功能的设计将具有极大的挑战性。
使用自适应计算技术,设计工程师可以采用单一的高级语言(HLL),以及单一的工具集来实现整个设计。此外,这种语言同时表述了同一个特定算法相关的硬件和软件单元,包括时间和空间信息。HLL的一个重要优势是,设计工程师可以移动自适应计算结构中的设计部分。这种语言可以实现在自适应计算硅片中不同部分的分割,确保设计工程师可以尝试不同的配置以实现特定应用的最优化。
作者:
Paul Master
技术副总裁
paulm@
Bjorn Freeman-Benson
编译器工具总监
bnfb@
QuickSilver Technology公司







京公网安备 11011202001138号
