式中,N為濾波器沖擊響應(yīng)參數(shù),h(n)表示濾波器沖擊響應(yīng),x(n)表示輸入數(shù)據(jù),y(n)表示經(jīng)濾波后的輸出數(shù)據(jù)。根據(jù)公式2的卷積特性,RRC濾波器能用圖2所示的典型結(jié)構(gòu)實現(xiàn)。
由圖2結(jié)構(gòu)可以看出,該濾波器的實現(xiàn)包括兩個操作:輸入數(shù)據(jù)x(n)的移位運算,輸入數(shù)據(jù)x(n)與濾波器沖擊響應(yīng)h(n)的乘累加運算。在通用的DSP中,輸入數(shù)據(jù)的每次移位只能有一個數(shù)據(jù)參加操作,且數(shù)據(jù)的乘累加被分開運算,即先做乘法再做加法,同時DSP還要完成對大量數(shù)據(jù)的存取操作,這些因素使基于通用DSP實現(xiàn)的RRC濾波器運算非常緩慢。而利用Tensilica提供的處理器擴(kuò)展功能,設(shè)計者能夠方便地加入自定義的執(zhí)行單元輔助處理器完成運算工作,加快RRC濾波器的運算,達(dá)到與硬件實現(xiàn)相媲美的處理性能。基于Xtensa LX處理器的RRC濾波器實現(xiàn),利用Tensilica提供的獨特的處理技術(shù),有兩種方法可以完成設(shè)計,下面分別論述。
a. 實現(xiàn)方法一
在通用的DSP中,每次只能一個數(shù)據(jù)參加移位操作,當(dāng)大量數(shù)據(jù)需要處理時移位操作會消耗大量處理時間。而TIE技術(shù)提供單指令多數(shù)據(jù)(SIMD)功能,該功能允許在一個處理器指令內(nèi)同時對多個數(shù)據(jù)進(jìn)行操作。在RRC濾波器的移位操作中利用該技術(shù),我們可同時對多個數(shù)據(jù)進(jìn)行移位,從而縮短處理器的執(zhí)行時間,提高處理器的性能。
表2:方法一Xtansa LX處理器性能。 |
在RRC濾波器處理過程中,乘累加操作也是主要運算工作,如何減少該操作的執(zhí)行時間也是提高處理器性能的有效途徑之一。TIE技術(shù)也提供融合(fusion)功能,該功能允許設(shè)計者把多個連續(xù)的指令加入到一個指令中,即用一個指令就能執(zhí)行多個連續(xù)的處理動作。對于乘累加操作,在傳統(tǒng)的通用DSP設(shè)計之中,總是先進(jìn)行乘法運算再作加法運算,它們是兩個連續(xù)的操作,需要兩個處理器指令。而利用融合技術(shù),可以把乘法和加法這兩個連續(xù)的指令融合在一個指令中,使得處理器在一個時鐘周期內(nèi)就能夠完成乘累加操作,從而加快處理器的執(zhí)行。同時,結(jié)合SIMD技術(shù)可同時對多個輸入數(shù)據(jù)和沖擊響應(yīng)進(jìn)行乘累加操作,進(jìn)一步減少處理器的運算時間,提高處理器性能。利用方法一實現(xiàn)RRC濾波器的Xtensa LX處理器性能見2。
b. 實現(xiàn)方法二
在方法一中,雖然運用了融合和SIMD技術(shù)提高RRC濾波器處理性能,但DSP對數(shù)據(jù)的存取依然花費了大量的時間,這是因為DSP總線帶寬有一定限制,同時對多個數(shù)據(jù)進(jìn)行讀寫操作不能實現(xiàn)。為了加快處理器執(zhí)行速度,提高對多個數(shù)據(jù)進(jìn)行同時處理的并行性,Tensilaca的TIE技術(shù)通過提供特殊的寄存器(state)和用戶自定義的寄存器(regfile),可以顯著的減少處理器在執(zhí)行過程中對儲存器操作所花費的大量時間。
在方法一中實現(xiàn)的RRC濾波器乘累加操作必須等待移位操作完成之后才能進(jìn)行,而且需要反復(fù)對儲存器讀和寫。可以運用state和regfile這兩種用戶自定義的特殊寄存器,在state寄存器中存放乘累加的結(jié)果,在regfile寄存器中存放移位操作結(jié)果,這樣,利用融合技術(shù)可以在移位的同時進(jìn)行乘累加操作,而且不再需要對儲存器讀寫而是直接調(diào)用寄存器操作,在減少DSP存取操作的同時提高數(shù)據(jù)處理的并行性。
利用上述方法,可節(jié)省大量的處理器運行時鐘數(shù),其性能見表3。
c. 各種實現(xiàn)方法比較
方法一只從計算的角度考慮RRC濾波器用到移位和乘累加操作,利用Tensilica提供的融合與SIMD技術(shù)把二者結(jié)合起來,加快處理器的執(zhí)行。然而,該方法在減少計算量的同時并沒有考慮到處理器讀寫儲存器所花費的時間。實際上,按照這種方法所設(shè)計的濾波器,處理器執(zhí)行過程中的數(shù)據(jù)運算部分已經(jīng)足夠精簡,大部分處理時間都花在了對儲存器的操作上。
方法二正好把數(shù)據(jù)運算與存儲操作結(jié)合起來,利用Tensilica獨特的用戶自定義寄存器功能,可以減少對儲存器的操作,從而加快處理器的運算。該方法比前者性能提高將近12倍左右,但因為這種方法利用TIE定義了更多的輔助執(zhí)行單元,所以用此方法實現(xiàn)的處理器面積更大,這就需要設(shè)計者有明確的目標(biāo),在性能和面積上作適當(dāng)?shù)倪x擇。當(dāng)然,如果工程師花更多時間理解和研究Tensilica開發(fā)工具,相信還能為算法找到更好的方案。
表3:方法二Xtenasa LX處理器性能。 |
同時,我們也已經(jīng)通過ASIC設(shè)計方法實現(xiàn)了RRC濾波器。利用這種方法處理相同長度的輸入數(shù)據(jù)共需要2,748個執(zhí)行時鐘,所用門數(shù)在2,700左右?梢姡椒ǘ䦟崿F(xiàn)的濾波器性能已經(jīng)接近硬件設(shè)計,二者性能只相差3倍左右。但是,因為Xtensa LX處理器不只含有用戶自定義的執(zhí)行單元,還包含有最基本的指令結(jié)構(gòu)集,使處理器面積不可能做到專用ASIC那么大小。并且算法和應(yīng)用越復(fù)雜才越能充分利用Xtensa LX處理器的基本資源,使處理器不僅性能而且面積也接近ASIC實現(xiàn),這樣才更能體現(xiàn)LX處理器設(shè)計靈活、可自由配置和彈性擴(kuò)展的優(yōu)勢。
本文小結(jié)
Tensilica能夠針對用戶專用算法,不但提供獨特的可自由配置和靈活擴(kuò)展的Xtensa LX處理器,而且還自動產(chǎn)生適合于該處理器的一系列軟件工具和硬件實現(xiàn)模型。同時,運用Tensilica提供的TIE技術(shù),工程師可以方便快速地開發(fā)出自定義執(zhí)行單元輔助處理器的運行,大幅度提高處理器性能,滿足用戶的需要。但需要注意的是,作為輔助執(zhí)行單元,TIE技術(shù)會增加處理器的面積,執(zhí)行頻率也會受到影響,所以設(shè)計者應(yīng)該明確自己的目標(biāo),需要在性能與面積及速度中做出折中的選擇。
從以上比較中可以看出,運用Tensalica的Xtensa LX處理器實現(xiàn)的RRC濾波器性能接近硬件實現(xiàn),而且這種處理器開發(fā)周期明顯縮短,設(shè)計靈活具有軟件可編程特性,在超大型復(fù)雜應(yīng)用中更能體現(xiàn)其強(qiáng)大的優(yōu)勢。并且當(dāng)復(fù)雜功能的SoC經(jīng)過多個Xtensa處理器實現(xiàn)后,比傳統(tǒng)(CPU+DSP+RTL)的實現(xiàn)方式更經(jīng)濟(jì)也是有可能的,在開發(fā)速度上新方法則有明顯優(yōu)勢。
參考文檔
1. Tensilica, "Xtensa(r) LX Microprocessor Data Book", Sept. 2004
2. Tensilica, "Xtensa(r) LX Microprocessor Overview Handbook", Sept. 2004
3. Tensilica, "Xtensa(r) Instruction Extension (TIE) Language User's Guide", Sept. 2004
4. Tensilica, "Xtensa(r) Instruction Set Architecture (ISA) Reference Manual", Sept. 2004
5. 3GPP TS 25.102, "UE Radio Transmission and Reception (TDD)(Release 4)", V4.7.0, 2002-12
6. 丁玉美,高西全,西安電子科技大學(xué)出版社“數(shù)字信號處理(第二版)”,2001年1月
7. 周炯槃,龐沁華,續(xù)大我,吳偉陵,北京郵電大學(xué)出版社,“通信原理(上)”,2003年6月





