为多处理器系统选择最佳设计方案
发布时间:2008/9/5 0:00:00 访问次数:440
过去开发一个多处理器应用,可能只需要写下那些要求,核对一下那些大型dsp供应商所供应的器件的规格,然后选择最好的芯片就可以了。但时代已经变了,今天的工程师们有了更多的选择。大型fpga供应商改进了他们的信号处理产品,而选择最佳方案则变得复杂。
在本文中,我们将探讨一下多处理器系统有什么可以利用的,以及如何在dsp、fpga或者二者的混合方案之间作出最好的选择。我们将分别简单地讨论这两种芯片,但将主要内容更多地集中在系统级因素上。
对于高性能信号处理应用,当然还有除dsp和fpga之外的其它选择。asic和assp都能很好地适用于某个特定的信号处理应用,但仅限于在大规模应用中,否则它们的高成本都会让它们无法成为优选。
已获认可的dsp方案
自从20世纪80年代被发明以来,dsp一直以合理的功耗和价格提供着优越的性能。对于很多基于不断快速改变的新兴标准的应用来说,dsp都很有吸引力。由于dsp算法可以很容易地以c语言等简单语言来执行,就能在标准发生变化时更容易地对代码进行更新来反映这种变化。
另外,很多用于最新无线标准等应用领域的信号处理算法的复杂本性,使之更适合利用dsp来执行:一个dsp设备可以通过呼叫一个不同的软件程序来更容易地改变处理算法。尽管现在的fpga可以快速重配,但要在继续处理数据的情况下动态地实现这一点,则是非常复杂且很有挑战性的。
dsp在功耗方面也在不断改进。在手持设备市场的需求驱动下,一些下一代高性能dsp结合了功耗管理技术。这可以让整个系统的功耗在低数据量时得到降低,或者用来阻止过热。一个功耗和温度敏感型fpga配置也能以相似的方式来管理其时钟域,但需要更多的开发工作。
但是,dsp并不特别适合并行处理:有些并行处理任务可能只需要一个fpga,却会需要多个dsp。比如,在无线基带领域,对于wimax直角频分多路存取(ofdma)通道的处理来说,一个纯dsp方案在所能处理的带宽和通道数量上无法匹敌一个fpga方案。因此dsp方案就会产生过高的成本和功耗。
灵活的fpga方案
fpga相比于dsp有一个很大的优势:在并行应用中的效率-这是通过采用多个并行处理区块来实现的。fpga拥有能让嵌入式系统设计者将设备和应用实现最完美匹配的灵活性,并能以每通道较低的成本达到最高的数据吞吐量。
fpga虽然具有很高灵活性,但相比于硬接线式架构,它的门极数量和非优化型方案的硅面积增加,因而在功耗上产生了额外的成本。但是,65纳米技术和性能相当的asic技术在量产中的应用,让fpga不仅能在实验室环境中降低功耗,还能在量产中也将功耗进一步降低。
尽管芯片层的功耗更高,但fpga的通道平均功耗可以比dsp的低很多。dsp一般功耗只有3~4w,而fpga的功耗为7~10w,但fpga能处理相当于dsp的十倍的通道密度。
近几年来,人们对dsp优势的推崇已经转变成为将fpga和dsp技术结合起来,比如xilnx virtex-5 sxt系列产品。这让fpga能够结合dsp算法处理,执行原本非并行的任务。这样的“基于dsp”的fpga在某些信号处理应用中已经显示出了巨大的吞吐量优势,这一点通过其在高端处理市场的成功就得到了很好的反映。但是,fpga一般不适合处理连续有条件型数据流。
编程fpga仍然很难,一般需要一种偏向硬件的语言,例如verilog或vhdl。fpga方案的代码会比dsp方案长出数倍,这样会增加开发成本,并延长上市时间。
基于c语言的合成工具还没有实现c编码式处理器方案的易用性和高性能。高级合成工具例如simulink区块图合成目前还没有得到广泛应用,而老的fpga合成方法仍然延续着,尤其是当需要最大性能时。
混合多处理器系统
从一个设计工程师的角度来讲,fpga和dsp的同步开发让他们能够找到用于信号处理应用的更新更好的方案。关于fpga和dsp哪个更好的问题并没有一个简单的答案,而对于很多应用来说一个混合式系统才是最好的选择。这个系统结合了两种技术来提供一个方案,而这样的方案要比二者单纯相加要更好一些。
图1展示了一个标准的刀片子系统,其中包括了4颗ti公司的dsp和1颗xilinx的fpga。除了在dsp和fpga之间采用emif连接来实现最小过空的协处理,这个子系统还带有一个全serial rapidio (srio)架构,使其能够用于无线电数据发送,并可用作卡上和卡外两个设备间的一个低延迟直接内存存取。
图1:dsp/fpga模块(amc-d4f1)架构图。
先进夹层卡(amc)外形的可升级性贯穿了整个基架,尤其是当系统以srio作为主要数据传输接口而构建的时候。在先进电信运算架构 (atca) 或microtca基架系统中,集成者都可以选择混合并匹配以dsp为中心的刀片和以fpga为中心的刀片,来实现恰当的技术平衡。
为了
过去开发一个多处理器应用,可能只需要写下那些要求,核对一下那些大型dsp供应商所供应的器件的规格,然后选择最好的芯片就可以了。但时代已经变了,今天的工程师们有了更多的选择。大型fpga供应商改进了他们的信号处理产品,而选择最佳方案则变得复杂。
在本文中,我们将探讨一下多处理器系统有什么可以利用的,以及如何在dsp、fpga或者二者的混合方案之间作出最好的选择。我们将分别简单地讨论这两种芯片,但将主要内容更多地集中在系统级因素上。
对于高性能信号处理应用,当然还有除dsp和fpga之外的其它选择。asic和assp都能很好地适用于某个特定的信号处理应用,但仅限于在大规模应用中,否则它们的高成本都会让它们无法成为优选。
已获认可的dsp方案
自从20世纪80年代被发明以来,dsp一直以合理的功耗和价格提供着优越的性能。对于很多基于不断快速改变的新兴标准的应用来说,dsp都很有吸引力。由于dsp算法可以很容易地以c语言等简单语言来执行,就能在标准发生变化时更容易地对代码进行更新来反映这种变化。
另外,很多用于最新无线标准等应用领域的信号处理算法的复杂本性,使之更适合利用dsp来执行:一个dsp设备可以通过呼叫一个不同的软件程序来更容易地改变处理算法。尽管现在的fpga可以快速重配,但要在继续处理数据的情况下动态地实现这一点,则是非常复杂且很有挑战性的。
dsp在功耗方面也在不断改进。在手持设备市场的需求驱动下,一些下一代高性能dsp结合了功耗管理技术。这可以让整个系统的功耗在低数据量时得到降低,或者用来阻止过热。一个功耗和温度敏感型fpga配置也能以相似的方式来管理其时钟域,但需要更多的开发工作。
但是,dsp并不特别适合并行处理:有些并行处理任务可能只需要一个fpga,却会需要多个dsp。比如,在无线基带领域,对于wimax直角频分多路存取(ofdma)通道的处理来说,一个纯dsp方案在所能处理的带宽和通道数量上无法匹敌一个fpga方案。因此dsp方案就会产生过高的成本和功耗。
灵活的fpga方案
fpga相比于dsp有一个很大的优势:在并行应用中的效率-这是通过采用多个并行处理区块来实现的。fpga拥有能让嵌入式系统设计者将设备和应用实现最完美匹配的灵活性,并能以每通道较低的成本达到最高的数据吞吐量。
fpga虽然具有很高灵活性,但相比于硬接线式架构,它的门极数量和非优化型方案的硅面积增加,因而在功耗上产生了额外的成本。但是,65纳米技术和性能相当的asic技术在量产中的应用,让fpga不仅能在实验室环境中降低功耗,还能在量产中也将功耗进一步降低。
尽管芯片层的功耗更高,但fpga的通道平均功耗可以比dsp的低很多。dsp一般功耗只有3~4w,而fpga的功耗为7~10w,但fpga能处理相当于dsp的十倍的通道密度。
近几年来,人们对dsp优势的推崇已经转变成为将fpga和dsp技术结合起来,比如xilnx virtex-5 sxt系列产品。这让fpga能够结合dsp算法处理,执行原本非并行的任务。这样的“基于dsp”的fpga在某些信号处理应用中已经显示出了巨大的吞吐量优势,这一点通过其在高端处理市场的成功就得到了很好的反映。但是,fpga一般不适合处理连续有条件型数据流。
编程fpga仍然很难,一般需要一种偏向硬件的语言,例如verilog或vhdl。fpga方案的代码会比dsp方案长出数倍,这样会增加开发成本,并延长上市时间。
基于c语言的合成工具还没有实现c编码式处理器方案的易用性和高性能。高级合成工具例如simulink区块图合成目前还没有得到广泛应用,而老的fpga合成方法仍然延续着,尤其是当需要最大性能时。
混合多处理器系统
从一个设计工程师的角度来讲,fpga和dsp的同步开发让他们能够找到用于信号处理应用的更新更好的方案。关于fpga和dsp哪个更好的问题并没有一个简单的答案,而对于很多应用来说一个混合式系统才是最好的选择。这个系统结合了两种技术来提供一个方案,而这样的方案要比二者单纯相加要更好一些。
图1展示了一个标准的刀片子系统,其中包括了4颗ti公司的dsp和1颗xilinx的fpga。除了在dsp和fpga之间采用emif连接来实现最小过空的协处理,这个子系统还带有一个全serial rapidio (srio)架构,使其能够用于无线电数据发送,并可用作卡上和卡外两个设备间的一个低延迟直接内存存取。
图1:dsp/fpga模块(amc-d4f1)架构图。
先进夹层卡(amc)外形的可升级性贯穿了整个基架,尤其是当系统以srio作为主要数据传输接口而构建的时候。在先进电信运算架构 (atca) 或microtca基架系统中,集成者都可以选择混合并匹配以dsp为中心的刀片和以fpga为中心的刀片,来实现恰当的技术平衡。
为了