学海荡舟手机网

主页 > 实用文摘 > 教育文摘_09 > > 详细内容

连续实时信号处理器的性能分析_DSP论文

摘要:对ad公司的tigersharc dsp(adsp-ts101s)和摩托罗拉公司的具有altivec矢量处理器核的powerpc系列mpc7410和mpc7455处理器,在连续实时信号处理领域的应用进行了评估。

    关键词:连续实时信号处理 I/O带宽 adsp-ts101s mpc7410 mpc7455

对于复杂、实时信号算是系统的设计人员来讲,最严峻的挑战是针对给定任何选择一个最有效的处理器。因为处理器效率依赖于应用,涉及到结构和应用等各个方面,因此折中的办法很难定义和评估。用通常使用的方法评价处理器,往往误导人们。因为它掩盖了许多依赖应用并使实际性能下降因素;在不同的处理器上执行应用,然后评估每个处理器执行的实际性能,这种方法费用昂贵、花费时间,不切合实际。

1 处理器概况

AD公司的Tigersharc dsp(adsp-ts101s)和摩托罗位公司powerpc系列处理器代表了获得高性能计算能力的不同结构和方法。Tigersharc代表DSP的传统做法,它具有低开销、确定性和DMA引擎等特点,专门用于开发嵌入式实时应用系统,例如雷达、声纳、无线通信和图像处理。相反,Powerpc是一种RISC处理器,用于开发副苹果计算机最高性能的G4工作站;具有很高的时钟频率以及强大的Altivec矢量处理引擎,在一些嵌入式信号处理应用方面也取得了很大的成功。

很明显,具有Altivec核的Powerpc g4(74xx)具有较高的核时钟速率与性能。powerpc的核时钟速率几乎是目前tigersharc的3.3倍(不久更快版本的tigersharc将发布)。altivec核每个周期执行单条指令,每128位向量包含4个独立的32位数据单元,这就是众所周知的sim-d(单指令多数据)结构。当执行一次乘加(mac)矢量运算时,达到峰值处理能力,每周期可完成8次浮点操作。对于1ghz的mpc7455,峰值处理能力可达8000m次/s浮点运算。altivec每周期能执行8次整数或定点操作,峰值整数运算能力为8000MOPS(百万次操作/s)。

    相反,Tigersharc有两个独立的32闰处理器核,或称mimd(多指令多数据)结构。每个计算单元每周期能执行一次乘法以及和差分运算,对于300mhz adsp-ts101s每周期完成6次浮点运算或1800mflops峰值运算能力。当执行16位数据运算时,tigersharc可以利用它的超标量体系结构,分离两个独立32位计算单元成2个单独的16位simd单元,这样每个操作在两个数据单元,每个周期可以增加超过12次的操作。另外,tigersharc有另外两个专门的16位整数引擎,每个周期可以增加超过12次的操作,这样每个周期共计24次整数运算,7200mops。

2 I/O带宽与处理能力的比值

在许多信号处理的应用中,受限于数据流而不是处理能力,因此理解处理器I/O能力以及与处理器内核的数据交换的性能十分重要。衡量的尺度是I/O带宽与处理率之比(BPR),即处理器峰值I/O带宽(MB/s)除以峰值处理能力(MFLOPS)。1B/FLOP的BPR指示它是一个比较平衡的连续信号处理结构,意味着处理器对每个浮点操作能完成1B数据传输。一个处理器的BPR明显高于或低于1B/FLOP,表示这种结构比连续信号处理器更适合数据流搬移或后向数据处理。

图1所示为Powerpc处理器节点方框图。从图中可以看出所有处理器I/O的访问必须通过MPC和控制器/桥芯片之间的64位,128MHz(对于MPC7455为133MHz)系统总线。对于MPC7410任何一个处理器的最高I/O带宽是1000MB/s,对MPC7455的最高I/O带宽是1064 MB/s。

然而由于Altivec很强大,这种适宜的高带宽不一定总能跟上核的速度。当mpc7455执行8000mflops时,数据搬移的速度仅为1064mb/s。bpr值只有0.13,说明这种结构的i/o带宽和处理能力是不平衡的。因此,powerpc对块处理是有效的(比如具有高的计算和相对低的数据流动),但对连续的、高数据流动、较少计算的连续信号处理,是低效率的。

tigersharc是为多处理器设计的,而且提供了64位、100mhz共享系统总线以及4个8位,250mhz的link口作i/o和处理器之间的数据通信,簇总线的搬移数据速率为800mb/s。数据还可以通过Link口以50mb/s速度进行传送,每个tigershrc提供总的i/o带宽可达1800mb/s。tigersharc的BPR是0.1,表明对连续的信号处理是平衡的优化结构。

3 信号处理能力—cfft

1024点复数fft(cfft)是评价信号处理性能使用最广泛的基准。原因如下:第一,清晰而且容易易化;第二,在大多数应用中,它是最普遍使用的信号处理函数;第三,cfft可以评估处理器的数据处理能力和处理速度。

