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