从MP3到高清电视的多媒体处理器架构

来源:百度文库 编辑:神马文学网 时间:2024/04/27 21:37:29

从MP3到高清电视的多媒体处理器架构


发送     打印

");//--> 日期:2007-06-19
作者:Marco Jacobs

目前,多媒体设 备的范围非常广泛:从儿童使用的价格不到20美元的MP3播放机到屏幕尺寸几乎和电影院里差不多的家用平板显示器。在先进的电视机上显示图像意味着需要对 高清分辨率的H.264比特流进行解码,所需的处理器马力要比解码MP3文件所需马力高3个数量级以上。这种处理能力不对等的另一个例子则是照相手机和摄 像机的比较。手机所拍的图像视频为QCIF (176x144)格式,而目前的摄像机的视频格式则为HD MPEG-2。这些格式对设备的视频子系统的处理能力的需求差别极大。对于SoC设计师来说,如果能够保持处理器基础架构不变将是非常有益的。否则,如果 需要重新设计来满足如此宽的应用范围中的每项设计应用需求,必将导致更高的设计成本及更长的上市时间。

消费者可能想在不同设备上播放和共享内容。绝大多数人已经拥有多套多媒体设备,如电视机、机顶盒、DVD机、手机、电脑、PMP等。未来 设备的一个重要能力就是能够在这些设备之间传输和/或转移内容。在这些极其不同的设备之间需要具有互操作性。由于所用的音视频编码标准有很多,互操作性要 求基础多媒体处理架构具有可编程性。然后在软件中编入编码标准,从而使得终端设备灵活并能实现升级。

可编程性同时也意味着可以对影响音频和 图像质量的关键算法进行升级——即通过升级使其具有所需的功能,这是因为工程师不断地研发用来提高音频和图像质量的新方法,事实 上也正是这些语音和图像质量使得其产品具备与竞争产品之间的差异化。可编程性同样也使得器件制造商进一步实现产品差异化,可以为用户提供不同的SoC使用 方法,降低流片风险,并延长产品的市场寿命。

结果,多媒体处理器架构必须覆盖很大范围的复杂度并能够软件可编程。ARC Vraptor采用了特殊的多核方案:多个高性能处理器被连接到多个SIMD处理器和多个DMA引擎,还采用了面向不同域的加速器。所有这些都带有低开销,低延迟的通信信道和本地宽带数据总线。


图1:ARC VRaptor 多媒体处理器架构。

并行多媒体处理

对于可提供的实际时钟频率来说,当需要比一个单处理器的能力还高的性能时,并行处理是 加速的唯一方法。但是,Amdahl定律告诉我们,只有算法的一部分可以并行,而有些部分是不能并行的,因而最终的加速系数,并非并行处理器的数量。极少 应用可以容易地实现全并行,通过增加处理器就可以实现系统性能的线性加速。而现实中的多媒体应用的并行处理可以涉及到全过程:并行得到的好处不但非微不足 道,而且肯定可以大大地增加效率并改善性能,如果并行处理得好的话。在为所运行的应用设计一个好的子系统之前,设计师应该仔细地分析这些应用的性质,看一 看如何将这些应用分配到各个处理单元中。

视频和图像算法通常容易实现并行处理;一幅图像的左上角的像素与一幅图像的右下角的像素关联很少,故可以独立进行处理,因此处理可以并 行。在一幅简单图像的获取和显示过程中,处理的情况是这样的:从图像获取阶段基本上都是并行处理,到视频压缩/解压缩的信息墒编解码阶段变成完全串行处 理,然后再返回到显示器上像素的全并行处理。显然,需要一个既擅长串行处理又擅长并行处理的混合处理器架构。

像MPEG-2这类视频编码标准处理的数据块为8x8,而更新的一些标准,像H.264和VC-1,则采用颗粒更细的4x4数据块。另一个 例子是H.264的许多预测模式,这些模式利用某像素数据与相邻4x4数据块之间的关联性并引入相关性。靠近镜头和显示器两侧的处理趋势是追求更细的颗粒 度。自适应算法被广泛采用,算法中滤波器的选择取决于周边像素值,等于又一次引入相关性。

精细的粒度意味着通信事件之间需要的计算量较小,这使得有效的通信机制至关重要。ARC公司VRaptor架构的SIMD引擎设计用于自动实现超细粒度,而VRaptor架构的工作信道为处理引擎中的同步和通信提供一个有效的手段。

