下一代开放式多媒体应用平台(OMAP)综述

介绍了开放式多媒体应用平台(OMAP)的软、硬件结构,讨论了OMAP的一些重要的结构特性、功能,并针对如何满足目前和今后用户对PDA、手机、数字相机、相机、MP3/AAC播放器等多媒体应用的需求提出了方案,同时还讨论了在OMAP中整合所有这些应用的可能性,最后对三种流行多媒

将多媒体应用整合在一个组件中,因而支持高速有线和无线通讯应用这一趋势已越来越明显。最新的2.5G和3G手机就是一个很好的例子,它们整合了MP3音讯和MPEG4视讯等多媒体功能。手机对多媒体应用的要求主要是由3G网络带动的,该网络可以提供远高于现有网络的频宽,因而使传输视讯流成为可能,同时也为展开其它多媒体业务提供了机会。通常情况下,这类多媒体内容丰富的应用都需要一个微控制器来执行操作系统(OS),管理人机接口(MMI)并执行其它一些常规任务。此外,还需要一个数字讯号处理器(DSP)来完成繁重的数学处理任务,例如语音编码、视讯译码、音讯译码等。因此,在大多数基于多媒体的应用中都应将这些任务分散到不同的处理器中去。

 然而,有些半导体设计商更愿意采用单处理器方案来处理这类复杂的多媒体问题。他们的方案是在一个带内建加速器和再使用器的RSIC处理器上执行这些多媒体应用。这种处理器确实可以完成这类功能,但这并非解决多媒体问题的最佳方法。如果数据处理和讯号处理合二为一,那么想要对数据和讯号采用不同的数学精密度或者采用不同的工具来处理就会变得很不方便。芯片也会因为要完成很多它并不擅长的功能而不得不消耗很高电能。而且,单芯片方案为将来的扩展留下的空间也很小。当组件中同时执行多项任务时,对时间要求严格的多媒体处理任务会被赋予最高的优先级。这样,要在多媒体处理和响应MMI输入这两项任务之间切换时,就可能存在问题。因为单处理器方案必须将目前工作环境保存下来才能安排执行MMI任务,同时它还必须保证不错过任何对实时性的要求,因此,操作系统将疲于应付多媒体应用不断成长的需求,结果导致对MMI的响应速度变慢。

 开放式多媒体应用平台(OMAP)处理器内含一个增强型ARM处理器(ARM925)和TI公司最新研制出的低功耗定点DSP(TMS320C55x)。设计这一双核心组件的目的就是为了有效处理多媒体应用和MMI应用。在这两个核心中,ARM925用于执行操作系统(OS),而DSP用于处理所有多媒体应用。将两个核心放在一个289接脚的芯片中,这样不但节约电路板空间,而且可以降低功耗和成本。除了这两个功能强大的核心外,OMAP组件中还备有各种各样的片上外围设备,使用户能够以一种几乎无缝的方式与USB、UART、蓝芽组件以及GSM模块等通用组件接口。下面分别讨论OMAP组件的具体细节。

 OMAP硬件结构概述

