怎样选择嵌入式媒体处理器

时间:2007-11-27

      选择一片多媒体应用处理器是一项复杂的工作。为了做出的选择,需要先做好以下准备。

      ● 全面地分析每个候选处理器的内核结构以及外围设备。
     
      ● 扎实地理解视频和音频数据如何流过系统。

      ● 评估在规定功耗条件下可达到的处理水平。

      选择嵌入式媒体处理器的常见问题

      开始选择之前,还需要仔细地考虑以下一些问题。一旦能够回答这些问题,你就能选择到适合的处理器了。

      1 应该只使用我喜欢、熟悉的处理器吗?

      我们究竟为什么要从一个系列的处理器换成另一个系列呢?常见的原因是你现在的应用比之前的应用对处理器的要求更高了。如果应用要求一下子提高了很多,那么你就可能不能够继续使用同一系列的处理器了。例如,适用于音频应用的处理器系列通常不包括适合于视频应用的外围设备。类似地,如果你以前的处理器只能处理低分辨率(低帧频)的视频,那么你可能需要将处理器换成适合于高分辨率、高帧频速率的处理器系列。

      2 需要利用处理器的数据做些什么?

      这个问题关系到评估处理器的性能。当系统设计工程师评估一个处理器性能的时候,要分析的项指标就是处理器每秒钟处理的指令数,即在每个处理器时钟周期内完成的操作数和计算单元的效率。由于人们对处理能力的要求超出了处理器内核技术的进步速度,到了关键点用单个处理器已经不足以完成某些应用。这是考虑使用双核处理器的原因之一。增加一个处理器内核不仅能够有效地加倍处理器的计算能力,还能增加软件跨用两个内核的灵活性,双核处理器的功耗甚至低于双倍频率运行的单核处理器。

      3 从哪些不同的角度评估处理器?

      有很多种用来比较处理器的基准评估程序。然而,不同的供应商倾向于使用不同的评估方法。此外,对于任意给定的应用都有很多方法可以实现,因此通常哪种性能基准程序是“对的”并不明确。这样就很难客观地度量候选处理器的性能差别。因此,从以下几个不同的角度评估处理器的性能。

      ● 中立的评估机构——这些公司或者协会试图为具体任务公司创造客观的基准评估程序。

      ● 供应商提供的资料——供应商提供的技术资料、应用笔记和代码示例可能是获取比较信息的简单的方式。然而,不幸的是你将很难找到两家供应商使用统一的测试方法,这很大程度上是由于每个供应商都想让自己的处理器超过竞争对手。

      ● 基准测试程序——如果你想得到正确的结果,自己测试!你可以在处理平台上进行一些基本性能测试来获取数据流限制、内存访问等待时间以及处理器瓶颈等信息。

      还有,你要意识到基准评估程序并不一定反应全面。有时,稍微改动算法消除潜在的不必要限制就能使性能有很大的不同。例如,对于一个定点处理器,真正的IEEE 85浮点仿真是很昂贵的。然而去掉一些限制(例如特例数表示法)就能够大幅度提高浮点仿真的性能评估,但通常并不能测出影响一个应用的功能。

      4 系统带宽够用吗?

      人们常犯的一个错误是过分简单地评估系统所需要的带宽。应当正确地分析每个具体数据流需要带宽的总和。例如,对于视频解码器,你首先要考虑解码所需要的读取数据的带宽,然后还必须考虑产生祯解码顺序所需要的各种数据通道。这可能涉及到内部存储器和外部存储器之间多个缓冲器传输。,还得考虑通向输出设备的显示缓冲器。

      分析完全部数据流之后,下一步是将这些单项带宽要求合算成总体的系统预算。切记影响系统带宽预算的几个因素,包括预期的从DRAM接入方式带来性能下降、基于内部总线仲裁的数据流限制以及其他因素。

      5 数据是怎样进出芯片的?

      一定要仔细检查处理器的外设,确保它们适合你的应用。合适的外设组合无须使用支持接口的外部电路从而节省时间和成本。当然,你可能会想改变设计的连通性,因此选择一款具有灵活且充足外设的处理器。

      6 这种处理器符合便携式应用要求吗?

      电池供电系统规定了一整套全新的应用要求。它们需要一种小封装、低功耗的处理器。通常情况下,这种限制涉及到处理器性能和功耗之间的折中,所以显然不适合多媒体应用的处理器不会有发展前景,因为这样的处理器在执行不适合它们的任务却要耗费较大的功耗。

      7 目标应用需要定点处理器还是浮点处理器?

      如图1所示,只需要少量的浮点功能的应用的设计工程师被限制在“灰色区域”中,经常被迫使用高成本的浮点处理器。然而今天一些定点处理器能够以很高的时钟速率运行,只要有合适的体系机构,就可以像浮点处理器一样工作。这种方法允许设计工程师使用低成本、低功耗的操作替代浮点运算。当然,这种方法并不适用于浮点密集型应用,但是它为设计工程师提供了“继续保留在灰色区域”中的诱人机会。     

  