除并行之外,还有另外一个轴,沿着这个轴能够使操作得到优化和加速。除了将应用分配到一系列处理引擎上,与此同时还可以将每个处理或数据转 移单元配置到最适用于并行任务。VRaptor架构没有采用通常的方案,即一个处理器可以适用于所有任务的方案。而是采用了与通常不一样的方案:其处理架 构由一组处理引擎和数据转移引擎组成,每个都只适用于特定的任务,故对其进行配置使其完成所适合的任务。这些引擎在一个数据流水线中一起工作。下面将继续 描述VRaptor架构中每个处理引擎的具体功能,但要首先快速地看一下位于配置核心的配置工具——ARChitect。

ARChitect处理器配置

使用ARChitect时,设计师可以通过ARChitect工具的拖放式GUI来加入应用中所需要的功能,并去掉应用中不需要的功能。在 ARChitect中有20000多个处理器内核配置选项,包括内核周边的功能选项,例如高速缓存的类型和容量、紧耦合的存储器、存储器管理单元、中断、 DSP子系统、计时器和调试部件等;也包括核内部的功能选项,例如寄存器的类型和容量、地址宽度、系统接口、指令集选择和客户定制扩展。性能和芯片尺寸之 间的折衷很容易实现,从而导致一个最佳方案。最终的结果是比固定架构的内核体积更小,功耗更低。在ARChitect中,设计师也可以为系统设计来选择、 增加和配置所需的软件编解码,硬线加速器,以及DMA引擎。

在部件被选定并配置好后,轻轻一点就可以产生RTL,软件工具(仿真器,编译器,代码连接器等)以及EDA工具脚本。ARChitect一开始被设计用来配置ARC自己的IP,不过现在也被其他半导体生产商用来配置他们的IP。


图2:ARChitect 系统配置工具。

可配置的RISC处理器

ARChitect架构基于ARC700可配置处理器核系列。这些核比较节省硅片,性能好,并能定制和扩展以适合所需的特定应用。 ARChitect架构有很多等级,从一个单ARC710D CPU到多个可配置的ARC750D CPU,每个CPU都带有多个多媒体处理器,多个加速器和多个I/O设备。

最小的配置小于0.5mm2,采用90nm工艺,存储器除外。每个处理器从一个ARC750 CPU架构的基本配置上扩展,确保与ARCompact ISA的指令级兼容性,并允许采用与支持其它ARC子系统和处理器相同的工具集,包括MetaWare,,Green Hills和GNU工具,所有这些工具都提供广泛的建模(profiling),调试和汇编支持。通过平衡往ARC700 CPU增加客户指令扩展的能力,ARC客户可以利用其深入的应用经验对VRaptor架构的部件进一步优化,并进一步实现其产品的差异化。

SIMD引擎

与ARC视频子系统类似,VRaptor架构利用一个单指令、工作在128位数据向量上的多路数据(SIMD)多媒体处理器来扩展 ARC700 CPU系列。操作数来自一个专用的向量寄存器文件,可以组织成4个32位单元,8个16位单元或16个8位单元。SIMD处理器通常采用与ARC700 CPU相同的时钟频率,并具有两种工作方式:一个是只简单地扩展ARC700 CPU系列流水线的紧耦合方式;另一个是松耦合方式。在松耦合方式中,SIMD处理器与ARC700 CPU架构并行,并高效率地独立工作。

SIMD处理器利用跳转和分支指令实现了全控制能力。精细的并行决策机制利用预测执行提升了代码性能。利用一个进取型的正向数据网络提升 了流水线效率,从而减少了关键路径和运算。SIMD指令集全正交,并具有从各个用于所有指令和额外的转移指令的标量寄存器广播数据的能力。先进的多媒体处 理器功能允许ARC VRaptor架构的SIMD引擎通过从ARC700系列的CPU上卸载低级控制代码来释放ARC700系列处理器,使之用于系统管理和数据流管理。 VRaptor架构允许用一个ARC700系列的控制处理器来控制多个多媒体处理器。

多媒体DMA处理器