OMAP平台由一个微处理器子系统(ARM),一个DSP子系统,一个内存接口流量控制器、一些专用的多媒体应用外围设备(MWA)和一个多任务接口构成。OMAP中每个核心的最高执行速度都可达到150MHz,并且都可以随作业频率的降低而作出相应改动以节约功耗。ARM既支持32位也支持16位(Thumb模式)指令集。C55x DSP内有5组数据总线,在一个周期内允许三次读取作业和两次写入作业。C55x最独特的一点就是它具备双MAC结构,并且其内部具有一个硬件图形加速器。综上所述,C55x DSP是一款高度复杂但功能强大的,专为基于多媒体的实时应用而设计低功耗组件。

 流量控制器(TC)用于控制对外部内存的存取,其最高工作频率为75MHz。TC提供三个接口,它们分别叫做外部内存快速接口(EMIFF),外部内存慢接口(EMIFS)和内部存储器接口(IMIF)。其中,EMIFF可与SDRAM连接,而EMIFS只能与闪存和速度稍慢的ROM连接。OMAP内还有192K的内部存储器,由ARM和DSP共享。但只有ARM才能配置DSP中的MMU(内存映像单元),因而决定DSP应以怎样的方式存取这些资源。TC可以看作储存资源的守卫,由它内部的仲裁器来决定哪个核有权利存取这些资源,以及是否可以让两个核同时存取这些资源。

 为了加速数据存取速度以及执行外部内存内的代码,C55x DSP中加入了数据和程序缓冲存储器。ARM中有一个16KB的程序缓冲存储器和一个8KB的数据缓冲存储器。而DSP中只有一个24KB的程序缓冲存储器。在OMAP中央有一个高性能的9信道系统直接内存存取器(DMA)。这个9信道DMA允许在不同的埠间传送数据,而无需ARM干涉。DMA可作业的端口包括EMIFF、EMIFS、IMIF和周边组件。在这个9信道DMA的顶端,有一个LCD控制器的专用DMA信道,它可以将数据从IMIF或EMIFF传送到LCD埠。

 OMAP组件中有品种丰富的片上外围设备,这些外围设备可分为DSP专用外围设备、DSP公共外围设备、MPU/DSP共享外围设备、MPU公共外围设备和MPU专用外围设备,其中有些外围设备只能用于DSP或ARM,其它的则可由二者共享。有了这些外围设备,OMAP组件就可以和各种各样的储存媒介接口,例如多媒体卡、SD卡、SONY记忆卡以及各种符合串行接口标准的内存。此外,OMAP还能作为一个USB1.10主控器,因而基于OMAP的组件就可以直接利用打印机打印相片,而无需接一台PC机。

 OMAP内部框架

OMAP中的两个核心透过几组外围设备总线存取周边组件。注意,每一个核心都有专用的外围设备总线,这些总线又与其它总线连接,以实现组件内完全互联。核心对外围设备的存取就是这样控制的。例如,MPU桥和DSP专用外围设备间就没有外围设备总线连接。有一个外围设备很值得注意,这就是共享外围设备组中的邮箱外围设备。这些邮箱既可以透过MPU存取,也可以透过DSP存取。这种基本用法的目的是为了方便在处理器内进行通讯。每个核心都有专用邮箱,这些邮箱可以用来给另一个核心发送消息,也可以用来产生中断。

 OMAP软件概述

