最后一步的目标是尽可能多地利用加速器,并把灵活性和裕度留给可编程单元处理。显然,对明确的、可有一些变化的和不确定功能的分配在一定程度上取决于相关 SoC 能提供什么硬件。把一个系统映射到一个新的SoC,而不是一个现有的SoC,有可能会引起较长的产品规划时间,所以该设计人员必须解决的问题将经常和一系列基于该新器件的产品有关。设计人员需要确定哪些算法组件更好理解,没有缺陷也不需要改变;还需要确定在整个设计期间或产品系列中,系统的哪些部分有可能改变。在涉及到功能分配(步骤6)时,一个新方案的设计人员可以非常肯定地将明确功能(步骤3的a)分配给固定功能单元,可有些变化的功能(步骤3的b)分配给可编程加速器,把不确定的、变化的新功能(步骤3的c分配给处理数据的RISC和处理信号的 DSP )。
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所提供的巨大能力优势。