VRaptor架构采用了一个多媒体增强型2D DMA控制器转移数据出入系统。它们独立地转移数据,从而释放了处理器,使得处理器能够专注于计算任务。ARC以视频为中心的DMA被优化来转移视频编码 应用中常见的2D数据块。紧耦合的2D DMA引擎转移以非常高效率的方式设置和运行,通常只需一个单指令。由于视频数据转移以较小的突发数据串进行,这对降低开销来说非常重要。例如, H.264标准要求抓取许多4x4像素数据块,因为要按这个粒度进行运动补偿。多媒体DMA有许多通道以便允许参考帧输入数据块和被解码的像素数据块能并 行设置和操作。处理器引擎也可以通过共享的宽带存储器来直接共享数据。DMA处理器被特别设计用于处理器和系统存储器之间的数据转移。

特定域扩展

VRaptor架构可以利用特定域加速器进行无缝扩展。典型地,这些扩展能够实现大数据块处理,以便在ARC700 CPU或SIMD处理器上运行,不过若以一个固定的硬件模块来实现这些处理块效率要高得多。VRaptor 架构包括多标准可变长度的解码器和编码器。由于数据的相关性,这些信息代码块不能并行,又由于大量的查找信息在一个小表里,所以符号的编码和解码按硬连接 扩展的方式来实现将效率更高,不过为了满足多视频编码标准,编码和解码应保持足够的灵活性。

运动估计是另外一个领域,这里,绝对差运算的重复简单求和需要大量的数据重组和转移,并执行大量的数据。尽管在一个VRaptor架构 SIMD引擎上能够高效率地实现这类的运动补偿算法,但仔细的设计探索和折衷证明了按硬连接扩展的方式来实现视频编码的运动估计具有明显的优势。在探索硬 连接扩展的设计空间与全部可编程块的比较时,ARChitect自动地配置软件和编译工具,使得他们与所选的系统架构相匹配。这就使得系统设计师能够在不 需要调整或改变手头上软件的条件下快速地对性能和实现结果进行测试。

工作通信信道

32位工作通信信道是处理引擎通信的工具。工作通信信道开销低,处理器间的通信延迟小,这些对于实现需要精细粒度通信的视频和音频应用来说 都是至关重要的。处理器引擎之间的共享数据存储器允许进行本地的、高速的、以及宽带数据通信。正在申请专利的ARChitect多媒体架构中的工作通信信 道技术是一套基于远程调用的工作信道协议。它提供多个VRaptor核、VRaptor加速器以及VRaptor I/O单元之间的点对点硬件链路、承载命令以及变元(arguments)。对于增强性能,信道被缓冲而输入进行排队。因此发送器和接收器在发送和接收信 息时不需要“及时集中数据(rendezvous in time)”。工作通信信道能够使发送器明白无误地更新接收器中的寄存器。依赖于发送器能够直接写函数变量寄存器,然后再写送往程序计数器的 远程函数入口点,这就允许非常高效的远程方法调用(即一个远程过程调用)。从接收器来看,该操作所用的时钟周期与本地调用一样多,故效率是非常高的。


图3:VRaptor 处理架构中的工作通信信道。

工作通信信道技术受到ARC可配置ISA中的指令扩展的直接支持,从而省去了信息解释开销。它提供一个统一的编程模型,从而精简了通常与多处理器架构相关的编程开销。

基于VRaptor架构的系统

目前有两个多媒体子系统,每个都包括绝大部分的VRaptor功能。ARC视频子系统是一个用于标清分辨率的多标准视频解码解决方案。它包 括一个ARC700类处理器,一个为视频编码应用优化的SIMD处理器,一个2D DMA控制器,外加一个信息解码加速器。ARC语音先进子系统瞄准的是高保真的语音产品,例如汽车娱乐系统和高清光盘播放机。其配置与ARC视频子系统相 类似:一个ARC700类处理器,一个为语音编码应用优化的SIMD处理器和一个DMA引擎。基于VRaptor其它子系统很快就会发布。

本文小结

ARC VRaptor多媒体架构正在用ARC的新一代多媒体子系统来实现。能够全部利用所有架构功能的初期产品已在今年初向全球的SoC设计师提供。基于 VRaptor架构的系统具有可升级性,低功耗,节省大众市场产品所需硅片面积,同时保持了可编程性。具有工作通信信道的VRaptor的特殊混合方案, 为ARC公司解决未来的从高保真到高清领域的音频、视频和图形应用打下了坚实的基础。