前面我们从整体上讨论了OMAP的硬件结构和外围设备,现在我们来讨论OMAP处理器的软件开发平台。OMAP的软件结构是按几种风格来设计,可以满足从系统开发商、多媒体引擎开发商到DSP算法开发商的全方位的需要。下面我们将从一个高级系统开发商的角度来解释该软件结构。

 尽管OMAP是一个双核心组件,但基于ARM的用户并不需要知道组件中还有DSP。他们可能希望开发环境仍与单核心处理器时的开发环境相同。应用软件开发商也会希望在一个特定的商作为业系统下开发其应用软件。换句话说,他们希望将DSP完全抽离出来。于是,为了使组件中DSP的存在变得透明,TI导入了DSP桥和多媒体引擎(多媒体网络网关)的概念。DSP桥为ARM和DSP设立链接,可将其看作同时存在于两个核心中的软件层。这里不详细讨论DSP桥的具体细节,但应该知道,DSP桥主要用来向ARM上执行的多媒体引擎导出一组API,以便其存取DSP资源。而多媒体引擎则向应用软件导出一组标准API,这些API正是应用软件开发商所熟悉的。

 在DSP端,DSP桥用于管理DSP资源和数据流,并向DSP算法提供接口。DSP上执行的算法可以是自行编制的,也可以是由专业算法设计商大量提供的现成算法。在大多数多媒体组件中,系统复杂度日益增大,开发日程也日渐紧缩,因此开发商更倾向于购买第三方软件设计商提供的算法,而不愿仓促地自己编写。

 对系统开发商而言,将购买的算法与自编算法整合在一起是一项非常艰巨的任务。不同的算法开发商都会有他们自己独特的编写算法的方式。这其中还包括对I/O接口和内存的不同用法。因此,在系统开发中,时间更多地被耗费在将不同厂商开发的算法整合起来,并力求使其合作顺利,不出差错。如果管理者决定为了增加产品功能而购买更多的算法,那么情况会更糟。为了克服这一致命弱点,TI首先发起并开始领导一项算法标准定义工作,以管理DSP算法的编写方式,并力图使DSP算法具备类似‘即插即用’的特性。这就是eXpress DSP算法接口标准(eXpress DSP Algorithm Interface Standard),简称为xDAIS[2]。

 XDAIS兼容的算法将按照一系列的规则设计,以便能够在系统中实现无缝整合。欲了解更多更深入的xDAIS情况请参看http://dspvillage.ti.com上的白皮书。下面回到我们的讨论主题,DSP端的DSP桥为xDAIS兼容的DSP算法提供一个接口,我们称其为节点。图1中详细描绘了OMAP的软件结构。

 DSP桥内的资源管理器(RM)上存有一个数据库,库中存放了DSP上所有节点的信息。当某个应用中涉及多媒体处理任务时,RM会在DSP上为其制作一个节点,然后向ARM申请内存。一旦主机得知该节点的存在及其提出的内存要求,ARM就会针对这个多媒体任务初始化该节点。接着,RM开始执行应用,于是DSP中的节点就开始执行多媒体任务。没有数据时DSP是不会开始进行处理的,对DSP桥而言也是如此。当ARM决定停止该任务时,它会发送一个指令以释放DSP上的任务节点,然后DSP就将释放该节点占用的所有内存资源。这就为执行其它任务留出了空间,同时也方便了动态图像加载类系统的实现。

 在开始执行一项多媒体任务时,应用软件开发商只需完成一个他们很熟悉的函数调用,例如PlayMp3(song.mp3),系统就会播放MP3歌曲。其它的一切都由多媒体网络网关和DSP桥处理。OMAP中采用了一种三步型软件模型,即制作、执行和删除。有关网络网关的三步型软件模型的概要可参看图2。

 OMAP的结构将软件开发商分为三种:应用软件开发商、DSP算法开发商和多媒体引擎‘中介软件’开发商。应用软件开发商着力于设计和实现传统的操作系统应用,而DSP算法开发商则设计和实现xDAIS兼容的讯号处理算法并完成实时DSP处理任务。最后,‘中介软件’开发商则致力于将各种DSP算法整合在主系统/DSP系统,并使它们成为应用软件设计商的可用材料。

 OMAP和现有多媒体处理器的比较

