用于系统级芯片集成的处理技术评估
扫描二维码
随时随地手机看文章
带有多个处理单元的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)。