DSP和FPGA在多处理应用中的对比

[复制链接]
查看1514 | 回复1 | 2008-3-24 21:09:00 | 显示全部楼层 |阅读模式

作者:CommAgility公司 Edward Young & Paul Moakes

生活曾经很简单。过去你开发一个多处理信号处理应用,可能只需要写下那些要求,核对一下那些大型DSP供应商所供应的器件的规格,然后选择最好的芯片就可以了。但时代已经变了,今天的工程师们有了更多的选择。大型FPGA供应商改进了他们的信号处理产品,而选择最佳方案则变得复杂。

对于分布式应用,互连技术的选择也可以对整个方案产生重要的影响。数据处理可以完成得非常好,但你的系统必须有合适的接口来将之在不同处理器之间转移,并把数据转移到外部设备。那么在这个领域,DSP和FPGA的供应商们需要提供什么呢?

在本文中,我们将探讨一下多处理器系统(这种系统必然象征着市场的高端)有什么可以利用的,以及如何在DSP、FPGA或者二者的混合方案之间作出最好的选择。我们将分别简单地讨论这两种芯片,但将主要内容更多地集中在系统级因素上。

对于高性能信号处理应用,当然还有除DSP和FPGA之外的其它选择。picoChip等厂家提供的大规模并行处理器是一个方案,但可惜使用这种方案就必须使用它的专有工具。ASIC和ASSP都能很好地适用于某个特定的信号处理应用,但仅限于在大规模应用中,否则它们的高成本都会让它们无法成为上上之选。

已获认可的DSP方案

自从20世纪80年代被发明以来,DSP一直以合理的功耗和价格提供着优越的性能。一大群有经验的DSP工程师也随着这一技术而成长,开发出大量非定制型代码用于DSP内核。第三方供应商对于调试和优化工具的支持也非常稳定。

高性能DSP继续向更快时钟速度和多核方案发展。极长指令字(VLIW) DSP提供了高时钟率和独立执行单元来获得最高的速度。DSP开发成本相对较低了,而作为一个成熟的技术,可以说DSP相比于FPGA和其它信号处理技术风险更低,且上市时间更短。

对于很多基于不断快速改变的新兴标准的应用来说,DSP都很有吸引力。由于DSP算法可以很容易地以C语言等简单语言来执行,就能在标准发生变化时更容易地对代码进行更新来反映这种变化。另外,很多用于最新无线标准等应用领域的信号处理算法的复杂本性,使之更适合利用DSP来执行:一个DSP设备可以通过呼叫一个不同的软件程序来更容易地改变处理算法。尽管现在的FPGA可以快速重配,但要在继续处理数据的情况下动态地实现这一点,则是非常复杂且很有挑战性的。

DSP在功耗方面也在不断改进。在手持设备市场的需求驱动下,一些下一代高性能DSP结合了功耗管理技术。这可以让整个系统的功耗在低数据量时得到降低,或者用来阻止过热。一个功耗和温度敏感型FPGA配置也能以相似的方式来管理其时钟域,但需要更多的开发工作。

但是,DSP并不特别适合并行处理:有些并行处理任务可能只需要一个FPGA,却会需要多个DSP。比如,在无线基带领域,对于WiMAX直角频分多路存取(OFDMA)通道的处理来说,一个纯DSP方案在所能处理的带宽和通道数量上无法匹敌一个FPGA方案。因此DSP方案就会产生过高的成本和功耗。

为了改进DSP在特别算法中的性能,一些供应商已经推出了硬件内核来将一些处理工作转移到FPGA上。比如,TI的TCI6482 DSP就包含了用于3GPP和3GPP2的Viterbi和Turbo解码协处理器,而多核型的TCI6487 DSP也包含了一个能链接在DSP之间的直接通用公共无线电接口(CPRI) /开放基站架构(OBSAI)接口。

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个德州仪器公司的DSP和1个Xilinx的FPGA。除了在DSP和FPGA之间采用EMIF连接来实现最小过空的协处理,这个子系统还带有一个全Serial RapidIO (SRIO)架构,使其能够用于无线电数据发送,并可用作卡上和卡外两个设备间的一个低延迟直接内存存取。


图1:CommAgility DSP/FPGA模块(AMC-D4F1)区块图

先进夹层卡(AMC)外形的可升级性贯穿了整个基架,尤其是当系统以SRIO作为主要数据传输接口而构建的时候。在先进电信运算架构 (ATCA) 或MicroTCA基架系统中,集成者都可以选择混合并匹配以DSP为中心的刀片和以FPGA为中心的刀片,来实现恰当的技术平衡。

为了开发高效的混合系统,SRIP等协议以及AMC等标准让设计者和集成者可以在刀片和系统两个层面上把握平衡。图2就展示了一个典型的混合系统。


图2:采用RapidFET系统管理和分析软件的SRIO系统的软件解析图

图中可以看到终点和转接点的结合。这个系统包含了CommAgility AMC-D4F1卡等各种卡。

在CommAgility,我们的目的是通过提供一套包含了多个FPGA或DSP的AdvancedMC来确保设计者能够开放选择。这包括AMC-D4F1 (带有4个TI的TMS320C6455 DSP和1个Xilinx的Virtex-4 FX系列FPGA)和AMC-D1F3(提供了1个DSP和3个FPGA)。这让开发人员可以根据其整体处理要求、应用开发和优化阶段以及有关DSP和FPGA的现有代码库的经验,来改变所用的技术。