8 系统以后可能需要改变还是永远不变的?

      如果有可能需要改变系统以便适应新的媒体格式、用户界面功能等类似的变化,那么我们就可能需要可编程器件(如DSP、MCU或者FPGA)。如果系统要求固定并且改变的可能性很小,那么固定功能的专用集成电路(ASIC)应该是合适的选择。

      9 需要操作系统吗?

      由于需要开发工具,许多开发商都需要操作系统(OS)。如果一个公司有很多应用都基于一个特定的OS,那么其必然有强烈的动机来选择一个支持其OS的处理器。如果你可以随便选择OS,那么需要考虑以下一些因素。你可能需要一个低时延、支持多任务处理,或者允许多个用户同时访问系统的处理器。相反,如果只需要提供基本的服务,那么只需要一个轻量级的OS。当然,许多应用根本不需要OS,因此这一直不是主要考虑的问题。

      10 怎样利用处理器开发?

      这是个非常重要的问题,因为一套强大的开发工具能够显著地提高生产力、缩短开发和调试时间。重要的是,我们要知道这个问题像取决于终应用一样取决于具体开发商的需求。许多公司利用某种开发工具包已经建立起了经验数据库,并且可以按照他们的意愿建立大型的代码库供其使用。

      当你换到一个新的处理器平台的时候,这些开发工具就变得特别重要。例如,一个强大的C/C++编译器能够很容易地将已有的源代码转移到一个新的平台上,而且有多种优化选择(如速度、功率或者代码密度的优化)能帮助设计工程师实现他们的开发目标而不用花很多精力掌握处理器指令集和结构的要点。

      11 如何快速验证软件算法?

      如前所述,用C或C++写的代码可以很容易地移植到一个新的处理器上。移植C代码的主要问题是外设代码通常对于每一系列处理器是不同的。不过,如果代码使用设备驱动,可以简化代码变换,因为驱动去除了具体的外设操作。
     
      此外,当你进入新的嵌入式媒体处理器时,你应该检查有什么可用的功能可以帮助你以更高的抽象度进行编程。工程师在原型设计阶段长期使用MATLAB/Simulink(Mathworks公司)或者LabVIEW(National Instruments公司)。这些工具能够生成代码实现一些嵌入式目标。由于这些开发工具容易建立硬件原型所以支持选定的媒体处理器。此外,这些开发工具在将原型转化成产品方面已经有了长足的进步。

      12 如何轻松地建立一套完整的原型系统?

      你还应该考虑评估硬件。评估工具套件能够评估所有外围设备吗?如果不能,那么你终可能需要搭建专用硬件来测试外设。评估工具套件能够与其他你感兴趣的评估板一起使用吗?例如,Micron和Omnivision公司提供能够测试他们照相机的CMOS传感器评估板。你也能把这些功能加入你的评估套件吗?

      13 愿意花多少钱?

      这是一个重要的问题,但是你很可能得到一个错误的答案,除非你考虑了整个系统的设计成本,即你需要考虑:处理器本身的成本、对支持芯片的需要、封装的选择以及可提供额外的一些处理能力为将来提供更大的扩展空间。

      14 能够将同一供应商的其他设备用于我的系统吗?

      当你选择处理器的时候,你同时观察一下你的系统信号链。处理器供应商是不是还销售连接处理器的外设?通常情况下,购买同一个供应商的多个系统元件。

      了解各种处理器

      为了帮助你做出比较明智的选择,让我们再总结一下可使用的基本处理器,包括:专用集成电路(ASIC)、专用标准产品(ASSP)、现场可编程门阵列(FPGA)、微控制器(MCU)、数字信号处理器(DSP)、DSP/MCU 组合(分立或合一解决方案)。

      1 ASIC和ASSP

      固定功能的ASIC/ASSP是特定的嵌入式媒体处理应用的一种的解决方案,这些特定应用包括想要终在市场上获取成功所必须的精密外围设备。不过,其有限的灵活性阻碍了其适应新功能和不断发展的需求能力。这种灵活性的缺乏反过来又限制了客户的选择,因为单独录音机或者播放器需要有处理不同媒体格式的能力。

      2 FPGA

      与ASIC相比,FPGA的开发速度更快,因此就缩短了产品的上市时间。然而,FPGA与可编程处理解决方案和ASIC相比体积大、价格贵而且功耗大。因此,FPGA通常不用做便携式多媒体应用的主处理器,而通常是原型设计的选择,或者用在功耗和价格都不是主要选择标准的终系统中。

      3 MCU

      32位 MCU在嵌入式媒体处理领域是的。要了解其越来越受欢迎的原因,首先应了解8位MCU在这些领域中并不具备保证实时操作所需要的带宽和计算能力。这并不是说8位MCU没有用,相反它们在从汽车到照相机等多种市场中很受欢迎。它们主要的卖点是超低功耗、超小封装、优良的代码密度和非常便宜的价格(远低于2美元/片)。

      逻辑上似乎16位MCU(起价约为2美元/片)应该替代8位MCU,然而16 位MCU通常缺乏处理多媒体处理器所需要的能力。此外它还受到存储器寻址范围小的限制。

      在嵌入式媒体处理器应用中,MCU可以起到很多不同的作用。对于低端系统它们可以作为单系统处理器,主要进行视频解码、中等显示分辨率(通常为QVGA或者低于QVGA)的显示以及比较简单的视频格式(如MPEG Simple Profile,不能处理H.264)。对于中系统,需要一个DSP或者其他合适的处理器来处理高清晰度和更复杂的格式。不过,在这些应用中MCU仍然可以用作系统控制器,运行一个操作系统并且管理整个系统的任务。此外,由于其丰富的外设组合,它们通常有助于连接媒体处理器和外部世界。

      4 DSP

      DSP适合用于数据缓冲器中高性能数据处理,如在多媒体应用中流行的数据搬运。为了达到DSP的性能目标通常需要编写优化的汇编代码,因为DSP算法通常装在小型、低时延内存中,代码密度通常不是首要考虑的因素。

      5 分立DSP+MCU

      在多媒体处理领域,DSP并不是理想的独立处理器。它很适合数学程序,而不太适合监视控制。因此,基于DSP的多媒体处理器通常要依赖速度比较慢的MCU(更适合控制)来提供诸如用户界面和OS等功能。

      现在出现了将MCU和DSP合并到一个系统设计方案的不同方法。对于初学者,你可能总是使用分立的DSP和MCU芯片来设计。虽然这样的成本比较高并且会占用相当大的印制电路板面积,但是可以根据系统需要灵活地选择每颗芯片的尺寸。另外,有一些芯片制造商采取了不同的多内核方法将分立的DSP和MCU处理器封装在一个模块内。

      MCU和DSP采用分立方案有几点好处。,DSP和MCU的开发商只需要各自完成自己的设计。

      第二,MCU和DSP开发团队分开的原因是两种处理器有着两种不同的指令集。

      然而,“DSP+MCU”合一方案有一个缺陷,就是很难化分MCU控制功能和DSP计算功能。

      与快速32 位MCU并行发展的一个新兴趋势是推动整合更多DSP功能的发展,如将MAC单元合并到MCU中。然而,这个想法只适合用于简单信号处理应用,因为MCU的时钟速度和运算体系结构从根本上并不能很好地适应多媒体数据搬运速率的要求。因此,这些“增强DSP”的MCU并不是适合媒体处理应用的理想平台。

      6 会聚处理器

      “会聚处理器”兼备了MCU和DSP的功能。尤其应该知道的是,会聚处理器并不是增强控制功能的DSP,也不是扩展DSP功能的MCU。会聚处理器适合实时多媒体数据流的运算和完成控制任务两种功能。ADI公司的Blackfin处理器就是这种体系结构的典型例子。

      与DSP类似,会聚处理器通常具有高时钟率和每处理单元低功耗(mW/MMACS)的特点。

      会聚处理器也能简化开发过程。相比之下,会聚处理器允许利用单一工具链在一个统一的平台上开发代码。因此,开发商只需要掌握一种指令集并且保存一种代码库在一种OS上运行。

      总之,为嵌入式媒体处理系统选择合适的处理器有多种方案。通过选择嵌入式媒体处理器常见问题的解答和对每种处理器各自优缺点的了解,会帮助你做出一个能取得终成功的明智选择。



  
上一篇:用16位ADC取代低性能嵌入式数据转换器
下一篇:针对嵌入式市场的串行 RapidIO交换器

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料