市场上还有一些处理器与OMAP有类似的功能,例如英特尔的Xscale处理器和摩托罗拉的DragonBall处理器。这三款处理器中均包含一块ARM处理器。与具备复杂指令集算法(CISC)结构的处理器相较,这三款处理器能提供更加方便的配置以支持各种I/O需求。我们可以藉由研究这些ARM处理器的内部结构来更清楚地探讨他们之间的差异。

 英特尔XScale(PXA250)是一款基于高性能低功率StrongARM 2系列处理器的增强版的处理器。StrongAR 2最初由ARM和Digital Equipment公司联合开发,如今英特尔也有此类产品。英特尔的ARM处理器Xscale属于第五版ARM系列处理器,它是我们谈到的这三款处理器中缓冲存储器最大的一款,内有32K字节的指令缓冲存储器和32K字节的数据缓冲存储器。此外,英特尔这一款基于ARM的处理器内部还有一块工作频率可达400MHz的DSP。

 OMAP5910处理器内有一个ARM9TDMI 3(第四版)核心,TI利用TI925T增强了其控制功能和高级OS功能,因而该处理器能提供很高的处理能力而不会牺牲电池寿命。该处理器既支持32位指令集也支持16位指令集(Thumb 4模式),内有一个16K字节的指令缓冲存储器和一个8K字节的数据缓冲存储器。此外,处理器内还有一个带64信道的转换后备缓冲器(translation look-aside buffer)和17字写缓冲的内存管理单元,既可管理数据又可管理程序。

 摩托罗拉DragonBall(MC9328MX1)处理器则内含一个ARM920T(第四版)处理器,该处理器也是在ARM9TDMI核心的基础上设立起来的。MC9328MX1也支持32位和16位两种指令集模式(Thumb 4模式),内有一个16K字节的指令缓冲存储器和一个16K字节的数据缓冲存储器,这个数据缓冲存储器比TI OMAP的大。同时,MC9328MX1与OMAP5910类似,也有一个内存管理单元。

 TI OMAP的强项就在于他具备全面的硬件加速器,可处理视讯、图像、音讯和语音应用。而且,OMAP中还采用一块专用DSP以应付手持式应用中的讯号处理需求。毫无疑问,基于ARM的处理器当然也能进行快速的乘法和加法运算,但这些处理器并不具备循环缓冲、位反转、平行移位和硬件循环等针对DSP的寻址功能,这就使其在代码最佳化方面处于严重劣势。此外,OMAP处理器C5000上可用的DSP应用软件也比基于ARM的处理器多。

 以上谈到的这三个公司在处理器的设计上也采用了截然不同的方案:TI采用了DSP协同处理器来增强组件中DSP的功能,英特尔采用了具备增强的DSP性能的单RISC处理器,摩托罗拉则采用了多媒体加速器来加速那些基于DSP的应用的执行速度。TI在设计处理器时考虑了两组开发者:应用软件开发商和DSP软件程序员。这种考虑就使得不同的软件供货商能够各自提供应用程序和软件,由Code Composer Studio在这些不同的开发平台间提供桥接,因而实现应用程序及软件之间的对接。英特尔和摩托罗拉则不同,他们依靠一个通用的开发平台来实现其应用。这种统一的开发环境有它的优点,它提供的代码比TI的双重编程环境简单。但随着Code Composer Studio(CCS)最新版本的发布,双平台编程方式开始变得越来越完整,而且它能够比统一开发平台更加方便有效地区分RISC和DSP的代码。

 处理器的功能是由支持它的工具箱决定的。OMAP具备完善的DSP工具箱(包括编译器、汇编器、链接器、加载器、具有高级图形显示和探测特性的除错器、芯片支持库和DSP/OS)、库、DSP算法标准和第三方软件网络的支持。同时,OMAP还解除了软件开发和管理,以及利用平行除错管理器(PDM)对应用软件和DSP软件进行除错这三者之间的相互依赖性。

 从传统的硬件和软件设计看来,在现有的处理器基础上建构一个新的设计通常比重新去设计一个处理器更具吸引力。我们前面讲到的这些组件都是在已经成功应用的处理器基础上建构的,也就是基于ARM的组件和DSP。OMAP为将传统的基于DSP的产品整合在嵌入式系统中提供了新的思维。C55x处理器的高MIPS、低成本和低功耗已经使其成为一款成功的并获得广泛应用的DSP芯片。将它与ARM925整合后又构成了一个综合了RISC和DSP优点的开发平台,因而能够非常有效地处理数据和讯号。

 这三款多媒体处理器所附带的外围设备控制器总的来说基本类似,这主要是因为他们所采用的基于ARM的RISC处理器所提供的支持特性基本相同。但不同的是,OMAP中的C55x处理器还能提供对McBSP、DMA控制器、中断处理器、定时器等外围设备的独特的支持,因而OMAP能够支持更多的I/O组件,在今后的应用中扩展空间也更大。

 OMAP的应用前景

OMAP可以用来开发和扩展手机的功能,使其包含多媒体应用功能,然而OMAP的功能决不仅限于开发手机,许多用传统的处理器无法实现的应用都可以用OMAP来实现。OMAP的推出,使许多激动人心的应用开始浮出台面,有待人们开发。图4中列出了一些可以用OMAP实现的应用。这些应用不但要求强大的处理能力,同时也要求低功耗,而OMAP独特的硬件和软件结构恰好能够满足这些要求。不仅如此,OMAP的独特性还使得这种开发具有更大的潜力。

 参考文献

 [1] Texas Instruments, "OMAP Data Manual", Literature Number SPRS197, June 2002

[2] Texas Instruments, "The TMS320 DSP Algorithm Standard" Literature Number SPRA 581, Nov 2000

 致谢: 作者要感谢Kwee-Song Lim先生(德州仪器新加坡市场主任),是他鼓励和建议作者完成本文。

作者:Francis Kua   更新日期:2005-03-29
来源:eettaiwan.com   浏览次数:

相关文章

相关评论   发表评论