将SRIO用到卡上和基架中让各种元器件可以放到一起;AMC-D4F1利用了两个4倍SRIO接口,提供了两个高速的10Gbps链路,

在MicroTCA,即将批准的AMC.4规格将成为系统jigsaw中的最后一个部分,尽管它并没能阻止目前已经非常流行的SRIO AMC生态系统。目前已经有多家厂商在提供SRIO支持,既支持MicroTCA网络中心运供应商,还支持控制和信号处理AMC卡。

互连的重要性

让我们回到先前那个无线基带处理的例子。如今一个一般的WiMAX基带系统可以每个基站拥有24~48个天线数据流,数据速率可以达到每个数据流123 Mbps。这样天线数据的总速率就达到了3~6 Gbps。

在以通过CDMA等扩展频谱技术编码的通道来支持多输入多输出(MIMO)系统的同时,所有基带处理区块还要获得来自所有广播天线的数据。为了实现这样的良好性能,关键是要有一个高效的低延迟互连。

相比于以太网,Serial RapidIO (SRIO)的协议过空更低,而且它和PCI Express不一样,可以支持多个主站,所以SRIO在这种多天线系统中正日益流行。此外,SRIO的多点传送功能在面向这类应用的分布式系统中也是非常重要的。

SRIO还很适合于其它高性能信号处理应用,包括雷达、成像和信号智能等。在这里,多点传送可以成为一个非常有用的功能,比如在数据需要被发送到多个DSP的IPTV服务器等视频处理应用中。

在适应外部天线时,FPGA方案会有一些困难。如今,执行一个SRIO接口所需要的逻辑元件可以达到数千个门极,这个接口相比于DSP的硬连线接口来说是很珍贵的。FPGA厂商也实现了这一点,比如Xilinx的Virtex-5就推出了一个硬核PCI-Express接口。要避免这样产生的成本,有一个很好的办法就是利用一个FPGA来作为一个DSP的协处理器,其中FPGA和DSP通过DSP的外部存储器接口总线来连接,让数据能以较低的成本或者DSP处理器过空从逻辑元件的FPGA发送出来并发回到FPGA。

一个混合式DSP/FPGA系统中的无线基带处理

为了理解对于设计人员的含义,我们可以来看看上面所讨论的一个用于WiMax的特殊方案,以及该方案如何在一个DSP/FPGA多处理器板上应用。3~6 Gbps的天线数据对于C6455这样的一个DSP来说太大了,所以天线数据的处理就需要一个ASIC或FPGA来进行。

以CommAgility的AMC-D4F1 (包含了4个C4655 DSP和1 个FPGA)为例,其中天线数据的处理就是由Xilinx FPGA完成的。AMC-D4F1的卡上FPGA和AdvancedMC结构之间的SRIO连接最适合用来将天线数据从MicroTCA基架的无线电卡上传输到作为基带处理卡的AMC-D4F1。

在另一方面,WiMAX用户数据每通道的速度大约为19Mbps,而C6455 DSP则可以轻松处理多个用户通道。AMC-D4F1上的三个DSP有一个连接到FPGA的32位125MHz的外部存储器接口,而每个DSP有一个64位接口。这样就构成了一个速度至少4 Gbps的接口,让每个DSP可以处理超过100个用户通道。

AMC-D4F1的背板SRIO连接性让系统集成者可以配置多张卡来扩大到所需的基站尺寸,并使得厂商能够采用一个随需付费方案来部署基站。这是将资本支出最小化并获得收入的一个重要因素。

总结

FPGA技术最近的发展纠正了很多长期以来关于其用途的偏见,满足了工程师对于功耗、成本和复杂性的需求。尽管有了FPGA厂商提供的高级开发工具和数据库,但基于FPGA来开发信号处理应用所需要付出的努力仍然远远多于基于DSP开发所需的努力。寻找具有DSP和系统级开发经验的合适的工程师来开发基于FPGA的应用,也会变得非常困难。

独立基准对于选择最佳的器件也有很大帮助。例如,在2007年,BDTI发布了一份分析DSP应用中的FPGA的文章。BDTI的测试检测了一个标准多通道通信应用中的成本/性能。测试结果非常明显:FPGA的平均通道成本指数比DSP高20倍。这并不意味着FPGA是高性能信号处理应用的最佳方案,却表明在某些条件下它比DSP具有明显的性能优势。

另一个重要因素就是面向目标应用的IP内核和软件库,这些应用一般都是厂商所提供的。这些能够降低利用厂商工具进行室内复杂算法开发的依赖性,并进一步缩短上市时间。

DSP的关键优势包括其对于新型及复杂算法时的更短的开发时间,以及能够运行多种算法的灵活性。而FPGA的最大优势在于通过并行处理实现的效率增益。在图象处理和无线基带处理等多种应用中,有适合采用FPGA的重复型简单处理任务,也有更应该应用DSP的复杂程度更高且可预测性更低的任务。另外,随着并行处理区块在FPGA中的应用成为主流,它们越来越有可能被集成到DSP厂商的硅中。

总之,这意味着由DSP和FPGA结合而成的混合式方案常常能够为高性能多处理应用提供最好的方案,让每个器件都发挥其作用。本文所进行对比的主旨是要把FPGA和DSP看作两项互补的技术,而不是互相竞争的对手。

wgsjzit | 2008-3-24 23:54:00 | 显示全部楼层

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则