值得注意的是,由于Pwerpc的速度和性能,在计算1024点cfft有明显优越性;然而tigersharc是为dsp裁剪定制的,在执行信号处理算法时会更加有效。这是由于芯片具有极好的数据搬移的能力、平衡以及单周期执行蝶形运算能力(乘法、加法、差分)。altivec核比tigersharc核快3.3倍,潜在处理速率是tigersharc的4.4倍,然而它执行一个1024点cfft仅比tigersharc快2.5倍。tigersharc在9750周期可以完成cfft运算,而powerpc必须用13000个周期,因此,在执行一个1024点cfft时,tigersharc的计算效率比powerpc高33%。换句话说,如果以相同的时钟频率运行,tigersharc会超过powerpc 33%。随着tigersharc时钟速率继续提升,考虑成本和功耗等问题,当它执行fft信号处理应用时,它的能力要显明超过altivec。

4 连续的cfft

评价处理器能力时,通常考虑它的处理能力、I/O带宽,甚至算法的执行,但遗憾的是这些评估没有一个能真实反映实际应用。实际应用时,这些因素往往相互影响。数据必须按所希望的那样同时输入、处理、输出。每个1024点cfft需要8KB数据输入(1024个样本×2个样本/IQ对×4字节/样本)和8KB数据输出,共16KB的数据流。通过比较1024点cfft基准与16KB乘积与处理器的I/O带宽,来决定是受限于处理器的计算能力还是I/O带宽。

对于Tigersharc,其准的倒数表示每秒钟能执行30 769次1024点cfft,由于tigersharc在后台能搬移所需要的数据,需要有504mb/s的数据流(30769/s×16kb),可以保证处理器的i/o带宽,因此tigersharc完全适合如此应用。

对于mpc7410,1024点cfft其准其实是误导。因为它不能同时搬移数据和进行数据处理,而且在处理时间里,8kb的输入数据必须搬入高速缓存(cache),8kb的输出数据必须搬出的高速缓存(cache)。搬移数据需要增加16.4μs的处理时间,执行1024点CFFT共需要38.4μs 的时间。考虑到数据的租用移,1024点CFFT基准的倒数为1/38.4μs。

然而对于mpc7455的情况不同,基准的倒数显示处理器内核每秒处理76 923次1024点cfft,需要1260mb/s数据流量。尽管powerpc进行处理的同时能搬移数据,但它的峰值带宽仅为1064mb/s,因此在这一应用中带宽受到了限制。假设它能连续保持峰值I/O带宽(cache管理和控制器瓶颈会明显减小I/O带宽,不在本文讨论管理),pmc7455每秒仅能执行64941次1024点cfft(1064mb/s除16kb/1024点cfft),明显比基准的倒数要小。

5 板极应用

如上所述,目前可获得基于所有处理器cpci和vme总线的cots板。然而,当与板级应用相联系时,会大大改变以上的评估结果。

因为mpc7455带宽受限,板级的结构会增加I/O的限制,进一步恶化处理器连续cfft的性能。不考虑背板的数据流,对于powerpc来讲,目前最好的i/o方式是两个64位/66mhz pmc,双528 mb/s pmc,可达到的数据流共1056mb/s。这已经小于mpc7455的1064mb/s峰值i/o带宽。实际上PMC达到连续、持续的吞吐率也是不可能的。假设1056MB/s持续的I/O带宽,powerpc板持续1024点cffts为每秒64453次(1056mb/s被16kb除)——不依赖于powerpc的数量或速度。

相反,Tigersharc具有通过link口可扩展的i/o,图2所示为典型的4个tigersharc处理器的结构框图。在此例子中,每个处理器必须共享一个簇总线带宽,每个处理器使用2个link口作为处理器间的数据传输,每个tigersharc的其它2个link被用做i/o。这样每个处理器i/o总带宽就减少至700mb/s(link口2×250mb/s+1/4×共享簇总线800mb/s)。然而,对于每个处理器,在最大连续CFFT速率的情况下,tigersharc需要504mb/s的带宽。虽然这一速率在tigersharc极限范围,但把连续的i/o分裂成link口和簇总线也是不切合实际的做法。实际上,对于连续cfft的最大i/o数据率是500mhz,由每个tigersharc的两个link口提供。很小带宽的限制降低了连续1024点cfft的性能,每个tigersharc能处理30 517次。tigersharc低功耗、小尺寸和功能的集成,目前可得到簇总线(8片tigersharc)6u cpci板卡。8片tigersharc每秒能执行244 135次连续1024点cfft运算,几乎是理想powerpc板卡的4倍。

6 结论

我们讨论的各种cots板的应用,代表了连续实时信号处理应用的实际性能。对于其它因素的分析(如中断、开发环境、dmas、存储器的利用、cache管理、电源等)不在本文讨论范围。如果应用系统需要大量的计算、比较少的数据搬移和所谓的后向数据处理,由于较高的时钟频率和强大的内核,powerpc是理想的选择;反之,对于像成像、雷达、声纳和监听等应用的连续、实时信号处理,由于需要比较高的数据吞吐率,tigersharc应该是首选。