用Xtensa可配置處理器實現(xiàn)高性能低功耗系統(tǒng)
加速FFT運算
按頻率抽取快速傅立葉變換FFT算法的核心是一種稱為“蝶形”的運算。蝶形操作是FFT算法的最里層循環(huán)的運算。每個蝶形運算需要六次加法和四次乘法來計算基2蝶形結(jié)果的實部和虛部。采用TIE(Tensilica Instruction Extention)語言,設(shè)計團隊可以用四個加法器和兩個乘法器來擴展整個Xtensa處理器的流水線,以便使得一半FFT蝶形運算可以在一個流水線時鐘周期內(nèi)完成。
Xtensa處理器的可配置數(shù)據(jù)總線接口可以定義成128位寬,這樣所有蝶形結(jié)果的實部和虛部整數(shù)輸入項就可以在一個時鐘周期內(nèi)加載到專用的FFT輸入寄存器中。所有計算完成的輸出部分也可以在一個時鐘周期內(nèi)存儲到存儲器中。由于每一個FFT蝶形運算的加載和存儲操作都需要一個時鐘周期,因此FFT計算最有效的辦法是將每個FFT一半蝶形運算擴展為兩個時鐘周期,這樣后續(xù)蝶形運算的加載操作和前面蝶形運算的存儲操作就可以同時進(jìn)行。這種方法節(jié)省了硬件開銷,同時也匹配了數(shù)據(jù)運算資源和數(shù)據(jù)傳輸資源。
加速維特比編碼
在通常情況下,RISC處理器需要50個到80個指令周期才能完成一個維特比蝶形運算。一個高端的超長指令字DSP(如TI的TMS320C64XX)只需要1.75個時鐘周期就可以完成一個維特比蝶形運算。Tensilica的指令擴展語言TIE允許用戶在Xtensa處理器體系結(jié)構(gòu)ISA中增加一條維特比蝶形運算指令。該設(shè)計使用了處理器中可配置的128位I/O總線來每次加載8個符號、增加流水線硬件,如下圖所示。
加速MPEG-4解碼器
通過指令擴展和并行操作執(zhí)行來提升性能的另一個例子是視頻應(yīng)用領(lǐng)域的MPEG-4。MPEG-4視頻數(shù)據(jù)編碼中最困難的地方是動態(tài)估計,它需要搜索相鄰的視頻數(shù)據(jù)幀得到相似的象素數(shù)據(jù)塊。這個搜索算法的最內(nèi)層循環(huán)包括一個SAD(絕對差之和)運算操作,該操作包括一次減法、一次絕對值運算和對前一個計算出來的結(jié)果值進(jìn)行的一次加法運算。在一個時鐘周期內(nèi),可以混合執(zhí)行所有這三個SAD部件操作(減法、取絕對值和加法操作),并且在一個時鐘周期內(nèi),SIMD操作可以完成所有的16個像素的計算操作,這就將系統(tǒng)需要完成的每秒六億四千一百萬次操作降低為每秒一千四百萬次操作,大大減少了系統(tǒng)的運算量。
總體而言,采用可配置、可擴展處理器核來設(shè)計處理器可以加速嵌入式算法的性能,這是通過多對專用算法量身定做的,而不是通過匯編語言代碼或者RTL硬件設(shè)計來完成的。采用可擴展處理器的好處是設(shè)計人員可以準(zhǔn)確地添加系統(tǒng)資源以獲得算法的理想性能,而不是試圖將算法生搬硬套到固定指令集體系結(jié)構(gòu)的處理器中。這種新的處理器設(shè)計方法所帶來的結(jié)果是極大地提高了執(zhí)行算法的處理器性能,通常超出了現(xiàn)在最先進(jìn)的固定指令集體系結(jié)構(gòu)微處理器和數(shù)字信號處理器DSP核的能力。在多數(shù)情況下,設(shè)計人員可以用可配置處理器去替換整個的RTL模塊以適合所需要的系統(tǒng)應(yīng)用,并且由于這種設(shè)計方法所固有的編程特性而節(jié)約了關(guān)鍵的設(shè)計和驗證時間,并增加了系統(tǒng)的靈活性。
評論