用于系统级芯片集成的各种处理技术方案评估
扫描二维码
随时随地手机看文章
带有多个处理单元的SoC器件目前是产品设计链上的重要一环。本文综合各种因素评估了不同处理单元的优缺点,并通过卫星无线电接收器的设计实例帮助开发人员理解SoC所涉及处理任务之间的复杂平衡并有效掌握系统功能的划分。
在准备开发目前越来越复杂的便携式系统时,设计人员面对的最大挑战之一就是采用什么样的处理器组合来实现最优化的“3P”指标,即系统性能最高、价格最低及功耗最小。系统级芯片(SoC)集成使得今日的创新成为可能,但它常常涉及把不同的处理器单元结合在单一的器件之上。这些单元可以包括可编程功能,如通用微处理器(通常是RISC)、DSP、FPGA和加速器,而且还可能有固定功能的加速器。由于这些单元都可以专用器件形式获得,因此对设计人员来说,在它们之中进行全面的性能评估,进而决定以最有效的方式组合使用它们,有可能是一项相当困难的工作。
处理单元的优缺点分析
在实现多内核处理器之前,在RISC和DSP之间进行挑选曾相对较为简单。如果大量的系统处理工作和数据有关,那么采用RISC,即使信号处理会受些损失。如果大量的处理工作和信号有关,那么采用DSP,并力争获得差强人意的控制和数据处理性能。但对多内核集成而言,考虑到要添加其它处理单元,这类选择变得非常复杂。正确的答案不完全是技术性的,而是要基于优化灵活性、便于使用、成本、功耗和性能多方面来考虑。
各种处理单元的基本优点和缺点概括在表1之中。通用RISC处理器专为数据处理而优化,很容易使用而且很灵活,其成本、功耗和性能都可接受。DSP为实时信号而优化,它们处理实时信号所需的功耗和成本通常比RISC低,不过,它们常常更难使用。
可编程加速器或半可编程处理器可设计用来数据或信号处理。一个例子就是用于通信系统的Viterbi处理器,对Viterbi编码或解码来说它是完全可编程的,但对任何其它功能来说毫无用处。就其功能而言,一个可编程加速器的成本、功耗总是比RISC或DSP要低,而性能要高,但从本质上讲,它稍欠灵活、更难使用,而且对缺陷(bug)的容忍度低,不容易更改。
用于数据或信号处理的固定功能加速器(一般为ASIC)只能完成一种特定的功能。固定功能加速器总是一种成本最低、功耗最低、性能最高的解决方案,但它们缺少任何程度的灵活性。一旦ASIC设计出来并调试通过,到了系统开发人员手里,它会变得非常易用。但是其设计和调试与可编程器件相比非常困难,而且以后不可能进行再编程。
划分系统处理功能
尽管在各种处理单元之中做决定是一件复杂的工作,但有一个可行的选择程序,就是把各种系统功能划分到各种处理单元之中。把一个系统的处理需求映射到一个现有的多内核SoC之中,与通过映射处理需求创建一个新多内核SoC有所不同。然而,其过程是类似的。
为了把该系统映射到一个现有的SoC之中,系统设计人员必须确定该系统方案以及它所针对市场的几个细节。在这当中包括产品特性和算法组件,以及添加特性和解决bug的策略,不管是在设计期间还是在整个产品寿命期内。一旦这些细节确定,系统功能必须确定成信号或数据处理任务,随后再分成三个性质不同的类:
明确并将保持不变的功能:这些功能包括离散余弦变换(DCT)或快速傅立叶变换 (FFT),它们将不会再有任何变化,而且已问世足够长的时间,因此所有bug都已消除。这些功能使用固定功能加速器或最优化。
明确但会有一定变化的功能:这些功能有一定程度的灵活性。例如,尽管单一的FFT可以由一个ASIC来处理,但将多个相关的FFT重新组合成一系列实现方案的能力会需要一种可编程的加速器。
不确定且可变化的新功能:满足这些需求的处理器单元是可编程的RISC、DSP和FPGA。虽然设计人员也许不知道这些不确定或新特性是什么,但有必要测度应对预计需求所需的大致性能和存储器。
当系统功能已经被分解成这三大类别时,系统可以映射到一个现有的SoC器件。整个程序分成以下步骤:
1.确定最终系统完整的特性和功能清单。如果可能的话,包括对新特性和功能的估计,它们可以在采用该SoC产品的寿命期内随时加入。
2.把该特性和功能清单分成数据处理部分和信号处理部分。
3.把每个清单(数据和信号)中的功能分成三类:a.在产品的寿命期内明确并将保持不变的功能;b.在产品的寿命期内明确但允许某些变化的功能;c.不确定且可变化的新功能。
4.估计每个清单中每项所需的性能。
5.估计每个清单中每项所需的存储器。
6.分配:a.适当的明确功能给可行的固定功能加速器;b.其余的明确功能给可行的可编程加速器;c.不确定且可变化的新功能给适当的可编程器件(RISC用于数据处理,DSP用于信号处理)。
最后一步的目标是尽可能多地利用加速器,并把灵活性和裕度留给可编程单元处理。显然,对明确的、可有一些变化的和不确定功能的分配在一定程度上取决于相关SoC能提供什么硬件。把一个系统映射到一个新的SoC,而不是一个现有的SoC,有可能会引起较长的产品规划时间,所以该设计人员必须解决的问题将经常和一系列基于该新器件的产品有关。设计人员需要确定哪些算法组件更好理解,没有缺陷也不需要改变;还需要确定在整个设计期间或产品系列中,系统的哪些部分有可能改变。在涉及到功能分配(步骤6)时,一个新方案的设计人员可以非常肯定地将明确功能(步骤3的a)分配给固定功能单元,可有些变化的功能(步骤3的b)分配给可编程加速器,把不确定的、变化的新功能(步骤3的c分配给处理数据的RISC和处理信号的DSP)。[!--empirenews.page--]
SoC设计范例:卫星无线电
一个数字广播卫星无线电接收器就是一个系统如何划分并如何用一个现有SOC上不同处理单元来实现的很好例子。在美国,卫星无线电以S波段频率2.3GHz来广播,采用一个地面同步卫星提供海岸到海岸覆盖。还有一些地面中继器,它们可以在主卫星被阻断时从另一个卫星接收信号并传播出去。所用的调制系统或者是QPSK(正交相移键控),或者是针对卫星的TDM(时分多址),这取决于广播公司,而对地面站来说总是采用OFDM(正交频分多址)。
卫星无线电的主要优点是它能够向客户提供数百条无静电干扰的音频和消息信道。由于传输带宽窄,卫星无线电依靠新的感觉音频编码器(PAC)算法进行音频压缩和解压缩。PAC的某些特性,如对信道损伤有一定适应能力,使得它很适合广播无线电应用。该音频编码利用人耳的一些特性,隐藏部分信号失真,而且一旦该信号数字化,剩下的冗余通过无噪音编码被除去。因其高压缩率和优异质量,PAC音频编码已经成为一种事实上的卫星和数字无线电广播标准。图1显示了一种卫星无线电接收器架构。
在信号输入端,卫星调谐器把2.3GHz载波转换成基带信号,模数转换器再将其数字化以便处理。随后进行QPSK解调,信号完成Viterbi解码。一个编/解码器与该系统的模拟音频输入和输出接口。一个FPGA提供接口逻辑以产生硬驱动和紧凑型闪存所需的合适信号。一个专用器件输出NTSC视频,这是流视频应用的一个高级特性。
在SoC中划分功能
在这个例子中,系统的核心是一个双处理器OMAP器件通过高性能和低功耗之间的平衡,这种150MHz的OMAP器件把一个DSP内核同一个加强型ARM925T RISC处理器集成在一起。其它的特性包括一个SDRAM存储器接口和许多外设接口,它们同外部无线电基带处理器和外部音频编/解码器兼容。
因为OMAP器件设计用于同时处理多个多媒体任务,所以它很适合卫星无线电应用。一般来说,多媒体功能丰富的器件由许多音频和视频压缩/解压算法组成,它们需要广泛的数??算。对这些运算来说,OMAP上的DSP比RISC更适合。比较这两种处理器的标准测试程序有很多种,从一个算法到另一个算法变化很大,但平均而言,RISC完成相同信号处理运算的周期数是DSP的三倍。由于RISC管理系统控制和数据任务一般比DSP更有效率,因此这两种处理器的功能可以互补。
该DSP完成的主要信号处理任务之一是:在卫星信号阻断因而系统切换到地面广播时,对输入进行OFDM解调。OFDM解调器需要运行FFT和反FFT算法,这对运算密集型的DSP来说很合适。该DSP还解压传输来的PAC编码信号,而ARM内核则对PAC数据进行解密。该DSP的其它功能包括为采用MP3或MPEG-1和layer 3的存储设备编码数据,为采用MP3的播放功能解码数据。
该ARM内核管理来自调谐器和/或数据存储器件的流数据。它还完成语音合成、语音识别和控制/命令任务,并显示表明气象信息和驾驶方向的位图。通过恰当地平衡各种处理负载,一个基于双内核OMAP处理器的卫星无线电设计只占用该处理器可用处理资源的一小部分,因而为实现增强的多媒体功能留有余地2004-6-28,如虚拟3D音效、噪音消除等。表2显示了这种系统划分,它表明了每个功能所用的处理单元类型。
卫星无线电接收器这个例子说明了在一个现有SoC器件上不同处理器单元之间划分任务的好处。专门为这个应用研制SoC的设计人员也可以采用前面讨论的步骤来明确划分其它的处理功能,如Viterbi处理和音频编解码器,它们可以经济地集成在该SoC之内。NTSC视频解码和其它高级特性无疑也可以考虑,因为该设计的寿命期有可能贯穿许多接收器产品。除了系统级集成带来器件减少的明显优点之外,采用单一的SoC平台还为开发人员在软件方面的投资带来了极大益处,因为在整个产品线的寿命期内只需要很少的再开发工作。
本文小结
带有多个处理单元的SoC器件目前是产品设计链上的重要一环,尤其是对需要高度集成的便携式系统,它们靠该器件提供混合数据和信号处理功能。将一个特定系统和一个特定SoC匹配的决策并不总是由技术因素来推动。在许多情况下,它更多地与可用的资源有关,与系统需要的灵活度有关,与如何对付新功能和新缺陷有关。开发人员应该理解所涉及处理任务之间的复杂平衡,有效掌握划分系统功能的程序,并能够充分利用SoC所提供的巨大能力优势。