- 相關推薦
連續(xù)實時信號處理器的性能分析
摘要:對AD公司的TigerSHARCDSP(ADSP-TS101S)和摩托羅拉公司的具有AltiVec矢量處理器核的PowerPC系列MPC7410和MPC7455處理器,在連續(xù)實時信號處理領域的應用進行了評估。關鍵詞:連續(xù)實時信號處理I/O帶寬ADSP-TS101SMPC7410MPC7455
對于復雜、實時信號算是系統(tǒng)的設計人員來講,最嚴峻的挑戰(zhàn)是針對給定任何選擇一個最有效的處理器。因為處理器效率依賴于應用,涉及到結構和應用等各個方面,因此折中的辦法很難定義和評估。用通常使用的方法評價處理器,往往誤導人們。因為它掩蓋了許多依賴應用并使實際性能下降因素;在不同的處理器上執(zhí)行應用,然后評估每個處理器執(zhí)行的實際性能,這種方法費用昂貴、花費時間,不切合實際。
1處理器概況
。粒墓镜模詉gerSHARCDSP(ADSP-TS101S)和摩托羅位公司PowerPC系列處理器代表了獲得高性能計算能力的不同結構和方法。TigerSHARC代表DSP的傳統(tǒng)做法,它具有低開銷、確定性和DMA引擎等特點,專門用于開發(fā)嵌入式實時應用系統(tǒng),例如雷達、聲納、無線通信和圖像處理。相反,PowerPC是一種RISC處理器,用于開發(fā)副蘋果計算機最高性能的G4工作站;具有很高的時鐘頻率以及強大的AltiVec矢量處理引擎,在一些嵌入式信號處理應用方面也取得了很大的成功。
很明顯,具有AltiVec核的PowerPCG4(74xx)具有較高的核時鐘速率與性能。PowerPC的核時鐘速率幾乎是目前TigerSHARC的3.3倍(不久更快版本的TigerSHARC將發(fā)布)。AltiVec核每個周期執(zhí)行單條指令,每128位向量包含4個獨立的32位數據單元,這就是眾所周知的SIM-D(單指令多數據)結構。當執(zhí)行一次乘加(MAC)矢量運算時,達到峰值處理能力,每周期可完成8次浮點操作。對于1GHz的MPC7455,峰值處理能力可達8000M次/s浮點運算。AltiVec每周期能執(zhí)行8次整數或定點操作,峰值整數運算能力為8000MOPS(百萬次操作/s)。
相反,TigerSHARC有兩個獨立的32閏處理器核,或稱MIMD(多指令多數據)結構。每個計算單元每周期能執(zhí)行一次乘法以及和差分運算,對于300MHzADSP-TS101S每周期完成6次浮點運算或1800MFLOPS峰值運算能力。當執(zhí)行16位數據運算時,TigerSHARC可以利用它的超標量體系結構,分離兩個獨立32位計算單元成2個單獨的16位SIMD單元,這樣每個操作在兩個數據單元,每個周期可以增加超過12次的操作。另外,TigerSHARC有另外兩個專門的16位整數引擎,每個周期可以增加超過12次的操作,這樣每個周期共計24次整數運算,7200MOPS。
。玻桑蠋捙c處理能力的比值
在許多信號處理的應用中,受限于數據流而不是處理能力,因此理解處理器I/O能力以及與處理器內核的數據交換的性能十分重要。衡量的尺度是I/O帶寬與處理率之比(BPR),即處理器峰值I/O帶寬(MB/s)除以峰值處理能力(MFLOPS)。1B/FLOP的BPR指示它是一個比較平衡的連續(xù)信號處理結構,意味著處理器對每個浮點操作能完成1B數據傳輸。一個處理器的BPR明顯高于或低于1B/FLOP,表示這種結構比連續(xù)信號處理器更適合數據流搬移或后向數據處理。
圖1所示為PowerPC處理器節(jié)點方框圖。從圖中可以看出所有處理器I/O的訪問必須通過MPC和控制器/橋芯片之間的64位,128MHz(對于MPC7455為133MHz)系統(tǒng)總線。對于MPC7410任何一個處理器的最高I/O帶寬是1000MB/s,對MPC7455的最高I/O帶寬是1064MB/s。
然而由于Altivec很強大,這種適宜的高帶寬不一定總能跟上核的速度。當MPC7455執(zhí)行8000MFLOPS時,數據搬移的速度僅為1064MB/s。BPR值只有0.13,說明這種結構的I/O帶寬和處理能力是不平衡的。因此,PowerPC對塊處理是有效的(比如具有高的計算和相對低的數據流動),但對連續(xù)的、高數據流動、較少計算的連續(xù)信號處理,是低效率的。
TigerSHARC是為多處理器設計的,而且提供了64位、100MHz共享系統(tǒng)總線以及4個8位,250MHz的Link口作I/O和處理器之間的數據通信,簇總線的搬移數據速率為800MB/s。數據還可以通過Link口以50MB/s速度進行傳送,每個TigerSHRC提供總的I/O帶寬可達1800MB/s。TigerSHARC的BPR是0.1,表明對連續(xù)的信號處理是平衡的優(yōu)化結構。
。承盘柼幚砟芰Α猚FFT
1024點復數FFT(cFFT)是評價信號處理性能使用最廣泛的基準。原因如下:第一,清晰而且容易易化;第二,在大多數應用中,它是最普遍使用的信號處理函數;第三,cFFT可以評估處理器的數據處理能力和處理速度。
值得注意的是,由于PwerPC的速度和性能,在計算1024點cFFT有明顯優(yōu)越性;然而TigerSHARC是為DSP裁剪定制的,在執(zhí)行信號處理算法時會
更加有效。這是由于芯片具有極好的數據搬移的能力、平衡以及單周期執(zhí)行蝶形運算能力(乘法、加法、差分)。AltiVec核比TigerSHARC核快3.3倍,潛在處理速率是TIgerSHARC的4.4倍,然而它執(zhí)行一個1024點cFFT僅比TIgerSHARC快2.5倍。TigerSHARC在9750周期可以完成CFFT運算,而PowerPC必須用13000個周期,因此,在執(zhí)行一個1024點CFFT時,TigerSHARC的計算效率比PowerPC高33%。換句話說,如果以相同的時鐘頻率運行,TIgerSHARC會超過PowerPC33%。隨著TigerSHARC時鐘速率繼續(xù)提升,考慮成本和功耗等問題,當它執(zhí)行FFT信號處理應用時,它的能力要顯明超過AltiVec。
。催B續(xù)的cFFT
評價處理器能力時,通?紤]它的處理能力、I/O帶寬,甚至算法的執(zhí)行,但遺憾的是這些評估沒有一個能真實反映實際應用。實際應用時,這些因素往往相互影響。數據必須按所希望的那樣同時輸入、處理、輸出。每個1024點cFFT需要8KB數據輸入(1024個樣本×2個樣本/IQ對×4字節(jié)/樣本)和8KB數據輸出,共16KB的數據流。通過比較1024點cFFT基準與16KB乘積與處理器的I/O帶寬,來決定是受限于處理器的計算能力還是I/O帶寬。
對于TigerSHARC,其準的倒數表示每秒鐘能執(zhí)行30769次1024點cFFT,由于TIgerSHARC在后臺能搬移所需要的數據,需要有504MB/s的數據流(30769/s×16KB),可以保證處理器的I/O帶寬,因此TigerSHARC完全適合如此應用。
對于MPC7410,1024點CFFT其準其實是誤導。因為它不能同時搬移數據和進行數據處理,而且在處理時間里,8KB的輸入數據必須搬入高速緩存(cache),8KB的輸出數據必須搬出的高速緩存(cache)。搬移數據需要增加16.4μs的處理時間,執(zhí)行1024點CFFT共需要38.4μs的時間?紤]到數據的租用移,1024點CFFT基準的倒數為1/38.4μs。
然而對于MPC7455的情況不同,基準的倒數顯示處理器內核每秒處理76923次1024點CFFT,需要1260MB/s數據流量。盡管PowerPC進行處理的同時能搬移數據,但它的峰值帶寬僅為1064MB/s,因此在這一應用中帶寬受到了限制。假設它能連續(xù)保持峰值I/O帶寬(cache管理和控制器瓶頸會明顯減。桑蠋挘辉诒疚挠懻摴芾恚,PMC7455每秒僅能執(zhí)行64941次1024點cFFT(1064MB/s除16KB/1024點cFFT),明顯比基準的倒數要小。
。蛋鍢O應用
如上所述,目前可獲得基于所有處理器cPCI和VME總線的COTS板。然而,當與板級應用相聯系時,會大大改變以上的評估結果。
因為MPC7455帶寬受限,板級的結構會增加I/O的限制,進一步惡化處理器連續(xù)CFFT的性能。不考慮背板的數據流,對于PowerPC來講,目前最好的I/O方式是兩個64位/66MHzPMC,雙528MB/sPMC,可達到的數據流共1056MB/s。這已經小于MPC7455的1064MB/s峰值I/O帶寬。實際上PMC達到連續(xù)、持續(xù)的吞吐率也是不可能的。假設1056MB/s持續(xù)的I/O帶寬,PowerPC板持續(xù)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)。然而,對于每個處理器,在最大連續(xù)CFFT速率的情況下,TigerSHARC需要504MB/s的帶寬。雖然這一速率在TigerSHARC極限范圍,但把連續(xù)的I/O分裂成Link口和簇總線也是不切合實際的做法。實際上,對于連續(xù)CFFT的最大I/O數據率是500MHz,由每個TIgerSHARC的兩個Link口提供。很小帶寬的限制降低了連續(xù)1024點cFFT的性能,每個TigerSHARC能處理30517次。TigerSHARC低功耗、小尺寸和功能的集成,目前可得到簇總線(8片TigerSHARC)6UcPCI板卡。8片TigerSHARC每秒能執(zhí)行244135次連續(xù)1024點CFFT運算,幾乎是理想PowerPC板卡的4倍。
。督Y論
我們討論的各種COTS板的應用,代表了連續(xù)實時信號處理應用的實際性能。對于其它因素的分析(如中斷、開發(fā)環(huán)境、DMAs、存儲器的利用、Cache管理、電源等)不在本文討論范圍。如果應用系統(tǒng)需要大量的計算、比較少的數據搬移和所謂的后向數據處理,由于較高的時鐘頻率和強大的內核,PowerPC是理想的選擇;反之,對于像成像、雷達、聲納和監(jiān)聽等應用的連續(xù)、實時信號處理,由于需要比較高的數據吞吐率,TigerSHARC應該是首選。
【連續(xù)實時信號處理器的性能分析】相關文章:
提高實時操作系統(tǒng)的實時性能和可靠性策略08-19
MIDI信號的解碼及實時音符顯示08-06
改善嵌入式Linux實時性能的方法研究08-19
數字信號處理器中D/A功能的實現08-06
Motorola微處理器的bootloader分析與應用08-06
運用UML分析設計占先式實時內核08-06
媒體信號處理器MAP-CA及其應用實例08-06
基于凌陽單片機的語音信號實時采集08-06